能否将input端口默认设为wire类型,且模块内部未定义信号报错?
能否设置input端口默认为wire类型,同时禁止模块内部信号的默认声明?
对default_nettype的理解
default_nettype指令主要控制两类内容:
- input和inout端口的默认类型
- 设计内部信号的默认类型(例如logic)
当设置default_nettype wire后,以下两段代码完全等价:
简化写法
module m1 ( input logic i1, output logic o1 ); logic l1; assign l1 = i1; assign o1 = l1; endmodule
展开写法(开启默认后的实际等效代码)
module m1 ( input wire logic i1, // <-- 由default_nettype自动添加wire output logic o1 ); wire logic l1; // <-- 由default_nettype自动添加wire assign l1 = i1; assign o1 = l1; endmodule
核心疑问
有没有办法通过设置,同时满足两个要求:
- input端口默认采用wire类型
- 模块内使用未声明的信号(如下例中拼写错误的
hanana)时,工具直接触发报错?
错误场景示例
module m1 ( input logic i1, // <-- 希望此处默认类型为wire output logic o1 ); logic l1; logic banana; assign l1 = i1; assign hanana = i1; // 拼写错误,因未声明该信号应触发报错 assign o1 = l1; endmodule
内容的提问来源于stack exchange,提问作者Moberg
相关产品推荐
相关产品推荐

