Троичные элементы - работа над ошибками

топ 100 блогов nabbla105.11.2025 Вот что называется "заблудился в ТРЁХ соснах" - это уже мой четвёртый заход!
Первый - сделать троичным инвертор К561ЛН2 (см. раз, два)
Второй - то же самое, но на К176ЛП1, поскольку подобного "набора транзисторов" для серии К561 не существует, а характеристики у них другие, они более "тугие" (выше пороги открывания), см. Троичные И-НЕ - первый успех!
Третий - повторить то же самое на К176ЛП1, но в этот раз искусственно повысить пороги открывания транзисторов подачей "отрицательных" смещений на подложки, чтобы получить "два типа" транзисторов - более чувствительные и более тугие, так надо для реализации многих логических элементов. См. раз, два, три.

Не могу сказать, что это "бесплодные усилия" - каждый заход давал свои результаты. На третьем у нас уже появилась вся необходимая база, чтобы построить троичные вычислители, но мне казалось, что можно сделать и получше. Закончить игры с напряжением подложки, правильно подобрать напряжения питания, достичь разных порогов открывания тупо за счёт двух разных напряжений питания!

Троичные элементы - работа над ошибками


И похоже, получается неплохо. Сейчас пока сам не понял, вот подпишу картинки, нарисую там прямые линии - и что-то соображу... (UPD. да, что-то сообразил под конец. Так что не переживайте, если ничего не понятно. Мне тоже не было понятно, пока писал. Вот как все необходимые элементы у меня заработают - попробую написать хорошее и понятное объяснение.)


Делай раз - правильные напряжения
Поначалу я надолго застрял на "парадигме", что центральный логический уровень - это ровно половина напряжения питания. Или, если его самого обозначить за ноль, то "положительное" и "отрицательное" напряжения питания я принимал одинаковыми.

На самом деле, я чуть поигрался с этим в самом начале, поставил переменный резистор и крутил его, но тогда не понял, есть ли в этом какая-то польза. Мне показалось, что вреда больше.

Но при ближайшем рассмотрении выяснилось: у n-канальных транзисторов из К176ЛП1 порог открывания 1,6 вольта (а выход на границу логических уровней - при 2,05 вольтах между затвором и истоком), тогда как у p-канальных - 2,1 вольт (выход на границу уровней - при 2,45 В).

Хорошая, стабильная работа будет происходить только когда на центральном логическом уровне (НЕ ЗНАЮ, он же 0, если уравновешенная троичная система) оба транзистора закрыты, и резистор притягивает нас ровно к нулю. После всех ковыряний я пришёл к выводу: мы должны расставить переходы между уровнями симметрично относительно нуля! Это сказывается хотя бы на генерале, составленном из двух инверторов. При симметричных уровнях границы становятся очень резкими, по сути, вместо квадратичной характеристики мы получаем x4. А вот если штатный уровень "+1" (ИСТИНА) будет на 0,4 вольта выше, чем "-1" (ЛОЖЬ) по абсолютной величине, это вообще не важно!

В исследовательских целях свою примитивную схему питания чуть модернизировал, введя туда диод, сам не знаю, это Шоттки или германиевый, просто у него было сколько-нибудь правильное падение напряжение при токе 20 мА:

Троичные элементы - работа над ошибками


При токе 20 мА на диоде падает 0,308 вольта. Увеличивается до 0,322 В при росте тока до 25 мА, уменьшается до 0,224 В на 3 мА. В районе 20 мА динамическое сопротивление 2,8 Ом, при "статическом" в 15 Ом. Ну, что-то есть.

Идея - что я смогу варьировать напряжение одним источником питания, при этом распределяться оно будет правильно, "положительное" напряжение всё время будет примерно на 0,4 вольта выше, чтобы компенсировать более тугие p-канальные транзисторы.

На деле получается что-то такое:
1,404 - 1,798 (разность 0,394),
1,519 - 1,913 (разность 0,394),
1,597 - 2,00 (разность 0,403, насколько хватает точности мультиметра, его пришлось поставить в "20 вольт"),
1,702 - 2,11 (разность 0,408),


И в обратную сторону:
1,298 - 1,681 (разность 0,383),
1,192 - 1,566 (разность 0,374),
1,105 - 1,470 (разность 0,365),
1,000 - 1,356 (разность 0,356).


Не идеально, но должно подойти. Если бы вместо диода я поставил просто резистор 15 Ом, получил бы на тех же "суммарных" напряжениях от 2,356 до 3,812 В разброс разности 0,287 .. 0,465 вольта. Всё-таки стабилизировали в 3,4 раза.

И дальше я полагал, что наиболее подходящие напряжения - это 1,37 вольта "нижнее" и 1,77 вольта "верхнее". В таком случае границы логических уровней пройдут по напряжениям +0,68 вольта и -0,68 вольта. Т.е если на входе у нас появляется помеха плюс-минус 0,68 вольта, то центральный логический уровень не собьётся. Логический уровень "ЛОЖЬ", -1,37 вольта, можно будет пошевелить вверх-вниз на 0,69 вольта, тоже ничего не собьётся. Наконец, логический уровень "ИСТИНА" - наиболее устойчивый, его можно шевелить вверх-вниз на 1,09 вольта!

В такой ситуации центральный логический уровень практически "в два раза шире", это может выглядеть не самым красивым образом на выходных характеристиках (как выход зависит от входа), но с точки зрения помехоустойчивости это вроде как оптимум.

Поэтому именно под эти напряжения я подобрал резисторы, но ещё чтобы при некоторой вариации вверх-вниз соотношения сколько-нибудь сохранялись.

Это у меня "Троице-Сергиева лаборатория троичных вычислителей", пока не оборудованная в должной степени, новый осциллограф ещё не привёз.
Троичные элементы - работа над ошибками


Про ремонт лабораторного источника питания я писал. И про ремонт китайского осциллографа.

Правда, сейчас этот китаец опять умудряется на ровном месте поймать фазовый сдвиг на входах X и Y, из-за чего рисует гистерезис, где его чисто теоретически быть не может! Так что в кои-то веки применил режим XY на советском, вот это зверь, работает и всё тут! Чуть при разогреве луч уплывает, но гораздо меньше, чем на китайском, там иногда невооружённым глазом видно, как пополз.

Особенность этих осциллографов - настроить масштаб по оси X, когда развёртка внешняя - НЕЛЬЗЯ. Так что "калибровать" будем уже сами осциллограммы. Вот я подал один и тот же сигнал на оба входа. На вход X напрямую, на вход Y (обычный вход) - с делителем 1:10, и 0,05 В/клетку.
Троичные элементы - работа над ошибками


Для наглядности подпишем:
Троичные элементы - работа над ошибками


Более-менее. 3 клетки по горизонтали - это 1 вольт, могло быть и хуже.

Делай два - ИНВЕРТОР, он же АНТИ-ГЕНЕРАЛ. Схема самая первая, подложки соединены с истоками, на выходе резистор 10 кОм. Начнём с выбранных нами значений напряжения:
Троичные элементы - работа над ошибками


Да, и правда центральный участок симметричен. В чём-то такая развёртка даже удобнее: мы же хотели получить порог в 0,68 вольта, это фактически 2 клетки по горизонтали! Если мы отклонились от нуля на столько, то, как видно, выход инвертора даст 0,5..0,7 вольта, т.е то самое граничное значение. Чуть меньше 0,68 - мы точно останемся в нуле. Чуть больше - "выскочим наружу"! Пока всё правильно!

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

Так что давайте всё-таки изобразим инвертор на разных напряжениях. Можно всё это дело промотать...

Чуть поднимаем, до "понятных" 1,4 вольта внизу и 1,8 вверху (на деле вышло 1,404 и 1,798), и нарисуем прямую y=-x, в правильном масштабе (3 клетки на вольт по горизонтали, 2 клетки по вертикали):
Троичные элементы - работа над ошибками


Граничные напряжения: -0,6 и +0,7 вольта, неплохо.

Для сравнения покажем, как работал инвертор со схожим питающим напряжением, но при симметричном питании:
Троичные элементы - работа над ошибками


Правда, это не совсем честно, тут элемент И-НЕ, когда на один из входов подана ИСТИНА. Из-за того, что в одной ветви транзисторы последовательно, а в другой параллельно - возникает дополнительная асимметрия. Но это единственное, что я сфотографировал тогда в плане инверторов...

Ещё повышаем напряжение на 0,2 вольта:
Троичные элементы - работа над ошибками


Граничные напряжения: по 0,5 вольта. Это вполне закономерно: при росте питающих напряжений центральный уровень "истончается". Например, нижнему транзистору нужен 1,6 вольт, чтобы начать открываться, а нижнее питающее уже 1,5 вольта. Т.е подай на вход +0,1 вольт - и уже открываться начнёт, а ещё через 0,45 вольта откроется прилично, где-то до "границы логических уровней". Это мы и наблюдаем.

Собственно, значения подтягивающих резисторов здесь совсем не так важны, как мне казалось поначалу! Границы работоспособности КМОП в качестве троичных элементов довольно строго очерчены порогами открывания транзисторов.

Поднимем ещё на 0,2 вольта:
Троичные элементы - работа над ошибками


Граничные напряжения: плюс-минус 0,33 вольта. Пожалуй, схлопывание идёт чуточку быстрее, чем следует из самой простой теории с "постоянным пороговым напряжением". Всё-таки ток стока зависит не только от напряжения между завтором и истоком, но и от напряжения сток-исток. Когда оно выше, ток тоже выше, некий "универсальный эффект", который в чуть в разных вариациях есть и в лампах (даже пентодах), и в биполярниках (эффект Эрли истончения базы), и в полевиках всех типов! Но симметрия сохраняется, как и работоспособность. Это мы сейчас "на территории ТТЛ", где лог "0" соответствует 0..0,8 вольтам. Даже в какой-то степени у нас получше: в ТТЛ заведомо известно, что 0 вольт выходной элемент не выдаст, ибо входы ТТЛ его заметно подгрузят.

Ещё поднимем на 0,2 вольта:
Троичные элементы - работа над ошибками


Где-то на грани, по этой фотографии не берусь указать пороги, и будет ли вообще центральный уровень устойчивый. Вроде бы устойчивая позиция всё-таки есть, наклон у самого нуля меньше единицы. Но в таком режиме работать совсем не хочется...

И теперь пойдём в обратную сторону, понижения напряжения:
Троичные элементы - работа над ошибками


Граничные напряжения: +0,75 В и -0,9 В, около того. Да, тоже понятная тенденция: с понижением напряжения центральный уровень безобразно расползается, транзисторам вообще не хватает напряжения, чтобы нормально открыться. Две точки пересечения внизу выглядят очень подозрительно, хотя на деле всё совсем не так страшно! Потому я характеристики инверторов ранее не изучал - их гораздо сложнее расшифровать! Тут кажется, что нижний уровень практически пропал. Но это не так. Допустим, мы на вход инвертора подали 1 вольт, это ИСТИНА. Он выдал -1 вольт, это ЛОЖЬ. Если теперь подать этот -1 вольт на следующий инвертор, он выдаст +1,4 вольта, как минимум. А если их подать на третий инвертор, он выдаст минимально возможные -1,3 вольта питающего.

Так что двинемся ещё дальше, снизим ещё на 0,2 вольта:
Троичные элементы - работа над ошибками


По-прежнему в районе нуля мы видем хорошую симметрию, график "отходит от нуля" примерно на одном и том же смещении, что вверх, что вниз. Но отсутствие пересечений справа очень подозрительно. Что ж, дождёмся генералов. А пока ещё две осциллограммы "без комментариев":
Троичные элементы - работа над ошибками


Троичные элементы - работа над ошибками


Делай три: ГЕНЕРАЛ
Соединяем друг за дружкой два инвертора и смотрим, что получается. Наши троичные элементы будут рабоспособны, если этот самый "генерал" может хранить один трит информации, когда мы соединим его вход и выход. Вот здесь изучение пересечений с прямой y=x имеет чёткий физический смысл. Пересечения - это точки равновесия, но часть из них - устойчивые, часть нет. Если кривая имеет меньшую крутизну, чем прямая y=x, то если по какой-то причине напряжение на входе возрастёт, скажем, на 10 мВ, то на выходе оно возрастёт не так сильно, например всего на 5 мВ. Но теперь на вход мы подадим не исходное U0+10 мВ, а уже напряжение с выхода, U0+5 мВ, а результатом станет ещё меньшее возрастание, скажем, на 2,5 мВ. Поэтому пройдёт совсем немного времени, и мы вернёмся к U0. Причём тут не важно, смотреть ли "дискретные шаги" (например, мы собрали цепочку из буферов/повторителей/генералов и смотрим, что там на выходе последнего, когда мы варьируем напряжение на входе самого первого) или "непрерывные" (соединили вход и выход одного-единственного).

А если наклон кривой выше, чем у прямой y=x, значит, равновесие неустойчивое. Именно эти точки неустойчивого равновесия изображают нам границы логических уровней.

Итак, начнём, с самого низкого напряжения:
Троичные элементы - работа над ошибками


Душераздирающее зрелище, устойчивое равновесие всего одно, это ноль. Работать это не будет. Для сравнения, когда мы делали повторитель с симметричным питанием и нагрузочным резистором те же 10 кОм, мы ниже 2,8 вольт вообще не спускались:
Троичные элементы - работа над ошибками


И на 2,8 вольтах оно ещё не работало. Ладно, повышаем на 0,2 вольта, примерно до 2,6 вольт (сейчас мы смотрели на 2,4):
Троичные элементы - работа над ошибками
general1_1.jpg © nabbla.iMGSRC.RU


Не работало раньше, не работает сейчас, да и не должно. Так что всё нормально. Повышаем ещё на 0,2, примерно до 2,8 вольт:
Троичные элементы - работа над ошибками


То же самое: было совсем "на краю" тогда, и "на краю" сейчас. Сложно сравнивать - чуть разный масштаб графиков. Да и не сильно нужно.

Поднимаем ещё на 0,2 вольта, примерно до 3 вольт:
Троичные элементы - работа над ошибками


Определённо рабочий вариант! Центральный логический уровень простирается на плюс-минус 0,8 вольта. Самый обиженный - нижний уровень (ЛОЖЬ, или -1), тут всего 0,4 вольта.

Сравним с работой при симметричном питании 3 вольта:
Троичные элементы - работа над ошибками

Тут центральный уровень ушёл ещё дальше "в минус", на целый вольт, отожрав ещё больше от ЛЖИ, так что там осталось от силы 0,25 вольт. Так что сейчас у нас помехоустойчивость получше.

Поднимаем ещё на 0,2 вольта, примерно до 3,2 вольт:
Троичные элементы - работа над ошибками


Граничные напряжения: +0,68 вольта и -0,66 вольта, очень близко к тому, что мы хотели! Так у нас одинаковая помехоустойчивость по нижнему (ЛОЖЬ) и центральному (НЕ ЗНАЮ) логическому уровню, и чуть выше - по верхнему (ИСТИНА).

Сравним с вариантом симметричного питания:
Троичные элементы - работа над ошибками


Тогда (троичные И-НЕ - первый успех!) мы назвали это почти идеалом. Там центральный уровень простирался от -0,9 до 0,6 вольта. Вот именно помехоустойчивость центрального уровня сейчас (при несимметричном питании, исходя из порогов транзисторов) ВЫШЕ, хотя и не могу сказать, что существенно.

Повышаем ещё на 0,2 вольта:
Троичные элементы - работа над ошибками


Масштаб пришлось уменьшить сразу по обеим осям.
Ухудшается устойчивость центрального уровня, просела где-то до 0,4 вольт. Сравниваем со старым вариантом:

Троичные элементы - работа над ошибками

Он, пожалуй, и получше будет, слегка.

Поднимаем напряжение ещё на 0,2 вольта:
Троичные элементы - работа над ошибками


Центральный уровень истончился, довольно симметрично, до плюс-минус 0,3 вольт. Смотрим, что было раньше при 3,6 вольтах:
Троичные элементы - работа над ошибками


Те же 0,3 вольта, в одну из сторон.

И ещё прибавляем 0,2 вольта, до 3,8 вольт:
Троичные элементы - работа над ошибками


Граница работы, так уже и не скажешь, есть ли устойчивый центральный уровень. Старое исполнение:
Троичные элементы - работа над ошибками

То же самое по функциональности. Сейчас у нас симметричнее по горизонтали, но эта симметрия нам никак не помогает.

Предварительные результаты: что в лоб, что по лбу! Хуже не стало - и на том спасибо. Есть ещё небольшое пространство для манёвра, но, в принципе, это "не горит".

Делай четыре: ДЕВУШКА
Собственно, в прошлый раз мы столкнулись с проблемой - верхний транзистор оказался очень "тугим" в плане управления подложкой, его порог открывания удалось сдвинуть от силы на 0,6 вольта, я честно попытался синтезировать элементы "девушка" и "дипломат" с такими вводными, и в общем-то, они рабочие, но как-то всё не аккуратненько. Логический уровень, который должен получиться при подаче "нуля", получается слишком низким - вроде бы и допустимо (особенно учитывая, что мы как раз-таки предельно утончили ноль, так что шаг вправо - ИСТИНА, шаг влево - ЛОЖЬ), работать будет, но прежде чем штамповать это всё десятками (чтобы собрать что-то похожее на вычислитель), хотелось ещё немного поковыряться.

И вообще вся эта эпопея с подложками довольно печальна. В К176ЛП1 два транзистора имеют истоки соединённые с подложкой сразу "внутри". Если мы подаём большие "отрицательные" смещения на эти подложки, то два транзистора из 6 придётся оставить "висящими в воздухе" - полезно их применить вряд ли получится. Впридачу, если пойти по этому пути, у нас получится довольно высокое питающее напряжение (около 6 вольт), и тогда возникнут проблемы с согласованием этого дела с К561ЛН2, а мне и её хотелось бы применить в триггерах.

И была одна идея, как всё это реализовать гораздо проще. Заканчиваем игры с подложками - используем их как обычно. Но когда нам нужны более "чувствительные" транзисторы - мы просто эту ветвь запитываем от более высокого напряжения. Ведь транзистор "воспринимает" разность потенциалов между затвором и истоком. Если исток "убежал" подальше от нуля, то уже и нуля может хватить, чтоб транзистор открылся.

Так что собрал самую примитивную схему "девушки":
Троичные элементы - работа над ошибками


rx - резистор, которым я пока что устанавливаю правильное соотношение напряжений. Напомню, эта вся эпопея с резисторами и диодом Шоттки (а может и не Шоттки) - только для эксперимента. Так-то в идеале там будет набор источников питания (а вообще, при возможности "выпекать" транзисторы с правильными характеристиками - питание будет ровно одно). Может, и пора чего-нибудь собрать/прикупить, чтобы несколько каналов точно задавать.

Если его выставить нулевым - верхняя цепочка попросту не откроется, ничего интересного.

Вот поставили 39 Ом.
Троичные элементы - работа над ошибками
girl39.jpg © nabbla.iMGSRC.RU


Сетка для "крестиков-ноликов" - наши логические пороги. До тех пор, пока у нас одни генералы, и если они все одинаковые, у нас попросту нет "неопределённых уровней", как, например, в ТТЛ, где 0..0,8 - это лог "0", а от 2 и вверх - это лог "1", а МЕЖДУ НИМИ - НЕОПРЕДЕЛЁННОСТЬ, т.е никто не гарантирует, как логические элементы отреагируют на подобный уровень.

Но каждый логический элемент начнёт из этой идеальной сетки "откусывать" своё, поскольку, к примеру, "девушка" должна бы вписать свою кривую ровно в 3 клетки из 9, что в реальности вряд ли возможно. Поэтому те места, где логический элемент работает "с ошибкой" - мы начнём помечать неопределёнными. Это в дальнейшем скорректирует наши представления о помехоустойчивости и, возможно, о скорости работы: мы имеем право говорить, что элемент переключился, когда его выход пересёк "неопределённость" и лёг на один из логических уровней.

Впрочем, это я забегаю немного вперёд. Потому как при резисторе 39 Ом элемент работает принципиально неправильно, на месте лог "1" (ДА) стабильно выдавая НЕ ЗНАЮ.

Так что надо повышать. Попробуем последовательно припаять 20 Ом:
Троичные элементы - работа над ошибками


Поначалу я думал подобрать напряжение так, чтобы при нуле на входе получилось "стандартное" питающее напряжение. Т.е если инверторы и генералы работают от -1,37 и +1,77, то пусть "девушка" ровно +1,77 и выдаст. Здесь оно ровно так и есть, но если подумать, это не особенно важно. Как минимум, если бы на выходе было ещё на 0,6 вольта выше, ещё ни один защитный диод не откроется, и никому плохо не будет от такого превышения. Вот если напряжение повысить ещё сильнее - тогда ещё есть на что жаловаться, на бесполезные сквозные токи в "стандартный" плюс питания. Тогда ещё придётся источник питания модифицировать, чтобы он не только мог выдавать напряжение, но и чтоб смог сожрать лишнее, если против его воли напряжение почему-то поднимается!

Важнее, видимо, провести кривую так, чтобы она по-минимуму угодила на "неправильные зоны":
Троичные элементы - работа над ошибками


Т.е когда мы подаём НЕ ЗНАЮ (но на самой границе), мы согласно "логике девушки" должны получить ИСТИНА, а на деле получаем всё то же НЕ ЗНАЮ. Это вынуждает нас снизить допустимые границы НЕ ЗНАЮ, вместо -0,68..+0,68 это будет примерно -0,5..+0,5. Кроме того, придётся снизить допустимые границы ИСТИНЫ: раньше это было +0,68..+1,77, но теперь, чтобы точно все элементы (включая нашу "девушку") отработали правильно, нужно обозначить их: +0,77..+1,77. А вот ЛОЖЬ осталась без коррекций.

В целом, получается неплохо.

Попробуем ещё 39 Ом + 39 Ом. В действительности, это была вторая попытка, увидел "перебор" и стал методом "деления пополам" ставить 20 Ом - и случайно "попал". Но чего добру пропадать:
Троичные элементы - работа над ошибками


Тоже, как ни странно, не так уж и плохо! В этот раз не трогаем уровень НЕ ЗНАЮ (в нём всё правильно), но вводим неопределённость в ЛОЖЬ и ИСТИНУ, где они на стыке с НЕ ЗНАЮ. Разве что теперь максимальное напряжение, которое будет на выходе: 2,6 вольта, при "стандартном" (для генералов и инверторов) в 1,77 вольта, т.е сквозной ток пойдёт. Совсем небольшой, и всё же...


На повестке дня - посмотреть, появляются ли "зоны неопределённости" у обычного (симметричного) троичного инвертора, и если да, то где они больше - при симметричном питании или со сдвигом, как пробовали сейчас. А ещё подобрать напряжение для "девушки", после чего, наконец, заняться D-триггером, срабатывающим по фронту.

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

Предыдущие записи блогера :
Архив записей в блогах:
фасады, до которых у меня с весны руки не доходили. чтоб их отмыть обычно надо было сначала неделю в качалку ходить. помимо стандартных кухонных загрязнений на них еще и коты постоянно лапами становились и оно все вечно в их следах. я перепробовала стопицот всяких очистительных фигней. ...
Поскольку я собираюсь все-таки сделать нормальный заглавный пост журнала, как у всех вменяемых людей... и разместить в нем всю вступительную информацию, включая нужные и самые интересные ссылки и тд......то периодически, по случаю, я буду писать ...
... на фронте попросту исчез. Ни среди погибших, ни среди пленных. Исчез. Пропал без вести. Для наследников — никаких юридический последствий,  у пропавшего не было на руках повестки, нет доказательств пребывания на фронте. Подкатили под цех автобус, рекрутов по списку огласили, они ...
Мем жабогадюкинг он глубже чем кажется. Гадюка — убить может ващет. А жаба просто мерзкая. Ворюга и кровопийца типа. Но ворюга вполне может стать кровопийцей, а вот жаба гадюкой никак. Так что жабяра мне милее, чем гадюка. Ибо настоящий исследователь не должен гнушаться разбирания в ...
О «Смутном времени» – и князе Пожарском Продолжаем хроники «Смутного времени»… согласно источникам, 1 ноября 1612 года ополчение Минина-Пожарского выбило поляков из Китай-города. Как мы знаем, после этого ненавистные оккупанты затворятся в Кремле и продолжат есть друг друга ...