Быстрый старт с DE10-Lite FPGA

Занимаюсь разработкой под микроконтроллеры я уже очень давно, и некоторое время назад обнаружил очень большой пробел в своих умениях — я не умею работать с FPGA! А тема-то интересная и полезная, и вообще хочется  очень разобраться. И вот я собрался и начал разбираться в этой теме, и по мере изучения буду публиковать статьи о том, как работать с FPGA и делиться своим опытом с вами.

Наверное рассказывать о том, что такое FPGA (или ПЛИС — программируемая логическая интегральная схема) не нужно, инфы об этом в интернете очень много, поэтому перейдем к делу.  Для начала нам понадобится сама плата — немного погуглив и посмотреть варианты на Aliexpress, я остановился на DE10-Lite (вот здесь я ее купил), так как она самая дешевая из тех, которые есть в списке плат в  IDE, Quartus`е.  Итак, допустим, у вас в руках оказалась эта отладочная плата от Altera. Для начала посмотрим что есть на самой плате: 

Внешний вид платы
Структурная схема

С помощью данной платы можно изучить работу с 7-сегментными индикаторами, кнопками, диодами, а также VGA, SDRAM и инерционными датчиками.

Для начала необходимо установить среду для разработки
Quartus. Для этого её нужно скачать с официального сайта. К сожалению там нужно регистрироваться, зато за это мы получаем бесплатно Lite версию. Для скачивания необходимо выбрать следующее:

И скачать Device MAX10 для нашей платы. Установщик автоматически подхватит симулятор и драйвера если они в одной папке.

Далее скачаем документацию на данную плату. Лучше всего сделать это с помощью фирменного CD диска, доступного по ссылке.

Далее подключает плату к компьютеру через usb коннектор от usb-blaster. При подключении запустится зашитая по дефолту тестовая программа:

На диске, который мы скачали, есть приложение для тестирования платы, запустим его. Для того, чтобы оно запустилась, нужно выполнить пункт из user manual:

Download bin32 folder from link , unzip and copy the bin32 folder to the <Path to Quartus Prime installation>\quartus folder (for example:
C:\intelFPGA\16.0\quartus).

т.е. копируем папку bin32 в папку quartus. Находим на диске папку Tools и в ней ControlPanel\DE10_Lite_ControlPanel.exe. Если программа сообщает об отсутствии драйвера для usb-blaster, то ставим его отдельно отсюда. В программе есть несколько тестовых прошивок, которые позволяют поуправлять всеми модулями данной платы дабы убедится в их работоспособности (вы просто выбираете нужный пункт и ControlPanel прошьет плату), но после перезагрузки запустится опять дефолтная прошивка.

После того как мы убедились в том, что программатор и плата работают создадим простенький проект. Для этого запустим Quartus Lite Edition.

Увидим менеджер создания проекта. На первом окне вводим название проекта. Обратите внимание на то, что IDE не создает отдельную папку для проекта, так что надо создать ее самому.

В следующем окне выберем Empty progect так как у нас нет заготовленных шаблонов. В третьем окне ничего вводить и менять не надо, так как у нас нет подготовленных библиотек. В четвертом окне нужно найти и выбрать нашу плату:

В пятом окне тоже ничего не меняем, а в последнем смотрим что мы сконфигурировали:

Далее нажмем ctrl+n и выберем Block Diagram/Schematic File. Добавим туда вход и выход и соединим их.

В левом окне мы видим что в проекте есть уже один файл.

Это дефайны для пинов FPGA, то есть нам не нужно смотреть на каком пину висит диод и кнопка, достаточно просто ввести их название с платы (номер в квадратных скобках).

Далее необходимо выбрать наш созданный файл как заглавный.

После компилим и зашиваем проект.

Слева в окне Tasks можно следить за ходом компиляции. В окне Programmer необходимо нажать на кнопку Start и ПЛИС прошьется, но поосле перезапуска запустится дефолтная прошивка. Чтобы этого не произошло необходимо выбрать файл с расширением .pof (после нажатия на Add File), а не .sof.

В итоге получим:

В итоге, мы научились создавать проект Quartus и написали первую прошивку. В следующих статьях я рассмотрю более подробно работу с IDE и более сложные программы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *