2.2 时序路径的种类
数字逻辑可以分解为许多时序路径,时序路径可以是以下任意一种:
1、寄存器/锁存器的时钟引脚到另一个寄存器/锁存器的d引脚之间的路径。
2、主输入(也可以理解为基本输入,图中模块两侧pin)到寄存器或锁存器的d引脚之间的路径。
3、寄存器的时钟引脚与主要输出之间的路径。
4、从主输入到宏(图中macro)输入引脚的时序路径。
5、从宏输出引脚到主输出引脚的时序路径
6、从宏输出引脚到另一个宏输入引脚的时序路径(图中未显示)
7、通过模块内部的组合逻辑通过模块的输入引脚和输出引脚的路径。
2.3 启动沿/发射沿(launch edge)
在同步设计中,特定事件或特定数量的计算是在一个时钟周期内完成的。诸如在同步设计中使用的触发器和锁存器之类的存储元件,是用于执行计算时保持输入值在一个时钟周期内稳定的。
在时钟周期的开始,事件或者计算被启动,并且在时钟周期结束之前必须完成事件或计算并且必须准备好结果。设计中的存储元件在时钟的上升沿或下降沿将数据从输入传输到输出。该边沿称为时钟的活跃(active)边沿。
在时钟周期内,数据从一个存储元件的输出通过组合逻辑传播到第二个存储元件的输入。数据必须在第二个存储元件的输入处满足一定的到达时间要求。
图S3,发射沿和捕获沿
如上图所示,第一个存储元件上时钟的活跃边沿(以红色显示)使新数据在存储元件的输出处可用,并开始通过逻辑传播数据。输入“ in”已在时钟的第一个有效(上升)沿之前上升到“1”,但是只有在时钟上升时,此“ in”的值才会传输到Q1引脚。时钟的此有效沿称为启动沿/发射沿(后续都使用发射沿),因为它在第一个存储元件的输出处发射数据,最终必须沿数据传播路径由下一个存储元件捕获该数据。
2.4 捕获沿(capture edge)
正如我们在上一个问题中讨论的那样,同步电路的工作方式必须在一个时钟周期内完成一定量的计算。在时钟的发射沿,存储元件在发射数据的存储元件的输出引脚上传输新的数据集。这些新数据按照特定的计算方式通过组合逻辑。
在时钟周期结束之前,新的计算数据必须在下一组存储元件中可用。因为下一个有效时钟沿(表示一个时钟周期的结束)会在存储元件的D2引脚上捕获计算的结果,并将结果传输到下一个时钟周期的Q2引脚。时钟的下一个活动沿(在图S3中以蓝色显示)称为捕获沿,因为它实际上是在时钟周期结束时捕获结果。
有一些注意事项。为了正确地捕获数据D2,数据必须在时钟的捕获沿之前的某个时间达到(简单说就是,在捕获沿之前,数据已经达到一定的时间)。这称为建立时间要求,我们将在后面讨论。
尽管说必须在一个时钟周期内完成特定计算,但也并非总是如此,通常情况下,确实必须在一个时钟周期内完成计算,但是很多时候,计算可能需要一个以上的周期。当发生这种情况时,我们称其为多循环路径。
2.5 建立时间(setup time)
对于任何顺序元素/元件,例如锁存器或触发器,当时钟捕获沿有效时,输入的数据必须已经稳定。实际上,在时钟捕获边缘之前,数据需要在一定时间内保持稳定,因为如果数据在时钟捕获边缘附近变化,则顺序元素(锁存或触发器)可能会进入亚稳态,并且可能需要未知的时间来解决亚稳态,并可能停留在与输入值不同的状态(输入1,最后变为0),从而在输出处捕获意外的值(错误的值)。
在时钟捕获边沿激活之前,输入数据所需保持的稳定时间称为该顺序元素的建立时间。
2.6 保持时间(hold time)
正如我们在之前关于建立时间的问题中看到的那样,对于任何顺序元素,例如锁存器或触发器,当时钟捕获沿有效时,数据需要保持稳定。实际上,在时钟捕获边沿停用后,数据需要在一定时间内保持稳定,因为如果数据在时钟捕获边沿附近变化,则顺序元素可能会进入亚稳态,并可能在输出端捕获错误的值。
在时钟捕获边沿停用后,需要保持数据稳定的时间要求被称为该时序的保持时间要求。(简单来讲,捕获沿之后的一段时间也需要数据保持一定的稳定时间)
没有回复内容