![](http://www.nedopc.org/nedopc/image/nedobanner3.gif) |
nedoPC.orgElectronics hobbyists community established in 2002 |
![](http://www.nedopc.org/nedopc/image/nedobanner4.gif) |
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я решил "замахнуться" на троичный сумматор и начать с суммы по модулю 3. Я примерно представляю, как его сделать несколькими способами, но у меня накопилось из разных источников несколько его таблиц истинности. Мне кажется, для выбранной нами троичной симметричной системы "правильной" будет какая-то из вот этих таблицы: Вроде как они зеркальные с точностью до инверсии... Зацените критическим взглядом - какая из них действительно правильная, пока я делать не начал... А то наделаю лишнего... ![8)](./images/smilies/icon_cool.gif)
_________________ iLavr
|
06 Oct 2017 02:46 |
|
![](./styles/getaway/theme/images/spacer.gif) |
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
0+1 = 1, так что вторая схема правильная...
|
06 Oct 2017 03:25 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я посмотрел где я её взял - там минимизировали mod3 аппаратно, якобы он проще, если потом к выходу применить циклическое отрицание - что-то типа этого... Но тогда их подпись к рисунку вводит в заблуждение....
_________________ iLavr
|
06 Oct 2017 14:23 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А я пока не проверял... сам пока думаю, как обойтсь минимальным числом элементов. Да не трудно... ссылки же все здесь, в Ternary - сейчас попробую найти. Если я не ошибаюсь, то эта: http://trilog.narod.ru/4.htmЯ просто обычно пишу себе краткую выжимку прежде чем что-то собирать, придерживаясь правила: информация из интернета правдива, если повторяется хотя бы в трёх независимых источниках. А тут у меня даже в двух не повторилась... поэтому обратился за помощью. ![:wink:](./images/smilies/icon_wink.gif)
_________________ iLavr
|
06 Oct 2017 15:38 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
![Reply with quote Reply with quote](./styles/getaway/imageset/en/icon_post_quote.gif)
Действительно, эти две таблицы, приведенные мной в старте топика, практически " идентичны", если так можно выразиться, с точностью до правой циклической инверсии. Впрочем, мне это было и с самого начала видно, почему я и выбрал эти таблицы из всех других. Приводит ли этот "трюк" к упрощению с точки зрения числа элементов - пока не знаю. Эти "минимизации и упрощения", как оказалось, штука опасная, и надо быть очень внимательным! По пути вот выяснил, что выполняя схему как раз правой циклической инверсии, " доминимизировался" так, что уровень логического нуля оказался "плавающим", и без нагрузки 10 кОм стал уплывать. Пришлось вернуться переделать... Заодно выяснил, что проверять элемент на нагрузочную способность надо, подключая эти 10 кОми к +Uпит. и к -Uпит., а то может сложиться ситуация, когда эти 10 кОм, подключенные с выхода к GND, собственно, и создают уровень логического " 0". А без них - он плавающий! Сейчас займусь сумматором... P.S. А чего - все расслабились и празднуют 65-летний юбилей президента Путина В.В., пришедшийся на субботу? Ну с праздником вас тогда... Как шутит один мой знакомый из Израиля: русские - больше евреи, нежели сами ортодоксальные евреи, у русских - два дня шаббат! ![mrgreen :mrgreen:](./images/smilies/icon_mrgreen.gif)
_________________ iLavr
|
07 Oct 2017 04:41 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну и, придерживаясь правильной и одобренной всеми таблицы истинности, я сделал троичный сумматор по модулю 3 по следующей схеме: Я, конечно же, предварительно проверил его по таблице истнности, нажимая на кнопочки, но интересно было посмотреть на процесс суммирования в динамике, поэтому я подключил свежесобранный сумматор к сделанному ранее двухразрядному троичному счетчику. Счетчик как раз наглядно перебирает все аргументы функции, а на осциллограмме видно где полезли иголки или какие другие артефакты... Ну и, судя по осциллограмме, сумматор работает верно, согласно таблице. Иголочки - есть. Логика комбинационная, поскольку сам всю и делал, точно знаю, что пути сигналов довольно разные по числу каскадов в разных блоках.
_________________ iLavr
|
07 Oct 2017 14:33 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
В троичном сумматоре по модулю 3 у меня насчиталось 68 транзисторов.
Кстати, спасибо за схему DG403. Интересно взглянуть. Как-то давно пытался сам найти, но на тот момент - безуспешно...
_________________ iLavr
|
07 Oct 2017 15:34 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Интересная табличка... очень похожа на НЕ XOR. Если XOR позиционируют как " что-то но не всё", то эта табличка явно: " только всё"! А точно правильная? С таблицами переноса у меня еще хуже - двух даже примерно похожих нет, и ни одна не похожа на эту... P.S. Точно, это практически ОНО и есть. Но в троичной логике называется модно: Consensus![](images/spacer.gif) | ![](images/spacer.gif) | ![](images/spacer.gif) | ![](images/spacer.gif) | Quote: 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: | ![](images/spacer.gif) | ![](images/spacer.gif) | ![](images/spacer.gif) | ![](images/spacer.gif) |
Так что вопрос с правильностью таблицы снят. И стало понятно, откуда у меня такое разнообразие таблиц: разные авторы используют как различные троичные системы, так и разные кодировки.
_________________ iLavr
|
07 Oct 2017 16:21 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Но пришлось его всё-таки назвать Carry с префиксом T... С одной стороны - привычнее, с другой стороны - количество символов в имени блока у меня ограничено, и не все символы можно использовать... Именно поэтому - EQU_FALS, а не EQU_FALSE, хотя это " =-1", ну и, я надеюсь, все угадали, что EQU_TRUE - это: " =1". И как-то так удачно вышло, что я этим функциям сразу приделал и прямой и инверсный выходы... Так что схему переноса я " сделал" весьма быстро, для этого пришлось из копии сумматора по модулю 3повыкидывать часть лишних элементов, ну и нечайно земельку одну откинул - поэтому долго удивлялся и прыгал с бубном - " ну почему схема проще сумматора не работает? Сумматор ведь работал!" ![mrgreen :mrgreen:](./images/smilies/icon_mrgreen.gif) Но в итоге всё заработало правильно, хотя времени пол-дня потерял... ![sad :osad:](./images/smilies/icon_sad.gif)
_________________ iLavr
|
08 Oct 2017 09:31 |
|
![](./styles/getaway/theme/images/spacer.gif) |
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Так а сколько транзисторов в итоге в сумматоре?
|
08 Oct 2017 11:35 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Погодите, экий Вы торопливый! ![:wink:](./images/smilies/icon_wink.gif) Ещё до итога не дошли... Но в итоге я обязательно скажу, сколько там и чего и " в попугаях" и " в слонёнках"... Но поскольку путь к финалу мне виднее, чем остальным, скажу прямо - итог будет не утешительный... ![:-?](./images/smilies/icon_confused.gif) Ну или не радужный, можно и так сказать... P.S. Кстати, мне пока никто не сказал, что там вырисовывается с числом транзисторов в аналогичной конструкции на "тримуксах", а я в упор не знаю совсем по причине см. здесь... P.P.S. 2_haqreu. Прочитал по случаю Ваши материалы на Хабре... А Вы - университетский преподаватель?
_________________ iLavr
|
08 Oct 2017 13:16 |
|
![](./styles/getaway/theme/images/spacer.gif) |
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
![Reply with quote Reply with quote](./styles/getaway/imageset/en/icon_post_quote.gif)
Так давайте считать. Вы же полусумматор собираете, так? (из двух входов 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 транзисторов. И преподаватель тоже, а что?
|
08 Oct 2017 14:28 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Нет, ничего плохого, просто меня заставили улыбнуться некоторые комментарии на Хабре касательно троичной логики и преподавтельской деятельности... Что касается числа транзисторов, то априори мне кажется, что их число будет примерно одинаковым, поскольку трудно обмануть СДНФ. Причем мне тут проще, поскольку я имею возможность конструировать сами блоки под конкретные функции. А "тримукс" - это одно и то же число транзисторов на любые функции. Но итоговое число ключей не будет глобально различаться по моему мнению. Впрочем зачем забегать вперед? Истина почти уже рядом - вот только последний блок доделаю... ![:wink:](./images/smilies/icon_wink.gif)
_________________ iLavr
|
08 Oct 2017 14:45 |
|
![](./styles/getaway/theme/images/spacer.gif) |
haqreu
Maniac
Joined: 10 Mar 2017 05:30 Posts: 318
|
Ай, комментарии на хабре это за гранью добра и зла Думаю что тримуксы заведомо проигрышный вариант, не на порядок, конечно, но всё же. Но лично мне очень изящным кажется сама мысль об универсальности одного-единственного строительного кирпичика. Оно, конечно, транзистор тоже ничего так себе кирпичик ![;)](./images/smilies/icon_wink.gif)
|
08 Oct 2017 14:51 |
|
![](./styles/getaway/theme/images/spacer.gif) |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну... как университетского преподавателя, эта мысль не должна Вас так уж сильно восхищать. Я лично не испытал на этот счет никаких особых эмоций - я не зря упомянул выше слово СДНФ. И в троичной логике любая сложная функция, заданная таблицей, строится по этой самой дизъюнктивной нормальной форме. Другими словами мультиплексор в той или иной форме присутствует. Если Вы посмотрите внимательно на мои схемы - то я уже дважды использовал мультиплексор "на рассыпухе". Сейчас и в третий раз использую - ну никуда не убежать мне от СДНФ... ![8)](./images/smilies/icon_cool.gif)
_________________ iLavr
|
08 Oct 2017 15:03 |
|
|
Who is online |
Users browsing this forum: No registered users and 22 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
|
|