非阻塞赋值

2019-07-15 23:08发布

各位大师:   请教一个问题。always @(posedge clk or posedge rst)if (rst) y1 <= 0; // resetelse y1 <= y2;always @(posedge clk or posedge rst)if (rst) y2 <= 1; // preset此处插入许多非阻塞语句。else y2 <= y1;endmodule资料说:左边的REG集中赋值,两个ALWAYS先后顺寻没关系。如果第二个ALWAYS因为插入许多语句,导致执行时间与第一个ALWAYS有大的差异,那么两个ALWAYS的左边的REG更新是在哪个ALWAYS执行完毕更新,是最长时间执行完毕的ALWAYS,然后两个一起更新吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
勇敢的心2
2019-07-16 15:09
新手吗?你不能只看verilog hdl语法,还要理解什么是组合逻辑,什么是时序逻辑!用HDL语言编写的代码,最终都要综合成电路,如果对电路没有概念的话,编写出来的代码可综合性非常差!针对你提出的问题,我建议你去看三段式的FSM编写方法,并自己去仿真和思考!网络上有很多关于三段式的详细说明!

一周热门 更多>