提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本人只是初学,代码经过实验验证,仅供参考
我自己查找模仿编写运行的代码,如有侵权,联系删除。
一、异步清零的计数器
这是异步清零+控制加减法+进位指示灯的计数器
1.代码
代码如下(示例):文章来源:https://www.toymoban.com/news/detail-503942.html
module jishu_125 (CLK,RST,x,q,co); //时钟信号,清零信号,加减法控制端,输出,进位输出
input CLK,RST,x;
output[3:0] q;
output co;
reg[3:0] q;
reg co;
always@(posedge CLK or negedge RST) //异步清零的控制语句
begin
if(!RST) //异步清零控制
q<=4'd0000;
else
begin
if(x==1'b1) //如果x=1(高电位),控制为加法器
begin
if (q==4'b1001) //如果q=9,则把0赋值给q
q<=4'b0000;
else if (q>=4'b0000&&q<4'b1001)
q<=q+1'b1;
else q<=4'b0000;
end
if (x==1'b0) //如果x=0(低电位),控制为减法器
begin
if (q==4'b0000)
q<=4'b1001;
else if (q>=4'b0000&&q<4'b1010) //这里减法特殊,范围要到10才能包含9
q<=q-1'b1;
else q<=4'b0000;
end
end
end
always @(q) //进位显示端口可以删去
begin
if (RST==1'b0)
co<=1'b0;
else if (x==1'b1&&q==4'b1001) co<=1'b1;
else if (x==1'b1&&q==4'b0000) co<=1'b1;
else co <=0;
end
endmodule
总结
这个程序适合已经了解书本例题的同学,要先看书上的例题
第一次写这个,不太会,有问题可以问我哈,一般晚上休息会回复
有什么建议,也欢迎留言文章来源地址https://www.toymoban.com/news/detail-503942.html
到了这里,关于【Verilog异步清零计数器】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!