§ Комбинаторная схема
1 - Светодиод выключен (не горит)0 - Светодиод включен (горит)
HEX | 6543210 | DEC 0 -----+---------+----- ----- 0000 | 1000000 | 0 5 | | 1 0001 | 1111001 | 1 | | 0010 | 0100100 | 2 ----- 0011 | 0110000 | 3 4 | 6 | 2 0100 | 0011001 | 4 | | 0101 | 0010010 | 5 ----- 0110 | 0000010 | 6 3 0111 | 1111000 | 7 1000 | 0000000 | 8 1001 | 0010000 | 9 1010 | 0001000 | A 1011 | 0000011 | b 1100 | 1000110 | C 1101 | 0100001 | d 1110 | 0000110 | E 1111 | 0001110 | F
§ Код на verilog #1
- i - входящая цифра от 0 до 15
- o - инверсный выход, 0=горит, 1=не горит
1module hex7 2( 3 input wire [3:0] i, 4 output wire [6:0] o 5); 6 7// Сигнал на выход 8assign o = {o17, o16, o15, o14, o13, o12, o11}; 9 10// Инверсный вход 11wire [3:0] n = ~i; 12 13// Основная логика 14wire a1 = n[3] & n[2]; wire a14 = a1 & a2; wire o1 = a14 | a15; wire o11 = o1 | o2; 15wire a2 = n[1] & i[0]; wire a15 = a3 & a4; wire o2 = a16 | a17; wire o12 = o3 | o4; 16wire a3 = n[3] & i[2]; wire a16 = a5 & a6; wire o3 = a18 | a19; wire o13 = o5 | a23; 17wire a4 = n[1] & n[0]; wire a17 = a7 & a2; wire o4 = a20 | a21; wire o14 = o1 | o6; 18wire a5 = i[3] & n[2]; wire a18 = a3 & a2; wire o5 = a22 | a21; wire o15 = o7 | a27; 19wire a6 = i[1] & i[0]; wire a19 = a8 & n[0]; wire o6 = a24 | a25; wire o16 = o8 | o9; 20wire a7 = i[3] & i[2]; wire a20 = a9 & i[0]; wire o7 = a11 | a26; wire o17 = o10 | a33; 21wire a8 = i[2] & i[1]; wire a21 = a7 & n[0]; wire o8 = a28 | a29; 22wire a9 = i[3] & i[1]; wire a22 = a1 & a10; wire o9 = a17 | a30; 23wire a10 = i[1] & n[0]; wire a23 = a7 & i[1]; wire o10 = a31 | a32; 24wire a11 = n[3] & i[0]; wire a24 = a8 & i[0]; 25wire a12 = n[2] & n[1]; wire a25 = a10 & a5; 26wire a13 = n[3] & i[1]; wire a26 = a12 & i[0]; 27 wire a27 = a3 & n[1]; 28 wire a28 = a1 & i[0]; 29 wire a29 = a1 & i[1]; 30 wire a30 = a13 & i[0]; 31 wire a31 = a1 & n[1]; 32 wire a32 = a3 & a6; 33 wire a33 = a7 & a4; 34endmodule
§ Код на verilog #2
Более сокращенный вариант1module hex7 2( 3 input wire [3:0] i, // Вход 4 output wire [6:0] o // Выход 5); 6 7assign o = ( 8 // 6543210 9 i == 4'b0000 ? 7'b1000000 : // 0 10 i == 4'b0001 ? 7'b1111001 : // 1 11 i == 4'b0010 ? 7'b0100100 : // 2 12 i == 4'b0011 ? 7'b0110000 : // 3 13 i == 4'b0100 ? 7'b0011001 : // 4 14 i == 4'b0101 ? 7'b0010010 : // 5 15 i == 4'b0110 ? 7'b0000010 : // 6 16 i == 4'b0111 ? 7'b1111000 : // 7 17 i == 4'b1000 ? 7'b0000000 : // 8 18 i == 4'b1001 ? 7'b0010000 : // 9 19 i == 4'b1010 ? 7'b0001000 : // A 20 i == 4'b1011 ? 7'b0000011 : // B 21 i == 4'b1100 ? 7'b1000110 : // C 22 i == 4'b1101 ? 7'b0100001 : // D 23 i == 4'b1110 ? 7'b0000110 : // E 24 7'b0001110); // F 25 26endmodule