14.11-对同一变量进行多次赋值

对同一变量进行多次赋值

      • 1,同一变量多次赋值,即便是非阻塞赋值,也会存在竞争冒险

原则6:严禁在多个always块中对同一个变量赋值,包括阻塞和非阻塞赋值。

1,同一变量多次赋值,即便是非阻塞赋值,也会存在竞争冒险

两个always块都对输出q进行赋值。由于两个always块执行的顺序是随机的,所以仿真时会产生竞争冒险。

module	badcode1(q, d1, d2, clk, rst_n);
output		q;
input		d1, d2, clk, rst_n;
reg			q;

always@(posedge clk or negedge rst_n)
	if(!rst_n)
			q	<= 1'b0;
	else	
			q	<= d1;

always@(posedge clk or negedge rst_n)
	if(!rst_n)
			q	<= 1'd0;
	else
			q	<= d2

endmodule

你可能感兴趣的:(Verilog语法)