什么是建立和保持时间违例大小Slack

科技   2024-10-17 20:31   美国  


上图显示了最常见的时序路径,寄存器到寄存器。然而,为了可靠地将数据保存到后续的触发器中,需要满足触发器的建立和保持时间要求

setup和hold slack被定义为所需时间(基于建立和保持时间)与数据到达端点时间之间的差额。


STA工具使用slack值来识别违例的时序路径,以进一步优化以满足建立和保持时间。

Setup Slack = Required Time - Arrival Time
Hold Slack  = Arrival Time    - Required Time


正slack表明时序路径符合时序约束要求(setup和hold),而负slack表示时序路径违反了时序约束,需要进一步优化。


以下是不同时序路径的建立和保持slack方程


1.Register-to-Register Setup Slack



Arrival Time = Tck->q + Combo Delay
Required Time = Clock Period - Setup Time
Setup Slack = Required Time - Arrival Time 
                    = Clock Period - Setup Time - Tck->q - Combo Delay


以下是一个负建立时间slack的示例。由于组合延迟(慢逻辑)太大,数据D2在建立时间窗口内延迟到达,这违反了建立时间时序要求。



2.Register-to-Register Hold Slack


Required Time = Hold Time
Arrival Time = Tck->q + Combo Delay
Hold Slack = Arrival Time - Required Time
                   = Tck->q + Combo Delay - Hold Time

这表明触发器CK-to-Q延迟和组合延迟的总延迟要求大于保持时间约束。这解释了为什么最常见的保持时间优化是在寄存器之间添加buffer,这增加了满足保持时间约束的组合延迟。

数字芯片实验室
前瞻性的眼光,和持之以恒的学习。
 最新文章