1、直接进入SDF文件
打开SDF文件,呈现出来的就是上图中的内容。
第一张图上,看到是一些描述信息,比如设计模块信息,版本信息,日期信息,电压,功耗和时间精度信息等。
第二张图,可以看到,主要是约束cell的时延信息以及cell的时序检查情况。
2、域段分析
SDF基本信息之后,就是对cell的时序规范描述,主要有delay、timingcheck、timingenv、label四种。
2.1、DELAY类型
该域段描述cell延时信息,延时主要是ABSOLUTE类型的申明定义,从项目的SDF文件中,也只搜到这一种类型,起始还有另外三种类型,分别是:INCREMETN、PATHPULSE和PATHPULSEPERCENT。
另外三种既然项目文件中没涉及到,说明不是常用选项,主要看下ABSOLUTE是起什么作用。
2.1.1、ABSOLUTE类型时延
ABSOLUTE主要作用是,在sdf反标期间,使用SDF文件的时延信息,替换现有单元实例的延迟值。
在电路上主要有8种延迟定义,分别是: 1、IOPATH:输入到输出的路径延迟信息
2、INTERCONNECT:互连走线的延迟信息
3、RETAIN:保留时间定义,指定输出端口在相关输入端口改变后,应保留前值的时间。
0.05表示高电平保留延迟,0.04表示低电平保留延迟,0.101表示上升沿时候延迟,0.09表示下降沿延迟
4、COND:条件路径延迟,指定与状态相关的输入到输出的路径延迟
5、CONDELSE:指定默认路径延迟
6、PORT:端口延迟,建模时候定义为输入端口延迟
7、NETDELAY:网络延迟,从网络源端到接收端的传播延迟
8、DEVICE:期间延迟。
在项目种,看到最多的还是前4种类型。
通常可以看到2组数据,每组数据有2个数字,分别表示含义如下图:
2.1.2、PATHPULSE类型
PATHPULSE约束输出脉冲情况。
上图种约束的含义表示:从input到output输出的低电平脉冲小于13ns时,该低电平被忽略;当输出的低电平脉冲在13ns到21ns之间时,输出X态;大于21ns时,输出正常低电平。
2.1.3、PATHPULSEPERCENT类型
和PATHPULSE约束输出脉冲基本一致,此处时按照百分比来计算。
上图种约束的含义表示:从in到out输出的低电平脉冲小于30*25%ns时,该低电平被忽略;当输出的低电平脉冲在30*25%ns到30*35%ns之间时,输出X态;大于30*35%ns时,输出正常低电平。
2.1.4、INCREMENT类型
用来叠加延时数据到Verilog specify中的延时数据上。INCREMENT 指定的delay可以时负数
具体含义:待补充
2.2、TIMINGCHECK类型
该域段描述cell的时序检查极限。该域段下可以约束的选项如下:
1、SETUP:建立时间,数据信号在clock-setup_limit之前稳定的大时间
2、HOLD:保持时间,数据信号在clock+hold_limit之后稳定的最小时间
建立时间和保持时间是使用时钟信号来检查数据信号是否在limit之外稳定
3、recovery:恢复时间,与复位释放有关,释放复位时,复位信号恢复到非复位状态,需要在时钟沿到来之前达到稳定的时间,防止出现亚稳态
4、removal:撤销时间,复位时,在时钟沿到来之后,复位保持稳定的时间。防止出现亚稳态
上图是以时钟为基础分析,另一种是以复位信号为基础来分析,如下图:
5、width:脉宽时序检查
6、period:周期时序检查
2.3、TIMINGENV选项
环境选项:具体待补充
2.4、LABEL选项
标签选项:具体待补充
3、SDF反标成功标记
SDF反标后,跑仿真时候,开始会有一条log打印,sdf反标完成的信息,用来标识反标成功。
更详细的文章:
https://zhuanlan.zhihu.com/p/343563054
附录B:Standard Delay Format(SDF)(下)_iopath (posedge ck) q (0.190::0.211) (0.193::0.215-CSDN博客