Moved 7 segment display logic to subdirectory
ci/woodpecker/push/test-workflow Pipeline was successful

Also fixed up the one type I found in the seconds display
This commit is contained in:
2025-05-19 15:48:05 -07:00
parent 15509fa27a
commit 3b30a32045
5 changed files with 64 additions and 9 deletions
@@ -0,0 +1,54 @@
`timescale 1ns / 1ps
module seconds_display_tb;
int errors = 0;
logic [5:0] seconds;
wire [6:0] display_tens;
wire [6:0] display_ones;
logic [6:0] expected_tens;
logic [6:0] expected_ones;
seconds_display Dut(.*);
initial begin
$display("Testing seconds_display");
for (seconds=0; seconds<60; seconds++) begin
expected_ones = encode_number(seconds % 10);
expected_tens = encode_number(seconds /10);
#1
if (display_ones !== expected_ones) begin
errors++;
$error("Failed ones test case, seconds = %d, displayed = %b, expected = %b",
seconds,
display_ones,
expected_ones);
end
else
if (display_tens !== expected_tens) begin
errors++;
$error("Failed tens test case, seconds = %d, displayed = %b, expected = %b",
seconds,
display_tens,
expected_tens);
end
end
if (errors == 0)
$display("All tests passing");
end
endmodule
function automatic logic [6:0] encode_number(logic [5:0] num);
case (num)
0: return 7'b1111110;
1: return 7'b0000110;
2: return 7'b1101101;
3: return 7'b1111001;
4: return 7'b0110011;
5: return 7'b1011011;
6: return 7'b1011111;
7: return 7'b1110000;
8: return 7'b1111111;
9: return 7'b1111011;
endcase
endfunction