有关verilog阻塞与非阻塞语句的一个案例

2019-03-25 10:00发布

 ////////////////////////////////代码1///////////////////////////////////////  module pipeMult(product, mPlier, mCand, go, clock);   input          go, clock;   input [7:0]      mPlier, mCand;   output [15:0]      product;   reg [15:0] product;   always @(posedge go)     product = repeat (4) @(posedge clock) mPlier * mCand;   endmodule  ////////////////////////////////代码2///////////////////////////////////////   module pipeMult(product, mPlier, mCand, go, clock);   input          go, clock;   input [7:0]      mPlier, mCand;   output [15:0]      product;   reg [15:0] product;   always @(posedge go)     product <= repeat (4) @(posedge clock) mPlier * mCand;   endmodule 一个用的阻塞语句,一个用的非阻塞语句。代码1和代码2产生的结果是否有什么区别? 新手求指点…… 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
小an
2019-03-25 18:47
阻塞和非阻塞赋值语句都属于过程赋值语句,assign是连续赋值语句。虽然assign中的赋值也用“=”,但他与阻塞赋值是不同的概念。建议lz看下夏宇闻老师的《verilog HDL数字设计与综合》,语法讲得很清楚

[ 本帖最后由 小an 于 2011-10-19 12:02 编辑 ]

一周热门 更多>