Файл: Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 176
Скачиваний: 0
Если £ = — 2 \ / ^ 0 , то реакция будет описываться (5-29), сдвинутым влево на / разрядов. При этом для вычисления реакции при N>0 к сдвинутому коду необхо димо прибавить число N. Прибавление числа N может перевести только правый нуль в (г-Ы)-разрядной ком
бинации 100...0 в единицу. Например, если |
/ = 0 и N |
|||
равно максимальному |
значению (2"—1)/Д—1, |
то |
||
= 0 0 ^ < ? я _ г _ 1 с я _ г _ а . . . с 1 1 с „ - г - , 0 п - г - , . . . с , О 1 . |
||||
г нулей |
С—I) нулей |
|
|
|
Таким образом, для |
определения |
фазы |
/ ошибки —2-* |
|
необходимо использовать г-разрядную |
комбинацию |
|||
100...0. Подключение |
конъюнктора, |
«настраиваемого» |
||
на эту комбинацию, показано на рис. 5-5. |
Исправление |
|||
ошибки производится прибавлением |
1, поступающей на |
вход второго СМ в соответствующий момент времени.
Переходим к рассмотрению второго случая: п=е/2. Как и ранее, работу КУ будем анализировать в течение 2п = е тактов. Учитывая (5-25), получаем выражение, опи
сывающее выходную реакцию |
блока |
деления |
в течение |
|||||
2п = е тактов: |
|
|
|
|
|
|
|
|
F* |
|
' 2 а " - С , |
|
если |
|
Е—\\ |
|
|
|
|
С, |
если |
Е= |
— 1, |
|
||
где значение С описывается выражением |
(5-23). |
|||||||
Для более общего случая, когда Е=±2} |
|
(O^j^n—1), |
||||||
£ |
{ 2 * + * - 2 ' С . е с л и £ |
= |
2'; |
Q |
||||
^ А |
\ |
Ж |
|
если |
£ = - 2 ' . |
|||
При анализе выходной реакции блока деления будем |
||||||||
учитывать, что число F= (2п+\)/А—1 |
[см. (5-23)] — чет |
|||||||
ное и потому fo=0, |
|
а / о = 1 . Напомним, что значение чис |
||||||
ла N находится в пределах |
|
|
|
|
|
|
||
0 < Л Г < ( 2 » + |
1)/Л—1. |
|
|
|
||||
Пусть £ = 2°=1, |
N=0, тогда |
из (5-30) |
и |
(5-23) сле |
||||
дует: |
|
|
|
|
|
|
|
|
tf + X = i ! ^ * - r - i f » - r - , . . . F , |
ioo^of»-r.,fn-r.1 ...f,i. |
|||||||
г единиц |
|
|
|
г нулей |
|
|
(5-31) |
|
|
|
|
|
|
|
|
|
160
Для вычисления реакции при N>Q и £ = 2-> к коду, получаемому сдвигом (5-31) на / разрядов влево, необ
ходимо прибавить |
число N. Прибавление числа N может |
||||||
перевести только |
правый нуль в |
(г+1)-разрядной |
ком |
||||
бинации |
100...О |
в единицу. Например, |
если |
/ = 0 |
и N |
||
равно максимальному значению ( 2 ' 1 + 1 ) / Л — l = F , |
то |
|
|||||
N + |
— = 2-п |
- 2PF - F + F = |
22 " - |
2nF - |
2r t |
-f- |
|
+ 1+-F + /? = 2 2 " - 2 ™ ( i 7 + l ) + 2 F + l = |
|
|
=1 1 : ; Л / „ _ г - / я . г - , . . . 7 , 1
г единиц |
(г—1) нулей |
fn-r-ifn-r-r.-ffll.
Таким образом, для определения фазы / ошибки 2J" необходимо использовать r-разрядиую комбинацию 100. ..0. Выход схемы совпадения, «настраиваемой» на эту комбинацию, должен подключаться ко входу схемы получения дополнительного кода. Другими словами, если п = е/2, то в структурной схеме, приведенной на рис. 5-5, необходимо перекоммутировать выходы схем совпаде ния &.
В заключение рассмотрим реакцию блока деления, если Е = — 2 ° = — 1, а число N принимает максимальное значение (2"+ 1)/Л—1 =F. В этом случае
N + |
-^=2"F |
-\-F + F = |
2«F |
-{-2п- |
1 = |
= 0 0 ^ / B _ r _ I f n _ r _ s . . . f 1 0 1 i y |
I L ^ . |
||||
г |
нулей |
г |
единиц (л—г) |
единиц |
Таким образом, для ошибок вида Е=—2-> ключевой является (г+1)-разрядная комбинация 011...1.
При реализации разделимых арифметических кодов необходимо вычислять остатки от деления информацион ного слова на значения порождающих модулей. Слож ность реализации этой операции определяет сложность устройства кодирования и декодирования. Рассмотрим математические основы вычисления остатка от деления двоичного числа В длиной k двоичных разрядов на мо дуль А. Из теории чисел известно, что если
|
В2=Р2, |
B=Bi |
|
+ |
B2+...+Bt |
и £i==,pi, |
5* |
= |
р\ |
по модулю А, то В 1 = В 1 + |
|
+ Р2 + . . |
по модулю |
|
А. |
|
151
Пусть порядок 2 по модулю А равен е, а двоичное представление числа В имеет вид:
В =.&f t _i• 2fe~i-Hfcft-2• 2" - а + |
. . . +>bi-2 +b0, |
|
||
где bi равно 0 или 1. |
|
|
|
|
Тогда имеет место сравнение |
|
|
||
B = b0+bi-2+ ... |
+Ъе-г2е-1+Ъе+ |
|
||
+ 6 е _ г 2 + . . . + 6 2 e- i• 2 е - 1 |
+ & 2 е + |
. . . по модулю |
А. |
|
Из последнего выражения следует основной алгоритм |
||||
вычисления Вычета (остатка |
от деления В на А): |
|
||
1) начиная с младших разрядов, разбиваем информа |
||||
ционное слово B=(bh-i, |
..., |
bi, ba) |
на е-разрядные |
груп |
пы и суммируем их с циклическим переносом в млад ший разряд, так как «вес» переноса из е-разрядной груп пы равен 2е , но 2е =1 по модулю А;
2) вычисляем остаток от деления полученной е-раз рядной суммы на модуль А.
Например, пусть требуется вычислить остаток от деления числа В=214 на модуль Л =5 . Порядок 2 по модулю 5 равен 4. Число В в двоичном представлении равно 11010110. Разбиваем его на две части по четыре разряда в каждой, которые складываем с цикли ческим переносом:
,0110
+1101
,0011 + 1^
0100
Полученная сумма равна 4, т. е. 214=4 по модулю 5.
Особенно просто вычисляется остаток, если модуль А = 2Г —1. В этом случае е—r и в результате суммирова ния с циклическим переносом r-разрядных групп инфор мационных разрядов получаем искомый остаток, т. е. отпадает необходимость выполнения второго этапа
алгоритма. Поэтому в качестве порождающих |
модулей |
||||
стараются выбирать следующие числа: 3, 7, 15 и т. д. |
|||||
Принцип вычисления остатка от е-разрядной |
суммы |
||||
(Аф2г—1) |
поясним на примере. |
|
|
||
Пусть |
А=Ы, |
из табл. 5-2 |
находим, что |
е = 8 . Система вычетов |
|
степеней двойки |
по модулю 51 |
равна 26, 13, |
32, 16, 8, 4, |
2, 1. Эти |
вычеты являются «весами» разрядов получаемой е-разрядной суммы. Так как для представления числа А требуется только шесть двоич ных разрядов, то прежде всего необходимо анализировать содер жимое двух старших разрядов е-разрядной суммы. В зависимости
152
от содержимого этих разрядов значение прибавляемого к сумме кода коррекции равно:
Содержимое старших разрядов |
Код коррекции |
|
0 |
0 |
О |
0 |
1 |
13 |
1 |
0 |
26 |
1 |
1 |
26+13=39 |
При выполнении коррекции оба старших разряда обнуляются. Соответствующие коды коррекции прибавляются до тех пор, пока содержимое двух старших разрядов после коррекции не станет рав ным нулю. Если значение остатка, полученное после окончания кор
рекции в шести младших разрядах, |
больше А—1=50, то производит |
|||||||
ся последняя коррекция |
(вычитание |
модуля |
А). |
|||||
Например, пусть полученное 8-разрядное число равно |
||||||||
11.101001, |
|
|
|
|
|
|
|
|
прибавляем |
код коррекции |
39=100111 |
|
|
|
|||
|
|
|
|
,00.101001 |
|
|
||
|
|
|
|
|
100111 |
|
|
|
|
|
|
|
01.010000, |
|
|
||
прибавляем код коррекции |
13=001101 |
|
|
|
||||
|
|
|
|
,00.010000 |
|
|
|
|
|
|
|
+ |
001101 |
|
|
|
|
|
|
|
|
00.011101 = |
29. |
|
|
|
Значение остатка |
равно 29. |
|
|
|
|
|||
Пусть |
модуль |
Л = 2 Г + 1 ( Л = 5, 9, |
17, 33, . . . ) , тогда |
|||||
2Г=— 1 по модулю Л и е = 2г. В этом |
|
случае последова |
||||||
тельность |
вычетов |
от возрастающих |
степеней двойки |
|||||
(1, 2, ..., 2'-1 , 2Г, 2г+\ |
..., 22r~i) |
можно |
представить сле |
|||||
дующим образом: |
|
|
|
|
|
|
|
|
|
1,2,4 |
|
|
2'-', - 1 , - 2 |
|
- г - * . |
Поэтому в данном случае рассмотренный выше алго ритм вычисления остатка можно модифицировать сле дующим образом.
Информационное слово, начиная с младших разря дов, разбивается на группы по е/2 разрядов в каждой, которые нумеруются справа налево. Искомый остаток и его знак получаются в результате суммирования с уче
том знака (нечетные группы имеют |
знак |
плюс, а |
чет |
ные — минус) всех информационных |
групп; |
причем |
воз |
никающая единица переноса всегда вычитается из млад шего разряда,
1 53
Например, пусть |
Л = 2 4 |
+ 1 = 17, |
вычислим описанным |
методом |
|||
остаток от числа |
5=3 3 918, которое |
в |
двоичной системе |
счисления |
|||
имеет вид: |
|
|
|
|
|
|
|
1000 |
0100 0111 1110 |
|
|
|
|||
номера групп ->4 |
3 |
.2 |
1 |
|
|
|
|
Суммируем полученные группы с учетом их знаков |
|
||||||
|
|
|
1110 группа 1 |
|
|||
|
|
|
0111 |
группа |
2 |
|
|
|
|
|
,0111 |
|
|
|
|
|
|
+ 0 1 0 0 |
группа |
3 |
|
||
|
|
|
1011 |
|
|
|
|
|
|
|
1000 |
группа |
4 |
|
|
|
|
+б07Т = 3. |
|
|
|||
Искомый остаток |
равен 3. |
|
|
|
|
Однако следует иметь в виду, что для рассматривае мых модулей А, представимых в виде 2' + 1, может ока заться более целесообразным исходный алгоритм вы числения остатка. В этом случае е-разрядная сумма раз бивается на две группы по ej2 = r разрядов в каждой и старшая группа вычитается из младшей. Полученная разность (длиной г разрядов) с учетом знака дает иско мый остаток.
|
G |
|
Сдвигающий |
регистр |
|
Циклический перенос |
Накопительный |
||
|
|
|
|
|
|
|
|
|
сумматор |
|
|
|
|
Вычет |
|
ЛС |
• |
ЛС • |
ЛС |
|
|
|||
|
1 • • . Г г+ 1 . . . ,?г |
п-г . . . п |
||
|
|
|
Регистр |
|
|
|
|
<0 |
|
Рис. |
5-6. Структурные схемы сверток последовательного |
|||
|
|
типа по модулю |
А=2Т—1. |
|
а — с |
накопительным |
сумматором и сдвигающим регистром; б — |
||
с |
последовательно соединенными |
логическими схемами, |
154