Современный мир сложно представить без цифровой аппаратуры. Программируемая логическая интегральная схема (ПЛИС) — одно из перспективных направлений развития цифровой, а также аналого-цифровой электроники, позволяющая современному разработчику быстро создавать, изменять и улучшать сложные устройства путем программирования на разных языках. Одним из языков высокого уровня является язык программирования Verilog [1–5].
Необходимо иметь программный комплект Quartus фирмы Altera, представляющий собой многоплатформенную среду проектирования, которая содержит в себе наборы утилит, позволяющие разработать и запрограммировать проект для нашей ПЛИС [6–10].
Программировать будем отладочную плату DE10-Lite Board на основе ПЛИС Altera MAX10, которая содержит 50 000 логических элементов, а также расположенный на кристалле АЦП. На самой плате расположены USBBlaster, SD RAM на 64 мб, акселерометр, выход VGA, разъем расширения 2 х 20 GPIO и совместимый с Arduino UNO R3 компактный разъем расширения (рис. 1, 2). Комплект является идеальным для создания изделий различной сложности: от простых схем до мультимедийных процессов.
Для начала понадобится создать проект в Quartus. Для этого запускаем саму программу, выбираем File → New Project Wizard (рис. 3). В появившемся окне Directory, Name, Top-Level Entity выбираем папку, где будет храниться проект и имя нашего проекта. В следующем окне — Project Type выбираем Empty project (пустой проект, без шаблона). 3-е окно, Add Files, служит для подключения дополнительных файлов. В окне Family, Device & Board Settings выставляем параметры нашей ПЛИС и находим ее в Availabel device (рис. 4). В пятом окне — EDA Tool Settings выбираем программу для тестирования нашего кода ModelSim-Altera и языка программирования Verilog HDL. И нажимаем Finish.
Далее в проекте создаем файл для написания кода. File → New. И выбираем язык программирования Verilog HDL File (рис. 5).
Центральное окно служит для написания кода. В левом верхнем окне видим проект и входящие в него файлы. Под ним можно увидеть процесс анализа, синтеза и генерирования кода. В нижнем окне выдают ошибки в процессе компилирования.