Комментарии 54
$400 кажется многовато для такого набора деталей?
$120 за 14 макетных плат (BB830, очень хорошего качества).
Понятно, спасибо.
Ради любопытства, а чего вы не нашли в Украине? Насколько я понял, схема ведь состоит из обычно рассыпной TTL-логики, которая в изобилии есть в любом радиомагазине, хоть онлайновом, хоть физическом. Ну разве что флешка на 2 Кб сейчас достаточно редкий гость, это из старых запасов надо искать.
Там примерно полсотни корпусов, как я вижу. И в принципе, все эти 74LS173, LS245 и иже с ними стоят примерно по 10 грн/шт в розницу. Соответственно, стоить оно должно ну баксов 40 с учётом флешки и других компонент (кроме макетки, конечно).
1) Каких-то микросхем просто нет. Я не записывал, но вот, например, LS00, LS283, LS107.
2) Все детали нельзя купить в одном месте, они разбросаны по разным магазинам в разных городах страны. Иногда это какие-то частники на сайтах типа Avito. Все надо заказывать отдельно, оплачивать доставку, ждать, менеджить.
Когда я увидел, что есть такой сайт как Jameco, меня это поразило: любой товар в любом количестве, нормальный UI/UX.
Да, доставка в $80 кусается, не спорю.
но вот, например, LS00, LS283, LS107
а, так 00 - это ЛА3, 283 - ИМ6(тут согласен, может быть редок), 107 - ТВ6 (в ЕС-ках не встречал)
1) Каких-то микросхем просто нет. Я не записывал, но вот, например, LS00, LS283, LS107.
Я сейчас глянул Космодром и Радиомаг, там те или иные их вариации все в наличии есть, некоторые позиции под заказ, но срок доставки 1-2 недели, в принципе и из Штатов оно не быстрее доедет. Ну и насчёт вариаций, это немаловажно и существенно упрощает подбор компонент в одном месте. ТТЛ серия LS полностью совместима с серией ALS и советскими 555 и 1533. И с небольшими нюансами (касаемо нагрузочной способности) совместима с куда более доступной и распространённой КМОП-серией HC. Вообще, предпочтительней использовать ALS/1533, т.к. эти серии имеют меньшее энергопотребление, выше надёжность и быстродействие. Или вообще всё делать на HC
Мне очень нравится серия 74HC. Мне кажется, она быстрее 74LS и кушает меньше тока. И найти 74HC00/74HC283 - нет проблем. chipdip.ru, promelec.ru, aliexpress.ru
Собственно, я прям сейчас пытаюсь повторить Ваш путь на базе 74HC** ;)
$400 на все компоненты и их доставку
После этой фразы был уверен, что статья- перевод, пока не начал читать комменты. $400 для хобби в Украине очень много.
Вы как-то экстраполировали на всю страну...
В той же Украине есть люди, у которых хобби ездить на спорткарах. Могут себе позволить.
Много "для большинства"? Ну и в США далеко не каждый может себе позволить выложить 400 баксов на хобби за один раз.
Учитывая, что средная зарплата миддла-программиста по Украине даже за пределами Киева составляет $2000, а сеньора в $3500, потратить $400 на ИТшное же хобби - это отнюдь не очень много.
В моём городе больше 400 у.е. зарабатывает не более 10% населения, в регионе и того меньше. Программистов знакомых нет.
Я могу себе позволить потратить на хобби до 10% зарплаты, и не каждый месяц. Пока был женат, даже этого не мог.
В Украине даже средняя официальная заработная плата сейчас порядка 500 у.е. Если брать, например, областные центры, то смело умножайте эту цифру на 2. Поэтому если так, то тут дело больше в вашем городе. У меня, например, среди одноклассников программистов всего двое. Остальные занимаются кто чем - один платья продаёт, другой преподаёт в университете, третья медпредставитель, четвертая репетитор английского и так далее. Я в кошельки им не заглядывал, но так или иначе, у всех есть квартиры, машины и регулярный отдых в Турции (по крайней мере, до карантина), так что явно не 500 у.е. зарабатывают, а в несколько раз больше.
В Украине даже средняя официальная заработная плата сейчас порядка 500 у.е.
На моём прежнем предприятии средняя официальная заработная плата составляла примерно в два с лишним раза больше чем мы получали на руки, это при том, что наша с коллегами зарплата была одной из лучших. Я засомневался от вашей уверенности и опросил коллег по поводу средней по городу зарплаты (пенсии и доходы бизнеса не трогаем), средняя порядка 7000 гривень (на руки, после высчетов), это 250 у.е., и это почти вдвое меньше, чем у меня сейчас. Кременчуг не областной центр, но зарплаты на том же уровне. В целом по области намного меньше, так что откуда 500 у.е?
А если бы я опросил одноклассников, то цифры были бы намного больше, но это уже не средняя по городу. (По результатам опроса в интернете 100% опрошенных пользуются интернетом- шутка из начала двухтысячных).
На моём прежнем предприятии средняя официальная заработная плата составляла примерно в два с лишним раза больше чем мы получали на руки,
Налоги — это 19.5% от зарплаты (18% НДФЛ + 1.5% ВС). Как вы можете получать в два с лишним раза меньше от официальной зарплаты (ну, кроме случаев, когда вас как-то обманывают или просто должны, но не платят)?
средняя порядка 7000 гривень
Я не знаю ситуацию в Кременчуге, хотя на том же КВСЗ средняя зарплата тыщ 20 грязными, насколько я понимаю. И, например, я знаю, что оклад грузчика Новой почты — 12.5 тыс грн грязными, т.е. на руки он получает более 10К гривен (по крайней мере, в крупных городах. Ставки у НП тоже учитывают местные реалии каждого города).
Ну и опять же таки, все эти старые ex-советские предприятия — это совершенно другой мир. Где и правда людям не платят нихрена.
Очень уважаемо, снимаю шляпу.
Я бы, правда, побоялся собирать такое на бредборде, чтобы не запутаться в проводах и плохих контактах.
А вы видели Gigatron-TTL? Очень похожая концепция: компьютер на микросхемах стандартной логики. Но у них довольно забавная программная архитектура с виртуализацией и VGA
Это мой первый проект такого рода и страх перед горой перемычек и контактов тоже был. Что-то не работает — надо все проверять. Пару раз попадался брак, и не такой, что что-то вообще не работает, а такой, что работает криво — тратил много времени.
Gigatron-TTL не видел. Прикольно, что они запарились и продаю как kit. Но это более высокоуровнево, а хотелось разобраться прям без абстракций.
Хм. А это перевод или нет? Ну очень похоже!
https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU
В детстве прошёл через РК-86, Z80..
Большая работа! После просмотра этого цикла, ко мне пришло на сколько просто устроен процессор: он просто берёт сигналы с одних ног, и по их значениям устанавливает сигналы на других ногах. Никакой памяти, никакой сложной логики (в каноне).
При всём моём уважении, но ещё в ленте, увидев знакомое изображение, я начал вовсю искать плашку "перевод" и не нашёл. Вы упоминаете ссылку на Ben Eater в заключении, но на момент этого комментария статья не содержит заключения (последнее что мне видно это "Регистр ввода-вывода и дисплей". у вас не работает навигация по статье, кстати говоря).
Поэтому мысль о переводе или плагиате и всплыла первым делом
Написал в поддержку и сделал UPD в начале статьи.
Извините.
Вся конструкция повторяет конструкцию Бена Итера практически один в один.
А я подумал соберут какой-нить ЮТ-88, как я пытался так же, проводочками. А тут вона что.
Я помогал товарищу настраивать "Специалист" на навесном монтаже. К сожалению, он вместо сборки по модулям (питание, тактовая, видео и т.д.) - просто паял все подряд, поэтому разбираться в этом было очень сложно и долго. В конце концов - была куплена на рынке печатная плата и все пересобрано на ней.
Похоже на копипаст из какого-то ворда — часть форматирования и чего-то вроде длинного тире потеряно при переносе. Не пробовали писать багрепорт разработчикам хабровского WYSIWYG'a?
А WYSIWYG действительно еще сыроват, я много багов находил и где можно было бы улучшить что-то. Напишу в поддержку об этом, спасибо, что напомнили.
Прочитал восстановленный материал — понял, что сразу не заметил отсутствия половины работы. Но ма-ма, программировать семисегментный дисплей через чтение из ПЗУ?! Это реально как забивать гвозди микроскопом. И таки интересно было бы почитать про "сложный" вариант решения. Надеюсь, там все-таки будет хотя бы деление на 10, если не сдвиг на 3 и выдача ответа в восьмизначной системе ;)
Здесь же собран DIY-процессор (что очень круто), но лишь c зачатками остальных компонентов системы (памяти, устройств ввода-вывода) и без софта.
чип SN74LS173, это 4-битный D flip-flop
Этот фрагмент текста выдаёт в нем некорректно адаптированный перевод.
С одной стороны интересно, так вот проводочками кропотливо отлаживать схему АЛУ, ПЗУ и т.д.
С другой стороны - как-то не очень эффективно что-ли, не понятно, ради чего все это...
Я же в свое время начинал сразу с микроконтроллера AVR AT90S2313. Такая маленькая микросхемка в корпусе DIP-20. И меня вводило в полный восторг осознание того, что внутри этой микросхемки те самые АЛУ, ПЗУ, RAM. Только спаяно это все не проводками, работает надежно, потребляет мизер. Процесс программирования - на ассемблере. Полностью погружаешься во все эти регистры, флаги процессора, стараясь запихнуть свою программу в доступные 2К памяти.
Особенно удались анимашки со светодиодами:)
Интересная тема, но мне кажется, в статье есть некоторые моменты, которые затрудняют понимание или отвлекают.
Первый момент — это названия управляющих сигналов вроде MI или SO. Они ничего не говорят и при чтении непонятно, о чем речь. Мне кажется, лучше бы подошли более длинные названия вида: LOAD_A (или WRITE_A) — загрузить данные с шины в регистр A, PC_OUT — выдать значение из счетчика команд на шину данных, итд. То есть такие названия, которые сразу очевидны.
Второй момент — это отвлекающиеся моменты в объяснениях. Например, вначале у вас на рисунке к АЛУ подсоединены переключатели, а потом оказывается, что оно подсоединено к регистрам. Зачем же тогда сбивать с толку читателя? Нужно с самого начала было писать про регистры.
Мне кажется, рисунки с кнопками не нужны, можно просто написать что-то вроде "при подаче единицы на вход X происходит Y".
Или в объяснении про декодирование чисел для семисегментного индикатора — опять же, мне кажется, незачем приводить пример программы на Питоне, так как Питон тут не имеет никакого отношения, а если читатель с ним незнаком, то ему еще труднее понять, что к чему. Правильнее было бы без лирических отступлений сразу написать: я использую ROM для преобразования чисел в коды управления сегментами.
Или в объяснении микроинструкций: вы сначала зачем-то приводите нерабочую таблицу, где нет чтения команды в регистр инструкций, объясняете что-то на ее примере, а только потом уже приводите рабочую. Опять же, мне кажется правильнее было приводить сразу рабочую таблицу и не сбивать с толку.
Есть много решений этой задачи, в проекте используется сложный, но менее затратный по ресурсам (нужно меньше чипов). О сложном решении рассказать текстом не просто
Хабр это технический ресурс, тут можно было бы рассказать и о сложном способе.
Также, в статье почему-то не описана система команд процессора. Или вы решили ограничиться только тремя командами ADD, LD и OUT?
Также, мне не нравится американский способ рисовать микросхемы, когда выводы могут располагаться с любой стороны. Советский способ, когда входы находятся слева, а выходы справа, и они подписаны, по моему, удобнее.
Еще у меня возникла мысль: не проще ли выбирать адрес обращения к памяти мультиплексором на 2 входа? К одному входу подключить счетчик команд, ко второму — регистр адреса памяти. Тогда можно было бы уже в первом такте выдать адрес из счетчика команд и сразу же прочитать значение из памяти.
Ну и еще, если кто-то захочет повторить эту схему, то, возможно, стоит использовать отечественные микросхемы серии КР1533. Они легко доступны и стоят 20-30 рублей за штуку.
Также, если кому-то интересно узнать, какие еще бывают самодельные процессоры, я бы хотел порекомендовать такие (тщательно отобранные) ссылки на самые интересные конструкции:
японский процессор TD-4: 4 бита, из арифметики только инструкция сложения, вместо ROM используется 16 DIP-switches, в которые вбивается программа (то есть, память составляет 16 байт). Используется всего 13 микросхем, схема: https://github.com/wuxx/TD4-4BIT-CPU/blob/master/doc/cpu_td4.jpg Самая простая схема из всех приведенных.
Gigatron: 8-битный процессор, 16-битные команды, около 40 микросхем серии 74HCT, частота 6,25 Мгц (за 1 такт выполняется 1 команда), 32 Кб RAM, 128 Кб ROM, есть сложение, вычитание, AND/OR/XOR и есть вывод VGA-видео и звука программным способом (без видеокарты), есть видеоигры: https://gigatron.io/?page_id=482
PISC (Pathetic Instruction Set Computer): процессор, в основе которого лежит всего 2 группы микросхем: АЛУ и 3-портовый регистровый файл. Схема удивляет своей простотой. Процессор 16-битный и в нем отсутствует декодер команд: биты команды напрямую управляют устройствами процесссора. https://bradrodriguez.com/papers/piscedu2.htm При этом команды довольно продвинутые, и он, например, умеет одновременно читать значение из памяти и увеличивать регистр, который используется как адрес.
CSCvon8: очень маленький 8-битный процессор из 17 микросхем (такая экономия достигается за счет использования нескольких ПЗУ). Вместо АЛУ используется ПЗУ, что позволяет реализовать умножение, деление и сдвиги на произвольное число бит: https://github.com/DoctorWkt/CSCvon8/blob/master/Docs/CSCvon8_design.md
Спасибо за список, пару из них я не знал!
Хотя Scott CPU это лишь заготовка процессора — он недоразработан функционально (отсутствуют косвенные переходы и адресации), и использует упрощенную схемотехнику, требующую серьезной коррекции на практике. Но автор конструирует свой процессор буквально из транзисторов (блоков ИЛИ-НЕ (NOR)).
Это прямая копипаста 8-мибитного компьютера за авторством Бена Итера.
а есть полная принципиальная схема вашей конструкции и спецификация? у вас заработала данная схема?
"Собираем 8-битный компьютер"
Сразу хочется задать вопрос: А зачем? Тем более - взрослому бородатому мужику да ещё и Senior Software Engineer at Rocket....
Помнится, когда я был лет 13-14 - учась в радио-кружке - собирал московский вариант ZX Spectrum.
Пока паял микросхемы - научился их паять без всяких соплей и "палева" - на уровне заводского автомата. Также многочасовые корпения над принципиальной электрической схемой - на всю жизнь отразились на моём понимании цифровой схемотехники. Но, мне тогда было, повторюсь - 13-14 лет, а сколько сейчас бородатому сеньору? К тому же, как тут уже успели заметить многие в комментах - и сама схемотехника и сумма в $400 - вызывают немало вопросов - что хотел показать своим "творением" автор.
Зачем? Потому, что нравится. Собрать комп из рассыпухи, сесть на мотоцикл, поиграть в настолки, выехать на природу с семьёй или самому, и т.д. Жизнь есть и за пределами "Senior Software Engineer at Rocket.... ", "... мы должны иметь некоторый гражданский отдых".
что хотел показать своим «творением» автор.
Just for Fun. Кто-то собирает марки, кто-то выращивает фиалки, а кто-то собирает ПК из рассыпухи. :)
Теперь надо на нем Doom запустить )
Собираем 8-битный компьютер