欢迎光临散文网 会员登陆 & 注册

HDLBits (55) — 组合电路 A 和 B

2022-02-28 17:58 作者:僚机Wingplane  | 我要投稿

本题链接:

https://hdlbits.01xz.net/wiki/Mt2015_q4

摘自2015年中期问题4

有关此处使用的子模块,请参见mt2015_q4amt2015_q4b。顶层设计包括两个子电路A和B的实例化,如下所示。

实现这个电路。

题目

提示:

您可以选择使用图中所示的两个子模块分层次地创建这个电路,或者不分层次地创建相同的功能。

答案

在一个模块中引用另一个模块,对其端口进行相关连接,叫做模块例化。模块例化建立了描述的层次。信号端口可以通过位置或名称关联,端口连接也必须遵循一些规则。

输入端口

模块例化时,从模块外部来讲, input 端口可以连接 wire 或 reg 型变量。这与模块声明是不同的,从模块内部来讲,input 端口必须是 wire 型变量。

输出端口

模块例化时,从模块外部来讲,output 端口必须连接 wire 型变量。这与模块声明是不同的,从模块内部来讲,output 端口可以是 wire 或 reg 型变量。

输入输出端口

模块例化时,从模块外部来讲,inout 端口必须连接 wire 型变量。这与模块声明是相同的。

悬空端口

模块例化时,如果某些信号不需要与外部信号进行连接交互,我们可以将其悬空,即端口例化处保留空白即可,上述例子中有提及。

output 端口正常悬空时,我们甚至可以在例化时将其删除。

input 端口正常悬空时,悬空信号的逻辑功能表现为高阻状态(逻辑值为 z)。但是,例化时一般不能将悬空的 input 端口删除,否则编译会报错。

参考内容:

5.2 Verilog 模块例化 | 菜鸟教程:

https://www.runoob.com/w3cnote/verilog-generate.html


HDLBits (55) — 组合电路 A 和 B的评论 (共 条)

分享到微博请遵守国家法律