DC合成(1)的简单总结

DC合成(1)的简单总结?

* * * * * * * * * * * * * *设置_ DONT _触摸和设置_ DONT _触摸_网络* * * * * * * * * * * *

在合成的过程中,为了防止DC工具自动优化一些我们不希望他们优化的模块(比如CLK),我们通常会设置set_ideal_network和set _ don _ touch。我理解前者忽略了timing_report时的延迟,后者防止DC插入缓冲区。

那么,dont_touch的属性可以通过逻辑吗?

set_dont_touch和set_dont_touch_network有什么区别?为什么一般认为set_dont_touch_network会导致未知问题,不推荐使用?

对于ideal_net的这个属性,是否意味着直接忽略延迟,忽略DRC?如果clk设置为ideal_net,是不是就没必要设置dont_touch了?

我说的有点混乱。请给我技术支持。我很感激!!

=

Set _ don _ touch不通过逻辑,可用于单元、网络、参照和设计。你可以在任何你不想让DC碰它的地方使用它。

Set _ don _ touch _ network可以通过逻辑,可以用于时钟,引脚,或者端口,小于上述范围。当你对设计不是很熟悉的时候,这种属性可能会蔓延到你不想要的地方。

理想_网,顾名思义,就是把这个网完全理想化——无限的驱动能力,没有延迟。有时它与上面的命令一起使用。当你知道它们的意思时,如何使用它们取决于你的目的和你得到的结果。

对于Ideal_net属性,在设置时有一个no_propagate属性。有必要给网设置这个防止其穿越逻辑吗?所以如果我设置了一个pin,不加no_propagate,可以跨越逻辑吗?

在创建clock的时候,我看到它会自动设置为ideal_net,但是它还是会计算延迟。是因为时钟路径有逻辑原因吗?

=

集合_理想_网络=集合_理想_网络-不传播

如果用时钟网作为数据,会有延迟,因为挂在网上的clk管脚的负载不是理想网本身。

我一般理解,创建clk的时候,默认会是理想网,但是当clk连接到数据通路的时候,D端会考虑我的clk上的负载,但是不会影响clk的理想网的性质。

如果我的clk需要一个门来做门控,门控后的时钟也有很大的扇出,那么为了忽略延迟,我需要为门控后的clk重新定义理想网吗?因为理想网无法跨越逻辑。

=

如果你的CG集成了一个好的标准单位,它会自动继承ideal的属性。

* * * * * * * * * * * * * *设置_ DONT _触摸和设置_ DONT _触摸_网络* * * * * * * * * * * *

定时装置的输入端口到数据端口。

所需时间= T2+t latency-t确定性_ setup-t设置。

到达时间= t 1+t延迟+t输入_延迟+t逻辑2。

时序设备的输出引脚到输出端口

上图中:

所需时间= T2+t latency-toutput _ delay-tun肯定性_ setup。

到达时间= t 1+t latency+t cell+tlogic 5。

计时装置到计时装置

在小路上?细胞?延迟什么?输入_转换?然后呢。Output_load(包括fanout?pin?开?负载)的决定,这可以通过检查仪表读数来获得。

然后呢。网?延迟是什么?网?开?r,?c?决定了。布线前不知道实际布局?r,?c?多少钱?dc?根据互联模型(set_wire_load_model)?r,?丙.然后根据你得到的信息。r,?c?算算?网?Delay on: Net_delay=R*C*OC系数在哪里?OC?是否根据运行环境设置(set_opearting_conditions)?Rc树模型。

通用工艺库有三种运行环境,分别是最差、典型和最佳,分别是最差、典型和最差。

T=4,周期为4,Tdata为2,两个clk同时到达,slack=4-2=2,

设置检查意味着latch和lauch相隔一个时钟周期,而hold检查在同一时钟沿。

input_transition输入信号的转换时间可以采用两个约束:

1直接设置转换时间。

设置输入转换0.1[获取端口A]

2通过设置输入驱动能力,驱动能力越大,转换时间越短,驱动能力越小,转换时间越长。

Set_drive或set_driving_cell。

压摆率与转换时间的关系

首先我想解释一下,slew和transition其实不是独立的词。在许多教科书中,一般会出现两个短语,即压摆率和转换时间。

压摆率,信号变化的速率。

过渡时间,信号变化的持续时间。

在静态时序分析(STA)中,上升或下降波形通常由压摆率表示。转换时间用于记录该信号在两个电平之间的转换时间。

需要注意的是,转换时间实际上是压摆率的倒数。转换时间越长,压摆率越低,反之亦然。

上图显示了一些CMOS器件的输出波形。理想情况下,我们期望得到一个完美的方波,但这显然不够现实。实际上,由于电容的充放电,一个数字信号的波形往往有一个上升和下降的电压缓冲区间。

为了给这样的波形提供能量,我们近似使用线性上升或下降信号来模拟真实信号波形。需要注意的是,在真实的信号波形中,无论是上升还是下降,都会有一段时间的线性区域。

这个线性区域的起点和终点可能因为一些估计模型而不同。在STA中,我们有时会采用宽松的约束模式,比如20%/80%,10%/90%。

当然,我们也可以采用更激进的模式,比如30%/70%。

在线性时间序列模型中,通过时间序列单元的信号可能产生两个新的信号波形。

当输出信号的压摆率快于输入信号的压摆率时,即跃迁时间缩短,说明这个单元对这个信号起到了增强驱动的作用。

反之,当输出信号的压摆率比输入信号的压摆率慢时,跃迁时间变长,说明这个单元起到了削弱这个信号驱动的作用。可能的原因是该机组的输出带动了较大的负载。

因此,当我们要描述一个信号电平的变化时,记得用压摆率来表示速度,用跃迁时间来描述持续时间。

对于cell的延迟,根据input_transition和out_load对应的查找表计算dc。

对于网络的延迟,根据fanout_length和wire_load_model中的电阻、电容、面积的查找表来计算dc。

负载其实有两个概念,一个是阻性负载,当你提供足够的驱动力时才能正确输出,否则电压会错;另一种是容性负载,一般在系统中,与系统能运行的速度有关。

驱动力大的输出可以承载更大的负载。从这个意义上来说,认为驾驶=载重是可以理解的。但其实两个概念还是有一些区别的,侧重点不同。你上面也引用了“电路的负载容量是下一级负载(即电容)之和”,这是两个完全不同的维度,怎么可能相同呢?在系统设计中,假设你需要以10MHz的频率运行,你需要10mA的驱动力,那么在同样的容性负载上,你需要20mA的驱动力才能以20MHz的频率运行。

原文链接:blogs.com/lantingyu/p/10782978.html