Проект на конвейерном процессоре MIPS

Ладно, этот вопрос скорее для обсуждения. У меня есть проект реализации процессора pipelined MIPS в VHDL .

Я полностью знаком с концепцией конвейерной обработки, но никогда не реализовывал ее с помощью VHDL. Какие есть хорошие ресурсы для изучения реализации pipelined processors в VHDL .

Мне нужна фора?


person abkds    schedule 11.07.2013    source источник
comment
Хммм... звучит как довольно большое задание... Для начала вы должны быть уверены, что знаете большую часть книги Питера Дж. Эшендена "Руководство дизайнера по VHDL". Кроме того, определите стиль кодирования, по крайней мере, для синтезируемой части кода, по крайней мере, с именованием идентификаторов, где номер стадии для сигнала является частью имен сигналов, например. stall_s3, так что легко увидеть, использует ли выражение допустимые сигналы. Тем не менее, прежде всего вы можете попробовать OpenCores… Создание надежного процессора с нуля требует времени ;-)   -  person Morten Zilmer    schedule 12.07.2013
comment
На самом деле @MortenZdk Я не новичок в VHDL. Я сделал много простых проектов на VHDL, но процессор в целом немного сбивает с толку. Я не могу понять, с чего начать, и есть ли коды VHDL (с открытым исходным кодом), доступные для конвейерных процессоров. Я много гуглил, но не нашел ничего полезного.   -  person abkds    schedule 12.07.2013


Ответы (2)


Есть книга Digital Design and Computer Architecture автора Дэвид Харрис и Сара Харрис. См. главу 7 о микроархитектуре. 7.5 рассказывает о конвейерной обработке с использованием модели процессора MIPS. 7.6 показана реализация кода Verilog и VHDL. Это учебник, и есть второе издание, где примеры HDL с сопутствующего веб-сайта, по-видимому, представляют собой VHDL и SystemVerilog. При просмотре кода VHDL акцент делается не на конвейерных регистрах, а на строительных блоках. Цифры в 7.5 должны быть большим подспорьем, и их также можно загрузить с сайта-компаньона.

На веб-сайте opencores есть ЦП, совместимый с Ion - MIPS(tm) :: Обзор, где вы можете скачать Модель VHDL (после регистрации) для ядра, совместимого с R3000. Этапы конвейера видны в файле mips_cpu.vhdl с именами, которым предшествует их этап конвейера (например, p1_alu_flags). Имеются тестовые стенды для отработки модели и ее частей. Там есть информация об инструментах, так что вы можете создавать программное обеспечение для работы на нем.

Существует курс ECE 3055a от GeorgiaTech (см. EE 3055 Outline). в 2000 г., где 4 недели были посвящены конвейерной обработке. ="noreferrer"> Lab-2 Help, упражнение заключается в добавлении конвейерной обработки в модель RTL в VHDL. Показан первый этап. Из этого вы можете получить возможность добавить конвейерную обработку в модель поведения. , также подразумеваемый в книге выше. Вы можете загрузить Модели (попробуйте MIPSSYN.TAR) Упомянутый симулятор инструкций можно найти здесь: Индекс ftp://ftp.cs.wisc. edu/pub/spim/. Также приведено описание лабораторного задания 2. доступный. В Google полно подсказок по этому поводу, а модель MIPS описана в A. Модель синтеза VHDL процессора MIPS для использования в лабораториях компьютерной архитектуры. Домашняя страница ЕЭК 3055 Компьютерная архитектура и операционные системы J. Hamblen. См. главную страницу 32-разрядная модель MIPS VHDL для набора файлы, используемые в классе, используемом с инструментами Altera. Содержит исходный код VHDL. Имитатор инструкций будет использоваться при проверке.

person Community    schedule 12.07.2013
comment
Большое вам спасибо за вашу помощь :) - person abkds; 14.07.2013

Начните с рисования изображения оборудования, которое вы хотите.

Если вы уже знаете VHDL и знакомы с ограниченным набором шаблонов кодирования, таких как логические вентили (и, или, не, xor), сумматоры (+), умножители (*), мультиплексор (подумайте об операторе case), Statemachine и триггер у вас все настроено. Обязательно изучите особенности определения размера результата оператора — обратитесь за помощью к VHDL Math Tricks of the Trade по адресу: http://www.synthworks.com/papers

Затем закодируйте свое изображение. Напишите процесс или задание для каждой части вашей аппаратной картины и соедините их вместе сигналами.

Один процесс и использование переменных, которые некоторые предпочитают, — это просто уточнение. Сделайте свой проект прямо сейчас. Сосредоточьтесь на уточнении и определении вашего любимого стиля кодирования позже. Даже сейчас мой стиль кодирования все еще развивается. Примите тот факт, что он никогда не будет идеальным. Кодекс — это не искусство. Сделано и брутфорс лучше, чем элегантный и все еще отлаживающийся. P.S. С переменными все в порядке. Для некоторых, хотя они затрудняют понимание аппаратных последствий, поэтому я не рекомендую их для начала. Если вы находите их легкими, действуйте, но не говорите, что я предостерег вас.

Поймите, что инструменты синтеза суетливы в отношении стилей кодирования для создания аппаратного обеспечения. Так что симулируйте и синтезируйте каждый блок по мере продвижения, чтобы вы узнали, что работает как в моделировании, так и в синтезе — таким образом, в конце у вас не будет много исправлений при синтезе.

person Jim Lewis    schedule 12.07.2013