From dd5d044da326157e032665fae75897e50fc26c62 Mon Sep 17 00:00:00 2001 From: Riley King-Saunders Date: Thu, 3 Sep 2026 16:49:46 +1000 Subject: [PATCH] Fixed bit ordering in seven segment truth table and test bench --- modules/seven_seg.sv | 26 +++++++++++++------------- tests/seven_seg_tb.sv | 28 ++++++++++++++-------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/modules/seven_seg.sv b/modules/seven_seg.sv index 413cddd..3e1618c 100644 --- a/modules/seven_seg.sv +++ b/modules/seven_seg.sv @@ -1,22 +1,22 @@ module seven_seg(input logic [3:0] num, input logic [0:0] rbi_inv, output logic [7:0] segments); always_comb begin case (num) - 4'b0000: segments = (rbi_inv) ? ~(8'b11111101) : ~(8'b00000000); - 4'b0001: segments = ~(8'b01100001); + 4'b0000: segments = (rbi_inv) ? ~(8'b10111111) : ~(8'b00000000); + 4'b0001: segments = ~(8'b10000110); 4'b0010: segments = ~(8'b11011011); - 4'b0011: segments = ~(8'b11110011); - 4'b0100: segments = ~(8'b01100111); - 4'b0101: segments = ~(8'b10110111); - 4'b0110: segments = ~(8'b10111111); - 4'b0111: segments = ~(8'b11100001); + 4'b0011: segments = ~(8'b11001111); + 4'b0100: segments = ~(8'b11100110); + 4'b0101: segments = ~(8'b11101101); + 4'b0110: segments = ~(8'b11111101); + 4'b0111: segments = ~(8'b10000111); 4'b1000: segments = ~(8'b11111111); 4'b1001: segments = ~(8'b11100111); - 4'b1010: segments = ~(8'b11101111); - 4'b1011: segments = ~(8'b00111111); - 4'b1100: segments = ~(8'b10011101); - 4'b1101: segments = ~(8'b01111011); - 4'b1110: segments = ~(8'b10011111); - 4'b1111: segments = ~(8'b10001111); + 4'b1010: segments = ~(8'b11110111); + 4'b1011: segments = ~(8'b11111100); + 4'b1100: segments = ~(8'b10111001); + 4'b1101: segments = ~(8'b11011110); + 4'b1110: segments = ~(8'b11111001); + 4'b1111: segments = ~(8'b11110001); default: segments = ~(8'bxxxxxxxx); endcase end diff --git a/tests/seven_seg_tb.sv b/tests/seven_seg_tb.sv index ce2bf6b..689f07c 100644 --- a/tests/seven_seg_tb.sv +++ b/tests/seven_seg_tb.sv @@ -14,23 +14,23 @@ module seven_seg_tb(); initial begin // Initialise truth table - true_segments[0 ] = ~(8'b11111101); - true_segments[1 ] = ~(8'b01100001); + true_segments[0 ] = ~(8'b10111111); + true_segments[1 ] = ~(8'b10000110); true_segments[2 ] = ~(8'b11011011); - true_segments[3 ] = ~(8'b11110011); - true_segments[4 ] = ~(8'b01100111); - true_segments[5 ] = ~(8'b10110111); - true_segments[6 ] = ~(8'b10111111); - true_segments[7 ] = ~(8'b11100001); + true_segments[3 ] = ~(8'b11001111); + true_segments[4 ] = ~(8'b11100110); + true_segments[5 ] = ~(8'b11101101); + true_segments[6 ] = ~(8'b11111101); + true_segments[7 ] = ~(8'b10000111); true_segments[8 ] = ~(8'b11111111); true_segments[9 ] = ~(8'b11100111); - true_segments[10] = ~(8'b11101111); - true_segments[11] = ~(8'b00111111); - true_segments[12] = ~(8'b10011101); - true_segments[13] = ~(8'b01111011); - true_segments[14] = ~(8'b10011111); - true_segments[15] = ~(8'b10001111); - true_segments[16] = ~(8'b00000000); + true_segments[10] = ~(8'b11110111); + true_segments[11] = ~(8'b11111100); + true_segments[12] = ~(8'b10111001); + true_segments[13] = ~(8'b11011110); + true_segments[14] = ~(8'b11111001); + true_segments[15] = ~(8'b11110001); + true_segments[16] = ~(8'b00000000); // Special case for RBI $display("Beginning seven-segment tests");