verilog-mode AUTOARG是否支持SystemVerilog包类型端口的正确生成?
Verilog-mode AUTOARG对SystemVerilog包类型端口的支持问题
问题分析
导入something_pkg.sv包后,在模块中声明输入端口busA为some_pkg::tx_something类型并使用/*AUTOARG*/,生成的端口列表错误显示some_pkg::tx_something而非端口名busA,这是因为旧版verilog-mode的AUTOARG功能对SystemVerilog包限定的类型解析存在兼容性问题,未能正确识别包类型后的端口标识符。
解决方法
- 升级verilog-mode版本:较新的verilog-mode(比如Emacs 28及以上附带的版本,或官方维护仓库更新的版本)已修复该解析问题,AUTOARG能正确提取
busA作为端口名。 - 临时兼容写法:若暂时无法升级,可将包类型的端口声明拆分为两步:
这种写法下AUTOARG可正确识别端口名import some_pkg::*; module test_module (/*AUTOARG*/); input tx_something busA; // 导入包后省略包限定符 // 其他逻辑 endmodulebusA,生成的端口列表会显示tx_something busA,后续可根据需求补回包限定符(若需显式声明)。 - 手动修正端口列表:若上述方法均不适用,生成端口列表后直接手动将错误的
some_pkg::tx_something替换为some_pkg::tx_something busA即可。
内容的提问来源于stack exchange,提问作者lalala00066
相关产品推荐
相关产品推荐

