Файл: Дискрет-ная мат-ка_УМП.pdf

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

46

При других весах тому же коду может соответствовать дру-

гое десятичное число. Например, если 

4

3

2

1

0

12,

3,

1,

1,

5.

q

q

q

q

q

=

=

=

=

=  

то двоичному коду 11010 соответствует число 16, так как 

1

⋅12 + 1⋅3 + 0⋅1 + 1⋅1 + 0⋅5 = 16. 

Весовой код задают обычно упорядоченной последователь-

ностью весов. Например, если заданными являются веса  

4

3

2

1

0

4,

1,

1,

1,

4

q

q

q

q

q

=

=

=

=

= , 

то  это  можно  записать  в  более  компактном  виде,  перечислив 
только веса: 41114. Из сокращенной записи видно, что код пяти-
значный и что веса левого и правого разрядов равны 4, а все ос-
тальные  равны 1. Этой  информации  вполне  достаточно,  чтобы 
по  коду  найти  его  десятичный  эквивалент.  Например,  коду 
11010 соответствует число 6, коду 10101 — число 9 и т.д. 

Таким  образом,  чтобы  по  записи  весового  двоичного  кода 

найти  его  десятичный  эквивалент,  необходимо  знать  веса  дво-
ичных разрядов. На практике обычно считается, что если веса не 
указаны, то они представляют собой степени числа 2. Примером 
может служить четырехзначный код 8421, где веса равны: 

3

2

1

0

8

2 ,

4

2 ,

2

2 , 1

2 .

=

=

=

=

 

Во всех же остальных случаях необходимо указывать, в ка-

кой системе весов записываются двоичные коды. 

 
Об избыточности кодирования десятичных цифр. В данной 

контрольной  работе  рассматривается  комбинационный  преобразо-
ватель  входных  кодов  P  в  выходные  коды  Q.  Для  определенности 
будем считать их заданными, например, следующими весами: 

P = 1224,      Q =11115. 

Согласно  этим  записям  входные  коды  являются  четырех-

значными, выходные — пятизначными. 

Рассмотрим  код  P.  Ему  соответствуют  четырехзначные 

двоичные коды.  Всего  их  возможно 16. Но  сумма  весов  в  коде 
1224  равна 9. Следовательно,  закодировать  десятичные  числа, 
превышающие 9, в системе 1224 невозможно. 

Подобные  коды  обычно  используются  для  кодирования 

цифр  десятичной  системы  счисления.  При  этом  очевидно,  что 
некоторые  цифры  могут  быть  закодированы  неоднозначно,  т.е. 


background image

 

47

различными двоичными последовательностями. Если из 16 воз-
можных  выбрать  десять  кодов  для  кодирования  десятичных 
цифр, то останется шесть двоичных кодов. Их также можно ста-
вить  в  соответствие  десятичным  цифрам,  в  результате  чего  не-
которым  десятичным  цифрам  будет  соответствовать  более  од-
ного двоичного кода. Полный список десятичных цифр и соот-
ветствующих им двоичных кодов имеет вид: 

 

0 — 0000; 

    1 — 1000; 

     2 — 0100, 0010; 

 

3 — 1100, 1010;    4 — 0110, 0001;   5 — 1110, 1001; 

 

6 — 0011,0101;     7 — 1011, 1101;   8 — 0111,  9 — 1111. 

Из списка видно, что каждая из цифр 2, 3, 4, 5, 6, 7 может 

быть закодирована двумя способами. Но при построении преоб-
разователя кодов десятичным цифрам необходимо ставить в со-
ответствие только по одному двоичному коду. В случае данной 
контрольной  работы  выбор  кодов  ничем  не  ограничен.  Напри-
мер,  цифре 3 можно  поставить  в  соответствие  код 1100 либо 
1010, а какой именно — безразлично. Выбор осуществляет сту-
дент, выполняющий контрольную работу. 

Выходной  код 11115 также  предназначен для  кодирования 

десятичных цифр, так как сумма его весов равна 9. Этот код яв-
ляется  пятизначным,  следовательно,  всего  существует 32 пяти-
значные последовательности нулей и единиц. Но для кодирова-
ния десятичных цифр используется только 10 последовательно-
стей. Это значит, что избыточность выходных кодов при коди-
ровании  десятичных  цифр  гораздо  больше  по  сравнению  с 
входными кодами. 

Полный список десятичных цифр и всех способов их коди-

рования в системе 11115 имеет вид: 

0 — 00000; 
1 — 10000, 01000, 00100, 00010; 
2 — 11000, 10100, 10010, 01100, 01010, 00110; 
3 — 11100, 11010, 10110, 01110; 
4 — 11110; 
5 — 00001; 
6 — 10001, 01001, 00101, 00011; 
7 — 11001, 10101, 10011, 01101, 01011, 00111; 
8 — 11101, 11011, 10111, 01111; 
9 — 11111. 


background image

 

48

Согласно этому списку цифры 0, 4, 5 и 9 кодируются одно-

значно. Цифрам 1, 3, 6 и 8 соответствует по четыре кода. Самы-
ми  «урожайными»  с  позиций  избыточности  кодов  являются 
цифры 2 и 7. Каждую их них можно закодировать шестью спо-
собами. Но при построении преобразователя кодов из всех этих 
вариантов необходимо выбрать только по одному. 

 
Синтез преобразователя весового двоичного кода. 
Выше 

в данном подразделе приведены образцы входного P и выходно-
го Q весовых двоичных кодов. На их примере проиллюстрируем 
выполнение контрольной работы на тему «Синтез преобразова-
теля  кодов»,  построив  комбинационный  преобразователь  дво-
ичного весового кода P = 1224 в пятизначный двоичный весовой 
код вида Q = 11115. 

Сначала построим таблицу 

(табл. 1). В  ней  три  области: 
левая,  средняя  и  правая.  В 
средней  области,  там,  где  ко-
лонки  обозначены  буквами  A
B,  C,  D,  размещены  входные 
двоичные  коды  с  весами 1224. 
Справа  в  виде  пяти  колонок, 
обозначенных  символами  f

1

,  f

2

, 

f

3

, f

4

, f

5

, расположены выходные 

двоичные коды с весами 11115, 
обозначающие  те  же  десятич-
ные  цифры,  что  и  в  области 
входных кодов. Веса в таблице 
не  указаны,  но  они  подразуме-
ваются:  в  средней  части — 
1224, справа — 11115. 

В  левой  части  таблицы 

приведена  колонка,  где  записаны  десятичные  эквиваленты 
входных  кодов,  но  не  в  системе 1224, а  в  обычной  двоичной 
системе 8421. Здесь необходимы пояснения, чтобы разобраться, 
откуда  появились  коды  вида 8421 и  почему  именно  они  оказа-
лись в таблице вместо кодов 1224. 

 
   0    0   0   0   0    0   0   0   0   0 
   8    1   0   0   0    1   0   0   0   0 
   4    0   1   0   0    1   1   0   0   0 
   12  1   1   0   0    1   1   1   0   0 
   6    0   1   1   0    1   1   1   1   0 
   14  1   1   1   0    0   0   0   0   1 
   3    0   0   1   1    1   0   0   0   1 
   11  1   0   1   1    1   1   0   0   1 
   7    0   1   1   1    1   1   1   0   1 
   15  1   1   1   1    1   1   1   1   1 
   1    0   0   0   1           
   2    0   0   1   0     
   5    0   1   0   1                    
   9    1   0   0   1                        
   10  1   0   1   0                        
   13  1   1   0   1     

×  ×  ×  × 

×  ×  ×  × 

× 

× 

×  ×  × 

×  ×  × 

А  B C  D  f

1 

f

2 

f

f

Таблица 1 

f

× 

×  × 

× 

× 

× 

× 

× 

× 

× 

× 

× 

× 

× 

 


background image

 

49

В общем виде, т.е. без раскры-

тия  внутреннего  содержания,  пре-
образователь  кодов  изображен  на 
рис. 1. Проанализируем его работу. 
Допустим, что требуется выяснить, 
какой выходной код соответствует 
числу 4, поданному на вход преоб-
разователя  в  виде  двоичного  кода 
0110. 

Согласно  таблице 1 (пятая  сверху  строка)  на  входной  код 

0110  схема  должна  отреагировать  выходным  кодом 11110. Это 
значит, что на наборе значений аргументов, равном 0110, буле-
вы функции f

1

f

2

, f

3

 и f

4

 должны принять единичное значение, а 

функция f

5

 — нулевое. 

Если  потребуется  определить  выходной  код,  соответст-

вующий входному числу 5, представленному кодом 1110 в сис-
теме  весов 1224, то  на  вход  преобразователя  подаем  код 1110. 
Согласно таблице 1 функции f

1

f

2

, f

3

 и f

4

 на наборе значений аргу-

ментов 1110 должны  принять  нулевое  значение,  а  функция  f

5

 — 

единичное. И т.д. Таким образом, комбинационная схема, пред-
ставленная  на  рис 1, реализует  пять  булевых  функций,  завися-
щих от переменных ABCD, и принимающих значения нуля 
или единицы в соответствии с таблицей 1. Но наборы значений 
аргументов задаются в обычной системе весов 8421. Поэтому во 
вспомогательной  колонке  указаны  десятичные  эквиваленты  не 
кодов системы 1224, а наборов значений переменных. 

В  правой  части  таблицы 1 кроме  нулей  и  единиц  имеются 

крестики.  Ими  обозначены  «лишние»  двоичные  коды,  которые 
не были использованы для кодирования десятичных цифр. Рас-
сматривая таблицу 1 как таблицу истинности для пяти булевых 
функций, найдем их минимальные ДНФ и КНФ с учетом неоп-
ределенных состояний.  

Минимизируем функцию f

1

 

f

1

 = (3, 4, 6, 7, 8, 11, 12, 15); 

[1, 2, 5, 9, 10, 13]. 

Карта  Вейча  приведена  на  рис. 2. Минимальная  ДНФ,  со-

гласно этой карте, имеет вид 

1

.

f

D

AC

AB

= +

+

 

Рис. 1 

 

Комбина- 

ционная 

схема 

 

f

F

f

f

f

A

 

B

 

C

 

D

 

 


background image

 

50

Рис. 2 

1 

1 

1 

1 

1 

1 

Рис. 3 

1 

1 

× 

1 

× 

× 

× 

× 

1 

× 

× 

× 

× 

× 

× 

× 

f

1

 = 

f

1

 = 

 

 

Находим  минимальную  КНФ.  По  карте  Вейча  (рис. 3) ми-

нимизируем функцию 

1

f

:  

1

.

f

ACD

ABC

=

+

 

Инвертируем  это  выражение  по  теореме  де  Моргана  и  по-

лучаем искомую КНФ: 

1

(

)(

).

f

A

C

D A

B

C

=

+ +

+ +

 

Минимизируем вторую функцию (рис. 4).  
 

f

2

 = (4, 6, 7, 11, 12, 15); 

[1, 2, 5, 9, 10, 13]. 

2

.

f

AD

BC

AB

=

+

+

 

Рис. 4 

1 

1 

1 

1 

1 

Рис. 5 

1 

1 

× 

× 

× 

× 

× 

× 

× 

× 

× 

× 

× 

× 

1 

1 

1 

f

2

 = 

f

2

 = 

 

Находим  минимальную  КНФ.  Инверсия  функции  f

2

  приве-

дена на рис. 5. Согласно этой карте: 

2

.

f

ACD

AB BC

=

+

+

 

В  результате  инвертирования  этого  выражения  по  теореме 

де Моргана получаем минимальную КНФ: 

2

(

)(

)(

).

f

A

C

D A

B B

C

=

+ +

+

+

 

Минимизируем третью функцию (рис. 6).  
 

f

3

 = (6, 7, 12, 15); 

[1, 2, 5, 9, 10, 13]. 

3

.

f

ABC

ABC

BD

=

+

+