HDLBits (22) — 按名称连接端口
本题链接:
https://hdlbits.01xz.net/wiki/Module_name
此问题和之前的module类似。都可以在某种程序中给出一个名为mod_a的模块,其中包含2个输出和4个输入。必须按名称将6个端口连接到对应的顶级模块的端口:

你被提供了以下模块:
module mod_a ( output out1, output out2, input in1, input in2, input in3, input in4);

预期解决方案长度:大约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