All checks were successful
ci/woodpecker/push/test-workflow Pipeline was successful
61 lines
1.4 KiB
Systemverilog
61 lines
1.4 KiB
Systemverilog
/**
|
|
* display_converter.sv - decodes a 5 bit digit input into its seven segment
|
|
* display equivalent using a lookup table. Display can
|
|
* do 0 - 9, A - F, individual segmentsm and special
|
|
* characters.
|
|
* @author: Dilanthi Prentice, Waylon Cude
|
|
* @date: [not sure when its due yet]
|
|
*
|
|
*
|
|
****/
|
|
module display_converter(
|
|
input logic [4:0] digit,
|
|
output logic [6:0] segment
|
|
);
|
|
|
|
localparam ROM_SIZE=32;
|
|
|
|
//ROM lookup table for seven segment display
|
|
localparam logic [6:0] segment_rom [0:ROM_SIZE-1] = '{
|
|
7'b1111110, //0
|
|
7'b0000110, //1
|
|
7'b1101101, //2
|
|
7'b1111001, //3
|
|
7'b1011011, //4
|
|
7'b1011011, //5
|
|
7'b1011111, //6
|
|
7'b1110000, //7
|
|
7'b1111111, //8
|
|
7'b1111011, //9
|
|
|
|
7'b1110111, //A
|
|
7'b0011111, //B
|
|
7'b1001110, //C
|
|
7'b0111101, //D
|
|
7'b1001111, //E
|
|
7'b1000111, //F
|
|
|
|
7'b1000000, //segment a
|
|
7'b0100000, //segment b
|
|
7'b0010000, //segment c
|
|
7'b0001000, //segment d
|
|
7'b0000100, //segment e
|
|
7'b0000001, //segment f
|
|
|
|
7'b0110111, //H
|
|
7'b0001110, //L
|
|
7'b1110111, //R
|
|
7'b0000110, //l
|
|
7'b0000101, //r
|
|
|
|
7'b0000000, //blank
|
|
7'b0000000, //blank
|
|
7'b0000000, //blank
|
|
7'b0000000, //blank
|
|
7'b0000000 //blank
|
|
};
|
|
//use digit input to index segment_rom lookup table.
|
|
assign segment = segment_rom[digit];
|
|
|
|
endmodule
|