nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 15 Aug 2018 22:45



Reply to topic  [ 49 posts ]  Go to page Previous  1, 2, 3, 4  Next
Троичный сумматор 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
AlexanderZh wrote:
Lavr wrote:
Но в троичной логике называется модно: Consensus
Логично)) Только единое мнение даст результат!
Но пришлось его всё-таки назвать Carry с префиксом T... :wink:
С одной стороны - привычнее, с другой стороны - количество символов в имени блока у меня ограничено,
и не все символы можно использовать... 8)

Именно поэтому - EQU_FALS, а не EQU_FALSE, хотя это "=-1",
ну и, я надеюсь, все угадали, что EQU_TRUE - это: "=1".
И как-то так удачно вышло, что я этим функциям сразу приделал и прямой и инверсный выходы... :wink:

Так что схему переноса я "сделал" весьма быстро, для этого пришлось из копии сумматора по модулю 3
повыкидывать часть лишних элементов, ну и нечайно земельку одну откинул - поэтому долго удивлялся
и прыгал с бубном - "ну почему схема проще сумматора не работает? Сумматор ведь работал!" :mrgreen:
Attachment:
3CARRY.gif
3CARRY.gif [ 5.25 KiB | Viewed 1438 times ]

Но в итоге всё заработало правильно, хотя времени пол-дня потерял... :osad:
Attachment:
3CAR_OSC.gif
3CAR_OSC.gif [ 7.05 KiB | Viewed 1438 times ]

_________________
iLavr


08 Oct 2017 10:31
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 276
Reply with quote
Так а сколько транзисторов в итоге в сумматоре?


08 Oct 2017 12:35
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
Так а сколько транзисторов в итоге в сумматоре?

Погодите, экий Вы торопливый! :wink: Ещё до итога не дошли... :lol:
Но в итоге я обязательно скажу, сколько там и чего и "в попугаях" и "в слонёнках"... :mrgreen:

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


P.S. Кстати, мне пока никто не сказал, что там вырисовывается с числом транзисторов в аналогичной
конструкции на "тримуксах", а я в упор не знаю совсем по причине см. здесь...
8)

P.P.S. 2_haqreu. Прочитал по случаю Ваши материалы на Хабре... А Вы - университетский преподаватель?

_________________
iLavr


08 Oct 2017 14:16
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 276
Reply with quote
Lavr wrote:
Кстати, мне пока никто не сказал, что там вырисовывается с числом транзисторов в аналогичной
конструкции на "тримуксах"


Так давайте считать. Вы же полусумматор собираете, так? (из двух входов A и B считаем два выхода C и S по закону A+B = S + 3*C)

Он требует трёх мультиплексоров на саму сумму и трёх мультиплексоров на консенсус. То есть, если напрямую из тримуксов собирать, то это три тримукса, или 6 корпусов dg403dy.

Если верить даташиту, то в dg403dy 17 транзисторов на один канал, два канала на один корпус микросхемы. Итого 34 транзистора на один корпус dg403dy. Умножаем на 6 = 204 транзистора на полусумматор, если собирать прямо на тримуксах.

Дальше есть возможность чуточку схитрить, так как функция консенсуса включает в себя функции E21 и E12, как их называет Shaos. Это позволяет сэкономить один корпус dg403. То есть, на dg403 можно собрать полусумматор на 170 транзисторах.


Полный же сумматор (из трёх входов A, B и Cin считаем два выхода Cout и S по закону A+B+Cin = S + 3*Cout) укладывается в 12 корпусов dg403 (семь тримуксов = 14 корпусов, но опять два e21 и два e12 реализуются только двумя корпусами dg403 вместо четырёх). Ну а 12 корпусов это 408 транзисторов.


Lavr wrote:
P.P.S. 2_haqreu. Прочитал по случаю Ваши материалы на Хабре... А Вы - университетский преподаватель?


И преподаватель тоже, а что?


08 Oct 2017 15:28
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
Lavr wrote:
P.P.S. 2_haqreu. Прочитал по случаю Ваши материалы на Хабре... А Вы - университетский преподаватель?
И преподаватель тоже, а что?

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

Что касается числа транзисторов, то априори мне кажется, что их число будет примерно одинаковым,
поскольку трудно обмануть СДНФ. Причем мне тут проще, поскольку я имею возможность конструировать
сами блоки под конкретные функции. А "тримукс" - это одно и то же число транзисторов на любые функции.
Но итоговое число ключей не будет глобально различаться по моему мнению.
Впрочем зачем забегать вперед? Истина почти уже рядом - вот только последний блок доделаю... :wink:

_________________
iLavr


08 Oct 2017 15:45
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 276
Reply with quote
Lavr wrote:
Нет, ничего плохого, просто меня заставили улыбнуться некоторые комментарии на Хабре касательно
троичной логики и преподавтельской деятельности... :lol:


Ай, комментарии на хабре это за гранью добра и зла 8)

Думаю что тримуксы заведомо проигрышный вариант, не на порядок, конечно, но всё же. Но лично мне очень изящным кажется сама мысль об универсальности одного-единственного строительного кирпичика. Оно, конечно, транзистор тоже ничего так себе кирпичик ;)


08 Oct 2017 15:51
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
Но лично мне очень изящным кажется сама мысль об универсальности одного-единственного строительного кирпичика. Оно, конечно, транзистор тоже ничего так себе кирпичик ;)

Ну... как университетского преподавателя, эта мысль не должна Вас так уж сильно восхищать. :wink:
Я лично не испытал на этот счет никаких особых эмоций - я не зря упомянул выше слово СДНФ.
И в троичной логике любая сложная функция, заданная таблицей, строится по этой самой
дизъюнктивной нормальной форме.
Другими словами мультиплексор в той или иной форме присутствует.
Если Вы посмотрите внимательно на мои схемы - то я уже дважды использовал мультиплексор
"на рассыпухе". Сейчас и в третий раз использую - ну никуда не убежать мне от СДНФ... 8)

_________________
iLavr


08 Oct 2017 16:03
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 276
Reply with quote
Да ладно, если не восхищаться простыми вещами, то наука никуда не продвинется! А вообще я же паяльник только вчера в руки взял, для меня вообще это одна сплошная магия!


08 Oct 2017 16:08
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
я же паяльник только вчера в руки взял, для меня вообще это одна сплошная магия!

О, да... это, действительно, магия! :roll: Я паяльник взял в руки в классе 5...6-м и до сих пор этой магией очарован... :kruto:

_________________
iLavr


08 Oct 2017 16:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Но пора от магии и приятных реминисценций вернуться к финалу затянувшейся саги о полном троичном сумматоре... :wink:

И я надеюсь, что ни у кого нет сомнений, что полный троичный сумматор следует делать вот так:
Attachment:
3SUM_FULL.gif
3SUM_FULL.gif [ 5.44 KiB | Viewed 1421 times ]

Сумматоры по модулю 3 и схемы формирования трита переноса для полусумматоров у меня уже были
разработаны,
оставался один последний узел, который формирует из двух тритов переносов от полусумматоров единый
трит переноса в следующий разряд - Cout.

В двоичной логике - это был бы OR: либо первый перенос, либо второй, либо оба вместе.

В троичной логике идеология похожа, но всё несколько сложнее: либо первый перенос +1, либо второй +1,
либо оба вместе +1; либо первый перенос -1, либо второй -1, либо оба вместе -1.
Но если первый перенос +1, а второй -1, и наоборот, то переноса нет, он = 0.
То есть логика работы напоминает сумматор, поэтому я сравнил таблицы истинности схемы преноса
в старший разряд
и уже сделанного троичного сумматора по модулю 3.
Attachment:
3T_2CARTB.gif
3T_2CARTB.gif [ 6.57 KiB | Viewed 1421 times ]
И я увидел, что разница этих таблиц всего в 2 значения.

Поэтому я решил не разрабатывать схему преноса в старший разряд заново, а доработать имеющуюся
схему троичного сумматора по модулю 3, тем более, что по таблицам мне стало видно, что на уровне
транзисторов придется подправить всего 2 блока: правую и левую циклические инверсии.
И я подправил их схемы согласно следующим осциллограммам, тем более, что судя по ним необходимо
было выкинуть пару ключей, а мы тут так стремимся считать транзисторы! :lol:
Attachment:
3UX_DX_OSC.gif
3UX_DX_OSC.gif [ 18.62 KiB | Viewed 1421 times ]

В итоге выкинуть получилось 4 транзистора, но что это теперь за узлы, я не знаю, поэтому условно
обозначил их как правая и левая неизвестные инверсии: ROT_Ux и ROT_Dx, где x - и есть "неизвестные". :wink:

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

_________________
iLavr


08 Oct 2017 20:29
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Схема в общем-то полностью идентична схеме троичного сумматора по модулю 3, за исключением
того, что блоки правой и левой циклических инверсий - ROT_UP и ROT_DN, заменены на блоки
правой и левой неизвестных инверсий: ROT_Ux и ROT_Dx.
Attachment:
3T_2CARRY.gif
3T_2CARRY.gif [ 6.6 KiB | Viewed 1421 times ]


Для проверки соответствия таблице истинности и для наблюдения динамики работы схемы преноса
в старший разряд
, я опять же подключил её к двухразрядному троичному счетчику:
Attachment:
3T_2CNT.gif
3T_2CNT.gif [ 6.4 KiB | Viewed 1421 times ]


Ну и, судя по осциллограммам, работа схемы переноса в старший разряд соответствует её таблице истинности:
Attachment:
3CARRY_OSC.gif
3CARRY_OSC.gif [ 14.93 KiB | Viewed 1421 times ]


Подсчеты транзисторов давайте оставим на завтра? А то у меня тут 6:40 утра, а я еще спать не ложился... :-?

_________________
iLavr


08 Oct 2017 20:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
haqreu wrote:
Так а сколько транзисторов в итоге в сумматоре?
Погодите, экий Вы торопливый! :wink: Ещё до итога не дошли... :lol:
Но в итоге я обязательно скажу, сколько там и чего и "в попугаях" и "в слонёнках"... :mrgreen:

Ну а вот теперь пора некоторые итоги проделанной работы подвести...

Ну и первое: схема полного однотритного сумматора из разработанных мной блоков выглядит
следующим образом:
Attachment:
3FULL_ADD.gif
3FULL_ADD.gif [ 4.59 KiB | Viewed 1400 times ]


Принципиальная электрическая схема полного однотритного сумматора приведена ниже:
(схема большая, поэтому убрана под спойлер)
 Ternary One-Trit Balanced Full Adder Schematics
Attachment:
3FULL_ADDER.gif
3FULL_ADDER.gif [ 32.27 KiB | Viewed 1400 times ]

Ну и теперь статистика "в слонёнках" и "в попугаях", то есть в логических блоках
и количестве транзисторных ключей:

Троичный Сумматор по модулю 3 (2 шт.)
----------------------------------------
INV_3MIN:(1 шт.) 12 транз.
INV_MIN: (3 шт.)3х8 транз.
INV_MAX: (1 шт.) 8 транз.
ROT_UP: (1 шт.) 9 транз.
ROT_DN: (1 шт.) 9 транз.
EQU_TRUE:(1 шт.) 4 транз.
EQU_FALS:(1 шт.) 4 транз.

Итого:---------- 70 транз. х 2 = 140

Схема троичного полупереноса: (2 шт.)
----------------------------------------
INV_3MIN:(1 шт.) 12 транз.
INV_MIN: (3 шт.)3х8 транз.
EQU_TRUE:(1 шт.) 4 транз.
EQU_FALS:(1 шт.) 4 транз.

Итого:---------- 54 транз. х 2 = 108

Схема троичного переноса: (1 шт.)
----------------------------------------
INV_3MIN:(1 шт.) 12 транз.
INV_MIN: (3 шт.)3х8 транз.
INV_MAX: (1 шт.) 8 транз.
ROT_Ux: (1 шт.) 7 транз.
ROT_Dx: (1 шт.) 7 транз.
EQU_TRUE:(1 шт.) 4 транз.
EQU_FALS:(1 шт.) 4 транз.

Итого:---------- 66 транз. х 1 = 66

Всего: 140 + 108 + 66 = 314 транзисторов.

Следует также учесть, что типовой логический элемент выполнен по примерно следующей схеме:
Attachment:
3INV_MIN.gif
3INV_MIN.gif [ 4.11 KiB | Viewed 1400 times ]

Это INV_MIN или троичный NAND. Выполнен на МОП-транзисторах четырёх разных типов
с разными тщательно подобранными пороговыми напряжениями.
Это считается довольно нетехнологичным. Технологично, когда пороговые напряжения примерно
одинаковы и величины их не слишком критичны.

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

Image

_________________
iLavr


09 Oct 2017 10:14
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Ну а мне самому хотелось бы сделать следующее сравнение...

Я конструировал в своё время АЛУ на элементах NAND, и на мой взгляд самая элегантная схема
сумматора на двоичных NAND выглядит следующим образом:
Attachment:
ALU20.gif
ALU20.gif [ 10.89 KiB | Viewed 1395 times ]

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

Если мы вспомним, что находится в одной "коробочке" NAND:
Attachment:
9gnGm.png
9gnGm.png [ 6.49 KiB | Viewed 1395 times ]
То результат сравнения будет довольно удручающим... :-?

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

Поневоле вспоминается фраза из одной обзорной работы по троичной логике:
Sultanov I. A. wrote:
В США, в то время (1958 г.), тоже рассматривали преимущества и недостатки троичного компьютера
и после проведённых теоретических исследований строить троичный компьютер не стали.

_________________
iLavr


09 Oct 2017 12:19
Profile
Maniac

Joined: 10 Mar 2017 06:30
Posts: 276
Reply with quote
То есть, на dg403 это 408 транзисторов, а у Вас получилось 314. Как и предполагалось, за универсальность надо платить.
Ну а что двоичная логика выигрывает, это понятно, её, как минимум, полировали долго.
Кстати, я собирал троичный мультиплексор на 2*cd4007 + cd4016, мне кажется, в терминах транзисторов это дешевле 34 транзисторов на один мультиплексор на dg403.

cd4007 несёт в себе 6 транзисторов, в двух 12. Сколько транзисторов в одной cd4016?


09 Oct 2017 15:37
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
haqreu wrote:
Ну а что двоичная логика выигрывает, это понятно, её, как минимум, полировали долго.

Троичную логику сколько ни полируй, она не станет лучше или проще, чем нарисовал я.
Сложнее - да, проще - нет, потому что у меня модели "почти идеальны"...

Но 314 тразисторов это в 6 раз больше 52-х... И в чем преимущество?
Пока преимущество неочевидно по меньшей мере. :-?

_________________
iLavr


09 Oct 2017 15:54
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 49 posts ]  Go to page Previous  1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.