Bird
Raised Fist0
Verilogprogramming~5 mins

Traffic light controller FSM in Verilog - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Finite State Machine (FSM) in the context of a traffic light controller?
An FSM is a model that controls the traffic light by moving through a set of defined states (like green, yellow, red) in a specific order based on timing or events.
Click to reveal answer
beginner
In Verilog, how do you represent states for a traffic light controller FSM?
States are usually represented using parameters or localparams with unique binary values, for example: parameter GREEN = 2'b00, YELLOW = 2'b01, RED = 2'b10.
Click to reveal answer
beginner
What is the role of the clock signal in a traffic light FSM implemented in Verilog?
The clock signal triggers state changes at regular intervals, ensuring the traffic light changes colors in a timed sequence.
Click to reveal answer
beginner
Why do we use a reset signal in a traffic light controller FSM?
The reset signal initializes the FSM to a known starting state (usually RED) when the system powers on or needs to restart safely.
Click to reveal answer
intermediate
How does the traffic light controller FSM ensure safe transitions between states?
It uses a defined sequence and timing for states, for example, green to yellow to red, preventing conflicting signals and ensuring safety.
Click to reveal answer
What does FSM stand for in a traffic light controller?
AFrequency Signal Monitor
BFast Signal Module
CFinite State Machine
DFlow State Model
Which Verilog construct is commonly used to define states in a traffic light FSM?
Aparameter or localparam
Bwire
Creg
Dmodule
What triggers the state transitions in a traffic light FSM?
AClock signal
BReset signal
CInput button
DPower supply
Why is a reset signal important in a traffic light FSM?
ATo change the light colors randomly
BTo initialize the FSM to a safe starting state
CTo speed up the clock
DTo turn off the traffic lights
What is the correct sequence of states in a simple traffic light FSM?
AGreen → Red → Yellow
BRed → Green → Yellow
CYellow → Red → Green
DGreen → Yellow → Red
Explain how a traffic light controller FSM works in Verilog, including states, clock, and reset.
Think about how the traffic light changes colors step by step.
You got /4 concepts.
    Describe why timing and state order are important in a traffic light FSM.
    Consider what happens if lights change too fast or in wrong order.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a traffic light controller FSM in Verilog?
      easy
      A. To detect traffic jams using sensors
      B. To count the number of cars passing the intersection
      C. To change traffic lights in a safe and timed sequence
      D. To control the speed of vehicles on the road

      Solution

      1. Step 1: Understand FSM role in traffic lights

        A traffic light controller FSM manages the sequence of lights (red, yellow, green) safely and in timed order.
      2. Step 2: Compare options to FSM purpose

        Only To change traffic lights in a safe and timed sequence describes changing lights in a safe and timed sequence, which is the FSM's job.
      3. Final Answer:

        To change traffic lights in a safe and timed sequence -> Option C
      4. Quick Check:

        FSM controls light sequence = A [OK]
      Hint: FSM controls states and timing for lights [OK]
      Common Mistakes:
      • Confusing FSM with sensor or speed control
      • Thinking FSM counts cars
      • Assuming FSM controls vehicle speed
      2. Which Verilog code snippet correctly declares the state variable for a traffic light FSM?
      easy
      A. logic state; // single bit logic variable
      B. wire state; // single wire for state
      C. integer state = 0; // integer state variable
      D. reg [1:0] state; // 2-bit state variable

      Solution

      1. Step 1: Identify correct state variable type

        FSM states are stored in registers (reg) because they hold values across clock cycles.
      2. Step 2: Check bit width for multiple states

        Traffic light FSM usually needs multiple bits (e.g., 2 bits) to represent states, so reg [1:0] is correct.
      3. Final Answer:

        reg [1:0] state; // 2-bit state variable -> Option D
      4. Quick Check:

        State needs reg and multiple bits = A [OK]
      Hint: Use reg with enough bits for states [OK]
      Common Mistakes:
      • Using wire instead of reg for state
      • Using single bit for multiple states
      • Using integer without clocked assignment
      3. Given this Verilog snippet for a traffic light FSM state transition:
      always @(posedge clk) begin
        case(state)
          2'b00: state <= 2'b01;
          2'b01: state <= 2'b10;
          2'b10: state <= 2'b00;
          default: state <= 2'b00;
        endcase
      end

      What will be the sequence of states after 4 clock cycles starting from 2'b00?
      medium
      A. 00, 01, 10, 00
      B. 00, 10, 01, 00
      C. 00, 01, 00, 10
      D. 00, 10, 10, 01

      Solution

      1. Step 1: Trace state transitions step-by-step

        Start at 00, next is 01, then 10, then back to 00 on each clock.
      2. Step 2: List states for 4 cycles

        Cycle 1: 00, Cycle 2: 01, Cycle 3: 10, Cycle 4: 00.
      3. Final Answer:

        00, 01, 10, 00 -> Option A
      4. Quick Check:

        Follow case transitions = B [OK]
      Hint: Follow case transitions in order [OK]
      Common Mistakes:
      • Mixing up state assignments order
      • Forgetting default case resets state
      • Assuming states skip steps
      4. Identify the error in this Verilog FSM snippet for a traffic light controller:
      always @(posedge clk) begin
        if (reset) state <= 2'b00;
        else
          case(state)
            2'b00: state = 2'b01;
            2'b01: state = 2'b10;
            2'b10: state = 2'b00;
          endcase
      end
      medium
      A. Using blocking assignment (=) inside sequential always block
      B. Missing default case in case statement
      C. Reset condition should be asynchronous
      D. State variable declared as wire instead of reg

      Solution

      1. Step 1: Check assignment types in clocked always block

        Inside always @(posedge clk), non-blocking assignment (<=) must be used to avoid race conditions.
      2. Step 2: Identify incorrect use of blocking assignment

        The code uses '=' (blocking) inside sequential logic, which is incorrect.
      3. Final Answer:

        Using blocking assignment (=) inside sequential always block -> Option A
      4. Quick Check:

        Use non-blocking (<=) in clocked blocks = C [OK]
      Hint: Use <= in clocked always blocks [OK]
      Common Mistakes:
      • Using = instead of <= in sequential logic
      • Ignoring missing default case (less critical)
      • Confusing synchronous and asynchronous reset
      5. You want to add a pedestrian crossing state to a traffic light FSM with states: Green (00), Yellow (01), Red (10), and Pedestrian Walk (11). Which state transition sequence correctly includes the pedestrian state after Red?
      hard
      A. Pedestrian Walk (11) -> Green (00) -> Yellow (01) -> Red (10) -> Pedestrian Walk (11)
      B. Green (00) -> Yellow (01) -> Red (10) -> Pedestrian Walk (11) -> Green (00)
      C. Green (00) -> Yellow (01) -> Pedestrian Walk (11) -> Red (10) -> Green (00)
      D. Green (00) -> Pedestrian Walk (11) -> Yellow (01) -> Red (10) -> Green (00)

      Solution

      1. Step 1: Understand safe traffic light sequence

        Normal sequence is Green -> Yellow -> Red, then pedestrian walk should come after Red for safety.
      2. Step 2: Check options for correct order

        Green (00) -> Yellow (01) -> Red (10) -> Pedestrian Walk (11) -> Green (00) correctly places Pedestrian Walk after Red, then cycles back to Green.
      3. Final Answer:

        Green (00) -> Yellow (01) -> Red (10) -> Pedestrian Walk (11) -> Green (00) -> Option B
      4. Quick Check:

        Pedestrian after Red before Green = D [OK]
      Hint: Pedestrian walk follows Red light for safety [OK]
      Common Mistakes:
      • Placing pedestrian walk before Yellow or Green
      • Skipping pedestrian state in sequence
      • Looping pedestrian state incorrectly
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard