Ну вот и закончились Новогодние праздники! А это значит, что пришло время продолжить рассказ про создание электронных устройств на основе ПЛИС. Сегодня мы создадим проект для микросхемы FPGA LCMXO27000HC. Данная FPGA - это программируемая вентильная матрица производства Lattice semiconductor семейства MACHXO 2 содержащая 6864 LUTs и 207 I/O с питанием 3.3V. Она является основной микросхемой нашей отладочной платы VE-LCMXO27000HC. Для создания проекта нам понадобится среда разработки от Lattice semiconductor, называемая Diamond. Скачать ее можно по этой ссылке: Lattice Diamond software.
После скачивания и установки среды разработки, необходимо получить лицензию. Лицензии есть двух типов: бесплатные, и с оплатой за подписку. Для наших экспериментов вполне подойдет бесплатная лицензия. Надеюсь что с установкой среды разработки и последующим лицензированием вы разобрались, поэтому преступим непосредственно к созданию прроекта. Выберем пункт меню File->New->Project... В этом окне просто выбираем Next
Назовем наш проект machxo2_first:
На следующем шаге добавим к нашему проекту уже знакомый файл генератора развертки hvsync.v
Далее выбираем тип установленной на нашей плате микросхемы:
Указываем какой тип инструментов синтеза будем использовать для нашего проекта:
Общие данные о созданном нами проекте:
После того как мы нажмем Finish мы увидим новый пустой проект:
Далее в окне иерархии проекта создадим символ для нашего генератора развертки. Для этого на Verilog файле нажимаем правую кнопку мышки, и выбираем пункт Generate Shematic Symbol:
На следующем шаге создадим основной файл нашего проекта. Для этого выберем пункт меню File->New->File... и создадим файл main.sch.
Добавим на нашу схему модуль генератора развертки. Для этого выберем созданный нами файл схемы main.sch и нажмем иконку с микросхемой и символом плюс:
Затем займемся созданием синтезатора частоты для нашего проекта. Для этого выберем пункт меню Tools->IPexpress В дереве возможных модулей, выбираем PLL. Присваиваем имя VGA_PLL и выбираем язык для генерации модуля Verilog
В окне настройки синтезатора частоты выбираем частоту пиксель клок равную 135 МГц и точность соответствия частоты 1%. Нажимаем Calculate и если программе удалось подобрать коэффициенты ФАПЧ выбираем Generate.
Если все в порядке, то мы увидим результат генерации нашего модуля PLL:
Следующим шагом добавляем созданный модуль в наш проект:
Вставим наш модуль PLL на схему:
В результате наша схема должна выглядеть так:
Далее назначим для выводов нашей схемы реальные пины FPGA. Для этого выберем пункт меню Tools->Netlist view На еще не привязанном пине нажимаем правую кнопку мыши, и выбираем пункт Assign Pin...
В открывшемся окне выбираем необходимый вывод нашей FPGA:
В результате мы должны получить вот такую таблицу с назначенными пинами:
Займемся компиляцией нашего проекта. Для этого выберем пункт меню Tools->Run Manager. В открывшейся вкладке ставим галку на реализации 1 (impl1) и нажимаем на зеленый треугольник Run.
Если при компиляции проекта проблем не возникло, должен создаться образ для заливки в нашу плату VE-LCMXO27000HC. Осталось залить наш дизайн. Для этого выберем пункт меню Tools->Programmer. Для нашего программатора USB2.0 XILINX ALTERA LATTICE 3IN1 необходимо выставить следующие настройки:
Если все прошло успешно, осталось нажать на иконку с микросхемой и подписью Program В случае правильного соединения программатора и отладочной плат, вы увидите такое сообщение:
Ну и результат работы нашего дизайна:
Второй вариант синтезатора картинки:
Файлы проекта: machxo2_first.zip