§ Комбинаторная схема

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

§ Логическая схема