// Pinouts for 8 segment LED displays //Pin //29 LED_CR3 NumLED_L //35 LED_CR3 NumLED_L //36 LED_CR3 NumLED_L //38 LED_CR3 NumLED_L //39 LED_CR3 NumLED_L //40 LED_CR3 NumLED_L //44 LED_CR3 NumLED_L //37 LED_CR3 DecPtLED_L //45 LED_CR4 NumLED_R e //46 LED_CR4 NumLED_R d //47 LED_CR4 NumLED_R c //48 LED_CR4 NumLED_R b //49 LED_CR4 NumLED_R a //50 LED_CR4 NumLED_R f //51 LED_CR4 NumLED_R g //41 LED_CR4 DecPtLED_R // the layout of 7 segment display: // // ---a--- // | | // f b // | | // ---g--- // | | // e c // | | // ---d--- // NOTE: the out is 8 bit [7:0] output with this layout // { dec_pt, g, f, a, b, c, d, e } // and all signals are "asserted low" // NOTE: this module takes two inputs: // in - a four-bit value to be displayed // in_dot - one bit that controls the decimal point module bin2LED (in, in_dot, out); input [3:0] in; input in_dot; output [7:0] out; reg [6:0] out_tmp; always@(in) case (in) 4'b0000 : out_tmp <= 7'b1000000; 4'b0001 : out_tmp <= 7'b1110011; 4'b0010 : out_tmp <= 7'b0100100; 4'b0011 : out_tmp <= 7'b0100001; 4'b0100 : out_tmp <= 7'b0010011; 4'b0101 : out_tmp <= 7'b0001001; 4'b0110 : out_tmp <= 7'b0001000; 4'b0111 : out_tmp <= 7'b1100011; 4'b1000 : out_tmp <= 7'b0000000; 4'b1001 : out_tmp <= 7'b0000001; 4'b1010 : out_tmp <= 7'b0000010; 4'b1011 : out_tmp <= 7'b0011000; 4'b1100 : out_tmp <= 7'b1001100; 4'b1101 : out_tmp <= 7'b0110000; 4'b1110 : out_tmp <= 7'b0001100; 4'b1111 : out_tmp <= 7'b0001110; default : out_tmp <= 7'b0; endcase assign out = { ~in_dot, out_tmp }; endmodule