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

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

3天内不再提示

为什么setup检查下一个沿而hold检查当前沿

FPGA开发之路 来源:FPGA开发之路 作者:FPGA开发之路 2022-11-21 10:30 次阅读

数字电路设计的可能都见过图一所示的setup和hold时间检查,从图中可以明显看出,setup time检查下一个沿,而hold time检查同一个沿。那么这是为什么呢 ?

52d269ba-68a0-11ed-8abf-dac502259ad0.jpg

图1

数字电路的工作原理

以数字电路设计常见的状态机为例,下一个状态的值总是由当前状态加一些判断条件决定。为了保证下一个状态值的正确,新的状态值要在下一个时钟沿被正确采样,同时不能被当前时钟沿采样。

因此,setup time 的检查是为了保证数据在下一个时钟沿被正确采样,而 hold time 的检查是保证数据不被当前沿采样或破坏,满足了这两点,数字电路便能正常工作。

Hold Time Violation

考虑一个两级移位寄存器,其launch clock 和 capture clock如图2所示。可以看到clock skew非常大,大于半个时钟周期。假设数据的延迟小于半个时钟周期,那么 hold time 的检查公式必然不满足, 即 Tcq + Tcomb < Tclk_skew + Thold。

对于这个两级移位寄存器,我们希望的值是 00(cycle0), 01(cycle1), 10(cycle2),00(cycle3)。但是由于第二级寄存器有hold time violation,数据在当前沿就被采样,那么我们实际看到的值为 00(cycle0),11(cycle1),00(cycle2),00(cycle3),完全是错误的结果。

52ed2246-68a0-11ed-8abf-dac502259ad0.png

图2

时序违反一定会有亚稳态发生吗

不一定。寄存器进入亚稳态有两个前提条件,一是数据要发生变化,二是数据的变化要发生在setup time和hold time限制的范围内。以上述图2为例,假设数据的变化没有出现在setup和hold time限制的范围内,尽管是有hold time violation,也是没有亚稳态发生的。

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

    关注

    30

    文章

    5028

    浏览量

    117721
  • 数字电路
    +关注

    关注

    192

    文章

    1396

    浏览量

    79750
  • Setup
    +关注

    关注

    0

    文章

    30

    浏览量

    11833

原文标题:为什么setup检查下一个沿而hold检查当前沿

文章出处:【微信号:FPGA开发之路,微信公众号:FPGA开发之路】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPC检查,FPC检查是什么意思

    FPC检查,FPC检查是什么意思  目前对柔性印制板FPC多进行100%的检查。当然除了FPC断线短路必须检查并有检查设备外,用目视
    发表于 03-17 10:32 8319次阅读

    Setup/Hold Time Problem

    Setup/Hold Time ProblemConclusionIf the Setup/Hold time error happen on the Input Register (
    发表于 09-11 09:23

    【FPGA经典试题】电路模块的setup-time和hold-time是正值还是负值

    请问:a.对于D-FF 而言,它的setup-time 和hold-time 是正值还是负值?为什么?b.对于
    发表于 03-15 10:41

    解释下setuphold time

    本帖最后由 gk320830 于 2015-3-5 18:27 编辑 setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。保持时间是
    发表于 04-12 16:40

    不同时钟域之间的多周期路径

    Hold)设置为2,那么计算保持时间(Hold time),检查的参考时钟要向前移动目的端的时钟周期。quartus II 分析时序时
    发表于 03-17 17:43

    机器视觉技术——人工智能的下一个前沿

    `国外科技网站Venturebeat发布文章称,人工智能在过去年里有着强劲的发展,给人们带来越来越多的益处。未来,机器视觉将会是人工智能的下一个前沿领域。随着该类技术的发展,明年将
    发表于 12-17 17:14

    如何检查每帧发送的数据总量?

    下一个项目,如何检查每帧发送的数据总量?多谢。MayFLY。 以上来自于百度翻译 以下为原文Hi, I modified AN75779_001-75779_0B source code
    发表于 06-11 14:11

    开关控制LED如何在次按下一个下一个LED将关闭

    问候大家,开关控制LED在次按下一个下一个LED将关闭,请帮助我如何创建它。开关是推式开关。下面是要修改的模块。/输入显示是开关按压。
    发表于 07-08 15:08

    什么是SetupHold时间

    保持稳定不变的时间。输入数据信号应提前时钟上升沿(如上升沿有效)T 时间到达芯片,这个 T就是建立时间通常所说的 SetupTime。如不满足 Setup Time,这个数据就不能被这
    发表于 12-21 07:39

    建立时间和保持时间(setup time 和 hold time)

    建立时间和保持时间贯穿了整个时序分析过程。只要涉及到同步时序电路,那么必然有上升沿、下降沿采样,那么无法避免setup-time 和 hold-time这两个概念。 1. 什么是setup
    发表于 02-08 14:48 5034次阅读

    PCB设计检查中的视觉检查

    视觉检查 责任编辑:xj 原文标题:PCB设计检查12视觉检查 文章出处:【微信公众号:汽车电子硬件设计】欢迎添加关注!文章转载请注明出处。
    的头像 发表于 11-13 15:49 1795次阅读

    启用负时序检查的步骤

    检查时序窗口的稳定性,包括:setuphold、setuphold、recovery、removal和recrem。
    的头像 发表于 10-19 09:46 4673次阅读

    通过解剖一个边沿触发器简要说明setuphold产生原因

    在后仿真过程中经常会遇到关于setuphold violation的问题,但是关于setuphold time的产生原因和由来很多人还比较朦胧,为此本文通过解剖一个边沿触发器简要说
    的头像 发表于 07-04 09:32 795次阅读
    通过解剖一个边沿触发器简要说明<b class='flag-5'>setup</b>和<b class='flag-5'>hold</b>产生原因

    Wi-Fi 6E:Wi-Fi的下一个前沿

    电子发烧友网站提供《Wi-Fi 6E:Wi-Fi的下一个前沿.pdf》资料免费下载
    发表于 07-19 16:48 0次下载
    Wi-Fi 6E:Wi-Fi的<b class='flag-5'>下一个</b><b class='flag-5'>前沿</b>

    什么是SetupHold时间?

    什么是SetupHold时间? SetupHold时间是数字电路中一种时序要求,用于确保稳定的数据传输和正确的电路操作。 在数字电路中,数据的传输需要遵循一定的时间要求。
    的头像 发表于 11-17 14:11 1272次阅读