Comments 25
А я в майнкрафте свой 4-ёх битный процессор так и не достроил…
Офигенно круто! и настолько же не понятно… )
Чего я и боялся. :)
Хотелось и уместиться в объем статьи, и при этом сделать что-то более-менее законченное.
Хм, как всегда хорошая мысля, приходит опосля. Надо было начать статью с рассказа о конечных автоматах и раскрутить их идею до уровня процессора.
Хотелось и уместиться в объем статьи, и при этом сделать что-то более-менее законченное.
Хм, как всегда хорошая мысля, приходит опосля. Надо было начать статью с рассказа о конечных автоматах и раскрутить их идею до уровня процессора.
Целью статьи было показать, что процессор можно написать самому
Совершенно не знаком с разработкой чипов, потому есть нубский вопрос: а что должно получиться в результате написания процессора? Его топография, которую сдают «китайцам» и они штампуют процессоры?
P.S. Помнится сильно мечтал в детстве о процессоре с двумя аппаратными стеками как раз для реализации Forth-машины — очень тогда Forth-понравился.
Совершенно не знаком с разработкой чипов, потому есть нубский вопрос: а что должно получиться в результате написания процессора? Его топография, которую сдают «китайцам» и они штампуют процессоры?
P.S. Помнится сильно мечтал в детстве о процессоре с двумя аппаратными стеками как раз для реализации Forth-машины — очень тогда Forth-понравился.
VHDL-код (если он удовлетворяет критерию «синтезируемости») в конечном итоге может быть преобразован в принципиальную схему, где будут триггеры и логические элементы, а из этой схемы можно уже сделать топологию кристалла, то есть расположить на кристалле элементарные ячейки и нарисовать разводку между ними.
Пара полезных ссылок из закладок (только там примеры на Altera HDL):
* Проектирование конфигурируемых процессоров на базе ПЛИС
www.kit-e.ru/articles/plis/2006_2_78.php
* Микропроцессор своими руками.
www.kit-e.ru/articles/cpu/2002_06_80.php
* Проектирование конфигурируемых процессоров на базе ПЛИС
www.kit-e.ru/articles/plis/2006_2_78.php
* Микропроцессор своими руками.
www.kit-e.ru/articles/cpu/2002_06_80.php
Сколько MIPS и на какой частоте заработает на вашей FPGA?
Заметил у вас синхронный сброс, хорошо что вы знакомы с xilinx recommendation.
Чтобы развить идея остаётся добавить прерывания, перейти на популярную шину (к примеру Wishbone), добавить контроллер динамической памяти и дельной периферии. А там уже и не далеко портировать ОС реального времени.
Ступеней конвейера тоже можно доделать.
Чтобы развить идея остаётся добавить прерывания, перейти на популярную шину (к примеру Wishbone), добавить контроллер динамической памяти и дельной периферии. А там уже и не далеко портировать ОС реального времени.
Ступеней конвейера тоже можно доделать.
А что, если выборку делать по фронту, а исполнение по спаду? Тогда будет один такт на команду вместо двух.
Говорят, еще иногда юзают смещенные по фазе тактовые сигналы (одной и той же частоты), чтобы получить подтакты, но в реальности с таким я не сталкивался.
Говорят, еще иногда юзают смещенные по фазе тактовые сигналы (одной и той же частоты), чтобы получить подтакты, но в реальности с таким я не сталкивался.
А смысл? Проще повысить частоту вдвое — по сути тоже самое, а прозрачность дизайна увеличивается. Это если говорить об имплементации на FPGA
Ну, чем выше частота, тем ярче проявляются неприятные ВЧ эффекты, вроде как… К тому же если и так умножитель уже использован внутренний, то придетется искать соответствующие кварцы (в два раза более высокой частоты) — думаю, все таки может быть оправдано.
А сколько логических элементов занимает процессор в результате? Насколько он компактный?
Дописал загрузчик, теперь я уверен, что он из процессора точно ничего не выкидывает при трансляции проекта:
Финальный отчет
Заодно отвечу на комментарий:
Проваленная временная константа — это из-за высокой заданой частоты на входе. При заданой частоте в 50МГц (стандартная для стартер кита для Spartan3E) он[транслятор ISE :)] не особо старается упаковывать проект и максимально возможную частоту работы не показывает.
Максимальная частота работы получилась 79.5Мгц для кристала Spartan3E xc3s500. Самая длинная линия на умножителе. Следом за ней идут линии на сумматоре и компараторе.
Простор для оптимизации есть — сейчас процессор такт выборки команды просто простаивает, в этот такт можно вынести какие-либо предварительные вычисления.
MIPS будет в 2 раза ниже частоты, на которой работает процессор.
Финальный отчет
Заодно отвечу на комментарий:
Сколько MIPS и на какой частоте заработает на вашей FPGA?
Проваленная временная константа — это из-за высокой заданой частоты на входе. При заданой частоте в 50МГц (стандартная для стартер кита для Spartan3E) он[транслятор ISE :)] не особо старается упаковывать проект и максимально возможную частоту работы не показывает.
Максимальная частота работы получилась 79.5Мгц для кристала Spartan3E xc3s500. Самая длинная линия на умножителе. Следом за ней идут линии на сумматоре и компараторе.
Простор для оптимизации есть — сейчас процессор такт выборки команды просто простаивает, в этот такт можно вынести какие-либо предварительные вычисления.
MIPS будет в 2 раза ниже частоты, на которой работает процессор.
Вот тут winglion.ru/Forth-CPU/index2.php тоже самое на AHDL. На мой взгляд AHDL немного понятней…
Кстати, в онлайне есть классическая книга по построению стековых процессоров:Philip J. Koopman — Stack Computers: the new wave.
1989й год, но содержит всё, чтобы помочь человеку, обдумывающему архитектуру своего стекового процессора.
1989й год, но содержит всё, чтобы помочь человеку, обдумывающему архитектуру своего стекового процессора.
Sign up to leave a comment.
Forth-процессор на VHDL