Xreferat.com » Рефераты по информатике и программированию » Синтез микропрограммного управляющего автомата

Синтез микропрограммного управляющего автомата

Министерство общего и профессионального образования РФ

Вятский государственный технический университет

Факультет автоматики и вычислительной техники

Кафедра электронных вычислительных машин


ДОПУСКАЮ К ЗАЩИТЕ

Руководитель работы _______ О.А. Залетов


СИНТЕЗ МИКРОПРОГРАММНОГО

УПРАВЛЯЮЩЕГО АВТОМАТА


Пояснительная записка

курсовой работы

по теории автоматов


ТПЖА.220100.22.29 ПЗ


Разработал студент гр. ВМ-22 ( _______ ) Р.В. Гонта


Проверил преподаватель кафедры ЭВМ ( _______ ) О.А. Залетов


Нормоконтролер ( _______ ) В.Ю. Мельцов


Председатель комиссии ( _______ ) В.Д. Матвеев


Члены комиссии ( _______ ) В.Ю. Мельцов


Работа защищена с оценкой ( _______ )


1999

Содержание


Введение

1 Постановка задачи

2 Описание используемого алгоритма умножения

2.1 Алгоритм умножения чисел в форме с ПЗ с простой коррекцией

2.2 Алгоритм умножения первым способом

3 Ручной подсчет

4 Выбор и описание структурной схемы ОА

5 Реализация содержательной ГСА

6 Построение отмеченной ГСА

7 Синтез МПА в соответствии с моделью Мили

7.1 Построение графа автомата

7.2 Построение прямой структурной таблицы переходов и выходов

7.3 Кодирование на D-триггерах

7.4 Получение логических выражений для функций возбуждения D-триггеров и функций выходов

7.5 Кодирование на RS-триггерах

7.6 Получение логических выражений для функций возбуждения RS-триггеров

7.7 Кодирование на T-триггерах

7.8 Получение логических выражений для функций возбуждения T-триггеров

7.9 Кодирование на счетчике

7.10 Получение уравнений для счетчика

8 Синтез МПА в соответствии с моделью Мура

8.1 Построение графа автомата

8.2 Построение прямой структурной таблицы переходов и выходов

8.3 Кодирование на D-триггерах

8.4 Получение логических выражений для функций возбуждения D-триггеров и функций выходов

8.5 Кодирование на RS- триггерах

8.6 Получение логических выражений для функций возбуждения RS- триггеров и функций выходов

9 Построение функциональной схемы микропрограммного управляющего автомата

Заключение

Библиографический список

Перечень сокращений



УДК 681.3

Реферат


Гонта Р.В. Синтез микропрограммного управляющего автомата. Курсовая работа / ВятГТУ, каф. ЭВМ, рук. О.А. Залетов – Киров, 1999. Гр. ч. 3 л. ф. А2


ОПЕРАЦИОННЫЙ АВТОМАТ, МИКРОПРОГРАММНЫЙ УПРАВЛЯЮЩИЙ АВТОМАТ , ГРАФ-СХЕМА АЛГОРИТМА, ГРАФ, ФУНКЦИОНАЛЬНАЯ СХЕМА, МОДЕЛЬ МИЛИ, МОДЕЛЬ МУРА


Цель работы — синтезировать микропрограммный автомат, управляющий операцией умножения чисел в форме с плавающей запятой и характеристикой в дополнительном коде первым способом с простой коррекцией.

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

Введение


Потребность в вычислениях возникла у людей на самых ранних стадиях развития человеческого общества. Причем с самого начала для облегчения счета люди использовали различные приспособления. Многие из них были весьма интересными и остроумными по принципу действия, но все они обязательно требовали, чтобы в процессе вычислений активно участвовал человек-оператор. Качественно новый этап развития вычислительной техники наступил с изобретением и созданием электронных вычислительных машин, которые работают автоматически, без участия человека, в соответствии с заранее заданной программой. Появление таких машин вызвано объективными условиями современного развития науки, техники и народного хозяйства. Во многих областях человеческой деятельности уже в середине ХХ века объем и сложность вычислительных работ настолько возросли, что решение некоторых задач без применения вычислительной техники было бы практически не возможным. В настоящее время электронные вычислительные машины применяются во многих областях науки, техники и народного хозяйства. В основном они используются: для решения сложных математических и инженерных задач, в качестве управляющих машин в промышленности и военной технике, в сфере обработки информации.

1 Постановка задачи


Требуется разработать МПА, управляющий операцией умножения двоичных чисел в форме с плавающей запятой и характеристикой в дополнительном коде первым способом с простой коррекцией.

Функциональную схему устройства построить в основном логическом базисе. Операнды разрядностью 4 байта (тридцать два разряда) поступают по входной шине (ШИВх) в дополнительном коде (ДК), результат также в ДК выводится по выходной шине (ШИВых). В младших 24 разрядах операнда хранится мантисса со знаком, а в следующих 8 разрядах - характеристика.

2 Описание используемого алгоритма умножения


Процесс умножения состоит из последовательности операций сложения и сдвигов.


2.1 Алгоритм умножения чисел в форме с ПЗ с простой коррекцией


  1. Определить знак произведения сложением по модулю два знаковых разрядов сомножителей.

  2. Перемножить модули мантисс сомножителей по правилам с ФЗ:

2.1. Выполнить коррекцию, если хотя бы один из сомножителей отрицательный по правилу введения коррекции.

Правила введения коррекции при умножении чисел в ДК:

  • Если сомножители положительны, коррекции нет.

  • Если один из сомножителей отрицателен, к псевдопроизведению надо прибавить ДК от модуля положительного сомножителя.

  • Если оба сомножителя отрицательны, к псевдопроизведению надо прибавить ДК от модулей дополнительных кодов обоих сомножителей, то есть их прямые коды.

2.2. Перемножить модули сомножителей, представленных в ДК, одним из четырех способов получить псевдопроизведение.

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

  2. Нормализовать мантиссу результата и выполнить округление если необходимо.


2.2 Алгоритм умножения первым способом


Умножение с младших разрядов множителя со сдвигом частных сумм вправо.

В каждом такте цикла умножения первым способом необходимо:

  1. Сложить множимое с предыдущей частной суммой, если очередной разряд множителя равен 1, и результат (новую частную сумму) запомнить; в случае если очередной разряд множителя равен 0 суммирование не выполнять;

  2. Уменьшить вдвое частную сумму, что равносильно сдвигу ее на один разряд вправо.


3 Ручной подсчет


Выполним ручной подсчет в соответствии с выше указанным алгоритмом.

В качестве множителя возьмём число 9, а в качестве множимого 13.


3.1 Сомножители положительные (A>0, B>0)


A = 9 = 10012, Апк = 0,1001, Адк = 0,1001

B = 13= 11012, Впк = 0,1101, Вдк = 0,1101

  1. Определим знак произведения: 0 + 0 = 0

  2. Перемножим модули сомножителей:

Таблица 1

Множимое

Множитель

Сумматор

Пояснения

0,1101

0,1001

0,00000000

0,11010000

0,11010000

Сложение


0,01101000

Сдвиг

0,0100

0,00110100

Сдвиг

0,0010

0,00011010

Сдвиг

0,0001

0,00011010

0,11010000

0,11101010

Сложение


0,01110101

Сдвиг


Получили псевдопроизведение: 0,01110101

3.1.3 Коррекция не нужна, так как оба множителя положительные.

3.1.4 Присвоение произведению знака:

(A*B)дк=0,01110101

(A*B)пк=0,01110101


A*B = (9)*(13) = 117 = 11101012


3.2 Сомножители разных знаков (А<0 , B>0)


A =-9=-10012, Апк = 1,1001, Адк = 1,0111

B =13= 11012, Впк = 0,1101, Вдк = 0,1101

  1. Определим знак произведения: 1 + 0 = 1

  2. Перемножим модули сомножителей:


Таблица 2

Множимое

Множитель

Сумматор

Пояснения

0,1101

0,0111

0,00000000

0,11010000

0,11010000

Сложение


0,01101000

Сдвиг

0,0011

0,01101000

0,11010000

1,00111000

Сложение


0,10011100

Сдвиг

0,0001

0,10011100

0,11010000

1,01101100

Сложение


0,10110110

Сдвиг

0,0000

0,01011011

Сдвиг


Получили псевдопроизведение: 0,01011011

3.2.3 Произведём коррекцию (прибавим к псевдопроизведению Вдк):

0,01011011

Вдк= 0,00110000

0,10001011

3.2.4 Присвоение произведению знака:

(A*B)дк=1,10001011

(A*B)пк=1,01110101

A*B = (-9)*(13) = -117 = -11101012


3.3 Сомножители разных знаков (А>0, B<0)


A = 9 = 10012, Апк = 0,1001, Адк = 0,1001

B =-13= -11012, Впк = 1,1101, Вдк = 1,0011

  1. Определим знак произведения: 0 + 1 = 1

  2. Перемножим модули сомножителей:

Таблица 3

Множимое

Множитель

Сумматор

Пояснения

0,0011

0,1001

0,00000000

0,00110000

0,00110000

Сложение


0,00011000

Сдвиг

0,0100

0,00001100

Сдвиг

0,0010

0,00000110

Сдвиг

0,0001

0,00000110

0,00110000

0,00110110

Сложение


0,00011011

Сдвиг


Получили псевдопроизведение: 0,00011011

3.3.3 Произведём коррекцию (прибавим к псевдопроизведению Aдк):

0,00011011

Адк= 0,01110000

0,10001011

3.3.4 Присвоение произведению знака:

(A*B)дк=1,10001011

(A*B)пк=1,01110101


A*B = (9)*(-13) = -117 = -11101012


3.4 Сомножители отрицательные (A<0, B<0)


A = -9= -10012, Апк = 1,1001, Адк = 1,0111

B =-13=-11012, Впк = 1,1101, Вдк = 0,0011

  1. Определим знак произведения: 1 + 1 = 0

  2. Перемножим модули сомножителей:

Таблица 4

Множитель

Множитель

Сумматор

Пояснения

0,0011

0,0111

0,00000000

0,00110000

0,00110000

Сложение


0,00011000

Сдвиг

0,0011

0,00011000

0,00110000

0,01001000

Сложение


0,00100100

Сдвиг

0,0001

0,00100100

0,00110000

0,01010100

Сложение


0,00101010

Сдвиг

0,0000

0,00010101

Сдвиг


Получили псевдопроизведение: 0,00010101

3.4.3 Произведём коррекцию (прибавим к псевдопроизведению Bпк, а затем Aпк):

0,00010101

Впк= 0,11010000

0,11100101

Aпк= 0,10010000

0,01110101

3.4.4 Присвоение произведению знака:

(A*B)дк=0,01110101

(A*B)пк=0,01110101

A*B = (-9)*(-13) = 117 = -11101012

4 Выбор и описание структурной схемы операционного автомата (ОА)


ОА должен содержать:

  • регистры RG1, RG2 для приема мантисс операндов с ШИВх;

  • регистр RG3 и счетчик CT1 для приема характеристик с ШИВх;

  • регистр RG4 для записи и хранения результата и частных сумм;

  • комбинационные сумматоры SM;

  • счетчик CT2 для подсчета тактов умножения;

  • три сумматора по модулю 2 для получения обратного кода множимого и определения ПРС;

  • триггер T1 для хранения знака результата;

  • схему конъюнкции;

  • триггер T2 для фиксации ПРС;

  • усилитель-формирователь для выдачи результата на ШИВых.


Операнды поступают в операционный автомат по 32-разрядной шине ШИВх. Перед началом умножения необходимо обнулить регистр частных сумм RG4, так как именно с него поступает информация на плечо A в SM, в счетчик CT2 необходимо занести “001001”, а триггер T1 сбросить. Операнды поступают в дополнительном коде. Сначала мантисса множителя записывается в RG1 и RG2, а его характеристика в RG3 и CT1. Мантисса первого операнда преобразуется в ДК с помощью схемы сложения по модулю 2 и сумматора и заносится в RG4. Затем записываются мантисса и характеристика множимого в RG2 и CT1 соответственно. После анализа знаков операндов произведем коррекцию, если это необходимо. Если знаковый разряд множимого (p2) равен 0, то обнуляем RG4. Если знаковый разряд множителя (p1) равен 1, то в RG4 заносим информацию с плеча S сумматора. После проведения коррекции начинается процесс получения псевдопроизведения. В процессе умножения происходят сдвиги регистров RG1 и RG4, а также увеличение счетчика CT2. Кроме того производится анализ младшего разряда RG1 (p4). Если он равен 1 тогда в RG4 заносим информацию с плеча S сумматора. Получение псевдопроизведения происходит до тех пор пока 5-й разряд в счетчике CT2 не окажется равным “1”. Далее производится анализ старшего разряда мантиссы результата. Если он равен “0” – требуется нормализация. Нормализация осуществляется путем сдвига RG4 влево и уменьшеня счетчика CT1. Характеристика произведения получается обычным сложением характеристик операндов, причем старший разряд характеристики у множителя подается инверсным на плечо сумматора A. Перед выдачей результата на ШИВых содержимое RG3, T1 и информация с плеча S сумматора SM2 подается на усилитель-формирователь.


Таким образом, для выполнения операции умножения из управляющего автомата в операционный автомат необходимо подать управляющие сигналы, реализующие следующие микрооперации:

y1 - запись в RG1,

запись в RG3,

сброс T1,

занесение “001001” в CT2;

y2 - запись в RG2,

запись в CT1,

разрешить запись в T1;

y3 - обнуление RG4;

y4 - запись в RG4;

y5 - CT2:=CT2+1,

сдвинуть вправо RG1:=0.R1(RG1),

сдвинуть вправо RG4:=0.R1(RG4);

y6 - SMp=1 – подача “1” на вход переноса сумматора,

управление совокупностью схем сложения по модулю 2;

y7 - CT1:=CT1-1,

сдвиг влево RG4:=L1(RG4).0;

y8 - управление выдачей на ШИВых;

Из операционного автомата в управляющий автомат необходимо передать осведомительные сигналы о состоянии устройств операционного автомата, определяемые списком следующих логических условий.


Х - проверка наличия операндов на ШИВх,

p1 - знак операнда в RG1;

p2 - знак операнда в RG2;

p3 - проверка на наличие нулевого операнда в RG2;

p4 - проверка очередной цифры множителя;

p5 - проверка условия выхода из цикла;

p6 - проверка результата на нормализованность;

p7 - проверка условия ПРС;

Z - проверка возможности выдачи по ШИВых.


Таким образом, управляющий МПА должен вырабатывать 8 управляющих сигналов и посылать их в ОА в нужные такты машинного времени в соответствии с алгоритмом выполнения операции сложения, ориентируясь на 9 осведомительных сигналов, поступающих из ОА, структурная схема которой представлена на рисунке 1.

5 Реализация содержательной ГСА


Содержательная граф-схема алгоритма представлена на рисунке 2. Выполнение алгоритма начинается с проверки наличия операндов на ШИВх (блоки 1 и 5). При поступлении первого операнда происходит его занесение в RG1, RG2, RG3 и CT1, а также обнуление RG4, занесение “001001” в CT2 и сброс триггеров T1 и T2 (блок 2). Затем в регистр RG4 поступает ДК от первого операнда (блок 4). При поступлении второго операнда происходит его занесение в RG2 и CT1 (блок 6). После каждого занесения производится анализ p3. Если хотя бы в одном случае p3=1 (блоки 3 и 7), значит операнд равен нулю и значит необходимо обнулить RG4, RG3, CT1, T1 (блок 19) и перейти к блоку 20. В противном случае продолжается процесс коррекции. Если p2=0 (блок 8) тогда обнуляется регистр RG4 (блок 9). Если p1=1 (блок 10) тогда получившаяся в сумматоре SM1 сумма заносится в RG4 (блок 11).

Далее получается псевдопроизведение. Если p4=0 (блок 12), тогда получившаяся в сумматоре SM1 сумма заносится в RG4 (блок 13). В любом случае выполняется блок сдвигов (блок 14): содержимое RG1 и RG4 сдвигаются вправо, CT2 увеличивается на “1“. Далее проверяется p5 (блок 15) - условие выхода из цикла. Если p5=1, цикл завершается, иначе переход к блоку 12.

Затем производится нормализация. Если p6=0 (блок 16), то выполняется блок сдвигов (блок 18): содержимое RG4 сдвигается влево, CT2 уменьшается на “1“.

При сложении характеристик одинакового знака возможно переполнение разрядной сетки (ПРС). Если p7=1 (блок 17), возникло ПРС и операция умножения завершается.

Затем результат при Z=1 (блок 21) будет передан по ШИВых (блок 22) в другие устройства.

6 Построение отмеченной ГСА


Перед разметкой содержательной ГСА поставим возле каждой операторной вершины управляющие сигналы УА и обеспечивающие выполнение требуемых действий в соответствии со списком МО операционного автомата. Совокупность МО для каждой операторной вершины образуют микрокоманды (МК), список которых приведен в таблице 5.

Таблица 5

MK

Совокупность МО

Y1

y1,y2,y3

Y2

y2

Y3

y3

Y4

y4

Y5

y5

Y6

y4,y6

Y7

y7

Y8

y8

Y9

y1,y3


Каждой условной вершине содержательной ГСА поставим в соответствие один из входных сигналов управляющего автомата X1, … ,X9, список которых дан в таблице 6.

Таблица 6

Входной сигнал УА

X1

X2

X3

X4

X5

X6

X7

X8

X9

Логическое условие ОА

X

p3

p2

p1

p4

p5

p6

p7

Z


Далее в полном соответствии с содержательной ГСА строим отмеченную ГСА (рисунок 3), условным вершинам которой приписывается один из входных сигналов УА (x1,...,x9), а операторным вершинам - одна из МК (в скобках указана совокупность МО для каждой МК). Выделение состояний управляющего МПА возможно в соответствии с моделью Мили или моделью Мура.

На рисунке 3 приведена разметка ГСА для модели Мили символами a01,...,а9 и для модели Мура - символами b0,b1,...,b12. Таким образам, если строить управляющий МПА в соответствии с моделью Мили, то он будет иметь 10 состояний, а в соответствии с моделью Мура - 13 состояний.

Замечание. В двух вершинах ожидания (5 и 20) при разметке по Муру введены фиктивные состояния автомата b3 и b10.

Явно большее число состояний для модели Мура по сравнению с моделью Мили не дает достаточных оснований для выбора модели Мили как более предпочтительной. Сравнение вариантов можно будет выполним лишь на этапе построения функциональных схем УА, сравнив схемы по сложности и быстродействию. Поэтому далее будем вести проектирование УА параллельно для модели Мили и для модели Мура.

7 Синтез МПА в соответствии с моделью Мили


7.1 Построение графа автомата


На основе отмеченной ГСА построен граф автомата Мили (рисунок 4). Граф автомата Мили имеет 10 вершин, соответствующих состояниям автомата а0, а1,...,а9, дуги его отмечены входными сигналами, действующими на каждом переходе (числитель), и набором выходных сигналов, вырабатываемых УА на данном переходе (знаменатель).

Из приведенного рисунка видно, что с увеличением количества состояний автомата наглядность графа теряется и больше удобств представляет табличный способ задания автомата.


7.2 Построение структурной таблицы переходов и выходов


Таблица 7. Прямая структурная таблица переходов и выходов автомата Мили.


Исходное состояние


Код am

Состояние перехода as


Код as

Входной сигнал X(am,as)

Выходные сигналы Y(am,as)

Функции

возбуждения

D-триггеров

a0

0001

a0

a1

0001

0011

X1

X1

-

Y1(y1,y2,y3)

D4

D3D4

a1

0011

a2

a9

0010

0000

X2

X2

Y6(y4,y6)

Y9(y1,y3)

D3

a2

0010

a2

a3

0010

0110

X1

X1

-

Y2(y2)

D3

D2D3

a3

0110

a4

a4

a9

1100

1100

0000

X2X3

X2X3

X2

-

Y3(y3)

Y9(y1,y3)

D1D2

D1D2

a4

1100

a5

a5

0100

0100

X4

X4

-

Y6(y4,y6)

D2

D2

a5

0100

a6

a6

0101

0101

X5

X5

-

Y4(y4)

D2D4

D2D4

a6

0101

a7

1001

1

Y5(y5)

D1D4

a7

1001

a5

a8

0100

1000

X6

X6

-

-

D2

D1

a8

1000

a0

a8

a9

0001

1000

0000

X7X8

X7

X7X8

-

Y7(y7)

-

D4

D1

a9

0000

a0

a9

0001

0000

X9

X9

-

Y8(y8)

D4


7.3 Кодирование на D-триггерах


При кодировании состояний автомата, в качестве элементов памяти которого выбраны D-триггеры, следует стремится использовать коды с меньшим числом "1" в кодовом слове. Для кодирования 10 состояний (a0 ,…, a10) необходимо 4 элемента памяти и из множества 4-разрядных двоичных слов надо выбрать код каждого состояния, ориентируясь на граф и таблицу переходов: чем чаще в какое-либо состояние происходят переходы из других состояний, то есть чем чаще оно встречается в столбце as таблицы 7, тем меньше в коде этого состояния следует иметь "1". Для этого построим таблицу 8, в первой строке которой перечислены состояния, в которые есть более одного перехода, а во второй - состояния, из которых осуществляются эти переходы.

Таблица 8

As

a0

a1

a2

a3

a4

a5

a6

a7

a8

a9

{am}

A0a8a9

a0

a1a2

a2

a3

a4a7

a5

a6

a7a8

a1a3a8a9


Наибольшее количество переходов в состояние a9 - закодируем его кодом К(a9)=0000. Состояниям a0, a2, a5, a8 назначим коды с одной "1": K(a0) =0001, К(a2) =0010, К(a5)=0100, К(a8)=1000. Для кодирования других состояний будем использовать слова с двумя "1" в кодовом слове, К(a1)=0011, К(a3)=0110, К(a4)=1100, К(a6)=0101, К(a7)=1001, стараясь, насколько возможно, использовать соседние с as коды для состояний, находящихся в одном столбце таблицы 7.

Кодирования для D-триггеров изображены в таблице 9.

Таблица 9

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.
Подробнее

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту

Похожие рефераты: