- •«Самарский государственный технический университет»
- •По курсу «Теория автоматов и формальных языков»
- •Лабораторная работа № 1
- •1. Краткая теория
- •1. Начальные языки описания цифровых автоматов
- •1.1. Начальные языки описания цифровых автоматов.
- •1.1.1. Язык регулярных выражений алгебры событий. Язык регулярных выражений алгебры событий использует следующие понятия:
- •1.1.2. Граф-схемы алгоритмов (гса) функционирования автоматов.
- •1.1.4. Формулы переходов.
- •1.1.5. Матричные схемы алгоритмов (мса).
- •1.1.6. Преобразование гса с помощью формул переходов.
- •1.1.3. Логические схемы алгоритмов (лса).
- •2. Методика выполнения
- •4. Контрольные вопросы
- •1. Краткая теория
- •1.1.7. Объединение гса с помощью мса.
- •2. Методика выполнения
- •Задание на выполнение работы
- •4. Контрольные вопросы
- •Лабораторная работа № 3
- •1. Краткая теория
- •Тема 2.1. Автоматные языки описания цифровых автоматов.
- •2. Методика выполнения
- •1. Краткая теория
- •Тема 3.1. Определение абстрактного автомата. Соединение
- •2. Методика выполнения
- •1. Краткая теория
- •2. Методика выполнения
- •1. Краткая теория
- •2. Методика выполнения
- •4. Контрольные вопросы
- •Лабораторная работа № 7 Исследование автомата с магазинной памятью.
- •1. Краткая теория
- •2. Методика выполнения
- •1. Краткая теория
- •Разметка состояний
- •2. Методика выполнения Используя материал из раздела 1, по гса, заданной преподавателем, спроектировать автомат Мура на жесткой логике:
- •3. Задание на выполнение работы
- •Лабораторная работа № 9 Зачетное занятие
- •Начальные языки описания цифровых автоматов.
- •Лабораторная работа № 10 Исследование языков описания цифровых автоматов. Моделирование гса.
- •1. Краткая теория
- •1. Язык регулярных выражений алгебры событий. Язык регулярных выражений алгебры событий использует следующие понятия:
- •2. Граф-схемы алгоритмов (гса) функционирования автоматов.
- •3. Логические схемы алгоритмов (лса).
- •4. Формулы переходов.
- •5. Матричные схемы алгоритмов (мса).
- •2. Методика выполнения
- •3. Задание на выполнение работы
- •4. Контрольные вопросы
- •Лабораторная работа № 11 Исследование языков описания цифровых автоматов. Моделирование микропрограмм
- •1. Краткая теория
- •Автоматные языки
- •2. Микропрограммный управляющий автомат
- •2. Методика выполнения
- •3. Задание на выполнение работы
- •4. Контрольные вопросы
- •Лабораторная работа № 12
- •1. Краткая теория
- •1) Разметка состояний.
- •2) Прямая таблица переходов.
- •3) Кодирование состояний.
- •4) Обратная структурная таблица.
- •5) Запись функции выходов и переходов автомата.
- •2. Методика выполнения Используя материал из раздела 1, по гса, заданной преподавателем, спроектировать автомат Мура на жесткой логике:
- •3. Задание на выполнение работы
- •4. Контрольные вопросы
- •Лабораторная работа № 13
- •1. Краткая теория
- •1) Разметка состояний автомата по гса.
- •2) Прямая таблица переходов.
- •3) Кодирование состояний автомата.
- •4) Обратная структурная таблица.
- •5) Запись функций выходов и переходов автомата.
- •6) Построение функциональной схемы автомата Мили (рис.2).
- •2. Методика выполнения Используя материал из раздела 1, по гса, заданной преподавателем, спроектировать автомат Мили на жесткой логике:
- •3. Задание на выполнение работы
- •4. Контрольные вопросы
- •Лабораторная работа № 14 Исследование автоматов Мили на плм. Моделирование автоматов Мили плм.
- •1. Краткая теория
- •2. Методика выполнения Используя материал из раздела 1, по гса, заданной преподавателем, спроектировать автомат Мили на плм:
- •3. Задание на выполнение работы
- •4. Контрольные вопросы
- •Исследование автоматов Мура на плм. Моделирование автоматов Мура плм
- •Краткая теория
- •2. Методика выполнения Используя материал из раздела 1, по гса, заданной преподавателем, спроектировать автомат Мура на плм:
- •3. Задание на выполнение работы
- •4. Контрольные вопросы
- •1. Краткая теория
- •3) Краткое описание работы автомата:
- •2. Методика выполнения
- •4. Контрольные вопросы
- •Лабораторная работа № 17
- •1. Краткая теория
- •Формат микрокоманды:
- •Оглавление
- •3) Краткое описание работы автомата:
- •2. Методика выполнения
- •4. Контрольные вопросы
- •Лабораторная работа № 18
2. Микропрограммный управляющий автомат
Микропрограммный управляющий автомат – это конечный автомат, обеспечивающий выполнение микропрограмм операционным устройством.
Микропрограмма описывает алгоритм выполнения какой-либо сложной операции (арифметической, логической и т.п.) в терминах микроопераций и логических условий.
К микрооперациям относятся простейшие действия над словами информации, выполняемые элементами операционного автомата (ОА): загрузка и хранение слова, инверсия слова, сложения двух слов, инкремент, декремент, сдвиг на 1 разряд влево или вправо и т.п.
Микропрограмма часто записывается в виде ГСА (подобно ГСА в программировании). Идентификаторами в микрооперациях являются обозначения операционных элементов ОА, например RA – регистр А, СТ – счетчик и т.д., и идентификаторы переменных. Микрооперации записываются в виде операторов присваивания с использованием идентификаторов и символов микроопераций.
Примеры микроопераций
RС: = 0 – в регистр RС записать (загрузить) число 0.
R
A:
= А – в регистр RA
записать (загрузить) число А.
RA: = RА – инвертировать содержимое регистра RA.
RС: = RA + RВ – в регистр RС поместить результат сложения чисел, хранящихся в регистрах RА и RВ.
RА: = L1 (RA). 0 – сдвинуть влево на 1 разряд содержимое регистра RA, а в освободившийся крайний правый разряд записать 0.
СТ: = СТ + 1 – изменить состояние счетчика СТ на +1.
Все операционные элементы характеризуются разрядностью. Разряды нумеруются справа налево начиная с нуля. Например, запись СТ[3..0] означает, что счетчик СТ – четырехразрядный. Его разряды (начиная со старших) обозначаются так: СТ[3], СТ[2], СТ[1], СТ[0].
Микрооперации, допускающие совместное выполнение, называются совместимыми. Они могут записываться в одной и той же операторной вершине ГСА.
В микропрограмме кроме микроопераций (операторные вершины ГСА) используются логические условия (условные вершины ГСА). Логические условия, как правило, вырабатываются операционным автоматом и могут принимать значения «0» (ложно) или «1» (истинно).
Примеры логических условий
СТ=0 – содержимое счетчика СТ равно нулю.
RA(0) – содержимое младшего разряда регистра RA: если оно равно нулю – переход по выходу «0» условной вершины ГСА, если равно «1» – переход по выходу «1» условной вершины ГСА.
Микропрограмма, записанная в терминах микроопераций и логических условий, называется содержательной или функциональной.
Рассмотрим пример выполнения операции умножения двух целых положительных 8-разрядных двоичных чисел: С = А * В.
Алгоритм выполнения операции умножения двух целых 8-разрядных положительных двоичных чисел можно описать следующим образом. Имеются переменные А и В – операнды операции С = А * В – и переменная С, в которую будем записывать промежуточные суммы и в которой будет, в итоге, сформированы результат и счетчик циклов СТ.
Алгоритм выполнения операции
1. С = 0, СТ = 0.
2. Если В[0] = 1, то С = С + А.
3. А = L1(A). 0 – сдвиг числа А влево на 1 разряд (умножение на 2).
4. В = R1(В) – сдвиг числа В вправо на 1 разряд.
5. СТ = СТ + 1.
6. Если СТ = 7 – перейти к п. 8.
7. Перейти к п. 2.
8. Операция выполнена.
Совершенно очевидно, что для выполнения этой операции необходим ряд операционных элементов (элементов ОА) соответствующей разрядности, выполняющих простейшие функции: хранения, суммирования, счета циклов сложения и т.п. Это следующие элементы.
RB[7..0] – 8-разрядный регистр множителя – числа В.
Функции регистра:
загрузка числа: RB := В;
сдвиг числа вправо на один разряд: RВ := R1(В).
RА[15..0] – 16-разрядный регистр множимого – числа А. Разрядность регистра RА в два раза больше разрядности числа А, так как в процессе выполнения операции число А должно сдвигаться влево n-1 раз.
Функции регистра:
загрузка числа: RА := А;
с
двиг
числа влево на один разряд: RА
:= L1(RA).
RС[15..0] – 16-разрядный регистр промежуточных сумм и результата. Разрядность регистра RС в два раза больше разрядности чисел А и В, так как в процессе выполнения операции число С может иметь разрядность в два раза большую, чем у чисел А и В.
Функции регистра:
загрузка числа: RС := С;
обнуление регистра: RС := 0.
СТ[2..0] – 3-разрядный двоичный счетчик для подсчета числа циклов (до семи).
Функции счетчика:
обнуление счетчика: СТ := 0;
счет: СТ := СТ + 1.
СМ[15..0] – 16-разрядный сумматор – комбинационная схема для выполнения микрооперации: RС := RС + RА.
Пример содержательной микропрограммы выполнения операции умножения двух целых 8-разрядных двоичных чисел А и В приведен на рис. 1.
Каждая микрооперация в ОА инициируется микрокомандой. Микрокоманды вырабатываются управляющим автоматом (УА) в зависимости от того, какая микрооперация должна выполняться в данный момент.
По микропрограмме, записанной в форме ГСА, строится ГСА управляющего аппарата. Для этого вместо микроопераций в операторных вершинах записываются микрокоманды (Yi), а вместо логических условий – их коды – Xi.
Кроме того, в ГСА УА часто предусматривают две дополнительные вершины – одну операторную (перед вершиной «конец») и одну условную (после вершины «начало»). В первой записывается микрокоманда завершения выполнения операции. Это микрокоманда не для операционного автомата, а для информирования о том, что операция выполнена и ОУ готово к выполнению следующей операции (в нашем примере – У7). Вторая соответствует внешней команде «Пуск» (в нашем примере – Х3), по которой ОУ начинает выполнение операции.
