为什么TLF中setup和hold可以为负值

总结:

简单来说,因为flip-flop 端口到 gate 有一段delay,如果clock 那段delay明显要大,setup就可能是负值了;如果flip-flop端口gata那段delay明显太大,hold就可能取负值了。在我看来,二者的作用都是用来微调数据和时钟经过filp-flop传输时的同异步问题,避免数据和时钟发生大的出入从而无法正常经过过Flip-flop传输信号。

如下所示Edge-Triggered(rise)D Flip-flop ,在针对单个Flip-flop而言,建立时间Tsu一般对应G1和G2与非门的延迟,保持时间Thold一般对应G3和G4的延迟。图1中,CLK从0至1,D从d1到d2,必须提前一个Tsu使G1/G2 输出端转变成d2。图2中,CLK保持1,D 从d2到d3,必须推迟一个Thold使G3/G4输出端已经为d2。对应Timing Library中setup和hold time应该是指,如图1 ,CLK到G3/G4的Delay太大,为了保证数据能“按时”到达G3/G4输入端使信号D正常输入,所以setup time取负值;如图2,D到G2的Delay太大,D到G1/G2 与非门的delay太大,可能会影响数据传输速率等因素,则hold 取负值。

1.边沿D触发器(上升沿)与其setup  time和hold  time原理

当CLK=0时,与非门G3和G4的输出均为1,输出的1反馈到G1和G2作为输入,导致G1和G2的输出分别为D和/D,输出的D和/D又反馈到G3和G4;而G5和G6在此期间一直锁存着之前的数据, 不受输入影响。

2,当CLK=1时,与非门G3和G4的输出变为/D和D,输出到G5和G6作为输入,根据锁存器的原理,G5和G6最终会稳定的输出Q和/Q

再考虑与非门的延时。

 G2G1 的延迟为T1,当CLK=0时,如果D在时钟跳变前的T(T<T1)时间才从d1更新为d2,那么G1和G2在时钟跳变时刻的输出值肯定是d1和/d1,而不是d2和/d2,进而影响到G3和G4的输出。如果要使得G1和G2的输出为d2和/d2,就必须要求D起码在时钟跳变之前的T1时间内维持d2稳定不变。这个T1就是建立时间Tsu。这个还可以理解。

当CLK=1时,G3G4的延迟为T2,当CLK=1时,如果D在时钟跳变之后的T(T<T2)时间从d2更新为d3,由于G3和G4的输入在T的时间内还保持为1,所以D的更新会影响G2和G1的输出,进而影响G3和G4的输出,进而影响G5和G6的输出,造成输出Q和/Q发生震荡或者亚稳态。T2为保持时间Thold

2.Setup和Hold为负值的原理

由上面的的原理可看出:TsuThold根本不能为负值TLF文件中setup timehold time应该取的是一个同步传输时序电路的参考时间段,以使数据通路和时钟通路在穿越Flip-flop时不会出现异步现象从而导致数据传输出现震荡或者亚稳态。

图1中,CLK从0至1,D从d1到d2,必须提前一个Tsu使G1/G2 输出端转变成d2。图2中,CLK保持1,D 从d2到d3,必须推迟一个Thold使G3/G4输出端已经为d2。对应Timing Library中setup和hold time应该是指,如图1 ,CLK到G3/G4的Delay太大,为了保证数据能“按时”到达G3/G4输入端使信号D正常输入,所以setup time取负值;如图2,D到G2的Delay太大,D到G1/G2 与非门的delay太大,可能会影响数据传输速率等因素,则hold 取负值。

时间: 2024-10-31 00:14:37

为什么TLF中setup和hold可以为负值的相关文章

数字IC前后端设计中Setup违反的修复方法

本文转自:自己的微信公众号<集成电路设计及EDA教程> 数字IC设计中Setup的分析与优化贯穿前后端设计中,最好在开始后端设计之前就获得一个没有Setup违反的网表,下面按照从前到后的流程逐一讲解每个阶段如果出现Setup违反该如何解决.下面用到的命令,主要针对的是Synopsys公司的综合工具DC以及布局布线工具ICC.还有需要注意的是,Setup的修复和之后要讲解的Hold的修复有很大的不同,Setup的违反随着布局到布线阶段的推进,它是越来越恶化的,不像Hold,线延迟会有益于Hold

hadoop中setup,cleanup,run和context讲解

hadoop 执行中的setup run cleanup context的作用1.简介1) setup(),此方法被MapReduce框架仅且执行一次,在执行Map任务前,进行相关变量或者资源的集中初始化工作.若是将资源初始化工作放在方法map()中,导致Mapper任务在解析每一行输入时都会进行资源初始化工作,导致重复,程序运行效率不高!2) Mapper或Reducer运行3) cleanup(),此方法被MapReduce框架仅且执行一次,在执行完毕Map任务后,进行相关变量或资源的释放工

一个关于python3中setup.py小概念

一个关于setup.py小概念关于python setup.py  bdistpython setup.py  sdist两者的区别sdist  指的是source dist 即源码发布,带setup.pybdist  指的是built (binary) dist 即编译过(二进制)发布 不带setup.py 查看setup.py各种编译命令参数python setup.py  --help-commands 查看具体某个命令参数python setup.py bdist --help 查看se

library 中的internal power为何为负值?

下图是library中一个寄存器Q pin 的internal_power table, 表中该pin 的internal power 大多都是负值.其实library 中的internal_power 不是功率,而是热量,单位是焦耳不是瓦特 原因: Internal power 为负值是由Liberate K 库的建模方式决定的,Liberate K 库的时候,对internal power 的建模有三种模式,由变量 pin_based_power 的值控制. pin_based_power=

Quartus II 中 Verilog 常见警告/错误汇总

Verilog 常见错误汇总 1.Found clock-sensitive change during active clock edge at time <time> on register "<name>" 原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化.而时钟敏感信号是不能在时钟边沿变化的.其后果为导致结果不正确. 措施:编辑vector source file 2.Verilog HD

同步电路的setup time和hold time

在不考虑时钟的偏移和抖动问题的情况下,先来说一下单周期同步电路的时序问题.通常来说一个同步的时序电路首先要保证单个同步元器件的数据能够稳定的被采集,以不至于太快的传入到下一级同步元件中,这个说的就是hold time.接下来为了保证数据可以在不同的数据流之间进行转换,也就是说由A发出的数据能够正确的被B所采集,以此类推,保证了数据在所有的同步元件中正常传输,为了达到这个目的,就要求发出的数据满足采集数据同步元件的setup time. 依照上面的论述,要使得同步电路正常的工作,首先要保证数据能够

setup time和hold time的周期问题

为什么计算setup time的slack时需要考虑加周期,hold time时不需要? 总结一: 因为计算setup time时,由于存在数据传输data delay,Launch edge与Capture edge并不对应时钟信号source clock的同一个时钟沿,因此需要考虑加周期.单时钟周期检查的时候工具默认capture edge-launch edge=1个周期. Hold time时由于二者对应的是同一个时钟沿,所以不考虑周期. 如图所示:REG1.CLK的第一个时钟上升沿对应

【转】setup time和hold time的周期问题(slack)

为什么计算setup time的slack时需要考虑加周期,hold time时不需要? 总结一: 因为计算setup time时,由于存在数据传输data delay,Launch edge与Capture edge并不对应时钟信号source clock的同一个时钟沿,因此需要考虑加周期.单时钟周期检查的时候工具默认capture edge-launch edge=1个周期. Hold time时由于二者对应的是同一个时钟沿,所以不考虑周期. 如图所示:REG1.CLK的第一个时钟上升沿对应

数字设计中的时钟与约束

最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的时钟(与建模)吧.主要内容如下所示: ·同步电路与异步电路: ·时钟/时钟树的属性:偏移(skew)与时钟的抖动(jitter).延时(latency).转换(transition)时间: ·内部时钟: ·多路复用时钟: ·门控时钟: ·行波时钟: ·双沿时钟: ·Design Compiler中的时钟约束. 1.同步电路与异步电路 首先来谈谈同步电路与异步电路.那么首先就要知道什么是同步电路.什么是