initial 与 always 语句

initial语句

  initial 语句从仿真0时刻开始,在整个仿真过程中只执行一次。如果一个模块包含不同的initial块,那么他们从0时刻开始并发执行,且执行是相互独立的。

由于其只执行一次,所以一般被用于初始化,信号监视,生成仿真波形(initial语句内部是顺序执行的,例如:

      initial begin

       #10  a = 5;

       #10 b = 4;

      end

结果为10:a = 5;

   20:   b = 4;

 

alway语句

       always语句也是从仿真0时刻开始顺序执行,且执行完最后一条语句时,又回过头来执行第一条语句,循环直至仿真结束。通常用来对数字电路中一组反复执行的活动进行建模,比如时钟信号发生器。给出一种时钟发生器方式:

module clock_gen(output reg clock);

  initial clock = 1'b0;

  always   #10  clock = ~clock;

  initial  #1000 $finish;

endmodule

posted @ 2020-05-09 16:43  小龙别哭  阅读(1275)  评论(0编辑  收藏  举报