-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathseven_segment.v
73 lines (65 loc) · 2.21 KB
/
seven_segment.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
module seven_segment (
input [8:0] number,
output reg [6:0] hex0, hex1, hex2, hex3
);
wire [4:0] digit0, digit1, digit2, digit3;
assign digit0 = number % 10;
assign digit1 = (number / 10) % 10;
assign digit2 = (number / 100) % 10;
assign digit3 = (number / 1000) % 10;
always @(number) begin
// Seven-segment display encoding
case (digit0)
4'd0: hex0 = 7'b1000000;
4'd1: hex0 = 7'b1111001;
4'd2: hex0 = 7'b0100100;
4'd3: hex0 = 7'b0110000;
4'd4: hex0 = 7'b0011001;
4'd5: hex0 = 7'b0010010;
4'd6: hex0 = 7'b0000010;
4'd7: hex0 = 7'b1111000;
4'd8: hex0 = 7'b0000000;
4'd9: hex0 = 7'b0010000;
default: hex0 = 7'b1111111;
endcase
case (digit1)
4'd0: hex1 = 7'b1000000;
4'd1: hex1 = 7'b1111001;
4'd2: hex1 = 7'b0100100;
4'd3: hex1 = 7'b0110000;
4'd4: hex1 = 7'b0011001;
4'd5: hex1 = 7'b0010010;
4'd6: hex1 = 7'b0000010;
4'd7: hex1 = 7'b1111000;
4'd8: hex1 = 7'b0000000;
4'd9: hex1 = 7'b0010000;
default: hex1 = 7'b1111111;
endcase
case (digit2)
4'd0: hex2 = 7'b1000000;
4'd1: hex2 = 7'b1111001;
4'd2: hex2 = 7'b0100100;
4'd3: hex2 = 7'b0110000;
4'd4: hex2 = 7'b0011001;
4'd5: hex2 = 7'b0010010;
4'd6: hex2 = 7'b0000010;
4'd7: hex2 = 7'b1111000;
4'd8: hex2 = 7'b0000000;
4'd9: hex2 = 7'b0010000;
default: hex2 = 7'b1111111;
endcase
case (digit3)
4'd0: hex3 = 7'b1000000;
4'd1: hex3 = 7'b1111001;
4'd2: hex3 = 7'b0100100;
4'd3: hex3 = 7'b0110000;
4'd4: hex3 = 7'b0011001;
4'd5: hex3 = 7'b0010010;
4'd6: hex3 = 7'b0000010;
4'd7: hex3 = 7'b1111000;
4'd8: hex3 = 7'b0000000;
4'd9: hex3 = 7'b0010000;
default: hex3 = 7'b1111111;
endcase
end
endmodule