Рубрика «MIPSfpga» - 3

Можно ли добавить в микропроцессор инструкции (команды)? Если вы используете микросхемы ПЛИС / FPGA с реконфигурируемой логикой и микропроцессорное ядро, которые синтезирутся из описания на языках Verilog и VHDL, то можете. Причем это будет «честное», настоящее расширение системы команд, а не трюк типа программной эмуляции инструкции в обработчике исключения от зарезервированной команды, и не «микрокод», популярный в исторических процессорах 1970-х годов. Команды, добавленные в современный синтезируемый процессор с помощью модификации его исходников на Verilog или VHDL, могут работать в конвейере и обрабатываться процессором как его собственные, без временных задержек.

Главная проблема с модификацией исходников дизайна процессора на Verilog или VHDL — трудоемкость. Нужно понять, как работает логика различных блоков и избежать нежелательных побочных эффектов. К счастью, существует способ расширения процессора, который превращает семестровый студенческий проект в нечто, что студент может спроектировать за одну лабораторную работу. Этот способ — интерфейс CorExtend / UDI (User Defined Instructions) в микропроцессорном ядре MIPS microAptiv UP, которое используется в пакете для образования MIPSfpga.

В рамках университетской программы MIPSfpga компании Imagination Technologies можно скачать настоящий индустриальный код на Verilog процессора MIPS microAptiv UP.
https://community.imgtec.com/university/resources/

Одним из распространенных применений UDI является манипуляции битами в алгоритмах шифрования. Другой пример — создание специальных инструкций для ускорения алгоритмов ЦОС Accelerating DSP Filter Loops with MIPS® CorExtend® Instructions.

Однако в наборе документации к MIPSfpga интерфейс между ядром и CorExtend описан недостаточно подробно. Подробная документация предоставляется только лицензиатам ядер. В этой статье представлено мое описание данного интерфейса на основе изучения исходного кода. Его можно также скачать в формате pdf MIPS microAptiv UP Processor CorExtend UDI interface protocol guide.

CorExtend занимает следующее место в RTL иерархии ядра m14k microAptiv.

CorExtend RTL Hierarchy
Читать полностью »

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

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

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

Читать полностью »

Три недели на просторах бескрайней, с посещениями МГУ, МФТИ, МИФИ, зеленоградского МИЭТ, питерского ИТМО, самарского СГАУ, сколковского Сколкова и зеленогорского Microchip Masters Russia. В историческом для российской микроэлектроники 2015 году, когда появились спроектированные в России чипы на 28 nm, с гигагерцовыми частотами и суперскалярными процессорными ядрами на борту, когда зеленоградские команды начали интегрировать на одном чипе разработанные в России блоки видеообработки с блоками, разработанными в Калифорнии и Великобритании в совместных международных проектах, с теми же компаниями, с которыми сотрудничает Apple (Synopsys, Imagination Technologies, Cadence, ARM и другими).

Путешествие началось c парти на софтверной конференции SECR — Central & Eastern European Software Engineering Conference in Russia, на которое меня пригласил мой старый приятель Максим Цепков. Я обсудил c товарищами вопросы поддержки российских микропроцессорных проектов типа Байкала-Т со стороны российского софтверного сообщества. Конференция проходила в Digital October, популярном московском месте для организаций мероприятий такого рода:

20151022_130714_moscow
Читать полностью »

В конце октября в МИФИ состоялся семинар по MIPSfpga — один из серии семинаров, организованных российскими вузами совместно с Imagination Technologies, Microchip Technology в партнерстве с Гамма Санкт-Петербург, представителями Xilinx в России компанией Макро Групп, с участием докладчиков из MathWorks и НИИСИ. Ниже — смесь из фотографий, ссылок на материалы, заметок о подготовке семинара и о мифишной культуре.

mipsfpga_mephi_20151028_125500-2

Ниже фотография МИФИ снаружи. Слово «ядерный» напоминает, что в МИФИ стоит ядерный реактор, поэтому туда трудно попасть, особенно с американским паспортом — пропуск мне готовили недели две, а приказ о семинаре подписывал ректор. На входе стоит автоматчик с Калашниковым (!)
Читать полностью »

MIPSfpga: вне канона - 1
В течении последних трёх недель в МИЭТ, МГУ, МИФИ, МФТИ и других российских ВУЗах прошли семинары по процессору на ПЛИС MIPSfpga. В рамках семинаров прошли лабораторные работы на которых демонстрировалось как применять MIPSfpga на практике.
В публикации я расскажу о своих экспериментах с MIPSfpga, которые выходят за рамки лабораторных работ, рассмотрю возможности интеграции процессорного ядра MIPSfpga с IP-блоками opencores.org. Также поведаю о портировании MIPSfpga на некоторые платы на базе ПЛИС Altera (приведены значения Fmax и показатели использования ресурсов ПЛИС).
Читать полностью »

Провели семинар по процессору на ПЛИС MIPSfpga в Национальном исследовательском университете «Московский институт электронной техники». Получилось хорошо, уровень слушателей довольно высокий. Помимо меня, докладчика от Imagination Technologies, был докладчик из Макро Групп и MathWorks. Александр Филиппов из Макро Групп, официального представителя Xilinx в России, рассказал о Artix-7, Kintex-7 и UltraScale FPGA. Михаил Песельник, докладчик от MathWorks, рассказал о модели single-cycle реализации подмножества архитектуры MIPS в среде Simulink. Забыл попросить кого-нибудь меня сфотографировать, но остальные докладчики на фото ниже. Сегодня будет такой же семинар в МГУ, завтра в МИФИ.

Презентации использовавшиеся во время доклады от Imagination: panchul.com/dropbox/2014_10_26/presentations

Основной код для лабораторных работ: github.com/MIPSfpga/mipsfpga-plus

Провели семинар по процессору на ПЛИС MIPSfpga в МИЭТ - 1

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js