www.chms.ru - вывоз мусора в Балашихе 

Динамо-машины  Обратные коды 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [ 52 ] 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189

ним. Хотя полный одноразрядный сумматор рис. 2-15, б, подобно схеме рис. 2-10, состоит из двух одинаковых

I-----------1 I----------1

\или\

Ш! С

Рис. 2-15. Построения двоичных одноразрядных сумматоров, полученные путем применения принципа взаимности: и) из схемы рис. 2-8; б) из схемы рис. 2-10.

частей, каждая часть в отдельности, заключенная в пунктирную рамку, здесь не является полусумматором.

2.3. Одноразрядные комбинационные сумматоры для десятичной и других систем счисления

2.3.1. Принципы построения десятичных сумматоров комбинационного типа. Задача о построении десятичного одноразрядного сумматора могла бы в принципе решаться аналогично задаче о построении двоичного одноразрядного сумматора. Однако если там шла речь о получении двух переключательных функций, каждая из которых зависела от трех аргументов, то здесь задача состоит в получении по меньшей мере 5 переключательных функций от 9 аргументов. (Каждая из десятичных цифр слагаемых и десятичная цифра суммы представляются не менее чем четырьмя двоичнымицифрами; кроме того, должен быть учтен сигнал переноса в данный разряд и сформирован сигнал переноса в следующий разряд.) Правда, не все комбинации входных переменных возможны. Вообще в 9 двоичных



разрядах может быть 2* = 512 различных комбинаций. Однако если эти 9 разрядов используются для представ, ления двух десятичных цифр (слагаемых) и одной двоичной цифры (переноса в данный разряд), то в них может быть только 10x10x2=200 различных комбинаций. Следовательно, таблица десятичного сложения, построенная-ио аналогии с таблицей двоичного сложения (таблица 2-1 на стр. 147), должна содержать вместо восьми двести строк. Столбцов в ней тоже должно быть не два, как в таблице двоичного сложения, а пять (по числу выходных функций).

Имея такую таблицу, можно было бы далее выписать канонические формы для пяти выходных функций и тождественными преобразованиями этих уравнений попытаться найти оптимальное построение десятичного одноразрядного сумматора. Но если формальные методы синтеза логических схем оказались неэффективными применительно к построению двоичных сумматоров, то тем более трудно воспользоваться ими в рассматриваемой задаче. При этом вряд ли можно надеяться и на эмпирические методы (подбор оптимальной схемы, перебор всех возможностей), используемые при построении двоичных сумматоров.

Задача об отыскании оптимального построения десятичного одноразрядного сумматора оказалась бы еще значительно более сложной (но при этом и намного более важной), если бы заранее не был задан способ кодирования десятичных цифр. В этом случае может быть поставлена цель отыскать такой способ кодирования, при котором схема десятичного одноразрядного сумматора получается наиболее простой, а также, разумеется, построить эту оптимальную схему сумматора. Но даже и для какого-нибудь определенного способа кодирования задача о построении оптимальной схемы десятичного одноразрядного сумматора не решена. При использовании обычных кодов задачу суммирования десятичных цифр большей частью удается подразделить на два этапа:

(1) суммирование двоичных кодов десятичных цифр по правилам двоичной арифметики;

(2) коррекция результата путем добавления или вычитания, некоторой поправки, величина которой не слишком сложным образом связана с величиной некорректированного результата.



Пусть, например, десятичные цифры записываются 4-разрядным двоичным кодом laquo;8, 4, 2, 1 raquo; (см. раздел 1.6). Предположим, что на первом этапе две десятичные цифры слагаемых и цифра переноса в данный десятичный разряд просуммированы - по правилам двоичной арифметики. Далее возможны 3 случая:

(1) Если полученный результат меньше чем 10, то никакой дальнейшей коррекции не требуется: четыре двоичных разряда суммы, полученные по правилам двоичной арифметики, непосредственно являются изображением десятичной цифры суммы; переноса в следующий десятичный разряд нет.

(2) Если результат вьшолнения первого этапа заключен в пределах от 10 до 15, то необходимо передать сигнал переноса единицы в следующий десятичный разряд. При этом в данном десятичном разряде из полученной суммы нужно вычесть 10.

(3) Если результат выполнения первого этапа больше или равен 16 (вообще он может получиться до 19, так как 9+9+1 = 19, где 9 - это максимальное значение цифры каждого из слагаемых, а 1 - максимальное значение цифры переноса в данный разряд), то также необходимо передать сигнал переноса единицы в следующий десятичный разряд. Но при этом в данном десятичном разряде сумма оказывается сразу уменьшенной на 16, так как сумма представлена всего четырьмя двоичными разрядами, а пятый двоичный разряд с весом 16 в ней отсутствует. В действительности же она должна быть уменьшена только на 10. Следовательно, коррекция должна состоять в добавлении числа*6.

На самом деле в случае (2) коррекцию можно выполнять по тому же правилу, что и в случае (3). Если сумма, полученная в результате выполнения первого этапа, заключена в пределах от 10 до 15, то добавление к ней числа 6 приведет к тому, что она станет больше или равна 16. При этом из нее автоматически вычтется число 16 (так как двоичный разряд с весом 16 отсутствует). В итоге получится, что сумма изменена на величину - 16+6=-10, как это и требуется.

Аналогичные правила для выполнения суммирования в коде laquo;с излишком 3 raquo; были приведены в разделе 1.6.2.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [ 52 ] 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189