Pull to refresh

АЛУ на 12 транзисторах (на самом деле нет)

Reading time 3 min
Views 24K
Original author: roelh


Что можно сделать на 12 транзисторах? Если схема аналоговая, это может быть, например, радиоприёмник или усилитель с достойными характеристиками. Для цифровой же схемы это катастрофически мало. Даже в такой простой микросхеме, как АЛУ К155ИП3 (74181), их значительно больше.

На самом деле транзисторов и здесь не 12, а 27, но из них в собственно АЛУ используются только 11 (двенадцатый транзистор, принудительно подающий логический нуль на вход переноса при выборе логических операций, не установлен). Остальные транзисторы задействованы в формирователе сигналов, подаваемых на входы АЛУ. При включении АЛУ в состав транзисторного процессора формирователь может и не понадобиться, если все необходимые сигналы там уже сформированы.

Как уложиться в это количество? Во-первых, сделать АЛУ однобитным, во-вторых, сократить количество операций до двух арифметических и пяти логических (у К155ИП3 и тех и других по 16, но и здесь их на самом деле больше), в третьих...

… выполнить АЛУ по необычной технологии DCTL (direct coupled transistor logic), позволяющей заметно сократить количество компонентов.

Симуляция выполнена в Falstad, этот симулятор удобен тем, что показывает направление протекания тока в виде «бегущих огней». Файлы: только полный сумматор и готовый АЛУ.

Для начала построим «АЛУ» с одной функцией — полный сумматор. Разобьём схему на две половины. Первая предназначена для подготовки входных сигналов для сумматора:



Выключателями можно задать два однобитных числа — A и B и сигнал переноса. Из них схема формирует четыре сигнала (четвёртый — тот же самый B, только инвертированный).

Вторая половина схемы — собственно сумматор:



Он представляет собой реализацию классического полного сумматора. На структурной схеме дополнительно показано распределение транзисторов по логическим элементам:



Чтобы всё это превратить в многофункциональное АЛУ, сначала переделаем формирователь входных сигналов таким образом, чтобы она формировала в прямом и инвертированном виде не только величину B, но и величину A:



Но поскольку автор планирует применить своё АЛУ в составе процессора на дискретных компонентах, такой формирователь, может и не потребоваться: там обе величины и так будут в прямом и инвертированном виде. Поэтому транзисторы формирователя и не входят в число транзисторов АЛУ. Да и без процессора можно просто взять переключатели с перекидными контактами. Ну а теперь — собственно АЛУ:



Четырьмя выключателями можно выбирать выполняемую АЛУ функцию. Ниже показаны только 7 основных:



Чтобы АЛУ не было «сферическим в вакууме», а могло получать сигналы извне, выключатели нужно заменить транзисторами. Поскольку транзистора, принудительно подающего логический нуль на вход переноса при выборе логических функций, пока нет, подавать нуль на этот вход в таких случаях нужно вручную.

Хотя на рисунке показаны всего 7 функций, можно попробовать все 16 сочетаний положений выключателей. Будут получаться, в частности, функции И-НЕ, ИЛИ-НЕ, ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ, пропускание сигнала B насквозь, инвертирование того же сигнала.

Симуляция может преподносить сюрпризы. Знаете ли вы, что биполярный транзистор может работать при пропускании через него тока в обратном направлении? Так получается при некоторых сочетаниях входных сигналов. В аналоговом усилителе при этом уменьшается коэффициент усиления, но логические схемы продолжают работать так же, как в нормальном режиме.

Напряжение питания составляет +5 В. В симуляторе выбраны транзисторы общего применения структуры NPN.

Сумматор получается со сквозным переносом. Сигналу переноса приходится проходить через транзистора T8 и T9. Если это слишком медленно, нужно сначала проверить, как влияет на работу схемы цепь, подключённая к эмиттеру транзистора T8. Перенос можно также сделать быстрее, если выполнять его для двух бит одновременно.

Если нужен только полный сумматор, подойдёт и обычная диодно-транзисторная логика (DTL). Транзисторов понадобится всего два, а вот диодов… Можно заменить эти транзисторы лампами, получится то, что автор называет DVTL — diode-vacuum-tube-logic.



Верхняя часть схемы вырабатывает инвертированный сигнал переноса. Вторая вычисляет инвертированную сумму: СУММА = ( ( A или B или C вх ) и /C вых ). Данное выражение может быть представлено также как ( A и B и C вх ).

Структурная схема получается следующей:



Добавив ещё немного компонентов, можно принудительно подавать на вход переноса нуль или единицу. Тогда схема сможет выполнять операцию И (на входе переноса единица, на инвертированном выходе переноса — нуль), а также ИЛИ (на входе переноса нуль, на инвертированном выходе переноса — единица).

Чтобы подать сигнал «инвертированный C вых» на вход «C вх» схемы для следующего бита, нужен транзисторный инвертор. Либо можно принять правило, согласно которому между битами чередуется прямая и инверсная логика.

Всё это можно превратить в действующее АЛУ, рассчитав номиналы резисторов и добавив дополнительные компоненты для оптимизации «отзывчивости» схемы. Устройства, подключённые к входам, должны содержать ключи, замыкающие их на землю (для входов диодных «И»), либо соединяющие их с плюсом питания (для входов диодных «ИЛИ»).

Это очень простая схема, в ней не реализован быстрый перенос.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+57
Comments 29
Comments Comments 29

Articles