Троичный сумматор

Уравновешенная троичная система счисления - форум переехал с http://ternary.info

Moderator: haqreu

User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный сумматор

Post by Lavr »

haqreu wrote:А откуда взялись 36 и откуда 314 применительно к этой задаче суммирования?
Собственно, из тех результатов моделирования, которые я привел в этом топике, и топике, на который
дал ссылку при подведении итогов своей проделанной работы.

Всё зависит от способа сложения. Я бы предпочел последовательное суммирование, вот так:
000113.jpg
А при нём мне нужен всего одноразрядный полный сумматор. В троичной логике он мне обошелся в
314 транзисторов.
В двоичной логике, поскольку конкретная задача на суммирование, я убрал из схемы 16 транзисторов
управляемого инвертора. 52 - 16 как раз 36.
You do not have the required permissions to view the files attached to this post.
iLavr
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Re: Троичный сумматор

Post by jdigreze »

Lavr wrote:... результат сравнения будет довольно удручающим... :-?

13 элементов NAND x 4 транзистора = 52 МОП-транзистора обеспечивают практически тот же
функционал, что и 314 МОП-транзисторов полного троичного сумматора. :-?
Причем 52 МОП-транзисторов - всего двух типов с одинаковыми порогвыми напряжениями.

Поневоле вспоминается фраза из одной обзорной работы по троичной логике:
Sultanov I. A. wrote:В США, в то время (1958 г.), тоже рассматривали преимущества и недостатки троичного компьютера
и после проведённых теоретических исследований строить троичный компьютер не стали.
Да уж... Тут либо какая-то принципиально иная элементная база нужна, либо... даже не знаю.
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичный сумматор

Post by Shaos »

угу - если пользовать для постройки троичных схем элементы с двумя состояниями, то само собой будем в проигрыше - нужны троичные элементы...
Я тут за главного - если что шлите мыло на me собака shaos точка net
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Троичный сумматор

Post by haqreu »

Lavr wrote: Всё зависит от способа сложения. Я бы предпочел последовательное суммирование
Понял, при последовательном так и будет, да.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный сумматор

Post by Lavr »

Shaos wrote:угу - если пользовать для постройки троичных схем элементы с двумя состояниями, то само собой будем в проигрыше - нужны троичные элементы...
Да в общем-то и у Брусенцова элементы не были полностью троичные...
Я просто хочу в расчетах "проиграть" идею, что получится, если троичные элементы создавать
по привычной технологии на МОП-ключах.
С меня же не берут за это $6000, как с тебя... :wink: А элементы все вполне работоспособные,
как показывает практика, и позволяют в троичную схемотехнику серьёзно "поиграть".
Что мне, собственно, и интересно...

А то тут был у нас один "товарищ" - он говорил:"Начните с реле..." Но, я думаю, мы в силах поиграть
в эти игры на более серьёзном уровне... :lol:
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный сумматор

Post by Lavr »

Lavr wrote:мне нужен всего одноразрядный полный сумматор. В троичной логике он мне обошелся в
314 транзисторов.

В двоичной логике, ... как раз 36.
А вот один наш бывший коллега по форуму, которого Shaos произвел в ранг пенсионера, :wink:
бездоказательно, правда, но постулирует вот что:
А. Самсонов wrote:При реализации троичной логики на транзисторах требуется больше элементов, и на первый взгляд кажется, что это не так эффективно. Но здесь вот какая особенность: чем больше троичных элементов добавляешь, тем меньше соединений требуется. К тому же в определённый момент количество элементов начинает расти нелинейно. Когда число элементов переваливает некоторый порог, для увеличения сложности троичного компьютера требуется всё меньше и меньше элементов. Там, где двоичному компьютеру приходится удваивать количество элементов, троичному достаточно увеличить количество элементов только в полтора раза, потом в 1,3 раза и так далее.
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный сумматор

Post by Lavr »

Тут вот DimkaM усугубил моё одно тяжкое сомнение по вопросу суммирования в троичном компьютере... :-?
И сомнение вот какое... Предположим, что я проверяю ряд условий, следующих друг за другом по возрастанию,
понятный пример - я проверяю нажатие кнопок от "A" до "Z" (их коды "41H" ... "5AH").

Я могу сделать это примитивно (пусть код в регистре А):

Code: Select all

   CPI  41H
   JZ    ADDR1
   CPI  42H
   JZ    ADDR2
   ...
   CPI  5AH
   JZ    ADDRz
Это будет аналогом

Code: Select all

   IF ... THEN ...
   IF ... THEN ...
   ...
   IF ... THEN ...
Но гораздо более быстрый способ сделать это по таблице,
реализовав аналог SELECT CASE ... CASE IS ...

Code: Select all

  LXI  H,TABLE; укажем на таблицу переходов
  LXI  D,0000H; начальное смещение в таблице
  SUI  41H; превращаем "41H" ... "5AH" в "00H" ... "19Н"
  MOV C,A; сохраним код А в С
  ORA A;    флаг С = 0
  RAL;       = А * 2
  ADD  C;   = А * 3 потому что таблица трёхбайтная
  ADC E;    заносим
  MOV E,A; результат
  XRA A;    в
  ADC D;    начальное
  MOV D,A; смещение
  DAD  D;  вычисляем смещение по таблице
  PCHL; переход по адресу
TABLE:
   JMP ADDR1
   JMP ADDR2
   ...
   JMP ADDRz
Я написал длинно и неоптимально. Если заранее знать, что "00H" ... "19Н" - можно написать проще.
Но суть вот в чем: какое большое число не получилось бы в резуьтате - смещение в таблице будет
всегда положительным
, потому что мы рассматриваем его как "целое без знака".

С другой стороны, в операциях относительного перехода типа:
JMP SHORT ADDR
мы наоборот рассматриваем ADDR как "целое со знаком". Поэтому JMP может быть как
вперед, так и назад.

Так вот глобальное сомнение у меня вот в чем: в троичной логике отрицательные числа получаются естественно.
Но смещение по адресу должно быть положительным. Может так случиться, что в примере, как я рассмотрел,
меня "джампнет" не по адресу в таблице, а по адресу где-то "сзади", потому что смещение получится отрицательным?
Или я что-то не так понимаю и заморочку себе выдумал?
iLavr
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичный сумматор

Post by Shaos »

джампнет
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный сумматор

Post by Lavr »

Lavr wrote:схема полного однотритного сумматора из разработанных мной блоков выглядит
следующим образом:

Image
Я на момент создания не сделал никакой проверки полного троичного сумматора, заложившись
на правильную работу отдельных его функциональных блоков.
Это не от лени, а потому как EWB "захлебывается" считать такую большую аналоговую схему
да еще и вкупе со счетчиком.
Но я подумал, что это в общем-то упущение, и ничто не мешает мне снять таблицу истинности
этого устройства, подавая на входы логические уровни через переключатели

Вот эта таблица для разработанного полного троичного сумматора:
TFullAdd.gif
На мой взгляд - всё вроде верно. Но проверка свежим взглядом - не помешает...
You do not have the required permissions to view the files attached to this post.
iLavr
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

Re: Троичный сумматор

Post by haqreu »

Вроде всё чётко
User avatar
JeNNeR
Fanat
Posts: 52
Joined: 18 Nov 2014 09:17
Location: Отсюда

Re: Троичный сумматор

Post by JeNNeR »

Да, правильно всё.
You do not have the required permissions to view the files attached to this post.
AndrejKulikov
Banned
Posts: 315
Joined: 07 Mar 2018 23:17
Location: Россия, Москва

Re: Троичный сумматор

Post by AndrejKulikov »

Lavr wrote: Вот эта таблица для разработанного полного троичного сумматора:
[вложена таблица]
На мой взгляд - всё вроде верно. Но проверка свежим взглядом - не помешает...
Похоже, что таблица соответствует версии таблицы полного троичного симметричного сумматора в трёх видах, опубликованной мною в "Википедии", в статье "Троичные функции", в разделе "Троичный сумматор-вычитатель", 6 февраля 2012 в 11:07:
Троичный симметричный полный сумматор.JPG
Но проверка свежим взглядом - не помешает...
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный сумматор

Post by Lavr »

Lavr wrote:схема полного однотритного сумматора из разработанных мной блоков выглядит
следующим образом:
Image
Я на момент создания не сделал никакой проверки полного троичного сумматора, заложившись
на правильную работу отдельных его функциональных блоков.
Это не от лени, а потому как EWB "захлебывается" считать такую большую аналоговую схему
да еще и вкупе со счетчиком
.
Но главное во всей этой затее было то, что я просчитал все необходимые элементы троичной логики аналоговыми методами, то есть, в отличие от чисто цифровых расчетов, здесь учитывались все переходные процессы, проскакивание перехода [+1] -> [-1] через логический уровень [0] (да, это приводит к некоторым "артефактам", но с точки зрения цифровой схемотехники они не смертельны), и пришел я к основному выводу, что аналоговые модели соответствуют алгебре троичной логики, а поэтому можно было осуществить качественный скачок, перейдя к чисто цифровым моделям для повышения скорости расчета.


В качестве платформы я выбрал Proteus, поскольку разработчики заложили в его движок логическое состояние "конфликта", очень хорошо соответствующее нашему понятию "неопределённости" в троичке: это состояние Proteus трактует как уровень 2.5 В, что вполне подходит для моделирования устройств на троичной логике.
Image

Ну и поскольку dll-библиотеки Proteus на C++ мы писать научились, я занялся тем, что уже испытанные аналоговые модели элементов троичной логики перевёл в цифровой вид:
Image

При этом старался сравнивать идентичность поведения цифровых моделей с аналоговыми:
Image

Интересно, что в результате этих изысканий фактически пришлось разработать семейство троичных логических элементов, поскольку Proteus при компиляции предлагает упаковать логику в подхоящий корпус, и я попытался сделать это в полной аналогии с существующими сериями 74... 74LS... 74HC..., где одинаковым логическим элементам присваивают одинаковые номера.
Хотя пришлось "пристроить" и элементы, которых в двоичных сериях просто нет.

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

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

Конструировал сумматор я по полной аналогии с тем, что уже было сделано ранее в этой ветке форума.

Сначала это была вот такая конструкция из "элементарных кирпичиков" троичной логики:
Image

Потом, после тщательной проверки, я "свернул" её в более компактные модули:
Image

И в итоге получилась вот такая модель полного однотритного сумматора, который я и использовал в АЛУ моего весьма удачного проекта троичного компьютера.
Image

Если спросить: а в чем смысл такой последовательности? А смысл в том, что для приемлемой скорости моделирования сама модель, как я вот здесь уже писал, должна быть простой, но адекватной.
То есть, в итоговую "коробочку" полного однотритного сумматора вошли только его "формулы", а не формулы всех элементарных элементов, но сравнение модели сумматора с его же моделью из "элементарных кирпичиков" показало его полную адекватность.
Вот только работает его модель шустрее, чем 10...20 "элементарных кирпичиков".

Ну и так вышло, что я немного отвлёкся в сторону и написал под Proteus модели популярных здесь у нас мультиплексоров на основе аналоговых ключей DG403.
Чтобы у заинтересованных посетителей форума была возможность не только почитать здесь про троичность, но и хоть как-то приобщиться к процессу... :wink:
Благо Proteus супер-новый не нужен, я всё это делаю под версией 6.7 Pro, которая "вертится" у меня на любимом моём фактически ныне музейном ноутбуке ThinkPad 600е P-II 366 MHz под Windows 98. :roll:
Ну если у меня "вертится", то у всех должно летать со свистом! (Я проверял на работе на современном десктопе под Win 10).

Ну и поскольку на моих моделях "муксов" никто и ничего сконструировать не отважился, я решил проверить их адекватность сам как раз вот на примере полного однотритного сумматора.

Получилось в итоге вот что:
Image

Где в каждой коробочке под названием "MUX" для компактности находится вот это:
Image

Я немного перекомпоновал проверенную здесь уже трижды таблицу истинности полного однотритного сумматора, чтобы результаты стало проверять удобнее и логичнее...
Image

Но Proteus-модель полного однотритного сумматора ей полностью соответствует! :wink:

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

Поэтому я решил собрать эту конструкцию на макетке, благо DG403 у меня были и время есть.
То, что добротно посчитано, собирается обычно за один вечер или где-то с 12 до 4 утра по моим привычкам.
Так что запаситесь попкорном, продолжение сейчас будет... :wink:
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Троичный сумматор

Post by Lavr »

Были у меня в запасе две вот таких беспаечных макетки с пластиковым основанием ценой по 740 р., что дешевле аналогичных на металлической пластине, у тех цена зашкаливает за 12хх р.
Image

Припас я эти макетки под проделки с нашим любимым 1801ВМ2, но, поразмыслив, решил, что там и одной макетки хватит, и ключей DG403 у меня некоторое количество в запасе было.

Начинать надо с разводки, и я такие разводки на макетках уже не раз делал, но это меня и заставило задуматься, что неплохо бы и разводку поручить Proteus-у, в результате чего я и написал модель DG403, подходящую для этого процесса.

После всех уточнений и перетасовок разводка получилась примерно вот такая:

Image

Собственно, вот это всё и нетрудно вполне собрать на макетке "за один вечер", поскольку заранее продумано всё, паять не надо, смотришь на красивую разводку - втыкаешь корпуса и проводки, благо у всех элементов есть ещё и заметная идентичность.
Image

А вот приделать некое подобие "передней панели", которая, собственно, задумана была как элемент жесткости для тумблеров и индикаторных светодиодов, это заняло еще день, и то потому, что я обычно сначала делаю макет из тонкого картона, примеряю по месту, и лишь потом вырезаю и сгибаю из жести.
Image

В итоге получилась вот такая довольно симпатичная штука...
Image

...которая работает с точностью по всё той же таблице. :ewink:
TRI_SUM_Tab.gif
В процессе сборки я обратил внимание, что в составе полного однотритного сумматора есть элементы, которые неплохо иметь в составе полного АЛУ - это узлы циклических отрицаний, причем оба.
Также есть части схем MIN и MAX, что позволяет доделать эту плату до полнофункционального АЛУ, добавив, если я не ошибся, ещё 4 корпуса DG403.
Из них троичный XOR займёт, видимо, целых 2 корпуса.

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

Ну и поскольку я уже ничего перерисовывать не стал, оригинал разводки вполне подробно виден на следующем фото:

 Фото макетной платы сумматора
Image

You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 24008
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Троичный сумматор

Post by Shaos »

т.е. ты таки перешёл на DG403 как и все мы? ;)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net