将库添加到Vivado 2014.4

时间:2015-03-12 13:58:18

标签: vhdl vivado

我对Vivado和VHDL很新,我想就一个基本问题提供一些指导。

我猜我可以创建自己的库并在我的项目中使用它们,就像我使用默认库和基础库一样

例如:

library IEEE;
use IEEE.std_logic_1164.ALL;
use IEEE.std_logic_unsigned.ALL;

现在,通过在网上浏览,我还没有发现任何具体的答案,没有任何直接的方式来添加库" (至少在我的Vivado版本中)。

有没有办法用类型定义构建VHDL代码并在任何你喜欢的文件中使用它们,例如在C中完成?

3 个答案:

答案 0 :(得分:5)

因此,库只是处理某些名称冲突的方法。因此,Xilinx(或其他供应商)可以发布新实体,而不会与现有对象发生冲突。你当然可以这样做,但它实际上并没有为你解决任何问题。

相反,您正在寻找的是。让我们来看看我们将如何使用它:

让我们创建另一个文件tools.vhd

package tools is
    type tribool is (true, false, maybe);
end package;

然后我们可以在我们的实体中使用:

use work.tools.all;
...
signal x : tribool := maybe;

答案 1 :(得分:3)

VHDL中的每个文件都驻留在一个库中(在Vivado中,您的设计文件默认位于xil_defaultlib中)。

您可以通过单击文件,然后单击"源文件属性"中的库标签右侧的按钮来创建/更改文件驻留在Vivado中的库。标签。您可以通过将文件分配给不存在的库来创建库。

您经常会看到该库在VHDL中工作。如果我错了,有人会纠正我,但工作不是图书馆而只是指当前的图书馆。因此,如果您在同一个库中有一个包和一个实体,则可以将该包引用为my_library.my_pkg或work.my_pkg。

答案 2 :(得分:2)

如果要处理Vivado之外的库(例如大型仿真模型),可以预编译它们,例如在Questa / Modelsim中:

在vsim或.do文件中:

  

vlib path / to / MyLib
  vmap MyLib路径/到/ MyLib
  vcom -93 -work MyLib完全/ other / path / to / MyLibSource.vhd

现在,Vivado倾向于覆盖模拟文件夹中的文件,所以除非你想每次都重新编译它,否则不要把它放在那里。但是,Vivado应该尊重modelsim.ini中的内容。所以补充一点:

  

MyLib = path / from / vivado / sim / to / Mylib

现在您可以将MyLib用作任何其他库:

library MyLib; 
use MyLib.all; 
. . .  
i_MyAwesomeModel : entity MyLib.HalfAdder_Sim