携带 VHDL 代码的推荐方法是什么?

What is the recommended way for carrying VHDL code around?

我有一个由一些实体和一个包组成的 VHDL 设计。这些实体使用包中的一些定义,并且可以将彼此用作组件。

假设我用一个工具创建了它,但过了一段时间后我想使用该代码并在另一个工具中使用它。

以这种方式进行 VHDL 设计的 "right way" 是什么?我应该用它制作一个图书馆吗? (我以后可以 "import" 这个库到其他工具而不是它创建的工具吗?)我想要实现的是 Java 包之类的东西,它可以很容易地处理并包含在不同的项目中。有没有办法 "replicate" 在 VHDL 中做到这一点?

我读了 this SO question,但不知何故让我感到困惑。我是否应该只将我的实体和架构保留在 "work" 中并将包移动到库中?

VHDL 源代码通常可以在 VHDL 工具实现之间移植。

当一个设计单元被成功分析后,它被存储在一个库中,默认情况下,工作是什么,在上下文中。

库格式是实现定义的,不可移植。

IEEE Std 1076-2008 13.2 设计库,第 1 段:

A design library is an implementation-dependent storage facility for previously analyzed design units. A given implementation is required to support any number of design libraries.

和第 6 段:

For a given library logical name, the actual name of the corresponding design library in the host environment may or may not be the same. A given implementation shall provide some mechanism to associate a library logical name with a host-dependent library. Such a mechanism is not defined by the language.

没有什么能阻止您在可移植性问题的范围内将设计作为设计文件(源代码)的集合在工具实现之间移动。这包括特定设计单元所依赖的任何库的源代码。

需要支持 STD 和 IEEE 库以及它们的各种包(STANDARD、std_logic_1164、numeric_std、numeric_bit、...)提供可移植性框架在附件 D 的限制范围内,潜在的不可移植结构。