verilog中initial语句的基本使用

一、知识点

  • 所有的initial语句内的语句构成了一个initial块。

  • initial块从仿真0时刻开始执行,在整个仿真过程中只执行一次。

  • 如果一个模块中包括了若干个initial块,则这些initial块从仿真0时刻开始并发执行,且每个块的执行是各自独立的

  • 如果在块内包含了多条行为语句,那么需要将这些语句组成一组,一般式使用关键字beginend将他们组合在一个块语句;如果块内只有一条语句,则不必使用beginend

initial语句的格式如下:

initial
	begin
		语句1;
		......
		语句n;
	end

二、举例

下面通过一个简单的例子来感受一下initial语句的执行方式:

module initial_test
reg x, y, a, b, m;
initial
	x = 1'b0;
initial
begin
	#10 a = 1'b1;
	#25 b = 1'b0;
end
initial
begin
	#15 c = 1'b0;
	#25 d = 1'b1;
end
initial
	#60 $finish;
endmodule

上述程序各个时间点的执行内容如下:

时间点				执行内容
0					x = 1'b0;
10					a = 1'b1;
15					c = 1'b0;
35					b = 1'b0;
40					d = 1'b1;
60					$finish;
posted @ 2020-09-21 19:29  耐心的小黑  阅读(545)  评论(0编辑  收藏  举报