Получение математической модели микропрограммных устройств в виде
Для целей синтеза МПУ необходимо уметь строить модели микропрограммных устройств в виде ГСА, ЛСА, МСА. Методику их построения рассмотрим на примере.
Пример 5.1 Для МПУ, изображенного на рисунке 5.3, найти его описание в виде ГСА, ЛСА и МСА.
|
|
|
|
|
|
|
Работа автомата состоит в следующем.
По команде "Пуск" в регистр Р записывается команда начала работы, по которой ФКУ формирует команду z 1. После этого МПУ проверяет наличие сигнала на входе x 1 (логическое условие x 1). Если x 1=1, то автомат формирует управляющую команду z 2, затем z 3, а если x 1=0, то сразу формирует команду z 3. После этого МПУ проверяет, выполнено ли логическое условие x 2 (наличие сигнала на входе x 2). Если x 2=0, то автомат заканчивает работу, а если x 2=1, то МПУ формирует управляющую команду z 4 и проверяет выполнение логического условия x 3. При x 3=0 цикл работы автомат повторяет, начиная с формирования команды z 1. Если логическое условие x 3 выполняется (x 3=1), то проверяется состояние входа автомата x 4 (логическое условие x 4). Если на входе x 4 имеется сигнал (x 4=1), то МПУ возвращается к формированию команды управления z 4, если на этом входе отсутствует сигнал (x 4=0), то работа автомата заканчивается.
|
|
Отметим, что, как правило, словесное описание работы МПУ получают по условиям, задаваемым заказчиком на разработку устройства (автомата).
Порядок построения ГСА состоит в следующем.
1) Составляется полный перечень команд (микрокоманд управления и логических условий). Для примера 5.1 это будут команды "Пуск", z 1, z 2, z 3, z 4, "Конец", x 1, x 2, x 3, x 4.
Заметим, что в реальных примерах эти команды имеют реальный смысл.
2) Вводится содержательное обозначение микрокоманд и ЛУ. Для примера 5.1 это будут: "Пуск", ФКУ= z 1, ФКУ= z 2, ФКУ= z 3, ФКУ= z 4, "Конец", Sign x 1, Sign x 2, Sign x 3, Sign x 4.
3) Определяется и вычерчивается начальная вершина "Пуск".
4) В соответствии со словесной формулировкой строится содержательная ГСА до конечной вершины.
При этом необходимо с особым вниманием относиться к случаям, когда якобы следует осуществить возврат к уже имеющимся вершинам, что может привести к противоречию в ГСА, а также к случаям, когда после некоторого значения ЛУ нет дальнейшего действия, а необходимо ждать противоположного значения ЛУ, т.е. возникает ждущая вершина.
|
|
По словесному описанию условий работы МПУ построим содержательную граф-схему алгоритма. Для примера 5.1 построение начинаем с вычерчивания начальной вершины "Пуск" (Рисунок 5.4). Так как после пуска автомат формирует команду управления z 1, то ниже необходимо вычертить операторную вершину ФКУ= z 1, которая соответствует формированию команды z 1. Выход вершины "Пуск" следует соединить со входом вершины ФКУ= z 1. По условию работы МПУ после формирования команды z 1 проверяется логическое условие x 1 поэтому ниже вершины ФКУ= z 1 следует вычертить вершину Sign x 1. Вход этой вершины соединяется с выходом вершины ФКУ= z 1. Вершина Sign x 1 имеет два выхода: "да" и "нет". Из условий работы МПУ следует, что если x 1=1, то автомат формирует управляющую команду z 2, а затем z 3. Поэтому ниже вершины Sign x 1 необходимо нарисовать последовательно соединенные вершины ФКУ= z 2 и ФКУ= z 3. Вход вершины ФКУ= z 2 соединяется с выходом "да" вершины Sign x 1. Если логическое условие x 1 не выполнено, то сразу формируется команда z3, поэтому выход "нет" вершины Sign x 1 следует соединить со вторым входом вершины ФКУ= z 3. Аналогично анализируя заданную схему автомата (его словесное описание), начертим содержательную граф-схему алгоритма (Рисунок 5.4) до конечной вершины.
5. После построения содержательной ГСА ее вершины кодируются, т.е. выбирается система операторов. Выберем для примера 1 следующую кодировку вершин:
А 0 - "Пуск";
А 1 - ФКУ= z 1;
А 2 - ФКУ= z 2;
А 3 - ФКУ= z 3;
А 4 - ФКУ= z 4;
Ак - "Конец";
x 1 - Sign x 1;
x 2 - Sign x 2;
x 3 - Sign x 3;
x 4 - Sign x 4.
Получаем при таком кодировании вершин граф-схему алгоритма (Рисунок 5.5), наглядно представляющую условия функционирования заданного МПУ.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Порядок получения модели МПУ в виде логической схемы алгоритма следующий:
1) На основании анализа словесного описания условий функционирования МПУ определяется список формируемых МПУ команд (микрокоманд управления) и проверяемых логических условий.
2) Производится кодирование микрокоманд и ЛУ: вводятся условные обозначения формируемых микрокоманд (А 0, А 1, А 2,... Ак) и проверяемых ЛУ (x 1, x 2,..., xn), т.е. выбирается система операторов.
3) Выписывается начальный оператор, обозначающий начало алгоритма.
4) По словесной формулировке последовательно строится ЛСА - член за членом до Ак включительно. Эта процедура производится вначале при равенстве всех логических условий единице (ЛУ=1), а затем при равенстве ЛУ нулю (ЛУ=0), либо проставляются в необходимых местах концы стрелок, либо вводятся новые члены ЛСА. При этом каждое ЛУ снабжается началом стрелки.
Найдем описание в виде ЛСА микропрограммного устройства, описанного в примере 5.1. Перечень команд и логических условий был выписан при составлении ГСА.
Введем систему операторов, т.е. закодируем команды и условия, формируемые и проверяемые автоматом, следующим образом:
Команду "Пуск" - А 0;
Команду z 1- А 1;
Команду z 2 - А 2;
Команду z 3 - А 3;
Команду z 4 - А 4;
Команду "Конец" - Ак;
Проверку выполнения логического условия x 1 - x 1;
Проверку выполнения логического условия x 2 - x 2;
Проверку выполнения логического условия x 3 - x 3;
Проверку выполнения логического условия x 4 - x 4;
Так как работа автомата начинается по команде "Пуск", обозначенной оператором А 0, то и выражение ЛСА начинается с этого оператора (оператора начала), т.е. А 0.
По команде "Пуск" автомат формирует команду управления z 1, обозначенную символом А 1, поэтому в ЛСА после оператора А 0 необходимо записать оператор А 1. Получим: А 0 А 1.
|
|
После формирования команды z 1 МПА проверяет выполнено ли логическое условие х1. Поэтому после оператора А 1 следует записать логическое условие х 1 с началом стрелки 1:
Из анализа работы автомата следует, что если х 1=1, то автомат формирует команду управления z 2, а затем z 3, обозначенные соответственно А 2 и А 3. Следовательно, в ЛСА после символа 1 записываем последовательно операторы А 2 и А 3: А 0 А 1 x 11 А 2 А 3.
Если же х 1=0, то МПА сразу формирует команду управления z 3. Отсюда следует, что конец стрелки ¯1 необходимо расположить перед оператором А 3: А 0 А 1 x 1 1 А 2¯1 А 3.
После формирования команды z 3 автомат проверяет, выполнено ли логическое условие х 2. Поэтому после оператора А 3 нужно записать логическое условие х 2 с началом стрелки 2: А 0 А 1 x 11 А 2¯1 А 3 х 22.
Если х 2=1, то автомат формирует команду управления z 4, обозначенную символом А 4, а после формирования команды z 4 автомат проверяет, выполнено ли логическое условие х 3.
Таким образом, после символа 2 записываем А 4, затем х 3 с началом стрелки 3:
А 0 А 1 x 11 А 2¯1 А 3 х 22¯4 А 4 х 33.
Из анализа работы автомата следует, что если х 3=1, то автомат проверяет состояние входа x 4. Значит, после начала стрелки 3 записывается символ х 44. Если же х 3=0, то цикл автомата повторяется, начиная с формирования команды z 1, обозначенной через А 1. Поэтому конец стрелки ¯3 необходимо поставить перед оператором А 1:
А 0¯3 А 1 x 11 А 2¯1 А 3 х 22 А 4 х 33 х 44.
Из условий работы автомата следует, что если на входе х4 имеется сигнал х 4= 1, то МПА возвращается к формированию команды управления z 4, обозначенной А 4. Оператор А 4 в уже построенной части ЛСА присутствует. Чтобы перейти к нему нужно в ЛСА вместо х4 поставить символ, тогда конец стрелки ¯4 необходимо записать перед оператором А 4. Если же х 2=0, или на входе х 4 отсутствует сигнал (), то по условию автомат заканчивает работу. Так как конец работы мы обозначили оператором Ак, его следует записать после начала стрелки4, а перед ним поставить конец стрелки ¯2. Итак, окончательно получаем:
|
|
А 0¯3 А 1 x 11 А 2¯1 А 3 х 22¯4 А 4 х 334¯2 А к.
Полученное выражение и является искомой ЛСА, описывающей условия работы МПУ, изображенного на рисунке 5.1.
Входы автомата в ЛСА отождествляются с логическими условиями (переменными), выходы - с операторами, кроме операторов “Начало” (“Пуск”) и “Конец”. Начальное состояние автомата отождествляется с оператором “Начало” (“Пуск”).
Состояния автомата отождествляются с символами операторов и логических условий. Функции переходов и выходов определяются порядком расположения операторов, логических условий и нумерованных стрелок.
Над моделями автоматов в виде ЛСА можно проводить эквивалентные преобразования.
Порядок получения модели МПУ в виде матричной схемы алгоритма (МСА) следующий.
1) Определяется полные список микрокоманд - операторов и логических условий.
2) Производится кодирование микрокоманд и ЛУ условными обозначениями, т.е. выбирается система операторов.
3) Строится квадратная матрица, строки которой обозначаются операторами А 0, А 1,..., Аi,..., Ак -1, а столбцы - операторами А 1,..., Аi,...,Ак.
4) На основании словесной формулировки определяются совокупности значений ЛУ, при которых после А 0 выполняется А 1 и определяется функция переходов от А 0 к А 1 - а 01, которая и проставляется в матрицу. Аналогичная процедура выполняется для всех строк и столбцов матрицы.
5) Проводится проверка правильности построения матрицы по соотношениям
Найдем для МПУ, приведенного в примере 1, его описание в виде МСА.
Закодируем команды “Пуск”, z 1, z 2, z 3, z 4 и “Конец” соответственно операторами А 0, А 1, A 2, A 3, A 4, Ak. Проверки выполнения логических условий х 1, х 2, х 3, х4 закодируем соответственно х 1, х 2, х 3, х4 .
После кодирования устанавливаем размерность квадратной матрицы, равную 5, так как всего операторов 6, но оператором А 0 не обозначается столбец, а оператором Ак не обозначается строка. Строки квадратной матрицы обозначим сверху вниз А 0, А 1, A 2, A 3, A 4, а столбцы слева направо А 1, А 2, A 3, A 4, A к. Затем необходимо определить функции переходов аij для каждой клетки матрицы. Из анализа схемы и условий ее работы следует, что по команде “Пуск”, обозначенной нами через А 0, автомат формирует команду z 1, обозначенную через А 1.
Это означает, что в клетке < А 0 А 1> необходимо записать 1, а в остальных клетках - нули (так как а 02= а 03= а 04= а 0 к =0). После заполнения строки А 0 матрица примет вид, представленный на рисунке 5.6.
|
| ||||||
Для сокращения записи нулевые значения аij в матрицу записывать не будем. Переходим к заполнению второй строки А 1. Из условий работы МПУ вытекает, что после формирования команды z 1 автомат проверяет, выполнено ли логическое условие х 1. Если х 1=1, то автомат формирует управляющую команду z 2, отсюда следует, что функция переходов а 12= х 1, Если же логическое условие х 1 не выполнено, т.е. х 1=0, то автомат формирует команду z 3. Значит, а 13 = x 1. Другие переходы автомата в данном случае по условиям его работы невозможны, или а 11= а 14= а 1 к =0. После заполнения строки А 1 матрица имеет вид, представленный на рисунке 5.7.
Аналогичным образом в результате анализа условий работы МПА заполняются строки А 2 и А 3 матрицы, которая после этого примет вид, представленный на рисунке 5.8.
Остановимся более подробно на заполнении строки А 4. Из условий работы автомата следует, что после формирования команды z 4, обозначенной оператором А 4, проверяется логическое условие х 3. Если х 3 = 0, то цикл работы автомата повторяется, начиная с формирования команды z 1, обозначенной А 1. Отсюда видно, что функция перехода от оператора А 4 к оператору А 1 равна , т.е. . Это необходимо записать в первую клетку строки А 4 матрицы.
Если х 3 = 1, то проверяется выполнение логического условия х 4. Если х 4 = 1, автомат снова формирует команду управления z 4. Отсюда следует, что функция перехода от оператора А 4 к оператору А 4 равна х 3 х 4, т.е. а 44= х 3 х 4.
Если же на входе х 4 сигнал отсутствует, то автомат заканчивает работу: . Другие переходы автомата после функционирования команды z 4 невозможны. Следовательно, а 42= а 43=0.
Запишем значения полученных функций переходов в матрицу и получим ее окончательный вид, представленный на рисунке 5.9.
Эта квадратная матрица и является представленной в виде матричной схемы алгоритма моделью МПУ, изображенного на рисунке 5.1. Матричная модель автомата является достаточно наглядной. Однако при большом числе операторов она становится громоздкой и малообозримой.
Между МСА, ГСА и ЛСА имеется однозначное соответствие. Входам автомата на ГСА соответствуют условные вершины, в ЛСА - логические условия или переменные логических условий, в МСА - переменные функций переходов аij. Выходным состоянием автомата в ГСА соответствуют операторные вершины, в ЛСА и МСА - операторы. Состояние автомата определяется количеством вершин в ГСА, операторов и логических условий - в ЛСА и МСА. Начальное состояние определяется на ГСА вершиной “Начало”, в ЛСА - самым левым оператором выражения, в МСА - самым верхним оператором строки. Функции переходов и выходов на ГСА определяются дугами графа и его вершинами, в МСА - функциями переходов аij, в ЛСА - порядком расположения операторов, логических условий и нумерованных стрелок.