2015-03-12 6 views
4

Я совершенно новичок в Vivado и VHDL, и мне хотелось бы получить некоторые рекомендации по фундаментальной проблеме.Добавить библиотеку в Vivado 2014.4

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

например:

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

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

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

ответ

2

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

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

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

+0

С VHDL 2002: «Библиотечное логическое имя« WORK »обозначает текущую рабочую библиотеку во время данного анализа» –

4

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

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

Давайте создадим другой файл tools.vhd

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

Что мы могли бы использовать в наших организациях, как:

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

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

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

vlib путь/к/MyLib
VMAP MyLib путь/к/MyLib
Vcom -93 -Работа MyLib полностью/другие/путь/к/MyLibSource.vhd

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

MyLib = путь/с/vivado/сим/к/MYLIB

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

library MyLib; 
use MyLib.all; 
. . . 
i_MyAwesomeModel : entity MyLib.HalfAdder_Sim 
Смежные вопросы