Лекция 15.

Тема 8.2. Структурный синтез МПА Мура на ПЛМ. Вопросы оптимизации МПА

Простейшая матричная реализация автомата Мура

Рассмотрим реализацию автомата Мура на ПЛМ на примере из п. 3.1.1. Отличие в синтезе автомата Мура на ПЛМ состоит только на этапе построения обратной структурной таблицы и функциональ­ной схемы автомата.

Возьмем за основу структурную таблицу автомата Мура на жесткой логике из п. 3.1.1. Будем использовать в качестве элементов памяти состояний D-триггеры. Добавим в таблицу еще один столбец Тamas, в который будем записывать функции переходов: Тamas = am Ù Xamas (табл. 3.14).

В схеме автомата Мура используются следующие матрицы:

М&(1) («И1») – для вычисления функций переходов Тamas ;

М1(1) («ИЛИ(1)») – для вычисления функций управления элемен­тами памяти D2 , D1 и D0;

М&(2) («И2») – дешифратор состояний; так как в автомате Мура yi зависит только от состояния as, функции переходов Тamas нельзя исполь­зовать для вычисления yi;

М1(2) («ИЛИ(2)») – для вычисления функций yi как дизъюнкция вы­ходных сигналов (переменных as) с матрицы М&2.

 

Таблица 3.14

 

№ п/п am Kam as Kas Xamas Yas Famas Тamas
a 0 a 3 a 0 Ø x 3 x 2 Y7 D 2 D 2 Т1= Q2ØQ1ØQ0Øx3 Т2= ØQ2ØQ1ØQ0 x2
a 0 a 1 x 3 y1, y2 D 0 Т3= Q2ØQ1ØQ0 x3
a 1 a 4 a 2 x 1 x 1 Y3 D 1 D 1 Т4= ØQ2ØQ1 Q0 x1 Т5= ØQ2 Q1 Q0 x1
a 1 a 2 a 4 a 3 Ø x 1 Ø x 1 y4, y5 - - - Т6= ØQ2ØQ1Q0 Øx1 Т7= ØQ2 Q1ØQ0 Т8= ØQ2 Q1 Q0 Øx1
a 3 a 4 Ø x 2 y6 D1 ,D0 Т9 =ØQ2ØQ1ØQ0Øx2

 

Функции D2, D1, D0 для нашего примера находятся как дизъюнк­ции соот­ветст­вующих функций переходов Тamas, а yi зависят только от со­стояний автомата as:

D2 = T1 Ú T2; D1 = T4 Ú T5 Ú T9 ; D0 = T3 Ú T9 ;

y1 = y2 = a1. y3 = a2. y4 = y5 = a3. y6 = a4. y7 = a0.

Структурная схема ав­томата Мура на матрицах (простейшая реализация) имеет вид, показанный на ри­с. 3.35.

Матрицы М&(1) и М1(1) выполняют только функцию вычисления Famas. Матрица М&(2) на входе имеет коды состояний автомата Q2Q1Q0, а на выходе формирует значения переменных a0, a1 и т.д., соответствующих состояниям автомата. Матрица М1(2) используется для реализации функций выхо­дов yi в случае, если они выражены через дизъюнкции ai.

Рис. 3.35

 

Функциональная схема автомата приведена на рис. 3.36. Для уп­рощения схемы в ней не показаны элементы, используемые для уста­новки автомата в начальное состояние.

 

Рис. 3.36. Функциональная схема автомата

Как видно из схемы, матрицу М1(2) можно было не использовать, так как в нашем примере каждая функция yi зависит только от одной переменной ai.

3.3.4. Вопросы оптимизации автоматов на матрицах

Методы оптимизации автоматов на матрицах направлены, в основном, на сокращение суммарной площади матриц. Как было указано в п. 3.3.1, матрицы М& и М1 при тривиальной реализации автомата сильно разрежены: большая часть площади этих матриц не используется, так как в узлах нет диодов. Это касается части матрицы М&, вычисляющей функции переходов (в области переменных Х), и матрицы М1 (в области переменных У).

Кодирование логических условий Х. Площадь матрицы М& в автоматах Мили и Мура зависит:

1) от количества элементов памяти (количество выходов Q и ØQ элементов памяти обозначим КQ; КQ входит в общее число горизонтальных шин матрицы М&; КQ >= 2 • ] log2 | A | [ );

2) от количества переменных Х (количество горизонталь­ных шин от этих переменных КХ = 2•|Х| также входит в общее число горизонтальных шин матрицы М&);

3) от числа переходов Т(am as) автомата КТ.

Уменьшить КQ невозможно, так как в автоматах на матрицах используется всегда минимальное кодирование состояний. Количество переходов можно иногда уменьшить за счет использования разметки ГСА с узлами. В то же время в каждой конкретной функции переходов Тamas обычно используются не все переменные из множества Х, а только некоторые из них. Например, по структурной таблице из п. 3.3.2 и 3.3.3 видно, что в каждой функции Тamas используется максимум одна переменная Х (при общем их количестве 3), поэтому есть возможность уменьшить площадь &за счет замены трех переменных Х одним логическим условием Р, принимающим значение определенной переменной Х в зависимости от состояния автомата am.

Алгоритм такой замены описан ниже.

1. Разобьем множество входных сигналов автомата (логических ус­ловий) Х на пересекающиеся подмножества Хам; элемен­тами Хам являются логические условия Хj, определяющие все переходы автомата из состояния ам.

2. Найдем максимум a=max½Хам½ и введем новое множество, содержащее a логических условий Р={Р1, Р2...Рa}.

3. Каждую переменную хÎХам заменим на переменную из множе­ства Р; составим таблицу этой подстановки. Желательно, чтобы одноименные логические условия Хj оказались в одном и том же столбце таблицы.

4. Запишем функции Рi= F(ам,xi), используя таблицу подста­новки.

5. Закодируем состояния автомата таким образом, чтобы можно было реализовать эти функции на матрицах М& и М1 с мини­мальными затратами. Полученные коды состояний будем использовать далее при составлении структурной таблицы автомата.

6. Используем сформированные функции Рi вместо переменных Х в матрице М& для вычисления функций переходов автомата Тamas.

Например, пусть по размеченному графу автомата с шестью состояниями a0…a5 и семью логическими условиями х0…х6 получили следующие подмножества Хам:

Ха0={х01}; Ха3={х5};

Ха1={х23}; Ха4={х13};

Ха2={х34}; Ха5={х6}.

Нетрудно заметить, что Max ½Хаi½= 2.

Введем два новых логических условия: Р={Р1, Р2} и составим таблицу замены переменных Х на переменные Р.

 

ам Р1 Р2
а0 х0 х1
а1 х3 х2
а2 х3 х4
а3 х5 -
а4 х3 х1
а5 х6 -

 

Запишем выражение для Р1 и Р2 :

Р1 = а0х0 Ú ( а1Ú а2Ú а4) х3 Ú а3х5 Ú а5х6

Р2 = а1х2 Ú ( а0Ú а4) х1Ú а2х4.

В этих выражениях, например, Р1 принимает значение ло­гического условия х0, если автомат находится в состоянии а0 (так как при этом а0=1); значение х3, если автомат нахо­дится в одном из состояний: а1 или а2 или а4 и т.п.

Закодируем состояния автомата таким образом, чтобы выражения в скобках можно было записать в виде одного терма, используя переменные Q3, Q2, Q1 – сигналы с выходов элементов памяти состояний автомата. Используем карту Карно. В ячейках карты расставим состояния аI таким образом, чтобы была возможность осуществить их минимальное покрытие согласно скобочным частям выражений Р1 и Р2. Получим следующие коды состояний:

Ка0 = 000; Ка3 = 000;

Ка1 = 111; Ка4 = 100;

Ка2 = 101; Ка5 = 011.

 

Учитывая то, что в карте Карно есть свободные клетки, используем их для минимизации выражений Р1 и Р2 :

Р1 = а0х0 Ú ( а1Ú а2Ú а4) х3 Ú а3х5 Ú а5х6=

= ØQ2ØQ1 х0 Ú Q2 х3 Ú Q1ØQ0 х5 Ú ØQ2 Q0 х6 = Z1 Ú Z2 Ú Z3 Ú Z4 ,

где Z1= ØQ2ØQ1 х0 ; Z2 = Q2 х3; Z3 = Q1ØQ0 х5; Z4 = ØQ2 Q0 х6;

 

Р2 = а1х2 Ú ( а0Ú а4) х1Ú а2х4 =

= Q2 Q1 х2 Ú ØQ1ØQ0 х1ÚØQ1 Q0 х4 = Z5 Ú Z6 Ú Z7 ,

где Z5 = Q2 • Q1 • х2 ; Z6 = ØQ1•ØQ0• х1; Z7 = ØQ1• Q0•х4.

 

Рис. 3.37

 

Функциональная схема, реализующая преобразование логических условий Х в логические условия Р, приведена на рис. 3.37. Матрица М& вычисляет термы Z1 … Z7 , матрица М1 – функции Р1 и Р2.

Площадь матрицы М& равна

&= (КХ + КQ) • КZ ,

где КХ – количество логических ус­ловий Х, в нашем примере – КХ=7; КQколичество прямых и ин­версных выходов элементов па­мяти, в нашем примере КQ = 6; КZ – количество термов в функциях Р1и Р2 , в нашем при­мере КZ=7.

Таким образом, в нашем при­мере SМ&=91.

Площадь матрицы М1 равна SМ1=КZ •КР , где КР – количество логических ус­ловий Р.

В нашем примере SМ1=14. Общая площадь матриц М& и М1, используемых для минимиза­ции количества логических усло­вий, равна

SМр= (КХ + КQ) • КZ + КZ •КР = (КХ + КQ +КР)* КZ .

Если не использовать кодирование логических условий Х, то площадь части матрицыМ&, вычисляющей функции переходов Тamas (в нашем примере этой матрицы нет) и использующей в качестве переменных Х, равна

SМТх=2 • КХ • КТ,

где КТ – количество переходов (строк) в структурной таблице ав­томата.

При замене логических условий Х на Р эта площадь составит

SМТр=2 • КР • КТ.

В итоге, при кодировании логических условий Х, площадь матриц, зависящая от Х, равна

SХр = SМр+SМТр= (КХ + КQ +КР)* КZ +2 • КР • КТ,

а без кодирования

SХх = SМТх=2 • КХ • КТ.

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

D SХ = SХх – SХр = 2 • КХ • КТ – Х + КQ + КР)•КZ2•КР•КТ =

= 2 • КТ • ( КХ – КР) – (КХ + КQ + КР)•КZ .

Чтобы эта разница была положительной (D SХ > 0), необхо­димо выполнение условия

2 • КТ • ( КХ – КР) > (КХ + КQ + КР)•КZ ,

иначе преобразование логических условий имеет смысл, если выполняется соотношение

КТ > ((КХ + КQ + КР)•КZ) / (2 • ( КХ – КР)).

Если условие выполняется и при этом DSХ имеет значительную величину (относительно SХх), то можно проделать описанную процедуру и по­лучить при этом более эффективное использование матриц.

В нашем примере

D SХ =2 • КТ • ( КХ – КР) – (КХ + КQ + КР)•КZ .=

= 2 • КТ • ( 72) – (7 + 6 + 2) • 7 = 10 • КТ – 105.

Из полученных выражений видно, что D SХ > 0, если в авто­мате КТ>11 (количество переходов больше 11); при выполнении этого условия имеет смысл выполнить преобразование логических условий Х в логические условия Р.

 

Кодирование выходных сигналов автомата (микрокоманд yj ).В автоматах Мили при простейшей реализации (п. 3.2) в матрице М1 есть сильно разреженная часть, где вычисляются yi. Это происходит потому, что общее число микрокоманд в автомате может быть большим, но на каждом переходе вырабатывается небольшое число микрокоманд. В таком случае можно повысить эффективность использования матрицы М1, используя кодирование микрокоманд. Для этого необходимо:

1) выписать из ГСА или обратной структурной таблицы одинаковые группы микрокоманд, которые обозначить как Вi;

2) записать выражения для yi как ÈВj – дизъюнкция групп Вi, в которых функция yi =1;

3) составить граф отношений между группами Вi. Вершины графа соответствуют группам микрокоманд Вi, ребрами соединяются вершины (Вi.), содержащие одинаковые микрокоманды;

4) закодировать вершины (Вi) двоичным кодом (b1 b2 b3 …) таким образом, чтобы связанные вершины на графе можно было выразить через конъюнкцию переменных bi. Количество переменных bi должно быть минимальным и равно ] log2| B | [;

5) записать выражения для bj как ÈТj: где ÈТj – дизъюнкция функций переходов автомата Мили, на которых bj =1;

6) записать выражения yi=ÈВj через конъюнкцию переменных bi: уi=Çbj;

7) реализовать функции bj = ÈТj с помощью матрицы М1;

8) реализовать функции уi=Çbj с помощью матрицы М&.

Рассмотрим пример.

Таблица 3.15

 

Y(amas) Т(amas) Вi b1b2b3b4
y1, y2 T1 B1 0 0 1 1
y1, y3 T2 B2 0 1 1 0
y7, y8 T3 B3 1 0 0 1
y1, y10 T4 B4 0 1 1 1
y5, y6 T5 B5 1 0 1 1
y3 T6 B6 1 1 1 0
y4, y8 T7 B7 1 1 0 0
y4, y8, y9 T8 B8 1 1 0 1
y1, y10 T9 B4 0 1 1 1
y4, y8 T10 B7 1 1 0 0
y4, y8, y9 T11 B8 1 1 0 1
y1, y10 T12 B4 0 1 1 1
y5, y6 T13 B5 1 0 1 1
y5, y6 T14 B5 1 0 1 1
y4, y8, y9 T15 B8 1 1 0 1
y1, y10 T16 B4 0 1 1 1
y7, y8 T17 B3 1 0 0 1
y9 T18 B9 0 1 0 1
y5, y11 T19 B10 1 0 1 0

Допустим имеется обратная структурная таблица (табл. 3.15) автомата Мили для реализации на ПЛМ, из которой мы выпишем только столбец Yamas, а в столбце Тamas оставим только обозначение функций переходов Тi. Остальные столбцы таблицы нас не интересуют. Из этой таблицы видно, что площадь матрицы М1 при простейшей реализации автомата, использующаяся для формирования микрокоманд yi, равна

SМУ=КУ • КТ = 11• 19 = 209.

В этом примере коли­че­ство микроко­манд, ко­торые может формиро­вать автомат, равно 11 (y1…y11), но на каж­дом из 19 возможных перехо­дов T1 … T19 формиру­ется мак­симум 3 микроко­манды.

Добавим в эту таблицу еще два столбца. Первый – для обозначе­ния групп микроко­манд (Вi); в нашем примере – 10 различных групп микрокоманд (обозначим их B1...B10). Во вто­ром столбце будем записывать коды групп Вi. Минимальное количество разрядов для коди­рования Вi равно четырем. Обо­значим код Вi: b1 b2 b3 b4.

Выра­зим yi через дизъ­юнкцию Вj, в которые входит yi:

y1 = B1 Ú B2 Ú B4 ;

y2 = B1 ;

y3 = B2 Ú B6 ;

y4 = B7 Ú B8;

y5 = B5 Ú B10;

y6 = B5;

y7 = B3;

y8 = B3 Ú B7 Ú B8;

y9 = B8 Ú B9;

y10 = B4;

y11 = B10.

Используя выражения yi=ÈВj построим граф отношений между группами Вi, в котором ребрами соединяются вершины (Вi.), содержащие одинаковые микрокоманды (рис. 3.38). Используя карту Карно, закодируем группы Вi так, чтобы можно было совместно покрыть связанные вершины (смотри карту Карно).

Рис. 3.38

 

По карте Карно запишем коды Bi (КBi), выраженные через значения пере­менных b1 b2 b3 b4:

 

КВ1=0011; КВ2=0110; КВ3=1001;

КВ4=0111; КВ5=1011; КВ6=1110;

КВ7=1100; КВ8=1101; КВ9=0101;

КВ10=1010.

 

Запишем полученные коды групп микрокоманд в столбец (b1b2b3b4) структурной таблицы автомата и выразим функции bi как дизъюнкцию соответствующих переменных Ti той же таблицы:

 

b1 = T3Ú T5Ú T6Ú T7Ú T8Ú T10Ú T11Ú T13Ú T14Ú T15Ú T17Ú T19 ;

b2 = T2Ú T4Ú T6Ú T7ÚT8ÚT9Ú T10Ú T11Ú T12Ú T15Ú T16Ú T18 ;

b3 = T1Ú T2Ú T4Ú T5Ú T6Ú T9Ú T12Ú T13Ú T14Ú T16Ú T19 ;

b4 = T1Ú T3 Ú T4Ú T5Ú T8Ú T9Ú T11Ú T12Ú T13Ú T14Ú T15Ú T16Ú T17 Ú T18.

 

Выразим yi , записанные через дизъюнкцию Вj, в виде конъюнкции уi=Çbj (согласно покрытиям в карте Карно):

y1 = B1 Ú B2 Ú B4 = Øb1 b3; y2 = B1 = Øb1 Øb2 ;
y3 = B2 Ú B6 = b2 b3 Øb4 ; y4 = B7 Ú B8= b1 b2 Øb3 ;
y5 = B5 Ú B10 = b1 Øb2 b3 ; y7 = B3 = b1 Øb2 Øb3 ; y9 = B8 Ú B9 = b2 Øb3 b4 ; y11 = B10 = b1 Øb2 b3 Øb4 ; y6 = B5 = b1 Øb2 b3 b4 ; y8 = B3 Ú B7 Ú B8 = b1 Øb3 ; y10 = B4 = Øb1 b2 b3 b4 .  

Реализуем функции b1 … b4 с помощью матрицы М1, а функции y1 … y11 – с помощью матрицы М& (рис. 3.39).

Оценим суммарную площадь матриц М1 иМ& , реализующих функции выходов автомата Мили с кодированием микрокоманд:

SМb=Кb • КТ = 4 • 19 = 76, где КТ – количество переменных, используемых для кодирования групп микрокоманд; SМУb=2 • Кb • КУ = 2 • 4 • 11 = 88; SМУк = SМb + SМУb = 76 + 88 = 164.

 

Рис. 3.39

 

Разница в площадях матриц без кодирования и с кодированием составляет

D SУ = SМУ – SМУк= 209 – 164 = 45.

Экономия площади матриц позволяет реализовать более сложный автомат на меньшей площади кристалла матрицы.

Кодирование микрокоманд имеет смысл производить, если выполняется условие

КТ • (КУ – Кb ) > 2 • Кb • КУ .

Решение о кодировании можно принять после определения количества групп микрокоманд Вj и возможности их минимального кодирования переменными bj.

На рисунках приведены обобщенные структурные схемы автомата Мили с кодиро­ванием логических условий и мик­рокоманд (рис. 3.40) и автомата Мура с кодирова­нием логических условий и мик­рокоманд (рис. 3.41).

Рис. 3.40

 

В схеме автомата Мили используются следующие элементы:

– память состояний – ПС;

– матрица М&(1), вычисляющая термы zi для последующего вычисле­ния логических условий Р матрицей М1(1);

– матрица М&(2), вычисляющая функции переходов Тi;

– матрица М1(2), вычисляющая функции управления элементами памяти состояний Famas и коды групп микрокоманд КВi (b1b2...);

– матрица М&(3), вычисляющая значения функций yi.

В схеме автомата Мура используются следующие элементы:

– память состояний – ПС;

– матрица М&(1), вычисляющая термы zi для последующего вычисле­ния логических условий Р матрицей М1(1);

– матрица М&(2), вычисляющая функции переходов Тi;

– матрица М1(2), вычисляющая функции управления элементами памяти состояний Famas;

– матрица М&(3), выполняющая функции дешифратора состояний автомата и вычисляющая значения функций аi;

– матрица М1(3), вычисляющая значения функций yi.

Рис. 3.41








Дата добавления: 2015-08-11; просмотров: 918;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.079 сек.