ГСА, ЛСА и МСА

Получение математической модели микропрограммных устройств в виде

Для целей синтеза МПУ необходимо уметь строить модели микропрограммных устройств в виде ГСА, ЛСА, МСА. Методику их построения рассмотрим на примере.

Пример 5.1 Для МПУ, изображенного на рисунке 5.3, найти его описание в виде ГСА, ЛСА и МСА.

z 3
z 4
z 2
z 1
x 1 x 2 x 3 x 4
Пуск

Рисунок 5.3
Автомат имеет входы "Пуск", x 1, x 2, x 3и x 4, выходы z 1, z 2, z 3, z 4 и состоит из регистра Р, дешифратора D, блока формирования команд управления ФКУ, блока проверки логических условий ПЛУ и формирователя микрокоманд ФМК, соединенного со входами регистра.

Работа автомата состоит в следующем.

По команде "Пуск" в регистр Р записывается команда начала работы, по которой ФКУ формирует команду 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), наглядно представляющую условия функционирования заданного МПУ.

Ak
A 4
A 3
A 2
x 2
x 3
x 4
x 4
x 3
z 4
x 2
z 3
z 2
A 0
A 1
z 1
x 1
x 1
Рисунок 5.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 1­1 А 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 1­1 А 2¯1 А 3 х 2­2.

Если х 2=1, то автомат формирует команду управления z 4, обозначенную символом А 4, а после формирования команды z 4 автомат проверяет, выполнено ли логическое условие х 3.

Таким образом, после символа ­2 записываем А 4, затем х 3 с началом стрелки ­3:

А 0 А 1 x 1­1 А 2¯1 А 3 х 2­2¯4 А 4 х 3­3.

Из анализа работы автомата следует, что если х 3=1, то автомат проверяет состояние входа x 4. Значит, после начала стрелки ­3 записывается символ х 4­4. Если же х 3=0, то цикл автомата повторяется, начиная с формирования команды z 1, обозначенной через А 1. Поэтому конец стрелки ¯3 необходимо поставить перед оператором А 1:

А 0¯3 А 1 x 1­1 А 2¯1 А 3 х 2­2 А 4 х 3­3 х 4­4.

Из условий работы автомата следует, что если на входе х4 имеется сигнал х 4= 1, то МПА возвращается к формированию команды управления z 4, обозначенной А 4. Оператор А 4 в уже построенной части ЛСА присутствует. Чтобы перейти к нему нужно в ЛСА вместо х4 поставить символ, тогда конец стрелки ¯4 необходимо записать перед оператором А 4. Если же х 2=0, или на входе х 4 отсутствует сигнал (), то по условию автомат заканчивает работу. Так как конец работы мы обозначили оператором Ак, его следует записать после начала стрелки­4, а перед ним поставить конец стрелки ¯2. Итак, окончательно получаем:

А 0¯3 А 1 x 1­1 А 2¯1 А 3 х 2­2¯4 А 4 х 3­3­4¯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.

               
   
 
 
   
Рисунок 5.6
 
Рисунок 5.7
 


Для сокращения записи нулевые значения а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, в ЛСА - порядком расположения операторов, логических условий и нумерованных стрелок.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: