正在加载图片...
chinapub.com )行为建颇63 下载 同样,只要有事件发生在Zes上,就执行第2条 always语 句。在这种情况下,系统任务 Display被执行,然后 always 语句重新等待发生在Zeus上的事件。Sa、Sb和zes上产生的 波形如图8-2所示。下面是模块模拟运行产生的输出 在时刻 a=0 sb=1, zeus =1 在时刻 1, Zeus =0 在时刻 图8-2Sa、Sb和Zes上产生的波形 82时序控制 时序控制与过程语句关联。有2种时序控制形式 1)时延控制 2)事件控制 8.21时延控制 时延控制形式如下 delay procedural statement 实例如下 #2 TX Rx-5 时延控制定义为执行过程中首次遇到该语句与该语句的执行的时间间隔。时延控制表示 在语句执行前的“等待时延”。上面的例子中,过程赋值语句在碰到该语句后的2个时间单位 执行,然后执行赋值。 另一实例如下: initial beG⊥n #3 wave b0111 #7 wave ='b0000 end initial语句在0时刻执行。首先,等待3个时间单位执行第一个赋值,然后等待6个时间单 位,执行第2个语句:再等待7个时间单位,执行第3个语句:然后永远挂起。 时延控制也可以用另一种形式定义 这一语句促使在下一条语句执行前等待给定的时延。下面是这种用法的实例。 parameter ON DELAY = 3, OFF DELAY=5 # ON DELAY;//等待 ON DELAY规定的时延。 Refclk =0 OFF DELAY;//等待 OFF DELAY规定的时延。 end 时延控制中的时延可以是任意表达式,即不必限定为某一常量,见下面的例子 g strobe Compare Tx ask同样,只要有事件发生在Z e u s上,就执行第2条a l w a y s语 句。在这种情况下,系统任务 $ d i s p l a y被执行,然后 a l w a y s 语句重新等待发生在 Z e u s上的事件。S a、S b和Z e u s上产生的 波形如图8 - 2所示。下面是模块模拟运行产生的输出。 在时刻 5, Sa = 0, Sb = 1, Zeus = 1 在时刻 10, Sa = 1, Sb = 1, Zeus = 0 在时刻 15, Sa = 1, Sb = 0, Zeus = 1 8.2 时序控制 时序控制与过程语句关联。有 2种时序控制形式: 1) 时延控制 2) 事件控制 8.2.1 时延控制 时延控制形式如下: #delay procedural_statement 实例如下; #2 Tx = R x- 5 ; 时延控制定义为执行过程中首次遇到该语句与该语句的执行的时间间隔。时延控制表示 在语句执行前的“等待时延”。上面的例子中,过程赋值语句在碰到该语句后的 2个时间单位 执行,然后执行赋值。 另一实例如下: i n i t i a l b e g i n #3 W a v e = 'b0111; #6 W a v e = 'b1100; #7 W a v e = 'b0000; e n d i n i t i a l语句在0时刻执行。首先,等待 3个时间单位执行第一个赋值,然后等待 6个时间单 位,执行第2个语句;再等待7个时间单位,执行第3个语句;然后永远挂起。 时延控制也可以用另一种形式定义: #d e l a y; 这一语句促使在下一条语句执行前等待给定的时延。下面是这种用法的实例。 parameter O N _ D E L A Y = 3, O F F _ D E L A Y = 5; a l w a y s b e g i n # O N _ D E L A Y; //等待O N _ D E L A Y规定的时延。 R e f C l k = 0; # O F F _ D E L A Y; //等待O F F _ D E L A Y规定的时延。 R e f C l k = 1; e n d 时延控制中的时延可以是任意表达式,即不必限定为某一常量,见下面的例子。 # Strobe Compare = TX^a s k ; 第8章 行 为 建 模 63 下载 图8-2 Sa、Sb和Zeus上产生的波形
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有