三防平板方案中在路径终止的模块输出处发生的延迟应通过为模块路径描述分配延迟值来指定。
三防平板在模块路径延迟分配中,左侧指定模块路径描述,右侧指定一个或多个延迟值。可以选择性地将延迟值括在一对括号中。可能有1个、2个、3个、6个或12个延迟值分配给模块路径。延迟值应为包含文字或规范参数的常量表达式,并且可能存在形式为min:type:max的延迟表达式。
【例1.25】为路径分配延迟Verilog HDL描述的例子,如代码清单1-17所示。代码清单1-17 为路径分配延迟的Veriog HDL描述
在该例子中,三防平板在specparam关键字后面声明的指定参数指定模块路径延迟的值。模块路径分配将这些模块路径延迟分配给模块路径。1.指定在模块路径上的跳变延迟
每个路径延迟表达式可以是一个表示典型延迟的单个值,也可以是三个值的冒号分隔列表,按顺序表示最小、典型和最大延迟。如果路径延迟表达式导致负值,则应将其视为零。表1.4描述了不同的路径延迟值应如何与各种跳变关联。
表1.4 将不同路径延迟值与不同的跳变关联的方法【例1.26】延迟格式表达式路径分配Verilog HDL描述的例子,如代码清单1-18所示。代码清单1-18 延迟格式表达式路径分配的Verilog HDL描述2.指定x跳变延迟
三防平板如果没有明确地指出x跳变延迟,则基于下面两个规则计算x跳变的延迟值:
(1)从一个已知状态跳变到x将尽可能快地发生,即跳变到x使用尽量短的延迟。
(2)从x到一个已知状态的跳变延迟尽可能长,即为从x的任何一个跳变使用尽量长的延迟。
表1.5给出了用于x跳变的延迟值的通用算法以及具体例子。表中,表示了以下两组x跳变。
(1)从已知状态s跳变到x:s->x
(2)从x跳变到已知状态s:x->s3.延迟选择
三防平板当指定路径输出必须调度到跳变时,仿真器需要确定所使用的正确延迟。在这个过程中,可能指定了连接到输出路径的多个输入,此时仿真器必须确定使用哪个指定的路径。
仿真器首先要确定所指定的到输出的活动路径。活动的指定路径是指在最近的时间内输入经常跳变的路径,它们要么是无条件的,要么是条件为真。三防平板在同时出现输入跳变的情况下,可能有很多从输入到输出的指定路径都处于活动状态。
一旦识别出活动的指定路径,就必须从中选择一个延迟。这是通过比较从每个指定路径调度的特定跳变的正确延迟并选择最小延迟来完成的。【例1.27】延迟分配Verilog HDL描述的例子1。
对于Y从0到1的跳变,如果近期A的跳变比B更加频繁,则选择延迟6;否则,选择延迟5。如果最近它们都同时发生跳变,三防平板则选择它们两个上升延迟中最小的一个,即从B中选择上升延迟5。如果Y从1到0跳变,则从A中选择下降延迟9。【例1.28】延迟分配Verilog HDL描述的例子2。
根据MODE的值,三防平板这些指定路径中从0到5的任何位置都可能处于活动状态。当MODE=2时,前面3个指定路径是活动的。上升沿时,将选择4,因为这是前三个中最小的上升延迟;下降沿时,将选择5,因为这是前三个中最小的下降延迟。