Pull to refresh

Comments 25

А я в майнкрафте свой 4-ёх битный процессор так и не достроил…
Я там только АЛУ начинал строить. Забросил на моменте, когда понял, что будет куча «копипаста» вручную по одному блоку. Хотя, проблему копипаста можно решить через моды админки.
WorldEdit-ом копипаст легко реализуется
Офигенно круто! и настолько же не понятно… )
Чего я и боялся. :)
Хотелось и уместиться в объем статьи, и при этом сделать что-то более-менее законченное.

Хм, как всегда хорошая мысля, приходит опосля. Надо было начать статью с рассказа о конечных автоматах и раскрутить их идею до уровня процессора.
какие книги бы вы могли порекомендовать для новичка в этой области (vhdl и дизайн железа). На английском — ok.
Бибило П.Н. — Основы языка VHDL (поможет разобраться с синтаксисом.)
Лично мне понравился Pong P. Chu:
1)RTL Hardware Design Using VHDL
2)FPGA Prototyping by VHDL Examples
Целью статьи было показать, что процессор можно написать самому

Совершенно не знаком с разработкой чипов, потому есть нубский вопрос: а что должно получиться в результате написания процессора? Его топография, которую сдают «китайцам» и они штампуют процессоры?

P.S. Помнится сильно мечтал в детстве о процессоре с двумя аппаратными стеками как раз для реализации Forth-машины — очень тогда Forth-понравился.
В результате трансляции проекта получается файл, который можно залить в ПЛИС(раз, два).

Взгляд на проект с высоты птичьего полета:
один
два

Можно протестировать уже на вполне реальном железе, а потом отдать на перевод в кремний (и впоследствии «китаю» на производство).
VHDL-код (если он удовлетворяет критерию «синтезируемости») в конечном итоге может быть преобразован в принципиальную схему, где будут триггеры и логические элементы, а из этой схемы можно уже сделать топологию кристалла, то есть расположить на кристалле элементарные ячейки и нарисовать разводку между ними.
Тащемта, автор статей по первой ссылке является непосредственным научным руководителем автора данной статьи. =)
Сколько MIPS и на какой частоте заработает на вашей FPGA?
Заметил у вас синхронный сброс, хорошо что вы знакомы с xilinx recommendation.

Чтобы развить идея остаётся добавить прерывания, перейти на популярную шину (к примеру Wishbone), добавить контроллер динамической памяти и дельной периферии. А там уже и не далеко портировать ОС реального времени.

Ступеней конвейера тоже можно доделать.
А что, если выборку делать по фронту, а исполнение по спаду? Тогда будет один такт на команду вместо двух.
Говорят, еще иногда юзают смещенные по фазе тактовые сигналы (одной и той же частоты), чтобы получить подтакты, но в реальности с таким я не сталкивался.
А смысл? Проще повысить частоту вдвое — по сути тоже самое, а прозрачность дизайна увеличивается. Это если говорить об имплементации на FPGA
Ну, чем выше частота, тем ярче проявляются неприятные ВЧ эффекты, вроде как… К тому же если и так умножитель уже использован внутренний, то придетется искать соответствующие кварцы (в два раза более высокой частоты) — думаю, все таки может быть оправдано.
С точки зрения схемы что выборки делать в 2 раза чаще, что частоту повышать в два раза: все это приводит к одному — уменьшению вдвое временных ограничений. За этим следить надо. По идее, конечно, это САПР должна все разводить, но практика показывает что не всегда это делается хорошо.
А сколько логических элементов занимает процессор в результате? Насколько он компактный?
Дописал загрузчик, теперь я уверен, что он из процессора точно ничего не выкидывает при трансляции проекта:
Финальный отчет

Заодно отвечу на комментарий:
Сколько MIPS и на какой частоте заработает на вашей FPGA?

Проваленная временная константа — это из-за высокой заданой частоты на входе. При заданой частоте в 50МГц (стандартная для стартер кита для Spartan3E) он[транслятор ISE :)] не особо старается упаковывать проект и максимально возможную частоту работы не показывает.
Максимальная частота работы получилась 79.5Мгц для кристала Spartan3E xc3s500. Самая длинная линия на умножителе. Следом за ней идут линии на сумматоре и компараторе.
Простор для оптимизации есть — сейчас процессор такт выборки команды просто простаивает, в этот такт можно вынести какие-либо предварительные вычисления.

MIPS будет в 2 раза ниже частоты, на которой работает процессор.
Кстати, в онлайне есть классическая книга по построению стековых процессоров:Philip J. Koopman — Stack Computers: the new wave.

1989й год, но содержит всё, чтобы помочь человеку, обдумывающему архитектуру своего стекового процессора.
Вряд ли, больно специфическая книга, если только во времена СССР успели перевести.
Sign up to leave a comment.

Articles