【问题标题】:Add library to Vivado 2014.4将库添加到 Vivado 2014.4
【发布时间】:2015-03-12 13:58:18
【问题描述】:

我对 Vivado 和 VHDL 还很陌生,我想要一些关于基本问题的指导。

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

例如:

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

现在,通过在网上浏览,我没有找到任何具体的答案,没有任何直接的方法可以“添加库”(至少在我的 Vivado 版本中)。

有没有什么方法可以使用类型定义来构建 VHDL 代码并在您喜欢的任何文件中使用它们,例如在 C 中完成?

【问题讨论】:

    标签: vhdl vivado


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 来自 VHDL 2002:“库逻辑名称 WORK 表示给定分析期间的当前工作库”
      【解决方案3】:

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

      在 vsim 或 .do 文件中:

      vlib 路径/到/MyLib
      vmap MyLib 路径/到/MyLib
      vcom -93 - 完全工作 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 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-25
        • 1970-01-01
        • 2016-03-15
        • 2011-08-15
        • 2015-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多