summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fizzbuzz.tb.v8
-rw-r--r--fizzbuzz.v21
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);
diff --git a/fizzbuzz.v b/fizzbuzz.v
index e568013..4aa079a 100644
--- a/fizzbuzz.v
+++ b/fizzbuzz.v
@@ -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