Quartus Prime设计100进制可逆计数器

该文介绍了使用Verilog语言设计的100进制可逆计数器,当clr为低电平时,输出清零;clk上升沿时,依据plus和minus信号进行加法或减法计数,同时支持暂停功能。仿真波形展示了计数器在不同输入条件下的工作模式。
摘要由CSDN通过智能技术生成

100进制可逆计数器的设计

以下是仿真代码与注释:

仿真代码:
module keni100(clr,clk,plus,minus,out);   //100进制可逆计数器
input clr,plus,minus,clk;
output [7:0]out;
reg[7:0]out;
always@(posedge clk)
begin
if(!clr)     //如果clr为零,输出为零;反之运行else程序
out[7:0]<=0;
else
begin
if(plus==0 && minus==1)    //100进制的递减计数
begin
if (out[3:0]==0)
begin
out[3:0]<=9;
if (out[7:4]==0) out[7:4]<=9;
else
out[7:4]<=out[7:4]-1;
end
else out[3:0]<=out[3:0]-1;
end
if(plus==1 && minus==0)   //100进制的递增计数
begin
if (out[3:0]==9)
begin
out[3:0]<=0;
if (out[7:4]==9) out[7:4]<=0;
else
out[7:4]<=out[7:4]+1;
end
else out[3:0]<=out[3:0]+1;
end
if(plus==1 && minus==1) out<=out;  //若plus和minus都为1,暂停计数
if(plus==0 && minus==0) out<=0;    //若都为零,输出为零
end
end
endmodule

:本代码实现了100进制的可逆计数。以下是仿真结果仅供参考:
在这里插入图片描述

在这里插入图片描述
波形图说明:当“clr”为低电平时,out输出为0;当“clr”为高电平时,计数器正常工作。在每个时钟“clk”上升沿时,当plus=1且minus=0,计数器为加法器,则out输出开始递增;当plus和minus都为1时,计数器暂停计数;当plus=0且minus=1,计数器为减法器,则out输出开始递减。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无趣:

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值