Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Электронные устройства автоматики основы цифровой электроники. Курс лекций
.pdf
тат в форме светящихся десятичных цифр. Однако как те, так и другие
строятся на однотипных схемных элементах и узлах, способ функционирования которых базируется на математической логике. Таким образом, становится понятным, почему отдельные элементы и узлы
цифровых электронных устройств и сами эти устройства называются
логическими. Так основным функциональным узлом ЭЦВМ
является
АЛУ (арифметико-логическое устройство), выполняющее все вычислительные операции, как арифметические, так и логические.
1.2. Коды и кодирование информации
Понятия кода и кодирования являются фундаментальными в вычислительной технике и автоматике. Термины код и кодирование
взаимосвязаны. Поясним эти термины на простом примере.
Пусть имеются два множества: предметов (понятий, действий
т.д.) и условных обозначений, состоящих из каких-то символов или
и
их комбинаций. Можно представить себе процесс установления соответствия между каждым предметом и условным обозначением.
Этот процесс и называется кодированием, а условные обозначения –
кодом данного предмета (или кодовой комбинацией). Таким образом,
можно дать следующее определение кода. Код – это набор
знаков в
совокупности со схемой кодирования для представления информации. Кодом являются отдельные слова языка, числа и другие условные обозначения понятий, явлений, действий и т.п. Кодом являются
и китайские иероглифы, и элементы клинописи, и любой другой
письменный язык.
С понятием кода связан ряд определений.
Основание кода Р – это число
различных элементарных символов,
из которых образуются кодовые комбинации. В большинстве европейских языков таких символов – букв около 30, при написании числовой информации используются десять элементарных символов –
цифр. В вычислительной технике широко используются коды с основанием два (нуль и единица).
Алфавит кода – это перечень всех элементарных символов (букв
языка, цифр
Разрядность кода
и т.п.).
n – это длина (число символов) в кодовой ком-
бинации, имеющей самостоятельное смысловое значение (например,
число букв в слове, число цифр в многозначном числе).
По разрядности коды делят на две группы: с одинаковой длиной
для всех используемых кодовых комбинаций и с различной. К первой группе относятся, например, коды букв и других
символов при
передаче информации по телетайпу, к второй – слова русского языка,
11

состоящие из различного количества букв. Коды одинаковой длины
более предпочтительны в технике.
Способ комбинирования. Под этим понимается, все ли возможные
кодовые комбинации (при данном основании кода и разрядности (их
количество равно р
n
) используются в процессе кодирования. Если используются не все, то открывается возможность обнаружения или исправления ошибок при написании (или приеме) кодовых комбинаций.
Правила сопоставления понятий кодовым комбинациям. Один
и тот же набор элементарных символов, например 1111, при основании кода 2 (т.е. при бинарном или двоичном коде) может означать
различные
величины (например, десятичные числа 15, 9 или 10
в табл. 1.1).
Таблица 1.1
Деся-
тичное
число
8-4-2-1 2-4-2-1 5-1-2-1
16-рич-
ный
0 0 0000 0000 0000 0000 0000 0011
1 1 0001 0001 0001 0001 0001 0100
2 2 0010 0011 0010 0010 0010 0101
3 3 0011 0010 0011 0011 0011 0110
4 4 0100 0110 0100 0100 0111 0111
5 5 0101 0111 0101 0101 1000 1000
6 6 0110 0101 0110 1100 1001 1001
7 7 0111 0100 0111 1101 1010 1010
8 8 1000 1100 1000 1110 1011 1011
9 9 1001 1101 1001 1111 1111 1100
10 А 1010 1111
11 В 1011 1110
12 С 1100 1010
13 D 1101 1011
14 Е 1110 1001
15 F 1111 1000
двоич-
ный
Грея двоично-десятичный с весом с избытком 3
Код
Кодовые комбинации в технике очень часто передаются по электрическим каналам связи (по проводам, по радиоканалу и т.д.). Это
относится и к передаче информации между отдельными узлами вычислительной машины.
Определенному символу (букве) кода должны соответствовать
электрический сигнал определенной формы. Например, при передаче
двоичных кодов символу 1 может соответствовать импульс опреде
12
-

ленной длительности и полярности, а символу 0 – отсутствие импульса или импульс другой полярности или длительности.
Передачу кодовых комбинаций можно осуществлять двумя способами: передавать одновременно все символы кодовой комбинации
или поочередно. Последовательная передача символов кодовой комбинации требует при прочих равных условиях больше времени, чем
одновременная. Не вдаваясь в физические аспекты
передачи, отметим, что одновременная передача всех символов кодовой комбинации не обязательно требует многих проводов (по числу разрядов кодовой комбинации). При последовательной передаче кодов с различной длиной слов приходится вводить еще один символ (или группу
символов), соответствующий пробелу между словами, или выбирать
такие кодовые комбинации, чтобы более
короткие комбинации не
были началом более длинных (например, код 1,01,001 и 000).
В вычислительной технике значительную часть при обработке составляет цифровая (численная) информация. Передача и обработка
такой информации тесно связана с методами ее кодирования, т.е. с
системами счисления.
1.3. Системы счисления
Современные цифровые устройства обрабатывают информацию,
представленную в удобной для них
форме. При общении человека с
человеком или ЭВМ используются буквы алфавита, десятичные
цифры, символы, обозначающие определенные операции (сложения,
вычитания и т.п.), и ряд других служебных символов.
При программировании ЭВМ широко используют числа, записанные в 16-тиричной системе счисления, в которой для изображения
цифр, кроме привычных десятичных цифр, используют символы ла
тинского алфавита А, В, С, D, E, F, соответствующие цифрам этого
алфавита, равным числам 10, 11, 12, 13, 14 и 15 десятичной системы
счисления. Внутри же ЭВМ обработка чисел ведется сигналами, соответствующими двоичной системе счисления с цифрами 0 и 1.
Систему счисления, используемую в современном мире, относят к
числу позиционных и именуют по количеству различных цифр, используемых в данной системе (двоичная, десятичная, шестнадцатеричная). В позиционных системах счисления вес каждой цифры в
числе определяется местом ее положения. Например, в десятичном
числе 777 левая семерка означает число сотен, средняя – число де-
-
13

сятков, правая – число единиц, т.е. каждая позиция многоразрядного
...
k
i
MA A A A
i
числа имеет свой вес (в этом примере – сто, десять, единица).
Общий принцип построения позиционных систем счисления
можно выразить формулой
1
k
−
αα
=+ ++=
kkk i
11 2 2 00
−− − −
αα
∑
i
=
, (1.1)
0
где
– цифры (символы) данной системы счисления; i – номер раз-
A
i
α
ряда;
– разрядные веса.
Разрядные веса могут задаваться различно, но при построении
систем счисления вес разряда строится как α
= рi, где р – основание
i
(число различных символов или цифр) системы счисления.
Для того чтобы можно было различать, в какой системе написано
число, ставят букву, означающую систему счисления: В – двоичная
(бинарная), Q – восьмеричная, D – десятичная, Н – 16-ричная. Если
после числа буква не стоит, его трактуют как десятичное.
Шестнадцатеричное число при вводе информации в
ЭВМ необходимо записывать так, чтобы оно всегда начиналось с цифры, т.е. вместо А5Н надо записать ØА5Н (цифра «нуль» перечеркивается, чтобы
ее не путать с буквой О). Иногда в качестве указателя системы счисления вводится не буква, а нижний индекс, например 101
число, 101
– десятичное, 10116 – 16-ричное.
10
– двоичное
2
Для перевода чисел из одной системы счисления в другую существуют определенные правила. Перевод из n-ричной системы
в десятичную производится по формуле (1.1). Например, двоичное
число 1001 записывается как 1·2
число 1В5Н переводится в десятичное следующим образом:
2
1·16
+ 11·161 + 5·160 = 437. Обратный перевод (из десятичной в n-
3
+ 0·22 + 0·21 + 1·20 = 9 или
ричную) производится методом последовательного деления числа
(или промежуточных остатков) на основание этой системы. Символы
(цифры) n-ричной системы являются окончательными остатками
процесса деления. При этом старший разряд числа соответствует последнему остатку. Поясним это на примере:
14

Чтобы перевести десятичное число 26 в двоичное, производим
деление. Окончательные остатки образуют двоичное число 11010 В.
Для уменьшения числа делений можно сделать промежуточный
перевод в 8-ричную систему счисления, а затем каждую цифру этой
системы (т.е. от 0 до 7) записать трехразрядным двоичным числом.
Перевод числа 26 в 8-ричную систему запишется так:
т.е. 26 D = 32 Q =011 010 В =11010 В.
Переведем в 16-ричную систему число 437:
Итак, 437 D = 1В5 Н.
Кроме указанных систем счисления часто используется так называемая двоично-десятичная система счисления, в которой каждая
десятичная цифра записывается четырехразрядным двоичным кодом
15

(если не оговариваются веса, то с весами 8-4-2-1). Например, число
275 в двоично-десятичном коде записывается 0010.0111.0101.
В цифровых приборах используют двоично-десятичный код с весами 5-1-2-1 и 2-4-2-1. Эти коды отличаются тем, что самая большая
десятичная цифра 9 соответствует самой тяжелой кодовой комбинации 1111 В. В некоторых технических приборах (например, при считывании информации
с кодового диска) важно, чтобы соседние по
величине числа отличались друг от друга только в одном разряде. В
этом случае применяют двоичный рефлексный код (код Грея).
Алгоритм получения кода Грея из обычного двоичного состоит из
поразрядного сложения по модулю 2, т.е. по правилам
0 + 0 = 1 + 1 = 0 и 0 + 1 = 1 + 0 = 1 комбинации двоичного числа
с числом, полученным
из исходного сдвигом вправо на один разряд
(младший разряд после сдвига выбрасывается). Поразрядное сложе-
ние по модулю 2 обозначается символом ⊕. Например, преобразуем
число 7, т.е. 0111, в комбинацию кода Грея:
Обратное преобразование производится в несколько шагов.
Младший разряд получается путем сложения по модулю 2 всех символов комбинации кода Грея. После этого отбрасывается младший
разряд в коде Грея и для нахождения следующего разряда двоичного
кода производится аналогичное действие и т.д. вплоть до старшего
разряда. Например, преобразуем код Грея 1011 в двоичный. Значение
младшего разряда равно 1⊕ 0 ⊕ 1 ⊕ 1 = 1. Более старший разряд бу-
дет равен 1 ⊕ 0 ⊕ 1 = 0, следующий 1 ⊕ 0 = 1 и, наконец, старший
равен 1. Таким образом, получим двоичное число 1101, что соответствует десятичному 13 (см. табл. 1.1). Код с избытком 3 получается
из комбинаций двоично-десятичного кода 8-4-2-1 арифметическим
сложением этих чисел с числом 0011. Этот код обладает свойством
самодополняемости, т.е. сложение чисел 0 + 9 или 1 + 8 или 2 + 7 или
3 + 6 или 4 + 5 дает двоичное число 1111.
Запись чисел от 0 до 15 в различных кодах показана в табл. 1.1.
Кроме рассмотренных кодов в технике применяются коды с постоянным весом, т.е. с постоянным числом единиц в кодовой комби-
16

нации (например, распределительный код
1
C , в котором на n пози-
n
циях (разрядах) находится только одна единица). Так, 5-разрядный
распределительный код имеет следующие кодовые комбинации:
00001, 00010, 00100, 01000 и 10000. Количество различных комбинаций n-разрядного кода с постоянным весом m равно числу сочетаний
m
С
n
десяти цифр используют код
от 00011, 00101 и до 11000, так как
n
=
, отсюда и обозначение таких кодов. Для кодирования
)!(!!mnm
−
2
C или
5
3
C с кодовыми комбинациями
5
!5
3
2
5
5
.
10
=== CC
!3!2
В ряде случаев используется число–импульсный унитарный код, в
котором число единиц, начиная с младшего разряда, соответствует
десятичному числу (0D – 0000, 1D – 0001, 2D – 0011, 3D – 0111
и т.д.). Такой код (за исключением кода цифры нуль, которая кодируется десятью единицами) используется в телефонии (при работе
номеронабирателя).
17

2. КРАТКИЕ СВЕДЕНИЯ ИЗ АЛГЕБРЫ ЛОГИКИ
2.1. Логические функции и способы их задания
Математическим аппаратом анализа и синтеза дискретных автоматов является алгебра логики. Алгебра логики изучает свойства
функций принимающих, как и их аргументы, значения из двухэлементного множества {0;1}, что гармонично сочетается с практикой
дискретных автоматов, работающих по принципу: есть сигнал – нет
сигнала; включено – выключено; открыто – закрыто, или обобщенно
да – нет. Состоянию да в алгебре логики присвоено значение 1,
состоянию нет – значение 0.
Логическая функция полностью определяется заданием ее значений на всех наборах аргументов. Число наборов определяется как
n
N = 2
, где n – число аргументов. Существует ряд способов задания
логических функций, из них наиболее употребительны следующие:
1) словесный метод описания, при котором дается словесное описание автомата, т.е. перечисление выходов при заданных (или всех)
наборах аргументов;
2) аналитический, при котором функция задается алгебраическим
выражением, являющимся результатом логических операций над аргументами. (
Аналитическая форма записи будет рассмотрена позже.);
3) табличный, представляемый в виде таблиц истинности (соответствия). Таблица истинности функции n переменных состоит
n
строк, в каждой из которых представляется набор переменных,
из 2
упорядоченный обычно по возрастанию двоичных чисел, образованных аргументами, и значение функции на этом наборе (табл. 2.1).
Одной таблицей истинности может быть задано несколько функций
(табл. 2.2);
4) в форме карт Карно (КК). Карта Карно – это та же таблица со-
ответствий, но представленная в
щей из 2
n
клеток, где n – число переменных. Карты Карно очень
форме координатной сетки, состоя-
удобны для представления функций, содержащих не более четырех
переменных; при n ≥ 5 они становятся громоздкими и теряют свои
основные достоинства – наглядность и простоту обработки. Поясним
строение карты Карно на примере функций четырех переменных
(рис. 2.1, а).
18

Таблица 2.1
X1 X2 X3 Z
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
Таблица 2.2
X1 X2 X3 Z1 Z2 Z3
0 0 0 0 1 0
0 0 1 0 1 1
0 1 0 0 0 0
0 1 1 1 1 1
1 0 0 1 1 1
1 0 1 0 0 0
1 1 0 1 0 1
1 1 1 0 1 1
Рис. 2.1. Карты Карно для четырех (а и б), трех (в)
и двух (г) переменных
Для разметки координатной сетки набор переменных расчленяется на две части, например, X
пример X
другая – Х
, определяет координату клетки по горизонтали (строку),
1X2
– по вертикали (столбец). Обе части набора упорядочи-
3Х4
1X2X3X4
= (X1X2)(X3X4). Одна из них, на-
ваются в коде Грея и записываются сверху и слева. Вместо перечис-
19

ления наборов можно отметить те столбцы и строки, где указанная
2
переменная принимает значение 1 (рис. 2.1, б). Карта Карно для трех
переменных строится обычно в прямоугольной форме (рис. 2.1, в),
для двух – в квадратной форме (рис. 2.1, г).
Внутри каждой клетки представляется значение функций на данном наборе аргументов. Зачастую функция определена не на всех
наборах переменных. На некоторых наборах ее значение безразлично. В таком случае в соответствующих клеточках проставляется какой-либо символ, например, «~» (тильда), как показано на рис. 2.1, б.
Очевидно, что таблицу истинности легко преобразовать в карту
Карно и наоборот.
2.2. Элементарные логические функции
Количество функций М от n переменных определяется количест-
наборов переменных N, образованных на базе бинарного множе-
вом
ства {0;1}: М = 2
N
=
n
)2(
, так как N = 2n . Таким образом, количество
функций одной переменной равно 4, двух переменных – 16, трех переменных – 256, четырех – 65536 и т.д.
Логические функции одной переменной представлены таблицей
истинности (табл. 2.3). Функции f
и f4, значения которых не зависят
1
от значения аргумента, называются константа 0 и константа 1 соответственно. Функция f
повторением X (Z = X). Наконец, функция f
, повторяющая значение аргумента, называется
2
, принимающая противо-
3
положные значения аргумента, называется инверсией (отрицанием)
X
и читается: Z есть не X. Условные графические обозначе-
)( XZ =
ния логического повторения и инверсии изображены на рис. 2.2.
Таблица 2.3
X f
0 0 0 1 1
1 0 1 0 1
f2 f3 f4
1
Рис. 2.2. Условные обозначения повторителя (а) и инвертора (б)
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
