Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Замена входных переменных и кодирование состояний



Обычно число переменных, от которых существенно зависит каждый переход в микропрограммном автомате (МПА), невелико по сравнению с мощностью множества входных переменных. Пусть МПА задан таблицей переходов-выходов, Табл. 32. Рассмотрим способ реализации МПА, основанный на замене множества входных переменных Х множеством новых переменных Р, содержащим, как правило, существенно меньшее число элементов. Обозначим через X{am} множество входных переменных, определяющих все переходы автомата из состояния am. В рассматриваемом примере:

X(a1)={x1}, X(a2)=Æ, X(a3)={x7, x8}, X(a4)={x1, x2, x3}, X(a5) = {x4, x6}, X(a6) = {x5, x7}, X(a7)=Æ, X(a8) = {x6}.

Из этих выражений видно, что наибольшее число переменных (три) случается на переходе из состояния а4. Обозначим это число в общем случае через G и образуем новое множество переменных P={p1, p2 , ..., pG}. Ясно, что мощность этого множества меньше мощности множества входных переменных Х. На практике бывает значительно меньше. Тогда каждую переменную из множества Х можно заменить переменной из множества Р так, чтобы pg =xl, если в состоянии am переменная xl заменена переменной pg.

Предположим, что в примере замена переменных уже сделана так, как это представлено в Табл. 33. В этой таблице на пересечении строки am  и столбца pg записан элемент xl, если в состоянии am переменная xl заменяется переменной pg.

Таблица 32

am as X(am, as) [am] [as] P(am, as) Yt D1 D2 D3 h
a1 a1 a3 `x1 x1 000 000 001 `p1 p1  -       Y0 y7            Y8   0 0 0 0 0 1       1 2
a2 a3 1 011 001 1 y10 y11    Y4 0 0   1 3
a3 a6 a8 a2 x7 `x7 x8 `x7 `x8 001 101 111 011 p2 `p2p3 `p2`p3 y10 y11    Y4               Y0 y2 y5 y10     Y1 1 0 1 1 1 1 0 1 1 4 5 6
a4 a1 a3 a7 a4  x1 x3  x1 `x3 `x1 x2 `x1 `x2 010 000 001 100 010 p1p3 p1`p3 `p1p2 `p1`p2 y3 y4       Y2 y1 y3 y4   Y3 y3 y4        Y7 y1                    Y6 0 0 0 0 0 1 1 0 0 0 1 0 7 8 9 10
 a5 a4 a5 a8 x4 x6 x4 `x6 `x4 110 010 110 100 p1p2 p1`p2 `p1 y6 y13            Y9 y6 y13             Y9 y6 y8               Y5 0 1 0 1 1 0 1 0 0 11 12 13
a6 a2 a3 a8 x5 `x5 x7 `x5`x7 101 011 001 111 p1 `p1p2 `p1`p2 y10 y11           Y4 y12                   Y10 y10 y11            Y4 0  1 1 0 0 1 1 1 1 14 15 16
a7 a5 1 100 110 1 y1                      Y6 1 1 0 17
a8 a8 a5 x6 `x6 111 111 110 p2 `p2 -               Y0 y9 y11         Y7 1 1 1 1 1 0 18 19

 

Предположим, что связь входных переменных и состояний, переход из которых они инициируют, а также новые переменные, заменяющие исходные, представлены в Табл. 2. В этой таблице в столбцы p1, p2, p3 записаны имена новых переменных, от которых существенно зависит переход из состояния am в любое состояние as. Из таблицы видно, что р1 должна быть равна х1 в состояниях а1 и а4, х4 в состоянии а5, х5 в состоянии а6. Тогда выражение для р1 будет иметь вид

p1 =a1x1 Ú a4x1 Ú a6x5.

Действительно, если МПА находится в состоянии а1, то а4 = а5 = а6 = =0, а а1 = 1, поэтому р1 = х1. Выражения для р1, р2, и р3 можно получить непосредственно из табл. 2. Однако, если в какой либо клетке данного столбца таблицы стоит прочерк, то функция не полностью определенная, т.е. переменная pg может быть равна любой переменной в состоянии am. Точно так же переменная р1 не определена в состояниях а2, а7 и а8. В связи с этим в выражение для р1 можно добавить всевозможные слагаемые: a2xt, a3xt, a7xt, a8xt, используя их для упрощения р1. В качестве xt следует выбирать только переменные из столбца р1. Тогда выражение для р1 примет вид

       p1 = a1x1 Ú a4x1 Ú a5x4 Ú a6x5 Ú [(a2 Ú a3 Ú a7 Ú a8) & (x1 Ú x4 Ú x5)],

где доопределяющие слагаемые заключены в квадратные скобки. Для р2 и р3 получим аналогичные выражения и преобразуем их таким образом, чтобы дизъюнктивный сомножитель при каждой исходной переменной содержал имена тех состояний, переход из которых зависит от этой переменной, и тех состояний, которые не зависят от этой переменной.

       p1 = (a1 Ú a4 Ú [a2 Ú a3 Ú a7 Ú a8] )x1 Ú (a5 Ú [a2 Ú a3 Ú a7 Ú a8] )x4 Ú

(a6 Ú [a2 Ú a3 Ú a7 Ú a8] )x5;

       p2 = (a3 Ú a6 Ú [a1 Ú a2 Ú a7] )x7 Ú (a4 Ú [a1 Ú a2 Ú a7] )x2 Ú (a5 Ú a8 Ú [a1 Ú a2 Ú a7] )x6;

       p3 = (a3 Ú [a1 Ú a2 Ú a5 Ú a6 Ú a7 Ú a8] )x8 Ú (a4 Ú [a1 Ú a2 Ú a5 Ú a6 Ú a7 Ú a8] )x3.

 

 

     
 

 

 

  a5     a8   a2
t2

a4

t3

a7

  a6   a3   a1

Таблица 33

 

Pg am p1 p2 p3
a1 x1 - -
a2 - - -
a3 - x7 x8
a4 x1 x2 x3
a5 x4 x6 -
a6 x5 x7 -
a7 - - -
a8 - x6 -

 

 

Для кодирования состояний МПА используем диаграмму Вейча, размещая в ней имена состояний таким образом, чтобы они склеивались между собой, образуя интервалы наименьшего ранга. В каждой склейке могут участвовать метки состояний, соответствующие переменной xj, в данном столбце табл.2, и метки состояний, занесенных в квадратные скобки данного уравнения. Если для кодирования состояний используются не все возможные кодовые комбинации, соответствующие всем наборам значений внутренних переменных, то неиспользуемые коды образуют области неопределенности функции (диаграммы), которые могут участвовать в любых склейках. Необходимо только следить за тем, чтобы в склейку, определяющую конъюнкцию при переменной xj, не попадали метки состояний, для которых обозначен переход в другие состояния под действием других переменных в этом же столбце таблицы. Очевидно, что разным способам размещения меток в диаграмме будут соответствовать разные выражения, определяющие новые внешние переменные МПА. Искусство разработчика состоит в минимизации суммарной сложности выражений, определяющих значения новых переменных.

В правой части Табл. 2 приведен возможный вариант кодирования состояний. В этом случае уравнения для новых входных переменных микропрограммного автомата примут вид:

       p1 = `t1 x1 Ú t1t2x4 Ú `t2 t3x5,

       p2  = `t2x7 Ú `t1`t3x2 Ú t1t2x6,

       p3 = `t2x8 Ú t2x3.

Введем в структурной таблице МПА, Табл. 1, дополнительный столбец P(am, as), в котором входные переменные из множества Х заменены переменными p1, p2, p3 в соответствии с Табл.2. В столбцы [am], [as] запишем коды состояний МПА в соответствии с размещением меток в диаграмме Вейча, показанном в правой части Табл.2, и определим функции возбуждения элементов памяти, а именно входные сигналы D- триггеров.

Следующим этапом проектирования МПА является построение логических функций возбуждения элементов памяти. Простейшим способом является построение этих функций непосредственно по таблице переходов-выходов (тривиальная реализация).

D1 = a3(p2Ú `p2p3) Ú a4`p1p2 Ú a5(p1`p2Ú `p1) Ú a6`p1`p2 Ú a7 Ú a8(p2 Ú `p2);

D2 = a3(`p2p3 Ú `p2`p3) Ú a4`p1`p2 Ú a5(p1p2 Ú p1`p2) Ú a6(p1 Ú `p1`p2) Ú a7 Ú a8(p2 Ú `p2);

D3 = a1p1 Ú a2 Ú a3(p2 Ú `p2p3 Ú `p2`p3) Ú a4p1`p3 Ú a6(p1 Ú `p1p2 Ú `p1`p2) Ú a8p2.

Преобразуя эти выражения с использованием правил склеивания, обобщенного склеивания и поглощения, получим:

D1 = a3(p2 Ú p3) Ú a4`p1p2 Ú a5 (`p1 Ú `p2) Ú a6`p1`p2 Ú a7 Ú a8;

D2 = a3`p2 Ú a4`p1`p2 Ú a5p1 Ú a6(p1 Ú `p2) Ú a7 Ú a8;

D3 = a1p1 Ú a2 Ú a3 Ú a4p1`p3 Ú a6 Ú a8p2.

Можно проверить, что суммарная сложность схем, реализующих преобразование переменных и функции возбуждения элементов памяти, меньше, чем при тривиальной реализации функций исходной таблицы. При больших таблицах этот выигрыш более существен.

Замену переменных и кодирование состояний автомата можно выполнять различными способами, которые будут приводить к различным выражениям для функций D1, D2, D3 и различным значениям сложностей схем. Поэтому важно выполнить замену переменных и кодирование таким образом, чтобы обеспечить минимальное число термов в окончательных уравнениях. С этой целью рекомендуется руководствоваться следующими правилами:

· до замены переменных произвести минимизацию числа строк таблицы переходов-выходов структурного автомата, так как это способствует уменьшению числа переменных, определяющих переход в строках таблицы;

· при замене переменных нужно стремиться поместить каждую переменную xi в одном столбце таблицы замены, что, однако, не всегда возможно;

· при кодировании состояний важно, чтобы дизъюнкции в круглых скобках склеились в одну конъюнкцию.

С целью минимизации числа строк таблицы переходов выходов используют следующий прием. Если в таблице имеется переход, управляемый более чем одним или двумя условиями, его разбивают на более «короткие», содержащие меньшее число проверяемых условий, например, 1 или 2. Для этого в граф-схему алгоритма добавляют пустые операторные вершины, которым не соответствуют никакие микрокоманды. Они обозначаются Ye. При этом число строк таблицы сокращается, но число состояний автомата (число меток на ГСА) может увеличиться. При выборе желаемой длины условного перехода следует учитывать это обстоятельство.

Кодирование микрокоманд

О кодировании микрокоманд имеет смысл говорить только для случая построения автомата Мили. В принципе выходные сигналы автомата Мили формируются из тех же конъюнкций, из которых строились функции возбуждения элементов памяти автомата. Так что можно использовать имеющиеся термы, полученные при тривиальной реализации, и сформировать из них микрокоманды. Так как некоторые микрооперации выполняются более чем в одной микрокоманде, для последующего формирования сигналов, инициирующих выполнение микроопераций, используются дизъюнкции микрокоманд. Например, для выходных сигналов в Табл.1 микрокоманды имеют следующий состав:

Y0 = Æ; Y1 = {y2, y5, y10}; Y2 = {y3, y4}; Y3 = {y1, y3 , y4};
Y4 = { y10, y11}; Y5 = {y6, y8}; Y6 = {y1}; Y7 = {y9, y14};
Y8 = {y7}; Y9 = {y6, y13}; Y10 = {y12}.  

Закодируем каждую микрокоманду таким образом, чтобы выражения для микроопераций сводились к одному терму. Тогда выходные сигналы МПА будут сформированы слоем конъюнкторов, следующих за кодами микрокоманд.


 


Поделиться:



Последнее изменение этой страницы: 2019-03-29; Просмотров: 399; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь