verilog语法:reg与wire

reg与wire

wire型数据常用来表示用于以assign关键字指定的组合逻辑信号。Verilog程序模块中输入输出信号类型缺省时自动定义为wire型。wire型信号可以用作任何方程式的输入,也可以用作“assign”语句或实例元件的输出。

reg型数据常用来表示用于“always”模块内表示时序逻辑电路,常代表触发器。通常,在设计中要由“always”块通过使用行为描述语句来表达逻辑关系。在“always”块内被赋值的每一个信号都必须定义成reg型。注意,always中的reg不一定只表示时序逻辑电路,也可以表达组合逻辑电路,取决于具体情况。

以上内容不过多介绍,书本上都有。下面介绍构建module使用例化好的module时输入输出信号的类型要求。

verilog语法:reg与wire_第1张图片

如上图,构建一个模块module时,

input必须是wire;(输入不定义默认就是wire)
output可以是wire也可以是reg;(输出不用赋值就默认wire,要赋值就定义reg)
inout必须是wire;

:INOUT类型一般信号线用做总线等双向数据传输的时候。就是一个端口同时做输入和输出。 inout 在具体实现上一般用三态门来实现。三态门的第三个状态就是高阻’Z’。当 inout 端口不输出时,将三态门置高阻。

使用例化好的模块时,

外部连接input端口的可以是wire也可以是reg;(比如写testbench时,与输入连接的通常定义为reg,但也可以是wire)
外部连接output端口的必须是wire;(参考test bench)
外部连接inout端口的必须是wire;

以上内容参考自下文:
链接: Verilog语法之三:变量

你可能感兴趣的:(FPGA,fpga开发,arm开发,学习,笔记)