Создание проекта в Xilinx Vivado 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Создание проекта в Xilinx Vivado



Создадим новый проект. В процессе создании проекта, при выборе типа проекта, укажем «RTL Project» – проект со схемой, построенной на принципе уровней регистровых передач (от англ. Register Transfer Level). Смысл такой схемы заключается в том, что она полностью описывает структуру данного устройства, элементами которой являются схемотехнические принципы (триггеры, регистры и т.д.).

Также существуют другие типы проектов:

- Post-synthesis Project – создать проект для работы с уже синтезированным проектом. В проект можно добавить уже готовые модули, провести синтез и создать файл для программирования ПЛИС;

- I/O Planning Project – создать проект для работы с входами и выходами ПЛИС;

- Imported Project – импортировать проект из других сред разработки ПЛИС: Synplify или Xilinx ISE;

- Example Project – создать проект для работы с одним из проектов-примеров.

Меню выбора типов проекта приведено на рисунке 1.2.

 

Рисунок 1.2 – Меню выбора типа проекта

 

Следующим важным шагом является выбор ПЛИС (во вкладке «Parts»), для которой создаётся проект, или сразу выбрать отладочную плату (вкладка «Boards»). В данном разделе выбираются следующие параметры:

- Product category – назначение ПЛИС;

- Family – семейство;

- Sub-Family – подсемейство;

- Package – комплекция;

- Speed Grade – класс скорости;

- Temp Grade – временные параметры.

Так как в данной работе выбор этих параметров значения не имеет, можно выбрать сразу плату, например, ZENQ-7 ZC702 (рисунок 1.3).

 

Рисунок 1.3 – Меню выбора платы

 

После создания проекта откроется основное окно рабочей среды (рисунок 1.4), состоящее из основных элементов:

- Flow Navigator (если дословно – «навигатор потока») – навигация по этапам проектирования цифрового устройства;

- Project Manager (менеджер проекта) – управление проектом (добавление ресурсов, IP-ядер, настройка);

- «Подвал» – позволяет открыть консоль, сообщения об этапах компиляции.

Рисунок 1.4 – Рабочая среда Xilinx Vivado

 

Для дальнейшей работы необходимо создать модуль на VHDL или Verilog, который опишет работу проектируемого устройства. Для этого нажимаем кнопку «Add Sources» во «Flow Navigator».

В появившемся окне из предложенных вариантов выбираем тип источника «Add or Create Design Sources». Далее, в окне, создаем новый модуль командой «Create File».

В окне создания нового модуля (рисунок 1.5) выбираем имя и язык, на котором он будет написан.

 

Рисунок 1.5 – Окно создания нового модуля

Для удобства можно сразу определить, какие входы и выходы есть у объекта, который мы будем описывать. Их можно определить в поле «I/O Port Definitions», окна «Define Module» (рисунок 1.6):

Port Name – имя входа/выхода – порта;

Direction – вход или выход (input/output);

Bus – является ли порт шиной;

MSB/LSB – старший/младший значащие разряды.

 

Рисунок 1.6 – Окно «Define Module»

с настроенными «I/O Port Definitions»

 

Для того, чтобы перейти к редактированию модуля, надо дважды щёлкнуть левой кнопкой мыши по нему в разделе «Sources» менеджера проектов (Project Manager), справа откроется редактор кода (рисунок 1.7).

В коде необходимо описать работу дешифратора. После служебного слова «module» идёт название самого модуля: «Decoder». В скобках указываются параметры: входящий сигнал А (трёхразрядная шина), входящий сигнал EN (разрешение работы), выходящий сигнал Х (семиразрядная шина). Блок «always @» указывает, что при определённом изменении входных сигналов необходимо делать то, что пойдёт дальше в скобках «begin-end». Если после оператора «always @» стоит «*», это означает, что работать блок будет при изменении любых сигналов. Внутри находится условный оператор: «if (<условие>) begin … end». А внутри условного оператора блок «case (<условие>) …», предполагающий более двух ветвлений.

 

Рисунок 1.7 – Редактор кода модуля

 

После того, как модуль написан, надо его сохранить. Для этого необходимо нажать кнопку «Save File». После этого автоматически пройдёт проверка файла на синтаксические ошибки.

 

Тестирование

Далее нужно написать небольшой «Testbench» – ещё один модуль, который необходим для симуляции проекта. В нём мы зададим временные параметры, в которые происходят изменения сигналов. Важно: тестбенч не имеет входных и выходных параметров. После объявления модуля описываются переменные, с которыми работает тестбенч, затем объявляется объект класса «Decoder».

После того, как тестбенч написан, можно снова сохранить файл и запустить поведенческую симуляцию по кнопке «Run Simulation» в разделе «Flow Navigator». На симуляции можно увидеть временные диаграммы (рисунок 1.8) тех сигналов, которые описаны в тестбенче. Это важный и обязательный этап проверки описанной схемы (описали модуль – описали схему). Те сигналы, которые состоят из нескольких «проводов» (являются шинами), можно развернуть, также можно регулировать масштаб временных диаграмм.

 

Рисунок 1.8 – Временная диаграмма работы модуля

 

Также можно посмотреть, какую схему составил Vivado на основе написанного кода. Для этого в меню «Flow Navigator», в разделе «RTL Analysis» нажимаем «Schematic».

Изначально, схема находится в свернутом состоянии, в виде блока, имеющего входы и выходы (рисунок 1.9). Для просмотра внутреннего строения блока (рисунок 1.10) нужно нажать на крестик в верхнем левом углу.

Рисунок 1.9 – Блок модуля

 

Рисунок 1.10 – Схема модуля на основе написанного кода

 



Поделиться:


Последнее изменение этой страницы: 2019-08-19; просмотров: 2934; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.237.178.126 (0.023 с.)