Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Module systemverilog模块名称空间_Module_Namespaces_System Verilog - Fatal编程技术网

Module systemverilog模块名称空间

Module systemverilog模块名称空间,module,namespaces,system-verilog,Module,Namespaces,System Verilog,我正在将两个设计组合成一个芯片设计。RTL代码是用SystemVerilog编写的,用于合成。不幸的是,这两种设计包含许多名称相同但逻辑稍有不同的模块 SystemVerilog中是否有命名空间或库功能允许我使用相同的名称指定不同的模块?换句话说,我是否可以使用lib1::module1、lib2::module1语法来指定我想要的模块?如何最好地处理这种模块名称空间污染 谢谢查看配置和库。见§33。配置设计的内容 library将根据文件路径(§33.3.libraries)将此文件映射到目标

我正在将两个设计组合成一个芯片设计。RTL代码是用SystemVerilog编写的,用于合成。不幸的是,这两种设计包含许多名称相同但逻辑稍有不同的模块

SystemVerilog中是否有命名空间或库功能允许我使用相同的名称指定不同的模块?换句话说,我是否可以使用lib1::module1、lib2::module1语法来指定我想要的模块?如何最好地处理这种模块名称空间污染


谢谢

查看
配置
。见§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的免费下载。惊喜