分类: 嵌入式
2010-05-24 23:18:42
Verilog HDL 有两大类数据类型。
1) 线网类型。net type 表示Verilog结构化元件间的物理连线。它的值由驱动元件的值决定,例如连续赋值或门的输出。如果没有驱动元件连接到线网,线网的缺省值为z。
2) 寄存器类型。register type表示一个抽象的数据存储单元,它只能在always语句和initial语句中被赋值,并且它的值从一个赋值到另一个赋值被保存下来。寄存器类型的变量具有x的缺省值。
连续赋值语句将值赋给线网(连续赋值不能为寄存器赋值),它的格式如下(简单形式):
assign LHS_target = RHS_expression;
连续赋值语句在什么时候执行呢 ? 只要在右端表达式的操作数上有事件 (事件为值的变化)
发生时,表达式即被计算;如果结果值有变化,新结果就赋给左边的线网。
1) initial 语句
2) always语句
一个模块中可以包含任意多个 initial或always语句。这些语句相互并行执行,即这些语句
的执行顺序与其在模块中的顺序无关。一个 initial语句或always语句的执行产生一个单独的控制流,所有的initial和always语句在0时刻开始并行执行。