ПЛИС и прототипирование цифровых узлов
Цель: Понять, что такое ПЛИС, чем FPGA отличается от других разновидностей ПЛИС, из каких ресурсов строится цифровой узел и как проект проходит путь от Verilog-описания до конфигурации реальной микросхемы.
3 часа короткая теория, самостоятельная практика, проверка результата и тест.
Суть темы
ПЛИС — программируемая логическая интегральная схема, то есть микросхема, логика работы которой задаётся после изготовления конфигурацией. В пособии ИТМО подчёркивается: «программа» для ПЛИС — это не последовательность команд процессора, а настройка внутренних логических элементов и соединений между ними.
К ПЛИС относят разные классы устройств. В пособии отдельно названы CPLD и FPGA. Для FPGA конфигурируются и соединения, и функции логических элементов; далее именно FPGA рассматривается как основной вариант ПЛИС для сложных цифровых устройств.
- конфигурируемые логические блоки реализуют требуемые функции;
- программируемые линии связи соединяют блоки;
- блоки ввода/вывода связывают кристалл с внешними сигналами;
- встроенная память и специализированные блоки расширяют возможности;
- LUT реализует комбинационную функцию, а D-триггер хранит состояние.
Ключевые связи и параметры
LUT можно представить как небольшую таблицу преобразования: комбинация входов выбирает сохранённое значение выхода. Рядом с LUT обычно находятся триггеры, поэтому один конфигурируемый блок способен реализовывать как комбинационную, так и последовательностную часть схемы.
Проект на ПЛИС проходит несколько этапов. Сначала Verilog HDL моделируют, затем синтезатор переводит описание в базис логических ресурсов, после чего выполняются отображение на ресурсы и физическое размещение. Отдельно назначают реальные выводы микросхемы, подключённые к кнопкам, светодиодам, тактовому генератору и другим узлам платы. Затем создают файл конфигурации и загружают его в ПЛИС.
После размещения важно смотреть отчёты об используемых ресурсах и временной анализ. Логически правильная схема может не работать на плате из-за неверного назначения вывода, отсутствующего тактового сигнала или неправильных временных ограничений.
Разбор примера
Возьмём простой счётчик. В моделировании видно изменение двоичного значения на каждом фронте тактового сигнала. После синтеза часть схемы превращается в триггеры и комбинационную логику. После размещения эти элементы занимают конкретные ресурсы кристалла.
Чтобы вывести старший разряд счётчика на светодиод, нужно не только правильно описать логику, но и связать выходной порт проекта с тем физическим выводом ПЛИС, который по схеме отладочной платы подключён к выбранному светодиоду.
Практическая работа и проверка
- Откройте описание учебной платы и найдите установленную ПЛИС.
- Определите, к каким выводам подключены тактовый генератор, кнопка и светодиод.
- Создайте простой модуль Verilog и проверьте его в моделировании.
- Выполните синтез и посмотрите, сколько LUT и триггеров использовано.
- Назначьте реальные выводы, выполните размещение, сформируйте файл конфигурации и загрузите его на плату.
- Если схема не работает, разделите диагностику на три части: логика Verilog, ограничения/выводы и физическое подключение платы.
Типичные ошибки и диагностика
- Называть FPGA «микроконтроллером» и ожидать последовательного исполнения строк программы.
- Не различать общий термин ПЛИС и разновидность FPGA.
- Назначать выводы без схемы конкретной отладочной платы.
- Считать успешный синтез достаточным доказательством работоспособности на аппаратуре.
При отладке сначала подтверждают логику в моделировании, затем проверяют отчёт синтеза, назначения выводов, тактовый сигнал и только после этого внешние устройства платы.
Связь с реальным устройством
ПЛИС соединяет схемотехнику и программные средства проектирования: текст Verilog становится конфигурацией реальных логических ресурсов, линий связи и выводов микросхемы.
Что нужно запомнить
- ПЛИС — общий класс интегральных схем с конфигурируемой логикой.
- FPGA — одна из разновидностей ПЛИС; в ней конфигурируются функции логических элементов и их соединения.
- LUT реализуют комбинационную логику, триггеры хранят состояние.
- Проект проходит моделирование, синтез, размещение, назначение выводов и создание файла конфигурации.
- Работа на плате зависит не только от Verilog, но и от корректного физического подключения и ограничений проекта.