Как стать автором
Обновить

Проектируем самодельный 16-битный CPU в 2023 году

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров24K
Всего голосов 91: ↑90 и ↓1+120
Комментарии51

Комментарии 51

НЛО прилетело и опубликовало эту надпись здесь

Почти всегда проектирование использует уже какие-то готовые компоненты и наработки. Не начинать же проектирование с добычи кремния?

"Просто навтыкать" -- это когда по чужой готовой схеме просто повторяют чей-то проект.

НЛО прилетело и опубликовало эту надпись здесь

Так схемотехника этого устройства им же и была придумана, не?

да, считаю, что вполне проектирование. Минималистичный процессор из логики и ПЗУшки. Очень познавательно, и подойдет для курса по FPGA.

А вот если еще компилятор С сделает, и MMU, и памяти побольше, то можно будет и Linux запустить :-)

НЛО прилетело и опубликовало эту надпись здесь

Идейно похожему данному проекту процессора публиковалась статья на Хабр. :)
(если кто пропустил)
My4TH — домашний компьютер без процессора


P.S. Микросхем, правда, немного поболее, но также используется одно битное АЛУ и тоже задействованы микросхемы последовательной флэш памяти.

На FPGA подобный проект запустится на высокой тактовой частоте.
Как пример:
Бит-последовательный процессор описанный в VHDL, с симулятором на Си.
(до 123МГц на Spartan-6 при использовании Xilinx ISE 14.7)

Вы либо не прочитали статью, либо совершенно не поняли всей сути. Ардуинами здесь даже близко не пахнет (разве что как средство прошивки ППЗУ).

В двух словах. Автор предлагает однобитный процессор, который оперируя однобитовыми операциями эмулирует многобитовые (16 битные) операции за счет большого числа циклов и таким образом реализуются все 52 команды этого процессора. Но это еще не все. Автор использует последовательное ОЗУ для размещения регистров - это сильно напоминают Машину Тьюринга.

Даже слово "самодельный" в заголовке совсем не смутило? Есть конечно уникумы которые могут и до кристалла дойти (вроде бы были тут такие статьи), но если бы это все было так легко и просто...

НЛО прилетело и опубликовало эту надпись здесь

Отличный набор ссылок, думаю если бы это был изначальный пост то он был бы воспринят более позитивно ;) вопрос в глубине проработки, там ведь люди тоже какое-никакое оборудование использовали. тут схемотехника есть, пусть и уровня готовых микросхем, архитектуру тоже спроектировал .. кто то, сделано коленке. Понятие самодельный - довольно широкое, на самом деле.
ПЛИС вообще не обязательно реализует процессор, и как по мне, VHDL это не совсем программирование, а описание цепочки сигналов, которое как ни крути, проектируют.
Сасмосборный вроде как подразумевает сборку по готовому проекту, например мебель из Икеи

Есть повод подумать над возможным применением такого процессора в каких то масс-изделиях при тиражировании его в кремнии.
(таже флэш память в этом проекте не работает на максимальной возможной частоте от 100МГц, а использованная SRAM на 20МГц)


P.S. К примеру, как один из вариантов — использовать для обновления ценников в магазине с шильдиками на электронных чернилах. :)
...

нет, не надо сюда практическое применение прикручивать (для ценников есть гораздо более подходящие контроллеры). Это - концепт. Просто показать, что так можно, и рассказать, как конкретно можно.

чтобы ответить на вопрос: какое минимальное число интегральных схем требуется для полного по Тьюрингу CPU без CPU?

Мне кажется что при такой постановке вопроса просто запихать логику в ПЗУ большого объёма с минимальной обвязкой, это как-то не очень спортивно. Тогда уж можно ПЛИС взять, тоже будет "без CPU".

А так красиво получилось, особенно понравилось что все чипы ходовые и есть в каждом радиомагазине, что весьма нетипично для самодельных цпу

в любом случае LUTы где-то надо хранить. Не до логики же их разбивать. PLD или ROM - вполне нормальный выход.

так типа микрокод, чем хуже Интела

Очень круто, но и очень жалко время автора на это :)

но и очень жалко время автора на это :)

Вы же тратите время на чтения статей, и написание этого комментария. При этом, в сути роста личного не происходит. А этот проект повышает автора как специалиста. Уж лучше так тратить своё время, чем на чтение всяких статеек и просмотра сериалов.

Я Хабр просматриваю раз в 3 недели, трачу на это 10 минут, черпаю иногда очень интересное для работы, так что время на "чтение всяких статеек" окупается в степени :) Сериалы, кстати, не смотрю. И водку не пью (сообщаю, ибо предвкушаю ваш следующий аргумент :)

Ну вот, вы ещё бестолково потратили бесценные пять минут :)

Очень круто!
ps проситься запилить в место FLASH -> SRAM, а может и DRAM, загрузчик получается сложнее всей этой штуки

С оодной стороны круто, с другой стороны мне тееперь интересно, можно ли собрать что-то подобное используя одни диоды, транзисторы и прочие подобные элементарные детали.
Калькулятор, кажется, возможно. А вот что-то более сложное...

Конечно можно. В 60-х годах это было второе поколение ЭВМ - на отдельных транзисторах. В СССР это были машины БЭСМ-6, М-220, и многие другие. А сейчас подобные конструкции делают энтузиасты, есть много проектов компьютеров на транзисторах, лампах, реле.

Сейчас энтузиасты делают процессоры у себя в гараже.
Пару лет назад было видео (и даже здесь на хабре пост) в котором автор изготовил процессор.

Пруф в виде ссылки прилагаю Производство микросхем в гараже. Студент из Нью-Джерси показал свою домашнюю лабораторию / Хабр (habr.com)

https://youtube.com/@ArtemKashkanov?si=xeHrieHTE7nEqazJ

А в внутри микросхем по вашему что находится?

НЛО прилетело и опубликовало эту надпись здесь

Делали даже на реле и лампах, какие там новомодные транзисторы

Конечно, например я сделал компьютер на реле (и написал про это на хабре).

Похоже стёб никто не понял :)

Теперь по классике осталось на нём Doom запустить и вообще красота)))))) Автору респект!

Идея интересная, я много думал о возможности использования ПЗУ как ПЛИС. И вот тут реализация. Хотя, конечно у автора некоторое мошенничество, потому что можно так процессор на одной микросхеме ПЛИС сделать. С другой стороны, интересен сам по себе, как можно нестандартно использовать микросхемы.

Видел, как во всяких полукустарных контроллерах на шину ISA делали дешифраторы адреса на одной РТшке вместо нескольких чипов логики. Так что да, работоспособно.

Она прекрасно для этого подходит, да.

Насколько помню статью из журнала «Радио», года так 87, РТ программировалась правильно в 70%, остальное - брак. У меня, правда, нормально тогда прошилась.

Ну и стоила она сильно дороже нескольких чипов мелкой логики, если говорить про именно отечественные. Так что для опкодов процессора она хороша, а для дешифратора - так себе. Особенно с учетом того, что полная адресная дешифрация на ISA не так часто бывала нужна.

Думаю, это издержки тех времён, когда собирали из того, что удалось намутить в больших количествах.
А так — реально использовали, вот, к примеру:
http://imlab.narod.ru/Electron/ISA/ISA.htm


Для программирования микросхемы ПЗУ может быть использован аппаратный программатор [2]. Для вышеуказанного распределения адресов каналов все ячейки микросхемы ПЗУ, кроме ячейки с адресом C0H, программируются в логическую единицу. Для ячейки с адресом C0H (11000000 в двоичной системе счисления) биты данных D1 — D3 программируются в логическую единицу, значение бита D0 должно остаться равным логическому нулю.

Автор проекта, вроде, кроме опубликованной статьи не разместил полные данные о сделанной разработке, но не суть для возможности осмысления для себя.

Описанное в статье - вполне себе стандартная вещь для студентов Бауманки на ИУ5. Курсовая, 3 семестр, 5 курс.
Задумка отличная, а вот требования к реализации от преподавателя - очень, мягко говоря, странные, можно это сделать на современном софте (тот же Xilinx ISE) в 10 раз быстрее, при этом не теряя в качестве обучения, а наоборот, изучая по пути реальную разработку. За счет сэкономленного времени можно было и верификацию подтянуть. Но преподаватель застрял в 1988...

Jiri Stepanovsky вряд ли учился там
Понять КАК это работает на примере К155ИР13 гораздо проще, чем на ПЛИС - нет отвлечения на специфику.

При чем тут плис? Я про синтез логических схем. Все равно, куда раскладывать полученную логику и opcodes - в свой ip block “ir13” и память плис или в реальные мелкосхемы. В первом случае - практически неограниченные возможности симулятора для анализа, параметризации и тестирования функционала. Во втором - ну, воткнул чипы и провода в breadboard и чего? Девушкам и друзьям показывать? Или цель была все-таки прокачать собственные мозги?

Да и никто не мешает по отлаженному проекту в ISE собрать железку на breadboard. А если сразу на борде собирать - там куча ошибок будет, очень трудно диагностируемых

Ну положим.. в учебном процессе это обязательно выльется в изучение пользованием конкретной программой с большим отдалением от физической реальности . А потом вообще окажется что и в популярном случае: "Мы только Word 1997 умеем, а Word 2011 не понимаем, какой такой OpenOffice".
В breadboard можно в любую точку ткнуться осциллографом (физическим, не виртуальным) , и да где то поломать мозги потому что "опыт - сын ошибок трудных". А вот потом уже можно и сравнить все это с ISE. Причем - заниматься только этим, а не получать "широкое и разностороннее"
Показывать же это друзиаям, а тем паче девушкам (c других курсов) - вообще идея странная :)
PS щас уже не помню, вроде в MIT были лабораторки типа создания своей ОС и синтеза проца на ПЛИС

Если обучать настоящих специалистов с использованием лабораторного оборудования — абсолютно верно.


Но если это домашний проект, хочется получить воплощение в реальном железе, а не остановиться на софт-модели, и тут дешёвая рассыпуха на порядок (или два?) доступнее, чем настоящие дев-киты Xilinx.

Курсовая, 3 семестр, 5 курс.
Но преподаватель застрял в 1988...

Да, поздновато эту курсовую дают по материалу нормально проходимому на 2-3 -ьем курсе по цифровой электронике. :)


P.S. Недорабатывает наше Министерство Высшего Образования и/или не корректирует и не принимает/утверждает учебные программы отдельных Вузов спуская это на самотёк в управлениии и принятии решений на местный электорат Вузов.

Интересная реализация. Автору успехов, не слушайте "душных" коллег, любой практический опыт и идея доведенная до конца полезен.

Я правильно понимаю, что такую архитектуру в советской литературе именовали «микропрограммным автоматом»?

И мне удалось выполнить bit-banging последовательного интерфейса таймера реального времени DS1302.

И ещё вопрос немного не в тему: когда уже, наконец, микроконтроллеры станут настолько быстрыми, что при помощи bit-banging смогут подключаться к WiFi? (Отправлять сигнал переключением ноги, а принимать чтением ноги при помощи встроенного АЦП).

Плис стали настолько быстрыми и это называется SDR :)

Да они как бы стали, но в случае WiFI практически нет этапа где есть именно битовый поток. Упомянутое Software Defined Radio (SDR) использует т.н. IQ stream с АЦП который обрабатывают либо специализированные ПЛИС, либо софт написанный на каком нибуть python, который требует уже Core I7 для работы. Таким образом можно например поднять свою соту GSM/4G/LTE, делать всяко с GPS и т.д.
В случае WiFi проще воспользоваться микросхемой с аппаратной обработкой всего этого -WiFi адаптер с расширенным доступом, оперируя более высокоуровневыми структурами данных, там и так обработки полно, но в общем то это работает

Зарегистрируйтесь на Хабре, чтобы оставить комментарий