求高手讲解“打一拍”的具体含义和作用
时间:10-02
整理:3721RD
点击:
小弟初学verilog,最近看到有关“信号用寄存器打一拍”的内容,请高手指点一下问题:
1、什么是打一拍?代码如何实现?这样做的目的为何?
2、是否只能打一拍?可不可以打多拍?如果可以,又有何意义和作用?
望各位坛友不吝赐教!
打一拍 = sample ...
也可以說是delay 1個cycle.
打多拍,就是delay 多個cycle.
看設計上的須要吧.
请问在何种情况下,会需要打一拍?
请问做delay,为什么要用打一拍,而不是用别的方式?边沿检测又是如何呢?
主要是解决同步的问题,寄存器之前的信号可能是来自别的时钟域,所以在本时钟域使用时,保证同步,可以采用寄存一拍的操作。主要用于时序逻辑的设计,也方便进行时序约束。
也就是说,来自不同时钟域的信号,为了同步,才让寄存器打一拍?那这样做有没有优势和劣势的比较呢?
请搜索“亚稳态”
我在21ic上写过一篇,你也可以看看。
多谢!希望以后经常交流!
电路上是个D触发器,怎么使用就要看实际情况了
嗯,阅读一下关于解决亚稳态的文章,再对时序设计的思想有所了解,那应该就能解决你的问题了。
一般用于增加信号驱动能力,或者分割组合逻辑规模
大一拍就是延迟一个周期!
为什么有时需要打2拍
单根信号采两级,双跳,可用于时钟同步
分割组合逻辑 组合逻辑太大 延时大 时序可能不过
异步时钟域应该是打两拍吧
能详细说说吗?
有时候时序难以满足的情况下,也会多打一拍,但要看工具具体的布局布线了,有的时候多打了一拍后,可能寄存器放的位置比原来的路径还长
有时候在跨时钟域进行控制信号传递的时候需要打拍,特别是高速时钟往低速始终传递信号的时候可以使用
打一拍的意思就是 把信号过一级寄存器后再使用!
过一级寄存器啊
延时和处理亚稳态
