Verilog 模块(module)、端口(port)和例化(instantiation)
1、端口类型(Port Type)
| input | output | inout | 说明 | |
| 模块描述 | 只能wire | wire or reg | 只能wire | 1. 模块的输入从模块内部看,就是外界输入的一根信号线,外界来什么模块就接收什么,因此模块描述时input端口只能为线网类型。进入模块之后,可以用reg类型变量来采样wire输入。 2. 模块的输出从模块内部看,就是处理结果向外界的输出,可以直接输出(如组合逻辑)也可以寄存一会再输出(如时序逻辑),因此模块描述时可以为线网类型/reg类型(即使是reg类型,在连续赋值给wire也是完全一致的)。 3. 同理,模块描述时inout端口只能为线网类型(因为包含input) |
| 模块调用(例化) | wire or reg | 只能wire | 只能wire | 1. 模块的输入从模块外部看,输入信号作为模块的激励,外界想输入什么就输入什么,想何时输入就何时输入,因此模块调用时input端口可以为线网类型/reg类型。 2. 模块的输出从模块外部看,模块外部看来输出端口就是模块通向外界的一根输出导线,模块外部只能被动接收,因此模块调用时output端口只能为线网类型; 3. 同理,模块调用时inout端口只能为线网类型(因为包含output) |
备注:无论是testbench中例化还是更上一层模块例化,都是一样的。

浙公网安备 33010602011771号