建立时间裕量和保持时间裕量

前面的博客里面有讲解建立时间Tsetup和保持时间Tholdon的概念以及要满足的和时钟之间的关系,这里不再重复,在了解建立时间裕量和保持时间裕量之前我们先来了解一下触发沿Launch Edges 和锁存沿Latch Edges。

建立时间裕量和保持时间裕量

一般认为Launch edge为 T=0;

Launch Edge: the edge which “launches” the data from source register

Latch Edge: the edge which “latches” the data at destination register (with respect to the launch edge, selected by timing analyzer; typically 1 cycle)

数据到达时间:(到达哪里?到达目的寄存器)

概念:The time for data to arrive at destination register’s D input

建立时间裕量和保持时间裕量

数据从触发沿开始到达目的寄存器的D端需要的时间,

建立时间裕量和保持时间裕量

通过这个图片可以清楚的知道 Data arrival time = launch edge +Tclk1 + Tco +Tdata 

时钟到达时间:(到达哪里?到达目的寄存器)

概念:The time for clock to arrive at destination register’s clock input

建立时间裕量和保持时间裕量

建立时间裕量和保持时间裕量

由图可以知道,时钟到达时间:Clock arrival time = Latch edge + Tclk2 (为什么是锁存沿+Tclk2 ?看Latch edge的定义就可以知道(latch edge:从源寄存器“启动”数据的边缘在目的地寄存器“锁存”数据的边沿,相对于发射边缘,由定时分析器选择;通常为1个周期))

数据要求时间:

概念:数据锁存到目标寄存器所需的最短时间

setup:

建立时间裕量和保持时间裕量

Data Required Time = Clock Arrival Time - Tsu 

Hold:

建立时间裕量和保持时间裕量

Data Required Time = Clock Arrival Time + Th 

建立时间裕量:满足设置时序要求的余量。 它确保启动的数据及时到达,以满足锁定要求。

建立时间裕量和保持时间裕量

Setup Slack = Data Required Time(T+skew) – Data Arrival Time (Current) 

保持时间裕量:

建立时间裕量和保持时间裕量

Hold Slack = Data Arrival Time (Next)– Data Required Time

ps:建立时间裕量保持时间裕量的计算可以借鉴讲建立时间保持时间那片博客。