Главная » Хабрахабр » [Перевод] АЛУ на 12 транзисторах (на самом деле нет)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это очень простая схема, в ней не реализован быстрый перенос.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Искусственный интеллект улучшает качество графики старых видеоигр и делает это действительно хорошо

Недавно стало известно еще об одной задаче, которую ИИ решает очень хорошо. Технологии искусственного интеллекта постепенно развиваются, помогая решать задачи и проблемы самых разных сфер — от бизнеса до медицины и развлечений. Речь идет об игровых модах — как оказалось, ...

Дайджест свежих материалов из мира фронтенда за последнюю неделю №361 (15 — 21 апреля 2019)

[unable to retrieve full-text content]