赋值语句
连续赋值语句
wire
型数据只能被assign赋值,用以指定的组合逻辑信号。
如:assign b = a;
表达式右侧的计算结果可以立即更新到左侧,所以wire
型数据需要持续的驱动,给wire型信号a逻辑值相当于通过导线。例:在组合逻辑电路中定义内部信号为wire型。
过程赋值语句
reg
型一般在always
initial
过程语句中
即使always*(a or b or c)
敏感列表是此种类型,变量仍是reg型,综合出来为组合逻辑
输入输出
由于模块间的例化,对于输入信号,连接的上一级输出是组合逻辑输出还是寄存器输出(可由
wire
型/reg
型驱动),所以对于当前模块来说是wire
型;而输出端口只能驱动wire型,自己决定是组合逻辑输出还是寄存器输出。
综合
wire型变量
综合出来是一根导线,用来连接电路,这时易理解它没有驱动能力,不能存储值
reg型变量
reg型可综合成
register
(边沿触发)对应触发器,latch
(电平触发)对应锁存器,wire
(作为中间变量)
仿真文件
待仿真文件输入类型信号需在仿真文件中设置为
reg
型;
待仿真文件输出类型信号需在仿真文件中设置为wire
型;
可以这样理解:待仿真文件相当于一个黑盒,对黑盒进行测试,所以输入信号在仿真文件为reg型【数据源不断产生数据流】,输出信号在仿真文件中为wire型。
同时也说明待仿真文件的输入信号为wire型【双向端口】,输出信号为reg型