FPGA建立时间与保持时间

发布时间 : 星期日 文章FPGA建立时间与保持时间更新完毕开始阅读

图12 一位同步器设计

(1)图12中的同步电路其实叫\一位同步器\它只能用来对一位异步信号进行同步,而且这个信号的宽度必须大于本级时钟的脉冲宽度,否则有可能根本采不到这个异步信号。 (2)为什么图一中的同步电路只能用来对一位异步信号进行同步呢?

(2a)当有两个或更多的异步信号(控制或地址)同时进入本时域来控制本时域的电路时,如果这些信号分别都用图12中的同步电路来同步就会出现问题,由于连线延迟或其他延迟使两个或更多的异步信号(控制或地址)之间产生了skew,那么这个skew经过图12的同步器同步进入本时域后,会产生很大的skew 或产生竞争,导致本时域电路出错。

出现的问题如下图13所示:

图13 同步多个控制信号时出错

(2b)如果是异步数据总线要进入本时域,同样不能用图12的电路,因为数据的变化是很随机的,其0的宽度或1的宽度和本时域时钟脉冲无关,所以图12的电路可能会采不到正确数据。 (3)注意,第二个触发器并不是避免“亚稳态的发生”,确切的说,该电路能够防止亚稳态的传播。也就是说,一旦第一个触发器发生了亚稳态(可能性存在),由于有了第二个触发器,亚稳态不会传播到第二个触发器以后的电路中去。

(4)第一级触发器发生了亚稳态,需要一个恢复时间来稳定下来,或者叫退出亚稳态。当恢复时间加上第二级触发器的建立时间(更精确的,还要减去clock skew)小于等于时钟周期的时候(这个条件还是很容易满足的,一般要求两级触发器尽量接近,中间没有任何组合逻辑,时钟的skew较小),第二级触发器就可以稳定的采样,得到稳定的确定的数据了,防止了亚稳态的传播。

(5)FF2是采样了FF1的输出,当然是FF1输出什么,FF2就输出什么。仅仅延迟了1个周期。注意,亚稳态之所以叫做亚稳态,是指一旦FF1进入,其输出电平不定,可能正确也可能错误。

所以必须说明的是,虽然这种方法可以防止亚稳态的传播,但是并不能保证两级触发器之后的数据是正确的,因此,这种电路都有一定数量的错误电平数据,所以,仅适用于少量对于错误不敏感的地方。对于敏感的电路,可以采用双口RAM或FIFO。 2 输入pulse有可能小于一个时钟周期宽度情况下的同步电路

对2的情况通常采用如下图14的反馈电路。该电路的分析如下:假设输入的数据是高电平,那么由于第一个触发器FF1是高电平清零,所有输出也是高电平,采用正确。如果输入是第电平那么被FF1被强制清零,这个时候输出位零。这样就保证了输出的正确性。

图14输入pulse有可能小于一个时钟周期宽度情况下的同步电路

对于要控制多个信号的情况可以参考详细的分析:http://www.fpga.com.cn/中的设计异步多时钟系统的综合以及描述技巧.pdf。

个人对建立保持时间的理解 - 转1.从采集数据角度:

建立时间-clock上升沿到来前,被采集数据稳定不变的时间.时间过少,则采不到数据.

保持时间-clock上升沿到来后,被采集数据稳定不变的时间.时间过少,则采不到数据.如图(setup-hold time picture)

2.触发器角度:

建立时间:触发器在时钟沿来到前,其数据输入端的数据必须保持不变的时间;决定了触发器之间的组合逻辑的最大延迟.

保持时间:触发器在时钟沿来到后,其数据输入端的数据必须保持不变的时间.决定了触发器之间的组合逻辑的最小延迟. 3.Why???? 网上的部分言论.

setup time is the time required to charge the input capacitance of the FF(D input) to a correct logic(i.e to the VDD for logic-1 and VSS for logic-0); hold time is required to for two reasons:

1.to take care of clock skew effec

2.to allow the internal nodes of FF to charge/discharge to correct voltage levels.

1、setup time的意义:为什么Data需要在Clock到达之前到达?

其实在实际的问题中,setup time并不一定是大于零的,因为Clock到达时

刻并不等同于latch的传输门A关闭的时刻(更何况这种关闭并不是绝对的和瞬间完成的),这之间有一个未知的延迟时间。

为使问题简化,假设Clock的到达时刻为传输门A关闭、传输们B打开的时

刻。如果Data没有在这之前足够早的时刻到达,那么很有可能内部的feedback线路上的电压还没有达到足够使得inv1翻转的地步(因为inv0有延时,Data有slope,传输门B打开后原来的Q值将通过inv2迫使feedback保持原来的值)。

联系合同范文客服:xxxxx#qq.com(#替换为@)