![](https://habrastorage.org/getpro/habr/upload_files/11f/3a5/66f/11f3a566f74868ca82d3ea34d7a9d669.png)
План:
Вступление.
Логические операторы.
Четвертьсумматор.
Полусумматор.
Полный сумматор.
Заключение.
Вступление
Здравствуйте, в этой статье я подробно расскажу о том, как можно собрать свой собственный 4-битный сумматор в игре «майнкрафт». Так что если вы далеки от радиоэлектроники, это отличный шанс узнать для себя что-то новое. WELCOME.
Обращаю внимание на то, что все приведённые схемы ниже - абсолютно рабочие и применимы в реальной жизни.
Логические операторы
Не для кого не секрет, что все процессы, которые протекают в компьютере это пачки логических нулей "0" и единиц "1". Но несмотря на такой скудный набор параметров это неплохой способ для управления всеми необходимыми компонентами компьютера.
Проще говоря:
0 (логический ноль) - тока нет
1 (логическая единица) - ток есть
![ток есть и тока нет :D но только в майнкрафте ток есть и тока нет :D но только в майнкрафте](https://habrastorage.org/getpro/habr/upload_files/4ff/6cb/ea9/4ff6cbea98d747ad29848e7d9a8b28a1.jpg)
И, так как мы имеем дело только с нулями и единицами, а нам надо сконструировать целую вычислительную машину, мы воспользуемся такими штуками, как логические операторы. Логические операторы - звучит страшно, но на деле это просто и интересно. Сейчас всё покажу:
Основных всего 3, а нам больше и не понадобится.
1. Оператор "НЕ"
![потом я эту деревню взорвала пока думала потом я эту деревню взорвала пока думала](https://habrastorage.org/getpro/habr/upload_files/969/199/a5e/969199a5eec135969d2bf90d9a781904.jpg)
Если на входе у нас нет тока, то на выходе ток будет. И наоборот, если на входе ток есть, то на выходе его не будет.
2. Оператор "ИЛИ"
![](https://habrastorage.org/getpro/habr/upload_files/959/554/468/9595544681f8a707fb78ae3c362c03e0.jpg)
Тоже простой оператор, в котором есть два входа по которым может идти ток, и какой бы рычаг мы не включили лампочка всегда будет гореть. То есть «или-или». При этом она так же будет работать если оба провода будут пропускать ток. И не работать если тока в них нет.
3. Оператор "И"
![](https://habrastorage.org/getpro/habr/upload_files/c34/9fc/4ab/c349fc4ab4ffcd7817338675c1482326.jpg)
Данный оператор немного посложнее. Его реализация в майнкрафте выглядит вот так. Суть в чем: у него есть два входа по которым может идти ток, но лампочка загорится только в том случае, если оба провода будут проводить ток и никак иначе
Вот и всё, что нам понадобится для того, чтобы собрать сумматор любой битности.
Четверть сумматор
Начнём с простого четвертьсумматора. Эта штука может суммировать числа без переноса в следующий разряд. То есть без переноса десятка.
У нас есть два входа, которые будут представлять из себя два числа, которые будут суммироваться между собой. Если лампочка горит значит сумма = 1, если лампочка не горит значит = 0.
Вот схема:
![1+1 = 10 ( но так как переноса десятка нет на выходе мы получаем логический 0 ) 1+1 = 10 ( но так как переноса десятка нет на выходе мы получаем логический 0 )](https://habrastorage.org/getpro/habr/upload_files/9d2/ead/f69/9d2eadf6934e6a9e6fc3884cc7029dbc.jpg)
Она очень простая и придумать её может каждый. При суммировании единицы и нуля мы получаем единицу, при суммировании двух единиц мы получаем "ноль". Разумеется, без переноса десятка.
Воссоздав всю эту схему в майнкрафте, используя логические операторы рассмотренные ранее, мы можем получить готовый и полностью рабочий четвертьсумматор:
![0 + 1 = 1 0 + 1 = 1](https://habrastorage.org/getpro/habr/upload_files/dfd/52f/4b1/dfd52f4b10e1bf30923e969d489ed798.jpg)
Но это лишь четвертьсумматор. Давайте соберём машину, которая сможет переносить десяток.
Полусумматор
Полусумматор - это уже штука, которая чем-то может напомнить калькулятор. Но всё таки он не полный и называется так, потому что не может учитывать перенос разрядов ( десятков ) других сумматоров.
Но реализовать перенос дело тоже не геморрное, и если посидеть подумать, то можно быстро его собрать.
У меня получилась такая схема:
![выполнено в бесплатной программе logisim выполнено в бесплатной программе logisim](https://habrastorage.org/getpro/habr/upload_files/cb5/c95/5ca/cb5c955ca85c2ce8f9a6fe0974afb5f6.jpg)
Немного пошаманив с редстоуном мы получаем готовый полусумматор:
![](https://habrastorage.org/getpro/habr/upload_files/67c/bb7/718/67cbb7718a9e2f0422288a57b167aaaa.jpg)
Четырёхбитный сумматор
4-битный сумматор - это просто последовательное соединение четырёх полусумматоров.Проблема появляется только от того, что в конечной версии его неудобно читать.Но как обычно, это всё поправимо.
Разберём принцип по которому оно все будет соединяться:
![сделано в paint сделано в paint](https://habrastorage.org/getpro/habr/upload_files/996/117/dbe/996117dbe910f28bd5a7f14bbbb89129.jpg)
Это общий вид и как всё это дело должно подключаться. То есть вместо второй лампочки мы просто ведём наш провод и используем его в качестве «земли». Я это покажу на примере своей схемы:
![](https://habrastorage.org/getpro/habr/upload_files/6bb/c56/ef0/6bbc56ef0b7d989d40cb5189472e2eab.jpg)
Подключая таким последовательным образом мы увеличиваем битность нашего сумматора. То есть да, так можно делать до бесконечности.
Итоговая схема получается большая поэтому сюда я её не размещу (если размещу, всё равно ничего не будет понятно), но давайте посмотрим, что вышло в майнкрафте.
![Вот так это всё у меня выглядит. Вот так это всё у меня выглядит.](https://habrastorage.org/getpro/habr/upload_files/634/381/8db/6343818dbfa87ee69a68474ae6854ce7.jpg)
Сразу обращаю внимание на то, что я вывела все лампочки в правильном порядке, чтобы оно имело читабельный для человека вид.
Обращайте внимание на редстоун, потому что у него органичная дальность работы. Где-то 15 блоков от рычага. Так что ставьте повторители.
![считает он правильно. Так что смело собирайте :) считает он правильно. Так что смело собирайте :)](https://habrastorage.org/getpro/habr/upload_files/992/27a/b7a/99227ab7a1ce11c8ec4587af0610f770.jpg)
Заключение
Как итог могу сказать, что майнкрафт это отличная среда для подобных поделок. По крайней мере попробовать стоит.
Благодарю всех, кто дочитал эту статью до конца. В дальнейшем я выпущу ещё одну, но только уже про самодельный компьютер с шифратором, сумматором и дешифратором, а пока всем до свидания.
Комментарии (26)
arrmagedon99
23.10.2021 15:14-4После фразы "1 ток есть и 0 тока нет" можно закрывать статью. 0 и 1 это все же диапазон напряжения...
pi1r Автор
24.10.2021 14:08Вы всё правильно говорите, может мне и стоило уточнить эти детали.
Статья написана на максимально простом языке, для людей , которые могут быть далёки от этой темы, но которым интересно как всё устроено "под капотом". Как лёгкое, но полезное чтиво.
Я учту ваш комментарий в следующей статье, спасибо
dmitrysvd
23.10.2021 16:10+1В survivalcraft, клоне minecraft, с электроникой намного проще, можно прокладывать провода по потолкам и стенам например. Еще гораздо больше готовых логических элементов, дисплеев, ячейки памяти и т.д. В нем компьютер собрать намного легче будет.
pi1r Автор
24.10.2021 14:10О, интересно. Но я пока остановлюсь на minecraft, так как он более популярный среди людей. Спасибо
iShrimp
23.10.2021 17:16+8Четвертьсумматор по сути представляет собой оператор XOR, который можно сделать проще.
Автору в помощь статья о логических элементах на Minecraft Wiki.
pi1r Автор
24.10.2021 14:38Цель была сделать не проще, а понятнее. По моему, субъективному мнению, было понятнее - в более развёрнутом виде. Но я ознакомлюсь с той информацией, которую Вы мне оставили, в любом случае, спасибо за отзыв, я учту это и добавлю в следующую статью.
WondeRu
24.10.2021 01:40+3– По приказу великого императора включить компьютер! Приступить к встроенному тестированию!
Шеренга солдат, выстроившаяся посередине наклонной стены пирамиды, повторила команду при помощи флагов. В ту же секунду материнская плата из тридцати миллионов человек стала похожа на озеро, играющее яркими бликами в солнечный день. Взвивались и опускались миллионы флажков. На «дисплее», самом близком к пирамиде блоке, возникла и начала медленно удлиняться полоска зеленых флажков, показывающая прогресс тестирования в процентах. Через десять минут полоска дошла до конца.
– Встроенное тестирование окончено!(C) Задача трех тел. Лю Цысинь
IgorKamenev
24.10.2021 06:19+1Пожалуй это самое классное место в этой книге. Читал и ржал. А в остальном... ну так...
DrGluck07
26.10.2021 13:05Особенно как они чинили сломанные части компьютера. Первая книга ещё ничего так, но вторая и третья книги это просто чудовищная графомания. Особенно порадовало как он придумал убить весь флот землян за один раз. Причина отправить все корабли навстречу неведомой фигне и проиграть — «во-первых, это красиво...»
wpostmean
24.10.2021 13:53+2Этим августом занимался чем-то подобным, получился немного неуклюжий, но вполне рабочий компьютер. Так же написал программу для умножения двух целых чисел, на видео можно это увидеть. (В описании ролика есть тайминги и характеристики, если интересно)
Возможно я смогу как-то помочь с циклом статей? Буду рад помочь.
pi1r Автор
24.10.2021 14:24Да, было бы круто, как-то развить эту серию. Пока в планах пройтись по основам основ.
Вы прям архитектор, я залипла, если честно. Можно было бы обсудить это, возможно даже попробовать вывести весь этот "движ" на другой уровень ///DanInSpace
24.10.2021 14:51+1Кстати, в редстоун схемах считается хорошим тоном использовать цветные блоки (например шерсть) для выделения частей механизма. Даже у вас на фото было бы намного нагляднее вместо земли использовать что-то выделяющееся :) как пожелание на будущее
ariksu
24.10.2021 16:27+2Всем желающим научиться разрабатывать собственный компьютер я горячо рекомендую книгу и курс "From NAND to Tetris". Курс состоит из двух частей, в первой собирается стек от базовых логических элементов, через ALU, CPU и машкоды до ассемблера. Во второй части пишется своя ос, вм, объектый язык высокого уровня и наконец тетрис.
Несмотря на камерность выбранной архитектуры, получается очень задорно.TotalAMD
25.10.2021 08:18Можете сравнить с CODE Пицольда?
ariksu
25.10.2021 13:06Не читал последнего. Посмотрел оглавление и первые три главы - судя по развёрнутости Пицольд покрывает более-менее только первую часть, плюс даёт много контекста по азам информатики ("смотрите, мы можем всё записывать двоичным кодом"). Ну и общая нацеленность другая - более теоретическая.
TotalAMD
25.10.2021 08:26+1https://youtu.be/0bAuP0gO5pc (объяснения есть на канале в более раннем видео)
Factorio, с одной стороны, не имеет третьего измерения, а с другой — схемы получаются более наглядными.
Haoose
25.10.2021 10:40+1Рекомендую попробовать игру Turing Complete
Turing Complete в Steam (steampowered.com)
Там тоже можно моделировать такие схемы из логических элементов, вплоть до компьютера, писать программы для него.
И описанные в статье сумматоры там тоже есть.
redf1sh
Почему заголовок такой? Вы действительно собрали сумматор, но до компьютера ещё далеко. У вас нет памяти никакой (ни для инструкций, ни для данных). И я не уверен, что одной операцией сложения можно получить полноту по Тьюрингу
Возможно, чтобы не вводить в заблуждение, надо было заголовок назвать "Компьютер в игре minecraft часть 1" или что-то в этом духе.
phenik
До этого еще далеко
pi1r Автор
3+ месяцев эта статья пыталась попасть на модерацию, но по тех. причинам не удавалось. Это как раз должен был быть небольшой цикл, включающий в себя триггеры, шифраторы, дешифраторы и т.д. Но просто я уже реально не верила, что всё таки она выйдет, поэтому и такое "громкое" название. Но судя по фидбэку, может что-то и будет. В любом случае, спасибо за Ваш отзыв.