HDLBits (21) — 按位置连接端口
本题链接:
https://hdlbits.01xz.net/wiki/Module_pos
这个问题和上一个(module)类似。 您将获得一个名为 mod_a 的模块,该模块按顺序有 2 个输出和 4 个输入。 您必须按位置顺序将 6 个端口连接到顶层模块的端口 out1、out2、a、b、c 和 d 上。
您将获得以下模块:
module mod_a ( output, output, input, input, input, input );


题目
预期的解决方案长度:大约 1 行。

答案

输出波形


端口是模块与外界交互的接口。对于外部环境来说,模块内部是不可见的,对模块的调用只能通过端口连接进行。
端口列表
模块的定义中包含一个可选的端口列表,一般将不带类型、不带位宽的信号变量罗列在模块声明里。一个模块如果和外部环境没有交互,则可以不用声明端口列表。
端口声明
(1) 端口信号在端口列表中罗列出来以后,就可以在模块实体中进行声明了。
根据端口的方向,端口类型有 3 种: 输入(input),输出(output)和双向端口(inout)。
input、inout 类型不能声明为 reg 数据类型,因为 reg 类型是用于保存数值的,而输入端口只能反映与其相连的外部信号的变化,不能保存这些信号的值。
output 可以声明为 wire 或 reg 数据类型。
(2) 在 Verilog 中,端口隐式的声明为 wire 型变量,即当端口具有 wire 属性时,不用再次声明端口类型为 wire 型。但是,当端口有 reg 属性时,则 reg 声明不可省略。
(3) 当然,信号 DOUT 的声明完全可以合并成一句。
(4) 还有一种更简洁且常用的方法来声明端口,即在 module 声明时就陈列出端口及其类型。reg 型端口要么在 module 声明时声明,要么在 module 实体中声明。
参考内容:
5.1 Verilog 模块与端口 | 菜鸟教程:
https://www.runoob.com/w3cnote/verilog-module-port.html