План:
Вступление.
Логические операторы.
Четвертьсумматор.
Полусумматор.
Полный сумматор.
Заключение.
Вступление
Здравствуйте, в этой статье я подробно расскажу о том, как можно собрать свой собственный 4-битный сумматор в игре «майнкрафт». Так что если вы далеки от радиоэлектроники, это отличный шанс узнать для себя что-то новое. WELCOME.
Обращаю внимание на то, что все приведённые схемы ниже - абсолютно рабочие и применимы в реальной жизни.
Логические операторы
Не для кого не секрет, что все процессы, которые протекают в компьютере это пачки логических нулей "0" и единиц "1". Но несмотря на такой скудный набор параметров это неплохой способ для управления всеми необходимыми компонентами компьютера.
Проще говоря:
0 (логический ноль) - тока нет
1 (логическая единица) - ток есть
И, так как мы имеем дело только с нулями и единицами, а нам надо сконструировать целую вычислительную машину, мы воспользуемся такими штуками, как логические операторы. Логические операторы - звучит страшно, но на деле это просто и интересно. Сейчас всё покажу:
Основных всего 3, а нам больше и не понадобится.
1. Оператор "НЕ"
Если на входе у нас нет тока, то на выходе ток будет. И наоборот, если на входе ток есть, то на выходе его не будет.
2. Оператор "ИЛИ"
Тоже простой оператор, в котором есть два входа по которым может идти ток, и какой бы рычаг мы не включили лампочка всегда будет гореть. То есть «или-или». При этом она так же будет работать если оба провода будут пропускать ток. И не работать если тока в них нет.
3. Оператор "И"
Данный оператор немного посложнее. Его реализация в майнкрафте выглядит вот так. Суть в чем: у него есть два входа по которым может идти ток, но лампочка загорится только в том случае, если оба провода будут проводить ток и никак иначе
Вот и всё, что нам понадобится для того, чтобы собрать сумматор любой битности.
Четверть сумматор
Начнём с простого четвертьсумматора. Эта штука может суммировать числа без переноса в следующий разряд. То есть без переноса десятка.
У нас есть два входа, которые будут представлять из себя два числа, которые будут суммироваться между собой. Если лампочка горит значит сумма = 1, если лампочка не горит значит = 0.
Вот схема:
Она очень простая и придумать её может каждый. При суммировании единицы и нуля мы получаем единицу, при суммировании двух единиц мы получаем "ноль". Разумеется, без переноса десятка.
Воссоздав всю эту схему в майнкрафте, используя логические операторы рассмотренные ранее, мы можем получить готовый и полностью рабочий четвертьсумматор:
Но это лишь четвертьсумматор. Давайте соберём машину, которая сможет переносить десяток.
Полусумматор
Полусумматор - это уже штука, которая чем-то может напомнить калькулятор. Но всё таки он не полный и называется так, потому что не может учитывать перенос разрядов ( десятков ) других сумматоров.
Но реализовать перенос дело тоже не геморрное, и если посидеть подумать, то можно быстро его собрать.
У меня получилась такая схема:
Немного пошаманив с редстоуном мы получаем готовый полусумматор:
Четырёхбитный сумматор
4-битный сумматор - это просто последовательное соединение четырёх полусумматоров.Проблема появляется только от того, что в конечной версии его неудобно читать.Но как обычно, это всё поправимо.
Разберём принцип по которому оно все будет соединяться:
Это общий вид и как всё это дело должно подключаться. То есть вместо второй лампочки мы просто ведём наш провод и используем его в качестве «земли». Я это покажу на примере своей схемы:
Подключая таким последовательным образом мы увеличиваем битность нашего сумматора. То есть да, так можно делать до бесконечности.
Итоговая схема получается большая поэтому сюда я её не размещу (если размещу, всё равно ничего не будет понятно), но давайте посмотрим, что вышло в майнкрафте.
Сразу обращаю внимание на то, что я вывела все лампочки в правильном порядке, чтобы оно имело читабельный для человека вид.
Обращайте внимание на редстоун, потому что у него органичная дальность работы. Где-то 15 блоков от рычага. Так что ставьте повторители.
Заключение
Как итог могу сказать, что майнкрафт это отличная среда для подобных поделок. По крайней мере попробовать стоит.
Благодарю всех, кто дочитал эту статью до конца. В дальнейшем я выпущу ещё одну, но только уже про самодельный компьютер с шифратором, сумматором и дешифратором, а пока всем до свидания.
Комментарии (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+ месяцев эта статья пыталась попасть на модерацию, но по тех. причинам не удавалось. Это как раз должен был быть небольшой цикл, включающий в себя триггеры, шифраторы, дешифраторы и т.д. Но просто я уже реально не верила, что всё таки она выйдет, поэтому и такое "громкое" название. Но судя по фидбэку, может что-то и будет. В любом случае, спасибо за Ваш отзыв.