3.1 IO约束
IO约束可以抽象为Lunch Reg Capture模型,只不过对于片外的Reg,路径时无法报告出来,需要根据场景查询对接器件的手册,器件手册会写明器件的延时信息等,再根据板级走线设计,估算出外部时序路径延时,通过Input Delay或者Output Delay模拟片外过约加严场景。常见的IO约束场景包括:input delay,时钟数据随路或者时钟数据回环;Output Delay包括时钟数据随路或者时钟数据回环。
3.1.1 Input Delay 随路场景
如图3.1.1.1所示为时钟数据随路场景,die内作为Slave,片外作为Master,测试die内从IO进入的路径都是已知的,可以通过Time Prime报告分析出来,而对于片外的Master,工具未知Timing,因此通过Set Input Delay设置过约束加严。
如图3.1.1.1所示,时钟信号和数据信号由外部器件给出,外部器件作为Master,将数据从随路时钟打给Die内寄存器,数据和随路时钟经过板级走线,通过IO进入Die内部,因为从IO到Die内reg的路径已知,因此在STA分析时,考虑外部器件和单板延时路径无法通过STA分析得到,因此需要set input delay。
分析:
外部器件的Tclk和Tco以及外部器件的die内Lunch寄存器数据路径(数据从外部器件的寄存器器Q到IO的延时)对于芯片Die内部Capture寄存器的Setup不友好,而随路时钟的板级走线延时T2对于芯片Die内部Capture寄存器的Setup友好,因此set input delay为如下公式计算:
Set Input Delay=Tclk+ Tco+T1- T2
实际情况下,T1和T2大小不确定,因此存在Set Input Delay的最大值和最小值,取决于T1和T2的差值。工程上Tclk和Tco,以及器件内部数据通路延时可以查询器件手册得到,T1和T2经过板级走线估算。
3.1.2 Input Delay 回环场景
如图3.1.2.1所示为时钟数据随路场景,die内作为Slave,片外作为Master,测试die内从IO进入的路径都是已知的,可以通过Time Prime报告分析出来,而对于片外的Master,工具未知Timing,因此通过Set Input Delay设置过约束加严。
图3.1.2.1 IO约束 Input Delay回环
回环场景下,时钟是由Die内经过IO送给外部器件,因为数据和时钟是相反的方向,分析方法如下:
时钟的板级走线延时T2对于Die内Capture寄存器的setup是不友好的,外部器件的Tclk,Tco,以及数据路径延时T1,对Die内Capture寄存器的Setup同样不友好,因此Input delay计算式:
Set Input Delay=Tclk+ Tco+T1+ T2
实际情况下,Tclk和Tco查询器件手册可知,T1和T2要根据板级走线估算。
总结:对于input delay而言,随路路径尽量做平,即T1和T2尽量做等长,可减小input delay,有利于Die内Capture Reg收Setup;回环路径要尽量做短,即T1和T2要尽量做短,有利于减小Input delay,有利于Die内Capture Reg收敛Setup。
因为T1和T2的取值一般是一个范围,因此Input Delay存在最大值和最小值,最大值用来约束setup最严的场景,最小值用来约束hold最严的场景。
3.1.3 Output Delay 随路场景
对于输出方向的路径,Die内数据和随路时钟一起经过IO输出到外部器件,此时外部器件中有Capture Reg,因为外部路径的Timing情况工具未知,因此在STA时要设置Output Delay约束加严,随路场景如图3.1.3.1所示
图3.1.3.1 IO约束 Output Delay随路
随路Output场景下,数据和时钟都是有Die内经过IO发送给外部器件,外部器件作为Capture Reg,对于Capture Reg的分析如下:
时钟路径的板级走线T2对于Capture Reg的Setup很友好,器件Die内的Tclk时间同样对Setup友好,而Capture Reg的Setup时间本身是对Setup余量的不友好因素,数据路径的走线T1对于Setup余量不友好,因此Output Delay计算式:
Set Output Delay= T1-T2+ Tclk+ Tsu= (T1-T2)+ Tsu - Tclk
同理,T1和T2根据板级走线估算,其他参数可以查询器件手册。
3.1.4 Output Delay 回环场景
Output方向回环场景如图3.1.4.1所示,时钟由外部器件经过板级走线打给Die内Reg,数据由Die内经过IO,经过板级走线延时输入给器件的Capture Reg。
图3.1.4.1 IO约束 Output Delay回环
对于器件的Capture Reg分析如下:
数据的板级走线延时T1,对于Capture Reg的Setup不友好,而时钟走线延时T2,同样对Capture Reg的Setup不友好,器件Die内的Tclk延时,对于Capture Reg Setup是友好的,器件本身Reg的Setup时间,会占用余量,因此对Setup余量不友好,可得出输出回环场景的Output Delay:
Set Output Delay= T1+T2+ Tsu- Tclk
回环方向上,Tclk占比很小,延时大部分贡献为T1和T2,两个板级走线延时尽可能做短,有利于提升Capture Reg的余量。
总结:Output方向上,随路场景,板级走线要尽量做平,T1-T2趋于0,此时路径延时在Output方向最小,有利于Capture Reg收Setup;回环场景,板级走线要尽量做短,T1+T2最小,有利于减少Output Delay,帮助收敛Capture的Setup。
因为T1和T2的取值一般是一个范围,因此Output Delay存在最大值和最小值,最大值用来约束setup最严的场景,最小值用来约束hold最严的场景。