mips

MIPSfpga - это пакет, который содержит процессорное ядро в исходных текстах на Verilog, которое можно собирать и запускать в FPGA.
MIPSfpga - это набор тестовых программ, которые запускаются на процессорном ядре MIPS, запущенном в FPGA.
MIPSfpga - это набор скриптов для сборки ядра, для компиляции тестовых программ, загрузки исполняемых файлов в плату с FPGA, запуска симуляторов.

В этом разделе мы размещаем статьи о MIPSfpga в плате Марсоход3 с ПЛИС Intel MAX10.

MIPSopen logo

На сайте habr.com появилось очень много статей о процессоре с архитектурой MIPS. Конечно это интересно. Компания Imagination Technologies Group еще 2013 году приобрела MIPS Technologies, Inc. и ее разработки в области архитектурных решений микропроцессорного ядра и IPCores. С тех пор многое изменилось. Стремясь вернуть МИПСу былое влияние на рынок, компания Imagination предприняла ряд решительных мер. Например, она открыла исходные тексты ядра всем заинтересованным лицам. Университеты могут бесплатно получить исходники и обучающие материалы по MIPS процессору и могут преподавать студентам его внутреннее устройство и принципы работы. Ядро MIPS можно запустить на многих платах с ПЛИС: de0_cv, de0_nano, de10_lite, nexys4 и других.

Позже, в 2018 году, Wave Computing приобрела технологии MIPS, однако, ядро MIPS остается открытым и это хорошая новость.

Мы подумали, что запуск ядра MIPSfpga в плате Марсоход3 должен быть интересным нашим читателям. Именно поэтому последнее время я занимаюсь портированием этого проекта на нашу плату.

Здесь расскажу, как откомпилировать проект MIPSfpga для платы Марсоход3, как загрузить образ в плату, откомпилировать простую сишную программу и запустить ее в плате на процессоре MIPS.

Далее описано по шагам, что нужно сделать.

Первоначально, вариант обвязки MIPSfpga+ процессора MIPS microAptiv UP для FPGA написал Yuri Panchul на основе обвязки MIPSfpga 1.0 написанной Sarah Harris. Затем MIPSfpga+ существенно развил Stanislav Zhelnio, который и ведет проект сейчас. В проект также вносили добавления и создавали на его основе другие проекты разработчики из России, Украины, США, Великобритании, Италии и других стран.. В mipsfpga-plus репозитории на github есть примеры программ, которые можно запустить в процессоре.

Здесь я дам некоторые пояснения к некоторым программам и расскажу, как я запускаю их в плате Марcоход3.

Итак, в проекте mipsfpga_plus есть папка programs и в ней еще несколько подпапок:

00_counter
01_light_sensor
02_cache_misses
03_pipeline_bypasses
04_memtest
05_uart
06_timer_irq
07_eic
08_uart_irq
09_adc
10_linux

Это примеры программ, которые можно откомпилировать и запустить в процессоре (или правильнее сказать в SoC) MIPSfpga. В предыдущей статье я уже компилировал сам проект FPGA, загружал ПЛИС платы Марсоход3 и запускал программу 00_counter.

Давайте теперь попробуем запустить некоторые другие программы.

Я уже писал, как собрать процессор MIPSfpga для платы Марсоход3 и как в ней запускать программы для MIPS.

На этом видео показанно, как можно вести отладку программ прямо в плате, прямо в процессоре MIPSfpga.

Ниже в статье подробные разъяснения и иллюстрации всего этого процесса. Многое из того, что здесь написано повторяет инструкцию из вот этой статьи "MIPSfpga и внутрисхемная отладка" от Stanislav Zhelnio, SparF на хабрахабре, но уже применительно к плате Марсоход3.

Итак, что нужно сделать, чтобы настроить отладчик программ для MIPSfpga?

Digital Design and Computer Architecture

Сейчас просматриваю и местами читаю книгу "Цифровая схемотехника и архитектура компьютера" Дэвида М. Харрис и Сары Л. Харрис в русском переводе. Я давно про эту книгу слышал, но все как-то не до нее было. Казалось книга ну и книга, мало что ли их написано? Её в свое время рекламировал на Хабре Юрий Панчул, я так понимаю это он приложил усилия и организовал людей, и таким образом эта публикация была переведена на русский язык.

Цель этой статьи познакомить читателей нашего блога интересующихся цифровой схемотехникой с этим произведением инженерной мысли. Очень рекомендую книгу для изучения студентам технических вузов и даже школьникам старших классов. Я намеренно положу эту статью в наш раздел о процессоре MIPS, так как сама книга умело подводит читателя от простых понятий, от транзисторов и логических элементов к микроархитектуре реального процессора MIPS.

В конце статьи будет ссылка для скачивания книги.