2012-11-16 18 views
2

我需要使用一个模块,我以前在另一个模块中使用vhdl创建,我无法找到任何有关如何执行此操作的信息。我不得不使用maxplus2,我在那里发现的唯一的事情就是我可以在那里创建包含文件(将有.inc扩展名),但是我仍然不能将它包含在我的第二个模块中。我花了整整一个早上搜索这个信息,但什么也没找到。 有人可以帮我吗?如何在vhdl中创建包含文件?

+0

相关http://stackoverflow.com/questions/26288447/using-entities-from-another-file-in-vhdl –

回答

5

你不知道。

VHDL没有包含文件,它避免了整个可怕的灾难性的不可靠的混乱。

VHDL使用单独的编译,并且良好的VHDL工具(并非所有的工具都可以)正确地跟踪所有依赖项,而无需包含或Makefiles。

所以你编译你的其他模块到一个库 - 也许是“my_modules” - 或者如果你没有指定一个库,只编译它,它会进入默认库“work”。

然后你的主模块中,要对库(除了是永远存在的“工作”)

library ieee; 
library my_modules; 

和命名的东西,你从他们(想除了“工作”(模块封装).. )

use ieee.numeric_std.all; 
use my_modules.all; 

你现在可以使用任何你想从这些库中得到的东西。使用模块最简单的方法是“直接实体实例化” - 搜索这个和“VHDL”将告诉你如何。 或者你也可以在你的主模块中声明一个与你的其他模块具有相同端口的组件,并且正确的模块将在精化(VHDL术语用于链接)时替换该组件。如果您还没有编写库模块 - 即自顶向下的设计,那么您需要一个组件的地方就是如此,否则直接的实体实例化更简单。现在,忽略“my_modules”并仅使用“work” - 当您遇到大型设计时,可使用库来组织它,例如,保持硬件和测试平台分离。

3

Brian对你有正确的答案。我会添加哪些与您的问题相关的内容,这是其他人使用的其他内容包括:

package s是VHDL共享数据类型,常量,函数和过程的方式。

相关问题