Fixed bit ordering in seven segment truth table and test bench

This commit is contained in:
riley committed 2026-09-03 16:49:46 +10:00
1 parent 31a4496904
commit dd5d044da3
2 files changed
+27 -27

No files matched your search

+13 -13
View File
@@ -1,22 +1,22 @@
module seven_seg(input logic [3:0] num, input logic [0:0] rbi_inv, output logic [7:0] segments); module seven_seg(input logic [3:0] num, input logic [0:0] rbi_inv, output logic [7:0] segments);
always_comb begin always_comb begin
case (num) case (num)
4'b0000: segments = (rbi_inv) ? ~(8'b11111101) : ~(8'b00000000); 4'b0000: segments = (rbi_inv) ? ~(8'b10111111) : ~(8'b00000000);
4'b0001: segments = ~(8'b01100001); 4'b0001: segments = ~(8'b10000110);
4'b0010: segments = ~(8'b11011011); 4'b0010: segments = ~(8'b11011011);
4'b0011: segments = ~(8'b11110011); 4'b0011: segments = ~(8'b11001111);
4'b0100: segments = ~(8'b01100111); 4'b0100: segments = ~(8'b11100110);
4'b0101: segments = ~(8'b10110111); 4'b0101: segments = ~(8'b11101101);
4'b0110: segments = ~(8'b10111111); 4'b0110: segments = ~(8'b11111101);
4'b0111: segments = ~(8'b11100001); 4'b0111: segments = ~(8'b10000111);
4'b1000: segments = ~(8'b11111111); 4'b1000: segments = ~(8'b11111111);
4'b1001: segments = ~(8'b11100111); 4'b1001: segments = ~(8'b11100111);
4'b1010: segments = ~(8'b11101111); 4'b1010: segments = ~(8'b11110111);
4'b1011: segments = ~(8'b00111111); 4'b1011: segments = ~(8'b11111100);
4'b1100: segments = ~(8'b10011101); 4'b1100: segments = ~(8'b10111001);
4'b1101: segments = ~(8'b01111011); 4'b1101: segments = ~(8'b11011110);
4'b1110: segments = ~(8'b10011111); 4'b1110: segments = ~(8'b11111001);
4'b1111: segments = ~(8'b10001111); 4'b1111: segments = ~(8'b11110001);
default: segments = ~(8'bxxxxxxxx); default: segments = ~(8'bxxxxxxxx);
endcase endcase
end end
+14 -14
View File
@@ -14,23 +14,23 @@ module seven_seg_tb();
initial begin initial begin
// Initialise truth table // Initialise truth table
true_segments[0 ] = ~(8'b11111101); true_segments[0 ] = ~(8'b10111111);
true_segments[1 ] = ~(8'b01100001); true_segments[1 ] = ~(8'b10000110);
true_segments[2 ] = ~(8'b11011011); true_segments[2 ] = ~(8'b11011011);
true_segments[3 ] = ~(8'b11110011); true_segments[3 ] = ~(8'b11001111);
true_segments[4 ] = ~(8'b01100111); true_segments[4 ] = ~(8'b11100110);
true_segments[5 ] = ~(8'b10110111); true_segments[5 ] = ~(8'b11101101);
true_segments[6 ] = ~(8'b10111111); true_segments[6 ] = ~(8'b11111101);
true_segments[7 ] = ~(8'b11100001); true_segments[7 ] = ~(8'b10000111);
true_segments[8 ] = ~(8'b11111111); true_segments[8 ] = ~(8'b11111111);
true_segments[9 ] = ~(8'b11100111); true_segments[9 ] = ~(8'b11100111);
true_segments[10] = ~(8'b11101111); true_segments[10] = ~(8'b11110111);
true_segments[11] = ~(8'b00111111); true_segments[11] = ~(8'b11111100);
true_segments[12] = ~(8'b10011101); true_segments[12] = ~(8'b10111001);
true_segments[13] = ~(8'b01111011); true_segments[13] = ~(8'b11011110);
true_segments[14] = ~(8'b10011111); true_segments[14] = ~(8'b11111001);
true_segments[15] = ~(8'b10001111); true_segments[15] = ~(8'b11110001);
true_segments[16] = ~(8'b00000000); true_segments[16] = ~(8'b00000000); // Special case for RBI
$display("Beginning seven-segment tests"); $display("Beginning seven-segment tests");