diff options
Diffstat (limited to 'task1/tb_card7seg.sv')
| -rw-r--r-- | task1/tb_card7seg.sv | 113 |
1 files changed, 109 insertions, 4 deletions
diff --git a/task1/tb_card7seg.sv b/task1/tb_card7seg.sv index 3a985c9..5d68861 100644 --- a/task1/tb_card7seg.sv +++ b/task1/tb_card7seg.sv @@ -1,8 +1,113 @@ +`define ACE 7'b0001000 +`define TWO 7'b0100100 +`define THREE 7'b0110000 +`define FOUR 7'b0011001 +`define FIVE 7'b0010010 +`define SIX 7'b0000010 +`define SEVEN 7'b1111000 +`define EIGHT 7'b0000000 +`define NINE 7'b0010000 +`define TEN 7'b1000000 +`define JACK 7'b1100001 +`define QUEEN 7'b0011000 +`define KING 7'b0001001 +`define BLANK 7'b1111111 + module tb_card7seg(); + logic err; + logic [3:0] SW; + logic [6:0] HEX0; + + card7seg DUT(SW, HEX0); + + task check; + input logic [6:0] expected; + + if (HEX0 !== expected) begin + err = 1; + $display("FAILED: HEX is incorrect.",); + end + endtask: check + + + initial begin + err = 0; + + SW = 4'd0; + #5; + check(`BLANK); + #5; + + SW = 4'd1; + #5; + check(`ACE); + #5; + + SW = 4'd2; + #5; + check(`TWO); + #5; + + SW = 4'd3; + #5; + check(`THREE); + #5; + + SW = 4'd4; + #5; + check(`FOUR); + #5; + + SW = 4'd5; + #5; + check(`FIVE); + #5; + + SW = 4'd6; + #5; + check(`SIX); + #5; + + SW = 4'd7; + #5; + check(`SEVEN); + #5; + + SW = 4'd8; + #5; + check(`EIGHT); + #5; + + SW = 4'd9; + #5; + check(`NINE); + #5; + + SW = 4'd10; + #5; + check(`TEN); + #5; + + SW = 4'd11; + #5; + check(`JACK); + #5; + + SW = 4'd12; + #5; + check(`QUEEN); + #5; + + SW = 4'd13; + #5; + check(`KING); + #5; + + if (~err) + $display("All tests passed."); -// Your testbench goes here. Make sure your tests exercise the entire design -// in the .sv file. Note that in our tests the simulator will exit after -// 10,000 ticks (equivalent to "initial #10000 $finish();"). - + #10; + $stop; + end endmodule |