一文讲透芯片后仿中的SDF

       SDF文件是在vcs/nc-verilog后仿真运行时STD/IO/Macro门级verilog中specify的延迟信息替换为QRC/Star-RC抽取的实际物理延迟信息,如果SDF文件的条件信息在verilog的specify中没有的话,就会报SDFCOM-INF的warning,意思是IOPATH not found

        本文解析SDF的Header Section信息,Cell Entries信息,尤其重点讲解Cell Entries的delay Entries信息。

        下文先讲SDF文件的第一部分Header Section

1:SDF version Entry,包括1.0,2.1,3.0,SDF3.0是1995年release

2:Design Name Entry,设计顶层名

3:Data Entry,SDF生成日期,PT或Tempus产生

4:Vendor Entry,Vendor信息,如下图

Example:

 

 5:Program Version Entry

 6:Hierachy Divider Entry

 7:Voltage Entry,SDF3.0官方解释如下

 Example:

 8:Process Entry,SDF3.0官方解释如下

9:Temperature Entry,SDF3.0官方解释如下:

  

 Example:

       

10:Timescale Entry ,SDF3.0官方解释如下:

 

 下文继续讲解SDF文件的第二部分Cell Entries:

 

 完整的Delay Entries信息格式如下:

 

  • PATHPULSE

  • PATHPULSEPERCENT

  • ABSOLUTE Delays

  • INCREMENT Delays

1:PATHPULSE

i:当从i1到o1输出的低电平脉冲小于13ns时,该低电平脉冲直接被忽略;

ii:当i1到o1输出的低电平脉冲介于13ns~21ns时输出为X态;

iii:当i1到o1输出的低电平脉冲大于21ns时,正常输出低电平;

 

2:PATHPULSEPRECENT 

本质上和PATHPULSE是一回事,只不过是按照path演示比例来计算什么时候丢弃输入脉冲宽度不租的信号(pulse rejection limit)什么时候将输入脉冲宽度不租的信号显示为X态,比如:

以上图为例,the high-to-low delay is 37,因此 the pulse rejection limit is 25% of 37 and the X limit is 35% of 37 

3:ABSOLUTE DELAYS

ABSOLUTE DELAY 中的物理延时数据就是用来替换verilog specify中的延时数据的。

4:INCREMENT DELAYS

用来叠加在verilog specify中的延时数据上的,increment delays 是存在负数的情况的,叠加后的延时若是负数的话,某些EDA工具可能不支持或者直接轻质延时为0。

 上面介绍了SDF3.0的Header Section以及Cell Entrise的Delay Entries部分内容,下面继续解析Delay Entries剩下的部分。

5:Delay Defination Entries 

ABSOLUTE and INCREMENT delays都采用同样的Delay Definition结构,其结构语法如下:

 6:Secifying Delay Values

Delay Values 在delval_list里面指定,最多一共有12个小括号,每个小括号里面有3个值,用”:“分开,分别代表minimum,typical,maximum的延时值;在delval_list里面包含如下情况。

若12个delval值都被指定了,那么每一个delval分别代表: 

 如上图中所示:

若2个delval值被指定,第一个delval代表01(rising)延时值,第二个delval代表10(falling)延时值。

若3个delval值被指定,第一个delval代表01(rising)延时值,第二个delval代表10(falling)延时值,第三个delval代表-Z(Z transition)延时值。

若6个delval值被指定,那么他们分别代表01,10,0Z,Z1,1Z,Z0;

举例说明,如下,IO path有6个delval值被指定:

但是0-1,1-0的延时都缺省,后面四个括号分别对应0Z,Z1,1Z,Z0 ,这种语法SDF3.0是支持的,annotator工具反标的时候就不会替换verilog specify的0-1,1-0转换延迟值。

7:input/output path delays

如下,port_spec是输入/双向IO,可以有edge identifier

port_instance是输出/双向IO,不能有edge identifier

 8:Conditional Path Delays

语法如下,QSTRING 作为Condition Labels是可选的。

 

特别需要注意的是,在none of the conditions specified for the path in the model are TRUE but a signal must still be propagated over the path,因此,CONDELSE可以用来指定条件脱靶的情况:

CONDELSE ( IOPATH port_spec port_instance delval_list )

9. Condition Labels

QSTRING作为Condition Labels是可选的,有些EDA工具反标的时候可能会用Condition Labels Name进行占位。

10. Output Retain Delays

输出端口output/bidirectional port的数据在输入发生变化后保持的时间,通常发生在memory/register file的数据选择端/地址端到数据输出端的路径。

 

 

第一个delval(4,5,7)是rising trigger情况下的do,从0到X的延时;

第二个delval(5,6,9)是falling trigger情况下的do,从1到X的延时;

11. Port Delays

 

12. Interconnect Delays

 

13. Device Delays

 下文继续讲解SDF文件中的Timing Check Entries,Timing Environment Entres两个部分

(一)SDF3.0 Timing Checks主要分以下两种

  • VCS/NC-Verilog后仿真在timing violation时报出warning;

  • Timing Sign-Off工具报出timing check violations;

以时序分析工具Sign-Off为主,后仿为辅,SDF3.0 Timing Checks具体的类型如下:

1. Setup Timing Check

 2. Hold Timing Check

 3. SetupHold Timing Check

注意,示例中~reset必须为真(Ture),timing check才会进行,此外,12是建立时间要求,9.5是保持时间要求。

 4. Recovery Timing Check

 5. Removal Timing Check

 6. Recovery/Removal Timing Check

示例中,recovery time为1.5个time unit,removal time为0.8个time unit。

 7. Skew Timing Check

 8. Width Timing Check

示例中,第一个minimum pulse width检查是posedge clock驱动的high phase;第二个minimum pulse width检查是negedge clock驱动的low phase;

 9. Period Timing Check

示例中,两个连续上升沿之间或两个连续下降沿之间的最小Cycle时间。

10. No Change Timing Check

示例中,addr提前write下降沿4.5个time unit, addr晚于write上升沿3.5个time unit。

 (二)SDF3.0 Timing Environment Entries

 SDF3.0 Timing Environment Entries分成Constraints与Timing Environment两个部分,首先解析Constraints。

1.Constraints

首先,SDF3.0 Timing Environment包括以下几类constraints:

如下图, y.z.i3是path起点,a.b.o1是path终点,25.1是起点和终点之间的maximum rise delay,15.6是起点和终点之间的maximum fall delay。

 b)Period Constraint

时钟树上common clock到其驱动的leaf cell的路径的最大延迟约束。

 c)Sum Constraint

顾名思义,指的是几条路径的延时之和。示例中,约束两条net的延时之和小于67.3个time unit。

 d)Skew Constraint

 2.Timing Environment

现在解析Timing Environment。Timing Environment包含以下4点约束:

a)Arrival Time

b)Departure Time

 c)Slack Time

 d)Waveform Specification

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值