April 7th, 2012

Подготовка к лабораторным работам с ПЛИС - выбор оборудования, литературы и программного обеспечения

Подготовка всего необходимого к лабораторным работам с платами ПЛИС (FPGA) - это будут:

- Лабораторная работа2:  Дизайн цифровой логики на языке SystemVerilog с реализацией на платах ПЛИС (FPGA) от Xilinx или Altera
- Лабораторная работа3: Конечные автоматы и дизайн с адресуемой памятью
- Лабораторная работа4: Что такое процессор?

Для их проведения необходимо:
- Подобрать литературу (в качестве необходимого минимума должно быть достаточно будущих инструкций)
- Подобрать и установить необходимое программное обеспечение
- Подобрать подходящую плату ПЛИС (FPGA)

Подобрать подходящую плату ПЛИС (FPGA)

Т.к. Юрий Панчул прислал нам для обучения плату Digilent Basys2 еще в первой посылке, лично мне ничего выбирать не пришлось, но вообще в общем случае могут быть варианты.

Насколько я успел понять, в мире существует как минимум два основных производителя чипов ПЛИС (FPGA) - это Xilinx и Altera. Плюс к ним есть платы Malta, которые компания MIPS использует для тестирования собственных процессоров (и производит тоже?).

Кроме того, я смог найти российского производителя чипов ПЛИС - это Открытое Акционерное Общество
"Воронежский Завод Полупроводниковых Приборов-Сборка" (ОАО "ВЗПП-С")
.

На их главной странице http://www.vzpp-s.ru/about.htm написано:
ОАО "ВЗПП-С" осуществляет серийную поставку изделий специального назначения:
- ПЛИС 5576ХС1Т на 50 тыс. вентилей в 240-выводном металлокерамическом корпусе;

Collapse )






Подобрать литературу

Для знакомства с FPGA, языками HDL в лице Verilog и теоретическими основами области проектирования электронных приборов Юрий Панчул прислал мне две книжки:

Digital Design and Computer Architecture David Money Harris & Sarah L. Harris






и Digital Desing Using Digilent FPGA Boards Verilog / Active-HDL Edition Richard E. Haskell, Darrin M. Hanna


Collapse )

Verilog против VHDL
Collapse )
Ну и еще один важный и вполне объективный критерий особенно для учебного курса (на ознакомительной лабоработорной работе содержимое первых модулей было удобнее писать на доске) - это многословность - Verilog качественно лаконичнее VHDL - это особенно хорошо видно как раз в книге Harris & Harris, в которой все примеры приведены на двух языках рядом в два столбика. Ниже пример реализации простого однотактового процессора (на каждой странице две колонки - в левой код на Verilog, в правой - на VHDL) - хорошо видно, что весь код на Verilog легко уместился бы максимум на 2х страницах, для кода на VHDL понадобилось 4.





Подобрать и установить необходимое программное обеспечение

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

Короткий вариант списка:
- Генерация прошивки для выбранной модели ПЛИС (FPGA)
- Программирование (заливка) прошивки на выбранную модель ПЛИС (FPGA)
- Симуляция

Чуть более подробная разбивка этого же списка по подзадачам:
- Редактор кода HDL (Verilog/HDL) - желательно (но не обязательно) с подсветкой синтаксиса языка и желательно (но не обязательно) с проверкой корректности синтаксиса набранной программы.
- Для конкрентного чипа/платы ПЛИС (FPGA) - инструмент синтеза (synthesis) прошивки для выбранной модели ПЛИС из кода на HDL.
- Для конкретного чипа/платы ПЛИС (FPGA) - инструмент для программирования (заливки) синтезированной предыдущим инструментом файла прошивки на подключенное (например чере кабель USB) устройство ПЛИС.
- В общем случае (безотносительно конкретного устройства ПЛИС) - инструмент для генерации данных симуляции кода, написанного на HDL.
- В общем случае (безотносительно конкретного устройства ПЛИС) - инструмент для просмотра результатов данных симуляции в наглядном графическом интерфейсе (в окошке в виде графика сигналов с линией времени).

Все эти задачи могут решаться или внутри одной интегрированной среды разработки или же для каждой задачи можно найти свой отдельный независимый инструмент.

Кроме того, дополнительное условие для нашей ситуации на кафедре прикладной математики (и мое личное предпочтение) - инструменты должны работать в операционной системе GNU/Linux, т.к. в учебной лаборатории установлена сеть компьютеров под управлением дистрибутива Mandriva 2010.

Сразу - для текущего курса был выбран следующий набор инструментов:

1. Интегрированная среда разработки Xilinx ISE WebPack (WebPack - вариант бесплатной лицензии) - содержит:
- Редактор кода HDL - Verilog и VHDL - с подсветкой и проверкой синтаксиса
- Инструмент синтеза прошивки для ПЛИС Digilent Basys2 (Spartan 3E) - генерирует файл с расширением ".bit" в проекте - это важно
- Симулятор ISim входит в комплект дистрибутива и интегрирован в среду разработки (позволяет сразу просматривать графики сигналов модулей в удобном графическом интерфейсе)
- Встроенные средства программирвоания (заливки) прошивки на ПЛИС Digilent Basys2 отсутствуют (точнее требуют дополнительной настройки, без которой можно обойтись).

2. Инструменты Digilent Adept2 - позволяют программировать устройства ПЛИС Digilent (в том числе Basys2) файлами с расширением ".bit", сгенерированными средой Xilinx из программы на HDL (Verilog или VHDL - не важно).

Этого набора оказалось достаточно для того, чтобы:
- написать программу на Verilog
- увидеть результат работы вживую на ПЛИС Digilent Basys2
- проверить возможный результат работы на графике сигнала в симуляторе без запуска на живом ПЛИС
- для обеих программ доступны официальные версии для ОС GNU/Linux

т.е. все минимальные потребности для проведения запланированных лабораторных работ им удовлетворены.
Collapse )