министерство образования российской федерации Пензенский государственный университет
Арифметические и логические основы...
14 downloads
237 Views
203KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
министерство образования российской федерации Пензенский государственный университет
Арифметические и логические основы микропроцессорной техники Методические указания к практическим занятиям
ПЕНЗА 2003
УДК 681.31
Изложены основные сведения и приведены задачи для изучения арифметических и логических основ микропроцессорной техники. Методические указания подготовлены на кафедре “Информационно - измерительная техника” и предназначены для студентов специальностей 1906 и 1909. Ил. 6, библиогр. 3 назв. Составители: Маньжов Б.Н.. Семочкина И.Ю., Темногрудов А.В., Крысин Ю.М. Рецензент:
2
ТЕМА № 1 ПРЕДСТАВЛЕНИЕ ЧИСЕЛ В ПОЗИЦИОННЫХ СИСТЕМАХ СЧИСЛЕНИЯ С РАЗЛИЧНЫМИ ОСНОВАНИЯМИ Цель работы: приобретение практических навыков по записи чисел в позиционных системах счисления с различными основаниями и изучение методов перевода чисел из одной системы в другую. Основные сведения В позиционных системах счисления (ПСС) “вес” цифры определяется ее местоположением (позицией) в записи числа. Произвольное число Х в позиционной системе с основанием q в общем виде можно записать в виде полинома Xq =
n
∑a iq
i= -m
i
= anqn + an-1qn-1 + ... + a0q0 + a-1 q-1 + ... + a-mq-m, (1) целая часть
дробная часть
где ai - разрядный коэффициент (ai = 0 ... q-1); qi - весовой коэффициент. Число q называется основанием системы счисления. Номер позиции цифры ai называют его разрядом. Разряды с положительными степенями q образуют целую часть числа Xq, а с отрицательными - дробную. Цифры an и a −m соответственно являются старшим и младшим разрядами числа. В цифровой технике широкое распространение получила позиционная двоичная система счисления с основанием q = 2. В двоичной системе для за-
3
писи чисел используют две цифры: 0 и 1. Например, если разложить число 12 в десятичной системе разложить по степеням числа 2. то получим:
23
22
21
20
8
4
2
1
1
1
0
0
При записи числа указывают только разрядные коэффициенты. Запись имеет вид 1100. В процессе преобразования информации в ЭВМ возникает задача перевода чисел из одной ПСС в другую. Пусть основание первой СС равно q1, а второй - q2. В соответствии с формулой (1) числа в обоих СС можно записать в виде: n
∑a
i=-m
i q i 1
=
k
j
∑ b jq 2
(2)
j=-s
В общем виде задача пересчета числа из системы счисления с основанием q1 в СС с основанием q2 можно представить как задачу определения коэффициентов bj нового ряда. Решить эту задачу можно, например, подбором коэффициентов bj нового ряда. После нахождения максимальной степени q2 находят все степени нового основания меньшие максимальной. Наибольшее распространение получили следующие алгоритмы перевода чисел из одной СС в другую: 1. Перевод целых чисел делением на основание новой системы. 2. Табличный метод. 3. Метод с использованием промежуточной СС. Перевод целых чисел
Перевод целых чисел выполняется делением на основание новой системы.
4
Пример: Пример. Перевести 9810 в двоичную СС.
Остаток 98 : 2 = 49
0 = b0
49 : 2 = 24
1 = b1
гда остаток будет меньше
24 : 2 = 12
0 = b2
основания новой СС.
2:2=6
0 = b3
6:2=3
0 = b4
3:2=1
1 = b5
Деление прекращают, ко-
9810 = 11000102
1 = b6 Табличный метод перевода.
В идеальном случае, метод предполагает, что имеется таблица соответствия всех чисел в одной СС, числам в другой. Очевидно, такая таблица была бы громоздкой и поиск необходимых чисел был бы затруднен. На практике, имеется таблица эквивалентов только для произведения всех этих систем и степеней оснований. Задача заключается в подстановке всех эквивалентов и выполнении умножений и сложений по правилам арифметики в новой СС. В результате получим число в новой СС. Пример: перевести число 11310 в двоичную СС.
102
101
100
5
1100100
1010
0001
1⋅ 1100100 +1⋅ 1010 + 0011⋅ 0001 = 11100012 Использование промежуточных СС.
Метод, в основном, используется для перевода чисел из десятичной СС в двоичную. В качестве промежуточной удобно использовать систему с основанием q = 2k. Обычно в качестве промежуточной используют восьмеричную или шестнадцатеричную СС Порядок действий: 1, Число из десятичной СС переводят в промежуточную СС. 2. Полученные числа в разрядах числа в промежуточной СС заменяют их двоичными эквивалентами. Перевод правильных дробей.
Перевод правильных дробей выполняется умножением исходной дроби на новое основание. Арифметические действия выполняются по правилам исходной СС. Перевод некоторых чисел из одной СС в другую не может быть выполнен за конечное число шагов. В таких случаях перевод числа из одной СС в другую прекращают при достижении заданной точности. Пример:
перевести число А = 0,625 из десятичной СС в двоичную. 0,
b-1 = 1 b-2 = 0
625 ×2
b-3 = 1
000
Умножению подлежит только
250 ×2
дробная часть. Единицы перепол-
500 ×2
Они образуют результат, который
нения в умножении не участвуют.
6
читается сверху вниз. В данном
примере A10 = 0,1012.
Перевод неправильных дробей выполняется раздельным переводом целой и дробной частей. Задание
1. Перевести число N из десятичной ПСС в: а. двоичную б. троичную в. семеричную г. восьмеричную д. шестнадцатеричную Перевод выполнить подбором степеней, делением на основание новой ПСС, с использованием промежуточной ПСС. В качестве промежуточной ПСС использовать восьмеричную и шестнадцатеричную. 2. Перевести полученное двоичное число в десятичную ПСС. Перевод выполнить делением. 3. Выполнить перевод неправильной дроби в двоичную ПСС. Число N индивидуально для каждого студента и определяется по формуле N = 1200 + 256⋅K, где К - номер студента в журнале. Неправильная дробь равна N/1000.
ТЕМА № 2
ДВОИЧНАЯ АРИФМЕТИКА
7
Цель работы: изучение правил выполнения арифметических действий над двоичными числами представленных в прямом, обратном и дополнительном кодах. Основные сведения Операции сложения и вычитания являются основными операциями в ЭВМ. Это объясняется тем, что они легко выполняются и любые более сложные операции (умножение, деление, вычисление тригонометрических функций и т.д.) могут быть сведены к многократным сложениям и вычитаниям. Операции сложения и вычитания выполняются по разным алгоритмам, что усложняет аппаратную реализацию этих операций. Поэтому, числа в операциях с учетом знака число представляют в специальном формате, а операция вычитания заменяется сложением. Т.е. вместо А - В выполняется А + (-В). Следовательно, все арифметические операции сводятся к одной - сложению. Для выполнения таких действий положительные и отрицательные числа записываются в прямом, обратном и дополнительном кодах. Один разряд (старший) выделяют для знака (рис.1). При 0 в знаковом разряде число положительно, при 1 - отрицательно.
8
При записи числа в прямом коде в знаковом разряде ставится его знак, а само число записывается в естественной форме: А = 13
А = 0.1101
А = -13
А = 1.1101
Обратный код двоичных чисел получается заменой двоичных кодов во всех разрядах числа в прямом коде на взаимно обратные (0 на 1 и 1 на 0): (1.a1 a2 a3…an)пк = (1. a 1 a 2 a 3 … a n )ok
А = 13 А = -13
Аобр = 0.1101 Аобр = 1.0010
Дополнительный код двоичных чисел получается заменой двоичных кодов во всех разрядах числа в прямом коде на взаимно обратные (0 на 1 и 1 на 0). После этого к младшему разряду добавляется 1. Адк = Аок + 1 А = 13
Адоп = 0.1101
А = -13
Адоп = 1.0011
Прямой, обратный и дополнительный коды положительных чисел совпадают. Арифметические операции с отрицательными числами
Наглядно сложение двоичных чисел в дополнительном коде можно представить в виде следующей схемы:
9
Сложение двоичных чисел в обратном коде можно представить в виде следующей схемы:
Следует заметить, что знаковый разряд обрабатывается, так же как и остальные разряды числа. После суммирования чисел в обратном или дополнительном кодах результат будет так же в обратном или дополнительном кодах. Поэтому, результат сложения необходимо перевести в прямой код. Переводу подвергаются только отрицательные числа. Перевод из обратного кода в прямой выполняется за один этап: 1,аоа1а2...ап ⇒ 1. а о а 1 а 2 ... а п Перевод числа из дополнительного кода в прямой выполняется в два этапа: Адк ⇒ Аок ⇒ Аок + 1
10
Из приведенной схемы перевода чисел в прямой код видно, что знаковый разряд не инвертируется. Задание
Выполнить следующие арифметические действия над числами N1 и N2: 1) N1 + N2 2) N1 - N2 3) N2 - N1 Арифметические действия выполнить в прямом, обратном и дополнительном кодах. Результат перевести в прямой код. N1 = 1200 +120⋅K N2 = N1 + 256 К - номер студента в журнале.
ТЕМА № 3 ДВОИЧНО-ДЕСЯТИЧНАЯ АРИФМЕТИКА Цель работы: изучение правил выполнения арифметических действий над двоично-десятичными числами. Основные сведения Большинство микропроцессорных систем оснащается устройствами ввода-вывода, такими как клавиатура и дисплей, представляющими данные в десятичной СС, т.е. в системе естественной для человека. Для записи деся-
11
тичных чисел с использованием двоичной микропроцессорной логики разработан специальный двоично-десятичный код. Для преобразования числа из десятичной СС в двоично-десятичный код необходимо каждый разряд десятичного числа заменить его двоичным эквивалентом. Например: перевести 12810 в двоично-десятичное число 12810 = 0001 0010 1000дв-дес. И соответственно
100000002 = 0001 0010 1000дв-дес.
Четырехразрядное двоичное число позволяет записать десятичное в диапазоне от 0 до 15. Как принято говорить кодирование ведется в коде 1-2-4-8. Название дано по “весам” двоичных разрядов. Для двоично-десятичного числа используются комбинации от 0 до 9, т.е. имеем избыток кодовых комбинаций. Поэтому, разработаны кодовые комбинации с весами разрядов 2-42-1, 5-1-2-1 и другие. Некоторым недостатком таких кодовых комбинаций является неоднозначность записи числа - оно может быть записано несколькими способами. Десятичные числа
Двоично-десятичные числа 2-4-2-1
5-1-2-1
8-4-2-1
0
0000
0000
0000
1
0001
0001
0001
2
0010
0010
0010
3
0011
0110
0011
4
1010
0111
0100
5
1011
1000
0101
6
1100
1001
0110
12
7
1101
1010
0111
8
1110
1110
1000
9
1111
1111
1001
Из всех двоично-десятичных кодов наибольшее распространение получил код 8-4--21. При сложении чисел, представленных в двоично-десятичном коде, сложение выполняется потетрадно, формируя двоичный код соответствующего десятичного разряда. Если сумма результата в тетраде превышает 9, к нему прибавляют двоичный код 01102 числа 610. При этом в старшем разряде тетрады возникает единица переноса, что и требуется для формирования двоичнодесятичного числа. Например, при сложении чисел 9 + 5 = 14 промежуточный результат корректируется кодом 0110, в тетраде десятичного разряда формируется двоичный код 01002 числа 410 и сигнал переноса в следующий десятичный разряд:
+
9
1001 + 0101
5 14
+
1110 0110
1 0100 перенос в следующий разряд Данная операция называется двоично-десятичной коррекцией. Для ее проведения МП имеют специальную команду.
13
Задание Перевести десятичные числа N1 и N2 в двоично-десятичные. N1 = 1200⋅(1 + 0.1⋅K) N2 = N1 + 256 К - номер студента в журнале. Найти сумму N1 + N2
ТЕМА № 4 ОСНОВЫ АЛГЕБРЫ ЛОГИКИ Цель работы: приобретение практических навыков применения законов алгебры логики. Основные сведения Работа цифровых устройств основана на законах и правилах алгебры логики (Булевой алгебры). Базовыми операциями алгебры логики являются: -Логическое сложение (дизъюнкция), y = a v b, (читается y равно a или b). Функция y обращается в 1 если хотя бы один из аргументов, a или b
равен 1 и обращается в 0 в остальных случаях; -Логическое умножение (конъюнкция), y = a & b, либо y = ab (читается y равно a и b ). Функция обращается в 1 если оба аргумента
равны 1 и обращается в 0 в остальных случаях; 14
a и b
- Логическое отрицание (инверсия), y = a , (читается y равно не a ). Функция обращается в 1 если аргумент равен 0 и обращается в 0 если аргумент равен 1. Способы задания логических функций
Логическая функция может быть задана таблицей истинности или логическим алгебраическим выражением. Таблица истинности функции трёх переменных приведена в табл.1. В левой части таблицы перечислены все возможные сочетания значений независимых переменных a, b, c. В правой части задана некоторая функция y(a,b,c). Для перехода от табличной к алгебраической форме задания логической функции необходимо записать логическую сумму конъюнкций всех переменных, при которых функция обращается в “1”. Для данного примера y = 1 в строках 3,6,7, при наборах переменных a bc или ab c или abc, то есть: y = a bc v ab c v abc . Таким образом, получено алгебраическое выражение логической функции представленное в дизъюнктивной нормальной форме (ДНФ). Таблица 1. №
a
b
15
c
y
0
0
0
0
0
1
0
0
1
0
2
0
1
0
0
3
0
1
1
1
4
1
0
0
0
5
1
0
1
0
6
1
1
0
1
7
1
1
1
1
Основные законы алгебры логики 1. Переместительный закон аvb=bva
ab = ba
2. Сочетательный закон (a v b) v c = a v ( b v c)
(ab)c = a(bc)
3.Распределительный закон a(b v c) = ab v bc a v bc = (a v b)(a v c) 4. Закон поглощения a v ab = a(1 v b) = a 5. Закон склеивания ab v a b = a
a(b v b ) = a ⋅ 1 = a
(a v b)( a v b ) = a
aa v a b v ab v b b = a v a(b v b ) v 0 = a
6. Закон отрицания де Моргана: a ∨ b = a ⋅b
ab = a v b
При преобразовании логических выражений следует учитывать, что: 16
аv0=а
а v а v а v ... v а = а
аv1=1
а ⋅ а ⋅ а ⋅ ... ⋅ а = а
а⋅ 0=0
аv а =1
а ⋅1=а
а ⋅а
=0
а =а
Законы алгебры логики позволяют упрощать, или другими словами, минимизировать логические функции (ЛФ). Целью минимизации логической функции является упрощение её технической реализации. Устранить влияние субъективных факторов на процесс минимизации позволяют так называемые систематические методы преобразования ЛФ. К наиболее известным систематическим методам минимизации относятся диаграммы Вейча или карты Карно. Минимизация с использованием диаграмм Вейча (карт Карно) имеет следующие этапы: 1. Функцию приводят к дизъюнктивной нормальной форме (ДНФ). Для
этого ее необходимо выразить в виде логической суммы простых конъюнкций. Простой конъюнкцией считается логическое произведение всех переменных, взятых с отрицаниями или без них, в котором каждая переменная встречается не более одного раза. В простую конъюнкцию не должны входить суммы переменных, отрицания функций двух или более переменных. Например выражение y = abc ∨ ab ∨ bc не является ДНФ так как в произведениях ab и bc представлены не все переменные. Умножим ab на (c ∨ c) и bc на (a ∨ a ) . Выражения (c ∨ c) и (a ∨ a ) равны 1 и не изменяют логическую функ-
цию. После раскрытия скобок и приведения подобных членов получаем логическую функцию, представленную в (ДНФ): y = a bc v
17
ab c v abc .
2. После этого заполняют прямоугольную таблицу, в которой число
клеток равно N=2i - количеству возможных сочетаний переменных. При числе переменных i = 2 N= 4, при i = 3 N= 8 и т.д. Затем, используя таблицу истинности, в соответствующую клетку таблицы ставится “1”, если при данном наборе переменных ЛФ = 1 и 0 - если ЛФ = 0 или ничего не ставится, если ЛФ не определена. Для функции трёх переменных диаграмма Вейча имеет вид: a
a
b
1
1
0
1
b
0
0
0
0
c
c
c
Рис.1 3. В заполненной таблице обводят прямоугольными контурами все “1”
и затем записывают минимизированную ЛФ в виде суммы логических произведений, описывающих эти контуры. При проведении контуров придерживаются следующих правил: а) контуры должны быть прямоугольными и охватывать, в совокупности, все единицы. б) внутри контура должны быть клетки заполненные только единицами в) число клеток, находящихся внутри контура, должно быть целой степенью числа 2. Т.е. число клеток может равняться 2, 4, 8, 16 и т.д. г) одни и те же клетки, заполненные единицами, могут входить в несколько контуров.
18
д) при проведении контуров самая верхняя и самая нижняя строки считаются соседними. Тоже - для крайнего левого и крайнего правого столбцов. е) число контуров должно быть как можно меньшим, а сами контуры как можно большими. 4. Записывают минимизированную ЛФ как сумму логических произ-
ведений, каждое из которых состоит из переменных являющихся общими для данного контура. Переменные входящие в контур в прямой и инверсной форме в произведение не включаются. Количество произведений равно количеству контуров. Для рассмотренного выше примера результат минимизации равен: y = ab ∨ bc
Задание: выполнить преобразование ЛФ алгебраическим методом и с помощью диаграмм Вейча. Номер варианта определяется индивидуальным номером студента в журнале. Варианты: 1.
y = abc ∨ ab ∨ a c
11.
y = a bc ∨ a b c ∨ a b c ∨ a bc
2.
y = abc ∨ ac ∨ a c
12.
y = a bc ∨ a b c ∨ a b c ∨ a bc ∨ ab c
3.
y = a bc ∨ ab ∨ a c
13.
y = a bc ∨ a b c ∨ a b c ∨ a bc
4.
y = abc ∨ ab c ∨ a b c
14.
y = a bc ∨ a b c ∨ abc ∨ ab c
5.
y = abc ∨ a bc ∨ abc ∨ a bc
15.
y = a bc ∨ a b c ∨ a bc ∨ ab c
6.
y = ab c ∨ ab c ∨ a b c
16.
y = abc ∨ a bc ∨ abc ∨ a bc
7.
y = ab ∨ ac ∨ ab
17.
y = abc ∨ ab c ∨ a b c
8.
y = abc ∨ a bc ∨ abc ∨ a bc
18.
y = ab ∨ ac ∨ ab
9.
y = abc ∨ a c
19.
y = a c ∨ a c ∨ abc ∨ abc
19
10.
y = ab ∨ a c ∨ a c ∨ abc
20.
y = a bc ∨ abc ∨ a bc
ТЕМА № 5 СИНТЕЗ ДЕШИФРАТОРА Цель работы: практическое освоение методов проектирования цифровых устройств, начиная со словесной формулировки задания, формализации задачи, минимизации логических функций и заканчивая построением принципиальной электрической схемы.
Задание:
Спроектировать дешифратор для управления семисегментным индикатором, отображающим десятичные цифры от 0 до 9. Входные сигналы дешифратора (a,b,c,d) представлены двоичным кодом. Выходные сигналы обозначены так же как и соответствующие им сегменты индикатора (t,u,v,w,x,y,z). Для определённости будем считать, что сегмент индикатора светится если на его контакт управления подана логическая единица “1”.
20
Порядок проектирования:
1.Составить таблицу 1. 2.Закодировать двоичным кодом цифры от 0 до 9. В колонке a размещать старший разряд, в колонке d – младший. 3.Глядя на рисунок индикатора, заполнить оставшуюся часть таблицы. Например, при заполнении строки 8 во всех столбцах (от t до z) должны быть проставлены “1”, что соответствует высвечиванию цифры 8. Заполненная таблица представляет собой таблицу истинности для семи логических функций ( t,u,v,w,x,y,z), общими аргументами которых, являются переменные (a, b, c, d). 4.На основании таблицы истинности составить дизъюнктивные нормальные формы логических функций ( t,u,v,w,x,y,z). 5.Составить и заполнить диаграммы Вейча (Табл.2) для каждой функции. Часть клеток диаграммы останутся незаполненными, так как функции определены только для десяти комбинаций аргументов от 0 до 9. Оставшиеся комбинации не используются для индикации десятичных цифр. По-
21
этому незаполненные клетки могут быть доопределены произвольным образом 0 или 1, исходя из соображений удобства минимизации. Таблица 1. a b c d t u v w x y z 0 1 2 3 4 5 6 7 8 9 Таблица 2. a
a
b
d
b
d
d c
c
c
6.Записать алгебраические выражения минимизированных логических функций ( t,u,v,w,x,y,z) и с использованием логических элементов И, ИЛИ,
22
НЕ с необходимым числом входов, создать принципиальную электрическую
схему устройства. Например, схема, реализующая функцию
y = abc ∨ a c ,
будет иметь вид:
Литература 1. Р. Токхайм. Микропроцессоры: Курс и упражнения / Пер. с англ. под ред. В.Н. Грасевича. М.: Энергоатомиздат, 1987 г. 2. Вашкевич Н.П.,
Сергеев Н.П. Основы вычислительной техники. М:
Высшая школа, 1988. 3. Горбунов В.П., Панфилов Д.И., Преснухин Д.Л. Справочное пособие
по микропроцессорам и микроЭВМ.
23