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