Академический Документы
Профессиональный Документы
Культура Документы
Prezentare ASDNRUS-конвертирован PDF
Prezentare ASDNRUS-конвертирован PDF
устройств
(Analiza și Sinteza Dispozitivelor
numerice)
Lector universitar Mariana Oșovschi
Departementul Informatică și Ingineria Sistemelor
mariana.osovshi@calc.utm.md
Тема 1: ЛОГИЧЕСКИЕ ОСНОВЫ ЦИФРОВЫХ
АВТОМАТОВ
Логические операции и логические элементы
f (x4 x3 x2 x1 ) = v (0,1,2,3,4,7,8,11,12,13,15)
Запишем двоичные коды минтермов СДНФ в
виде табл
Вес Двоичный код Десятичный эквивалент
0 0000 0
1 0001 1
0010 2
0100 4
1000 8
2 0011 3
1100 12
3 0111 7
1011 11
1101 13
4 1111 15
Строим таблицу для определения первичных импликант
функции.
Конъюнкции соседних групп склеиваются, если
отличаются по одной переменной.
Переменную которая поглощается будем заменять
символом х. Конъюнкции соседних групп также
склеиваются, если символ х присутствует в одном и том
же разряде и имеется отличие по одной переменой.
Вместо вновь поглощаемой переменной проставляется
символ х.
Конъюнкция, которая более не склеивается с другими,
является первичной импликантой заданной функции.
Десятичные Десятичные
Первичные Первое эквиваленты Первичные Второе эквиваленты
импликанты склеивание склеиваемых импликанты склеивание склеиваемых
конъюнкций конъюнкций
000х (0,1) * v (0,1;2,3)
00х0 (0,2) * v c 00хх (0,2;1,3) -
0х00 (0,4) * v (0,4;8,12)
х000 (0,8) * v d хх00 (0,8;4,12) -
00х1 (1,3) * v
001х (2,3) * v
х100 (4,12) * v
1х00 (8,12) * v
0х11 (3,7) * v (3,7;11,15)
х011 (3,11) * v e хх11 (3,11;7,15) -
a 110х (12,13)* -
х111 (7,15) * v
1х11 (11,15)* v
b 11х1 (13,15)* -
Для расстановки меток составляется таблица, число строк
которой равно числу полученных первичных импликант, а
число столбцов совпадает с числом минтермов СДНФ.
Если в некоторый минтерм СДНФ входит какая-либо из
первичных импликант, то на пересечении
соответствующих столбца и строки ставится метка
Первичн Исходные термы
ые
импликан 0000 0001 0010 0011 0100 0111 1000 1011 1100 1101 1111
ты
110х v v
11х1 v v
00хх v v v v
хх00 v v v v
хх11 v v v v
Минимизация не полностью определенных
функций
Часто при синтезе числовых устройств функции, которые
необходимо минимизировать, определяются частично.
Это означает, что из 2n комбинаций функция определяется
для m комбинаций (m < 2n) то есть для некоторых
комбинаций функция равна нулю, для других она равна
единице, а для остальных ( 2n - m) не имеет строгого
значения. Минимизация таких функций происходит
следующим образом:
Комбинация, для которой функция не определена в таблице
истинности, обозначается отдельным знаком (*), и в процессе
минимизации их значение устанавливается равным единице, если
оно приведет к наиболее минимальной форме и равно нулю, если это
приведет к оптимальной функции.
Пример:
Дана функция y, равная - 1 în : 1,4,5,11,15, и в комбинациях: 2,6,7,13
функция неопределенна.
Системы счисления и коды
Под системой счисления понимается совокупность правил
представления чисел посредством ограниченного
количества символов.
Используемые для представления чисел символы
называются цифрами
Системы счисления могут быть позиционными и
непозиционными.
Количество цифр используемых для написания чисел в
некоторой системе счисления определяет основание
соответствующей системы.
В системе счисления с основанием q, некоторое число N
записывается посредством ряда цифр:
N(q)=bn-1bn-2...bi...b1b0 . b-1b-2...b-m
где десятичная точка разделяет целую часть от дробной
части числа N. Цифра bi представляет i-й разряд числа N.
Для вычисления значения числа N следует прибегнуть к
равенству
N(q)=bn-1qn-1+bn-2qn-2+ ... +b1q1+b0q0+b-1q-1+b-2q-2+...+b-
mq
-m
Или
Cистемы счисления используемые в области
цифровых систем
Двоичная система счисления. Эта система использует для
представления чисел только две цифры - 0 и 1, то есть
bi{0,1}
N(2)=bn-12n-1+bn-22n-2+ +b121+b020+b-12-1+b-22-2++b-
m2
-m
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Формы представления двоичных чисел
Двоичные числа могут быть представлены в двух формах:
в форме с фиксированной точкой и в форме с плавающей
точкой
Числа с фиксированной точкой
Представление целых чисел без знака. Формат целых
чисел без знака выглядит следующим образом:
Представление дробных (меньше единицы) чисел без
знака. В этом случае, формат чисел аналогичен формату
целых чисел без знака. Отличие состоит в том, что
десятичная точка неявно фиксирована слева
Представление двоичных чисел со знаком предполагает
использование некоторого соглашения относительно
цифры знака. Согласно принятой конвенции знак “+”
представляется цифрой 0 а знак “-” цифрой 1. Двоичные
числа со знаком могут быть представлены в прямом,
дополнительном и обратном коде.
Представление двоичных чисел в прямом коде Целые
числа со знаком имеют следующий формат:
Представление двоичных чисел в дополнительном коде
Дополнительный код положительного числа совпадает с
прямым кодом этого числа. В случае отрицательных чисел
правило получения дополнительного кода следующее:
инвертируются все разряды с последующим
прибавлением 1 в младший разряд, а в поле цифры знака
проставляется 1.
Представление двоичных чисел в обратном коде:
Обратный код положительного числа совпадает с прямым
кодом этого числа. Обратный код отрицательного числа
получается путем инвертирования цифровых разрядов и
проставляя 1 в знаковый разряд.
ПРОЕКТИРОВАНИЕ КОМБИНАЦИОННЫХ
ЛОГИЧЕСКИХ СХЕМ
Комбинационными логическими схемами (КЛС)
называются схемы, состоящие из логических элементов
того или иного функционально полного базиса, не
способные к запоминанию информации, то есть состояние
выходов зависит только от состояния входов в данный
момент времени и не зависит от состояния входов в
предидущий момент времени.
КЛС можно описать двумя способами: с помощью таблиц
истинности или с помощью логических выражений.
Этапы Проектирования КЛС :
1. Табличное или аналитическое описание
функционирования КЛС;
2. Минимизация логической функции одним из
известных способов;
3. Преобразование полученной МДНФ посредством
формул де Моргана с целью перехода к выбранному
или заданному логическому базису (И-НЕ, ИЛИ-НЕ);
4. Синтез КЛС в соответствующем базисе логических
элементов.
Если у КЛС больше одного выхода такие схемы
называются системами КЛС. Этапы синтеза систем КЛС
такие-же как и для обычных КЛС с одним исключением:
перед реализацией схемы необходимо выявить общие
части, для того чтоб реализовать их один раз в схеме.
Синтез преобразователей кода
Преобразователи кода - это комбинационные
функциональные элементы, предназначенные для
преобразования одного двоичного кода в другой: мы
можем представить его как КЛС с n входами и m
выходами. Переменные n и m могут быть разными или
равными. Число n соответствует количеству рангов кода на
входе, м- количество рангов кода на выходе.
Обычно преобразователи кода с разным количеством
входов и выходов являются те, которые выполняют
преобразование чисел из одной системы счисления в
другую или из одного типа кода в другой тип кода.
Синтез преобразователей кода происходит
следующим образом:
I) На 1-м этапе проводится разработка таблицы истинности.
Количество элементов таблицы истинности равно числу рядов
входного кода, который представляют собой переменные не
входе функции. Количество функции на выходе равно числу
рангов кода на выходе. Nr. комбинации равны 2n, но f в таблице
истинности может быть частично определено, то есть в 2n
комбинациях часть может быть неиспользованной, в этом
случае логический f будет минимизирован как частично
определенный f.
II) Минимизация функций.
III) Нахождение общих терминов минимальных форм всех ЛФ
для использования одних и тех же элементов при получении в
логической схеме различных функций.
IV) Реализация минимальных форм, полученных для доступных
логических элементов.
Дешифраторы
x3 x2 x1 y0 y1 y2 y3 y4 y5 y6 y7
0 0 0 1 0 0 0 0 0 0 0 y 0 = x 3 x 2 x1
0 0 1 0 1 0 0 0 0 0 0 y1 = x 3 x 2 x1
0 1 0 0 0 1 0 0 0 0 0 y 2 = x 3 x 2 x1
0 1 1 0 0 0 1 0 0 0 0 y 3 = x 3 x 2 x1
1 0 0 0 0 0 0 1 0 0 0 y 4 = x 3 x 2 x1
1 0 1 0 0 0 0 0 1 0 0 y 5 = x 3 x 2 x1
1 1 0 0 0 0 0 0 0 1 0 y 6 = x 3 x 2 x1
1 1 1 0 0 0 0 0 0 0 1 y 7 = x 3 x 2 x1
v
x3 x2 x1
y0
Reprezentarea grafica
y1
DC 0 x0
1 x1
y2
2 x2
x0 0 x3
3
y3
x1 1
4 x4
x2 2 x5
y4 5
6 x6
y5
7 x7
y6
y7
Шифраторы
Шифратор — это комбинационное устройство,
преобразующее десятичные числа в двоичную систему
счисления, причем каждому входу может быть
поставлено в соответствие десятичное число, а набор
выходных логических сигналов соответствует
определенному двоичному коду. Шифратор иногда
называют «кодером» (от англ. coder) и используют,
например, для перевода десятичных чисел, набранных
на клавиатуре кнопочного пульта управления, в
двоичные числа.
Если количество входов настолько велико, что в
шифраторе используются все возможные комбинации
сигналов на выходе, то такой шифратор называется
полным, если не все, то неполным. Число входов и
выходов в полном шифраторе связано соотношением n=
2m, где n— число входов, m— число выходов.
Сложение и вычитание двоичных чисел с
фиксированной точкой
Операция сложения двоичных кодовых слов является
ключевой операцией в любой цифровой системе. В
двоичной системе счисления сложение двоичных цифр
выполняется согласно следующим правилам:
0+0=0
0+1=1
1+0=1
Сумма 1+1=10. Поэтому, при сложении двух двоичных
цифр 1 имеем: 1+1=0 плюс единица переноса, которую
следует учитывать при сложении двоичных цифр в
следующем разряде.
Сложение в прямом коде
Правила сложения двоичных чисел в прямом коде не
отличаются от вышеуказанных. Если оба слагаемых
(операнда) имеют одинаковые знаки, то следует сложить
разряды цифровой части, а сумме приписать знак одного
из операндов. Если знаки операндов разные, то из
разрядов цифровой части большего по модулю числа
вычитается меньшее, а сумме приписывается знак
большего числа.
При вычитании двоичных цифр следует соблюдать следующие
правила: 0-0=0, 1-0=1, 1-1=0, 0-1=1 с учетом единицы заёма в
старшем разряде.
При сложении чисел в прямом коде характерны два
недостатка:
1) знаковый и цифровые разряды операндов
приходиться обрабатывать раздельно;
2) выполнение операции сложения затруднено тем, что
необходимо иметь в составе вычислительного
оборудования как суммирующее устройство, так и
вычитающее устройство. Из-за указанных недостатков
прямой код для выполнения операции сложения не
используется, однако этот код удобен при реализации
операции умножения.
Сложение в дополнительном коде
Сложение двоичных чисел в дополнительном коде
производится по тем же правилам как и прямом коде.
Операцию вычитания двух чисел заменяют сложением
соответствующих чисел следующим образом:
A-B=A+(-B)
При сложении двух чисел в дополнительном коде
знаковый разряд и цифровая часть обрабатываются как
единое целое. Результат сложения получается в
дополнительном коде.
Если имеет место перенос из знакового разряда, то цифра
переноса игнорируется.
Сложение в обратном коде
В обратном коде, как и в дополнительном коде, операция
вычитания заменяется операцией алгебраического сложения.
При этом знаковый разряд и цифровая часть операнда
обрабатываются как единое целое. Правильный знак суммы
получается автоматически в процессе суммирования цифр
знаковых разрядов операндов и единицы переноса из
цифровой части, если она появляется. Характерной
особенностью сложения в обратном коде является наличие
циклического переноса (если он возникает) из знакового
разряда в младший разряд цифровой части, в результате чего
получается правильная сумма.
Сдвиг двоичных чисел
При выполнении в цифровых устройствах определенных
операций, может возникнуть необходимость сдвигать
цифры двоичного кода. Операции сдвига могут быть
логического, арифметического и циклического типов.
Двоичное число может быть сдвинуто влево или вправо.
Сдвиг влево на один разряд соответствует умножению на
2, а сдвиг вправо на один разряд соответствует делению
на 2. Сдвиг двоичных чисел необходим при выполнении
таких операций, как умножение и деление, сложение
чисел с плавающей точкой.
Логический сдвиг
Каждая цифра здвигается на один разряд в право или
лево. В случае логического сдвига влево теряется цифра в
левом (старшем) разряде, а в случае логического сдвига
вправо теряется цифра в младшем разряде.
Арифметический сдвиг. В случае арифметического сдвига
цифра знака сохраняется. При сдвиге влево теряется
цифра следующая за знаковой, а в случае сдвига вправо
цифра знака дублируется и теряется цифра в младшем
разряде
Циклический сдвиг. При таком типе сдвига не теряется ни
одна цифра сдвигаемого числа. Это объясняется наличием
кольцевой связи между старшим и младшим разрядами
числа.
Умножение двоичных чисел с фиксированной
точкой
Операция умножения выполняется суммированием
сдвинутых на один или несколько разрядов частичных
произведений, каждое из которых является результатом
умножения множимого на соответствующий разряд
(разряды) множителя.
Основными способами выполнения операции умножения
являются:
1) умножение начиная с младших разрядов множителя;
2) умножение начиная со старших разрядов множителя.
Операциями сложения управляют разряды множителя:
если разряд множителя =1 к сумме частных произведений
прибавляется множимое с соответствующим сдвигом;
если разряд множителя =0, то множимое не добавляется.
При этом полную сумму (произведение) можно получить
двумя путями:
1) умножение начиная с младших разрядов множителя со
сдвигом множимого влево;
2) умножение начиная с старших разрядов множителя со
сдвигом множимого вправо;
Алгоритм умножения двоичных чисел с
фиксированной точкой :
Метод 1: умножение начиная с младших разрядов
множителя со сдвигом множимого в лево
Алгоритм состоит в: проверяем каждый разряд множителя
начиная с младших разрядов – если соответствующий
разряд = 1 то с промежуточному произведению
прибавляем множимое после чего сдвигаем множимое на
одну позицию в лево; если разряд =0 сложение не
производим, а только сдвигаем множимое в лево.
Первое промежуточное произведение =0
Метод 2: Умножение начиная с старших разрядов
множителя со сдвигом множимого в право
Алгоритм состоит в: проверяем каждый разряд множителя
начиная с старших разрядов – если соответствующий
разряд = 1 то с промежуточному произведению
прибавляем множимое после чего сдвигаем множимое на
одну позицию в право; если разряд =0 сложение не
производим, а только сдвигаем множимое в право.
Операнды обрабатываются вместе с битом знака.
Если количество разрядов операндов = n то количество
разрядов результата =2n.
Исходя из этого требуется нормализация результата –
считаем получившиеся в результате разряды если их
количество 2n – дополняем результат до требуемой
длинны добавляя нули с лева (то есть в наиболее старшие
позиции)
Деление двоичных чисел с фиксированной точкой
Частное определяется путем деления модулей исходных
чисел. При этом должно соблюдаться условие: АВ,
где А – делимое и В – делитель. В противном случае
возникнет переполнение.
Этапы деления двоичных чисел с фиксированной точкой
1. Определяем знак частного сложением по модулю 2
знаковых цифр операндов.
2. Определяем модули операндов и -В следуя
правилам составления дополнительного кода:
Алгоритм умножения двоичных чисел с фиксированной
точкой :
Метод 1: Деление с восстановлением остатков со сдвигом
остатков от деления влево
В ходе деления делитель вычитаем из делимого –
операцию вычитания заменяем