Problem 5-25
module Prob_5_25 (output reg [7:0] count, input clk, rst_b);
parameter s0 = 0, s1 = 1, s2 = 2, s3 = 3, s4 = 4, s5 = 5, s6 = 6, s7 = 7, s8 = 8,
s9 = 9, s10 = 10, s11 = 11, s12 = 12, s13 = 13, s14 = 14, s15 = 15,
s16 = 16, s17 = 17;
reg [4: 0] state, next_state;
0: begin next_state = s1; count = 8’b0000_0001; end
1: begin next_state = s2; count = 8’b0000_0001; end
2: begin next_state = s3; count = 8’b0000_0001; end
3: begin next_state = s4; count = 8’b0000_0001; end
4: begin next_state = s5; count = 8’b0000_0010; end
5: begin next_state = s6; count = 8’b0000_0100; end
6: begin next_state = s7; count = 8’b0000_1000; end
7: begin next_state = s8; count = 8’b0001_0000; end
8: begin next_state = s9; count = 8’b0010_0000; end
9: begin next_state = s10; count = 8’b0100_0000; end
// Test plan:
// Simulate counting with power-up reset and reset-on-the-fly.
module t_Prob_5_25 ();
wire [7:0] count;
reg clk, rst_b;