Verilog实例化元件时端口连接规则:
(1)输入端口(input):从模块内部看,输入端口必须为线网(wire)数据类型;从模块外部看,输入端口可以连接到线网或reg数据类型的变量。
(2)输出端口(output):从模块内部来讲,输出端口可以是线网或reg数据类型;从模块外部来看,输出必须连接到线网(wire)类型的变量,而不能连接到reg类型的变量。
(3)输入/输出端口(inout):从模块内部,外部来看,都必须连接到线网(wire)类型变量。
(4)位宽匹配:在对模块进行调用(实例引用)的时候,Verilog允许端口的内、外两个部分具有不同的位宽。在一般情况下,Verilog仿真器会对此给予警告。
(5)未连接端口:Verilog允许模块实例的端口保持未连接的状态。例如,如果模块的某些端口只用于调试,那么这些端口可以不与外部信号连接。
注:模块内部是指被调模块(底层模块),模块外部是指顶层模块。