module hello_top(
input clk_t,
input rst_t,
input rxd_t,
output txd_t
);
uart_send u_uart_send(
.clk (clk_t),
.rst (rst_t),
.txd (txd_t)
);
endmodule
module uart_send(
input clk,
input rst,
output txd
);
// coding from here
endmodule
示图

表格
| 端口 | 从模块内部看 | 从模块外部看 |
|---|---|---|
| input 输入端口 | 必须为线网类型 | 额可以线网类型或寄存器类型 |
| output 输出端口 | 可以是线网类型或寄存器类型 | 必须为线网类型 |
| inout 输入输出端口 | 必须为线网类型 | 必须为线网类型 |
说明
端口连接规则 将一个端口看成由相互链接的两个部分组成,一部分位于模块内部,另一部分位于模块外部。当在一个模块中调用(实例引用)另一个模块时,端口之间的连接必须遵守一些规则。
1、输入端口:从模块内部来讲,输入端口必须为线网数据类型,从模块外部来看,输入端口可以连接到线网或者reg数据类型的变量。
2、 输出端口:从模块内部来讲,输出端口可以是线网或者reg数据类型,从模块外部来看,输出必须连接到线网类型的变量(显式,隐式),而不能连接到reg类型的变量。
3、输入/输出端口(必须为wire) 从模块内部来讲,输入/输出端口必须为线网数据类型;从模块外部来看,输入/输出端口也必须连接到线网类型的变量。
本文详细解析了Verilog中的模块定义及端口连接规则,包括input、output和inout三种端口的数据类型要求及其在模块内外的不同表现形式。

3535

被折叠的 条评论
为什么被折叠?



