1.建立时间与保持时间
CMOS 工艺下的 D-FF 结构如图 1-4 所示,先由传输门和两个反相器组成一个循环电路(锁存器),再由前后两级锁存器按主从结构连接而成。这里的传输门起开关的作用,随着 CLK 的状态变化切换开关。只看输出的话,前级锁存器的值会将时钟输入的变化井然有序地传入后级锁存器。为了防止时钟信号变化时输入信号发生冒险,从而使稳定的输入信号进入前级锁存器,前级锁存器的时钟相位应该与产生输入信号的电路时钟反向。图 1-5 为 D-FF 的原理图。
当 CLK=0(主锁存器工作)时,位于前级的主锁存器将输入 D 的值保存进来,后级的从锁存器则维持上一时钟周期的数据。由于此时前级和后级反相器环路之间的传输门是关闭状态,所以前级的信号不会传送到后级。当 CLK=1(从锁存器工作)时,前级反相器环路中保存的数据会传输到后级,同时输入 D 的信号会被隔离在外。此时如果前级反相器环路中的信号没有循环一圈以上
,就会出现如图 1-6 所示的在 0 和 1之间摇摆的中间电位,这就是所谓的亚稳态(metastable)[4]。由于亚稳态时间比延迟时间长,在该阶段读取数据可能会引入错误,所以我们引入建立时间(setup time)来约束在时钟上升沿到来前输入 D 保持稳定的时间。
当 CLK=1 时,如果输入 D 在传输门关闭前就发生变化,那么本该在下一周期读取的数据就会提前进入锁存器
,从而引起反相器环路振荡或产生亚稳态。因此在 CLK=1 之后也需要输入 D 维持一定的时间,我们称之为保持时间(hold time)约束。
为了正确地从输入读取数据,并正确地将数据输出,FPGA 内所有的 FF 都要遵守建立时间和保持时间等时序上的约束。
摘自:《FPGA原理和结构》第一章,原书链接:https://www.ituring.com.cn/book/2432
链接:https://pan.baidu.com/s/19GXEtqQzI2YKXDTco-G2KQ
提取码:kqhx
2.建立时间与保持时间
建立时间计算公式: