我们在上节知识点中,发现时序仿真的波形,除了有信号的延时出现之外,还出现了一个很小的上升沿(毛刺)出现,这个是因为我们采用组合逻辑导致的,时钟端口、清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错,因此判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须要考虑的问题
毛刺并不是对所有的输入都有危害,例如 D 触发器的 D 输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害,我们可以说 D 触发器的 D 输入端对毛刺不敏感。根据这个特性,我们应当在系统中尽可能采用同步电路,这是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间,就不会对系统造成危害(由于毛刺很短,多为几纳秒,基本上都不可能满足数据的建立和保持时间)
1. 下面的红箭头这个就是毛刺
2. 我们为了消除这个现象,下面我们把组合逻辑改为时序逻辑
增加了时钟clk和复位rst
代码以及仿真代码
3. 同样的,我们先看一下功能仿真
对比一下组合逻辑,熟悉逻辑的输出信号 c 延时了一个时钟周期才会响应输入信号
4. 下面我们看一下时序仿真,我们发现除了还有一些信号延时,但是已经没有了毛刺的现象
由此可知,毛刺的现象好像是由组合逻辑产生的,出现毛刺的现象会不同程度的影响我们的系统设计,所以我们在整个设计中,尽量使用时序逻辑,复位也要分情况去使用异步或者是同步的,本次的复位我用的异步复位
标签:仿真,逻辑,FPGA,毛刺,时序,信号,时钟 来源: https://blog.csdn.net/qq_42712308/article/details/120952647
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。