Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Преобразование Мура в Миля




Понятие эквивалентности автоматов

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

 

 

Ar = <Pr, Wr, Sr, s0r, φr, ψr>

Al = <Pl, Wl, Sl, s0l, φl, ψl>

 

Ar – автомат Мура задан, необходимо найти эквивалентное ему автомат Миля. Al

1) Pl = Pr

2) Wl = Wr

3) Sl = Sr

В общем случае число соответствий Миля может оказаться меньше чем число соответствий Мура, следовательно

Sl <= Sr

4) s0l = s0r

5) в Мура Sr(t+1) = φr(Sr(t), Pr(t))

в Миле Sl(t+1) = φl(Sr(t), Pl(t))

следовательно φl(SiPj) = φ(SjPj)

Новое состояние как в Муре так и в Миле зависит от предыдущего состояния и предыдущего входного сигнала.

Так как во время преобразования Мура в Миля уже установлены условия 1 и 3, то функция переходов при одном и том же воздействии автомата Миля должна совпадать с функцией переходов автомата Мура при тех же воздействиях.

Wl(t+1) = ψl(Sl(t), Pl(t))

Wr(t+1) = ψr(Sr(t+1)) = ψrr(Sr(t), Pr(t))

Wl(t+1) = Wr(t+1)

 

В автомате Миля новое выходное значение зависит от старых состояний и выходного сигнала.

 

В автомате Мура выходной сигнал зависит от нового состояния, т.к. новое состояние

Sr(t+1) = φr (Sr(t), Pr(t))

Определяется через старое состояние, то подставим

Sr(t+1).

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

 

Техника преобразований.

 

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

Пример:

P2
Автомат Мура

 

 
 

 

 


Автомат Миля

 

 


Обратный переход.

Построение Мура для заданного Миля.

 

Пример

 

 


т.е. нужно получить:

 

 
 

 

 


Пример 2:

 
 

 


тогда происходит расщепление состояний:

 

 
 

 

 


При переходе от автомата Миля к Муру – аналогично как и в предыдущем переходе должны совпадать все алфавиты и все функции.

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

В общем случае при переходе к автомату Мура число состояний может увеличиваться.

Если одно и тоже устройство описывается моделями автоматов Мура и Миля, то в модели на основе автомата Мура устройство может иметь больше число состояний.

 

Автомат Миля:

 

 
 

 


Автомат Мура:

 

 

 

 


Частичные или не полностью определенные автоматы.

 

Пусть P = {P0, P1, …, Pn} – входной алфавит

P* - множество всех слов в алфавите P

P*g – множество допустимых слов

P*g <= P*

P*з = P* / P*g - множество запрещенных слов

P* и P*g – слова одной и той же длины

Автомат называется частичным, если

1) множество запрещенных слов не пусто или

2) на входное допустимое слово автомат вырабатывает выходное слово, в котором есть хотя бы одна буква, которой значение не важно, т.е.

P1, P1, P2, P1

W0, W1, *, W0

, W0,

, W1,

Условие 1 приводит к тому, что в таблице переходов автомата будут прочерки – отсутствующие переходы.

Условие 2 приводит к тому, сто в значениях выходах таблицы будут находиться «*».

 

Пример: автомат Миля.

 

Pj P1 P2 P3
Si
S0 S2/W1 --- ---
S1 --- S2/* S2/W2
S2 --- S0/W3 S3/W1
S3 --- S0/W1 S0/W3

 

В таблице присутствует как 1 так и второе условие.

           
   
P1 / W1
 
   
 
P2 / W1
 

 


Второе условие по графу видно явно, а первое нет.

Для проверки условия 1 нужно в каждой вершине проверить наличие переходов по каждой букве входного алфавита.

Так для состояния «S0» есть переход только по P1 и отсутствует P2 и P3

 

Синтез конечных автоматов.

 

Синтез состоит из двух этапов.

1) Абстрактный синтез

2) Структурный синтез

 

Абстрактный синтез конечных автоматов.

 

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

Исходные данные задаются в виде алфавитного оператора. Алфавитный оператор называется оператор, устанавливающий соответствия между входными и выходными словами, которые перерабатывает автомат.

 

 
 

 

 


Индексы указывают на номера машинного такта, а не на различие между буквами.

P = {0, 1}

W = {0, 1}

 

P0 P1 P2 P3 W0 W1 W2 W3

0 0 0 0 0 0 0 0

0 0 0 1 0 0 1 0

0 1 0 0 0 1 0 0

1 0 0 0 1 0 0 0

 

Алфавит операций называется автоматным, если он удовлетворяет следующим условиям:

1) Однозначно отображает входные слова в выходные

2) Удовлетворяет условию полноты, т.е. представляет все входные последовательности входящие в допустимый набор Pg*

3) Оператор сохраняет длину преобразованного слова

4) Оператор осуществляет преобразование одинаково локальных отрезков входного слова в совпадающие начальные отрезки выходных слов.

Утверждение:

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

 

Для полученного автоматного алфавитного оператора из не автоматного используют 2 операции: выравнивание и пополнение. Операция выравнивания используется, если нарушено условие автоматности оператора и заключается в добавлении нового пустого символа e справа во всех последующих или слева к выходной.

Явно восстанавливаем 3 условие автоматности оператора.

 

Пример:

 

P0 P1 W0 W1
    e  
    e  
    e  
    e  

 

Нарушено 3 условие – длина выходного слова меньше длины входного, поэтому слева к выходному слову добавляют пустой символ e.

После пополнения выходной алфавит будет выглядеть: W = {0, 1, e}

P = {0, 1}

W = {0, 1} – изначально

Операция пополнения используется если нарушено 4 условие и заключается в добавлении пустого символа e справа к входной последовательности и слева к выходной одновременно.

 

P0 P1 P1 W0 W1 W2
    e e    
    e e    
    e e    
    e e    

 

Вначале P = {0, 1}

W = {0, 1}

Стало P = {0, 1, e}

W = {0, 1, e}

Начальный отрезок из одной буквы 0 в исходном операторе в первой строке преобразовывается в 0 а во втором в 1, следовательно нарушено 4 условие, поэтому к входному слову слева и к выходному слева дописывается пустой символ e, при этом изменяется входной и выходной алфавиты.

А операторы могут быть заданы двумя способами: табличным и графическим.

 

Пример:

 

P0 P1 P2 W0 W1 W2

0 0 e1 e1 0 0

0 0 e2 e 0 1

 

Если в операции пополнения используют несколько пустых символов e (e1 , e2 , …), то можно восстановить первое условие автоматности.

 

P0 P1 W0 W1

0 0 0 0

0 0 0 1

 

Табличный способ устанавливает соответствие между входными и выходными последовательностями в форме таблицы.

В графическом способе оператор представляется в виде нагруженного дерева входными последовательностями.

Пусть от вершины к листу дерева соответствует одному входному слову.

Входные буквы помечают дуги между вершинами дерева. Выходное слово также присутствует на пути из корня к листу. Число ярусов дерева соответствует длине входного слова.

 

Построение дерева входных последовательностей.

 

Пусть задан входной алфавит:

1) Фиксирована вершина, которая называется корнем дерева

2) Из вершины проводят n дуг, каждая из которых помечается буквой входного алфавита.

3) Строится n вершин

4) Из каждой вершины проводят n дуг и так далее

5) Последняя вершина – лист – называется конечной вершиной.

 

На дереве каждому символу P соответствует свой символ Wi

Чтобы построить автомат нужно: для полученного автомата по автоматному алфавитному оператору необходимо выполнить следующие действия:

1) Представить алфавит операций или представить в виде дерева входных последовательностей.

2) Отметить все вершины дерева символами соответствия автомата, при этом корень пометить начальным состоянием, а все листья конечными.

3) Для полученного автомата Мура вершины отметить символами выходных букв

Для полученного автомата Мили отметить дуги символами выходных букв

4) Все конечные вершины объединяются в одну

5) Найти эквивалентное состояние и объединить их между собой.

 

Нестрогое определение автомата

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

 

               
 
 
   
Pi
     
 
   
Pj
 

 

 


6) Для получения автомата многократного действия совмещаются вершина конечная с начальной.

Автомат, который после переопределения входного слова готов к приему следующего, называется автоматом многократного действия.

Пример:

P0 P1 P2 W0 W1 W2
           
           
           
           
           
           
           
           

1) Строим дерево

алфавит:

P = {0, 1}

W = {0, 1}

a)

 

 

b)

 

 

S = {S0, S1, S2, S3, S4, S5, S6, Sk }

c) Строим автомат Миля.

0 / 1

 

d) Объединяем Sk

 

 

e) S3 = S4 - эквивалентно

S5 = S6

 

S3,4 = S5,6

 

 

S1 = S2

 

f) Автомат многократного действия

 

 

 

Теcт:

 

t0 t1 t2   ti
S0 S1 S2 S0 Si
        Pi
        Wi

 

 

Si / Pi    
S0 S1/0 S1/0
S1 S2/0 S2/0
S2 S0/1 S0/0

 

Абстрактный этап синтеза конечного автомата состоит из следующих подъэтапов:

1) Преобразование алфавитного оператора к автоматному виду.

2) Построение абстрактного автомата по полученному автоматному алфавитному оператору.

3) Минимизация числа состояний абстрактного автомата.

 

Структурный этап синтеза автоматов.

 

Исходными данными для структурного этапа являются:

  1. Абстрактный автомат, заданный виде графа или табличных переходов и выходов.
  2. Система логических элементов, на которых необходимо реализовать автомат.
  3. Тип элемента памяти, на котором реализуется автомат.
  4. Требования, предъявляющиеся к схеме автомата по сложности и (или) быстродействию и так далее.

 

Результатом этапа является функциональная схема на заданных логических элементах.

На данном этапе автомат рассматривается виде следующей схемы:

КУ – комбинационный узел

БП – блок памяти

ЭП – элемент памяти

X1…Xm – коды (в совокупности код одной буквы входного алфавита)

Z1…Zm – код выходной буквы

Y1…Yk – код состояния автомата

Y11…Yk1

1) X1…Xm – входные переменные структурного автомата, которые обозначают коды символов входного алфавита.

2) Z1…Zm – выходные переменные структурного автомата, которые обозначают разряды кодов символов выходного алфавита.

3) Y1…Yk – внутренние переменные структурного автомата, которые обозначают разряд кода символов состояний.

4) Y11…Yk1 – функции возбуждения элементов памяти структурного автомата.

 

Между переменными абстрактного и структурированного автоматов существует взаимнооднозначное и структурное соответствие.

 

Входные алфавиты.

 

Абстрактная Структурная
P = {P1…Pn} X = {δ1, δ2,…, δn} – множество кодовых комбинаций на входе
P1≡ δ1 – букве соответствует код Pn≡ δn
W = {W1,…,Wl} Z = {β1, β2…, βl} – множество кодовых комбинаций выходных переменных
W1 ≡ β1 We ≡ βe
S = {S1,…Sm} Y = {γ1,…, γm} – множество кодовых комбинаций внутри переменной соответствующей состоянию
S1 ≡ γ1 Sm ≡ γm
Sj = φ(Si,Pk) y1 = φ111, δ1) … yk = φk1i, δi)
Функция перехода Автомат Мура: Wj = ψ(Sj) Z1 = ψ (γj) … Zm = ψ1mj)
Автомат Миля Wj = ψ(Sj, Pk) Z1 = ψ11j, γi) … Zm = ψ1mj, γi)

 

γj, β1, δ1 – конкретные значения кодовых комбинаций.

 

Основные этапы структурного синтеза.

 

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

 

 

Существует много способов кодирования состояний.

По тому, как будет закодировано состояние, зависит окончательная схемная сложность автомата.

Если автомат имеет m состояний, то длина кода может быть от log2m до m.

  1. Закодированные значения входных и выходных состояний подставляют в таблицу переходов и выходов и получают кодированную таблицу переходов и выходов, которые описывает уже структурный автомат.
  2. На основе кодированной таблицы строится система Булевой функции для возбуждения элементов памяти и выходов автомата.
  3. Совместно минимизируется полученная система булевых функций (пример Карты Карно).
  4. Построение блока памяти на логических элементах.
  5. Построение функциональной схемы всего автомата на заданных логических элементах.

 

Типы памяти.

 

Триггер – это двоичный элемент памяти. В качестве элементов памяти используется двоичные элементы – триггеры, которые имеют два устойчивых состояния.

Элемент памяти как правило имеет два выхода: прямой и инверсный.

Значение на прямом выходе соответствует коду состояния триггера и как правило выходному сигналу триггера.

Элементом памяти в автомате будем называть автомат Мура, обладающий полной системой переходов и выходов.

Автомат обладает полной системой переходов, если любых пар Si и Sj можно указать сигнал вызвавший переход из Si в Sj.

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

 

Основные типы триггеров.

 

Существует 4 основных логических типа триггера:

два одновходовых: «D», «T»

два двухвходовых: «RS», «JK»

 

  1. «D» триггер или триггер задержки (delay)

 

Графическое обозначение:

 

 

это автомат Мура (дуги – значения D)

 

Выходные значения во всех значениях будут совпадать с кодом состояния и будут обозначаться буквой q.

 

W(q) P(D)    
S(q)
       
       

 

Для триггеров удобно использовать иную форму таблицы переходов.

 

qt à qt+1 D
0 à 0  
0 à 1  
1 à 0  
1 à 1  

 

Эта таблица упрощается и приводится к виду:

 

0 à 0 т.е. значение D пишется над стрелкой.

0 à 1

1 à 0

1 à 1

 

  1. «T» триггер (Toggle - кувыркаться)

 

 

Триггер меняет свое состояние (Т = 1)

 

 

q / T    
     
     

 

qt à qt+1 T
0 à 0  
0 à 1  
1 à 0  
1 à 1  

 

0 à 0

0 à 1

1 à 0

1 à 1

  1. «RS» триггер

 

R – reset – сбрасывает в 0 (00 – хранение предыдущего состояния)

S – set – установка в 1 (11 - запрещена)

R = 1 – сброс

S = 1 – установка

R = S = 0 – хранение

R = S = 1 – запрещена.

 

* - безразлично чему равен сигнал

 

q / RS        
        --
        --

«--» - запрещенные комбинации

 

qt à qt+1 RS
0 à 0 *0
0 à 1  
1 à 0  
1 à 1 0*

*0

0 à 0

0 à 1

1 à 0

0*

1 à 1

 

  1. «JK» триггер (jump – установка 1, kill - сброс)

 

 

J = 1 K = 0 – установка

J = 0 K = 1 – сброс

J = K = 0 - хранение

J = K = 1 – инверсия

1)

0*
00 – хранение

01 - сброс

2) 0 à 1

1*
10 – установка

11 - инверсия

3) 1 à 1

*0

4) 1 à 0

*1

 

q / JK        
         
         

 

qt à qt+1 JK
0 à 0 0*
0 à 1 1*
1 à 0 *1
1 à 1 *0

 

0*

0 à 0

1*

0 à 1

*1

1 à 0

*0

1 à 1

 

Пример структурного синтеза синхронного автомата.

 

Автомат называется синхронным, если его состояние меняется в строго определенные моменты времени.

Эти моменты времени определяется с помощью специальных синхронизаций сигналов.

 

тип логического элемента:

«И» «НЕ»

 

тип памяти RS

Нужно получить минимум затрат, т.е. минимум логических элементов.

Этапы:

P = {0,1}

W = {0,1}

Кодирование производить не надо. т.к. они уже кодированы.

Триггер – 1 разряд

log23 = 2, т.е. для кодирования нужно минимум два разряда

Закодируем произвольно

q0 q1

S0 = 0 1

S1 = 1 1

S2 = 1 0

 

Представим исходный автомат виде таблицы переходов и выходов.

Si / Pi    
S0 S1 /0 S1 /0
S1 S2 /0 S2 /0
S2 S0 /1 S0 /0

Вместо состояний приводим в таблице их коды и получаем кодированную таблицу переходов и выходов

Xi / q0q1    
0 1 11 /0 11 /0
1 1 10 /0 10 /0
1 0 01 /1 01 /0

RS

*0

0 à 0

0 à 1

1 à 0

0*

1 à 1

 

Xi / q0q1    
0 1 01,0* /0 01,0* /0
1 0 0*,10 /0 0*,10 /0
1 1 10,01 /1 10,01 /0

Данная таблица называется таблица функций возбуждения и выходов.

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

В данной таблице представлены 5 булевых функций: R0, S0, R1, S1,Z0

 

R0     ------------q1
    ------------q0  
  ---      
X0 - ---      

 

S0     ------------q1
    ------------q0  
  ---   *  
X0 - ---   *  

 

R1     ------------q1
    ------------q0  
  ---      
X0 - ---      

 

S1     ------------q1
    ------------q0  
  ---     *
X0 - ---     *

 

Z0     ------------q1
    ------------q0  
  ---      
X0 - ---      

 

 

В результате:

 

R0 = ^q1 (^ - отрицание)

S0 = q1

R1 = q0q1

S1 = ^q1

Z0 = ^q1^X1

 

 

В результате получается окончательная схема:

C – синхронизация

 

В начальном состоянии триггеры должны быть закодированы (установлены в начальное состояние S0) т.е. q0 – сброс

S1 – установка

При с = 0 функции возбуждения непосредственно на входах триггеров равны 0

Это соответствует режиму хранения двух триггеров, следовательно автомат находится (остается) в том же состоянии и не осуществляет переход.

При с = 1 получаем

R01 = R0

S01 = S0

R11 = R1

S11 = S1

т.е. непосредственно на входы триггера поступает синтезированная функция возбуждения и триггеры переключаются, т.е переходят из состояния в состояние в автомате и получаем на выходе qi новые входы.

Длительность с = 1 должна быть достаточной, чтобы сработал «и» на входе триггеров и переключились сами триггеры.

В тот момент времени, когда переключились триггеры, входные сигналы R и S не должны изменяться в противоположном случае поведение триггера может оказаться непредсказуемым.

С другой стороны в это время меняется значение qi и они по обратной связи поступают на вход триггера, т.е. могут привести к изменению значений Ri, Si

Следовательно длительность сигнала с должна быть ограничена сверху так, чтобы новые значения qi не успели поступить на входы Ri, Si (т.е. с – достаточно короткое).

Корректное значение z можно получить лишь тогда, когда q и x неизменные, т.е. после окончания их переключения и завершения всех переходных процессов в схеме, а это происходит при с = 0.

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

После переключений состояние уже будет новое, следовательно z уже не будет, S – уже новое, следовательно выходной сигнал Z будет соответствовать не предыдущему состоянию, а уже новому, следовательно вначале надо получить z а затем сменить состояние.

Следовательно x необходимо менять вместе со спадом сигнала с, а следовательно как только автомат переходит в новое состояние необходимо показать новый входной сигнал и после (задержки) переходной процесс получают значение Z.

Сам же переход из состояния в состояние произойдет при появлении с=1.

`Временная диаграмма.

 

К моменту t0 автомат должен быть установлен в начальное состояние S0, т.е. q0 = 0, q1 = 1. Функции возбуждения со штрихом равны 0, т.к. С= 0. Выходной сигнал Z = 0.

Ничего не меняется до момента t1, т.к. никакие сигналы (входные) не изменены. Появление С = 1 в момент t1 приводит (стрелки) и формирует S01 = 1, который устанавливает триггер q0 в 1, а это в свою очередь формирует R1 = 1, которое должно появиться после момента t2.

В момент t2 срабатывает S01, после t2 автомат находится в состоянии S1, т.к. q0 и q1 = 1.

До q0 ничего не происходит, т.к. смена q0 на его значение не влияет. От t3 до t4 новый переход автомата, который окажется в состоянии S2 при этом новое значение ^q1 = 1, сформирует Z = 1, на интервале t5, t6 автомат вернется в состояние S0.

Длительность сигнала С = 0 должно быть достаточно для формирования новых функций возбуждения на входах элементов «и», а также для формирования выходного сигнала «Z».

В данной схеме очень жесткое требование на синхросигнал, особенно при С =1.

Это может привести к нереализованности такого генератора синхросигналов.

 

Этап минимизации автомата при абстрактном синтезе.

 

Минимизация полностью определенного автомата.

Постановка задачи:

Задан полностью определенный автомат A имеющий e – число состояний, необходимо построить эквивалентный ему автомат «A» c числом состояний «e1», причем e1 <= e.

Минимизация состоит в поиске эквивалентных состояний в автомате A и их объединений.

Два состояния S1 и S11 называются эквивалентными, если любую входную последовательность автомат перерабатывает в одинаковые выходные последовательности, в независимости от того какой из двух состояний S1 или S11 выбраны в качестве начального.(S1≡S11).

Отношение эквивалентности, определенное на множестве состояний обладает свойствами:

  1. Рефлексивность

S1≡S1

  1. Симметричность

S1≡S11 => S11≡S1

  1. Транзитивность

S1≡S11
S1≡S111

S11≡S111

Отношение эквивалентности разбивает множество Ci на классы эквивалентности

S=C1ÚC2 ÚC3Ú…ÚCq

Ci <= S

Пересечение классов эквивалентности представляет собой пустое множество.

Пример:

Состояние Si ≡ Sk – не очевидно

Эквивалентный автомат будет:

Существует два необходимых условия эквивалентности состояний:

  1. Два состояния называются эквивалентными, если в этих состояниях вырабатываются одинаковые выходные символы (Мура) или при переходе из этих под воздействием любых одинаковых входных символов вырабатываются одинаковые выходные символы (Миля).

ψ1(S1) = ψ11(S11) (Мура)

ψ1(S1,Pk) = ψ11(S11,Pk) (Миля).

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

Si≡Sj
ψ1(S1,Pk) = Si

ψ11(S11,Pk) = Sj

 

 

Алгоритмы минимизации на основе треугольной матрицы.

 

Изначально нам задан автомат, имеющий L состояний.

  1. Строится треугольная матрица без диагональных элементов, столбцы которого нумеруются символами состояний с 1 по L-1, а строки со второй по L.
  2. Клетки матрицы с координатами i,j представляют отношение эквивалентностей между состояниями Si, Sj и заполняются следующим образом:

a) если для Si, Sj невыполнимо условие 1 эквивалентности, то в клетку ставят «X»

b) если выполняется заведомо два условия для Si, Sj (переходы осуществляются в одно и то же состояние для второго условия) – клетка оставляется пустой либо ставится «▼»

c) если для пары состояний Si, Sj выполняется 1 условие, но не известно выполняется ли второе, т.к. переходы осуществляется в разное состояние, то в клетку записывают номера состояний от эквивалентности которых зависит эквивалентность данных.

  1. Заполненная треугольная матрица, последовательно просматривающаяся по клеткам, в которых записаны состояния и если известно, что вписанная в клетку состояние не эквивалентны, то в этой клетки ставят «X».

Рассмотрение матрицы осуществляется до тех пор пока не перестанут появляться новые пары неэквивалентных состояний.

  1. Выписываются все пары эквивалентных состояний (там где не стоит X) и строят из них классы эквивалентностей. Каждому классу эквивалентности ставится в соответствие символ нового состояния и переписывают таблицу переходов входов и выходов путем объединения одинаковых строк.

Пример минимизации:

 

P = {a,b,c}

W = {1,2}

S = {1,2,3,4,5,6,7,8}

 

Si / Pk a b c
  4/1 2/2 5/1
  5/2 1/1 4/2
  3/2 5/1 4/2
  5/1 8/2 4/2
  7/1 2/2 1/1
  1/1 3/2 4/2
  5/1 3/2 7/2
  3/2 5/1 6/2

Получили следующие пары эквивалентных состояний:

1 ≡ 5

3 ≡ 8

4 ≡ 6

4 ≡ 7

6 ≡ 7

Классы эквивалентности:

C1 = {1, 5}

C2 = {2}

C3 = {3, 8}

C4 = {4, 6, 7}

Получили 4 класса эквивалентности.

Далее перепишем:

C1 – 1

C2 – 2

C3 - 3

C4 – 4

Получим:

 

Si / Pk a b c
  4/1 2/2 5/1
  1/2 1/1 4/2
  3/2 1/1 4/2
  1/1 3/2 4/2
  4/1 2/2 1/1
  1/1 3/2 4/2
  1/1 3/2 4/2
  3/2 1/1 4/2

 

Объединяем строчки: получим

 

Si / Pk a b c
  4/1 2/2 5/1
  1/2 1/1 4/2
  3/2 1/1 4/2
  1/1 3/2 4/2

 

Минимизация числа состояний частичного автомата.

 

Два частичных автомата называются совместимыми, если

  1. Они имеют одинаковый набор или множество допустимых входных слов.
  2. Любое допустимое входное слово оба автомата перерабатывают в непротиворечие выходные слова, при условии что оба автомата находились в начальном состоянии.

Два выходных слова называется непротиворечивыми, если все символы, которые определены в выходном слове (первом) совпадает со всеми символами, которые определяются в выходном втором слове.

Пример:

 

Следовательно должны быть непротиворечивые выходные слова.

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

Отношение совместимости обладает следующими свойствами:

  1. Рефлективностью Si ∞ Si – совместимо само с собой
  2. Симметричностью Si ∞ Sj à Sj ∞ Si
  3. Нетранзитивно Si1 ∞ Si

Si11 ∞ Si но не следует, что Si1 ∞ Si11

Отношение совместимости разбивает множество состояний на классы совместимости Q1 v Q2 v … v Qk, их объединение представляет собой алфавит состояний. Qi ∩ Qj ≠ 0, т.е. пересечение двух классов совместимости не обязательно является пустым множеством, а следовательно одно и тоже состояние может оказаться нескольких классах совместимости. В общем случае число классов совместимости больше чем аналогичное число классов эквивалентности, но может и превышать число исходных состояний. Цель минимизации – уменьшить число состояний, а следовательно уменьшить число классов совместимости. Простым классом совместимости называют множество, содержащее попарно совместимые состояния. Максимальным классом совместимости называют простой класс, который не является подмножеством ни одного из наборов других классов. Условие совместимости состояний автомата:

1) Для любого входного символа функция выхода, если она определена для двух состояний должно совпадать (автомат Мили), либо для данных состояний должна совпадать (автомат Мура) ψ (S1) = ψ (S11) – Мура, ψ (S1, Pk) = ψ (S11, Pk) – Мили

2) Для любого входного символа Pk, если функция перехода для двух состояний определена, то переход осуществляется в одно и то же состояние, либо в совместимое.

a)

b)

 

во втором случае в отличие от первого S1 не совместимо с S11

 

Минимизация частичного автомата.

 

Она заключается в уменьшении числа состояний путем объединения совместимых состояний.

Алгоритм минимизации:

1) Строится матрица и ищутся пары совместных состояний

2) Находим max классы совместимости, например, с помощью дерева, которое разбивает искомый алфавит состояний на основе признака несовместимости пар состояний

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

4) Проверяется полнота путем построения таблицы покрытий

5) Проверяется замкнутость путем нахождения подмножества состояний следующих за исходными классами совместимости. Это выполняется на пример с помощью дерева переходов. Если условие замкнутости не выполняется, то можно сузить классы совместимости путем удаления состояний, которые вызвали незамкнутость, при этом не должна нарушиться полнота, затем выбрать новый минимальный класс совместимости и выполнить все проверки и затем расширить число классов совместимости, добавив в них подмножество, которое получилось путем следования из исходных классов и вызвано незамкнутостью. И в первом и во втором случаях необходимо заново проверять замкнутость.

6) Каждому классу совместимости присваивается новый символ состояния.

7) Переписывается таблица переходов, причем новое состояние записывается так, чтобы не нарушилась замкнутость и склеиваются совместимые строки.

 

Пример минимизации частичного автомата:

P = {a, b, c, d, e}

S = {1, 2, 3, 4, 5, 6, 7}

W = {00, 01, 10, 11}

 

Si / Pk a b c d e
  1/00 5/*1 --- --- 6/**
  5/*0 4/0* --- --- ---
  4/11 --- --- --- 6/00
  6/*1 6/00 --- 2/0* ---
  --- 7/0* --- 4/*0 ---
  --- --- 6/*0 --- 2/10
  --- 2/** 1/00 --- ---

Получили следующие пары совместимости:

1 ≡ 6

1 ≡ 7

2 ≡ 5

2 ≡ 6

3 ≡ 4

3 ≡ 5

3 ≡ 7

4 ≡ 6

4 ≡ 7

5 ≡ 6

Строим дерево классов:

 

C1 = {1, 6}

C2 = {1, 7}

C3 = {2, 5, 6}

C4 = {3, 4, 7}

C5 = {3, 5}

C6 = {3, 6}

Выбираем множество классов C1, C3, C4, C6

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

 

Абстрактный этап синтеза конечного автомат. (неканонический метод).

 

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

Алгоритм перехода от граф схемы микропрограммы к автомату Мура.

  1. Начальная и конечная вершины помечаются начальным состоянием.
  2. Все операторные вершины граф-схемы помечаются индивидуальными символами состояний автомата, в независимости от микропрограмм находящихся в этих вершинах.
  3. Строится n+1 вершина графа(n – число операторных вершин в алгоритме), каждая вершина помечается символом состояния и микрокомандой из операторной вершины в качестве выходного сигнала.
  4. Вершину Si соединяем с Sj дугой на которой в качестве входного сигнала приводят код логического условия, которые допускают переход из оператора помеченного Si в оператор помеченный Sj.

Пример:

 

P = {P0, P1, P2, P3}

S = {S0, S1, S2, S3, S4}

W = { W0, W1, W2, W3}

Автомат полностью определен, следовательно перейдем к автомату Мили:

 

 

 

Учет взаимодействия проекционного и управляющего автоматов.

 

Алгоритм получения.

 

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

С другой стороны наличие прочерков в таблице переходов частичного автомата может позволить получить более компактный автомат после минимизации.

Следовательно имея два автомата: частичный и полностью определенный, описывающий по одному алгоритму которого необходимо выбирать частичный в качестве окончательного, чтобы упростить (уменьшить затраты на автомат, сократить число состояний).

Для построения частичного автомата необходимо получить наборы X возможных в каждом состоянии. Для этого необходимо знать:

1) Множество наборов X, которые может получить автомат на вход, когда он находится в начальном состоянии S0 – будем обозначать U0

2) Как каждая микрооперация влияет на значение логических условий.

 

Алгоритм получения частичного автомата.

 

  1. Строится дерево переходов и для каждого состояния определяется набор X. Построение дерева заканчивается, когда автомат попадает в состояние уже просмотренное и множество логических условий более не пополняется.
  2. Из таблицы переходов полностью определенного автомата исключают переходы по несуществуемым наборам логических условий.

Пример:

 

Si / XiXj        
S0 S1 / 010 S1 / 010 S1 / 010 S1 / 010
S1 S1 / 010 S4 / 001 S3 / 011 S0 / 001
S3 S0 / 100 S0 / 100 S0 / 100 S0 / 100
S4 S1 / 010 S0 / 100 S1 / 010 S0 / 100

 

Предположим U0 = {1, 1}

 

Yi / Xi X1 X2
Y0    
Y1 Z
Y2    

 

Строим дерево переходов:

 

 

Если вырабатывается микрокоманда из двух микроопераций, то возможны следующие результаты Xi:

1) Если на Xi действует только одна из двух микроопераций, то новое значение Xi соответствует этому единственному воздействию.

2) Если на Xi действует обе микрооперации, то

a)Эти микрооперации приводят к одному и тому же значению, то новому значению Xi приводится в соответствии с воздействием этих микроопераций.

b) Если микрооперации могут привести к разным Xi то Xi приписывается значение Z.

 

 

Множество входных значений.

 

U0 = {11, 00}

U1 = {ZZ}

U3 = {0Z}

U4 = {01}

 

Далее удаляем несуществующие входные сигналы из таблицы переходов:

 

Si / XiXj        
S0 S1 / 010 --- --- S1 / 010
S1 S1 / 010 S4 / 001 S3 / 011 S0 / 001
S3 S0 / 100 S0 / 100 --- ---
S4 --- S0 / 100 --- ---

S3 совместимо с S4

 

Si / XiXj        
S0 S1 / 010 --- --- S1 / 010
S1 S1 / 010 S4 / 001 S3 / 011 S0 / 001
S3 S0 / 100 S0 / 100 --- ---

 

 

Кодирование состояний синхронного автомата.

 

Кодирование состояний автомата может изменять различные параметры окончательной схемы, такие как:

a) затраты

b) быстродействие

c) потребляемая мощность

d) взаимные наводки

Существует масса вариантов кодирования состояний от Lmin = log2k

Lmax = k

где k – число состояний

L – число разрядов

 

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

1 способ – способ учитывающий соседство состояний.

2 способ – способ минимизирующий число переключений при переходах.

3 способ – универсальный способ кодирования.

 

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

 

 

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

 

S1 и S11 – соседи первого рода

Si и Sj – соседи второго рода (не обязательно ⌐x, главное чтобы сигнал был одинаковым)

 

Степень соседства S1 и S11 =1

Соседи первого и второго рода кодируют соседними кодами. Метод эвристический и не обеспечивает гарантии минимума системы.

Пример:

Пусть задан D – триггер в качестве элемента и 2 состояния, которые являются соседями первого рода S1 и S11

S1 - закодировали (q1q2q3…qn-1⌐qn) – 11…10

S11 - закодировали (⌐q1q2q3…qn-1⌐qn) – 01…10

Предположим, что под воздействием входного сигнала x, который вызывает переход в общее состояние некоторый триггер должен перейти из 0 в 1.

При кодировании соседей первого рода соседними кодами происходит склеивание конъюнкции в функции возбуждения триггеров.

Пример:

Кодируем соседей второго рода.

Пусть в качестве элемента памяти используется D триггер

0à1 есть для D3

D3 = ⌐q1⌐q2⌐q3x1 v q1⌐q2⌐q3x1 v q1⌐q2⌐q3⌐x1 = ⌐q2⌐q3x1 v q1⌐q2⌐q3⌐x1 – выражение упрощается благодаря соседним кодам S1 и S11

D2 = ⌐q1⌐q2⌐q3⌐x1 v q1⌐q2⌐q3⌐x1 = ⌐q2⌐q3⌐x1

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

Задан автомат, построим инверсную таблицу переходов:

    Pi /Si
--- S2, S4 S0
S0 S3 S1
S3 S0, S1 S2
S1 --- S3
S0, S1 --- S4

 

т.е. соседями первого рода будут: S2, S4 (2 – степень родства)

S0, S1 (1) – соседи второго рода.

 

Минимальное число разрядов при кодировании = 3, точнее 5 состояний, следовательно карты Карно на 8 клеток.

 

 

        --------- q2
      ---------   q1
    S2 S4 S0 S1  
  |       S3  
  q3          

 

Si q3 q2 q1
S0      
S1      
S2      
S3      
S4      

 

Минимизация числа переключений элементов памяти.

Расстояние между кодами по Хеминингу – это число разрядов, в которых эти коды различаются между собой.

Алгоритм кодирования:

1) Определяем множество пар состояний, между которыми существует переход M.

2) Выбирается любая пара состояний, между которыми есть переход, один из них кодируется всеми нулями, а другой нулями и одной единицей.(00…01)

3) Из множества M удаляются пары состояний, которые уже закодированы M\(Si Sj), если станет равным 0, то процесс завершается.

4) Берем любую пару в которой одно состояние уже закодировано, а другое нет (*, Sq) Sq - незакодированное состояние, * - состояние закодировано. Далее кодируем это состояние.

5) Выбираем множество пар из M куда входит Sq (Mq)

6) Из Mq выбираем все закодированные состояния (Bq)

7) Строим множество кодов, имеющих расстояние d, с каждым кодом из состояния Bq

8) Для каждого кода из всех множеств Cdq определяется сумма расстояний по Хеммингу с каждым кодом из Bq Выбирается код, имеющий минимальную сумму и этот код приписывается Cq Деле возврат к пункту 3.

 

Пример:

 

1) Пары состояний M = {(1,2),(2,3),(2,4),(2,5),(3,4),(4,5),(1,5)}

2) {1,2} => S1 = 000 S2 = 001

 

3) M = {(2,3),(2,4),(2,5),(3,4),(4,5),(1,5)}

4) {2,4}

q=4

5) Mq = {(2,4),(3,4),(4,5)}

6) Bq = {2}

7) C14 = {101,011}

8) 101 + 001 = 100 d =1

011 + 001 = 010 d =1

S4 = 101

3) M = {(2,3),(2,4),(2,5),(3,4),(4,5),(1,5)}

4) {2,5} q=5

5) Mq = {(2,5),(1,5),(4,5)}

6) Bq = {2,4,1}

7) C15 = {011}

C15 = {(111),(100)}

C15 = {(100),(010)}

8) 011 + 001 = 010

011 + 101 = 110

011 + 000 = 110

111 + 001 = 110

111 + 101 = 010

111 + 000 = 111

100 + 001 = 101

100 + 101 = 001

100 + 000 = 100

010 + 001 = 011

010 + 101 = 111

010 + 000 = 010

S5 = 100

3) M = {(2,3,(3,4) }

4) {2,3} q=3

5) Mq = {(2,3),(3,4)}

6) Bq = {2,4}

7) C15 = {011}

C15 = {(111)}

C15 = {(100),(010)}

8) 011 + 001 = 010

011 + 101 = 110

111 + 001 = 110

111 + 101 = 010

S3 = 011

3) M = {0 } – конец цикла.

 

 

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

 

Универсальный способ кодирования (для синхронного автомата).

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

Для D триггера:

D2 = q1⌐q2q3⌐x1 – любой код

D2 = q1⌐x1 - унитарный код

Для унитарного кода опущены ⌐q2⌐q3, так как если q1 = 1, то это однозначно подразумевает q2 = q3 = 0. Более того q1 = 1 невозможно ни для одного из оставшихся состояний автомата.

 

 

Пример:

 

0à1 0à1

D1 = q5x v q3x

5à1 3à1

 

0à1

D2 = q1⌐x

1à2

 

0à1 0à1 0à1

D3 = q1x v q2x v q4x

1à3 2à3 4à3

 

0à1 1à1

D4 = q2⌐x v q4⌐x

2à4 2à4

 

0à1

D5 = q3⌐x

3à5

 

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

R = 1, когда 1à0 обязательно

R = 1, когда 0à0 можно

S = 1, когда 0à1 обязательно

S = 1, когда 1à1 возможно

Для RS триггера сначала записываются функции обязательные, а там где возможно чтобы функция была равна 1 дописывают лишь в случае упрощения.

 

RS

*0

0 à 0

0 à 1

1 à 0

0*

1 à 1

1à0 1à0

R1 = q1⌐X v q1X = q1

1à2 1à3

0à1 0à1

S1 = q5X v q3X = X(q1 v q3)

5à1 3à1

В функции R1, S1 входит обязательная конъюнкция, обеспечивающая переход 1à0 для R1 и 0à1 для S1. В R1 можно добавить конъюнкции переходов из 0à0, т.к. при этом R=* и может быть доопределено до 1. Упростить R=q - можно добавить только ⌐q1, однако при унитарном кодировании инверсное значение ⌐q не используется, а следовательно переходы 0à0 добавленные в R1 только усложнят функцию.

Аналогично для S1 можно добавить конъюнкции соответствующие переходу 1à1, такой переход возможен, только если присутствует петля вокруг S1, в примере ее нет, значит получим окончательное значение R1 S1.

1à0 1à0

R2 = q2⌐X v q2X = q2

2à4 2à3

 

0à1

S2 = q1⌐X

1à2

 

1à0

R3 = q3

3à1

3à5

 

0à1 0à1 0à1

S3 = q1X v q2X v q4X = X(q1 v q2 v q4)

1à3 2à3 4à3

 

1à0

R4 = q4X

4à3

 

0à1 1à1

S4 = q2⌐X v q4⌐X = q2

2à4 4à4

 

R5 = q5X

 

S5 = q3⌐X

 

Автомат с дешифратором.

 

Схема имеет минимальное число элементов памяти и обладает положительными свойствами, характерными для унитарного кодирования.

Каждому состоянию соответствует два кода с минимальным и максимальным числом разрядов, недостаток схемы – дополнительные затраты виде дешифратора.

Два кода, предписанных одному состоянию, связаны между собой функцией дешифратора.

 

 

При кодировании состояний предполагаем наличие дешифратора.

В данном случае 2à4 (2 входа, 4 выхода)

Каждому состоянию соответствует два входа.

При записи функции возбуждения в данном случае аргументами являются Yi и Xi, а переходы триггера 0à0; 0à1; 1à0; 1à1 рассматриваются относительно qi/

Рассмотрим D и RS триггера:

В качестве элемента памяти используется 2 D триггера.

На D подаем 1 при переходе 0à1; 1à1

 

0à1 0à1 1à1 0à1 1à1

D1 = Y0⌐X v Y0X v Y1⌐X v Y2⌐X v Y3⌐X = Y0 v ⌐X (Y1 v Y2 v Y3)

1à2 1à4 2à4 3à2 4à4

 

0à1 0à1 1à1 1à1

D2 = Y1X v Y1⌐X v Y3X v Y3⌐X = Y1 v Y3

2à3 2à4 4à3 4à4

 

Далее RS триггер (R1 – сброс 1 разряда)

 

1à0 1à0 0à0

R1 = Y1X v Y3X v Y2X

2à3 4à3 3à1

 

 

0à1 0à1 1à1 1à1 0à1

S1 = Y0⌐X v Y2⌐X v Y1⌐X v Y3⌐X v Y0X = ⌐X (Y0 v Y2) v Y0X

1à2 3à2 2à4 4à4 1à4

 

1à0 1à0 0à0

R2 = Y2X v Y2⌐X v Y0⌐X = Y2

3à1 3à2 1à2

 

0à1 0à1 0à1 1à1 1à1

S2 = Y0X v Y1⌐X v Y1X v Y3X v Y3⌐X = Y0X v Y1

1à4 2à4 2à3 4à3 4à4

 

 

Асинхронные автоматы.

 

Ранее рассматривались:

 

 

т.е.раньше неявно присутствовал синхроимпульс.

Наличие синхроимпульса позволяло осуществлять переход, при отсутствии его автомат остается в текущем состоянии.

По существу синхроимпульс является дополнительным входным сигналом. Входные сигналы можно разделить в зависимости от наличия синхроимпульса:

  1. Синхронизируемое

С – синхроимпульс

Пример:

 

Разновидностью данного сигнала является импульсный сигнал

  1. Потенциальный сигнал

 

 

Новое входное значение появляется после изменений предыдущего значения, т.е. длительности 0 и 1 могут быть разными.

 

Асинхронным автоматом называется автомат, изменение состояния которого могут происходить в произвольные моменты времени, и эти моменты времени определяются сменой входного сигнала.

Тип автомата определяется типом входного сигнала.

Если входной сигнал потенциален, то автомат асинхронный, в противном случае – синхронный. При асинхронной реализации автомата для обеспечения устойчивой его работы все его состояния должны быть устойчивыми (аналогично петли СИ в синхронном автомате).

Состояние Si называется устойчивым, если при переходе в это состояние под воздействием входного сигнала Pk автомат остается в этом состоянии до тех пор, пока входной сигнал не станет отличаться от Pk.

 

Автомат будет асинхронным, если уже на абстрактном уровне все его состояния - устойчивы.

Пример асинхронного автомата:

Составим таблицу переходов:

 

W S/X1X2        
  S1 S1 S1 S3 S2
  S2 S1 S2 S2 S2
  S3 S1 S2 S3 S2

 

0 – устойчивое состояние (петля)

Проверка устойчивости:

S1 à S3 (двигаемся по строке, а потом по столбцу)

Для проверки является ли автомат асинхронным (по таблице переходов) вначале выделяем переходы соответствующие петлям вокруг состояний.

В каждой строке с номером I обводим состояние Si, затем проверяется устойчивость переходов из каждого состояния.

Например переход S1 à S3 проверяется следующим образом:

1) Смотрится в строке с текущем состоянием под воздействием входного сигнала в какое состояние он должен перейти (горизонтальное движение стрелки)

2) Затем в столбце соответствующим данному сигналу ищется состояние, в которое переходит автомат, но отмеченное кружком (движение вертикальное).

3) Если все переходы попадают в отмеченное состояние, то все состояния устойчивы и автомат может быть асинхронным.

 

Этапы синтеза асинхронного автомата.

 

Этап синтеза относится к асинхронному автомату также используется и в асинхронном, однако есть и отличие.

На этапе абстрактного синтеза нужно добавить следующие действия:

1) Осуществить перекодировку входных и выходных символов для обеспечения распознаваемости соседних одинаковых сигналов.

2) На этапе переходе от алфавитного оператора и автомату необходимо обеспечить все состояния автомата устойчивости.

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

 

Пример перекодирования входных и выходных символов:

 

P = {a,b} W = {a,b,c}

 

Вид входного сигнала:

 

 

 

P1 = {a, a1, b, b1} W = {a, b, c, c1}

На исходной временной диаграмме до перекодирования не различимы входные сигналы между I и II интервалом и III и IV. Выходной сигнал не различим между II и III интервалами.

На структурном этапе синтеза отличие следующие:

1) Иной тип элемента памяти, который используется в автомате.

2) Отличие в способе кодирования состояний автомата.

3) Иной метод синтеза комбинационного узла.

 

1. Кодирование состояний асинхронного автомата.

Цель кодирования – обеспечить устойчивую работу асинхронного автомата, затем устранение так называемого явления состязания памяти.

 

Состязание элементов памяти

 

 

a) τ1 = τ2 à 01à10

b) τ1 > τ2 à 01à00à10

c) τ1 < τ2 à 01à11à10

 

Это явление называется состязанием элементов памяти.

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

Если в примере q1 и q2 имеют задержки τ1 и τ2, то между ними могут быть соотношение, либо a либо b либо c, в этом случае переход из Si в Sj будет иметь варианты a,b,c. В случае b и c появляются дополнительные состояния 00 и 11, именно такие переходы через дополнительные состояния называются состязанием элементов памяти.

Состязания могут быть критическими и не критическими. Если состязание приводит к переходу в незапланированное устойчивое состояние, то такое состояние называется критическим.

Если же состязание приводит к переходу в незапланированное неустойчивое состояние, а потом и к переходу в верное устойчивое состояние, то такое состояние является некритическим.

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

Закодируем в предыдущем графе 3 состояния следующим образом:

 

S/q q1 q1
S1    
S2    
S3    

 

тогда автомат будет:

 

  Pi / Si        
           
           
           

 

 

Рассмотрим 00à11

q1q2

1 τ2)

  1. Пусть τ1 > τ2

00à01- - >11

Состязание критическое, из-за задержки автомат оказывается в состоянии 01, для которого входной сигнал 10 является устойчивым или приводит к устойчивости, и переходит в состояние 11 не произойдет.

  1. τ1 < τ2

10 10

00 à 10 à 11

Состязание не критическое.

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

 

2. Способы кодирования асинхронного автомата.

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

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

Существует 2 способа кодирования:

1) Соседними кодами

 

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

Однако число переходов обычно настолько велико, что используя код минимальной длины не удается на всех переходах закодировать состояние соседними кодами. В этом случае вводят дополнительное промежуточное состояние, которое является неустойчивым, такие состояния называются транзитивными. Число транзитивных состояний на любом переходе может быть любым. Они служат для задания определенного порядка изменения элементов памяти.

 

 

2) Кодирование унитарным кодом

 

При данном способе кодирования состояние Si кодируется кодом, в котором устанавливается 1 в I разряде.

Для отсутствия состязаний элементов памяти на каждом переходе из Si в Sj устанавливают транзитное состояние и кодируют его кодом, в котором 2 единицы в i и j разрядах.

Данный способ кодирования позволяет записать функции возбуждения прямо по графу, причем они будут не сложными.

 

Закодируем состояние из примера:

 

S1 = 100

S2 = 010

S3 = 001

 

 

D триггер (там где установка в 1)

 

 

D1 = ⌐X1⌐X2q3 v ⌐X1⌐X2q2 v q1⌐q2⌐q3

S3à S1/3 S2à S1/2 S1à S1

S1/3à S1 S12à S1 S1à S1/2

S1à S1/3

 

D2 = X1X2q1 v ⌐X1X2q3 v X1X2q3 v q1q2⌐q3

S1à S1/2 X2q3 X2q3 S2àS2

S1/2à S2 S3à S23 S3à S23 S2à S12

S23à S2 S23à S2

 

D3 = X1⌐X2q1 v ⌐q1⌐q2q3

S1à S1/3 S3à S3

S13à S3

 

Нарисуем временную диаграмму:

 

 

 

Предположим, что автомат находится в состоянии S1, q1,q2,q3 = 100, а входные сигналы X1 X2 = 01, функции возбуждения триггера дают следующие значения D1 = 1, D2 = 0, D3 = 0, что подтверждает состояние 100, до момента t0 схема устойчива.

Схема X1 в момент t0 изменяет D2, которое устанавливает к моменту t1 и вызывает изменение q2 к моменту времени t2; на интервале t2 и t3 получаем состояние 110, т.е. S12. Смена q2 сбрасывает D1, которое в свою очередь переводит q1 в ноль (момент t4), после t4 автомат находится в состоянии 010, т.е. в состоянии S2.

При переходе из S1 в S2 последовательно меняется вначале q2 и затем q1. Это обеспечивало отсутствие состязаний элементов памяти, с другой стороны затянуло переход из S1 в S2, т.е. снизило быстродействие.

Запишем функции возбуждения для RS триггера.

В отличие от D триггера RS должны меняться, когда он сбрасывается и переходит в 1.

 

R = 1 – сброс

1à 0

S = 1 – установка

0 à 1

R = 1

0 à 0

S = 1

1 à 1

 

S1 = q3⌐X1⌐X2 v q2⌐X1⌐X2

S3à S1/3(0à1) S2àS1/2 (0à1)

S1/3à S1(1à1) S1/2à S1(1à1)

 

R1 = q2X1X2 v q3X1⌐X2

S1/2à S2(1à0) S1/3àS3 (1à0)

S2à S2 (0à0) S2à S3(0à0)

 

S2 = q1X1X2 v q3X2

S1à S1/2(0à1) S3àS2/3 (0à1)

S1/2à S2(1à1) S2/3à S2(1à1)

 

R2 = q2⌐X1⌐X2

S1/2à S1(1à0)

S1à S1 (0à0)

 

S3 = q1X1⌐X2 = q1⌐ q2⌐ q3X1⌐X2 v q1⌐q2q3X1⌐X2

S1à S1/3(0à1) (0à1)

S1/3à S3(1à1)

 

 

Два разряда q1q2 10 определяют 2 состояния S1 и S13, один разряд q1 = 1 определяет 3 состояния S1,S13,S12, т.е. состояние S1 и транзитное от него. В записи для S3 присутствует также X1, ⌐X2 , что однозначно удаляет состояние S12 следовательно, вместо q1⌐q2, можно записать только q1 и выражение q1X1⌐X2 будет определять только 2 состояния S1 S13.

 

R3 = q3⌐X1⌐X2 v q3X2

S3à S1(1à0) S2/3àS2(1à0)

S1à S1(0à0) S2 àS2(0à0)

 

 

Рассмотрим временную диаграмму S1àS2

 

q1 q2 q3 X1 X2
         
         
         

 

Следовательно S3 = 0, R3 = 0

 

 

Классификация по логическому функционированию делят на RS, JK, D, T.

По принципу записи и считыванию информации.

Триггеры делят:

a) В зависимости от наличия или отсутствия синхросигнала (синхронные и асинхронные)

b) В зависимости от времени записи новой информации и ее появление на выходе делят на триггеры с задержкой(с разделением процессов записи и считывания) и триггеры без задержки (без разделения) процессов записи и считывания.

 

В триггерах с задержкой новое значение появляется на выходе по окончанию сигнала, который произвел запись этого нового значения.

 

 

На примере RS триггера:

  1. Асинхронный

a) без задержки

 

b) с задержкой

  1. Синхронный

a) без задержки

b) с задержкой

Реализация асинхронного RS триггера на логических элементах.

 

В качестве элемента памяти воспользуемся асинхронным D триггером.

Приведем таблицу переходов D триггера:

 

0 à 0 т.е. значение D пишется над стрелкой.

0 à 1

1 à 0

1 à 1

 

Следовательно

 

Это абстрактный закодированный автомат, представленный RS триггер.

Код состояния совпадает со значением выходного сигнала Q.

 

 

RS/q        
      --  
      --  

 

Нарисуем карты Карно

 

      ------------R
    ------------S  
      --  
Q -     --  

 

тогда Q = S v ⌐RQ = ⌐⌐(S v ⌐RQ) = ⌐(⌐S * ⌐(RQ))

или

 

      ------------R
    ------------S  
      --  
Q -     --  

 

тогда Q = (Q v S) ⌐R = ⌐(⌐(Q v S) v R)

 

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

 

Рассмотрим 1 триггер (с инверсными входами).

Временная диаграмма:

 

 

T ⌐S à Q = τ (задержка)

T ⌐S à ⌐Q = 2 τ

 

При появлении ⌐S = 0, сигнал поступает на верхний элемент и на триггер и устанавливает Q в 1 и лишь затем ⌐Q становится равным 0.

Аналогично при появлении ⌐R = 0 вначале устанавливается ⌐Q в 1, а затем Q в 0.

 

Рассмотрим второй триггер:

 

 

T (S à ⌐Q) = T (R à Q) = τ

T (S à Q) = T (R à ⌐Q) = 2 τ

 

Установочные входы в триггерах.

 

 

 

 

Функционально вход R и R0, а также S и S0 аналогичны, однако в схемах на RS входы заводят функции возбуждения а R0 S0 выводят наружу в качестве установочных, на которые перед началом функционирования автомата полают сигнал, устанавливающий автомат в состояние S0.

 

 

 

Синхронные элементы памяти.

 

Синхронизация позволяет исключить влияние временных смещений входных сигналов триггера и позволяет обеспечить одновременность изменений выходных сигналов элементов памяти.

Требования на синхросигнал:

 

Предположим, что триггер Q находится в 0 и подается J = K = 1.

Триггер должен перейти в 1, однако если J появится раньше чем K, при отсутствии синхросигнала, он установит триггер в 1.

Появление через ∆ сигнала K=1 установит 11 на входах и триггер сбросится.

Наличие синхросигнала позволяет триггеру реагировать только в момент синхросигнала, когда J=K=1 и в этом случае триггер перейдет 0à1 один раз.

Так как синхросигнал поступает на все триггеры одновременно, то все они реагируют и выдают сигнал на выходе одновременно.

 

Требования, предъявляемые к синхросигналу.

 

  1. Синхросигнал должен появиться после входного сигнала
  2. Синхросигнал должен заканчиваться раньше синхросигнала:

 

 

Синтез синхронного RS триггера.

 

 

В качестве основы используем асинхронные RS триггеры:

Так как данный вид триггера получен на элементах «или - не», то и комбинационный узел реализуем на тех же самых элементах.

 

CD/Q        
         
         

получим:

CD/Q        
  *0 *0   *0
  0* 0* 0*  

 

      ------------С
    ------------D  
  * *   *
Q -        

 

      ------------С
    ------------D  
         
Q - * * *  

R = C⌐D = ⌐(⌐C v D)

S = CD v ⌐(⌐C v ⌐D)

Условное обозначение:

Временная диаграмма:

 

В момент времени t0 сигнал R0 непосредственно воздействует через установочные входы на RS триггер.

В момент t1 появляется сигнал R1 , однако триггер был в нуле и следовательно изменений не произошло.

В момент t2 появляется сигнал S, который устанавливает ⌐Q в 0, а затем Q в 1.

Повторный сигнал ⌐S в t3 лишь подтверждает Q = 1, а ⌐Q = 0.

В момент времени t4 появившийся сигнал R сбрасывает триггер.

t (⌐С àQ=1) = 3 τ

t (⌐С àQ=0) = 2 τ

max (t (⌐С àQ)) = 3 τ

 

Синтез триггера с задержкой.Реализация асинхронного T триггера.

 

Появление сигнала T = 1 записывает новое значение триггера Q = 1, однако на выходе это значение появляется лишь после исчезновения сигнала T = 1.

Это можно организовать, используя два разряда, один из которых показывает значение внутри триггера (q1), а второй (q2) совпадает с Q.

q1 q2

0 0

0 1

1 0

1 1

тогда q1 q2 - 4 комбинации

q1 ≠ q2 – в моменты времени, когда происходит запись нового значения в триггер

Данный триггер представим виде автомата Мура, который имеет 4 вершины:

Это абстрактный автомат.

Составим таблицу переходов:

 

q1q2 /T    
     
     
     
     

 

Перейдем к структурному автомату:

 

⌐R⌐S

*1

0 à 0

0 à 1

1 à 0

1*

1 à 1

Строим таблицу функции возбуждения:

 

q1q2 /T    
  *1, *1 10, *1
  *1, 01 *1, 1*
  1*, 1* 01, 1*
  1*, 10 1*, *1

 

Q = q2, поэтому в таблице не приводят значение выходного сигнала.

 

Строим 4 карты Карно:

 

⌐R1     ---T
    *  
  ----- * *
-----    
     
q1 q2    

 

⌐R2     ---T
    * *
  -----    
-----    
    *
q1 q2    

 

⌐S1     ---T
       
  -----    
----- *  
  * *
q1 q2    

 

⌐S2     ---T
       
  -----   *
----- * *
     
q1 q2    

 

⌐R1 = (⌐q2 v ⌐T) = ⌐(q2T)

⌐S1 = (q2 v ⌐T) = ⌐(⌐q2T)

⌐R2 = (q1 v T) = ⌐(⌐q1⌐T)

⌐S2 = (⌐q1 v T) = ⌐(q1⌐T)

 

Условное обозначение триггера:

 

 

TT – два триггера внутри.

 

При реализации триггера на «или - не» берут RS триггер также построенный на «или – не» данный триггер имеет прямые значения R и S, следовательно при переходе к таблицы функций возбуждения необходимо приводить не инверсные, а прямые значения R и S.

 

 

В начальный момент времени t = 0, следовательно разрешена перезапись из 1 триггера во второй, следовательно их значения совпадают; 0 на установленном входе ⌐R0 воздействует на оба триггера одновременно. Вначале установятся в 1 ⌐q1 и ⌐q2, а затем q1 и q2.

Появление t = 1 устанавливает либо ⌐S1 либо ⌐R1 в 0, в зависимости от значений ⌐q1 и q2 соответственно. Этот 0 (например) на ⌐S1 переводит в 1 ⌐q1, а затем ⌐q1 переходит в 0. Инверсия сигнала T = 1 запрещает перезапись, устанавливаются ⌐S2 и ⌐R2 в 1. Когда T перейдет в 0 ⌐R1 и ⌐S1 станет = 1 и запись в первый триггер будет запрещена. Одновременно разрешается перезапись из 1 триггера во 2 и второй триггер устанавливается в соответствии с 1 - подобные структуры называются двухступенчатыми или MS(Master, Slave).

 

Исключение состязаний элементов памяти в синхронных автоматах.

 

Явление состязания элементов памяти рассматривается в асинхронном автомате. Устранение данного влияния в синхронных автоматах основано на применении триггеров с внутренней задержкой. В нашем курсе – это двухступенчатые триггеры, построенные по структуре MS. В этом случае структурный автомат будет выглядеть следующим образом:

C1 = C C2 = ⌐C  

К моменту времени t0 триггеры должны быть установлены в начальное состояние и на вход поданы значения Xi.

К моменту t1 должны быть сформированы функции возбуждения φ1 и φk, t1 – t2 – запись нового значения в триггер 1 ступени. В это время происходит состязание элементов памяти только 1 ступени. Так как на входах комбинационного узла ничего не меняется (запись во 2 ступени запрещена, т.к. t2 = 0), то данное состязание является не критическим.

Длительность сигнала С1 должна быть достаточна для записи информации во все триггеры 1 ступени. К моменту t3 на входах 2 ступени должны быть установлены новые значения. В интервале времени t3 t4 происходит запись во 2 ступень, и появляются новые значения на выходах элементов памяти автомата. В данном интервале происходит состязание элементов памяти 2 ступени. Это состязание также не критическое, так как С1 = 0 и запись нового состояния в элементы памяти запрещена. Длительность С2 = 1 должна быть достаточна для записи во все триггеры второй ступени. Во время С2 изменяется Qi, которые поступают на вход комбинационного узла и вызывают его срабатывание. Следовательно, целесообразно в это время менять и Xi. Интервал (t4 – t5) представляет собой интервал, в котором срабатывает комбинационный узел и формируются Yj и φj, так как к моменту времени С1 = 1 на выходах комбинационного узла значения стабильны, то при С1 = 1 можно считывать значения Y.

Часто вместо двух синхроимпульсов используют прямое и инверсное значение одного. При этом, например, при С = 1 срабатывает (например) 1 ступень, при С = 0 вторая. Тогда длительность С = 1 определяется временем срабатывания триггеров 1 ступени, а С = 0 – сумма времен второй ступени и Комбинационного узла.

Пример:

 

Временная диаграмма:

 

 

Рассчитаем параметры сигнала синхронизации

С = 1 – запись в первую ступень

tC=S = τ + 2 τ = 3 τ

2 τ – время сбрасывания двух внутренних триггеров, τ – время срабатывания элементов и на входах M триггеров

tC=0 = tтр + tку = 3τ + τ = 4 τ

T = 7 τ

 

Структура автоматов на ПЛМ и ПЗУ.

 

Используя ПЛМ и ПЗУ можно использовать только комбинационные узлы.

Обе микросхемы можно рассмотреть как устройство:

 

 

Матрицы И, ИЛИ – программируемые. На вход И матрицы И поступают прямые и инверсные значения входных переменных, на выходе получаем конъюнкции произвольного содержания от входных переменных. Выходы матрицы И называются термами.

В ПЗУ k = 2n, причем все термы разные.

В конъюнкцию ПЗУ входят все переменные, следовательно в ПЗУ матрица И представляет собой дешифратор, т.е. матрица И непрограммируемая, а содержит все возможности для конъюнкций.

В ПЛМ k < 2n. Матрица И программируема, причем на нескольких выходах можно получать одно и тоже. При реализации комбинационных схем на ПЗУ и ПЛМ заключается в распределении контактов на ПЗУ и ПЛМ между аргументами и функциями и второе в «прошивке» ПЗУ и ПЛМ.

Таблица прошивки для ПЗУ аналогична таблицы истинности функции. Таблица прошивки ПЛМ аналогична интервальной прошивке при совместной минимизации функций.

 

Пример: для ПЗУ.

 

an a1 a0 Q0 Qm
         
         
         
         
         

 

Здесь ai – входы ПЗУ, Qi- выходы.

 

Для ПЛМ:

 

an a1 a0 Q0 Qm
    z v   v
z z   v    
z       v v
  z z v v  
  z   v    

 

Условное графическое обозначение:

При нехватки числа выходов:

 

При нехватки термов:

Yj = Yj1 v Yj11

Yk = Yk1 v Yk11

 

Явление рисков в комбинационных узлах.

 

1)

 

 

2)

 

τ зависит от температуры, от расположения в микросхеме, влажности, давления…

t з min < t з< t з max

До сих пор логические элементы мы рассматривали как элементы, обладающие бесконечным быстродействием, т.е. задержка = 0 (это модель 1).

Реально элементы имеют конечное значение задержки, поэтому модель логического элемента должна быть представлена следующим образом (2, где τ – задержка элемента).

ЛЭ – логическая функция элемента

t з или τ зависит от многих параметров (ранее описанных).

Значение tз может изменяться и во времени. Оно имеет значение от t з min до t з max;

t з max – паспортное значение на выпускаемый элемент

t з min - для элементов не гарантировано.(t з min = t з max /1,5 – примерно из практики)

Из-за разброса t з значений у реальных логических элементов возникает так называемые риски, статические и динамические. Риски возникают при смене входных переменных с одной комбинации на другую. При этом если на обеих комбинациях на выходе должно быть одно и тоже, то может возникнуть статический риск, что проявляется в появлении кратковременного ложного значения между двумя правильными – это статический риск.

Пусть узел реализует f (x1 ) и существует 2 набора значений переменных δ1 и δ2, таких что f (δ1 ) = f (δ2 ), тогда если при смене набора δ1 на δ2 на выходе схемы появляется значение, отличное от f (δ1 ), то говорят что в схеме имеет место статический риск.

 

Статические риски бывают:

a) статический риск в «1»

 

 

b) статический риск в «0»

 

 

t1 – момент смены набора δ1 на δ2

 

Пример:

t з1 > t з2

t з3 = 0

 

 

если t31 <= t32, то статический риск отсутствует (статический риск в «1»)

Если на двух наборах функция имеет разное значение и переход от одного значения ко второму осуществляется не за 1 шаг, то это динамический риск.

Пусть существует f (x 1) и два набора δ1 и δ2, такие что f (δ1 ) ≠ f (δ2 ), если при замене входного набора δ1 на δ2 на выходе схемы получают следующую последовательность

f (δ1 ) àf (δ2 ) àf (δ1 ) àf (δ2 ), то говорят что в схеме имеет место динамический риск. Существует динамический риск при переключении 0 à 1 и динамический риск 1 à 0.

F = (⌐x1x2 v x1x3) (⌐x1x4 v x5)

t з1 < t з2< t з3

t з4 = t з5 = t з6 = 0

 

Исключение влияние рисков.

 

  1. В схемах синхронизации (синхронные автоматы) явление риска исключают за счет выбора периода и длительности синхроимпульса. Период синхросигнала должен быть больше времени срабатывания любой последовательности элементов в схеме. В это время все явления риска завершаются.
  2. В асинхронных схемах необходимо строить комбинационные узлы без рисков.

 

Построение схем без риска.

На комбинационные узлы и схемы накладывают следующие ограничения

 

1) На входе узла при смене набора переменных может поменяться не более одной переменной.

2) Глубина схемы не должна быть более двух, т.е. схема имеет не более двух ярусов.

 

Эти два ограничения автомата устраняет явление динамического риска. При двухъярусной схеме возможно два варианта представления функции, описывающий данную схему ДНФ и КНФ. ДНФ: F = k1 v k2 v k3 v… kn

Если на выходах всех элементов «И» нули, то функция = 0, если новое значение функции тоже должно = 0, то и на всех элементах «И» опять должны быть 0. Для возникновения риска между двумя 0 на выходе должна быть 1. Чтобы 1 была кратковременна на выходе «ИЛИ» она должна быть кратковременна на выходе элемента «И». Однако такого быть не может, т.к. на входе меняется всего одна переменная, причем один раз, а элемент «И» представляет собой первый ярус схемы.

Вывод: в двухъярусной схеме, построенной по ДНФ, статический риск в 0 отсутствует.

 

КНФ:

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

 

Предположим, что на входе схемы Xi существует только в прямом или инверсном виде.

ДНФ: Разобьем группу элементов & на 2 подгруппы a и b.

На вход A Xi не поступает, в отличие от B

Если на выходе группы A хотя бы одна 1, то функция равна 1, при смене Xi значение A не меняется, т.е. на том же выходе останется 1 и в независимости от того меняется B 1à0 или 0à1 на выходе схемы обеспечивается единицей на выходе конъюнкторов группы A, если же все выходы A нулевые, то смена любая на B приведет к смене значений на выходе функций и статического риска не будет.

Аналогично для КНФ:

Аналогично, если на выходе группы A 0, то он удержит 0 на выходе в независимости от группы элементов B. Если на выходе группы A 1, то любое изменение на B повторит на выходе B, риск отсутствует, следовательно, если Xi входит в прямом или инверсном виде, то получили отсутствие риска в независимости от формы схемы (ярусность).

ДНФ:

y(δ1) = y(δ2) = 1

1) A(δ1) = A(δ2) = 1 – риска нет

2) A(δ1) = A(δ2) = 0 – возможен риск

a) B(δi) = 0 C(δi) = 1

b) B(δi) = 0 C(δi) = 1

 

КНФ:

 

y(δ1) = y(δ2) = 0

3) A(δ1) = A(δ2) = 0 – риска нет

4) A(δ1) = A(δ2) = 1 – возможен риск

c) B(δi) = 0 C(δi) = 1

d) B(δi) = 1 C(δi) = 0

 

Если в двухъярусной схеме Xi входит как в прямом так и в инверсном виде, то возможно возникнет статический риск.

ДНФ:
Разобьем конъюнкции на три группы, A,B,C, причем в группе A Xi не входит, в группу B Xi входит только в прямом виде, а в группу С Xi входит только в инверсном виде.

Пусть имеется две кодовые комбинации, отличия Xi, такие что y(δ1) = y(δ2) = 1

a) Если A(δ1) = A(δ2) = 1, следовательно риска нет на выходе схемы, так как при смене Xi 1 с выхода группы A обеспечивает 1 на выходе y вне зависимости от значения на выходе B и C.

b) Если A(δ1) = A(δ2) = 0, то 1 обеспечивается вначале благодаря группе C, а затем группе B, либо наоборот. В этом случае все зависит от задержки элементов групп B и C.

Пусть 1 обеспечивается вначале группой B, а затем группой C и задержка B > заданной C

τB > τC

 

τB <= τC

 

Если в схеме возможен риск, то идея построения схемы без риска заключается в обеспечении на комбинациях δ1 δ2 на выходе группы A 1.

 

Алгоритм построения схемы без рисков по ДНФ.

 

Пусть задана функция n переменных

  1. Выбирается номер переменной i=1
  2. Представляется искомая функция как сумма трех блоков

f(x1) = A v B (xi) v C(x1i)

  1. Для xi определяем пары наборов δ1 δ2, на которых функция равна 1 и которая отличается только значением xi.
  2. Для каждой полученной пары δ1 δ2 определяем значения на выходах группы конъюнкции A

Если A(δ1) = A(δ2) = 1, то риск отсутствует, если A = 0, то для пары образуем конъюнкцию, которая сохраняет значение 1 на обоих наборах δ1 и δ2 и не зависит от xi.

  1. Увеличиваем i на 1 и конец, если I больше n, иначе возвращаемся в пункт2.

Пример:

Есть функция трех переменных.φi(x1,x2,x3) = ⌐x1⌐x3 v x2x3

i = 1 – риска нет

i = 2 – риска нет

i = 3

B = x2x3

C = ⌐x1x3

A = 0

 

*    
  *  
    x3

B = 1 C = 0

B = 0 C = 1

Следовательно δ1 = 011, δ1 = 010

Следовательно A = ⌐x1x2, тогда окончательно φ(x1,x2,x3) = ⌐x1⌐x3 v x2x3 v ⌐x1x2

 

Существует два способа для определения конъюнкций, исключающих явление риска:

  1. С помощью операции обобщенного склеивания

если часть функции y1 = RXi v S⌐Xi = RS v RXi v S⌐Xi

в примере R = x2, S = ⌐x1

  1. С помощью карт Карно

В карте Карно симметричные клетки отличаются только одним разрядом xi, следовательно если в симметричной клетке 1, а она входит в разное покрытие, то возможен риск и эти 1 надо объединить введя дополнительное покрытие.

        --------- x2
      ---------   x1
             
  |          
  x3          

 

КНФ

Схему аналогично представлена виде A,B,C блоков, причем в группе A xi не входит в группу B и C входит в прямом и инверсном виде. Риск возможен только если с выхода группы на двух комбинациях получается на двух комбинациях 1. В этом случае 0 на выходе обеспечивается на комбинации δ1 группы B, а на комбинации δ2 группы С или наоборот.

если τB > τC то получаем:

если τB <= τC то получаем:

Идея построения схемы без риска – по КНФ, формирование на выходе группы 0 на комбинациях δ1 и δ2

 

Алгоритм построения схемы без риска.

 

  1. i = 1 – номер переменной
  2. f (x1) = A*B(xi)*C(⌐xi)
  3. Нахождение δ1 и δ2 отличающиеся только xi таких, на которых A = 1
  4. Для найденной пары δ1 и δ2 находится дизъюнкция, которая на двух наборах = 0, и в которую не входит xi, вводим эту дизъюнкцию в функцию.
  5. i = i + 1, пока i<=n возвратиться во второй пункт.

Пример:

Есть функция трех переменных.φi(x1,x2,x3) = (⌐x1 v x3)*(x2 v ⌐x3)

i = 1 – риска нет

i = 2 – риска нет

i = 3

B = ⌐x1 v x3

C = x2 v ⌐x3

A = 1

  *  
*    
    x3

B = 0 C = 1

B = 0 C = 0

Следовательно δ1 = 100, δ1 = 101

Следовательно A = ⌐x1 v x2, тогда окончательно

φ(x1,x2,x3) = ⌐x1 v x21 v x3)*(x2 v ⌐x3)*(⌐x1 v x2)

Дополнительную дизъюнкцию для группы A можно получить двумя способами:

1) Обобщенное склеивание

(R v xi)*(S v ⌐xi) = (R v S)*(R v xi)*(S v ⌐xi)

в примере R = ⌐x1, S = x2

2) Карты Карно, поиск осуществляется симметричных нулей.

        --------- x2
      ---------   x1
             
  |          
  x3          

При структурном синтезе асинхронного автомата необходимо строить комбинационные узлы без риска.

 




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


Дата добавления: 2014-01-06; Просмотров: 1230; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 3.156 сек.