正在加载图片...
62 Verilog hdl硬件描述语言 Chia°dcow 下载 wait(Set == 0) @(negedge Cik begin if(Set begin #5Q end end endmodule 此模型中有2条 al ways语句。第一条 always语句中顺序过程的执行由电平敏感事件控制。 第二条 always语句中顺序过程的执行由边沿触发的事件控制 8.1.3两类语句在模块中的使用 个模块可以包含多条 always语句和多条 initial语句。每条语句启动一个单独的控制流 各语句在0时刻开始并行执行 下例中含有1条 initial语句和2条 al ways语句 module TestxorBehavior reg sa, sb, Zeus ⊥nit⊥a1 begin Sb=0; #5Sb=1 5Sb=0 e(Sa or sb) zeus =s always Display ("At time st, sa d, sb =d, eus =ab". stime, Sa, Sb, Zeus) endmodule 模块中的3条语句并行执行,其在模块中的书写次序并不重要。 initial语句执行时促使顺 序过程中的第一条语句执行,即Sa赋值为0;下一条语句在0时延后立即执行。 initial语句中的 第3行表示“等待5个时间单位”。这样Sb在5个时间单位后被赋值为1,Sa在另外5个时间单位 后被赋值为0。执行顺序过程最后一条语句后, initial语句被永远挂起 第一条 always语句等待Sa或Sb上的事件发生。只要有事件发生,就执行 always语句内的语 句,然后 always语句重新等待发生在Sa或Sb上的事件。注意根据 initial语句对Sa和Sb的赋值, al ways语句将在第0、5、10和15个时间单位时执行。w a i t (S e t == 0); e n d a l w a y s @ (n e g e d g e C l k) b e g i n if (S e t != 1) b e g i n #5 Q = D; #1 Q b a r = ~ Q; e n d e n d e n d m o d u l e 此模型中有 2条a l w a y s语句。第一条 a l w a y s语句中顺序过程的执行由电平敏感事件控制。 第二条a l w a y s语句中顺序过程的执行由边沿触发的事件控制。 8.1.3 两类语句在模块中的使用 一个模块可以包含多条 a l w a y s语句和多条i n i t i a l语句。每条语句启动一个单独的控制流。 各语句在0时刻开始并行执行。 下例中含有1条i n i t i a l语句和2条a l w a y s语句。 m o d u l e T e s t X o r B e h a v i o r; r e g Sa, Sb, Zeus; i n i t i a l b e g i n S a = 0; S b = 0; #5 S b = 1; #5 S a = 1; #5 S b = 0; e n d a l w a y s @ (Sa or Sb) Zeus = Sa ^ Sb; a l w a y s @ (Z e u s) $d i s p l a y ( "At time %t, S a = %d, S b = %d, Z e u s = %b", $t i m e, S a, S b, Z e u s) ; e n d m o d u l e 模块中的3条语句并行执行,其在模块中的书写次序并不重要。 i n i t i a l语句执行时促使顺 序过程中的第一条语句执行,即 S a赋值为0;下一条语句在0时延后立即执行。i n i t i a l语句中的 第3行表示“等待5个时间单位”。这样S b在5个时间单位后被赋值为 1,S a在另外5个时间单位 后被赋值为0。执行顺序过程最后一条语句后, i n i t i a l语句被永远挂起。 第一条a l w a y s语句等待S a或S b上的事件发生。只要有事件发生,就执行 a l w a y s语句内的语 句,然后a l w a y s语句重新等待发生在 S a或S b上的事件。注意根据 i n i t i a l语句对S a和S b的赋值, a l w a y s语句将在第0、5、1 0和1 5个时间单位时执行。 62 Verilog HDL 硬件描述语言 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有