Разработка и производство троичных микросхем на обычном техпроцессе CMOS



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



    Свою первую троичную микросхему (один и тот же кристалл был упакован в 3 разных размера — DIP40, DIP28 и SOIC16) я разработал и заказал в 2015 году. На сегодняшний день это был мой первый и последний опыт подобного рода, однако есть желание и силы попробовать ещё раз — с учётом накопленного опыта и с прицелом на реальную полезность как например троичная программируемая логика и/или троичный микроконтроллер — что-то, что сразу же можно было бы использовать.

    А теперь о том как собственно я это сделал и что из этого получилось. Моя троичная эпопея началась в конце 2004 года, когда на моём форуме любителей ретрокомпьютеров и самодельной электроники nedoPC начались обсуждения уравновешенной троичной системы счисления и возможности постройки новых компьютеров на её основе. Тогда форумчане стали искать материалы на данную тему в сети и многие к своему удивлению узнали, что троичные компьютеры разрабатывались уже очень давно и даже выпускались серийно — в частности троичная ЭВМ «Сетунь», выпускавшаяся с 1959 года, была спроектирована Брусенцовым Николаем Петровичем и группой единомышленников в вычислительном центре МГУ и была достаточно широко распространена по стране.

    Важно понимать, что под троичной системой счисления мы в первую очередь подразумеваем «уравновешенную» троичность (balanced ternary), где используются три состояния -1,0,+1 (а вовсе не 0,1,2 как многие могли бы подумать). И вот мы на форуме начали пробовать разнообразные варианты построения троичных элементов из доступных компонентов — мы попробовали компараторы (с диодами):



    биполярные транзисторы (со стабилитронами):



    оптопары (с транзисторами):



    и наконец аналоговые ключи:



    по пути у меня получались некоторые гибриды — например компараторы, диоды и КМОП-ключи:



    или биполярные транзисторы, оптопары и КМОП-ключи:



    ( и в 2011 году я даже выкладывал видео работы полного троичного сумматора, построенного на таких гибридах :)

    Но по простоте (2 микросхемы, 4 конденсатора, гребёнка контактов) и скорости работы (до 2.5 МГц) схема на DG403 превзошла все другие варианты — в ноябре 2010 года я создал TRIMUX — сдвоенный троичный селектор (мультиплексор/демультиплексор):



    Впоследствии haqreu сделал свою версию этой платки на компонентах поверхностного монтажа и начал строить на них троичный компьютер TRIADOR (архитектура которого также родилась в обсуждениях на форуме nedoPC) — подробнее см. тут.

    Так вот — к 2015 году у меня сложилось устойчивая убеждённость, что основой троичной схемотехники должен стать троичный селектор, на котором можно построить ВСЁ. Но чтобы получить что-то более менее полезное нужны сотни троичных селекторов. Паять сотни тримуксов не хотелось, а хотелось сделать собственную троичную микросхему — но как? FPGA не метод — там внутри всё двоичное (представлять троичный сигнал парой двоичных скучно и неинтресно). Если делать реальную микросхему, то из доступного есть только обычный техпроцесс CMOS на котором в последние несколько десятилетий делается практически всё (меняются лишь размеры транзисторов — они становятся всё меньше и меньше):



    Покупать коммерческий продукт разработки микросхем было нереально (очень дорого), поэтому я нашёл пакет с открытыми исходными кодами Magic VLSI (есть сборки для Linux и Windows), к которому существуют файлы правил например по техпроцессу CMOS 0.5um, на котором в то время принимала заказы американская фирма MOSIS, работающая на базе Университета Южной Калифорнии, и я сориентировался на них, создав официальный бизнес в США т.к. MOSIS с частными лицами не работает (на самом деле я пробовал ещё выйти на одну европейскую фирму, которая также собирает разные дизайны на одну кремниевую пластинку, но они в конце-концов отказались со мной работать).

    Для экспериментов я для начала взял бесплатный симулятор LTspiceIV (это Windows программа, которая замечательно работает в Linux из-под Wine). И начал строить там обычные (двоичные) CMOS схемы и проверять их на SPICE-моделях реальных PMOS и NMOS транзисторов (такие модели гуляют по интернету и часто могут быть найдены в онлайн-методичках по VLSI курсам американских университетов):





    Я обратил внимание, что в зависимости от того как подключаются входы логического вентиля, порог его срабатывания сдвигается:



    Получается, что если взять 3-входовые NAND блоки (у которых порог срабатывания мог сдвигаться вправо) и 3-входовые NOR блоки (у которых порог срабатывания мог сдвигаться влево) и определённым образом подключить их входы к земле либо питанию, можно получить пороги срабатывания разнесённые так, чтобы детектировать промежуточное напряжение на входе — далее получив обычный логический сигнал мы можем подать его (и его инверсию) на CMOS-ключ, способный включать или выключать идущий через него аналоговый сигнал (причём этот ключ работает в обе стороны):



    В итоге у меня получилась вот такая схема, имеющая несколько порогов срабатывания:



    Данная схема имеет вход управления S, который будучи подключенным к земле, промежуточному напряжению или питанию подключает общий сигнал C к контактам N (negative), O (intermediate) или P (positive) соответственно — в данном случае мы как бы сигнальным нулём считаем промежуточное напряжение, соответственно земля микросхемы это -2.5В, а питание это +2.5В. По ходу рабочей области есть 2 дырки, делающие невозможным случайное КЗ если соседние ключи вдруг одновременно включаться на границе срабатывания активных зон (ведь входы троичного селектора могут быть подключены к земле либо непосредственно к питанию) т.к. эти границы разведены «дырками»:



    Воспользовавшись замечательными видео обучалками Magic (тут и тут) я приступил к рисованию транзисторов — чтобы порог срабатывания был ровно посередине размер верхнего транзистора (PMOS) должен быть примерно в 2 раза больше нижнего транзистора (NMOS):



    Magic позволяет сохранять нарисованное в библиотеку и затем разрешает создавать из сохранённых библиотечных компонентов более сложные схемы, соединяя блоки слоями металлизации (которых в этом техпроцессе было 3):



    Правила техпроцесса позволяют вытаскивать SPICE-модель всей схемы целиком и далее эту модель можно симулировать в ngspice (SPICE симулятор с открытыми исходными кодами, присутствующий например среди стандартных пакетов Debian Linux).

    В процессе работы над своей библиотекой мне удалось найти заинтересованную группу людей, состоящую из граждан разных государств, которая согласилась оплатить половину производства (минимальная партия это 40 кристаллов) в обмен на помощь с некоторыми ternary и quaternary схемами — в результате верхняя половина кристалла была занята некими вещами, о которых я говорить пожалуй не вправе, а нижняя имела в себе модуль для выборочного тестирования 16 базовых схем (слева) и собственно троичный селектор (справа):



    Всего в этом дизайне было порядка 1500 транзисторов, расположенных на кристалле 2.2x2.2мм с 40 контактными площадками (по 10 на каждой из сторон) размером 100х100um, и все транзисторы, площадки и сигналы были нарисованы вручную мною с нуля и я, конечно же, не упустил возможности написать свой псевдоним на кристалле под тем самым троичным селектором с указанием года :)



    Ведь всегда приятно увидеть собственное имя под «мелкоскопом», представив себя эдаким Левшой, подковавшем блоху ;)



    Сдав дизайн в производство в июне 2015, я получил готовые кремниевые кристаллы и 8 упакованных в DIP40 микросхем только в октябре:



    Убедившись, что в целом, микросхема работает, я доупаковал оставшиеся кремниевые кристаллы (послав их обратно) в корпуса DIP28 (чтобы отдать ребятам их часть) и SOIC16 где наружу торчат только сигналы троичного селектора (это стоило ещё несколько тыщ):



    Для детального тестирования я заказал платку для этих соиков, припаяв туда одну из микросхем:



    и снял осциллограммы цифровым осциллографом-приставкой к компьютеру — селектор подключенный в режиме троичного буфера:



    и в режиме троичного инвертора:



    Тут питание было -5В...+5В (чуть больше обычного напряжения 5В между землёй и питанием, рекомендованных для CMOS 0.5um) и видно, что пороги слега съехали, но в целом среднее напряжение вполне себе определяется. Единственная проблема с этими микросхемами — они работают только на частотах до 10 кГц :(

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



    который на кристалле заполнял все свободные места:



    И похоже я забыл подсоединить его к земле в результате по кристаллу развесились кучи паразитных ёмкостей, съедающих все высокие частоты. В следующий раз я постараюсь этой ошибки избежать, а может вообще возьму коммерческий продукт для работы и воспользуюсь его библиотеками ведь мой селектор может быть составлен из СТАНДАРТНЫХ двоичных компонентов, работая при этом с троичными сигналами. Может быть удастся снова найти заинтересованную группу людей, которая согласилась бы разделить стоимость очередной партии (ведь например одна микросхема из прошлой партии примерно тянет на три сотни баксов по себестоимости). Жду мнений и комментариев от уважаемых хабровчан :)

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Стоит ли продолжать создавать троичные микросхемы?

    • 80,7%Конечно продолжать280
    • 5,5%Немедленно прекратить19
    • 13,8%Незнаю48
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 119

      +15
      Офигеть электроника для начинающих :)
      Белой завистью смотрю на такие проекты, это мне точно не по силам.
        +1
        Ну набор хабов я у тебя по большей части стянул :)
        И кстати да — для меня это было [микро] «электроникой для начинающих» ибо в первый раз ;)
        0
        Удобство двоичной системы связано, прежде всего, с двоичной логикой. Так, на комбинациях базисных вентилей (от двух до трех, в зависимости от базиса) можно построить любую комбинационную схему. А что на счёт логики для схем на трёх элементах?
          +3
          В троичной логике всё можно построить на троичных селекторах (как собственно и в двоичной — там тоже можно обойтись только селекторами)

          Пример для троичной логики — полный сумматор на мультиплексорах (селекторах):
          image
            0
            Я бы добавил, что троичная логика более «компактная», потенциально способная создавать более быстрые машины (при адекватной архитектуре), при более компактном хранении данных. Однако, проблемы с троичной логикой, возможны в дальнейшем, при аппаратном контроле операций и ошибок, а также, гарантии выявления трех состояний (вместо двух), что является слабым местом при создании серьезных схем, основанных на 3-логике.
              0
              Компактнее она всего в 1.5 раза по знакоместам (тритов нужно в 1.5 раза меньше чем битов). Но сама реализация троичной логики на существующих полупроводниковых элементах обычно оказывается далеко не в 1.5 раза сложнее двоичной.
                0
                Если быть точным, то в log 3 / log 2 раза или 1.585 раз меньше сигнальных линий (например для передачи объёма информации равносильного 64 битам потребуется 40.38 тритов что округляется вверх до 41, если мы говорим о физическом представлении). А вот по транзисторам будет перевес порядка 5 раз…
          +4
          А как со статическим энергопотреблением у этой штуки? Особенно, когда на выходе ноль.
            +2
            Фигово — текёт :)
              +3
              Вот и ответ, почему троичная логика не прижилась. На самом деле оно же не только течет, но и металлизацию сжигает в таком состоянии (электромиграцией), так что у вас еще и срок жизни чипа будет неприемлемый для практических применений.
              Мне кажется, что на практике конструкция «АЦП-ЦАП» (то есть пара компараторов, управляющая источником тока) будет гораздо более разумной, чем такая конструкция из стандартной логики. И с надежностью все будет нормально, и с потреблением скорее всего не хуже.

              Ну или по крайней мере резисторы в истоки транзисторов логических ячеек стоит поставить, чтобы ограничить потребление.
                0
                Ток там небольшой на самом деле — и потом оно же не всегда в середине сидит, но и переключается вверх-вниз время от времени. А так да — для троичности нужны иные технологические решения нежели обычные транзисторы…
            +2
            Насколько я помню, основной плюс троичной логики — чуть большая плотность информации. Вроде как оптимум основания число е (2,7), так что преимущество не запредельное.
            Отсюда главный вопрос: не теряете ли вы это преимущество большим количеством транзисторов на обработку того же количества информации? Ну, скажем, восемь битов несет 256 комбинаций, а пять тритов — 243, достаточно близкий значения. Для NAND двух таких чисел в двоичной системе нужно 32 транзистора не считая входных-выходных буферов. Сколько транзисторов нужно для троичной логики?
            Ну и предложение: если будете разрабатывать и заказывать новую топологию, добавьте один аналогичный элемент, но на двоичной логике, чтобы сравнить скорость работы.
              +3
              Если на транзисторах делать, то двоичный вариант будет намного компактнее. Единственное, что немного спасает — меньшее количество соединений между блоками при том же объёме передаваемой информации. И потом играние в троичность с обычными транзисторами просто готовит нас к будущей чисто троичной технлогии — я свои наработки легко переключу и вот тогда уже всё будет оптимально :)
                0
                Учитывая, что транзистор — штука аналоговая, чем обусловлена привязка именно к двоичной системе? То есть транзисторы используются и в логических элементах, и в СВЧ, и в усилении звука. Для меня не очевидно, почему они применяются где угодно, но в троичной логике оказываются неэффективными.
                Есть ли идеи какие именно элементы будут для троичной логики лучше? Может, электромеханика?
                  0
                  нанотрубки может быть?
                  а кстати хоть транзистор и аналоговый сам по себе, но в цифровых системах используется только его «двоичное» свойство — открыт/закрыт
                    0
                    Что — нанотрубки? Нанотрубки это сырье, а не элемент.
                    но в цифровых системах используется только его «двоичное» свойство — открыт/закрыт
                    Так я про это и спрашиваю — какие должны быть свойства (состояния) у вашего троичного элемента.
                    Может стоит использовать биполярные транзисторы и соответствующий аналог ТТЛ, ЭСЛ или ИИЛ и сделать ставку на скорость, а не экономичность?
                    Или действительно подумать над принципиально другими подходами — спинтроника (правда она тоже двоичная), акустоэлектроника, электромеханика (МЭМС), та же оптоэлектроника.
                      +1
                        0
                        Сам по себе термин «нанотрубки» это все равно название материала. Способов реализации на нем электроники масса. Например, интересную идею видел, когда нанотрубки просто высыпаются и фиксируются на подложке, снимают то что получилось электронным микроскопом, по изображению индивидуально формируют топологию проводников, потом напыляют металлизацию. И получают целую интегральную микросхему на нанотрубках. Вот только не помню какие именно свойства трубок использовались. Возможно, транзисторы на них делали, либо квантовые эффекты ловили.
                        То, что вы привели, можно реализовать и на любой другой электромеханике, можно и без нанотрубок. Кстати, пьезоэлектрики выглядят попроще. Или баллистические системы.
                      0

                      Может быть сейчас будет лучше сделать "сендвич" из бинаризатора на входе (-1:0:1 -> 00:01:10 например), типовой двоичной логики (селектор) и тринаризатора на выходе (00:01:10 -> -1:0:1)?


                      amartology — насколько управляемы и стабильны в производстве и эксплуатации пороги типичных КМОП транзисторов (уровня 74HC, 74LVC)? Можно-ли на них положиться?

                        +1
                        1) Разброс в производстве — процентов 20-30 легко.
                        2) Порог транзистора сильно зависит от температуры.

                        Может быть сейчас будет лучше сделать «сендвич» из бинаризатора на входе (-1:0:1 -> 00:01:10 например), типовой двоичной логики (селектор) и тринаризатора на выходе (00:01:10 -> -1:0:1)?
                        Я бы так и делал. На входе пара компараторов, на выходе источник тока, работающий на резистор. Разброс параметров резисторов можно достаточно легко скомпенсировать схемотехнически. Будет, правда, много потреблять, но я в принципе не вижу никаких вариантов троичной транзисторной логики, которые не потребляют много.
                      +1
                      Открытый транзистор почти ничего рассеивает — маленькое сопротивление (эквивалентно обычному проводнику)
                      Закрытый тоже — бесконечное сопротивление (как изолятор)
                      а в промежуточных состояниях куча энергии будет рассеиватся на транзисторе. (как резистор)
                      По этой причине силовая электроника работает только в импульсном режиме
                        +1
                        Открытый транзистор почти ничего рассеивает — маленькое сопротивление (эквивалентно обычному проводнику)
                        Это смотря что у него в нагрузке, а то оно чаще эквивалентно не «обычному проводнику», а короткому замыканию между землей и питанием.
                          0
                          Ни в коем случае! Если речь про биполярные, там обязательно резистор, если полевые — вообще затвор.
                            0
                            Нет, кроме затвора следующего каскада есть ещё вторая половинка собственного вентиля. В случае генерации полупитания у вас в нагрузке транзистора — другой открытый транзистор, а не только затвор.
                              0
                              Мы говорим про грамотную схемотехнику и штатные режимы работы. Сквозного тока быть не должно.
                              В худшем случае — ЭСЛ, ИИЛ — используется закорачивание биполярным транзистором, но там специально ставится источник тока.
                            0
                            ну в полевом нагрузкой будет емкость затвора — зарядили и цепь разорвана
                              0
                              Покажите, пожалуйста, как зарядить затвор до половины питания и поддерживать напряжение на нем на этом уровне.
                                0
                                Если ровно до половины питания, то резистивный делитель не устраивает? Но в чем смысл подавать на затвор полевого транзистора цифровой схемы ровно половины питания?
                                  0
                                  в чем смысл подавать на затвор полевого транзистора цифровой схемы ровно половины питания?
                                  Так мы троичную цифровую схему сделать хотим или что?

                                  резистивный делитель не устраивает?
                                  Подозреваю, что резистивный делитель не устроит скоростью. Но для тестовых целей инвертор с резистивной дегенерацией истоков наверное будет окей.
                                    0
                                    Троичную. Продолжайте. Пока необходимость половины питания в троичной схеме все еще не очевидна.
                                    Точнее, очевидно, что в любой цифровой схеме должно быть несколько стабильных уровней, то есть хорошо бы работать около режимов насыщения.
                                      0
                                      Пока необходимость половины питания в троичной схеме все еще не очевидна.
                                      Окей, какие электрические уровни вы предлагаете для -1,0,1? И как реализовать средний из них?
                                        0
                                        Вариантов много. Можно, например, уровни токов вместо напряжений. Правда это более актуально для биполярной логики. Соответственно, токи положительный, отрицательный и нулевой.
                                        Ниже упомянул вариант с наличием честного нуля как отдельной линии, которая тоже коммутируется. И проблемы, которые это вызывает, тоже.
                                        В общем, на распространенной элементной базе я не знаю способа реализовать троичную логику хотя бы сравнимую с двоичной.
                                        Но вот использовать сквозной ток как основу работы явно не стоит. При этом теряется и преимущество МОП, и появляются недостатки ТТЛ.
                                  0

                                  А почему нельзя использовать три транзистора и уровни -,0,+? Их можно комплиментарными сделать. Тогда никаких промежуточных потребляющих состояний нет. Всегда открыт только один из транзисторов.

                                    0
                                    Проблема с транзистором на нулевом уровне: нужна проводимость в обе стороны. То есть пара комплементарных транзисторов, а им нужны противоположные полярности напряжения на затворе.
                                    То есть чтобы подать ПЛЮС достаточно одного транзистора, чтобы подать МИНУС достаточно одного. А чтобы подать НОЛЬ надо четыре минимум.
                                      0
                                      Да, я уже понарисовал тут :) Нужно двуполярное питание гораздо (непропорционально) больше МОП транзистров, чем для классической бинарной логики.
                                    0

                                    Да я пример приводил в пользу двоичной логики, сложновато будет заряжать затвор наполовину

                                0
                                Хорошо. А как тогда должен выглядеть «троичный транзистор»? То есть минимальный усилительный элемент, который нельзя составить из существующих. Хотя бы на уровне «черного ящика», входы-выходы.
                                0
                                Наверное что стабилизировать «промежуточное» состояние на транизсторе оч проблемном при высоких частотах. +Разброс характеристик в производстве тоже будет мешать, и остаётся только жирные техпроцессы где это бы стабильно работало…
                                Мол даже в двоичных «числодробилках» при высоких частотах стоят фигни для коррекции ответов, а при троичной ошибок будет ещё больше. А выигрыш от тритов будет лишь в паре операций, а в остальном камень получится жирней и медленней при тех же условных мощностях в flops. Стоит ли оно того? (на полярных транзисторах)
                                PS Ваш диванный аналитик :* (уже +5 лет развлекаюсь с FPGA)
                                PPS Внизу ещё написали почему триты не прижились в кремнии
                                  0
                                  Учитывая, что транзистор — штука аналоговая,
                                  Не совсем так. Всё зависит от того как будет настроена его работа (т. н. режим работы). Транзистор может работать в ключевом режиме: либо открыт до полного насыщения, либо закрыт и отсекает ток.
                                +3
                                Еще основное преимущество троичной логики — идеальный элементарный сумматор и идеальное представление отрицательных чисел.
                                +5

                                Это чертовски круто!
                                Когда читаешь про ручную отрисовку блоков, правила кажутся простыми, но когда начинаешь делать что-то сам хотя бы в KOHCTPYKTOPе, то сходишь с ума от непонимания, как оно работает. А тут своя микроэлектроника в реальном мире. И притом работающая. Аж завидно. Спасибо. :)


                                Кстати, если не секрет, почём была стоимость 40-чипового заказа? Я попытался найти, но не смог: похоже, они сотрудничают с многими фабриками, но цены на сайте не пишут. И если всё же секрет, то в посте упомянуты несколько тысяч денег за упаковку чиповв в SOIC16 – это были доллары или рубли? :D

                                  +8
                                  За всё про всё я больше десятки штук зелёных отдал (хорошо добрые люди половину производства покрыли) — и это самый дешёвый техпроцесс был — остальные дороже (конкретные цифры не могу сказать — подписывал бумагу)
                                    +5
                                    это были доллары или рубли? :D
                                    Очень вряд ли это были рубли)

                                    Кстати, если не секрет, почём была стоимость 40-чипового заказа?
                                    По таким нормам стоит ориентироваться на 500-1000 евро за квадратный миллиметр с минимальным заказом в 5-10 квадратных миллиметров. Плюс упаковка, плюс какие-то еще мелочи.

                                    Примеры цен можно посмотреть на сайте Европрактиса вот тут.
                                      +4
                                      в Европе кстати чуть дешевле было бы, но
                                      1) они требовали, чтобы я использовал коммерческий софт с верификацией
                                      2) конкретный вафельный завод отказался со мной работать, когда я по их требованию описал, что хочу сделать
                                      а мосис особо вопросов не задавал — автоматическую проверку на плотность металлических слоёв прошёл и ладно…
                                        0

                                        Я, к сожалению, от этого мира далёк и не могу прикинуть стоимость упаковки чипа даже примерно. Банально не знаю, как это делается. :)


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

                                          +3
                                          Для таких прототипов проволочки паяют в штатах вручную, что поднимает цену во много-много раз — вот думаю может свою бондинг машину купить — буду сам проводочки цеплять ;)
                                          0
                                          > Примеры цен можно посмотреть на сайте Европрактиса вот тут.

                                          вот как раз упоминаемый там ams отказался со мной работать :)

                                          причём с франзуской конторой-посредником я подписал договор, получил триальную версию таннера (до того как их купил ментор) — её допустимо было использовать наряду со всякими калиберами и спектрами, но когда дошло до подписания NDA с ams они попросили описание чипа — я ответил, что это троичный чип и что его можно просто воспринимать как микс-сигнал на что они ответили нет, мы сейчас не планируем уходить в микс — досвидания :)

                                          хм, On Semi 0.5um там ещё есть — мосис в январе 2020 последний заезд с ними сделал и всё — больше не планирует…
                                          0
                                          А еще интересно, как можно создать бизнес под такие цели в США
                                            +2
                                            Есть много инфы в инете на эту тему
                                            Мне проще — я в штатах давно живу :)
                                              0
                                              А можете пример привести такой инфы? Хотя бы с прицелом на тот тех процесс что вы использовали)
                                                +1
                                                Создание бизнеса и техпроцесс никак не связаны — бизнес нужен только чтобы название компании (и штат где организована) в договоре вписать…
                                                  0
                                                  Ясно, это вопрос был, что бы сделать заказ. Я подумала про то как коммерциализировать такие разработки :)
                                                    0
                                                    Приблизительно никак, к сожалению. Нужно иметь что-то уже востребованное на рынке и с готовностью быстро выдать хорошие прототипы продуктов. И даже при таких условиях найти инвесторов на железку очень сложно. А уж на троичную логику с кучей, кажется, принципиальных проблем — нереально.
                                          0
                                          Очень интересно! Со школы помню, что самое выгодное основание — e.
                                          Главный вопрос — а что это может дать в перспективе?
                                          Что пишет Вики:
                                          «В сумме, приблизительно в 2 раза большее увеличение быстродействия...»
                                          Два раза это ж очень много — не все ж алгоритмы параллелятся.
                                          Может нашим эльбрусовцам-байкаловцам эта разработка интересна?
                                          Достаточно много вычислительных задач под которые можно держать отдельный компьютер с компилятором Си/Фортрана и… всё — больше там не нужно ничего. Другой вопрос, что компьютер на базе такого процессора должен быть быстрее чем то, что есть сейчас, а это вопрос десятков лет.
                                          (Была статья - что нам стоит догнать и перегнать Интел habr.com/ru/post/218171/) там была оценка в 30 лет и 350 млрд $.
                                          5k$ на хобби сумма нормальная, но если это может стать чем-то больше чем хобби одного человека — было бы гиперкруто!
                                          P.S. Обновил комменты: «я в штатах давно живу», тогда Байкал-Эльбрус наверное не акутален.
                                            +3
                                            Количество «битов» на операцию уменьшится всего в log3/log2 ~ 1.6 раз. Я там выше привел пример, что для 256 значений нужно 8 битов, а для 243 значений — 5 тритов. Для сумматора двоичных цифр нужно 28 транзисторов (если не обсчитался). В результате чтобы получить преимущество от троичной логики хорошо бы уложиться в 44 транзистора, лучше меньше.
                                            И вот насколько я понимаю, такую схемотехнику до сих пор никто не придумал.
                                              +1
                                              Никто
                                                0
                                                Т.е. есть нерешенная топологическая задача? Или в принципе нерешаемая и тогда троичные процессоры можно забрасывать?
                                                  0
                                                  Вот троичный полный сумматор для одно-тритных аргументов плюс перенос:
                                                  image
                                                  Тут 14 троичных мультиплексоров — если использовать раздутый мультиплексор с защитными зонами, как в статье выше, это будет 46 транзисторов т.е. 644 транзистора — можно взять транзисторы с разными размерами в плечах — в этом случае троичный мультиплексор можно урезать до 30 транзисторов, а выкинув зоны безопасности в надежде, что временные КЗ не сильно повредят транзисторам, до 22 — то получится 308. Есть ещё возможность упростить некоторые мультиплексоры в сумматоре — там где два крайних входа имеют одно и тоже значение — 4 штуки слева внизу — то это уменьшит количество транзисторов примерно до 264 — всё равно в 6 раз больше, чем хотелось бы…
                                                    0
                                                    Познавательно! Спасибо!
                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                        0
                                                        Поэтому нам нужны чистые троичные переключатели :)
                                                        0
                                                        Есть способ как существенно уменьшить количество транзисторов в этой схеме — если внимательно присмотреться, то можно увидеть, что каждая колонка троичных мультиплексоров управляется ОДНИМ троичным сигналом управления (которых всего 3 — по количеству входов) и по идее преобразовать этот сигнал в пучок двоичных сигналов управляющих ключами надо только ОДИН раз, а не внутри каждого мультиплексора — выходит тут нам надо просто поставить по 2 компаратора на вход — это 26*3=78 транзисторов плюс 1 на генератор тока, далее по 10 транзисторов собственно на само преобразование в управляющие сигналы для ключей — 79+10*3=109 ну и непосредственно сами ключи — 10 полных троек и 4 двойки или 109+10*6+4*4=185 транзисторов — всего лишь в 4.2 раза больше чем хотелось бы :)
                                                        +1
                                                        Не то чтобы совсем нерешенная или нерешаемая. Скажем, я слышал о компьютере Сетунь, но там вроде бы на трансформаторах делалось. В общем, скорее всего Shaos прав: нужно изобретать новые элементы.
                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                      0
                                                      Да вроде нет — ни на какой на двоичной она не строится — там всё на переключателях (троичных селекторах)
                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                          0
                                                          А какое отношение к Булевой алгебре имеет сумматор?
                                                          В уравновешенной троичной системе +3 будет представлено как PO, а +2 — как PN, соответственно:
                                                          _PO
                                                          +
                                                          _PN
                                                          ===
                                                          PNN или +9-3-1=+5
                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                              +2
                                                              Например, как я понимаю, частота работы таких чипов всегда будет ниже, тат как, для 3 состояний сигнал должен быть качественнее
                                                              Весь высокоскоростной Ethernet работает с амплитудной модуляцией на 3-4-5, а то и на 16 уровней. Ровно для того, чтобы добиться большей скорости передачи двоичных данных за счет того, что каждый импульс передает сразу несколько бит информации. Такж и трит — в нем больше информации, чем в бите, а значит, для отображения/хранения/передачи/обработки информации надо меньше трит, чем бит. Другое дело, что пока нет какой-то подходящей элементной базы, реализовать эти теоретические преимущества непонятно как.
                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                  0
                                                                  Я бы скорее тут упомянул оптические интерфэйсы

                                                                  О!
                                                                  Очень давно меня тоже интересовала троичная логика, про сетунь много слышал и читал. Так что тема для меня очень интересная.
                                                                  И тут Вы пишите про оптику.
                                                                  В порядке идеи: всю логику и работу организовать на оптических элементах. В частности, может быть на нелинейной оптике (ниобат лития?).
                                                                  Интерфейсы с обычными системами могут быть двоичными.
                                                                  Тогда и частота переключения менее важна.
                                                                  Если уж почти с нуля все делать, то может быть на оптике?
                                                                  Попробую поискать в этом направлении, может что интересное и будет.
                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                      +1
                                                      Статья супер. Вроде в star track были троичные ПК хотя могу ошибаться.
                                                      А так да нужен какой-то базовый элемент для троичной логики как транзистор для двоичной.
                                                      Транзистор открыто-закрыто
                                                      Для троичной логики нужно открыто-закрыто-открыто но в другую сторону.

                                                        0
                                                        > Для троичной логики нужно открыто-закрыто-открыто но в другую сторону.

                                                        именно
                                                        +1
                                                        Ого, круто! Даже не мог представить, что можно сравнительно малой кровью делать заказные ИС.
                                                        Расскажите подробнее про процесс — какой выход годных, тестирует ли фаб кристаллы или просто режет и корпусирует, мол, что выросло то выросло?
                                                          +1
                                                          Просто режет и корпусирует — можно в разные корпуса запаковать (надо предоставить чертёж как бондить для каждого корпуса) и можно не всё паковать — я допаковывал потом через них же после того как первые микрухи протестировал (это правда доп.денег стоит). Пытался найти других паковщиков дабы удешевить, но большинство мои запросы просто игнорировали, а один ответил, что начинает работать только если цена заказа минимум $10K…
                                                            +1
                                                            Хинт: у вас наверняка недалёко есть университет, а в нем подходящий факультет с лабораториями. Бондинг машина недорого может найтись там. Если повезёт, то и доступ к САПР тоже, хотя бы чтобы они своими силами DRC-LVS прогнали.
                                                            0
                                                            Если на чипе нет ошибок проектирования, то выход годных на таком количестве и, главное, таком объеме тестов будет 100% почти наверняка. На MPW фаб никакие тесты делать не будет, только соответствие параметров стандартных тестов пластины спецификации.
                                                            В проектировании производство MPW относительно небольшую долю стоимости занимает. Главное — время и САПР для моделирования и верификации. Без DRC-LVS что-то сложнее сотни транзисторов можно отдавать в продакшн только большим любителям русской рулетки.
                                                              0
                                                              ох уж это сладкое «netlists match»
                                                            +1
                                                            И похоже я забыл подсоединить его к земле в результате по кристаллу развесились кучи паразитных ёмкостей, съедающих все высокие частоты.

                                                            А что принципиально изменится, если подключить филлер к земле?
                                                            Обычно скрипты заливки филлеров никуда их не подключают, и тем не менее частоты работы кристалла катастрофически не падают.

                                                            я нашёл пакет с открытыми исходными кодами Magic VLSI (есть сборки для Linux и Windows), к которому существуют файлы правил например по техпроцессу CMOS 0.5um

                                                            Работу вы, конечно, проделали титаническую. Мне некомфортно работать уже в ICFB 5.1.41 (версия аналогового САПР от Cadence предыдущего поколения) и/или с Assura (их же тул для физической верификации). Только Virtuoso и Calibre, только хардкор.
                                                              +1
                                                              Считаете, что ничего не изменится? Ну значит я теряюсь в догадках…

                                                              > Работу вы, конечно, проделали титаническую.

                                                              Титаническая работа измеряется в часах — я ради интереса фиксировал потраченное на разработку чипа время и в момент заказа микросхемы у меня оказалось записанным ровно 80 часов (потраченных в свободное от основной работы время в течение месяца).
                                                                +1
                                                                kutiro Assura-то вам чем не угодила? Понятно, что калибра несколько лучше, но вот чтобы прямо некомфортно?

                                                                Shaos а покажите фото или схему выходного каскада, идущего на контактную площадку? Какая у него нагрузочная способность?
                                                                  +1
                                                                  По выходам я не стал сильно заморачиваться и просто сделал инверторы с транзисторами в 2 раза крупнее — кстати может быть это и есть первопричина тормозов — выходные каскады не прямо у площадки, а рядом со всей остальной схемой
                                                                    +3
                                                                    В два? Не в сто? Это точно первопричина, готов на деньги спорить. У вас же есть модели транзисторов? Попереключайте в симуляции таким выходным каскадом нагрузку в 10 пФ и посмотрите, что будет.
                                                                      +1
                                                                      ok, попробую
                                                                0

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

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

                                                                    0
                                                                    Ну у меня на самом деле 46 транзисторов, но идею я понял — спасибо!
                                                                    количество


                                                                    А что такое VG1 и VG2?
                                                                      +3
                                                                      Это опорные напряжения, задающие рабочий ток компараторов и, соответственно, регулирующие скорость работы схемы. Их надо задать при помощи генератора опорного тока, представляющего собой в простейшем случае токовое зеркало.

                                                                      image
                                                                      Резистор можно сделать внешним, так вы сможете удобно руками настраивать скорость и потребление схемы. А дальше транзистор Q1 у вас один, а транзисторы Q2-Q4-Qn стоят в каждом компараторе.
                                                                        0
                                                                        понял — спасибо!

                                                                        мне на самом деле компаратора одного типа будет достаточно — две штуки таких с порогом срабатывания 1/3 и порогом срабатывания 2/3 дадут два логических сигнала из которых можно получить сигналы управления тремя ключами, коммутирующими входы N, O и P

                                                                        хотя буферная схема сама по себе не помешала бы тоже
                                                                          0
                                                                          Если компаратор одного типа, то он должен быть как тот, который на моем рисунке справа внизу — у обоих верхних компараторов размах выходного сигнала очень маленький: компаратор с n-канальной дифпарой может открывать/закрывать только p-канальную нагрузку. А еще n-дифпара на низких питаниях может не заработать как следует с порогом 1/3.
                                                                          У нижнего компаратора размах выходного сигнала от нижнего питания до верхнего.

                                                                          P.S. Если что, не стесняйтесь писать в личку.
                                                                            0
                                                                            ok, спасибо!
                                                                              0
                                                                              Ещё такой момент — стоит ли заморачиваться с зонами безопасности между областями срабатывания ключей?



                                                                              Ведь даже у 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 увеличивая количество компараторов на каждый селектор с двух до четырёх…
                                                                                +1
                                                                                У компараторов, которые я нарисовал, есть гистерезис — ровно потому, что зоны безопасности на случай шумного сигнала конечно же нужны. Но компаратор с гистерезисом все делает сам, удваивать их количества не нужно, нужно размер гистерезиса подбирать.
                                                                                Там, где транзисторы с пометкой х2 в нагрузке дифпары — это оно, соотношение размеров транзисторов в нагрузке как раз регулирует ширину гистерезиса, вместо х2 можно сделать х3 или х4.
                                                                                  0
                                                                                  понял — спасибо
                                                                                    0
                                                                                    На самом деле гистерезис не поможет сделать break-before-make т.к. на выходе компаратора с гистерезисом всё также будет только лишь один логический сигнал, управляющий ДВУМЯ ключами — один должен отключиться, а другой включиться и из-за разброса параметров транзисторов включение может случиться раньше отключения, что может привести к короткому замыканию питания на землю. Чтобы развести эти сигналы они должны управляться разными компараторами с разным гистерезисом, чтобы отключающий сигнал имел более «слабый» (короткий) гистерезис нежели включающий сигнал, чтобы включение произошло заведомо после отключения. Однако если мы пойдём в обратную сторону (с более высокого напряжения на более низкое), то теперь наоборот — средний ключ должен отключиться раньше. Можно сделать гистерезис более длинным в одну сторону и более коротким в другую на одном и том же компараторе?
                                                                                      0
                                                                                      Наверное можно в одном плече сделать x2, а в другом x3 — тогда гистерезис получится «кривой» — наверное это то, что нужно…
                                                                                        0
                                                                                          0
                                                                                          Ну либо разные Vref на них подавать:
                                                                                            +1
                                                                                            А, я неправильно вас понял. То, о чем вы говорите, это неперерекрывающиеся фазы входного сигнала.
                                                                                            imageИх используют для ключей, коммутирующих большие токи (скажем, сотни миллиампер), но генератор таких сигналов — это транзисторов двадцать, и ставить его на каждый инвертор бессмысленно.
                                                                                            image
                                                                                            Собственно, в любом двоичном инверторе протекает сквозной ток в процессе переключения, и это приемлемо, если процесс переключения быстрый.

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

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

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

                                                                                              тогда если не заморачиваться с зонами безопасности, то простейший вариант в моей «парадигме» будет вот этот — на 24 транзистора:



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



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

                                                                                                      Если надо немного ниже, то можно сделать транзисторы шире, если сильно ниже — то только p-канальная дифпара поможет. Но она, в свою очередь, не будет работать около питания.
                                                                                                      Там, где нужно, чтобы и вход, и выход имели полный размах, делают схемы, в которых обе дифпары стоят параллельно, но вам я бы не рекомендовал таким колдунством заниматься. Я поэтому сразу два компаратора нарисовал, один для низких напряжений, второй для высоких. Навороченный тоже можно отзеркалить, если вы хотите на низких питаниях работать.
                                                                                                        0
                                                                                                        ок — попробую собрать схему в реале на комплиментарных сборках (правда в компараторе PMOS-ов больше чем NMOS-ов — придётся ещё приобрести сборку где только PMOS-ы в довесок к комплиментарным)
                                                                                                          0
                                                                                                          Мне кажется, что для тестов и макетирования в реале можно и готовые компараторы взять (типа lm124 например). Вам же на самом деле не важно, что внутри у компаратора, он может оставаться черным ящиком. Интересно, как на основе компараторов сделать какую-то схемотехнику, а не только инвертор.
                                                                                                            0
                                                                                                            Я хочу попробовать именно то, что потом пойдёт в микросхему — для абстрактного макетирования можно ведь и TRIMUX взять с DG403 :)
                                                                              0
                                                                              Чувствую, лет через 100 это выльется в опенсорс квантовый ии. :)
                                                                              Мне не нравится голосование. А почему там нет четверичных или окта?
                                                                                0
                                                                                четверичные схемы я пробовал (в том же чипе кстати) — неинтересно :)

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

                                                                                    +1
                                                                                    FYI. Любая троичная функция n переменных может быть реализована повторной односторонней одноканальной сетью длины L(n)=3(L(n-1)+1), каждый элемент которой реализует функцию двух переменных.
                                                                                    Yоeli M. Ternary cellular cascades. IEEE Trans., C-17, 1, 1968.

                                                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                  Самое читаемое