diff options
| -rw-r--r-- | fizzbuzz.tb.v | 8 | ||||
| -rw-r--r-- | fizzbuzz.v | 21 |
2 files changed, 27 insertions, 2 deletions
diff --git a/fizzbuzz.tb.v b/fizzbuzz.tb.v index cf31546..eb14623 100644 --- a/fizzbuzz.tb.v +++ b/fizzbuzz.tb.v @@ -5,14 +5,19 @@ module fizzbuzz_tb ( reg [7:0] number = 0; +reg[2:0] fftst; wire [7:0] num_out; +reg clk_i = 0; fizzbuzz uut( + .clk_i(clk_i), .num_i(number), .num_o(num_out), .fizz_o(), .buzz_o(), - .fizzbuzz_o() + .fizzbuzz_o(), + // I still don't 100% get non-blocking assignments + .ff_test_o(fftst) ); initial begin @@ -22,6 +27,7 @@ end always #10 begin number <= number + 1; + clk_i <= ~clk_i; if (number == 3) assert(num_out == 0); if (number == 5) assert(num_out == 0); if (number == 15) assert(num_out == 0); @@ -1,9 +1,11 @@ module fizzbuzz ( + input clk_i, input [7:0] num_i, output [7:0] num_o, output fizz_o, output buzz_o, - output fizzbuzz_o + output fizzbuzz_o, + output reg[2:0] ff_test_o ); wire is_fizz, is_buzz; @@ -15,4 +17,21 @@ assign buzz_o = !is_fizz && is_buzz; assign fizzbuzz_o = is_fizz && is_buzz; assign num_o = (is_fizz || is_buzz) ? 0 : num_i; + +initial begin + ff_test_o = 0; +end + +always @(posedge clk_i ) begin + if (num_i == 11) + ff_test_o <= 1; + else if (num_i == 13) + ff_test_o <= 2; + else if (num_i == 17) + ff_test_o <= 3; + else if (num_i == 23) + ff_test_o <= 4; + +end + endmodule |
