十进制可逆计数器&译码显示

十进制可逆计数器&译码显示

简介

这次仅仅就只需要在“十进制可逆计数器”那一个实验的基础上,加上用数码管显示数。大概就是第一次实验与第三次实验的结合体,用层次化写一下就可以了。

过程

代码

顶层文件 $gal\underline{}3035\underline{}5.v$

1
2
3
4
5
6
7
8
9
10
11
module gal_3035_5 (ld,clk,d,ud,clr,Q,co,codeout);
input ld,clk,ud,clr;
input [3: 0]d;
output [3: 0]Q;
output co;
output [6: 0]codeout;

gal_3035_5_1 a(co,ld,clk,d,ud,clr,Q);
gal_3035_5_2 b(codeout,Q);

endmodule

计数器模块 $gal\underline{}3035\underline{}5\underline{}1.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
module gal_3035_5_1 (co,ld,clk,d,ud,clr,Q);
input ld,ud,clr,clk;
input [3:0]d;
output reg [3:0]Q;
output reg co;

always@(posedge clk)
begin
if(!clr) // clr为0时,不进行清零操作
begin
if(ld) // ld为1时,进行置数操作
begin
Q[3]=d[3];
Q[2]=d[2];
Q[1]=d[1];
Q[0]=d[0];
end
else
begin
if(ud) //ud是1时,倒序置数
begin
if(Q==4'b0000)
begin
Q<=4'b1001;
co<=1;
end
else
begin
Q<=Q-1;
co<=0;
end
end
else // ud是0时,顺序置数
begin
if(Q==4'b1001)
begin
Q<=4'b0000;
co<=1;
end
else
begin
Q<=Q+1;
co<=0;
end
end
end
end
else
begin
Q<=4'b0000;
end
end
endmodule

译码显示模块 $gal\underline{}3035\underline{}5\underline{}2.v$

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module gal_3035_5_2 (codeout,Q);
input[3: 0] Q;
output reg[6: 0] codeout;

always @ (Q)
begin
case (Q)
4'd0: codeout=7'b1111110;
4'd1: codeout=7'b0110000;
4'd2: codeout=7'b1101101;
4'd3: codeout=7'b1111001;
4'd4: codeout=7'b0110011;
4'd5: codeout=7'b1011011;
4'd6: codeout=7'b1011111;
4'd7: codeout=7'b1110000;
4'd8: codeout=7'b1111111;
4'd9: codeout=7'b1111011;
default: codeout=7'dx;
endcase
end
endmodule

仿真波形

引脚分配

$Family:Cyclone\ IV\ E\ \ \ \ \ \ \ \ Device:EP4CE22E22C8$

信号名 主板器件 PIN
Q[3] LED3 54
Q[2] LED2 52
Q[1] LED1 50
Q[0] LED0 46
clr KEY7 44
co LED4 58
codeout[6] a 122
codeout[5] b 100
codeout[4] c 104
codeout[3] d 111
codeout[2] e 106
codeout[1] f 110
codeout[0] g 103
clk CLK0 88
d[3] KEY4 32
d[2] KEY3 33
d[1] KEY2 30
d[0] KEY1 31
ld KEY5 42
ud KEY6 39
文章作者: FcAYH
文章链接: http://www.fcayh.cn/2021/01/20/counterdecoder/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Forever丶CIL