Файл: Самохин А.Ф. Эксплуатация цифровых вычислительных машин [учеб. пособие].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.06.2024
Просмотров: 136
Скачиваний: 0
- 81-
Пример. R (A)=OHmod5, R (B)s№ m od$, R(A+B)sOlOtnod5
|
R ( |
A |
) |
= |
OII |
+ |
П ( |
в |
) |
= |
IOO |
R( a ) + |
R ( |
в |
) |
= |
no |
. __________________ i |
|
- |
010 |
||
|
|
||||
|
|
|
|
|
1001 |
перенос |
|
|
|
l— I |
R ( a ) + R ( в ) = o io
Операция вычитания контрольных кодов заменяется сложением уменьшаемого с инверсией вычитаемого. При этом так же, как в случае сложения, может возникнуть два случая.
1 . £ R ( A ) - R ()В3 > 0
В этом случае R. ( С ) может принимать любые значения от I до
^. При этом обязательно возникает единица переноса из стар
шего разряда, которую необходимо учитывать. Таким обраэои, опе рация вычитания определяется выражением
R ( A ) - R ( B ) = [ R ( A ) + Щ ) + i - 2 т] modу
2. [ R ( A ) - Ц ( В ) ] * 0
В этом случае разность лежит |
в пределах от |
нуля до |
/ |
- (^ |
, |
|
Следовательно, для получения |
наименьшего вычета к разности |
|
||||
необходимо прибавить величину модуля. Проверкой двух крайних |
|
|||||
случаев т т п |
И Я(А)+Ш) =1'(j, нетрудно |
убедиться |
в |
том, |
что |
|
единица переноса в |
этом случае при сложении |
R (А) с |
|
R (В) |
0.3ак.837.
- 8 2 -
не возникает. Единицу ке переноса, возникающую при добавлении модуля, естественно, следует учитывать. Выражение для вычитания кодов в этом случае имеет вид:
т
Если контроль ведется по модулю 0, =2 - 1 , добавле-
ние модуля выполнять не следует, так как добавление модуля с учетом возникающего при этом переноса равносильно добавлению нуля.
g (а ) + * (В) S [ Л (А) + Я (В)*2 т- 1 * 1 -3 mJ mod (2 П- 1 ) K(A)+R(M)*[fUA) + m ) ] m o d ( 2 т-1 )
R(A)s/Omod3,12[В )=01m odi, Л(А +Ь) =01m odi
|
R ( |
А ) |
= |
10 |
|
+ |
# |
( |
В ) |
= |
10 |
Я ( а ) + |
£ |
( в ) = юо |
перенос
R ( А ) - * ( в ) = 01
При контроле по модулю |
добавление модуля |
обязательно. |
|
- < ч -
Пример. ЩК)=011mod5, U(B)-f00nwd5, Я(А)-ШВ)=НЮ mod 5.
|
К ( |
А ) |
= |
ОН |
+ |
Я ( |
В ) |
= |
ОН |
И ( А ) + R ( |
В ) = |
ПО |
||
________________ + |
£ |
|
= |
101 |
перенос |
|
|
|
^ 1 |
8 ( A ) - |
Я ( |
В ) = ЮО |
||
Таким образом, из рассмотренного |
шше материала следует, |
что для выполнения операций сложения и вычитания вычетов при
контроле по модулю ^ = 2 т~1 достаточно иметь обычный
/77 -разрядный сумматор с циклическим переносом из старшего разряда в младший.■При контроле же по модулю ^ =*=«£: +1 в
сумматоре должна быть предусмотрена схема сравнения результата операции с модулем и операция добавления или вычитания модуля.
Это обстоятельство свидетельствует в пользу контроля по моду
лю |
о = 2 - 1. |
" |
На практике сумматоры контрольных кодов строятся как по |
схемам, аналогичным схемам контролируемых сумматоров чисел,
так и по схемам, отличным от последних.
На рис. 4 .3 показана схема сумматора контрольных кодов по m od3.
|
|
|
|
|
|
|
- |
8 4 - |
|
|
|
|
|
|
|
||
Работа |
схемы определяется |
таблицей |
4 .2 . |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица |
4 .2 . |
|||
№ по |
0 |
I |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
II |
12 |
13 |
14 |
15 |
|
зиции |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
*1 |
0 0 0 0 0 0 0 0 I |
I |
I |
I |
I |
I |
I |
I |
|||||||||
Ч0 |
0 |
0 0 |
0 I |
I |
I |
I |
0 |
0 0 0 I |
I |
I |
I |
||||||
Т, |
0 |
0 I |
I |
0 0 I |
I |
0 0 I |
I |
0 |
0 |
I |
I |
||||||
То |
0 |
I |
0 |
I |
0 I |
0 I |
0 |
I |
0 I |
0 |
I |
0 I |
|||||
Ь |
0 |
0 0 |
ф 0 I I |
Ф I 0 I |
ф |
0 |
0 0 Ф |
Чо 0 0 0 |
ф I I 0 Ф 0 I I |
ф 0 0 0 |
|
Ф |
|
Здесь 'Zf и |
|
- входные двоичные сигналы (старший |
и млад |
||
ший разряды суммируемого вычета соответственно), Tj и Т0 |
- |
со |
|||
стояние триггеров, |
предшествующее подаче числа; 7 , и ? с , |
| ,к |
возбуждающие сигналы, которые должны быть поданы на счет ные входы триггеров Tj и Т0 с комбинационной части схемы для ре ализации соответствующей строки таблицы.
Так как контроль ведется по m od <3 , то комбинация II на триггерах не имеет смысла, ибо она равносильна 00. Поэтому дан ная комбинация считается факультативной.
Функции Cj^ и С^0 для обязательных и факультативных условий имеют вид:
^ - £ ( 5 , 6 , 8 , 1 0 ) + -£ ф (3 ,7 ,» ,1 5 )
£),0 = I (ч, 5, 9, rn) + Zcp (3,7,11,15).
-8S~
После упрощения с помощью карт Карно получается выражение
^ -%г*0(т, +т0) * ^ 0(r^f0)
?0= Tt + 7t70( f t +Г0).
В схему введены линии задержки, обеспечивапцие присут-
ствие на входе комбинационной части схемы на время выполне ния сложения сигналов, соответствующих предшествующему состо янию триггеров.
Рис. 4.3.
- 8 6 -
Слагаемые вычеты подаются последовательно. Работа схемы оче видна из логических выражений. В случае выполнения вычитания соответственно на вход подается инвертированный код. Практика
проектирования |
таких |
схем показывает, |
что обычно они содержат |
|
элементов не больше, |
чем 2 разряда основных сумматоров. |
|||
|
5 |
4 .7 .' |
Сдвиг и умножение вычетов |
|
Если регистр, в котором производится сдвиг контрольного |
||||
кода, |
содержит |
количество разрядов, равное количеству разрядов |
||
в этом |
коде, то |
выходящие при этом за |
разрядную сетку едини |
цы теряютоя и получаемый в регистре новый код оказывается не тождественным истинному значению сдвинутого кода.
Покажем, что тождественность кода, получаемого в регист
ре после сдвига, истинному значению сдвинутого кода можно обео-
печить введением цепей циклического переноса. Рассмотрим опера
цию сдвига контрольного кода на один |
разряд влево и вправо.' |
||
I . |
Сдвиг на |
один разряд влево в |
ГЛ -разрядном регистре |
вычета |
по модулю |
2 т- / . |
|
Сдвиг на один разряд влево равносилен умножению на 2. Запишем значение сдвинутого кода в следующем виде:
R (A ) = K ( A ) - 2 * [ * />(A)+o(rn_1- 2 mlmoc/p,
где Т^-р(б) - часть сдвинутого кода, оставшаяся в регистре;
■2 ^ • старший разряд кода, вышедший за разрядную
сетку.
но |
Z m = ( f + S m- 0 * i m o d (2 m- t ) . |
- 8 7 -
Следователъно,
И(А) 3 (А)+ ^ т _,]тлоо/ (2т-/ )
Таким образом, тождественность вычета по mod (2m-i) , образу ющегося в регистре, истинному значению сдвинутого кода обеспе чивается выполнением циклического переноса из старшего разряда в младший.
Пример. R (А ) |
= |
Ю1 mod 7 |
R (А ) - 1,010 ё O il mod7 |
|
|
|
|
ТП-разрядной |
u » I |
2. |
Сдвиг вправо |
в |
суыиаторе вычета по |
|
mod |
( 2m~ i ) . |
|
|
|
Сдвиг вправо равносилен умножению на 2“ * . Значение сдвинутого кода определяется выражением
где |
- |
часть |
сдвинутого кода, |
оставшаяся в регистре! |
||
|
- |
младший разряд кода, вышедший |
за разрядную се т - |
|||
|
|
КУ. |
/77 |
|
|
|
Домножим |
Ы0 2 |
' на |
4) ", |
тогда |
||
2 = 1 mod. (2 |
К ( A ) * U 2 p ( A ) + d 0 - 2 m 1J m o d ( 2 ™ - 1 ) .
Но о(0 2 соответствует переносу единицы из младшего раз ряда в старший. Следовательно', при сдвиге вправо необходимо обеспечить циклический переноо из младшего разряда в старший^
Пример. |
R (A ) s Ю1 mod 7, |
R (А ) - ОЮ’Л ш НО mod 7 |
|
|
|
I — |
1 |
3 . При |
сдвиге влево в ( ГП + 1 |
)-разрядно*1 |
регистре выче- |
та по mod(2m+<) выражение для сдвинутого КОДД имеет вид:
% ( А ) = R ( A ) - 2 = L % p (A )+ d m 2 m,ir1 m o d (2™ * < ).