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

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

Moderator: haqreu

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

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

Post by Lavr »

Вместо эпиграфа... wrote:"А не замахнуться ли нам на Вильяма, понимаете ли, нашего Шекспира?"
Я решил "замахнуться" на троичный сумматор и начать с суммы по модулю 3. :lol:
Я примерно представляю, как его сделать несколькими способами, но у меня накопилось
из разных источников несколько его таблиц истинности.

Мне кажется, для выбранной нами троичной симметричной системы "правильной" будет
какая-то из вот этих таблицы:
1mod3.gif
2mod3.gif
Вроде как они зеркальные с точностью до инверсии...
Зацените критическим взглядом - какая из них действительно правильная, пока я делать не начал... :wink:
А то наделаю лишнего... 8)
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 »

0+1 = 1, так что вторая схема правильная...
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

AlexanderZh wrote:Что-то у меня не хватает мозгов на верхнюю. Какую функцию она реализует всё-же?
Я посмотрел где я её взял - там минимизировали mod3 аппаратно, якобы он проще, если потом
к выходу применить циклическое отрицание - что-то типа этого...
Но тогда их подпись к рисунку вводит в заблуждение....
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

AlexanderZh wrote:а вместе с "циклическим отрицанием" не будет ли больше элементов? Или там несколько функций упрощены?
А я пока не проверял... сам пока думаю, как обойтсь минимальным числом элементов.
AlexanderZh wrote:з.ы. Если не трудно, кинь в ссылку на это?
Да не трудно... ссылки же все здесь, в Ternary - сейчас попробую найти.
Если я не ошибаюсь, то эта: http://trilog.narod.ru/4.htm

Я просто обычно пишу себе краткую выжимку прежде чем что-то собирать, придерживаясь правила:
информация из интернета правдива, если повторяется хотя бы в трёх независимых источниках.
А тут у меня даже в двух не повторилась... поэтому обратился за помощью. :wink:
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

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

Эти "минимизации и упрощения", как оказалось, штука опасная, и надо быть очень внимательным!
По пути вот выяснил, что выполняя схему как раз правой циклической инверсии, "доминимизировался"
так, что уровень логического нуля оказался "плавающим", и без нагрузки 10 кОм стал уплывать. :osad:
Пришлось вернуться переделать... :-?

Заодно выяснил, что проверять элемент на нагрузочную способность надо, подключая эти 10 кОм
и к +Uпит. и к -Uпит., а то может сложиться ситуация, когда эти 10 кОм, подключенные с выхода
к GND, собственно, и создают уровень логического "0". А без них - он плавающий! :lol:

Сейчас займусь сумматором...


P.S. А чего - все расслабились и празднуют 65-летний юбилей президента Путина В.В., пришедшийся на субботу?
Ну с праздником вас тогда... Как шутит один мой знакомый из Израиля: русские - больше евреи, нежели сами
ортодоксальные евреи, у русских - два дня шаббат!
:mrgreen:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Ну и, придерживаясь правильной и одобренной всеми таблицы истинности, я сделал троичный
сумматор по модулю 3 по следующей схеме:
3SUM_MOD3.gif
Я, конечно же, предварительно проверил его по таблице истнности, нажимая на кнопочки,
но интересно было посмотреть на процесс суммирования в динамике, поэтому я подключил
свежесобранный сумматор к сделанному ранее двухразрядному троичному счетчику.
3SUM_CNT.gif
Счетчик как раз наглядно перебирает все аргументы функции, а на осциллограмме видно
где полезли иголки или какие другие артефакты...
3SUM_OSC.gif
Ну и, судя по осциллограмме, сумматор работает верно, согласно таблице.

Иголочки - есть. Логика комбинационная, поскольку сам всю и делал, точно знаю, что пути
сигналов довольно разные по числу каскадов в разных блоках.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

В троичном сумматоре по модулю 3 у меня насчиталось 68 транзисторов.

Кстати, спасибо за схему DG403. Интересно взглянуть.
Как-то давно пытался сам найти, но на тот момент - безуспешно...
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

AlexanderZh wrote:табличка переноса в старший разряд:

Image
Интересная табличка... очень похожа на НЕ XOR.
Если XOR позиционируют как "что-то но не всё", то эта табличка явно: "только всё"!

А точно правильная? С таблицами переноса у меня еще хуже - двух даже примерно похожих нет,
и ни одна не похожа на эту... :-?


P.S. Точно, это практически ОНО и есть. Но в троичной логике называется модно: Consensus
In Boolean logic, the inverse of exclusive or is true when the two inputs are the same, and false when they are different. There are several natural extensions of this idea to ternary logic. One of them is the logical consensus of a set of variables, which is true if all are true, false if all are false, and otherwise unknown:
Consensus.gif
Так что вопрос с правильностью таблицы снят. И стало понятно, откуда у меня такое разнообразие таблиц:
разные авторы используют как различные троичные системы, так и разные кодировки.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

AlexanderZh wrote:
Lavr wrote:Но в троичной логике называется модно: Consensus
Логично)) Только единое мнение даст результат!
Но пришлось его всё-таки назвать Carry с префиксом T... :wink:
С одной стороны - привычнее, с другой стороны - количество символов в имени блока у меня ограничено,
и не все символы можно использовать... 8)

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

Так что схему переноса я "сделал" весьма быстро, для этого пришлось из копии сумматора по модулю 3
повыкидывать часть лишних элементов, ну и нечайно земельку одну откинул - поэтому долго удивлялся
и прыгал с бубном - "ну почему схема проще сумматора не работает? Сумматор ведь работал!" :mrgreen:
3CARRY.gif
Но в итоге всё заработало правильно, хотя времени пол-дня потерял... :osad:
3CAR_OSC.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
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

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

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


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

P.P.S. 2_haqreu. Прочитал по случаю Ваши материалы на Хабре... А Вы - университетский преподаватель?
iLavr
haqreu
Maniac
Posts: 318
Joined: 10 Mar 2017 05:30

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

Post by haqreu »

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. Прочитал по случаю Ваши материалы на Хабре... А Вы - университетский преподаватель?
И преподаватель тоже, а что?
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

haqreu wrote:
Lavr wrote:P.P.S. 2_haqreu. Прочитал по случаю Ваши материалы на Хабре... А Вы - университетский преподаватель?
И преподаватель тоже, а что?
Нет, ничего плохого, просто меня заставили улыбнуться некоторые комментарии на Хабре касательно
троичной логики и преподавтельской деятельности... :lol:

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

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

Post by haqreu »

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

Думаю что тримуксы заведомо проигрышный вариант, не на порядок, конечно, но всё же. Но лично мне очень изящным кажется сама мысль об универсальности одного-единственного строительного кирпичика. Оно, конечно, транзистор тоже ничего так себе кирпичик ;)
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

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