我写了一个模块,它应该“或”一个带有延迟版本的信号。但是,当我模拟我的设计时,输出总是 x 而不是 1。我不知道为什么。这是我编写设计的方式:
module DUT(
input data_in,
input dw,
input rst,
output error
);
wire Edge;
wire #4 delayed_data_in;
assign Edge = data_in ^ delayed_data_in;
assign delayed_data_in = data_in;
always@(dw,Edge,rst) //Latch 1
begin
if(rst)
begin
error <= 0;
end
else if(dw)
begin
error <= Edge;
end
end
endmodule
延迟版本的行为符合预期,但Edge
只是error
转到“x”而不是 1。