建立时间(setup time)与保持时间(hold time)---相关内容
静态时序分析:通过穷举分析每一条路径的延时,用以确定最高工作频率,检查时序约束是否满足,分析时钟质量。
动态时序分析:通过给定输入信号,模拟设计在器件实际工作的功能和延时情况。
1.什么是建立时间、保持时间?
建立时间指在触发器的时钟采样沿到来之前,数据保持稳定不变的时间。
保持时间指在触发器的时钟采样沿到来之后,数据保持稳定不变的时间。
因为时钟偏斜,到达DFF2为CLK2
建立时间分析:取各组块最大延时计算
考虑时钟到达DFF2的时钟偏斜Tskew,则建立时间余量为Tset_slack=Tclk-Tcq-Tco-Tsetup+Tskew,使DFF2建立时间不违例,需保证Tset_slack>0。
其中Tcq为DFF1的时钟端到输出延迟,为器件固定属性;Tco是组合逻辑电路的延时,可以通过优化逻辑设计改变其值,使其满足建立保持时间不违例;Tsetup为触发器固有属性,定值。Thold为触发器固有属性,定值。
若不考虑DFF2的时钟偏斜,则建立时间裕量为Tset_slack=Tclk-Tcq-Tco-Tsetup。
保持时间分析:取各组块最小延时计算
考虑时钟到达DFF2的时钟偏斜Tskew,则保持时间余量:Tskew+Thold+Thold_slack=Tcq+Tco,因此可推出Thold_slack=Tcq+Tco-Tskew-Thold,使保持时间不违例,则需Thold_slack>0。若不考虑时钟偏斜,则Thold_slack=Tcq+Tco-Thold。
扩展:
时钟抖动:两个时钟周期之间存在的差值,这种误差发生在时钟发生器内部,和晶振和PLL内部有关,布线对其没有影响。主要表现在时钟频率上的不一定。
时钟偏斜:同样的时钟产生的多个子时钟信号之间的延时差异。主要表现在时钟相位上的不确定。
影响时钟偏斜的原因:布线长度及负载,时钟偏斜无法避免。
典型题:
(椭圆表示组合逻辑,DFF1,2表达触发器)
则有四条时序路径:
(1)从输入端到DFF1的D端,则需满足的时序要求是:Tclk1-Tin_delay-Tcom1-Tsetup>0(Tin_delay为输入延迟)
(2)从寄存器DFF1到寄存器DFF2,满足的时序要求是:Tclk-Tcq-Tcom2-Tsetup>0(clk1=clk2,且不考虑时钟偏斜)
(3)从寄存器DFF2到输出端口,满足的时序要求:Tclk-Tcq-Tcom3-Tsetup-Tto_delay>0(Tsetup为下一级寄存器的建立保持时间,Tto_delay为输出端延时)
(4)从输入端到输出端,满足的时序要求:Tclk-Tin_delay-Tcom4-Tto_delay-Tsetup>0(从输入到输出则前后各有寄存器接入)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
· 一个适用于 .NET 的开源整洁架构项目模板
· 【开源】C#上位机必备高效数据转换助手
· .NET 9.0 使用 Vulkan API 编写跨平台图形应用
· MyBatis中的 10 个宝藏技巧!
· [.NET] 使用客户端缓存提高API性能