FPGA实验三——计数器的实现并用SignalTap验证

实验三
1、参照代码,设计一个0-17的计数器,当计数值为17的时候, OV输出1,其他输出0,注意设定合理的信号位宽。
• 2、针对以上计数器,修改输出逻辑,当计数值为0-8时, OV输出0,9-17时OV输出1
• 用SignalTap验证
• 尝试并思考,如果时钟是50MHz,把OV接到一个LED上,能看见什么现象,为什么?

1.设计一个0-17的计数器,当计数值为17的时候, OV输出1,其他输出0,注意设定合理的信号位宽。
设计过程如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由上图可以看到时序仿真存在毛刺。我们放大来看,由2变到3的时候是正常的,但是由3变到4的时候中间却出现了2和6,这是因为2(010)到3(011)只发生最低位从0到1变化一次即可,但是3(011)到4(100)却要三位全都改变,这在计算机处理的时候需要一个过程先要最低位的1变为0(出现2(010)),再把最高位的0变成1(出现6(110)),再把第二位的1变成0,就是最终的结果4了!
用SignalTap验证:
在这里插入图片描述
2、针对以上计数器,修改输出逻辑,当计数值为0-8时, OV输出0,9-17时OV输出1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
尝试并思考,如果时钟是50MHz,把OV接到一个LED上,能看见什么现象,为什么?
如果时钟是50MHz,那么一个周期就是20ns,再执行上面的程序,也就是说LED灯会在9-17这个过程变亮,其余时间是灭的,但是亮的持续时间只有9*20=180ns,用肉眼分辨不出来,看到的是常亮的状态。如下图所示:
在这里插入图片描述

1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值