Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Содержание.doc
Скачиваний:
11
Добавлен:
13.03.2015
Размер:
1.07 Mб
Скачать

Введение

Исследования в области теории автоматов начались в середине 50-х годов прошлого века. Несмотря на свою простоту, модель конечного автомата оказалась чрезвычайно удобной в огромном числе приложений не только в информатике, но и во многих других областях инженерной деятельности. Большой интерес к этой теории объясняется именно широкими возможностями ее применения. Без преувеличения можно сказать, что теория автоматов является одним из фундаментальных блоков современной теоретической и практической информатики. Наряду с классическими приложениями теории автоматов, такими как проектирование встроенных систем логического управления, обработка текстов и построение компиляторов искусственных языков, в последнее время появились новые, нетрадиционные области применения этой теории - спецификация и верификация систем взаимодействующих процессов (в частности, протоколов коммуникации), языки описания документов и объектно-ориентированных программных систем, оптимизация логических программ и другие.

Цель данной работы оценить погрешность перевода чисел в двоичную систему и погрешность выполнения операции. Разработать блок-схему, ГСА, функциональную схему операционного устройства, синтезировать и построить логическую схему автомата в базисе “Штрих Шеффера” на RSТ-триггерах. Рассчитать время работы микропрограммы.

Техническое задание

  1. Разработать алгоритм умножения чисел в дополнительном коде в формате с плавающей запятой.

Дополнительные требования:

  • разрядность мантисс и порядков nм=16 иnp=6 соответственно;

  • математическая модель – автомат Мили;

  • элементный базис – “И-НЕ” (“Штрих Шеффера”);

  • минимизацию комбинационной схемы выполнить с помощью карт Карно;

  • в качестве элементов памяти использовать RST-триггеры.

2 Построить алгоритм выполнения операции.

3 Оценить погрешность перевода чисел в двоичную систему и погрешность выполнения операции на конкретном числовом примере.

4 Разработать функциональную схему операционного устройства.

5 Синтезировать логическую схему микропрограммного автомата.

6 Построить ГСА, граф автомата, таблицу переходов-выходов.

7 Построить логическую схему автомата в заданном базисе с заданным типом триггера.

1 Разработка алгоритма выполнения операции автоматом

    1. Построение алгоритма выполнения операции

Шаг 1. Произведение положить равным нулю, загрузить операнды.

Шаг 2. Если младший разряд мантиссы множителя Вn=1, то произведение увеличить на значение множимого.

Шаг 3. Сдвиг вправо множителя и произведения на один разряд.

Шаг 4. Уменьшить содержимое счетчика на 1.

Шаг 5. Проверка: все ли разряды мантиссы операнда B обработаны. Если содержимое счетчика равно 0, то перейти к шагу 6, если нет, то – к шагу 2.

Шаг 6. Если множитель отрицательный, требуется коррекция в виде прибавления инверсного значения мантиссы множимого в дополнительном коде.

Шаг 7. Сложить в сумматоре порядков значения регистров порядков.

Шаг 8. Если имеется нарушение нормализации слева на один разряд, его следует нормализовать путем сдвига мантиссы произведения на один разряд влево и понижения порядка результата на единицу.

Шаг 9. Проверить условия переполнения в результате сложения порядков при сложении двух отрицательных чисел. Если условия переполнения не выполняются, то закончить.

Шаг 10. В случае переполнения сбросить флаг φ1(машинный ноль) в 1 и закончить.

Шаг 11. При сложении двух положительных значений порядков в случае переполнения сбросить флаг φ2 в 1 и закончить.

    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.

    1. Оценка погрешности перевода чисел в двоичную систему и выполнения операции

А = 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%