User manual

exp1_traffic.v (3/5)
6
// finite state machine (state)
always@(*) begin
case(state)
S_NORMAL: begin
if(pause==1) next_state = S_PAUSE;
else next_state = S_NORMAL;
end
S_PAUSE: begin
if(pause==1) next_state = S_PAUSE;
else next_state = S_NORMAL;
end
endcase
end
// countdown
always@(*) begin
if(clks[23]==1'b1 && next_clks[23]==1'b0)
next_countdown = (countdown==0)? C_PERIOD: countdown-4'd1;
else
next_countdown = countdown;
end
Cover every possible branch of
every if or case to avoid latches.
1Hz
Cover
every
possible
branch.