Not, Or, And

Ну что ж, давайте построим на наших правилах элементарнейшую логику - логические вентили. Договоримся, что, как и обычно в схемотехнике, входы у нас будут слева (голубенькие), а выходы справа (желто-оранжевые).

В этой главе я выставлю время переключения проводников (ttl) в 600 тактов (30 секунд), чтобы не спешить, переключая входы. Ах да, масштаб тоже увеличу.

NOT

Этот вентиль у нас есть изначально, осталось только подвести вход и выход. NOT (НЕ) - это когда сигнал на выходе противоположен сигналу на входе.

Попереключайте вход, вроде просто, да?

NOT

:x white :y orange :g cyan
+----------+
|          |
|    xx    |
| gggx xyy |
|    xx    |
|          |
+----------+

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

OR

OR (ИЛИ) - это когда на выходе есть питание только тогда, когда оно есть на каком либо из входов. Или, другими словами, на выходе его нету тогда, когда его нету нигде.

OR можно построить вообще без вентилей. Любой проводник уже как бы и есть OR сам по себе, где каждая клеточка - новый вход; но несколько неудобный, так как питание распространяется на все “входы” обратно без ограничений. А это, обычно, очень нежелательно, так как мешает выстраивать схему “от входов к выходам”. Поэтому лучше схему усложнить и входы изолировать парами элементов NOT (типа, диод - в одну сторону проводит, в другую нет). Это, правда, замедлит вентиль на 1 такт и увеличит его площадь (49 клеток, белая часть схемы), но зато входы не будут реагировать друг на друга.

OR, OR

:x white :y orange :g cyan
+-------------------------+
|                         |
|              xx xx      |
| gggx      gggx xx xx    |
|    x         xx xx x    |
|    xyyy            xyyy |
|    x         xx xx x    |
| gggx      gggx xx xx    |
|              xx xx      |
|                         |
+-------------------------+

А еще мы можем немного оптимизировать наш вентиль по площади, до 42 клеток, вот так.

OR и NOR

:x white :y orange :g cyan
+-------------+
|             |
|    xx xxx   |
| gggx xx x   |
|    xx  x    |
|        xyyy |
|    xx  x    |
| gggx xx x   |
|    xx xxx   |
|             |
+-------------+

Понажимайте на входы и посмотрите, как через один такт меняется значение выхода. Ttl выставлен большой, можно не спешить и спокойно покликать.

Истины ради стоит отметить, что наш элемент NOT на самом деле является элементом Пирса NOR (ИЛИ-НЕ), так как корпус домика - это уже “OR” (любой проводник - OR, только что говорили), а на выходе от него идет “NOT”. Посему базовые правила бинарной математики (все можно построить из NOR, а не из NOT) мы не нарушаем, все в порядке. Но, ради удобства и лаконичности, все равно будем продолжать говорить NOT (ну ведь это же NOT, инверсия сигнала от корпуса к “крыше”, а NOR сложнее).

Кстати, вот настоящий NOR.

NOR

:x white :y orange :g cyan
+-----------------+
|                 |
|    xx xxx       |
| gggx xx x       |
|    xx  x  xx    |
|        xxxx yyy |
|    xx  x  xx    |
| gggx xx x       |
|    xx xxx       |
|                 |
+-----------------+

AND и NAND

AND - это когда на выходе есть питание только тогда, когда оно есть на всех(!) входах. NAND - то же самое, но выход еще и дополнительно инвертирован. NAND, кстати, называется элементом Шеффера и из него тоже можно сделать все. Но это не наш случай - наш NOT не NAND.

А еще в AND всего три вентиля, в то время как в OR - четыре. И AND более экономный по площади.

AND, NAND

:x white :y yellow :g cyan
+---------------------------------+
|                                 |
|    xx              xx           |
| ggxx xx         ggxx xx         |
|    xx xx           xx xx xx     |
|       x xyyy          x xx xyyy |
|    xx xx           xx xx xx     |
| ggxx xx         ggxx xx         |
|    xx              xx           |
|                                 |
+---------------------------------+

Давайте соберем AND на три входа, нам пригодится.

AND

:o white :y yellow :g cyan
+--------------+
|              |
|    oo        |
| ggoo oo      |
|    oo o      |
|       o      |
|    oo oo     |
| ggoo oo oyyy |
|    oo oo     |
|       o      |
|    oo o      |
| ggoo oo      |
|    oo        |
|              |
+--------------+

Ну что ж, надеюсь на этих скучных примерах вопрос нашего главного вентиля и как он работает можно считать закрытым? Если нет - потыкайте еще в примеры выше. А если да - перейдем к более интересной части, Декодеру…

Copyright (c) 2023 Iaaa