Verilog的端口连接规则

  • Post author:
  • Post category:其他


模块端口和与之链接的信号的数据类型必须遵循以下规定:

1.输入端口在模块内部必须为wire形数据;在模块外部可以连接wire或者reg型数据。

2.输出端口在模块内部可以为wire或者reg型数据,在模块外部必须连接到wire型数据。

3.连接的两个端口位宽可以不同。

veirlog中的端口类型 input output inout,所有的端口在声明时都默认为wire类型。

reg 本质是存储器,有寄存功能

wire本质是一条没有逻辑的连线。

verilog的端口连接规则分为一下两种情况:

1、模块描述时

模块描述时在模块内部对模块的端口进行描述,是从内部角度出发,因此将input端口看作外界引申进来的一条线,只能为net型变

量:同理inout端口作为有输入功能的端口,也应该看作net型变量。而output端口被看作模块的输出,既可以直接输出(如组合逻辑),

也可以寄存后输出(如时序逻辑),因此output端口应该设为reg型变量。

2、模块调用时

模块被调用时是在.上级模块中对下级模块的例化,描述了其采用何种信号与芯片(即底层模块)连接,进行驱动或得到输出。此时是

从外部角度出发…上级模块对 下级模块的输入既可以想输入什么就输入什么,也可以想什么时候输入就什么时候输入,所以input端口可以

为net/reg 型变量。而output端口是上级模块对下级模块的被动接收,是下级模块的一根输出导线,因此output端口只能是net型变量;同

理inout端口也只能是net型变量。

综上所述

模块描述时,input 端口只能为net, output 端口可以为netreg, inout 端口只能为net;

模块调用时,连接模块inpu端口的信号可以为net/reg 型,连接模块output端口的信号只能为net,连接模块inout端口的信号也只能

为net;



版权声明:本文为qq_43108684原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。