时序逻辑一般用always 块来写;
例: reg led;
always @ (posedge clk) led <= 1'b1;
组合逻辑一般用assign 进行赋值;
例:wire led;
assign led = 1'b1;
组合逻辑也可以用always块进行赋值;
例:reg led;
always @ ( * ) led = 1'b1;
再用always 块进行组合逻辑写法的时候一定要注意,用 = 而不是用 <= ;定义信号的时候还是用reg;
如果时序逻辑用always 块进行写;而赋值用了<= 将会出现什么情况呢??下面是一个实例;
可以看到,在app_wr_en 有效的时候,s_addr 有时直接进行自加,有时延迟一拍进行了自加;