⚙️

[Lecture 4b] Understanding Sequential Logic and FSMs

Apr 9, 2025

Lecture Notes: Sequential Logic, Finite State Machines, and HDL

Introduction

  • Continuation of the previous week's topics: Sequential logic and finite state machines (FSMs).
  • Today's focus: Completing sequential logic design and introduction to Hardware Description Language (HDL) and Verilog.
  • Recap of covered material with focus on green topics; blue topics to be covered today.

Sequential Circuits

  • Definition: Produce outputs determined by current inputs and past values; circuits with memory.
  • Comparison with Combinational Circuits: Sequential circuits include elements like state machines; combinational circuits do not have memory.
  • State Machine Design: Pictorial representation of discrete time model; involves finite states, inputs, outputs, and state transitions.

Finite State Machines (FSMs)

  • Components:
    • State Register: Stores the current state.
    • Next State Logic: Determines the next state from the current state and inputs.
    • Output Logic: Determines outputs based on current state.
  • Example: Traffic light controller FSM with more and Mealy types.

FSM Design Process

  1. Determine States and Transitions:
    • Define possible states and transitions based on inputs and current state.
    • Use pictorial state diagrams for visualization.
  2. State Transition Table:
    • Convert pictorial representation to a truth table.
    • Encode states using binary or one-hot encoding.
  3. Next State and Output Logic:
    • Express next state and output logic in Boolean expressions.
    • Simplify using sum of products or Karnaugh maps.

State Encoding

  • Methods:
    • Binary Encoding: Minimizes flip-flops but may increase logic complexity.
    • One-Hot Encoding: Each bit represents a state; simplifies logic but uses more flip-flops.
    • Output Encoding: States encode output directly; useful for Moore machines.

Timing in FSMs

  • Clock Cycle: Must accommodate longest combinational logic delay for proper operation.
  • Timing Diagrams: Visualize state transitions and timing requirements.
  • Importance: Ensures correct state transitions and outputs.

FSM Types

  • Moore Machine: Output depends only on the current state.
  • Mealy Machine: Output depends on current state and inputs, allowing fewer states but more complex output logic.

Practical Applications and Labs

  • Overview of lab exercises emphasizing FPGA usage.
  • Field Programmable Gate Arrays (FPGA):
    • Reconfigurable hardware substrate for designing digital circuits.
    • Use in various applications like deep learning, bioinformatics, and hardware prototyping.

Verilog and HDL

  • Purpose: Describe digital circuits at various abstraction levels.
  • Key Features:
    • Hierarchical design: Modules and submodules.
    • Supports concurrency in hardware design.
  • Example: Simple module definition with inputs and outputs.

Conclusion

  • Preparation for designing a microprocessor in labs using foundational knowledge of FSMs and HDL.
  • Importance of understanding the underlying hardware implementation for effective design and optimization.