Module systemverilog模块名称空间
我正在将两个设计组合成一个芯片设计。RTL代码是用SystemVerilog编写的,用于合成。不幸的是,这两种设计包含许多名称相同但逻辑稍有不同的模块 SystemVerilog中是否有命名空间或库功能允许我使用相同的名称指定不同的模块?换句话说,我是否可以使用lib1::module1、lib2::module1语法来指定我想要的模块?如何最好地处理这种模块名称空间污染Module systemverilog模块名称空间,module,namespaces,system-verilog,Module,Namespaces,System Verilog,我正在将两个设计组合成一个芯片设计。RTL代码是用SystemVerilog编写的,用于合成。不幸的是,这两种设计包含许多名称相同但逻辑稍有不同的模块 SystemVerilog中是否有命名空间或库功能允许我使用相同的名称指定不同的模块?换句话说,我是否可以使用lib1::module1、lib2::module1语法来指定我想要的模块?如何最好地处理这种模块名称空间污染 谢谢查看配置和库。见§33。配置设计的内容 library将根据文件路径(§33.3.libraries)将此文件映射到目标
谢谢查看
配置
和库
。见§33。配置设计的内容
library
将根据文件路径(§33.3.libraries)将此文件映射到目标库config
将映射用于瘫痪模块的库(全局、实例、子范围)(§33.4.配置)
第33.8节提供了示例。注意:有些模拟器需要命令行中的
-libmap
。请参阅模拟器手册 不幸的是,verilog和system verilog都没有为设计元素(包括模块)的名称空间问题提供全面的解决方案。V2K库和配置语句(是的,它们是在verilog V2K中引入的)只能部分地帮助您解决模块的问题,并且只有在您提前计划并使用正确的方法来实现它的情况下。没有多少人尝试使用v2k libs来解决这个问题
还有其他的部分,你可能会发现。它包括其他设计元素、宏名、文件名、包名等。。。由于引入了全局范围,系统verilog使情况变得更糟
因此,根据设计的复杂性,您可以使用v2k libs来修复它。但总的来说,解决方案总是在于方法论,并预先将这些名称统一起来。一些公司甚至试图通过自动重写verilog代码来使用即时身份验证,以使这些名称具有唯一性
您还可以使用SV标准中定义的、至少由主要工具供应商实现的编译单元来解决一些问题,例如 @dave_59,我不知道*-2017成为非订户IEEE Xplore的免费下载。惊喜