FPGA & Verilog БлогFPGA chips

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


Altera MAX3000A CPLD board MA3128 top view

Плата МА3128 это простейший контроллер на базе CPLD Alterа.
Плата предназначена для установки на микрокомьютеры Raspberry для расширения их функциональных возможностей. Плата, например, позволит подключить маломощные шаговые двигатели или сервомашинки к Raspberry или управлять какими-то другими устройствами.

m3bis 7seg

Недавно я занимался портированием системы Syntacore RISC-V на плату Марсоход3. В принципе, это было не очень трудно, так как на этой плате используется емкий FPGA чип MAX10 с 50ю тысячами логических элементов. А можно ли запустить хоть какой-то RISC-V на более слабом FPGA чипе? Попробую плату Марсоход3bis. На этой плате, как и на плате Марсоход3, стоит Intel MAX10, но здесь всего 8 тысяч логических элементов. На плате Марсоход3bis стоит микросхема FPGA 10M08SAE144C8. Так получится или нет?

К сожалению, в сложившейся ситуации доступ россиян к загрузке программного обеспечения САПР Quartus Web и Quartus Prime с сайта Intel запрещено. Вы все еще можете пробовать скачать это ПО используя VPN.

Я решил немного облегчить жизнь наших читетелей и скачал некоторые версии САПР и выложил их на своем яндекс диске https://disk.yandex.ru/d/_EhuBxmR4mrrlA

Здесь, конечно, далеко не все версии. Во-первых, я выложил только Quartus Web и Quartus Prime Lite версии. Это те версии, которые не требовали и не требуют платежей. Во-вторых, я выделил несколько ключевых версий, которые вероятно нам могут понадобиться:

  • версии 8.0 и 9.1 - это очень старые версии, которые работали еще с первыми Altera Cyclone. Увы я думаю в ближайшее время даже эти раритеты будут использоваться из старых остатков на складах.
  • версия 13.0 - самая последняя версия с поддержкой Cyclone II и MAX3000
  • версия 13.1 - Cyclone III
  • версия 15.1 - поддерживает MAX10 и у этой версии с нашей платой Марсоход3bis нет проблемы с "too close CLK to PIN27" Эта проблема обсуждалась у нас на форуме.
  • версия 17.1 - нужна так как для нее выполнен проект Syntacore RISC-V для платы Марсоход3.
  • версия 21.1 - последняя версия САПР Intel Quartus Prime.

Надеюсь скачивание ПО с Яндекс диска сделает нашу работу хоть чуть чуть проще.

Что будет дальше я пока не знаю. У нас есть некоторый запас микросхем для производства плат Марсоход3, Марсоход3bis, но недостает некоторых компонентов, в частности генераторов. Мы пытаемся решить этот вопрос. Возможно мы сможем покупать микросхемы FPGA Intel из других источников.

Так же мы рассматриваем возможность использования ПЛИС от китайской компании GOWIN. Получится ли у нас - покажет время.

 

 

В этом видео ролике я показываю, как запустить простую RISC-V программу в плате Марсоход3. Программа написана для системы Syntacore RISC-V SCR1.

В оригинальных синтакоровских исходниках есть простой пример sw/hello, но он уж совсем простой и скучный - эта программа запускается и выводит в консоль, через последовательный порт сообщение "Hello SCR1" и все.

Я сделал свою программу helloEx. Она чуть похитрее. Её исходники есть на нашем github в папке sw/helloEx. Дальше расскажу, что делает эта программа и как запускить её в нашей FPGA RISC-V системе.

gitbash compile

В своей предыдущей статье я обещал, что расскажу, как скомпилировать загрузчик для системы Syntacore RISC-V Scr1 работающей в плате Марсоход3. У нас уже есть все исходники проекта взятые на github. У нас есть и само ядро RISC-V от Syntacore и FPGA обвязка к нему - мы её уже портировали на плату Марсоход3. Есть у нас и некоторые программы для scr1 и в том числе загрузчик. Загрузчик, или bootloader - это первое, что запускается при старте системы. Программная часть проекта scr1-sdk находится в директории sw. Тут есть поддиректории hello, sc-bl, tests, zephyr. Это разные программы, которые работают в scr1. Программа начального загрузчика находится в папке sw/sc-bl. Её и буду компилировать в первую очередь.