System verilog 我可以在包中添加模块吗?或者如何编写相关模块?

System verilog 我可以在包中添加模块吗?或者如何编写相关模块?,system-verilog,System Verilog,模块(如仲裁器、fifo等)的名称完全相同是很常见的。或者在使用开源项目时 有没有一种方法可以使模块成为相对的 我可以在包中添加模块吗 除了重命名和更改所有文件之外,还有更好的方法处理这个问题吗 编辑: Vivado不支持库和配置。 标有星号(*)的关键字是 由Verilog保留,Vivado synthesis不支持 UG901(2020.1版)2020年6月24日: 不能在包中声明模块 SystemVerilog有一种嵌套模块声明的方法,这样您就可以定义包含模块B声明的模块a。这使得模块

模块(如仲裁器、fifo等)的名称完全相同是很常见的。或者在使用开源项目时

  • 有没有一种方法可以使模块成为相对的
  • 我可以在包中添加模块吗
  • 除了重命名和更改所有文件之外,还有更好的方法处理这个问题吗
编辑: Vivado不支持库和配置。

标有星号(*)的关键字是 由Verilog保留,Vivado synthesis不支持

UG901(2020.1版)2020年6月24日:
不能在包中声明模块

SystemVerilog有一种嵌套模块声明的方法,这样您就可以定义包含
模块B
声明的
模块a
。这使得模块B对模块A是私有的,并且只有A可以实例化B

对于一个开源项目或任何类似的项目,您可以将模块编译到单独的库中(
lib1
lib2
,等等)。然后,您可以在每个库中使用相同名称的模块(
fifo
),并且
lib1
中实例化
fifo
的任何模块都将从同一库中拾取它。如果同一个库中没有
fifo
,则可以指定库搜索顺序,指示从何处拾取
fifo
。您甚至可以让一个模块具有两个
fifo
实例,一个实例来自
lib1
,另一个来自
lib2


第33节对此进行了解释。在中配置设计的内容。有关如何管理库的详细信息是特定于工具的。请阅读工具的用户手册或直接与工具供应商联系以获得支持。

您不能在软件包中声明模块

SystemVerilog有一种嵌套模块声明的方法,这样您就可以定义包含
模块B
声明的
模块a
。这使得模块B对模块A是私有的,并且只有A可以实例化B

对于一个开源项目或任何类似的项目,您可以将模块编译到单独的库中(
lib1
lib2
,等等)。然后,您可以在每个库中使用相同名称的模块(
fifo
),并且
lib1
中实例化
fifo
的任何模块都将从同一库中拾取它。如果同一个库中没有
fifo
,则可以指定库搜索顺序,指示从何处拾取
fifo
。您甚至可以让一个模块具有两个
fifo
实例,一个实例来自
lib1
,另一个来自
lib2


第33节对此进行了解释。在中配置设计的内容。有关如何管理库的详细信息是特定于工具的。请阅读工具的用户手册或直接与工具供应商联系以获得支持。

我从未见过任何使用库的示例。那很有趣。谢谢戴夫!稍后我可能会提出一个关于这些库的新问题。希望Vivado能正确处理这个问题。本文中有一个20多年前的小例子。我无法访问报纸:“这个网站被屏蔽了”。这个网站应该是公开的。尝试搜索文件名。使用archive.org找到它。谢谢我从未见过任何使用这些库的示例。那很有趣。谢谢戴夫!稍后我可能会提出一个关于这些库的新问题。希望Vivado能正确处理这个问题。本文中有一个20多年前的小例子。我无法访问报纸:“这个网站被屏蔽了”。这个网站应该是公开的。尝试搜索文件名。使用archive.org找到它。谢谢