Файл: Хетагуров, Я. А. Повышение надежности цифровых устройств методами избыточного кодирования.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