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,也是没有亚稳态发生的。

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

    关注

    31

    文章

    5310

    浏览量

    119984
  • 数字电路
    +关注

    关注

    193

    文章

    1600

    浏览量

    80490
  • Setup
    +关注

    关注

    0

    文章

    30

    浏览量

    11972

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    Setup/Hold Time Problem

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

    解释下setuphold time

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

    什么是SetupHold时间

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

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

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

    技术研发是华为基石 华为下一个研究前沿是AI

    9月19日,华为心声社区发布华为创始人任正非接受《纽约时报》专栏作家托马斯弗里德曼的采访纪要,采访时间为9月9日。在此次采访中,任正非表示华为要研究的下一个前沿领域是人工智能,华为将建设支撑人工智能。
    的头像 发表于 09-20 15:36 2878次阅读

    如何为下一个符号消除PCB设计项目

    学习如何消除对你的下一个符号和创造足迹PCB设计项目,使图书馆创建快速简单。
    的头像 发表于 10-23 07:08 2455次阅读

    关于FPGA的五基本概念

    信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time。如不满足setup time,这个数据就不能被这
    的头像 发表于 09-28 11:18 2316次阅读

    特斯拉披露:下一个超级工厂可能在美国不在印度

    据国外媒体报道,在特斯拉发布的10-Q文件中,该公司透露,其下一个超级工厂可能在美国不在印度。
    的头像 发表于 10-28 15:55 1612次阅读

    Verilog中四基础的时序分析

    下列 时序检查语句 错误的是() A. $setup(posedge clk, data, tSU) B. $hold(posedge clk, data, tHLD) C. $setuphold
    的头像 发表于 08-25 11:52 4346次阅读

    5FPGA基本概念问答

    信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time。如不满足setup time,这个数据就不能被这
    的头像 发表于 11-09 11:37 1186次阅读

    启用负时序检查的步骤

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

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

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

    时钟的上升沿之前,输入信号需要稳定在有效的数据值上的最小时间间隔。Hold时间指的是在时钟的上升沿之后,输入信号需要保持在有效的数据值上的最小时间间隔。这两时间要求是保证数据在电路中
    的头像 发表于 11-17 14:11 2016次阅读