Изменения

Перейти к: навигация, поиск

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

8883 байта добавлено, 10:16, 1 января 2015
Нет описания правки
{{ОпределениеВ [[Троичная_логика |definition='''Функциональная схема''' (англ. ''Functional Flow Block Diagram'') — документ, разъясняющий процессы, протекающие в отдельных функциональных цепях изделия (установки) или изделия (установки) в целом. Функциональная схема является экспликацией (поясняющим материалом) отдельных видов процессов, протекающих в целостных функциональных блоках троичной логике]] "лжи" и цепях устройства.}}== Принципы построения функциональной схемы ==Функциональная схема — вид графической модели изделия. Их использование "истине" соответствует <tex>-</tex> и построение позволяет наглядно отразить устройство функциональных (рабочих) изменений, описание которых оперирует любыми (в том числе и несущественными) микросхемами, БИС и СБИС. Поскольку функциональные схемы не имеют собственной системы условных обозначений, их построение допускает сочетание кинематических, электрических и алгоритмических обозначений (для таких схем более подходящим термином оказывается комбинированные схемы).== Троичный оператор И==Троичный оператор И аналогичен двоичному оператору И<tex>+</tex>. Ниже приведена таблица истинности для данного оператораТретьему состоянию соответствует <tex>0</tex>.
В Мы будем рассматривать простую троичную [[Реализация_булевой_функции_схемой_из_функциональных_элементов |функциональную схему]] — троичный [[Троичная_логика Сумматор|троичной логикесумматор]] "лжи" и "истине" соответствует . В нём используются такие обозначения: <tex>\{0</tex> и <tex>, 1, 2\}</tex>. Третьему состоянию соответствует <tex>1</tex>(несимметричная троичная система счисления).
{|align="left" style="width:10cm" borderСоставные части полусумматора =1|+|-align="left"! Полусумматор состоит из двух частей: сложения по модулю <tex>X</tex>||<tex>Y</tex>||<tex>AND</tex>|-align="left"| <tex>0</tex>||<tex>0</tex>||<tex>0</tex>|-align="left"| <tex>0</tex>||<tex>1</tex>||<tex>03</tex>и переноса в следующий разряд.|-align="left"| <tex>0</tex>||<tex>2</tex>||<tex>0</tex>|-align="left"| <tex>1</tex>||<tex>0</tex>||<tex>0</tex>|-align="left"| Логическое сложение по модулю <tex>1</tex>||<tex>13</tex>||<tex>1</tex>|-align="left"| <tex>1</tex>||<tex>2</tex>||<tex>1</tex>|-align="left"| <tex>2</tex>||<tex>0</tex>||<tex>0</tex>|-align="left"| <tex>2</tex>||<tex>1</tex>||<tex>1</tex>|-align="left"| <tex>2</tex>||<tex>2</tex>||<tex>2</tex>|}                      == Логическое сложение по модулю 3 при одном неполном слагаемом===
Для сложения одного троичного разряда с разрядом переноса.
Результат не меняется при перемене мест операндов.
[[Файл:Сложение по модулю 3.png‎|right|200px|thumb|Сумма по модулю 3]]
{|align="left" style="widthbackground-color:10cm#CCC;margin:0.5px" border=1|+|-alignstyle="leftbackground-color:#EEE;padding:2px 30px"| <tex>\bf{x_1=x}</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> || first-|-alignstyle="leftbackground-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> || second-|-alignstyle="leftbackground-color:#EEE;padding:2px 30px"| <tex>z\bf{s}</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> || sum
|}
=== Разряд переноса при сложении с неполным слагаемым ===
Для сложения одного троичного разряда с разрядом переноса.
Результат не изменяется при перемене мест операндов.
[[Файл:Перенос.png‎|right|200px|thumb|Перенос]]
{| style="background-color:#CCC;margin:0.5px"|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_1=x}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{c}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|}
Результат не изменяется при перемене мест операндов.
{|align="left" style="widthbackground-color:#CCC;margin:10cm0.5px" border=1|+|-alignstyle="leftbackground-color:#EEE;padding:2px 30px"! | <tex>\bf{x_1=x}</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|-align|style="leftbackground-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|-align|style="leftbackground-color:#EEE;padding:2px 30px"| <tex>transfer\bf{sum}</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>10</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>02</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>01</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>02</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>01</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|-align|style="leftbackground-color:#EEE;padding:2px 30px"| <tex>sum\bf{transfer}</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>01</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>20</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>10</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>20</tex> ||style="background-color:#FFF;padding:2px 30px"| <tex>10</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
|}
          ''transfer'' содержит разряд переноса, ''sum'' содержит сумму по модулю <tex>3. Результат операции занимает 1 и 2</3 троичных разрядаtex>.
== Троичный полусумматор в несимметричной троичной системе счисления ==
Результат не изменяется при перемене мест операндов.
Троичный полусумматор можно рассматривать, как объединение двух бинарных троичных функций: «логического сложения по модулю <tex>3 </tex> в троичной несимметричной системе счисления» и «разряд переноса при сложении двух полных троичных разрядов в троичной несимметричной системе счисления».
В отличие от предыдущих бинарных троичных функций с одноразрядным результатом, результат функции занимает 1 и 2/3 троичных разрядов, так как при сложении в троичной несимметричной системе в разряде переноса не бывает значения больше единицы[[Файл:Троичнй полусумматор.png‎|right|200px|thumb|Троичный полусумматор]]{|align="left" style="widthbackground-color:10cm#CCC;margin:0.5px" border=1|+|-alignstyle="leftbackground-color:#EEE;padding:2px 30px"! | <tex>\bf{x_1=x}</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>2</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>2</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>2</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|-align|style="leftbackground-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>2</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>1</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>0</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|-align|style="leftbackground-color:#EEE;padding:2px 30px"| <tex>transfer\bf{sum}</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>1</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>1</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>0</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>1</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|-align|style="leftbackground-color:#EEE;padding:2px 30px"| <tex>sum\bf{c_{transfer}}</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>1</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>0</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>2</tex>|style="background-color:#FFF;padding:2px 30px"|<tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>2</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
|}
<tex>c_{transfer}</tex> — перенос в следующий разряд, несимметричный.
''sum'' — сумма по модулю <tex>3</tex>, несимметричная.
== Полное троичное логическое сложение с переносом в несимметричной троичной системе счисления ==
Полный троичный одноразрядный сумматор является неполной тернарной троичной логической функцией, так как в разряде переноса только два значения <tex>0</tex> и <tex>1</tex>.
[[Файл:Полный троичный сумматор.png‎|right|200px|thumb|Троичный сумматор]]Результат не изменяется при перемене мест операндов.{| style="background-color:#CCC;margin:0.5px"|style="background-color:#EEE;padding:2px 10px"| <tex>\bf{x_0}</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>''transfer'' — перенос в n + |style="background-color:#FFF;padding:2px 10px"| <tex>1, несимметричный.</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>''sum'' — сумма по модулю 3, несимметричная.|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style=Троичный вычитатель"background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>Полный троичный одноразрядный вычитатель является неполной тринарной троичной логической функцией, так как в разряде займа только два значения |style="background-color:#FFF;padding:2px 10px"| <tex>0 и </tex>|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1. Результат имеет длину </tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1 и 2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</3 троичных разряда.tex>Результат изменяется при перемене мест операндов.|-|style="background-color:#EEE;padding:2px 10px"| <tex>\bf{x_1}</tex>|alignstyle="leftbackground-color:#FFF;padding:2px 10px" | <tex>2</tex>|style="widthbackground-color:10cm#FFF;padding:2px 10px" border| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|+style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-aligncolor:#FFF;padding:2px 10px"| <tex>1</tex>|style="leftbackground-color:#FFF;padding:2px 10px"| <tex>0</tex>! |style="background-color:#FFF;padding:2px 10px"| <tex>x_10</tex>|style=x"background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>2</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>2</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>2</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>1</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|-align|style="leftbackground-color:#EEE;padding:2px 10px"| <tex>\bf{x_2}</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>x_01</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style=y"background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>21</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>1</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>0</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>20</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>10</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>20</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>10</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-aligncolor:#FFF;padding:2px 10px"| <tex>0</tex>|style="leftbackground-color:#FFF;padding:2px 10px"| <tex>0</tex>|-|style="background-color:#EEE;padding:2px 10px"| <tex>transfer\bf{sum}</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>12</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>1</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>0</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>1</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>0</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|-align|style="leftbackground-color:#EEE;padding:2px 10px"| <tex>\bf{transfer}</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>sum1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>1</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>0</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>21</tex>|style="background-color:#FFF;padding:2px 10px"|<tex>0</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>20</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>21</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex> |style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|}
== См. также ==
* [[Двоичный каскадный сумматор]]
* [[Контактная схема]]
* [[Квантовые гейты]]
==Источники информации==
* [https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8 Википедия — Некоторые троичные схемы]
* [https://ru.wikipedia.org/wiki/%D0%A1%D1%83%D0%BC%D0%BC%D0%B0%D1%82%D0%BE%D1%80 Википедия — Различные сумматоры]
[[Категория: Дискретная математика и алгоритмы]]
       В разряде займа не бывает третьего значения троичного разряда (2), так как в «худшем» случае <tex>0_{10} - 2_{10} - 2_{10} = -4_{10} = -11_3</tex>, то есть в старшем разряде «1». Единица займа возникает в 9-ти случаях из 18.==См. также==* [http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D1%80%D0%BE%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0 Троичная логика]==Источники информации== * [httpsКатегория://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8 Википедия — Некоторые троичные схемыСхемы из функциональных элементов ]* [https://ru.wikipedia.org/wiki/%D0%A1%D1%83%D0%BC%D0%BC%D0%B0%D1%82%D0%BE%D1%80#cite_note-9 Википедия — Различные сумматоры]
146
правок

Навигация