如何仅对单个SystemVerilog文件设置`default_nettype为none且可恢复原值
SystemVerilog default_nettype配置的保存恢复方案
SystemVerilog 2009(IEEE 1800-2009)及更高版本标准原生支持类似C++ #pragma push的栈操作机制,可以完美解决这个问题。
你只需要在修改default_nettype前执行push操作保存当前配置,文件末尾执行pop操作恢复即可,示例如下:
// 压栈保存当前的default_nettype配置 `default_nettype push // 设置为当前文件需要的none `default_nettype none // 此处填写当前文件的所有业务代码 // 弹栈恢复修改前的原有配置 `default_nettype pop
- 该语法已被所有主流EDA工具(VCS、Questa、Xcelium、Vivado等)的较新版本支持,兼容性有保障。
- 相比末尾强制重置为wire的方案,push/pop机制完全不会篡改文件外的全局配置:无论修改前
default_nettype是wire、none、wand、tri还是其他合法值,恢复后都和修改前完全一致,是实现单文件局部default_nettype配置的最优解。
内容的提问来源于stack exchange,提问作者Timmmm
相关产品推荐
相关产品推荐

