Комментарии 120
Белой завистью смотрю на такие проекты, это мне точно не по силам.
Пример для троичной логики — полный сумматор на мультиплексорах (селекторах):

Мне кажется, что на практике конструкция «АЦП-ЦАП» (то есть пара компараторов, управляющая источником тока) будет гораздо более разумной, чем такая конструкция из стандартной логики. И с надежностью все будет нормально, и с потреблением скорее всего не хуже.
Ну или по крайней мере резисторы в истоки транзисторов логических ячеек стоит поставить, чтобы ограничить потребление.
Отсюда главный вопрос: не теряете ли вы это преимущество большим количеством транзисторов на обработку того же количества информации? Ну, скажем, восемь битов несет 256 комбинаций, а пять тритов — 243, достаточно близкий значения. Для NAND двух таких чисел в двоичной системе нужно 32 транзистора не считая входных-выходных буферов. Сколько транзисторов нужно для троичной логики?
Ну и предложение: если будете разрабатывать и заказывать новую топологию, добавьте один аналогичный элемент, но на двоичной логике, чтобы сравнить скорость работы.
Есть ли идеи какие именно элементы будут для троичной логики лучше? Может, электромеханика?
а кстати хоть транзистор и аналоговый сам по себе, но в цифровых системах используется только его «двоичное» свойство — открыт/закрыт
но в цифровых системах используется только его «двоичное» свойство — открыт/закрытТак я про это и спрашиваю — какие должны быть свойства (состояния) у вашего троичного элемента.
Может стоит использовать биполярные транзисторы и соответствующий аналог ТТЛ, ЭСЛ или ИИЛ и сделать ставку на скорость, а не экономичность?
Или действительно подумать над принципиально другими подходами — спинтроника (правда она тоже двоичная), акустоэлектроника, электромеханика (МЭМС), та же оптоэлектроника.
То, что вы привели, можно реализовать и на любой другой электромеханике, можно и без нанотрубок. Кстати, пьезоэлектрики выглядят попроще. Или баллистические системы.
Может быть сейчас будет лучше сделать "сендвич" из бинаризатора на входе (-1:0:1 -> 00:01:10 например), типовой двоичной логики (селектор) и тринаризатора на выходе (00:01:10 -> -1:0:1)?
amartology — насколько управляемы и стабильны в производстве и эксплуатации пороги типичных КМОП транзисторов (уровня 74HC, 74LVC)? Можно-ли на них положиться?
2) Порог транзистора сильно зависит от температуры.
Может быть сейчас будет лучше сделать «сендвич» из бинаризатора на входе (-1:0:1 -> 00:01:10 например), типовой двоичной логики (селектор) и тринаризатора на выходе (00:01:10 -> -1:0:1)?Я бы так и делал. На входе пара компараторов, на выходе источник тока, работающий на резистор. Разброс параметров резисторов можно достаточно легко скомпенсировать схемотехнически. Будет, правда, много потреблять, но я в принципе не вижу никаких вариантов троичной транзисторной логики, которые не потребляют много.
Открытый транзистор почти ничего рассеивает — маленькое сопротивление (эквивалентно обычному проводнику)Это смотря что у него в нагрузке, а то оно чаще эквивалентно не «обычному проводнику», а короткому замыканию между землей и питанием.
в чем смысл подавать на затвор полевого транзистора цифровой схемы ровно половины питания?Так мы троичную цифровую схему сделать хотим или что?
резистивный делитель не устраивает?Подозреваю, что резистивный делитель не устроит скоростью. Но для тестовых целей инвертор с резистивной дегенерацией истоков наверное будет окей.
Точнее, очевидно, что в любой цифровой схеме должно быть несколько стабильных уровней, то есть хорошо бы работать около режимов насыщения.
Пока необходимость половины питания в троичной схеме все еще не очевидна.Окей, какие электрические уровни вы предлагаете для -1,0,1? И как реализовать средний из них?
Ниже упомянул вариант с наличием честного нуля как отдельной линии, которая тоже коммутируется. И проблемы, которые это вызывает, тоже.
В общем, на распространенной элементной базе я не знаю способа реализовать троичную логику хотя бы сравнимую с двоичной.
Но вот использовать сквозной ток как основу работы явно не стоит. При этом теряется и преимущество МОП, и появляются недостатки ТТЛ.
А почему нельзя использовать три транзистора и уровни -,0,+? Их можно комплиментарными сделать. Тогда никаких промежуточных потребляющих состояний нет. Всегда открыт только один из транзисторов.
То есть чтобы подать ПЛЮС достаточно одного транзистора, чтобы подать МИНУС достаточно одного. А чтобы подать НОЛЬ надо четыре минимум.
Мол даже в двоичных «числодробилках» при высоких частотах стоят фигни для коррекции ответов, а при троичной ошибок будет ещё больше. А выигрыш от тритов будет лишь в паре операций, а в остальном камень получится жирней и медленней при тех же условных мощностях в flops. Стоит ли оно того? (на полярных транзисторах)
PS Ваш диванный аналитик :* (уже +5 лет развлекаюсь с FPGA)
PPS Внизу ещё написали почему триты не прижились в кремнии
Учитывая, что транзистор — штука аналоговая,Не совсем так. Всё зависит от того как будет настроена его работа (т. н. режим работы). Транзистор может работать в ключевом режиме: либо открыт до полного насыщения, либо закрыт и отсекает ток.
Это чертовски круто!
Когда читаешь про ручную отрисовку блоков, правила кажутся простыми, но когда начинаешь делать что-то сам хотя бы в KOHCTPYKTOPе, то сходишь с ума от непонимания, как оно работает. А тут своя микроэлектроника в реальном мире. И притом работающая. Аж завидно. Спасибо. :)
Кстати, если не секрет, почём была стоимость 40-чипового заказа? Я попытался найти, но не смог: похоже, они сотрудничают с многими фабриками, но цены на сайте не пишут. И если всё же секрет, то в посте упомянуты несколько тысяч денег за упаковку чиповв в SOIC16 – это были доллары или рубли? :D
это были доллары или рубли? :DОчень вряд ли это были рубли)
Кстати, если не секрет, почём была стоимость 40-чипового заказа?По таким нормам стоит ориентироваться на 500-1000 евро за квадратный миллиметр с минимальным заказом в 5-10 квадратных миллиметров. Плюс упаковка, плюс какие-то еще мелочи.
Примеры цен можно посмотреть на сайте Европрактиса вот тут.
1) они требовали, чтобы я использовал коммерческий софт с верификацией
2) конкретный вафельный завод отказался со мной работать, когда я по их требованию описал, что хочу сделать
а мосис особо вопросов не задавал — автоматическую проверку на плотность металлических слоёв прошёл и ладно…
Я, к сожалению, от этого мира далёк и не могу прикинуть стоимость упаковки чипа даже примерно. Банально не знаю, как это делается. :)
Но, видя бросовую стоимость всяких простых микросхем, мне казалось, что автоматическая припайка проволочек к корпусу и заливка его пластиком не может стоить тысячу рублей за штуку. С другой стороны, это же наукоёмкий высокотехнологичный прототип, к нему не стоит натягивать проекции со стороны отлаженных массовых устройств..
вот как раз упоминаемый там ams отказался со мной работать :)
причём с франзуской конторой-посредником я подписал договор, получил триальную версию таннера (до того как их купил ментор) — её допустимо было использовать наряду со всякими калиберами и спектрами, но когда дошло до подписания NDA с ams они попросили описание чипа — я ответил, что это троичный чип и что его можно просто воспринимать как микс-сигнал на что они ответили нет, мы сейчас не планируем уходить в микс — досвидания :)
хм, On Semi 0.5um там ещё есть — мосис в январе 2020 последний заезд с ними сделал и всё — больше не планирует…
Мне проще — я в штатах давно живу :)
Главный вопрос — а что это может дать в перспективе?
Что пишет Вики:
«В сумме, приблизительно в 2 раза большее увеличение быстродействия...»
Два раза это ж очень много — не все ж алгоритмы параллелятся.
Может нашим эльбрусовцам-байкаловцам эта разработка интересна?
Достаточно много вычислительных задач под которые можно держать отдельный компьютер с компилятором Си/Фортрана и… всё — больше там не нужно ничего. Другой вопрос, что компьютер на базе такого процессора должен быть быстрее чем то, что есть сейчас, а это вопрос десятков лет.
(Была статья - что нам стоит догнать и перегнать Интел habr.com/ru/post/218171/) там была оценка в 30 лет и 350 млрд $.
5k$ на хобби сумма нормальная, но если это может стать чем-то больше чем хобби одного человека — было бы гиперкруто!
P.S. Обновил комменты: «я в штатах давно живу», тогда Байкал-Эльбрус наверное не акутален.
И вот насколько я понимаю, такую схемотехнику до сих пор никто не придумал.

Тут 14 троичных мультиплексоров — если использовать раздутый мультиплексор с защитными зонами, как в статье выше, это будет 46 транзисторов т.е. 644 транзистора — можно взять транзисторы с разными размерами в плечах — в этом случае троичный мультиплексор можно урезать до 30 транзисторов, а выкинув зоны безопасности в надежде, что временные КЗ не сильно повредят транзисторам, до 22 — то получится 308. Есть ещё возможность упростить некоторые мультиплексоры в сумматоре — там где два крайних входа имеют одно и тоже значение — 4 штуки слева внизу — то это уменьшит количество транзисторов примерно до 264 — всё равно в 6 раз больше, чем хотелось бы…
В уравновешенной троичной системе +3 будет представлено как PO, а +2 — как PN, соответственно:
_PO
+
_PN
===
PNN или +9-3-1=+5
Например, как я понимаю, частота работы таких чипов всегда будет ниже, тат как, для 3 состояний сигнал должен быть качественнееВесь высокоскоростной Ethernet работает с амплитудной модуляцией на 3-4-5, а то и на 16 уровней. Ровно для того, чтобы добиться большей скорости передачи двоичных данных за счет того, что каждый импульс передает сразу несколько бит информации. Такж и трит — в нем больше информации, чем в бите, а значит, для отображения/хранения/передачи/обработки информации надо меньше трит, чем бит. Другое дело, что пока нет какой-то подходящей элементной базы, реализовать эти теоретические преимущества непонятно как.
Я бы скорее тут упомянул оптические интерфэйсы
О!
Очень давно меня тоже интересовала троичная логика, про сетунь много слышал и читал. Так что тема для меня очень интересная.
И тут Вы пишите про оптику.
В порядке идеи: всю логику и работу организовать на оптических элементах. В частности, может быть на нелинейной оптике (ниобат лития?).
Интерфейсы с обычными системами могут быть двоичными.
Тогда и частота переключения менее важна.
Если уж почти с нуля все делать, то может быть на оптике?
Попробую поискать в этом направлении, может что интересное и будет.
А так да нужен какой-то базовый элемент для троичной логики как транзистор для двоичной.
Транзистор открыто-закрыто
Для троичной логики нужно открыто-закрыто-открыто но в другую сторону.
Расскажите подробнее про процесс — какой выход годных, тестирует ли фаб кристаллы или просто режет и корпусирует, мол, что выросло то выросло?
В проектировании производство MPW относительно небольшую долю стоимости занимает. Главное — время и САПР для моделирования и верификации. Без DRC-LVS что-то сложнее сотни транзисторов можно отдавать в продакшн только большим любителям русской рулетки.
И похоже я забыл подсоединить его к земле в результате по кристаллу развесились кучи паразитных ёмкостей, съедающих все высокие частоты.
А что принципиально изменится, если подключить филлер к земле?
Обычно скрипты заливки филлеров никуда их не подключают, и тем не менее частоты работы кристалла катастрофически не падают.
я нашёл пакет с открытыми исходными кодами Magic VLSI (есть сборки для Linux и Windows), к которому существуют файлы правил например по техпроцессу CMOS 0.5um
Работу вы, конечно, проделали титаническую. Мне некомфортно работать уже в ICFB 5.1.41 (версия аналогового САПР от Cadence предыдущего поколения) и/или с Assura (их же тул для физической верификации). Только Virtuoso и Calibre, только хардкор.
> Работу вы, конечно, проделали титаническую.
Титаническая работа измеряется в часах — я ради интереса фиксировал потраченное на разработку чипа время и в момент заказа микросхемы у меня оказалось записанным ровно 80 часов (потраченных в свободное от основной работы время в течение месяца).

Интересно, а троичную логику можно использовать для вывода и интерпретации промежуточных квантовых вычислений?

Данная схема имеет вход управления S, который будучи подключенным к земле, промежуточному напряжению или питанию подключает общий сигнал C к контактам N (negative), O (intermediate) или P (positive) соответственноЯ насчитал в вашей схеме 58 транзисторов. Ниже схемы на аналоговых компараторах: на компараторах:
1) повторитель на 20 транзисторов и 1 резистор
2) инвертор на 28 транзисторов и 1 резистор.
Вместо резистора можно опционально сделать активную схему на 8 транзисторов (2ИНЕ, инвертор, два ключа), получится 36 транзисторов на инвертор вместо 58. Плюс есть накладные расходы в виде генератора смещений, но он нужен один на весь чип, так что его не учитываем.
В принципе, на большом питании компараторы можно поменять местами, тогда можно взять более простую схему компаратора, и инвертор тоже в 20 транзисторов уложится.
Заранее извиняюсь за рисунок, редактора схем под рукой не оказалось.


А что такое VG1 и VG2?

Резистор можно сделать внешним, так вы сможете удобно руками настраивать скорость и потребление схемы. А дальше транзистор Q1 у вас один, а транзисторы Q2-Q4-Qn стоят в каждом компараторе.
мне на самом деле компаратора одного типа будет достаточно — две штуки таких с порогом срабатывания 1/3 и порогом срабатывания 2/3 дадут два логических сигнала из которых можно получить сигналы управления тремя ключами, коммутирующими входы N, O и P
хотя буферная схема сама по себе не помешала бы тоже
У нижнего компаратора размах выходного сигнала от нижнего питания до верхнего.
P.S. Если что, не стесняйтесь писать в личку.

Ведь даже у DG403 есть правило break-before-make — там они на железячном уровне гарантируют что переключатель сначала выключит один сигнал, а потом включит другой (у разных производителей это правда по разному реализовано — у кого-то дырка в диапазонах покрываемых напряжений как у меня, а у кого-то чисто временная задержка). Суть в том, что например для реализации троичного инкремента через селектор (функция OPN) вход N надо подключить к промежуточному напряжению, O к питанию, а P к земле — в результате например в момент перехода сигнала S от промежуточного напряжения к напряжению питания ключ на линии O отключится, а ключ на линии P включится (линия N будет оставаться отключенной) и если разбег параметров транзисторов будет неудачный, то может получится так, что ключ на линии P включится чуть раньше, чем отключится ключ на линии O, соответственно возникнет КЗ через 2 замкнутых аналоговых ключа между землей и питанием через общую линию C. Или этим можно пренебречь т.к. сопротивление ключа достаточно чтобы не пробиться напряжением питания при временном переходе через пограничное состояние?
Просто если делать такие «дырки» с использованием компараторов, то придется вводить 4 разных Vref вместо двух — т.е. не 1/3 и 2/3, а скажем 1/5, 2/5, 3/5 и 4/5 увеличивая количество компараторов на каждый селектор с двух до четырёх…
Там, где транзисторы с пометкой х2 в нагрузке дифпары — это оно, соотношение размеров транзисторов в нагрузке как раз регулирует ширину гистерезиса, вместо х2 можно сделать х3 или х4.



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

Не надо переусложнять схему без нужды, лучше сконцентрируйтесь на действительно важных вещах.
И побойтесь бога, сделайте резистор R1 100 кОм хотя бы, у вас все сгорит к чертям на таком огромном опорном токе. Точнее даже не так: посмотрите задержки срабатывания с резистором 1, 10, 100 и 1000 кОм и выберите самый большой номинал, который вас устроит по быстродействию вентиля.
тогда если не заморачиваться с зонами безопасности, то простейший вариант в моей «парадигме» будет вот этот — на 24 транзистора:

Если ставить на входе вместо NAND/NOR инверторы с разными размерами транзисторов в плечах (это тоже работает — проверено), то тогда количество транзисторов будет 20. Поможет ли размещение там компараторов снизить энергопотребление этой схемы? Компараторы ведь всегда будут забирать ток, а инвертор будет «течь» только если на него подано промежуточное напряжение.

Два кондёра на 5pF воткнул, чтобы SPICE не зависал…
Что касается потребления компараторов, то чем выше частота работы схемы — тем больше будет потреблять цифровой вариант (то, что называется динамическое потребление), а у компаратора с этим попроще.
В принципе, можете проинтегрировать ток потребления на большом количестве периодов и сравнить разные варианты. Только не забудьте о том, что для цифровой схемы потребление в момент переключения сильно зависит от напряжения питания, а у компаратора можно удобно подстраивать ток резистором.
я правильно понимаю, что этот навороченный компаратор можно не переворачивать, как первый, и он может работать в любом диапазоне сравниваемых напряжений? SPICE виснет если порог ставить ниже 1.5В, а всё что выше — работает нормально
Если надо немного ниже, то можно сделать транзисторы шире, если сильно ниже — то только p-канальная дифпара поможет. Но она, в свою очередь, не будет работать около питания.
Там, где нужно, чтобы и вход, и выход имели полный размах, делают схемы, в которых обе дифпары стоят параллельно, но вам я бы не рекомендовал таким колдунством заниматься. Я поэтому сразу два компаратора нарисовал, один для низких напряжений, второй для высоких. Навороченный тоже можно отзеркалить, если вы хотите на низких питаниях работать.
Мне не нравится голосование. А почему там нет четверичных или окта?

www.righto.com/2018/09/two-bits-per-transistor-high-density.html
но вычисления в четверичной системе делать бессмысленно ибо в двоичной всё равно будет компактнее…
RU2281605 ЛОГИЧЕСКОЕ УСТРОЙСТВО «И» 2006
RU2468510 ТРОИЧНЫЙ К-МОП-С ЛОГИЧЕСКИЙ ЭЛЕМЕНТ «ИЛИ-НЕ» 2012
Виноградов Ю. А. К синтезу схем в инженерных базисах 2019
github.com/LNIS-Projects/TIGFET-10nm-PDK
Я полный профан в этой сфере, но мне кажется, что у троичной логики есть своё собственное предназначение. Двоичная логика максимально защищена от внешних полей потому что, импульс есть или его нет. Но если взять троичную меньше-больше-такой же как предыдущий(0) то очевидно, что, на величину импульса могут повлиять внешние поля и исказить его в ту или иную сторону. Но если сравнить компьютеры с людьми и допустить, что один компьютер хочет передать другому некое ощущение... Мы, как бы не заинтересованы в том чтобы он не делал ошибок, быстро вычислял и всё такое...
Допустим эти два компьютера ничего не знают о напряжении и первый передает два сигнала, первый импульс и второй больше чем первый. Принимающий запоминает первый и располагает второй сигнал справа, так как он больше. Последующие сигналы он будет располагать справа, слева или между уже имеющимися , в зависимости от величины импульса. Так он создаёт свою собственную шкалу восприятия напряжения...можно сказать аналоговою. Если импульс такой же как предыдущий, то ничего не происходит, как и у людей продолжительность ощущения ровна продолжительности изменения. Таким образом у каждого компьютера формируется собственная шкала оценки напряжения. У одного компьютера может формироваться шкала с шагом 1 милливольт а у другого шаг 1,5 вольт. Как у людей , простой человек делит сутки на 4 части по степени освещённости: утро-день-вечер-ночь, а фотограф делит на сотни частей. Фотограф имеет дело с освещённостью и использует более плотную шкалу. Таким образом компьютеры станут отличаться друг от друга как индивидуальности с своими интересами и способностями в разных областях. Вероятно на одной шкале, можно повестить много восприятий если они пропорциональны прямо, обратно или через какую-то функцию. Это конечно мои фантазии, но если подумать, то такой компьютер практически невозможно взломать, так как вычислить в обратном порядке его действия невозможно, можно обмануть конечно как и людей... но на более высоких уровнях обработки результатов наблюдений. Если собрать 10 человек и сказать им "Слон" , то у каждого возникнет в воображении свой уникальный слон, также не исключено, что чей-то слон будет больше похож на крокодила, но это уже относится к обработке и воспроизведению сигналов...
Конечно это глупости, но вдруг в этом, что-то есть...
Разработка и производство троичных микросхем на обычном техпроцессе CMOS