Троичный сумматор — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(не показано 15 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{Определение
 
|definition=
 
'''Функциональная схема''' (англ. ''Functional Flow Block Diagram'') — документ, разъясняющий процессы, протекающие в отдельных функциональных цепях изделия (установки) или изделия (установки) в целом. Функциональная схема является экспликацией (поясняющим материалом) отдельных видов процессов, протекающих в целостных функциональных блоках и цепях устройства.}}
 
== Принципы построения троичной функциональной схемы ==
 
Функциональная схема — вид графической модели изделия. Их использование и построение позволяет наглядно отразить устройство функциональных (рабочих) изменений, описание которых оперирует любыми (в том числе и несущественными) микросхемами, БИС и СБИС. Поскольку функциональные схемы не имеют собственной системы условных обозначений, их построение допускает сочетание кинематических, электрических и алгоритмических обозначений (для таких схем более подходящим термином оказывается комбинированные схемы).
 
 
 
В [[Троичная_логика |троичной логике]] "лжи" и "истине" соответствует <tex>-</tex> и <tex>+</tex>. Третьему состоянию соответствует <tex>0</tex>.
 
В [[Троичная_логика |троичной логике]] "лжи" и "истине" соответствует <tex>-</tex> и <tex>+</tex>. Третьему состоянию соответствует <tex>0</tex>.
  
Мы будем рассматривать простую троичную схему — троичный сумматор. Поэтому, вместо обозначений <tex>\{-, 0, +\}</tex>, мы используем <tex>\{0, 1, 2\}</tex>.
+
Мы будем рассматривать простую троичную [[Реализация_булевой_функции_схемой_из_функциональных_элементов |функциональную схему]] — троичный [[Сумматор|сумматор]]. В нём используются такие обозначения: <tex>\{0, 1, 2\}</tex> (несимметричная троичная система счисления).
  
 
== Составные части полусумматора ==
 
== Составные части полусумматора ==
Полусумматор состоит из двух частей: сложения по модулю <tex>3</tex> и переноса в <tex>n + 1</tex> разряд.
+
Полусумматор состоит из двух частей: сложения по модулю <tex>3</tex> и переноса в следующий разряд.
 
=== Логическое сложение по модулю <tex>3</tex> при одном неполном слагаемом ===
 
=== Логическое сложение по модулю <tex>3</tex> при одном неполном слагаемом ===
 
Для сложения одного троичного разряда с разрядом переноса.
 
Для сложения одного троичного разряда с разрядом переноса.
  
 
Результат не меняется при перемене мест операндов.
 
Результат не меняется при перемене мест операндов.
 +
[[Файл:Сложение по модулю 3.png‎|right|200px|thumb|Сумма по модулю 3]]
  
 
{| style="background-color:#CCC;margin:0.5px"
 
{| style="background-color:#CCC;margin:0.5px"
!style="background-color:#EEE"| <tex>\bf{x_1=x}</tex>
+
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_1=x}</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#EEE"| <tex>first</tex>
 
 
 
 
|-
 
|-
 
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>
 
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>
Строка 34: Строка 27:
 
|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:#EEE;padding:2px 30px"| <tex>second</tex>
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{z}</tex>
+
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{s}</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>2</tex>
 
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
Строка 43: Строка 35:
 
|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:#EEE;padding:2px 30px"| <tex>sum</tex>
 
 
|}
 
|}
 +
 +
 
=== Разряд переноса при сложении с неполным слагаемым ===
 
=== Разряд переноса при сложении с неполным слагаемым ===
 
Для сложения одного троичного разряда с разрядом переноса.
 
Для сложения одного троичного разряда с разрядом переноса.
  
Результат не изменяется при перемене ест операндов.
+
Результат не изменяется при перемене мест операндов.
 +
[[Файл:Перенос.png‎|right|200px|thumb|Перенос]]
  
 
{| style="background-color:#CCC;margin:0.5px"
 
{| style="background-color:#CCC;margin:0.5px"
!style="background-color:#EEE"| <tex>\bf{x_1=x}</tex>
+
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_1=x}</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#EEE"| <tex>first</tex>
 
 
 
 
|-
 
|-
 
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>
 
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>
Строка 68: Строка 60:
 
|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:#EEE;padding:2px 30px"| <tex>second</tex>
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{z}</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>1</tex>
 
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
 
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
Строка 77: Строка 68:
 
|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:#EEE;padding:2px 30px"| <tex>transfer</tex>
 
 
|}
 
|}
 +
 +
 
== Троичный полусумматор с одним неполным слагаемым ==
 
== Троичный полусумматор с одним неполным слагаемым ==
 
Первая ступень полного троичного сумматора.
 
Первая ступень полного троичного сумматора.
Строка 86: Строка 78:
 
Результат не изменяется при перемене мест операндов.
 
Результат не изменяется при перемене мест операндов.
 
{| style="background-color:#CCC;margin:0.5px"
 
{| style="background-color:#CCC;margin:0.5px"
!style="background-color:#EEE"| <tex>\bf{x_1=x}</tex>
+
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_1=x}</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#EEE"| <tex>first</tex>
 
 
 
 
|-
 
|-
 
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>
 
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>
Строка 103: Строка 93:
 
|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:#EEE;padding:2px 30px"| <tex>second</tex>
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{z_{sum}}</tex>
+
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{sum}</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>2</tex>
 
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
Строка 112: Строка 101:
 
|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:#EEE;padding:2px 30px"| <tex>sum</tex>
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{z_{transfer}}</tex>
+
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{transfer}</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>
Строка 121: Строка 109:
 
|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:#EEE;padding:2px 30px"| <tex>transfer</tex>
 
 
|}
 
|}
 
''transfer'' содержит разряд переноса, ''sum'' содержит сумму по модулю <tex>3</tex>.
 
''transfer'' содержит разряд переноса, ''sum'' содержит сумму по модулю <tex>3</tex>.
 
Результат операции занимает <tex>1</tex> и <tex>2/3</tex> троичных разряда.
 
  
 
== Троичный полусумматор в несимметричной троичной системе счисления ==
 
== Троичный полусумматор в несимметричной троичной системе счисления ==
Строка 134: Строка 119:
 
Троичный полусумматор можно рассматривать, как объединение двух бинарных троичных функций: «логического сложения по модулю <tex>3</tex> в троичной несимметричной системе счисления» и «разряд переноса при сложении двух полных троичных разрядов в троичной несимметричной системе счисления».
 
Троичный полусумматор можно рассматривать, как объединение двух бинарных троичных функций: «логического сложения по модулю <tex>3</tex> в троичной несимметричной системе счисления» и «разряд переноса при сложении двух полных троичных разрядов в троичной несимметричной системе счисления».
  
В отличие от предыдущих бинарных троичных функций с одноразрядным результатом, результат функции занимает <tex>1</tex> и <tex>2/3</tex> троичных разрядов, так как при сложении в троичной несимметричной системе в разряде переноса не бывает значения больше единицы.
+
[[Файл:Троичнй полусумматор.png‎|right|200px|thumb|Троичный полусумматор]]
 
 
 
{| style="background-color:#CCC;margin:0.5px"
 
{| style="background-color:#CCC;margin:0.5px"
!style="background-color:#EEE"| <tex>\bf{x_1=x}</tex>
+
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_1=x}</tex>
!style="background-color:#FFF"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
!style="background-color:#FFF"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
!style="background-color:#FFF"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
!style="background-color:#EEE"| <tex>first</tex>
 
 
 
 
|-
 
|-
 
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>
 
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_0=y}</tex>
Строка 160: Строка 142:
 
|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:#EEE;padding:2px 30px"| <tex>second</tex>
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{z_{sum}}</tex>
+
|style="background-color:#EEE;padding:2px 30px"| <tex>\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>1</tex>
 
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
Строка 172: Строка 153:
 
|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:#EEE;padding:2px 30px"| <tex>sum</tex>
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{z_{transfer}}</tex>
+
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{c_{transfer}}</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>
Строка 184: Строка 164:
 
|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:#EEE;padding:2px 30px"| <tex>transfer</tex>
 
 
|}
 
|}
''transfer'' — перенос в <tex>n + 1</tex>, несимметричный.
+
<tex>c_{transfer}</tex> — перенос в следующий разряд, несимметричный.
  
 
''sum'' — сумма по модулю <tex>3</tex>, несимметричная.
 
''sum'' — сумма по модулю <tex>3</tex>, несимметричная.
  
 
== Полное троичное логическое сложение с переносом в несимметричной троичной системе счисления ==
 
== Полное троичное логическое сложение с переносом в несимметричной троичной системе счисления ==
Полный троичный одноразрядный сумматор является неполной тринарной троичной логической функцией, так как в разряде переноса только два значения <tex>0</tex> и <tex>1</tex>. В отличие от предыдущих троичных тринарных функций с одноразрядным результатом, результат имеет длину <tex>1</tex> и <tex>2/3</tex> троичных разряда.
+
Полный троичный одноразрядный сумматор является неполной тернарной троичной логической функцией, так как в разряде переноса только два значения <tex>0</tex> и <tex>1</tex>.
 +
 
 +
[[Файл:Полный троичный сумматор.png‎|right|200px|thumb|Троичный сумматор]]
 
Результат не изменяется при перемене мест операндов.
 
Результат не изменяется при перемене мест операндов.
 
{| style="background-color:#CCC;margin:0.5px"
 
{| style="background-color:#CCC;margin:0.5px"
!style="background-color:#EEE"| <tex>\bf{x_0}</tex>
+
|style="background-color:#EEE;padding:2px 10px"| <tex>\bf{x_0}</tex>
!style="background-color:#FFF"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
!style="background-color:#FFF"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
!style="background-color:#FFF"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
!style="background-color:#FFF"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
!style="background-color:#EEE"| <tex>first</tex>
 
 
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_1}</tex>
+
|style="background-color:#EEE;padding:2px 10px"| <tex>\bf{x_1}</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#EEE;padding:2px 30px"| <tex>second</tex>
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{x_2}</tex>
+
|style="background-color:#EEE;padding:2px 10px"| <tex>\bf{x_2}</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#EEE;padding:2px 30px"| <tex>transfer</tex>
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{z_{sum}}</tex>
+
|style="background-color:#EEE;padding:2px 10px"| <tex>\bf{sum}</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>2</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>2</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#EEE;padding:2px 30px"| <tex>sum (mod 3)</tex>
 
 
|-
 
|-
|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{z_{transfer}}</tex>
+
|style="background-color:#EEE;padding:2px 10px"| <tex>\bf{transfer}</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>1</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>1</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>
+
|style="background-color:#FFF;padding:2px 10px"| <tex>0</tex>
|style="background-color:#EEE;padding:2px 30px"| <tex>transfer</tex>
 
 
|}
 
|}
В разряде переноса не бывает третьего значения троичного разряда <tex>(2)</tex>, так как в «худшем» случае <tex>2_{10}+2_{10}+1_{10}=5_{10}=12_3</tex>, то есть в старшем разряде <tex>«1»</tex>. Единица переноса возникает в <tex>9</tex>-ти случаях из <tex>18</tex>.
+
 
Как в двоичной логике двоичный тринарный полный сумматор заменяется двумя бинарными полусумматорами, так и в троичной логике троичный тринарный полный сумматор можно заменить на два троичных бинарных полусумматора, только с той разницей, что два двоичных бинарных полусумматора одинаковые, а два троичных бинарных полусумматора разные.
+
== См. также ==
1. Один полусумматор полный бинарный («сложение двух полных троичных разрядов»). Второй полусумматор — не полный бинарный («сложение одного полного троичного разряда с неполным троичным разрядом (с <tex>2/3</tex> от полного троичного разряда)»), так как в разряде переноса не бывает значений больших чем <tex>«1»</tex>.
+
* [[Двоичный каскадный сумматор]]
2. Один неполный бинарный «сложение <tex>1</tex> троичного разряда с <tex>2/3</tex> троичного разряда». Второй бинарный несимметричный «сложение <tex>1</tex> троичного разряда с <tex>1</tex> и <tex>2/3</tex> троичного разряда». Результат — двухразрядный длиной <tex>1</tex> и <tex>2/3</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%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 Википедия — Различные сумматоры]
+
* [https://ru.wikipedia.org/wiki/%D0%A1%D1%83%D0%BC%D0%BC%D0%B0%D1%82%D0%BE%D1%80 Википедия — Различные сумматоры]
 +
 
 +
[[Категория: Дискретная математика и алгоритмы]]
 +
 
 +
[[Категория: Схемы из функциональных элементов ]]

Версия 10:16, 1 января 2015

В троичной логике "лжи" и "истине" соответствует [math]-[/math] и [math]+[/math]. Третьему состоянию соответствует [math]0[/math].

Мы будем рассматривать простую троичную функциональную схему — троичный сумматор. В нём используются такие обозначения: [math]\{0, 1, 2\}[/math] (несимметричная троичная система счисления).

Составные части полусумматора

Полусумматор состоит из двух частей: сложения по модулю [math]3[/math] и переноса в следующий разряд.

Логическое сложение по модулю [math]3[/math] при одном неполном слагаемом

Для сложения одного троичного разряда с разрядом переноса.

Результат не меняется при перемене мест операндов.

Сумма по модулю 3
[math]\bf{x_1=x}[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math]
[math]\bf{x_0=y}[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math]
[math]\bf{s}[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]2[/math] [math]1[/math] [math]0[/math]


Разряд переноса при сложении с неполным слагаемым

Для сложения одного троичного разряда с разрядом переноса.

Результат не изменяется при перемене мест операндов.

Перенос
[math]\bf{x_1=x}[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math]
[math]\bf{x_0=y}[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math]
[math]\bf{c}[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math]


Троичный полусумматор с одним неполным слагаемым

Первая ступень полного троичного сумматора.

Для сложения одного троичного разряда с разрядом переноса.

Результат не изменяется при перемене мест операндов.

[math]\bf{x_1=x}[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math]
[math]\bf{x_0=y}[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math]
[math]\bf{sum}[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]2[/math] [math]1[/math] [math]0[/math]
[math]\bf{transfer}[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math]

transfer содержит разряд переноса, sum содержит сумму по модулю [math]3[/math].

Троичный полусумматор в несимметричной троичной системе счисления

Троичное логическое сложение двух троичных разрядов с разрядом переноса в несимметричной троичной системе счисления.

Результат не изменяется при перемене мест операндов.

Троичный полусумматор можно рассматривать, как объединение двух бинарных троичных функций: «логического сложения по модулю [math]3[/math] в троичной несимметричной системе счисления» и «разряд переноса при сложении двух полных троичных разрядов в троичной несимметричной системе счисления».

Троичный полусумматор
[math]\bf{x_1=x}[/math] [math]2[/math] [math]2[/math] [math]2[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math]
[math]\bf{x_0=y}[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math]
[math]\bf{sum}[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math]
[math]\bf{c_{transfer}}[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]2[/math] [math]1[/math] [math]0[/math]

[math]c_{transfer}[/math] — перенос в следующий разряд, несимметричный.

sum — сумма по модулю [math]3[/math], несимметричная.

Полное троичное логическое сложение с переносом в несимметричной троичной системе счисления

Полный троичный одноразрядный сумматор является неполной тернарной троичной логической функцией, так как в разряде переноса только два значения [math]0[/math] и [math]1[/math].

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

Результат не изменяется при перемене мест операндов.

[math]\bf{x_0}[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]0[/math]
[math]\bf{x_1}[/math] [math]2[/math] [math]2[/math] [math]2[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]2[/math] [math]2[/math] [math]2[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math]
[math]\bf{x_2}[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math]
[math]\bf{sum}[/math] [math]2[/math] [math]1[/math] [math]0[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]2[/math] [math]0[/math] [math]2[/math] [math]1[/math] [math]2[/math] [math]1[/math] [math]0[/math]
[math]\bf{transfer}[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]1[/math] [math]1[/math] [math]0[/math] [math]1[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math] [math]0[/math]

См. также

Источники информации