-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMy_Dig.v
More file actions
61 lines (54 loc) · 1.65 KB
/
My_Dig.v
File metadata and controls
61 lines (54 loc) · 1.65 KB
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
module My_Dig
(
CLK, Hundred, Ten, One, D_Ten, D_Hundred, Digitron_Out, DigitronCS_Out
);
input CLK;
input [3:0] Hundred;
input [3:0] Ten;
input [3:0] One;
input [3:0] D_Ten;
input [3:0] D_Hundred;
output [7:0]Digitron_Out;
output [5:0]DigitronCS_Out;
parameter T250K = 24'd200000;
reg [23:0]Count;
reg [3:0]SingleNum;
reg [7:0]W_Digitron_Out;
reg [5:0]W_DigitronCS_Out;
parameter _0 = 8'b0011_1111, _1 = 8'b0000_0110, _2 = 8'b0101_1011,
_3 = 8'b0100_1111, _4 = 8'b0110_0110, _5 = 8'b0110_1101,
_6 = 8'b0111_1101, _7 = 8'b0000_0111, _8 = 8'b0111_1111,
_9 = 8'b0110_1111;
always @ ( posedge CLK )
begin
if( Count == T250K )
begin
Count <= 16'd0;
W_DigitronCS_Out = {1'b1,W_DigitronCS_Out[0],W_DigitronCS_Out[4:1]};
case(W_DigitronCS_Out)
6'b11_1110: SingleNum = D_Hundred;
6'b11_1101: SingleNum = D_Ten;
6'b11_1011: SingleNum = One;
6'b11_0111: SingleNum = Ten;
6'b10_1111: SingleNum = Hundred;
default: W_DigitronCS_Out = 6'b11_1110;
endcase
case(SingleNum)
0: W_Digitron_Out = _0;
1: W_Digitron_Out = _1;
2: W_Digitron_Out = _2;
3: W_Digitron_Out = _3;
4: W_Digitron_Out = _4;
5: W_Digitron_Out = _5;
6: W_Digitron_Out = _6;
7: W_Digitron_Out = _7;
8: W_Digitron_Out = _8;
9: W_Digitron_Out = _9;
endcase
end
else
Count <= Count + 1'b1;
end
assign Digitron_Out = (W_DigitronCS_Out == 6'b11_1011) ? {1'b1,W_Digitron_Out[6:0]} : W_Digitron_Out;
assign DigitronCS_Out = W_DigitronCS_Out;
endmodule