本文由知乎
赵俊军
授权转载,知乎主页为https://www.zhihu.com/people/zhao-jun-jun-19
3.6 黑盒的接口时序模型
本节将介绍黑盒(任意模块或块)的IO接口时序弧,时序模型将捕获黑盒(black box)IO接口(interface)的时序。黑盒的接口时序模型可以具有组合逻辑弧,也可以有时序逻辑弧。通常,这些时序弧也可能取决于状态。
![图3-11](https://i-blog.csdnimg.cn/blog_migrate/52dbac135fe4488ffc52468ba4b46ad0.jpeg)
对于如图3-11所示的例子,可以将时序弧分为以下几类:
- 输入到输出的组合逻辑弧:这对应于直接从输入到输出的组合逻辑路径,例如从输入端口FIN到输出端口FOUT。
- 输入时序逻辑弧:这对应于连接到触发器D引脚的输入端口的建立时间或保持时间。通常,在将模块的输入端口连接到触发器的D引脚之前,可以存在一些组合逻辑。这样的一个例子是在输入端口DIN上相对于时钟端口ACLK的建立时间检查。
- 输出时序逻辑弧:这类似于触发器时钟端到输出端Q的传播延迟。通常,触发器输出引脚与模块输出端口之间可以存在一些组合逻辑。一个示例是从时钟BCLK到触发器UFF1的输出引脚再到输出端口DOUT的路径。
- 异步输入时序弧:这类似于触发器异步输入引脚的恢复时间和撤销时间时序约束,例如输入端口ARST到触发器UFF0的异步清零引脚。
除上述时序弧外,在黑盒的外部时钟引脚上还可以进行脉冲宽度检查。还可以定义内部节点(node)并在这些内部节点上定义衍生时钟(generated clock),从而指定在这些节点之间的时序弧。总之,黑盒模型可以具有以下时序弧:
- 纯组合逻辑路径的输入到输出时序弧(Input to output timing arcs)
- 从同步输入端口到相关时钟端口的建立时间和保持时间时序弧(Setup and hold timing arcs)
- 从异步输入端口到相关时钟端口的恢复时间和撤销时间时序弧(Recovery and removal timing arcs)
- 从时钟端口到输出端口的输出传播延迟(Output propagation delay)
如上所述的接口时序模型并非旨在捕获黑盒的内部时序,而只是捕获其接口上的时序。
3.7 高级时序建模
非线性延迟模型(NLDM)这类的时序模型是基于输出负载电容和输入过渡时间来表示通过时序弧的延迟的。实际上,单元输出的负载不仅包括电容还应当包括互连电阻(interconnect resistance)。由于NLDM方法假设输出负载为纯电容,因此互连电阻成为了一个问题。即使互连电阻不为零,但当互连电阻的影响较小时,仍使用了这些NLDM模型。在互连电阻存在的情况下,延迟的计算方法通过在单元的输出端获得等效的有效电容(effective capacitance)来改进NLDM模型。延迟计算工具中使用的“有效”电容法获得的等效电容可保证单元输出延迟与具有RC互连的单元输出延迟相同。有效电容法将在5.2节里的延迟计算部分再详细介绍。
随着特征尺寸的缩小,由于波形变得高度非线性,互连电阻的影响会导致较大的误差,各种建模方法为单元的输出驱动能力提供了更高的精度。通常,这些方法通过用等效电流源对驱动器(driver)的输出级进行建模来获得更高的精度。例如CCS(Composite Current Source)复合电流源或ECSM(Effective Current Source Model)有效电流源模型:CCS时序模型通过使用随时间变化且依赖电压的电流源,为建模单元输出驱动能力提供了更高的精度。通过为不同情况下的接收引脚电容(receiver pin capacitance)和输出充电电流(output charging currents)指定详细时序模型,可以提供时序信息。接下来描述CCS模型的细节。
3.7.1 接收引脚电容
接收引脚电容对应于NLDM模型中指定的输入引脚电容(input pin capacitance)。与NLDM模型的输入引脚电容不同,CCS模型允许在过渡波形的不同部分分别指定接收引脚电容。由于互连RC和由单元内部输入设备的米勒效应(Miller effect)所引起的等效输入非线性电容,接收引脚电容值会在过渡波形的不同点处发生变化。因此,该电容值在波形的初始部分(leading portion)与在波形的后续部分(trailing portion)的建模是不同的。
接收电容可以在引脚级别(pin level)上指定(如NLDM模型),通过该引脚的所有时序弧都使用该电容值;或者,接收电容可以在时序弧(timing arc level)级别上指定,在这种情况下可以为不同的时序弧指定不同的电容模型。接下来将介绍这两种指定接收引脚电容的方法。
在引脚级别指定电容
当在引脚级别指定电容时,接收引脚电容的一维表格示例如下:
![](https://i-blog.csdnimg.cn/blog_migrate/0fc05411cdac0ca7068c5cd50d3d3c74.jpeg)
index_1指定了此引脚输入过渡时间的索引值,一维表格values为波形的初始部分指定了输入引脚上用于上升沿波形的接收电容。
与上面示例中的receiver_capacitance1_rise表格类似,receiver_capacitance2_rise表格为波形的后续部分指定了输入引脚上用于上升沿波形的接收电容。而下降电容(用于下降沿输入波形的引脚电容)分别由表格receiver_capacitance1_fall和receiver_capacitance2_fall指定。
在时序弧级别指定电容
接收引脚电容值也可以在时序弧级别上,根据输入过渡时间和输出负载以二维表格的形式来指定。以下给出了在时序弧级别指定电容的示例。本示例指定了输入引脚IN上波形初始部分的接收引脚上升电容,该电容取决于输入引脚IN上的过渡时间和输出引脚OUT上的负载。