Изучаем САПР Altera Quartus II / Intel Quartus Prime, язык описания аппаратуры Verilog HDL и кое-что про VHDL. Программируем FPGA Altera / Intel Cyclone III, Cyclone IV, MAX II, MAX10. Экспериментируем с платами разработчика FPGA серии Марсоход, Марсоход2, Марсоход3. А еще разбираемся с FPGA Gowin.
Прошу совета. После последнего моего проекта "Простой текстовый терминал" пришла в голову мысль сделать настоящий терминал вроде какого нибудь стандартного терминала VT100.
Эта задача мне сначала показалась весьма простой: текстовый видеоадаптер у меня уже есть из предыдущего проекта и его можно попробовать подключить к системе на кристалле Амбер с процессором ARMv2a. Еще останется добавить в систему модуль PS/2 клавиатуры, написать саму программу терминала VT100 - там должно быть простой протокол, думал я.
В результате я втянулся в эту "авантюру" и конца края её пока не видно..
На выходных завершил проект простого текстового дисплея. Идея проекта действительно простая. Внутри ПЛИС Cyclone III на плате Марсоход2 реализуем текстовый видеоадаптер. Приходящие из последовательного порта символы печатаем в экран. И это почти все.
Verilog Procedural Interface (VPI) – это такой механизм вызвать функцию, написанную на языке C, из кода Verilog во время симуляции проекта. Известно довольно много встроенных в Verilog функций называемых system tasks, например, $display, $monitor, $finish. Про некоторые из них я уже писал. Интерфейс VPI призван облегчить отладку, дать разработчикам возможность добавлять новую функциональность для отладки проектов Verilog HDL.
На первый взгляд может показаться, что этот интерфейс дает возможность писать код для ПЛИС на языке C, но это не так. VPI не позволяет делать синтезируемый для ПЛИС код. Еще раз повторяюсь – это только расширение возможностей отладчика Verilog.
Тем не менее, знать о возможностях VPI довольно полезно. Я хочу проиллюстрировать использование VPI на простом примере при использовании свободного отладчика Icarus Verilog.
FPGA – это сокращение от английского словосочетания Field Programmable Gate Array.
ПЛИС – это сокращение от словосочетания «Программируемая Логическая Интегральная Схема». Слово ПЛИС встречается в русскоязычных документациях и описаниях вместо слова FPGA. Далее по тексту в основном будет использоваться этот термин - ПЛИС.
ПЛИС и FPGA – это аббревиатуры, обозначающие один и тот же класс электронных компонентов, микросхем. Это микросхемы, применяемые для создания собственной структуры цифровых интегральных схем.
Логика работы ПЛИС определяется не на фабрике изготовителем микросхемы, а путем дополнительного программирования (в полевых условиях, field-programmable) с помощью специальных средств: программаторов и программного обеспечения.
Микросхемы ПЛИС – это не микропроцессоры, в которых пользовательская программа выполняется последовательно, команда за командой. В ПЛИС реализуется именно электронная схема, состоящая из логики и триггеров.
Проект для ПЛИС может быть разработан, например, в виде принципиальной схемы. Еще существуют специальные языки описания аппаратуры типа Verilog или VHDL.
В любом случае, и графическое и текстовое описание проекта реализует цифровую электронную схему, которая в конечном счете будет «встроена» в ПЛИС.
программируемых электронных связей между конфигурируемыми логическими блоками;
программируемых блоков ввода/вывода, обеспечивающих связь внешнего вывода микросхемы с внутренней логикой.
Строго говоря это не полный список. В современных ПЛИС часто бывают встроены дополнительно блоки памяти, блоки DSP или умножители, PLL и другие компоненты. Здесь, в этой статье я их рассматривать не буду.
Приходит Новый Год! Поздравляем читателей нашего блога с праздником! Приготовили новогодний проект для платы Марсоход2.
Идея проекта такая: подключаем к плате Марсоход2 гитару, и внутри ПЛИС делаем какой нибудь звуковой эффект. Из простых и понятных и эффектных эффектов – эхо. Эффект эха хорош тем, что скрывает погрешности игры у плохих гитаристов вроде меня :-) и, иногда, может создавать иллюзию быстрой игры. Не знаю насколько эхо слышно в моем видео, но я старался..
Подробнее...