Добавить библиотеку в Vivado 2014.4

Я новичок в Vivado и VHDL, и мне нужны некоторые рекомендации по фундаментальному вопросу.

Я предполагаю, что я могу создавать свои собственные библиотеки и использовать их в своих проектах, как я делаю это со стандартными и фундаментальными.

eg:

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

Сейчас, порывшись в сети, я не нашел ничего конкретного в качестве ответа, прямого способа «добавить библиотеку» (по крайней мере, в моей версии Vivado) нет.

Есть ли способ создать код VHDL с, скажем, определениями типов и использовать их в любом файле, который вам нравится, как это делается, например, в C?


person Rizias    schedule 12.03.2015    source источник


Ответы (3)


Таким образом, библиотеки — это просто метод решения некоторых конфликтов имен. Таким образом, Xilinx (или другой поставщик) может выпустить новый объект, и он не будет конфликтовать с вашими существующими объектами. Вы, конечно, можете сделать это, но на самом деле это не решит никаких проблем для вас.

Вместо этого вам нужен пакет. Давайте посмотрим, как мы будем его использовать:

Давайте создадим еще один файл tools.vhd

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

Которые мы могли бы затем использовать в наших объектах как:

use work.tools.all;
...
signal x : tribool := maybe;
person Bill Lynch    schedule 12.03.2015

Каждый файл в VHDL находится внутри библиотеки (в Vivado файл проекта по умолчанию находится в xil_defaultlib).

Вы можете создать/изменить библиотеку, в которой находится файл в Vivado, щелкнув файл, а затем нажав кнопку справа от метки «Библиотека» на вкладке «Свойства исходного файла». Вы можете создать библиотеку, назначив файл несуществующей библиотеке.

Вы часто будете видеть, как библиотека работает на VHDL. Кто-то меня поправит, если я ошибаюсь, но работа не является библиотекой и относится только к текущей библиотеке. Таким образом, если у вас есть пакет и объект в одной библиотеке, вы можете ссылаться на пакет как my_library.my_pkg или work.my_pkg.

person Jonathan Drolet    schedule 12.03.2015
comment
Из VHDL 2002: логическое имя библиотеки WORK обозначает текущую рабочую библиотеку во время данного анализа. - person Bill Lynch; 12.03.2015

Если вы хотите работать с библиотеками вне Vivado (например, большие имитационные модели), вы можете предварительно скомпилировать их, например, в Questa/Modelsim:

в файле vsim или .do:

vlib путь/к/MyLib
vmap MyLib путь/к/MyLib
vcom -93 -work MyLib полностью/другое/путь/к/MyLibSource.vhd

Теперь Vivado имеет тенденцию перезаписывать файлы в папке моделирования, поэтому не помещайте его туда, если вы не хотите каждый раз перекомпилировать его. Однако Vivado должен уважать то, что находится в modelsim.ini. Так что добавьте к этому:

MyLib = путь/от/vivado/sim/к/Mylib

Теперь вы можете использовать MyLib как любую другую библиотеку:

library MyLib; 
use MyLib.all; 
. . .  
i_MyAwesomeModel : entity MyLib.HalfAdder_Sim 
person FritzDC    schedule 24.02.2017