Основы схемотехники цифровых устройств
Рассмотрим сущность выполнения действия сложения, например, чисел 45 и 87 в десятичной системе. Сначала складываем цифры младшего разряда — нулевого, соответствующего 10° — единицам: 5 + 7 = 12. В числе 12 уже две цифры, причем цифра младшего разряда суммы — 2, а цифра 1 принадлежит более старшему разряду — первому, соответствующего 101 — десяткам. Поэтому 2 записываем, 1 — запоминаем, т. е… Читать ещё >
Основы схемотехники цифровых устройств (реферат, курсовая, диплом, контрольная)
В результате изучения главы 3 студент должен:
знать
- • арифметические и логические основы построения цифровой полупроводниковой электроники;
- • основные виды комбинационных цифровых устройств;
- • основные виды последовательностных цифровых устройств;
уметь
- • разрабатывать принципиальные электрические схемы простейших цифровых устройств;
- • выполнять анализ работы простейших цифровых устройств, синтезированных из элементарных логических элементов;
владеть
• методами синтеза цифровых электронных устройств с использованием булевой алгебры и карт Карно.
Двоичная система счисления
В отличие от аналоговых устройств, в которых информационный сигнал может принимать любые значения в некотором диапазоне, в цифровых устройствах носителем информации является цифровой двоичный код. Этот код состоит из множества двоичных разрядов, каждый из которых принимает только два фиксированных значения — «О» или «1». Двум двоичным цифрам соответствуют два состояния электронной схемы. Обычно это два фиксированных уровня напряжения, которые может принимать сигнал на выходе схемы. Поэтому все разнообразие математических операций, выполняемых цифровыми устройствами, основывается на двоичной системе счисления.
Напомним суть записи числа, означающего, например, количество «тысяча триста восемь» в десятичной системе счисления:
По сути, набор цифр «один—три—нуль—восемь» представляет собой код, т. е. перечень коэффициентов (множителей), стоящих перед числом десять (основанием системы счисления) в степени (справа налево): нуль, один, два, три и т. д. «Вес» каждого коэффициента (цифры) определяется разрядом — позицией, которую он занимает в коде (единицы, десятки, сотни, тысячи и т. д.). Поэтому такая система счисления называется позиционной.
В позиционной двоичной системе счисления основанием служит число два, а коэффициентами могут быть только две цифры — нуль (0) и единица (1), поэтому, например, количество «тринадцать» запишется кодом 1101:
Арифметические действия в двоичной системе выполняют аналогично десятичной.
Рассмотрим сущность выполнения действия сложения, например, чисел 45 и 87 в десятичной системе. Сначала складываем цифры младшего разряда — нулевого, соответствующего 10° — единицам: 5 + 7 = 12. В числе 12 уже две цифры, причем цифра младшего разряда суммы — 2, а цифра 1 принадлежит более старшему разряду — первому, соответствующего 101 — десяткам. Поэтому 2 записываем, 1 — запоминаем, т. е. в младшем разряде суммы, соответствующем единицам, будет 2, а 1, соответствующую более старшему разряду — десяткам, будем учитывать при сложении цифр первого разряда. Далее складываем цифры первого разряда 4 + 8 и прибавляем к ним 1, которую запомнили; получаем 13. Теперь цифра, соответствующая первому разряду суммы — 3, а 1 переносится в старший разряд, соответствующий второму разряду суммы — 102, т. е. сотням.
Аналогично выполняется сложение в двоичной системе, например, чисел «шесть» и «семь» (табл. 3.1). Числа шесть и семь в двоичной системе имеют вид:
Таблица 3.1.
Сложение. | Вычитание. | ||
десятичная. | двоичная. | десятичная. | двоичная. |
Примечание: — перенос из младшего разряда в старший; — перенос из старшего разряда в младший; • — заем из старшего разряда.
Сложение начинаем с нулевого разряда, соответствующего 2°:
Переходим к сложению цифр первого разряда, соответствующего 21: 1 + + 1=2. Для записи числа 2 в двоичной системе требуется код: 10 (1 • 21 + + 0 • 2° = 2), т. е. цифра первого разряда суммы равна 0, а 1 переносим в старший разряд (нуль записываем, один запоминаем). Таким образом, если сумма цифр больше единицы, происходит перенос в старший разряд.
Далее складываем 1 + 1 и прибавляем 1, которую запомнили, получаем.
3. Число 3 в двоичной системе записываем кодом 11 (1 • 21 + 1 • 2° = 3), т. е. цифра второго разряда суммы равна 1, а старшая 1 переносится в следующий (третий) разряд.
Таким образом, сумма чисел 110 и 111 равна 1101. Нетрудно убедиться, что это двоичное число — 13 (1 • 23 + 1 • 22 + 0 • 21 + 1 • 2° = 13).
Рассмотрим теперь сущность действия вычитания в десятичной системе на примере: 132 — 87:
- • сначала вычитаем цифры нулевого разряда, но так как из двух нельзя вычесть семь, занимаем 1 (один десяток — основание системы счисления) в старшем разряде, что отмечаем точкой над цифрой 3; получаем 10 + 2 = 12; 12−7 = 5;
- • при вычитании цифр первого разряда необходимо занять 1 в следующем старшем разряде и, учитывая, что в первом разряде осталась цифра 2, получаем 10 + 2 — 8 = 4.
Аналогично выполняем вычитание из числа 1101 (13) числа 110 (6) в двоичной системе:
- • нулевой (2°) разряд: 1−0=1;
- • первый (21) разряд: из нуля нельзя вычесть единицу, поэтому занимаем 1 (т.е. одно основание системы счисления, равное двум) и получаем 2−1 = 1;
- • второй (22) разряд: из нуля, оставшегося после занимания единицы в этом разряде, нельзя вычесть единицу, поэтому занимаем 1 (основание, равное двум) в третьем (23) разряде: 2−1 = 1. Получим 111, т. е. двоичное число «семь».
Покажем, что операцию вычитания можно заменить сложением, но для этого уменьшаемое (т.е. 1101) надо складывать с обратным кодом вычитаемого, который получаем, заменив цифры на обратные (т.е. 1 на 0, а 0 на 1). Произведя сложение, переносим 1 из старшего разряда в младший, как показано стрелкой, и получаем двоичный код 111, соответствующий числу «семь».
Действия умножения и деления (а как доказано в математике, и любые другие операции) можно свести к сложению и вычитанию кодов, сдвинутых влево или вправо на то или иное число разрядов. Сдвиг числа влево на один разряд соответствует умножению его на 2, а вправо — делению на 2. Действительно, каждая цифра числа при его сдвиге влево будет иметь вес уже не i-ro разряда, т. е. 2', a (i + 1)-го, т. е. 2/+1. При сдвиге вправо вес каждой цифры будет уменьшаться в 2 раза, т. е. составит не 2 а 2м.
Покажем, как с помощью операций сложения и сдвига можно выполнить умножение двоичных чисел. Вычисление произведения осуществляют от старших разрядов множителя к младшим по шагам. На каждом шаге анализируют очередную цифру множителя. Если она равна 1, то к нромежуточному результату вычислений прибавляют множимое, если 0, то результат оставляют без изменений. При переходе к более младшему разряду промежуточный результат сдвигают влево на один разряд, т.с. умножают на 2. Последнему шагу вычислений соответствует нулевой разряд множителя. Обозначим через А множимое, через В — множитель, а через bi — i-й разряд множителя. Тогда в результате вычислений по описанному выше алгоритму будет получено число П:
Выражение в последних скобках есть не что иное, как число В} а число П — произведение А и В.
Поскольку вычитание сводится к сложению обратного кода, становится понятным, почему любые математические операции можно осуществить с помощью простейших операций сложения и сдвига, что и используется в процессорах ЭВМ.
Таким образом, если в десятичной системе для записи кодов используется десять цифр (от 0 до 9), то в двоичной системе — лишь две (0 и 1), которые называют битами (двоичными цифрами).
В любой системе кодирования должно выполняться неравенство N< Sny где N — количество кодируемых объектов; S — основание кода (основание системы счисления); п — длина кода (количество разрядов в коде-числе).
Например, для кодирования количества «тринадцать» в десятичной системе счисления достаточно двухразрядного кода 13 < 102, а в двоичной необходим четырехразрядный код 13 < 24 = 16, как показано в табл. 3.1.
Для хранения и обработки информации в виде текстов, формул и чисел необходимо с помощью бит закодировать около 150 различных символов (заглавные и строчные буквы латинского и русского алфавитов, знаки препинания, математические знаки, десять цифр и т.н.), т. е. N ~ 150. Для этого необходимы восьмиразрядные коды (150 < 28 = 256). Восьмиразрядный код называют байтом. Емкость памяти ЭВМ оценивают в килобайтах (Кбайт), мегабайтах (Мбайт) и гигабайтах (Гбайт).
В табл. 3.2 приведены примеры двоичного кодирования знаков, латинских букв и десятичных цифр.
Таблица 32
Символ. | Код. | Символ. | Код. | Символ. | Код. |
А. | |||||
а. | |||||
В. | |||||
в. | Точка. | ||||
С. | Плюс. | ||||
с. | Минус. | ||||
D. |
В кодах табл. 3.2, например, величина -6.285 будет закодирована так:
Пример 3.1.
Перевести в двоичную систему число 789.
Решение. Составим ряд чисел — весов двоичных разрядов (табл. 3.3):
Таблица 3.3
2>о. | 2″. | 28 | 27 | 26 | 2< | 2з. | 22. | 21 | 2°. | |
Так как 1024 > 789 > 512, 9-й разряд двоичного эквивалента числа 789 равен 1. Вычислим остаток: 789 — 512 = 277.
Так как 512 > 277 > 256, 8-й разряд двоичного эквивалента числа 789 равен 1. Вычислим остаток: 277 — 256 = 21.
Так как 32 > 21 > 16, 4-й разряд двоичного эквивалента числа 789 равен 1. Вычислим остаток: 21 — 16 = 5.
Так как 8 > 5 > 4, 2-й разряд двоичного эквивалента числа 789 равен 1. Вычислим остаток: 5−4 = 1, что соответствует 0-му разряду двоичного числа. Таким образом, двоичный эквивалент числа 789: 1 100 010 101.
Пример 3.2
Сложить двоичные числа 1 001 011 011 и 1 111 010 111.
Решение. Будем выполнять поразрядное сложение двоичных чисел, начиная с нулевого, помня, что «1» + «0» = «1», «1» + «1» = «10», т. е. «0» в текущем разряде и перенос в старший, «1» + «1» + «1» = «11», т. е. «1» в текущем и перенос в старший разряд. В табл. 3.4 представлен ход решения.
Таблица 3.4
Разряды. | |||||||||||
Перенос. | 14 | *. | 1^. | ||||||||
1 слагаемое. | |||||||||||
2 слагаемое. | |||||||||||
Сумма. |
Комментарии к таблице:
- 0- й разряд: «1» + «1» = «10» —> «0» + перенос в 1-й разряд;
- 1- й разряд: «1» + «1» + «1» (перенос) = «11"—> „1“ + перенос в 2-й разряд;
- 2- й разряд: „0“ + „1“ + „1“ (перенос) = „10“ —> „0“ + перенос в 3-й разряд;
- 3- й разряд: „1“ + „0“ + „1“ (перенос) = „10“ —> „0“ + перенос в 4-й разряд;
- 4- й разряд: „1“ + „1“ + „1"(псренос) = „11“ —> „1“ + перенос в 5-й разряд;
- 5- й разряд: „0“ + <<()“ + „1“ (перенос) = „1“;
- 6- й разряд: „1“ + „1“ = „10“ —> „0“ + перенос в 7-й разряд;
- 7- й разряд: „0“ + „1“ + „1“ (перенос) = „10“ —» «0» + перенос в 8-й разряд;
- 8- й разряд: «0» + «1» + «1» (перенос) = «10» —> «0» + перенос в 9-й разряд;
- 9- й разряд: «1» + «1» + «1″ (перенос) = „И“ —» «1» + перенос в 10-й разряд.
Пример 3.3
Вычесть число 1 010 111 100 из числа 1 111 000 100.
Решение. Получим обратный код вычитаемого путем инвертирования его разрядов: Сложим уменьшаемое с обратным кодом вычитаемого:
Перенесем старшую единицу в младший разряд и сложим с ней полученный результат:
Эквивалент двоичного числа результата —" 256 + 8 = 264.
Выполним проверку в десятичной системе.
Уменьшаемое 1 111 000 100 = 512 + 256 + 128 + 64 + 4 = 964.
Вычитаемое 1 010 111 100 = 512 + 128 + 32 + 16 + 8 + 4 = 700.
Разность 964 — 700 = 264.
Пример 3.4
Умножим множимое 10 111 на множитель 11 001, используя операции сложения и сдвига.
Решение. Алгоритм выполнения операции умножения следующий. На каждом шаге сначала выполняется сдвиг частичного произведения влево на 1 разряд, затем, если очередной разряд множителя равен 1, выполняется сложение частичного произведения с множимым, если нет, сложение не выполняется. Пусть старший разряд имеет номер 4, а младший — 0.
Шаг 1. Четвертый разряд множителя равен «1», так как частичное произведение пока равно нулю, его сдвиг ни к чему не приводит, выполним его сложение с множимым:
Шаг 2. Третий разряд множителя равен «1», выполним сдвиг частичного произведения и сложим его с множимым:
Шаг 3. Второй разряд множителя равен «0», выполним сдвиг частичного произведения без сложения с множимым:
Шаг 4. Первый разряд множителя равен «0», выполним сдвиг частичного произведения без сложения с множимым:
Шаг 5. Нулевой разряд множителя равен «1», выполним сдвиг частичного произведения и сложим его с множимым:
Десятичный эквивалент результата 1 000 111 111 = 575.
Выполним проверку в десятичной системе.
Множимое 10 111 = 23 Множитель 11 001 = 25 Произведение 23 • 25 = 575.