Search
Write a publication
Pull to refresh

Старт в Vivado 2022 c FPGA-тян

Level of difficultyEasy
Reading time4 min
Views2.5K

Всем снова здравствуйте, с вами Александр и та, кто, наверное, уже не нуждается в представлении.

Сегодня будет статья о работе в САПР (система автоматизированного проектирования) Vivado 2022. Заранее извиняемся за большое количество скриншотов и тяжесть статьи.

Вы предупреждены, а значит вооружены! Поехали!

Vivado это интерактивная среда разработки под HDL (hardware description language)  разработанная компанией Xilinx  на замену XILINX ISE в 2012. Причина разработки заключалась в том, что ISE не могла выполнять синтез для новых флагманских FPGA. Из-за этого случился довольно резкий разрыв между поколениями и, например в Vivado не поддерживается работа с поколением FPGA Spartan 6.

Итак, после открытия нас встречает общее окно Vivado с меню, находим создание проекта под заголовком Quick start (Рис. 1)

Рисунок 1- Quick start
Рисунок 1- Quick start

Нажимаем на “create project” и попадаем в окно создание проекта (Рис. 2)

Рисунок 2- Создание проекта
Рисунок 2- Создание проекта

Нажимаем “Next”, появляется окно, где нужно вписать название проекта и его путь (Рис. 3).

Рисунок 3 - Имя и путь до проекта
Рисунок 3 - Имя и путь до проекта

Далее будет окошко с выбора типа проекта оставляем RTL (Рис.4) и идём дальше.

Рисунок 4 – Тип проекта
Рисунок 4 – Тип проекта

Далее будут окна с добавлением новых файлов в проект пропускаем их через

“Next” до окна с выбором FPGA (Рис.5)

Рисунок 5 – Выбор FPGA
Рисунок 5 – Выбор FPGA

Здесь очень важный момент, нужно выбрать FPGA под которую будет собираться проект. В моём случает это Artix 7 xc7a15tcsg325-1, ПЛИС из статьи о комбинационной логике.

Последнее окно содержит общую информацию (Рис.6) по проекту и заветную кнопку “finish”. Нажимаем и создаём свой первый проект!

Рисунок 6 – последнее окно создания проекта
Рисунок 6 – последнее окно создания проекта

Всё мы завершили создание проекта можно переходить к написанию кода и файлов проектных ограничений.  Для начало создадим файл с кодом для Verilog. В левом верхнем углу будет окошко с иерархией проекта (Рис.7).

Рисунок 7 – Иерархия проекта
Рисунок 7 – Иерархия проекта

Нажимаем правой кнопкой мышки на Design sources и выбираем add sources (Рис.8)

Рисунок 8 – add sources
Рисунок 8 – add sources

Появиться окно типа файла (Рис.9) с установленным выбором на design sources, так и надо идём дальше. Далее появиться знакомое окно из начало создания проекта теперь нажимаем кнопку “Create file” и получаем ещё одно окошко где указывается тип языка HDL и название файла (Рис.10), выбираем Verilog ,а название Logic_OR и нажимаем Ok.

Рисунок 9 – add or create design sources
Рисунок 9 – add or create design sources

 

Рисунок 10 – Create source file
Рисунок 10 – Create source file

В иерархи отобразился новый файл (Рис.11) нажимаем и получаем окно с шаблоном для написания кода (Рис.12).

Рисунок 11 – Отображение нового файла Logic_OR
Рисунок 11 – Отображение нового файла Logic_OR
Рисунок 12 – шаблоном для написания кода
Рисунок 12 – шаблоном для написания кода

Теперь допишем сюда код из статьи про логику и попробуем сделать синтез.

module Logic_OR(
input a,b,//sw1 и sw2
output c,d,osc
    ); 
assign c=~(a&b); 
assign d = ~c; //
assign osc =c; //выход осцилографа
endmodule

Слева есть кнопка с зелёным треугольником “Run Synthesis” (Рис 13.) запускаем синтез. Если в коде нет ошибок ( В этом коде их нет) будет выведено окошко о выполнении синтеза (Рис.14). Сам процесс синтеза заключается в преобразовании нашего кода HDL в схему RTL.  Саму схему мы посмотрим далее.

Рисунок 13 – Synthesis
Рисунок 13 – Synthesis
Рисунок 14 – Выполнение синтеза
Рисунок 14 – Выполнение синтеза

Для просмотра схемы RTL под Run Synthesis выбираем Open Synthesized Design (Рис.15) и нажимаем на Schematic.

Рисунок 15 – Open Synthesized Design
Рисунок 15 – Open Synthesized Design

Открывается окно с схемой (Рис.16). После просмотра, давайте теперь создадим файл проектных ограничений.

Рисунок 16 – схема RTL
Рисунок 16 – схема RTL

Для этого в иерархии проекта находим наименование Constraints и проделываем ту же процедуру, что и с файлом Verilog (Рис.17- Рис.19)

Рисунок 17 – Выбор типа файла
Рисунок 17 – Выбор типа файла
Рисунок 18 – Название и тип файла
Рисунок 18 – Название и тип файла
Рисунок 19 – Отображение в иерархии
Рисунок 19 – Отображение в иерархии

После того как успешно создали файл проектных ограничений можно перенести туда код из примера про логику.

set_property PACKAGE_PIN C8 [get_ports c]
set_property IOSTANDARD LVCMOS33 [get_ports c]

set_property PACKAGE_PIN A9 [get_ports osc]
set_property IOSTANDARD LVCMOS33 [get_ports osc]

set_property PACKAGE_PIN H18 [get_ports a]
set_property IOSTANDARD LVCMOS33 [get_ports a]

set_property PACKAGE_PIN H17 [get_ports b]
set_property IOSTANDARD LVCMOS33 [get_ports b]

set_property PACKAGE_PIN D8 [get_ports d]
set_property IOSTANDARD LVCMOS33 [get_ports d]

Сам файл нужен, чтобы связать входы и выходы схемы, полученной при синтезе с физическими ножками FPGA. Дaлее, в левом нижнем углу находим кнопку Generate Bitstream (Рис.20) нажимаем и идём заваривать чай. Для некоторых больших проектов генерация битника иногда занимает по полчаса или час.

Рисунок 20 – Generate Bitstream
Рисунок 20 – Generate Bitstream

После успешной генерации должно появиться сообщение о успешном выполнении (Рис.21).

Рисунок 21 – Выполнение генерации битстрима
Рисунок 21 – Выполнение генерации битстрима

Да верно хочется сказать, что дальше нужна отладочная плата и программатор если вы следуете всем советам из гайда. Если у вас нету чего-то, можно остановиться на этом этапе.

Да есть такое, но зато будет что в комментариях обсудить. Ладно мы ещё с прошивкой не закончили.  В сообщении о успешной генерации выбираем пункт Open Hardware Manager и нажимаем ОК. После открытия появиться сверху зелёная плашка (Рис.22) нажимаем Open target.

Рисунок 22 – Open target
Рисунок 22 – Open target

Появляется окно с выбором Auto Connect (Рис.23) выбираем его.

Рисунок 23 – Auto Connect
Рисунок 23 – Auto Connect

После происходит поиск подключенной платы, если всё правильно подключено, то слева измениться иерархия (Рис.24) и чип FPGA отобразиться в виде синего значка.

Рисунок 24 – Иерархия
Рисунок 24 – Иерархия

Нажимаем правой кнопкой мыши и получаем новое окно (Рис. 25)

Рисунок 25 – Окно с выбором
Рисунок 25 – Окно с выбором

Выбираем вариант Program Device и получаем последнее на сегодня окно (Рис.26) с выбором бит файла для прошивки ПЛИС.

Рисунок 26 – Окно с выбором бит-файла
Рисунок 26 – Окно с выбором бит-файла

Нажимаем Program. Готово! Плата прошивается. Фух, это статья лично для меня была самая тяжёлая в написании.

Ладно, на этой прекрасной ноте, прощаемся с вами!

Список литературных источников

1.    https://en.wikipedia.org/wiki/Vivado?ysclid=mb1ykx337416399822

2.    ПЛИС С XILINX. Языки описания аппаратуры VHDL/Verilog САПР, приемы проектирования (Aвтор И. Е. Тарасов)

3.    FPGA prototyping by Verilog examples (Автор PONG P.CHU)

Only registered users can participate in poll. Log in, please.
Полезна ли данная статья?
36.36%Да8
31.82%Нет7
31.82%Не очень, но сойдёт7
22 users voted. 4 users abstained.
Tags:
Hubs:
Total votes 7: ↑5 and ↓2+6
Comments4

Articles