接上文--STA 静态时序分析 第七章——STA环境的配置(1)
目录
7.5 输出路径的约束
例子A
下图中展示了待分析设计的输出路径例子。Tc1、Tc2分别是组合逻辑延时。

CLKQ的周期,决定了UFF0与UFF1之间有多少的可用时间。外部逻辑的延时为Tc2+Tsetup,需要被指定为外部延时。请注意,外部延时是依据捕获时钟来指定的。数据必须及时到达外部寄存器UFF1,从而满足建立时间的要求。
set Tc2 3.9
set Tsetup 1.1
set_output_delay -clock CLKQ -max [expr Tc2 + Tsetup] \
[get_ports OUTB]
这里指定了最大的外部延时,值为5ns。最小外部延时同样也可以用类似的方法指定。
例子B
下图的例子展示了,既有最小延时、也有最大延时的情况。最大路径延时为7.4ns,最小路径延时为-0.2ns。以上两个延时分别对应于max的Tc2+Tsetup,min的Tc2-Thold因此代码:
create_clock -period 20 -waveform {0 15} [get_ports CLKQ]
set_output_delay -clock CLKQ -min -0.2 [get_ports OUTC]
set_output_delay -clock CLKQ -max 7.4 [get_ports OUTC]

图中的波形展示了OUTC的数据需要保持稳定才能被外部的捕获寄存器捕捉到。这也就说明,数据输出端口必须在稳定区域开始前就准备好,并且需要保持稳定直到稳定区域结束。这转化为对逻辑时序的要求,即DUA内部输出端口OUTC的时序要求。
例子C
在下面的这个例子中,模块有两个输入DATAIN和MCLK,一个输出DATAOUT。下图中也有波形。

create_clock -period 100 -waveform {5 55} [get_ports MCLK]
set_input_delay 25 -max -clock MCLK [get_ports DATAIN]
set_input_delay 5 -min -clock MCLK [get_ports DATAIN]
set_output_delay 20 -max -clock MCLK [get_ports DATAOUT]
set_output_delay -5 -min -clock MCLK [get_ports DATAOUT]
对于代码解释:首先创建了周期100,边沿在5 55处的时钟。然后设置了输入延时最大为25ns,最小为5ns。设置输出延时最大为20ns,最小为5ns。
7.6 时序路径组
每个路径都有起点和终点。静态时序分析中,路径是根据有效的起始点和终点进行计时的。有效的起始点有:输入端口以及同步时序器件(寄存器、内存)的时钟引脚。有效的终点有:输出端口以及同步时序器件的数据输入引脚。因此一个有效的时序路径可以是:
- 从输入端口到输出端口;
- 从输入端口到触发器或存储器的数据输入引脚;
- 从触发器或存储器的时钟引脚到触发器或存储器的数据输入引脚;
- 从触发器的时钟引脚到输出端口;
- 从存储器的时钟引脚到输出端口

上图中有效的时序路径有:
- 输入端口A到UFFA的D输入端口
- 输入端口A到输出端口Z
- UFFA的时钟引脚CLK到UFFB的D输入端口
- UFFB的时钟引脚CLK到输出引脚Z
时序路径根据这条路径的终点,分类到不同的时序路径组中。因此,每个时钟都有一套与之相关联的路径。这里也存在一条默认路径(default path group),包含了所有的异步时序路径。在下图中的不同组为:

- 时钟A组:由输入端口A到UFFA的D引脚。
- 时钟B组:由UFFA的时钟引脚,到UFFB的D引脚。
- 默认组:输入端口A到输出引脚Z的路径以及UFFB的时钟引脚到输出端口Z。
对于每条路径的分析以及报告通常是分开的。
7.7 外部因素的建模
虽然使用 create_clock、set_input_delay 和 set_output_delay 足以约束设计中所有路径以执行时序分析,但这些方法不足以获得模块 I/O 引脚的准确时序。接下来的因素也需要,以此来模拟设计所处的环境。对于输入引脚,我们需要指定压摆,这可以使用:
- set_drive(不推荐)
- set_driving_cell
- set_input_transition
对于输出引脚,我们只需要指定由它所看到的负载电容的大小:
- set_load

最低0.47元/天 解锁文章
2867

被折叠的 条评论
为什么被折叠?



