Verilog assignment

Posted 飞鸢逐浪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Verilog assignment相关的知识,希望对你有一定的参考价值。

Verilog

  case-sensitive, all keywords are lowercase

 

1  continuous assignment  

assign  data_left  =  data_right;  // right drive left(net)

例 1)  mux

assign  data_out  =  select ? data_in1 : data_in0;

技术分享

2  procedural assignment

1)  blocking ("=")

     execute sequential

2)  nonblocking ("<=")

     read (right)  -> schedule (left) ->  execute (<=)

例 2)  synchronizer

技术分享

技术分享
reg  [1:0]  data_sync;

always @ (posedge clk or posedge rst)
begin
  if (rst)
        data_sync  <=  2b00;
  else
        data_sync  <= {data_sync[0], data_in};
end

assign  data_out  =  data_sync[1];

synchronizer
synchronizer

以上是关于Verilog assignment的主要内容,如果未能解决你的问题,请参考以下文章

verilog语言中assign怎么用?

verilog中assign 是啥意思

关于verilog 中 assign 用法的一个问题

verilog 为啥乘法器写的那么复杂? 不是这样写也可以吗 assign c = a * b;

Verilog assignment

Notepad++编辑器——Verilog代码片段直接编译