中文DC文档

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

max_transition可以定义为上升或下降电阻和线网负载的乘积,除了工艺库中提供的,用户也可自己定义,而实际采用的是最严格的那个定义值。

相比较max——transition并不直接控制线网的实际电容,而max_capacitance作为直接控制电容的限制而提出的。但是其cost function是基于总的电容而不是瞬态时间。二者可以同时定义。没有违反约束的定义是:驱动pin或者是port的max capacitance大于或者是等于所有被驱动管的电容之和。

Max transition和max fanout 和max capacitance可以用来决定设计中的buffer个数。―――影响时间参数

优化约束―――对时间的约束优先于对面积的约束。在满足对面积的约束之前,会尽量的考虑满足对时间约束条件的满足。

对时间的约束―――-时序电路中通过对时钟的定义来达到,set input delay和set output delay。

――――组合电路通过对set max delay和set min delay来设定点点之间的时间延迟,max delay通过设定set max delay和creat clock来达到; 而min delay通过设定set min delay和对保持时间的要求来达到。其中的使用set fix hold来固定保持时间。

优化的过程就是减少代价函数的过程――包括设计规则代价函数和优化代价函数。Max delay cost;min delay cost;max power cost;max area cost;

其中max delay cost是代价函数中具有最优权。

Max delay cost的计算:最差的违背和每个路径组的权重之积――worst violation;path group;

当设计不能满足时序单元的建立时间的要求的时候,违背就发生了。一般,把由一个时钟约束的路径组合成一个路径组,这样每个时钟都建立了一个单独的路径组,而剩余的路径组合成默认的路径组,如果在没有时钟的情况下,所有的路径都组合成一个默认的路径组。而综合总是针对路径进行的,所以很容易给每个路径定义其权重。如:max delay cost=1×1+1×2+1×3=6

min delay cost次重。与路径无关,是所有的最差的min delay违背之和,当实际的延迟时间小于设定的期望的延迟时间的时候,违背就发生了。如:min delay=1+2+3=6 max power是用于ECL电路中。

综合时候的时钟设定:

设定时钟树的时候,使用set dont touch network来设定时钟的dont touch参数值,防止

buffers。

Synopsys的STA不报告时序单元中针对时钟管脚的延迟(认为是理想状态-0)。如果时钟经过门单元的话,则不能认为时钟延迟是0,所以也要设定set clock skew-proagated选项来得到非零的时钟延迟,如果ASIC提供商已经定义了相对于时序单元管脚的潜在的时钟skew的上限的话,可以用set clock skew -uncertainty来定义skew。在设定完时钟之后,我们要使用set input delay和set output delay-option来设定输入输出端口的时间设定。用set multicycle path来设定复合时钟。

DC报告同步逻辑到同步逻辑或者是在时序单元之间的时序――DC报告从时钟到时钟的时间延迟信息。

默认情况下,时间路径在有建立或者保持约束的管脚处结束(如ff的数据针或者是寄存器的异步针set,clear)。

Dctimingreport列出每个路径组的最差路径,每个时钟的建立creat clock都是建立了单独的路径组。report timing显示从初始输入到初始输出的路径,除非在其中定义了开始结束点。

一个时间报告的例子:报告两个ff之间的时序。Clock network delay是理想的,所以f reg/cp―――即时钟是在0时刻上升的,然后加上clock到q的时间间隔――――数据到达第二个ff的时间2.24ns;对于第二个ff而言,则其clock network delay仍然是0,在下个时钟的上升沿,5ns处,第二个ff的建立时间要求是0.85ns,所以最早到达第二个ff 的数据必须在5-0.85=4.15的时候到达,否则会出现建立时间违背。这样就可以得到slack =4.15-2.24=1.91ns。

总结,由工艺库提供的建立时间(library setup time)的要求和create clock命令建立的时钟周期共同的决定了max delay。

默认的情况下,DC没有把保持时间固定住,为了满足保持时间的要求而插入delay的话,使用命令fix hold clk。

设定input delay和output delay之后的时间约束:输出延迟是外部的电路对输出端口的时间限制,在时钟周期-output delay之前,数据必须到达该端口。output external delay。同样道理,input delay是相对于时钟而言,必须空出来的时间间隙-input external delay slack=时钟周期-librarysetuptime-input(output)external delay-中间的逻辑延迟。

Set dont touch:尤其适用于层次化的设计优化当中,分配给一个设计或者是单元库。层次设计中的某些模块已经设定了约束条件并进行了优化,希望在整个设计进行整体优化的时候

Reference IVA;而instance是引用库中的reference之后在具体设计中的例子,如U1,U2。一个refernence可以被引用为很多个instance。

如果给库中的某个reference设定dont touch参数的话,则所有引用此单元的instance 都继承了此参数的含义。使用report reference和report cell命令都会显示此参数的情况。所以,不可以在已经设定dont touch 参数的reference时,删除掉引用此reference 的instance的dont touch参数。“大的涵盖小的”。

删除此参数的命令是: remove attribute find(design,A)dont touch

寻找设计中哪些单元有此参数的设定,使用filter和find命令即可。搜寻层次设计的全部,使用-hierarchy命令。Filter find(cell-hierarchy,“*”)“@dont touch==true”。另外在对库单元进行实例化的时候,如果要保持实例化后的库单元在优化之后保持网表的格式,可以在优化之前设定此参数。

Flattening

将组合逻辑转换成两层的乘积和的形式,目的为了提高设计的速度。Two level sum of products form

相关文档
最新文档