САПР Altera Quartus II / Intel Quartus Prime, язык Verilog HDL и кое-что про VHDL, FPGA Cyclone III, Cyclone IV, MAX II, MAX10. Платы разработчика серии Марсоход, Марсоход2, Марсоход3.
Недавно я занимался портированием системы Syntacore RISC-V на плату Марсоход3. В принципе, это было не очень трудно, так как на этой плате используется емкий FPGA чип MAX10 с 50ю тысячами логических элементов. А можно ли запустить хоть какой-то RISC-V на более слабом FPGA чипе? Попробую плату Марсоход3bis. На этой плате, как и на плате Марсоход3, стоит Intel MAX10, но здесь всего 8 тысяч логических элементов. На плате Марсоход3bis стоит микросхема FPGA 10M08SAE144C8. Так получится или нет?
К сожалению, в сложившейся ситуации доступ россиян к загрузке программного обеспечения САПР Quartus Web и Quartus Prime с сайта Intel запрещено. Вы все еще можете пробовать скачать это ПО используя VPN.
Здесь, конечно, далеко не все версии. Во-первых, я выложил только 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 системе.
В своей предыдущей статье я обещал, что расскажу, как скомпилировать загрузчик для системы 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. Её и буду компилировать в первую очередь.
Итак, портируем RISC-V систему SCR1 от компании Syntacore на плату Марсоход3. Я уже писал, почему я выбрал именно эту систему для изучения в предыдущей статье. Что нужно для запуска этой системы на нашу плату? Посмотрим, что там у них в исходниках на github: https://github.com/syntacore/scr1-sdk
В репозитории есть директории doc, fpga, images, scr1, sw. При этом, директория fpga и scr1 это субмодули git, указывающие на другие репозитории. Внутри папки sw так же есть два субмодуля это папки sc-bl и zephir. Ну что ж, приступим к работе!
Подробнее...