Портирование MIPSfpga на плату Terasic DE0-CV с Altera Cyclone V FPGA
На днях мы вместе с Алексом и Владимиром спортировали MIPSfpga (пакет для введения в проектирование систем на кристалле) на плату Terasic DE0-CV с Altera Cyclone V FPGA. Эта плата — довольно хорошее решение для образовательного российского рынка, так как она дешевая ($150) и ее просто купить на сайте тайваньской компании Terasic (www.terasic.com.tw/_sub/de0-cv), которая быстро и без лишней бюрократии доставляет платы в Россию.
Процесс портировка включал создание проекта в Altera Quartus II с нужными параметрами, урезание размера памяти используемой внутри FPGA (в дальнейшем нужно просто использовать внешнюю память — она есть на плате), и подбор правильных выводов для соединения с платой отладочного адаптера BusBlaster. BusBlaster используется не для отладки хардвера, а для загрузки в память внутри системы и отладки, софтвера, работающего на процессорном ядре MIPS microAptiv UP в системе MIPSfpga.
Чтобы повторить это дома, вам прежде всего нужно скооперироваться с каким-либо университетом, так как Imagination Technologies лицензирует MIPSfpga бесплатно только университетам для образовательных и исследовательских целей. Заявку на MIPSfpga можно сделать на сайте образовательных программ Imagination Technologies:
http://community.imgtec.com/downloads/mipsfpga-getting-started-material-version-1-1/
Далее вам нужно получить от Imagination Technologies отладочный адаптер BusBlaster или купить его на сайте http://www.seeedstudio.com/depot/Bus-Blaster-V3c-for-MIPS-Kit-p-2258.html
Наконец вам нужно иметь аккаунт на GitHub и присоединиться к организации http://github.com/MIPSfpga , после чего вы можете скачать код из директории https://github.com/MIPSfpga/boards/tree/master/de0_cv
Пояснительные картинки про соединение выводов GPIO 1 платы Terasic DE0-CV и переходника для BusBlaster. Переходник создан изначально для соединения с платами Basys3, Nexys4 и Nexys4 DDR от http://digilentinc.com
Переходник пришлось ставить именно посередине, чтобы избежать нежелательного подключения питания и заземления.
Выход переходника который изначально предназначалься для соединения с платами от Digilent:
Табличка соединений:
Соединение:
Теперь в плату Altera Terasic DE0-CV можно загружать/конфигурировать харвер — систему MIPSfpga, и загружать в эту систему софтвер — программы для ядра MIPS microAptiv UP внутри системы.
Описание того, что можно сделать с такой системой — в посте про семинары по MIPSfpga, которые пройдут в МГУ, МИФИ, МИЭТ, ИТМО и Microchip Masters Russia этой осенью — см. http://habrahabr.ru/post/265045/ :
- Студенты могут строить свои собственные прототипы систем на кристалле, соединяя микропроцессорное ядро, память и спроектированные ими устройства ввода-вывода
- Внутренние регистры можно подсоединять к выходным портам и выводить наружу информацию о текущем состоянии процессорного конвейера, кэшей и устройства управления памятью. После этого процессор можно запустить на низкой тактовой частоте и наблюдать его работу «в замедленной съемке».
- Студенты могут экспериментировать со своими вариантами кэшей, проектировать многоядерные системы со специализированными сопроцессорами, эксперименторовать с разделением задачи на аппаратную и программную часть.