- PVSM.RU - https://www.pvsm.ru -

Как начать работать с MIPSfpga

MIPSfpga — это пакет, который содержит процессорное ядро в исходниках на Verilog, которое можно менять, добавлять новые инструкции, строить многопроцессорные системы, менять одновременно софтвер и хардвер, симулировать на симуляторе верилога, синтезировать для ПЛИС/FPGA и т.д. Его можно в целях эксперимента например запускать с частотой 1 такт в секунду и выводить наружу информацию о состоянии кэша, конвейера, и любых структур внутри процессора. При этом ядро MIPS microAptiv UP внутри MIPSfpga — это то же ядро которое например используется в платформе IoT Samsung Artik 1 и Microchip PIC32MZ, т.е. студенты получают возможность работать с тем же кодом, с которым работают инженеры в Samsung и Microchip.

MIPSfpga не предназначен для введения в предмет с абсолютного нуля. Для его плодотворного использования нужно чтобы студент или исследователь уже знал основы цифровой схемотехники, умел бы программировать на Си и на ассемблере, а также представлял бы концепции микроархитектуры — конвейера, конфликтов конвейера и т.д. Желательно, чтобы до работы с MIPSfpga студент уже бы построил собственный простой процессор с нуля и мог бы сравнивать свой простой процессор с процессором, используемым в промышленности и совместимым с развитой экосистемой разработки.

Как начать работать с MIPSfpga - 1


Список того, что студенту желательно знать заранее, до начала работы с MIPSfpga, а также, наоборот, темы, изучению которых может помочь MIPSfpga, находится в посте:
По просьбе преподавателя одного из российских вузов выписал список тем, связанных с MIPSfpga [1]

Если студент и исследователь недостаточно владеет знаниями из списка, из можно освежить из книжки Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», русский перевод которой можно бесплатно скачать по инструкции из поста:
http://habrahabr.ru/post/259505/
Бесплатный учебник электроники, архитектуры компьютера и низкоуровневого программирования на русском языке

Пакет MIPSfpga как таковой можно скачать по иструкции из поста:
Инструкция по скачиванию MIPSfpga [2]

Сначала желательно прочитать базовую презентацию в MIPSfpga_Fundamentals/Slides/MIPSfpga_LectureSlides.pdf

Потом можно просмотреть «MIPSfpga/MIPSfpga Getting Started Guide.pdf» — на нем не нужно зацикливаться; это популярное описание, которое расжевывает слайды, но не заменяет ни в коей мере коммерческую дукументацию на ядро MIPS microAptiv UP, публичная часть которой находится в директории MIPSfpga/Documents, в том числе документация по внешним сигналам (MIPS32 microAptiv UP Processor Core Family Integrator’s Guide) и программированию (MIPS32 microAptiv UP Processor Core Family Software User’s Manual).

Документацию по архитектуре MIPS стоит скачать (с регистрацией) из:

http://imgtec.com/mips/architectures/mips32/ [3]
http://imgtec.com/mips/architectures/mcu-ase/ [4]

и других мест на сайте Imagination Technologies.

Для понимания программирования на ассемблере где-нибудь желательно найти несколько устаревшую, но полезную книжку http://www.amazon.com/Second-Edition-Kaufmann-Computer-Architecture/dp/0120884216
See MIPS Run, Second Edition by Dominic Sweetman, 2006
.

Помимо основной документации по MIPSfpga и MIPS может быть полезным скачать материалы семинаров в России:
Публичные презентации, использованные во время семинаров по MIPSfpga в России [5]

Вскоре после выпуска, у MIPSfpga начали появляться разнообразные расширения и улучшения. Вместо исходного пакеты мы рекомендуем использовать одно из таких расширений, которое называется MIPSfpga+.

Его описание и код можно найти по следующим ссылкам:
MIPSfpga+ allows loading programs via UART and has a switchable clock [6]

http://github.com/MIPSfpga/mipsfpga-plus [7]
https://github.com/MIPSfpga/mipsfpga-plus/blob/master/README.md [8]
http://github.com/MIPSfpga/mipsfpga-plus/wiki [9]

Одна из инструкций по работе с платой и синтезатором:
Инструкция по лабораторным работам по MIPSfpga для платы Terasic DE0-CV c Altera Cyclone V [10]

Если вы готовы сделать проект на основе MIPSfpga, но у вас есть трудности с нахождением или покупкой оборудования, вы можете попробовать бесплатно одолжить FPGA плату:
Раздача слонов: FPGA платы для образовательных проектов с MIPSfpga [11]

В завершение, в качестве лирического отступления — репортаж о семинарах по MIPSfpga в России:
Путешествие по микроэлектронной России 2015 года [12]

Автор: YuriPanchul

Источник [13]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/uart/109077

Ссылки в тексте:

[1] По просьбе преподавателя одного из российских вузов выписал список тем, связанных с MIPSfpga: http://www.silicon-russia.com/2016/01/04/mipsfpga-related-educational-topics/

[2] Инструкция по скачиванию MIPSfpga: http://www.silicon-russia.com/2015/12/11/mipsfpga-download-instructions/

[3] http://imgtec.com/mips/architectures/mips32/: http://imgtec.com/mips/architectures/mips32/

[4] http://imgtec.com/mips/architectures/mcu-ase/: http://imgtec.com/mips/architectures/mcu-ase/

[5] Публичные презентации, использованные во время семинаров по MIPSfpga в России: http://www.silicon-russia.com/2015/11/14/mipsfpga_related_presentations/

[6] MIPSfpga+ allows loading programs via UART and has a switchable clock: http://www.silicon-russia.com/2016/01/01/mipsfpga-plus-xilinx/

[7] http://github.com/MIPSfpga/mipsfpga-plus: http://github.com/MIPSfpga/mipsfpga-plus

[8] https://github.com/MIPSfpga/mipsfpga-plus/blob/master/README.md: http://github.com/MIPSfpga/mipsfpga-plus/blob/master/README.md

[9] http://github.com/MIPSfpga/mipsfpga-plus/wiki: http://github.com/MIPSfpga/mipsfpga-plus/wiki

[10] Инструкция по лабораторным работам по MIPSfpga для платы Terasic DE0-CV c Altera Cyclone V: http://www.silicon-russia.com/2015/10/24/mipsfpga-lab-with-terasic-de0-cv/

[11] Раздача слонов: FPGA платы для образовательных проектов с MIPSfpga: http://www.silicon-russia.com/2015/12/11/board-giveaway-for-mipsfpga/

[12] Путешествие по микроэлектронной России 2015 года: http://www.silicon-russia.com/2015/12/19/mipsfpga-russia-trip-report-in-russian/

[13] Источник: http://habrahabr.ru/post/275215/