2
关于
Verilog
中的几种赋值语句
(assign/deassign/force/release)
1.
连续赋值语句(
Continuous Assignments
)
连续赋值语句是
Verilog
数据流建模的基本语句,用于对线网进行赋值,等
价于门级描述,是从更高的抽象角度来对电路进行描述。连续赋值语句必须以
关键词
assign
开始。
连续复制的主要特点是:
•
连续赋值语句的左值可以是一下类型之一:
①标量线网
②向量线网
③矩阵中的一个元素(该矩阵可以是标量线网类型的,也可以是向量线网类型
的)
④向量线网的某一位
⑤向量线网的部分位
以及上述各种类型的拼接体
但是,不能是向量或向量寄存器。
•
连续赋值语句总是处于激活状态。只要任意一个操作数发生变化,表达式
就会被立即重新计算,并且将结果赋给等号左边的线网。
•
操作数可以是标量或向量的线网或寄存器,也可以是函数的调用。
•
赋值延迟用于控制对线网赋予新值的时间,根据仿真时间单位进行说明。
赋值延迟类似于门延迟,对于描述实际电路中的时序是非常重要的。
2.
过程赋值语句(
Procedural Assignments
)
过程赋值语句的更新对象是寄存器、整数、实数或时间变量等。这些类型的
变量在被赋值后,其值将保持不变,直到被其他过程赋值语句赋予新值。过程
赋值语句只有在执行到的时候才会起作用。过程赋值语句只能在
initial
或
always
语句内进行赋值,只能对变量数据类型赋值,同时
initial
和
always
中只
能使用过程赋值语句。过程赋值语句的左值可以是以下类型之一:
①
reg
、整形数、实型数、时间寄存器变量或存储器单元