- •Часть 2.
- •Раздел 2. Синтез микропрограммных автоматов
- •4.1. Формы представления алгоритмов
- •4.2. Преобразование форм записи алгоритмов
- •Часть 2.
- •Раздел 2. Синтез микропрограммных автоматов
- •5.1. Объединение алгоритмов
- •5.2. Разработка структурных и функциональных схем на основе алгоритма функционирования ску
4.2. Преобразование форм записи алгоритмов
При преобразованиях из одной формы записи алгоритмов в другую, часто используется вспомогательная форма представления алгоритмов — системы формул перехода (СФП). Любая исходная схема алгоритма преобразуется в СФП, а затем СФП преобразуется в требуемую схему алгоритма.
Каждая формула перехода описывает возможные пути передачи управления от одного функционального оператора. Количество формул в СФП равно количеству операторов, от которых возможен переход. В общем виде СФП имеет вид:
, (4.8)
где ij = ij(p1,p2,…,pm) те же логические функции перехода, что и в МСА.
Порядок получения СФП из МСА становится понятным из сравнения выражений (4.4) и (4.8).
Например, МСА (9.7) соответствует следующая СФП:
(4.9)
При составлении СФП по ЛСА или ГСА для каждого оператора в правой части формулы записываются все возможные цепочки логических операторов, приводящие к тем или иным функциональным операторам. Функциональные операторы записываются в конце цепочки. Все цепочки соединяются знаком дизъюнкции (логического сложения). При составлении цепочек следует учитывать одно правило. Если переход от рассматриваемого логического оператора осуществляется к оператору стоящему справа (в ЛСА) или по единичному выходу (в ГСА), то записывается само логическое условие, если же переход осуществляется по стрелке (в ЛСА) или по нулевому выходу (в ГСА), то записывается инверсия логического условия. Для примера рассмотрим составление формулы перехода для оператора А2 в ЛСА (4.3).:
Сначала рассматривается логический
оператор
,
если он выполняется, то в цепочку
записывается
,
затем рассматривается стоящий справа
логический оператор
,
при его выполнении в цепочку записывается
и
завершается цепочка записью стоящего
справа оператора А4 .
Если логический оператор
выполняется, а стоящий справа логический
оператор
,
не выполняется, то вместо
в цепочку записывается
,
завершается она оператором А5.
Наконец, в случае не выполнения оператора
в цепочку записывается его инверсия
,
а затем оператор А3 на
который указывает стрелка.
.
Аналогично составляются и формулы перехода для ГСА.
Так как правые части СФП полученных из ЛСА или ГСА не всегда имеют вид как в (9.8), то при обратном преобразовании СФП в МСА следует обратить внимание на то, что каждый функциональный оператор в каждой формуле системы должен встречаться не более одного раза. В этом случае получение МСА затруднений не вызывает. Приведения СФП к виду (9.8) добиваются при помощи равносильных преобразований, в частности путем вынесения за скобки одинаковых операторов.
Если из СФП необходимо получить ЛСА или ГСА, то формулы перехода преобразуют к скобочной форме, которая более наглядно отражает последовательность действий при различных значениях логических условий.
Чтобы получить скобочную форму необходимо
все выражения правой части сгруппировать
в две группы. В одной группе собираются
все члены с pi,
в другой с
.
После чего pi
и
выносятся за скобки. Для этого выбирают
переменную, которая имеется во всех или
в большинстве выражений. Если в каком
либо выражении переменная отсутствует,
то его умножают на выражение тождественное
единице
.
Затем в полученных скобках выбирают
другую переменную
и вновь формируют группы. Так продолжается,
пока в скобках не останутся двучлены
вида
.
Пример 4.2. Преобразовать формулу перехода вида
,
в скобочную формулу перехода.
Решение.
1) раскрыв скобки при А4, получим формулу
.
2) Наиболее часто встречается условие
p1, поэтому
и группировка производится относительно
членов с p1
и
. Выражение при А1
не содержит условия, поэтому оно
умножается на тождественное единице
выражение
.
3) В результате вынесения за скобки p1 и получим
4) Выражения в первой скобке целесообразно разложить по p2 , а во второй по p3. В результате получается скобочная формула перехода
.
Порядок построения ЛСА по СФП рассмотрим на примере.
Пример 4.3. Построить ЛСА по имеющейся СФП (9.9).
Решение.
1) Преобразуем СФП (9.9) к скобочной форме
(4.10)
2) Все функциональные операторы записываются в одну строку в порядке возрастания номеров с промежутками для стрелок и ЛУ
.
3) Между операторами А0 и А1, А1 и А2 нет ЛУ. После оператора А2 следует проверка ЛУ p1 , поэтому после А2 записывается p1 со стрелкой, конец которой ставится там, куда передается управление при p1=0 Управление передается на ЛУ p2 , которое можно записать перед оператором А4 (см. 9.10). При p2= 0 управление передается оператору А5, поэтому перед ним и ставится конец стрелки от p2 .
.
4) После оператора А3 следует выполнить оператор А2, однако справа стоит другой оператор, поэтому необходимо воспользоваться оператором безусловного перехода . По тем же причинам таким же оператором следует воспользоваться и после оператора А4. В результате получится следующая ЛСА.
. (4.11)
Сравните алгоритмы (9.11) и (9.2).
Для получения ГСА необходимо каждую формулу скобочной СФП представить в виде подграфа, а затем «сшить» подграфы в единую ГСА. При составлении подграфов следует учесть, что на операторы стоящие в скобке при условии pi управление передается с единичного выхода логического оператора pi, а на операторы стоящие в скобке при условии управление передается с нулевого выхода этого же оператора. Например, система подграфов полученных из СФП (4.10) представлена на рис.4.2. После объединения подграфов получится система ГСА изображенная на рис.4.1.
Р
ис.4.2.
Система подграфов
Системы формул перехода так же применяются при оптимизации алгоритмов и синтезе функциональных схем различных устройств.
