[静态时序分析简明教程(二)] 基础知识:建立时间、保持时间、违例修复及时序分析路径

简介: [静态时序分析简明教程(二)] 基础知识:建立时间、保持时间、违例修复及时序分析路径

一、写在前面


一个数字芯片工程师的核心竞争力是什么?不同的工程师可能给出不同的答复,有些人可能提到硬件描述语言,有些人可能会提到对于特定算法和协议的理解,有些人或许会提到对于软硬件的结合划分,作者想说,这些说法,其实对也不对,硬件描述语言,翻来覆去无非是always和assign这几个语句的反复使用,而一些基础的协议算法,深究起来其实也并不复杂,于作者而言,在常规的技能以外,有两项额外的技能颇为重要,其中之一便为sdc/STA的分析能力,它的重要之处在于作为桥梁建立了前端和后端的连接,虽然对于DE工程师而言,初版交付的sdc往往不甚准确,也没有办法通过这份sdc生成一份无误的timing report,但sdc的内容体现却是完完整整的将时序约束从行为级的描述映射到了gate level这样一个真实的电路层次上面。

写此专栏,一为学习记录,二为交流分享,以犒粉丝读者。


1.1 快速导航链接·

静态时序分析简明教程(一)绪论

静态时序分析简明教程(二)基础知识:建立保持时间,违例修复,时序分析路径

静态时序分析简明教程(三)备战秋招,如何看懂一个陌生的timing report

静态时序分析简明教程(四)时钟常规约束

静态时序分析简明教程(五)时钟其他特性

静态时序分析简明教程(六)端口延迟

静态时序分析简明教程(七)完整端口约束

静态时序分析简明教程(八)虚假路径

静态时序分析简明教程(九)多周期路径

静态时序分析简明教程(十)组合电路路径

静态时序分析简明教程(十一)模式分析与约束管理

静态时序分析简明教程(十二)浅议tcl语言


二、建立时间


2.1 什么是建立时间

建立时间是在时钟信号有效沿到达之前,输入信号需要保持稳定的时间,假如不满足建立时间的要求,就可能产生亚稳态,这种现象被称作建立时间违例

image.png


2.2 建立时间违例的修复

image.png

在考虑建立时间违例的极限情况,我们需要保证数据到达的时间,至少比时钟边沿到达的时间,早一个setup time,而前一个寄存器的采样,又比后一个寄存器的采样,早一个周期,因此我们可以列出式子如下

tclk-q + tlogic+tsetup<=tskew+T

其中tclk-q是数据从前一个寄存器的clk到q的时间,tlogic是寄存器间的组合逻辑,tskew是前后寄存器时钟边沿到达的时间差,T是时钟周期,移项

tsetup <= tskew + T - tlogic - tclk-q

因此,解决建立时钟违例的方法,就是使等式的右边尽可能的大一些。

方法在于,比如增加tskew,clock通路上插入buffer,减少寄存器之间的组合逻辑,降低时钟频率以增加T,更换DFF器件以降低tclk-q等。


2.3 最大分析

建立时间的检查可以确保移动最慢的数据也能及时到达并满足建立的标准,因此,它又被称为最大分析(max analysis)。由于建立检查考虑了最晚到达的数据,所以也被称为晚期分析(late analysis)


三、保持时间


3.1 什么是保持时间

保持时间是在时钟信号有效沿到达之后,输入信号需要保持稳定的时间,假如不满足保持时间的要求,也有可能产生亚稳态,这种现象被称作保持时间违例

image.png


3.2 保持时间违例的修复

在考虑保持时间违例的极限情况,我们需要保证数据改变的时间比时钟沿到来的时间,至少晚一个holdtime。数据改变所需的时间,对于前一个寄存器而言,是指第二个时钟边沿到来时的数据移动的时间,对于第二个寄存器而言,也是指第二个时钟边沿到来的时间,因此我们可以列出式子如下:

image.png

tclk-q + tlogic>=tskew+thold

其中tclk-q是数据从前一个寄存器的clk到q的时间,tlogic是寄存器间的组合逻辑,tskew是前后寄存器时钟边沿到达的时间差,移项,为了解决违例,我们的目标是使右边的值尽可能大。

thold <= tclk-q+tlogic-tskew

我们可以增加tclk-q的值,换一些更慢的DFF,也可以增加tlogic的时间,这就是我们在本专栏绪论中所说的未必一定要减少组合逻辑delay的原因,当然,减少skew也可以解决holdtime violation的问题。

但是,修hold time violation比修setup time violation更简单,因为只需要在组合逻辑路径上插入buffer,我们就可以很迅速的解决hold time violation问题。


3.3 最小分析

保持时间的检查可以确保即使是移动最快的数据也不应该干扰其他数据,同时期望数据保持稳定。因此,数据路径计算最小延迟,被称为最小分析(min analysis)由于保持检查考虑了最早到达的数据,所以也称其为早期分析(early analysis)


四、时序分析路径


STA分析能够进行的基础,是任何的同步电路,时序路径都可以进行拆分,拆分成几类,统一进行建立时间、保持时间的检查,根据约束,来判断是否有违例发生。

每一条需要分析的路径,都有其自身起点和终点,因为我们在讨论建立时间保持时间的过程中,判断主要发生在:时钟沿到来的时间和数据到来的时间,因此不难区分出STA可能的起点和终点

起点:原始输入|寄存器时钟输入

终点:原始输出|寄存器数据输入

不管分析什么样的电路,STA的路径都可以根据上面的起点终点进行拆分,如下列表所示,这四条时序路径就是所有STA分析时需要检测的路径。

image.png

image.png


五、裕度(slack)


裕度是指:满足电路最低建立时间、保持时间以外的额外的冗余量,因此:我们通常情况下希望,首先,电路是不能有违例的,其次,冗余量越大越好。


5.1 建立slack

建立slack = 数据建立要求 - 最后一个到达的信号


5.2 保持slack

保持slack = 最早到达的信号 - 数据稳定的要求


六、总结


STA的核心就是对电路,尤其是寄存器进行建立时间和保持时间的分析,计算分析路径的裕度,因此我们在基础知识的介绍中,也是就此方面介绍有关setup time/hold time/violation repair/slack等内容,其实抛开STA/SDC外,这些知识在面试笔试中也是属于经常见到的常见考点,需要读者们重点掌握,而在基础知识外,下一节,我们会拿出真实的timing report,来看一看报告上面能读出什么有价值的信息。

相关文章
|
5月前
|
存储 数据采集
振弦式渗压计的安装方式及注意要点
振弦式渗压计是一种高精度、高效率的地下水位测量仪器。它可以测量地下水位的高度,计算地下水的压力,从而推算出地下水的流量。对于地下水资源管理和保护、治理工程等方面具有非常重要的意义。在安装振弦式渗压计时,需要注意以下几个方面:
振弦式渗压计的安装方式及注意要点
|
5月前
振弦式渗压计的安装方式及注意事项
振弦式渗压计的安装方式及注意事项 振弦式渗压计是一种常用的测量土壤水位的仪器,可以用于监测地下水位、土壤含水量、岩层渗透系数等参数。其原理是依靠振弦的共振频率变化来测量介质中的压力变化。
振弦式渗压计的安装方式及注意事项
|
5月前
|
传感器 数据采集
振弦式渗压计的安装方式和注意事项
振弦式渗压计是一种用于测量土壤水分的仪器,其安装方式和注意事项如下:
振弦式渗压计的安装方式和注意事项
|
8月前
|
缓存 网络协议 前端开发
前端性能优化 24 条建议(2020)(一)
前端性能优化 24 条建议(2020)
76 0
|
8月前
|
存储 Web App开发 前端开发
前端性能优化 24 条建议(2020)(三)
前端性能优化 24 条建议(2020)(三)
50 0
|
8月前
|
Web App开发 前端开发 JavaScript
前端性能优化 24 条建议(2020)(四)
前端性能优化 24 条建议(2020)(四)
50 0
|
8月前
|
缓存 前端开发 JavaScript
前端性能优化 24 条建议(2020)(二)
前端性能优化 24 条建议(2020)(二)
35 0
|
8月前
|
监控 算法
转:如何使用模糊算法提高监控软件的性能
如何才能提高监控软件的性能呢?其实,咱们可以通过模糊算法从各个角度着手,让监控系统变得更聪明更高效。模糊逻辑就是那种对付那些有点儿模糊不太确定信息的法宝,它在解决一些莫名其妙的情况时可是大显身手。在监控软件的世界里,模糊逻辑也是个大明星,可以帮助我们做出更明智的决策和更敏捷的响应,然后整个系统就会变得特别厉害!
47 0
|
10月前
|
XML 安全 Java
【解决方案 十二】一文彻底解决文件格式判别问题
【解决方案 十二】一文彻底解决文件格式判别问题
279 0
【解决方案 十二】一文彻底解决文件格式判别问题
|
算法 前端开发 芯片
静态时序分析简明教程(四)]时钟常规约束
静态时序分析简明教程(四)]时钟常规约束