- •1 Разработка алгоритма выполнения операции автоматом
- •2 Разработка гса и функциональной схемы операционной части автомата
- •2.1 Выбор длины разрядной сетки функциональных узлов операционного автомата
- •2.2 Содержательный граф автомата
- •2.3 Список микроопераций и логических условий
- •3 Разработка логической схемы управляющей части автомата
- •3.1 Составление таблицы переходов-выходов
- •3.3Построение функций возбуждения входов элементарных автоматов и логической схемы автомата.
- •Заключение
- •Список использованной литературы
Введение
Исследования в области теории автоматов начались в середине 50-х годов прошлого века. Несмотря на свою простоту, модель конечного автомата оказалась чрезвычайно удобной в огромном числе приложений не только в информатике, но и во многих других областях инженерной деятельности. Большой интерес к этой теории объясняется именно широкими возможностями ее применения. Без преувеличения можно сказать, что теория автоматов является одним из фундаментальных блоков современной теоретической и практической информатики. Наряду с классическими приложениями теории автоматов, такими как проектирование встроенных систем логического управления, обработка текстов и построение компиляторов искусственных языков, в последнее время появились новые, нетрадиционные области применения этой теории - спецификация и верификация систем взаимодействующих процессов (в частности, протоколов коммуникации), языки описания документов и объектно-ориентированных программных систем, оптимизация логических программ и другие.
Цель данной работы оценить погрешность перевода чисел в двоичную систему и погрешность выполнения операции. Разработать блок-схему, ГСА, функциональную схему операционного устройства, синтезировать и построить логическую схему автомата в базисе “Штрих Шеффера” на RSТ-триггерах. Рассчитать время работы микропрограммы.
Техническое задание
Разработать алгоритм умножения чисел в дополнительном коде в формате с плавающей запятой.
Дополнительные требования:
разрядность мантисс и порядков nм=16 иnp=6 соответственно;
математическая модель – автомат Мили;
элементный базис – “И-НЕ” (“Штрих Шеффера”);
минимизацию комбинационной схемы выполнить с помощью карт Карно;
в качестве элементов памяти использовать RST-триггеры.
2 Построить алгоритм выполнения операции.
3 Оценить погрешность перевода чисел в двоичную систему и погрешность выполнения операции на конкретном числовом примере.
4 Разработать функциональную схему операционного устройства.
5 Синтезировать логическую схему микропрограммного автомата.
6 Построить ГСА, граф автомата, таблицу переходов-выходов.
7 Построить логическую схему автомата в заданном базисе с заданным типом триггера.
1 Разработка алгоритма выполнения операции автоматом
Построение алгоритма выполнения операции
Шаг 1. Произведение положить равным нулю, загрузить операнды.
Шаг 2. Если младший разряд мантиссы множителя Вn=1, то произведение увеличить на значение множимого.
Шаг 3. Сдвиг вправо множителя и произведения на один разряд.
Шаг 4. Уменьшить содержимое счетчика на 1.
Шаг 5. Проверка: все ли разряды мантиссы операнда B обработаны. Если содержимое счетчика равно 0, то перейти к шагу 6, если нет, то – к шагу 2.
Шаг 6. Если множитель отрицательный, требуется коррекция в виде прибавления инверсного значения мантиссы множимого в дополнительном коде.
Шаг 7. Сложить в сумматоре порядков значения регистров порядков.
Шаг 8. Если имеется нарушение нормализации слева на один разряд, его следует нормализовать путем сдвига мантиссы произведения на один разряд влево и понижения порядка результата на единицу.
Шаг 9. Проверить условия переполнения в результате сложения порядков при сложении двух отрицательных чисел. Если условия переполнения не выполняются, то закончить.
Шаг 10. В случае переполнения сбросить флаг φ1(машинный ноль) в 1 и закончить.
Шаг 11. При сложении двух положительных значений порядков в случае переполнения сбросить флаг φ2 в 1 и закончить.
Пример выполнения операции
А= -0,10011*2-2,
В= -0,10101*2+1, В<0.
[ма]мд=11,01101 [ра]мд=1,110
[мв]мд=11,01011 [рв]мд=0,001
[ма]мд=00,10011
СММ |
Рг мв |
Примечание |
00,00000 11,01101 11,01101 11,10110 11,01101 11,00011 11,10001 11,11000 11,01101 11,00101 11,10010 11,11001 00,10011 00,01100
|
01011
10101
11010 11101
11110 01111 |
И.П.[СММ]=0;[Ргма]=[ма]мд;[Ргмв]=[мв]мд; В5=1;[СММ]=[СММ]+[Ргма]
[СММ];[Ргмв] В4=1;[СММ]=[СММ]+[Ргма] [СММ];[Ргмв] В3=0;[СММ];[Ргмв] В2=1;[СММ]=[СММ]+[Ргма]
[СММ];[Ргмв] В1=0;[СММ];[Ргмв] Корр:[СММ]=[СММ]+[Ргма] |
[мс]мд=00,0110001111 γ=0, δ=1
[СМП]=[ра]д+[рв]д=1,110+0,001=1,111
[рс]д=1,111
[мс]мд=00,1100011110
[рс]кд=[рс]д+[-1]д=1,111+1,111=1,110
[рс]=-0,010
С=0,1100011110*2-2.
Оценка погрешности перевода чисел в двоичную систему и выполнения операции
А = 439,88070678710942110 = 110110111,1110000101110112=
= 00,110111011111000010111011 * 29;
В = 366,85763549804693010 = 101101110,1101101110001112 =
= 00,1011011101110110110111000111 * 29
С учетом ограниченной разрядной сетки получим машинное изображение чисел:
[А] м= 00,11011011111100 * 29;
[B] м= 00,10110111011011 * 29.
Абсолютные погрешности представления чисел в машине равны:
А=А-[А]м=
= (00,1011011101110110110111000111 - 00,11011011111100)*221=
= 00,000000000000000010111011*29 ;
B=B-[B]*м =
= (00,1011011101110110110111000111 - 00,10110111011011) * 29 =
= 00,000000000000000111000111 * 29.
Относительные погрешности равны соответственно:
δА= ΔА*100%/А≈ ΔА*100%/[А]м*29=
= 0,000000010111011 / 110110111,111000010111011 * 100% =
= 0,000012973488087% ;
δВ= ΔВ*100%/В≈ ΔВ*100%/[В]*м*221=
= 0,000000111000111 / 101101110,110110111000111 * 100% =
= 0,000037849827026%.
При условии получения произведения в формате 2n погрешность операции перемножения указанных чисел равна:
δС = δА + δВ = 0,000012973488087% + 0,000037849827026 =
= 0,000050823315113%