Как компуктер складывает циферки и о гениальных костылях

 Публичный пост
11 апреля 2026  89

В начале дисклеймер все ниже написанно не профессиональным Digital Design Engineer

Для шарящего (и не только) человека тут будет много упрощений и кринжа, feel free to correct me in comments

Собственно, начнем с базы, транзистор это кусок песка, меди и щепотки других веществ, его задача пускать и не пускать ток
У транзистора есть 3 металлические ножки:

  • Коллектор (ножка, куда входит ток от питания)
  • База (ножка, которая управляет: открывает или закрывает путь току)
  • Эмиттер (ножка, откуда ток выходит) Есть 2 типа транзисторов:
  • PNP: Есть ток на Базе? Если да, то: транзистор закрылся, ток не идёт
  • NPN: Есть ток на Базе? Если да, то: транзистор открылся, ток идёт
    вот так выглядят транзисторы на схеме и в реальной жизни
    вот так выглядят транзисторы на схеме и в реальной жизни

Окей, ну а зачем это?

Если мы будем соединять транзисторы определенным способом мы можем получать разные логические вентили(gate) и уже из них можно собирать сложные схемы, а в итоге даже твой компуктер

  • AND: Если соединить два транзистора последовательно, то у нас есть конструкция с 2 входами (в вентилях считается только базы транзисторов) и чтобы на выходе был 1 (ток есть) нужно подать на оба входа 1. В таблице 0 возле провода означает, что ток по нему не идёт, 1, что идёт. А в колонке OUT мы видим будет ли выходить ток
    А вот так выглядит сам AND вентиль
    А вот так выглядит сам AND вентиль
  • OR: Если же подключить их параллельно. То току будет все равно открыт 1 или 2 транзистора, поэтому на выходе будет ток, если хотя бы на 1 базу транзисторов подается ток
    Вот обозначение самого вентиля в схемотехнике
    Вот обозначение самого вентиля в схемотехнике
    В реальной жизни все сложнее из-за того, что есть напряжение, поэтому чаще всего используют NAND (Not AND), это основной логический вентиль так как без него в схемотехнике тяжко.
    Менее страшна версия c абстракцией, без всяких резисторов (Nand gate выглядит как AND но с точечкой на выходе, которая означает NOT)
    Менее страшна версия c абстракцией, без всяких резисторов (Nand gate выглядит как AND но с точечкой на выходе, которая означает NOT)

Но для простого калькулятора нам нужен XOR(Exclusive OR)
Он имеет 2 входа, и будет выводить ток в случае если A != B
Почему это важно и нужно?
В двоичной математике 1+1 = 10
И нам нужно, чтобы в разряде при сложении двух единиц оставался 0. И XOR дает этот ноль, когда на входах две единицы.

Учимся считать используя метал

Совместив XOR и AND, мы можем создать Half adder
Эта схема имеет 2 входа(А и B) и 2 выхода Sum(результат разряда) и так же Carry-out(перенос, та самая единица при 1+1=10).

Но Half-adder подразумевает, что существует настоящий, полноценный, adder, у которого уже 3 входа A,B, а также вход переноса (Carry-in)

  • Carry-in нужен, чтобы принимать сигнал от Carry-out предыдущего разряда. Так мы можем собрать 4, 8, 16-битный сумматор, просто соединяя их паровозиком.
    вот собственно как он выглядит
    вот собственно как он выглядит

Делать A+B без споров вещь полезная, но хотелось бы побольше
Ок мы научились суммировать, а как вычитать то?

Хорошая новость в том, что нам не нужно делать отдельную вычиталку. Мы можем использовать уже готовый сумматор, если прикрутим к нему костыль!

Нам нужен вентиль NOT:

  • Используя его, мы инвертируем все биты числа B (0 становится 1, а 1 теперь 0)
  • Вот тут мы и используем костыльную магию! Мы подаем 1 на вход Carry-in самого первого full adder
    • Нам жизненно необходим этот костыль с 1, так как инверсия битов через NOT дает кривой код с двумя нулями 0000 и 1111.
  • Так как у нас есть два нуля, мы добавляем 1 и в итоге любая операция которая будет выдавать 0 в бинарном коде будет выглядеть так 10000 и если мы рассматриваем 4 битный сумматор то вывод будет 0000, лишняя единица вылетает

Таким образом A + NOT B + 1 = A - B

И теперь у нас есть калькулятор который умеет суммировать и даже вычитать!

Ну и если прикрутить еще 100 млрд транзисторов, то выйдет компуктер. Это и есть схемотехника
Если вы никогда не интересовались этой темой и вам стало немного интересно, то могу порекомендовать посмотреть видосы от https://www.youtube.com/@BenEater, например по теме этой теме у него хороший видос

Можно пойти поиграть в NandGame или Turning complete

  • Мне очень зашел Turing Complete так как там можно не только создавать схемы но и полноценно на них кодить и писать на своем ассемблере и игра выглядит красивее чем https://nandgame.com/

Также могу посоветовать https://www.geeksforgeeks.org, там есть куча инфы по схемотехнике и не только

Откомментируйте первым 👇

😎

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

Что вообще здесь происходит?


Войти  или  Вступить в Клуб