- •Глава 1. Арифметические основы цифровой схемотехники
- •Прямой, обратный, дополнительный коды.
- •Сложение двоично-десятичных чисел.
- •Глава 2. Логические основы цифровой схемотехники
- •Карты Карно
- •Цифровые интегральные микросхемы
- •Глава 3. Последовательные цифровые устройства — цифровые автоматы.
- •3.2. Цифровые счетчики импульсов
Глава 1. Арифметические основы цифровой схемотехники
Формы представления числовой информации в цифровых устройствах
Понятие информации имеет множество трактовок, отличающихся по полноте и предметной области. Приведём определение данного понятия, соответствующее нашему курсу:
Информация (лат. Informatio- сведение, разъяснение, ознакомление) - это сведения, являющиеся объектом передачи, распределения, преобразования, хранения или непосредственного использования.
Сведения возникают как предмет абстрактного описания некоторого объекта, явления или системы, т. е. присвоения знакового, образного соответствия. Источником информации в данном курсе будем считать некий схемотехнический элемент (датчик, ключ и тп.). Сведения о состоянии источника информации называются сообщениями. Элементарная единица сообщения - символ. Символы, собранные в группы, - слова. Для передачи сообщения преобразуются в материально-энергетическую форму - сигналы. Сигналом называется физический процесс, однозначно отображающий передаваемое сообщение с заданной точностью и пригодный для его обработки, хранения и передачи на расстояние.
Поскольку работать мы будем с числовой информацией, постольку символами будут числа. Для оперирования числами, необходимо ввести понятие системы счисления.
Система счисления — символический метод записи чисел.
Система счисления:
- даёт представления множества чисел (целых и/или вещественных);
- даёт каждому числу уникальное представление (или, по крайней мере, стандартное представление);
- отражает алгебраическую и арифметическую структуру чисел.
Системы счисления бывают: позиционные, непозиционные и смешанные. Для выполнения арифметических операций наиболее удобны позиционные системы счисления, рассмотрим их подробнее.
П од позиционной системой счисления понимается b-ричная система счисления, b – основание системы счисления (целое число). Целое число без знака x в b-ричной системе счисления представляется в виде конечной линейной комбинации степеней числа :
где — это целые числа, называемые цифрами, удовлетворяющие неравенству 0 .
Каждая степень bk в такой записи называется весовым коэффициентом разряда. Старшинство разрядов и соответствующих им цифр определяется значением показателя (номером разряда).
Если не возникает разночтений (например, когда все цифры представляются в виде уникальных письменных знаков), число записывают в виде последовательности его b-ричных цифр, перечисляемых по убыванию старшинства разрядов слева направо:
.
Некоторые системы счисления:
десятичная – основание = 10, алфавит – цифры от 0 до 9, наиболее привычный способ представления числовой информации, удобно производить расчёты.
двоичная – основание = 2, алфавит – 0 и 1, наиболее простая, ввиду чего нашла широкое применение в электронике.
двоично-десятичная – на один разряд десятичного числа отводится 4 двоичных разряда (Например, десятичное число 311 будет записано в двоичной системе счисления в двоичном коде как 1 0011 0111, а в двоично-десятичном коде как 0011 0001 0001). Идея создания такой системы счисления в упрощении перевода между двоичным и десятичным числами. Однако, 4 двоичных разряда позволяют кодировать 16 состояний системы (24=16), для кодирования одного десятичного разряда мы используем одно из первых десяти состояний, последние 6 состояний на каждый десятичный разряд остаются неиспользованными, отсюда нерациональный расход памяти и усложнение арифметических операций (т. к. имеются «не используемые» комбинации двоичных чисел.
восьмеричная – основание = 8, ровно 3 двоичных разряда, наряду с шестнадцатиричной, используется для сокращения записи двоичного числа.
шестнадцатеричная системы – основание = 16, для обозначения цифр от 10 до 15 используются первые 6 букв латинского алфавита (2B = 2(11)).
Преобразование числа из десятичной системы счисления в двоичную.
Целая часть переводится по следующему алгоритму (алгоритм деления): Пусть А10 = а n-1 * 2 n-1 +... + а 1 * 2 1 + а 0 * 2 0
- поделим А10 на 2, тогда неполное частное будет а n-1 * 2 n-1 + … +а1 ,а остаток а0
- полученное неполное частное опять разделим на 2, остаток от деления будет а1 и т.д.
- на n-м шаге получим набор остатков а0, а1, а2, ..., аn-1, которые входят в двоичное представление числа А10 и совпадают с остатками от последовательного деления данного числа на 2. Но мы получим их в обратном порядке. Нужно только переписать их .
А10 = а n-1 а n-2 ... а 1 а 0
Н а рис. 1 приведён пример перевода целого числа из десятичной системы счисления в двоичную.
1110=10112
Рис. 1
Перевод дробного числа из десятичной системы счисления в двоичную осуществляется по следующему алгоритму:
1. переводится целая часть десятичной дроби в двоичную систему счисления;
2. дробная часть десятичной дроби умножается на основание двоичной системы счисления;
3. В полученном произведении выделяется целая часть, которая принимается в качестве значения первого после запятой разряда числа в двоичной системе счисления;
4. Алгоритм завершается, если дробная часть полученного произведения равна нулю или если достигнута требуемая точность вычислений. В противном случае вычисления продолжаются с предыдущего шага.
Так же можно переводить число в любу систему счисления из десятичной, заменив делитель на основание соответствующей системы.
Пример: переведём число 0.11610 в двоичную систему счисления.
0,116 • 2 = 0,232
0,232 • 2 = 0,464
0,464 • 2 = 0,928
0,928 • 2 = 1,856
0,856 • 2 = 1,712
0,712 • 2 = 1,424
0,424 • 2 = 0,848
0,848 • 2 = 1,696
0,696 • 2 = 1,392
0,392 • 2 = 0,784
…
0,11610=0,0001110110…2
Преобразование двоичных чисел в десятичные удобнее всего производить на основании определения позиционной системы счисления.
Пример: переведём число 1010,0112 в десятичную систему счисления.
1*23+0*22+1*21+0*20+0*2-1+1*2-2+1*2-3=8+2+1/4+1/8=10,37510
Отметим, что таким же образом переводятся числа из любой системы счисления в десятичную.
Перевод из двоичной системы счисления в шестнадцатиричную и обратно производится посредством таблицы (рис. 2). Аналогичные таблицы могут быть легко получены для восьмеричного и двоично-десятичного форматов представления чисел.
Р ис. 2
Пример: 6A116=0110 1010 00012
Первый ноль слева можно не записывать, поскольку, очевидно, он не влияет на значение числа. При переводе из двоичной системы в шестнадцатиричную число разбивается справа на лево на четырёхразрядные блоки, которые переводятся в соответствии с таблицей.
И так, мы говорили, что слова передаются и обрабатываются техникой в виде сигналов. Сигналы бывают аналоговые и цифровые. Аналоговые сигналы являются первичными, снимаемыми непосредственно с источника информации. Цифровые сигналы являются искусственными, «рукотворными», их разделяют на две категории. К одной из них относят цифровой эквивалент аналогового сигнала (оцифровованный аналоговый сигнал). Он, с определённой степенью точности, несёт в себе информацию о численном значении параметров физических величин, содержащуюся в аналоговом сигнале. Ко второй категории относят так называемые логические сигналы, появление которых связано с наступлением или ненаступлением того или иного события. В дальнейшем цифровыми будем называть сигналы первого вида - цифровой эквивалент аналогового сигнала, а сигналы второго вида - логическими.
Остановимся подробней на цифровых сигналах. Как было упомянуто, наиболее удобной системой исчисления для схемотехники является двоичная система счисления. Один двоичный разряд называется битом, восемь бит – байтом, так же, иногда, некоторое количество бит (соответствующее разрядности регистров процессора, напр.) объединяют понятием машинного слова, размер машинного слова зависит от конкретной аппаратной платформы, но, как правило, не более 8 байт (64 бита).
Представления чисел с фиксированной и плавающей запятой.
Существует два способа представления чисел: с фиксированной запятой (точкой), когда количество разрядов под целую и дробную части заранее оговорены и с плавающей запятой (точкой), когда число представляется в виде нормализованной мантиссы и экспоненты. Первый способ прост в реализации, т. к. арифметические действия над числом, представленным таким образом, по сути, являются целочисленными. Минус фиксированной запятой – вероятность переполнения и потери точности. Что касается плавающей запятой, то, под нормализованной формой мантиссы, понимается число с одним целым значащим (не ноль) разрядом, под экспонентой понимается степень основания системы счисления, указывающая, на сколько разрядов мантисса смещена относительно естественной формы записи числа. Например: 635,477 = 6,35477 * 102. Очевидно, что двоичное число в виде мантиссы и экспоненты записывается в виде двух чисел. В некоторых стандартах первая цифра двоичной мантиссы не записывается, т. к. она всегда равна 1. Подробнее, а также о представлении 0 в формате с плавающей запятой, см. стандарт IEEE 754.
Арифметические действия над числами с плавающей запятой.
При сложении – выравниваются экспоненты, т. е. выбирается меньшее число, и его экспонента приравнивается к экспоненте большего числа, при этом происходит сдвиг запятой в мантиссе (если выравнивать большее число, то может получиться переполнение на мантиссе). Мантиссы складываются.
Пример: 3,6735*102+1,1*10-1=(3,6735+0,0011)*102=3,6746*102
При умножении – экспоненты складываются, мантиссы перемножаются, при необходимости, мантисса произведения нормализуется.
Пример: (3,6735*102)*(1,1*10-1)= 3,6735*1,1*102-1=4,04085*101
Деление аналогично умножению, но экспоненты вычитаются.
Пример: (3,6735*102)/(1,1*10-1)= 3,6735/1,1*102-(-1)=3,3395*103