0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

时序逻辑的时钟到Q传播和建立/保持时间

OpenFPGA 来源:OpenFPGA 2023-02-12 10:28 次阅读

数字门级电路可分为两大类:组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点,在后面会作为单独的主题处理。

组合逻辑描述了门级电路,其中逻辑块的输出直接反映到该块的输入值的组合,例如,双输入AND门的输出是两个输入的逻辑与。如果输入值发生变化,输出值将反映这一变化,组合逻辑的RTL模型需要反映这种门级行为,这意味着逻辑块的输出必须始终反映该逻辑块当前输入值的组合。

SystemVerilog有三种在可综合RTL级别表示组合逻辑的方法:连续赋值语句、always程序块和函数。接下来几篇文章将探讨每种编码风格,并推荐最佳实践编码风格。

时序逻辑的时钟到Q传播和建立/保持时间

ASICFPGA的实现层面,时钟时序逻辑具有不同于组合逻辑的特点。其中一个特点是,从时钟输入触发到触发器输出变化的传播延迟。这通常被称为时钟到Q的延迟。第二个特性是建立和保持时间。建立时间是在时钟触发前数据输入必须稳定的时间段。

保持时间是时钟触发后数据必须保持稳定的时间段。如果数据在建立和保持时间内发生变化,作为新的触发器状态存储的值将是不确定的。在这些条件下,一个触发器的状态也有可能在数值之间振荡一段时间,然后再稳定到一个稳定的数值。这种不稳定的时期被称为偏移性(metastability)。

RTL模型应该是零延迟模型--这是最佳协同结果质量(QoR)的要求--这意味着RTL模型不存在传播延迟。触发器的输出在仿真时间的同一时刻发生变化,没有门级时钟到Q的传播延迟。作为零延迟模型,抽象的RTL触发器也没有建立和保持时间,也不会发生变异。然而,时钟到Q的传播行为必须用抽象的RTL模型来表示,而且RTL模型需要反映适当的设计技术,以避免在ASIC或FPGA中实现后出现偏移性的情况。

时序逻辑的时钟到Q的传播延迟。在ASIC和FPGA的实现层面上,时钟序列器件有一个时钟到Q的传播延迟。触发器的状态或内部存储在时钟的一个边沿上被更新。过渡到一个新的状态并不是瞬间发生的。内部状态的改变需要少量的时间。在这个过渡时间内,翻转器的前一个状态可以在翻转器的输出上使用。当多个触发器串联在一起时,这种通过每个触发器的时钟到Q的传播延迟在一系列触发器中产生级联效应。移位寄存器和计数器就利用了这种级联效应。

图8-1中的电路表示一个4位的约翰逊(Johnson)计数器,它是一个移位寄存器,最后一个触发器的输出被反相并反馈到第一个触发器的输入。

fae7ed5c-a980-11ed-bfe3-dac502259ad0.png

图8-1:4位约翰逊(Johnson)计数器示意图

复位后,这个4位约翰逊(Johnson)计数器的输出示例是:

cnt[0:3]-0000
cnt[0:3]-1000
cnt[0:3]-1100
cnt[0:3]-1110
cnt[0:3]-1111
cnt[0:3]-0111
cnt[0:3]-0011
cnt[0:3]-0001
cnt[0:3]-0000

从一个触发器到下一个触发器的级联效应在这个输出中很明显。上一个触发器DFF4的O输出被反转,在第一个触发器的D输入端oFF1上变成1。在第一个时钟周期,这个1被存储到DFF1中,而DFFl的旧状态,一个0,被级联到DFF2。在第二个时钟周期,DFFl输出的1被级联到DFF2中。

在第三个时钟周期,DFF2的1级联到DFF3,而在第四个时钟周期,DFF3的1级联到DFF4。在第四个时钟周期后,DFF4的输出变为1,DFFl的D输入变为0。下一个时钟周期,0加载到DF Fl中,并且0在随后的每个时钟周期中级联通过四个触发器。

约翰逊(Johnson)计数器的设计取决于每个触发器的时钟到Q的传播延迟,它允许系列中每个触发器的前一个状态成为系列触发器中每个后续阶段的稳定D输入。即使RTL代码用零延迟建模,RTL模型也要保持这种时钟到Q的传播延迟行为,这一点至关重要。触发器行为的这一重要特征是由非阻塞赋值符号(<=)表示的。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593307
  • asic
    +关注

    关注

    34

    文章

    1158

    浏览量

    119269
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59077
  • Verilog语言
    +关注

    关注

    0

    文章

    113

    浏览量

    8162
  • 门级电路
    +关注

    关注

    0

    文章

    15

    浏览量

    1935

原文标题:SystemVerilog-时序逻辑建模(3)建立/保持时间

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA的时钟设计:如何建立时间保持时间

    时钟是整个电路最重要、最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑
    发表于 06-26 10:37 4620次阅读
    FPGA的<b class='flag-5'>时钟</b>设计:如何<b class='flag-5'>建立时间</b>与<b class='flag-5'>保持</b><b class='flag-5'>时间</b>

    静态时序建立时间保持时间分析

    静态时序分析包括建立时间分析和保持时间分析。建立时间设置不正确可以通过降低芯片工作频率解决,保持
    的头像 发表于 08-22 10:38 3415次阅读

    芯片设计进阶之路—从CMOS到建立时间保持时间

    建立时间(setup time)和保持时间(hold time)是时序分析中最重要的概念之一,深入理解建立时间
    发表于 06-21 10:44 1005次阅读
    芯片设计进阶之路—从CMOS到<b class='flag-5'>建立时间</b>和<b class='flag-5'>保持</b><b class='flag-5'>时间</b>

    建立时间保持时间讨论

    ;Tpd 为时钟 T1 和 T2 的偏差;在一个时钟周期 T 之内,数据从寄存器 T1 传出,需要经过延时 Tco,然后经过组合逻辑,需要经过延时 Tdelay,最后到达寄存器 T2
    发表于 03-10 23:19

    FPGA实战演练逻辑篇51:建立时间保持时间

    建立时间保持时间本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》配套例程下载链接:http://pan.baidu.com/s/1pJ5bCtt 在这个波形中,我们看到cl
    发表于 07-17 12:02

    FPGA实战演练逻辑篇57:VGA驱动接口时序设计之4建立保持时间分析

    VGA驱动接口时序设计之4建立保持时间分析本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》配套例程下载链接:http://pan
    发表于 08-02 19:26

    VGA驱动接口时序设计数据的建立时间保持时间

    VGA驱动接口时序设计之4建立保持时间分析本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》配套例程下载链接:http://pan
    发表于 04-10 06:33

    时序约束是如何影响数字系统的,具体如何做时序分析?

    ,Tclk2q为寄存器的传输延时(从时钟有效沿输出的时间),Tdelay为两个寄存器之间的组合逻辑延时。 从公式(1)中可以看出,
    发表于 08-16 07:25

    为什么触发器要满足建立时间保持时间

    什么是同步逻辑和异步逻辑?同步电路和异步电路的区别在哪?为什么触发器要满足建立时间保持时间?什么是亚稳态?为什么两级触发器可以防止亚稳态
    发表于 08-09 06:14

    FPGA时序约束--基础理论篇

    FPGA开发过程中,离不开时序约束,那么时序约束是什么?简单点说,FPGA芯片中的逻辑电路,从输入输出所需要的时间,这个
    发表于 11-15 17:41

    高速CMOS输入DAC中的建立保持时间测量

    为实现高速DAC的最佳性能,必须满足一定的建立保持时间要求。在200 MSPS至250 MSPS的时钟速率下,FPGA/ASIC/DAC的全部时序
    发表于 11-24 14:20 33次下载
    高速CMOS输入DAC中的<b class='flag-5'>建立</b>和<b class='flag-5'>保持</b><b class='flag-5'>时间</b>测量

    FPGA时序约束的建立保持时间方法

    首先来看什么是时序约束,泛泛来说,就是我们告诉软件(Vivado、ISE等)从哪个pin输入信号,输入信号要延迟多长时间时钟周期是多少,让软件PAR(Place and Route)后的电路能够
    的头像 发表于 01-28 17:34 3117次阅读
    FPGA<b class='flag-5'>时序</b>约束的<b class='flag-5'>建立</b>和<b class='flag-5'>保持</b><b class='flag-5'>时间</b>方法

    到底什么是建立时间/保持时间

    时序电路设计中,建立时间/保持时间可以说是出现频率最高的几个词之一了,人们对其定义已经耳熟能详,对涉及其的计算(比如检查时序是否正确,计算
    的头像 发表于 06-27 15:43 5965次阅读
    到底什么是<b class='flag-5'>建立时间</b>/<b class='flag-5'>保持</b><b class='flag-5'>时间</b>?

    SOC设计中的建立时间保持时间

    建立时间保持时间是SOC设计中的两个重要概念。它们都与时序分析有关,是确保芯片正常工作的关键因素。
    的头像 发表于 08-23 09:44 462次阅读

    PCB传输线建立时间保持时间建立时间裕量和保持时间裕量

     信号经过传输线到达接收端之后,就牵涉到建立时间保持时间这两个时序参数,它们表征了时钟边沿触发前后数据需要在锁存器的输入持续
    发表于 09-04 15:16 426次阅读
    PCB传输线<b class='flag-5'>建立时间</b>、<b class='flag-5'>保持</b><b class='flag-5'>时间</b>、<b class='flag-5'>建立时间</b>裕量和<b class='flag-5'>保持</b><b class='flag-5'>时间</b>裕量