/
hex_display.v
33 lines (22 loc) · 1.18 KB
/
hex_display.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//Outputs binary inputs on a hex display using karnaugh maps
//input
//SW[3:0]: input binary number
//output
//HEX[6:0]: hex display
module hex_display(SW, HEX0);
input [3:0] SW;
output [6:0] HEX0;
assign HEX0[0] = (SW[3] & SW[2] & ~SW[1] & SW[0]) | (SW[3] & ~SW[2] & SW[1] & SW[0]) |
(~SW[3] & ~SW[2] & ~SW[1] & SW[0]) | (~SW[3] & SW[2] & ~SW[1] & ~SW[0]);
assign HEX0[1] = (SW[3] & SW[1] & SW[0]) | (SW[3] & SW[2] & ~SW[0]) |
(~SW[3] & SW[2] & ~SW[1] & SW[0]) | (SW[2] & SW[1] & ~SW[0]);
assign HEX0[2] = (~SW[3] & ~SW[2] & SW[1] & ~SW[0]) | (SW[3] & SW[2] & (SW[1] | ~SW[0]));
assign HEX0[3] = (SW[2] & SW[1] & SW[0]) | (SW[3] & ~SW[2] & SW[1] & ~SW[0]) |
(~SW[2] & ~SW[1] & SW[0]) | (~SW[3] & SW[2] & ~SW[1] & ~SW[0]);
assign HEX0[4] = (~SW[3] & SW[0]) | (~SW[3] & SW[2] & ~SW[1]) | (~SW[2] & ~SW[1] & SW[0]);
assign HEX0[5] = (~SW[3] & ~SW[2] & (SW[1] | SW[0])) | (~SW[3] & SW[1] & SW[0]) |
(SW[3] & SW[2] & ~SW[1] & SW[0]);
assign HEX0[6] = SW[3] & SW[2] & ~SW[1] & ~SW[0] |
~SW[3] & ~SW[2] & ~SW[1] |
~SW[3] & SW[2] & SW[1] & SW[0];
endmodule