-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathseven_segment.v.bak
38 lines (34 loc) · 1.18 KB
/
seven_segment.v.bak
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
module seven_segment (
input [13:0] number,
output [6:0] hex0, hex1, hex2, hex3
);
reg [3:0] digit0, digit1, digit2, digit3;
always @(*) begin
digit0 = number % 10;
digit1 = (number / 10) % 10;
digit2 = (number / 100) % 10;
digit3 = (number / 1000) % 10;
end
// Seven-segment display encoding
function [6:0] seven_seg;
input [3:0] digit;
case (digit)
4'd0: seven_seg = 7'b1000000;
4'd1: seven_seg = 7'b1111001;
4'd2: seven_seg = 7'b0100100;
4'd3: seven_seg = 7'b0110000;
4'd4: seven_seg = 7'b0011001;
4'd5: seven_seg = 7'b0010010;
4'd6: seven_seg = 7'b0000010;
4'd7: seven_seg = 7'b1111000;
4'd8: seven_seg = 7'b0000000;
4'd9: seven_seg = 7'b0010000;
default: seven_seg = 7'b1111111; // Blank display for undefined states
endcase
endfunction
// Assign the seven-segment display values
assign hex0 = seven_seg(digit0);
assign hex1 = seven_seg(digit1);
assign hex2 = seven_seg(digit2);
assign hex3 = seven_seg(digit3);
endmodule