1
필자는 본질적으로 아래 예제로 보일 수있는 테스트 벤치를 만났습니다. 클럭 및 신호는 차단 할당으로 동일한 타임 스텝에서 변경됩니다. 나는 이것이 시계와 두 개의 ctrlX 신호 사이의 경쟁 조건을 야기한다고 믿지만 EDA 놀이터에서 증명할 수 없었다. 경쟁 조건이 있다고 수정합니까? (EDA 놀이터 링크 : https://www.edaplayground.com/x/5yDX#&togetherjs=gkG5xewfNN)는 ctrlx에 대한 차단 할당을 사용하고 그들이 posedge clk
과 동시에 변화되기 때문에신호 간의 경쟁 조건
module tb_example;
reg clk = 1;
reg [3:0] dff1,dff2;
reg [3:0] ctrl1 = 'd0;
reg [3:0] ctrl2 = 'd0;
initial begin
#10 ctrl1 = 'd1;
#20 ctrl1 = 'd2;
#10 ctrl1 = 'd3;
#100 $finish;
end
always begin
#5 clk = !clk;
end
initial begin
$dumpfile("dump.vcd");
$dumpvars(0,tb_example);
end
initial begin
#10 ctrl2 = 'd1;
#20 ctrl2 = 'd2;
#10 ctrl2 = 'd3;
#100 $finish;
end
always @ (posedge(clk)) begin
dff1 <= ctrl1;
end
always @ (posedge(clk)) begin
dff2 <= ctrl2;
end
endmodule