FPGA & Verilog БлогFPGA chips

САПР Altera Quartus II / Intel Quartus Prime, язык Verilog HDL и кое-что про VHDL, FPGA Cyclone III, Cyclone IV, MAX II, MAX10. Платы разработчика серии Марсоход, Марсоход2, Марсоход3.


В самом первом проекте для платы Marsohod3GW я уже делал двоичный счетчик и выводил его биты на восемь светодиодов платы. Теперь я хочу немного усложнить проект, а именно, добавлю в него PLL. Ведь PLL это одна из наиболее важных частей любого проекта ПЛИС. PLL позволяет получить нужную частоту из имеющейся входной частоты. На нашей плате подается 100МГц CLK от внешнего кварцевого генератора.

Итак, взяв за основу первый проект _clk_counter создадим путём копирования новый проект _clk_pll_counter. Напомню, что все проекты (уже созданные и отлаженные) для платы Marsohod3GW находятся в репозитории на гитхаб https://github.com/marsohod4you/Marsohod3GW

Открываю проект в среде Gowin FPGA Designer.
Теперь через меню Tools запускаю IP Core Generator. Выглядит он вот так:

IpCoreGenRPLL

Выбираю тип нового компонента CLOCK -> rPLL. Двойной клик открывает диалоговое окно, с помощью которого можно редактировать параметры нового экземпляра rPLL. Давайте разберемся, как задавать параметры rPLL.

Проект двоичного счетчика это первое, что делает разработчик FPGA для новой платы или нового чипа. Мы таких проектов делали уже много для разных плат на основе ПЛИС компании Альтера/Интел. Но вот я впервые делаю такой проект для китайской ПЛИС GW1NR-UV9QN88PC6/I5, установленной на плату Marsohod3GW.

Дальше расскажу чуть подробнее о проекте, ну и познакомимся со средой проектирования Gowin FPGA Designer. На видео выше показано, как делается сборка проекта и загрузка ПЛИС и показано, что двоичный счётчик работает! 

m3gw angle2

Мы разработали новую плату на базе китайского чипа Gowin GW1NR-UV9QN88PC6/I5.

Используемая нами микросхема Gowin FPGA имеет встроенные ресурсы:

  • до 71 User IO pin
  • 8640 LUT
  • 6480 FF
  • 17280 bit SSRAM
  • 468kb BSRAM
  • 608Kb User Flash
  • 5 DSP Blocks
  • 2 PLL
  • встроенный генератор OSC
  • встроенные блоки сериализаторов OSER/ISER, ELVDS/TLVDS, ODDR/IDDR

Плата Марсоход3GW визуально довольно похожа на платы Марсоход3, она такой же геометрии и основные компоненты расположены так же. Но чип FPGA другой. Что ещё есть на плате?

Еще один пример FPGA проекта для платы MCY112.

На этом демонстрационном видео показано, что на плату MCY112 можно установить плату расширения VGA от микрокомпьютера Raspberry Pi. На нашей плате как раз есть совместимые с распбери GPIO разъемы. Затем после загрузки ПЛИС можно через последовательный порт специальной программой на питоне записывать в видеопамять изображения.

Я передаю в плату изображения котиков. Надеюсь все любят котиков!

PicoSoc

На страницах нашего сайта marsohod.org я уже показывал примеры проектов системы на кристалле с процессором RISC-V. Я запускал те проекты на платах Марсоход3 и Марсоход3бис с ПЛИС Intel MAX10. Ядро микроконтроллера там было от российской компании Syntacore. Я уверен, что в какой-то мере тот процессор можно запустить и на нашей новой плате MCY112. Тем не менее, сейчас я хочу испытаь другой вариант RISC-V процессора. Это будет PICORV32, взятый мною вот здесь https://github.com/YosysHQ/picorv32

Посмотрим, что из этого получится.