请问为什么会有这样的问题,在寄存器前面加一个线网再赋值就要慢一个周期
本帖最后由 fpgaw 于 2010-7-18 13:44 编辑比如有这样一段verilog 代码
module zz(clk,data)
input clk;
input data;
reg state1, state2;
wire bus;
assign bus=data;
always@(posedge clk)
if(data==3'b010)
begin
state1<=data;//比如data 也是在clk的上跳延变化的并且序列为001, 010, 011这样
state2<=bus;//这样在modsim中的结果就是state1=010, state2=001.
end
endmodule
这里的assign不是只是一个组合逻辑么,为什么会出现state2的结果和state1不同呢? 不可能,当上升沿采样到data=3'b010时,实际上data已经稳定在010差不多一个周期了,这时候bus肯定等于010了,绝对不可能state2=3'b001.
页:
[1]