Verilog中
阻塞赋值
阻塞赋值用等号(=),一般对应电路中的组合逻辑赋值,等号右端的结果会立刻赋值给左端。
非阻塞赋值
非阻塞赋值用小于等于号(<=)表示,一般对应电路中的时序逻辑赋值,等号右端的结果不会立刻赋值给左端。
assign, deassign
assign(过程赋值操作)与 deassign (取消过程赋值操作)表示第一类过程连续赋值语句。
赋值对象只能是寄存器或寄存器组,而不能是 wire 型变量。
assign Q = 1'b0 ; //给Q赋值
deassign Q ;//取消Q的赋值
force, release
force (强制赋值操作)与 release(取消强制赋值)表示第二类过程连续赋值语句。
赋值对象可以是 reg 型变量,也可以是 wire 型变量。
当 force 作用在寄存器上时,寄存器当前值被覆盖;release 时该寄存器值将继续保留强制赋值时的值。之后,该寄存器的值可以被原有的过程赋值语句改变。
当 force 作用在线网上时,线网值也会被强制赋值。但是一旦 release 该线网型变量,其值马上变为原有的驱动值
VHDL中
:=是对变量和常量进行赋值的赋值操作符,另外在声明信号、变量、常量的时候,可以用:=对其赋初值
变量赋值格式为“变量名:=表达式”,(阻塞)
信号赋值格式为“信号名<=表达式”;(非阻塞)
=>是用于port map 子模块的例化