Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

..pdf
Скачиваний:
4
Добавлен:
12.11.2023
Размер:
8.51 Mб
Скачать

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

31= | 15Г1г | 3ЗГ2^ |2513| 2со| 1 j*3l4cot1.

(3.12)

Из ЛСА (3.12) видно, что при г=0 выполняется ЛСА Щ, а при г=1—ЛСА«ц. Однако, поскольку в данном случае, в отличие от

предыдущего примера, режимы чередуются, в процессе

работы

MA необходимо менять значение логического условия г. Так, пос­

ле выполнения ЛСА Щ значение логического условия

г

должно

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

ЛСА

— с

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

Пусть Fi устанавливает

значение r=0, a — значение

г=1.

Тогда окончательно общая

ЛСА может быть записана в виде

* = i4 f il1 ^i7t3 и, 9t2 *Ы2 F II cot1!3 eût4.

(3.13)

Следует заметить, что функции операторов Fi могут выполнять операторы частных ЛСА.

3.4. Составление логических схем алгоритмов

Условия работы MA не всегда легко записывать непосредствен­ но на языке ЛСА. Оказывается, более удобно алгоритм функцио­ нирования вначале записать на так называемых вспомогательных языках, а затем от них уже перейти к ЛСА. В качестве таких вспомогательных языков рассмотрим два: язык формул переходов (ФП) и язык секвенций [3].

Алгоритм функционирования автомата, в том числе и MA, представим в виде причинно-следственных связей операторов (ак­ тов алгоритма) или ФБ, в которых эти операторы реализуются. В таких причинно-следственных связях выделим два типа операто­ ров: операторы-предшественники, т. е. такие, которые к рассматри­ ваемому моменту времени закончили свою работу, и операторы-по­ следователи, т. е. такие, которые должны выполняться после за­ вершения работы операторов-предшественников. Такие причинноследственные связи между к + 1 операторами Ао,... , А& заданного алгоритма функционирования можно представить в виде матрич­ ной схемы алгоритма (MCA) [3]

(3-14)

где каждая строка сопоставлена с оператором-предшественником А{, 1= 0 , 1, . . .,Л—1, а столбец — с оператором-последователем Ajt /= 1, ...,&. Элемент аij MCA представляет собой логическую функ­

цию от логических переменных (логических условий)

рь ...,р п,

т. е.

 

 

« i j = f(pn

Рп)>

(3.15)

61

тающее в себе секвенции и ФП. Последнее является следствием то­ го, что на отдельных этапах функционирования ДУ легче опреде­ лить операторы-предшественники для оператора-последователя, а на других, наоборот, — один оператор-предшественник с соответст­ вующими операторами-последователями. В том случае, когда со­ ставляется смешанное описание, целесообразно затем перейти к одному из языков, причем, как будет следовать из дальнейшего, наиболее предпочтительным оказывается язык ФП.

В теории автоматов разработан достаточно эффективный метод перехода от секвенций к ФП, изложенный в [3]. Однако мы рас­ смотрим более громоздкий, но значительно более понятный метод. Громоздкость метода вытекает из того, что необходимо строить MCA, которая, как указывалось выше, не обеспечивает компакт­ ности описания алгоритма функционирования MA.

Пример 3.7. Пусть проектировщиком составлено смешанное описание алго­ ритма функционирования MA, включающее две формулы переходов:

A 3~r Pi А± V Pi А 3 î А^-т- Р2 ^1 V Рг А 2

и четыре секвенции:

Pi а ± V P i р2 а 3 (- л 3 ;

P i А> V P i Р2 A i V Р 2 А 2 V P i А 3 (—A i,

P iA 3 V Рг А 2 V Pi Р2 А 3 f- А 2 ;

P i Рг И ,

Реш ение. Имея в виду, что функции cto* как в ФП, так и в секвенции яв­ ляются элементами матричной схемы алгоритма, получаем последнюю следу­ ющим образом. Поскольку имеются пять операторов, MCA содержит четыре строки и четыре столбца. Вначале заполним строки MCA, соответствующие ФП для операторов А 0 и A 2t при этом получим

 

Аг

A2 A3 Ад

4>

Pi

F i

21 = Ai

Pa

(3.18)

Ai

P2

Ag

 

 

Рассмотрим теперь первую секвенцию (для оператора А*). Так как сек­ венция,* соответствует столбцу MCA, то то ней заполним столбец Аз матрицы и получим

 

 

А± А2 А3 Ад

 

 

А0

Pi

Pi

 

21 =

Аг

P2

Pi

( З Л О )

 

А2

Рг

 

 

A3

 

j*PlP2

 

Затем заполним столбец A i по второй секвенции. При этом заметим, что эле­ менты Got и <*21 уже заполнены по ФП для операторов А0 и А2. Поэтому к тем элементам а ц MCA, которые были заполнены ранее, логически (дизъюнктивно) прибавляем соответствующие логические функции из рассматриваемой секвен­ ции и при возможности упрощаем их. В результате получаем

 

 

 

Ai

f

А2

А3

Ад

 

 

А0

pi V Pi =

Pi

Pi

 

 

 

21 =

A l

Р1 Р2

1

 

P I

 

(3.20)

 

а2 Р2 V Рг = Р2 FL

 

 

 

 

А3

F i

 

 

 

P1 P2

 

Аналогично заполняем второй и четвертый столбец MCA по третьей и чс.г

вертой секвенциям соответственно. Окончательно получаем

 

 

AQ

Ai

A 2

A3

Ak

 

 

 

Pi

FI

T i

 

P P

 

 

AI

P P

 

 

21 =

1

2

 

 

1

2

(3.21)

A2

P2

P2

 

 

 

 

 

A3

F i

P1P2 P1P2

 

 

 

Из MCA (3.21) легко получить систему ФП:

 

А0

Pi АгV Pi А2;

 

 

 

 

, А1—>~р1 р2 Ai V Pi А3 V Р1Р2 Ah ;

 

А2 - ^ £ 2 АхV Р2 А2;

 

 

 

 

A3 —*■Pi Ai V pi р2 А2V Pi р2А3.

 

Как известно

[3], MCA и ФП обладают двумя следующими

свойствами:

 

 

 

 

 

 

1)

V

« y s l ;

2) аи а.п = 0, }ф1.

 

7=1 ,...k

Первое свойство указывает на полноту алгоритма, а второе — n;i его непротиворечивость. При этом формально считается, что алго

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

К сожалению, секвенции этими свойствами не обладают, поэто­ му по ним полноту и непротиворечивость» алгоритма проверить значительно сложнее. Вот почему желательно от секвенций перей­ ти к формулам Дьяченко или к MCA.

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

Поскольку при использовании секвенции проверка на полноту и непротиворечивость условий работы автомата затруднительна, проектировщик может не учесть каких-либо переходов (т. е. со­ ставить алгоритм функционирования не полно) или ошибочно включить в условия работы противоречивые переходы. Неполнота или (и) противоречивость алгоритма функционирования проектиру­ емого ДУ проверяется при составлении MCA или ФП.

Пример 3.8. Пусть проектировщик составил условия работы в виде сме­ шанного описания, состоящего из трех ФП

Ail

А 2 -+■ P i А г V P i A 3 ;

A3 '-*■ P i A i V P i A 4

и четырех секвенций

P1P2 A i V P i Ps A 4 h A 2 ;

P i P2 A i V P i A 2 V Pi~P3 A 4 \ - A 3 \

P i A 3 A ^ ;

P i A 4 (- А ^.

Решение. Составим матричную схему алгоритма

A i

А 2

А 3

А 4 А ^

Л1

Ai

21 = А

А3

Р 1 Р 2

Р 1 Р 2

P i

P i

P i

P i

л .

P 1 P 3

P i P s

P i

работы неполные,

Из рассмотрения

(3.22)

видно, что составленные условия

так как

не выполняется первое условие для строки оператора

A iy и противоре­

чивые, так как не выполняется второе условие для строки оператора Ак.

При выявлении неполноты и (или) противоречивости условий работы, т. е. составляемого алгоритма функционирования, послед-

3—91

65

(3-24)

После получения скорректированной MCA легко построить сис­ тему ФП.

Пример 3.9. Необходимо по MCA (3.23) построить систему ФП.

следующую

Р еш ени е. Функции а ц

отмечаем операторами

A j и

получаем

систему ФП:

 

 

 

 

 

' Л - Л ;

p i p 2A 3< ' p 2A i ;

 

 

 

Аг~т~Р1Р2 А 2 у

 

 

 

А 2 — ~PI A i У P i A 3;

 

 

 

 

А 2—■<•P i A i V p i

 

_

 

 

 

. Л — PI P3A 2V fiPs^a V

P l A k -

JICA

по ФП

[31.

Рассмотрим

теперь процесс построения

Пусть задана система ФП, полученная в примере 3.7. От ФП к ЛСА удобно переходить не непосредственно, а через так называе­ мые скобочные ФП (иначе скобочные формулы Дьяченко), которые получаются из ФП следующим образом. В каждой ФП обязатель­ но имеется такое одно ЛУ рj, которое входит во все ее члены. При этом говорят, что ФП приведена по ЛУ pj. Если таких ЛУ найдется несколько, то выбирают одно из них. В ФП выносят за скобки ЛУ без отрицания, т. е. pj, и с отрицанием, т. е. р,. Например, в ФП оператора А х получим А \ ~ ? ( p 2 A i \ / р 2 А к ) \ / p i A 3. Это и есть скобоч­ ная ФП. Для нашего примера получим следующую систему ско­ бочных ФП:

А 0 ~ 7 p i Ах \ / p i А 2,

A I ~ 7 p i (р 2 A i V р 2 А к) V P i A 3 ',

А 2~7р 2A i VP i

A,-? PI (Pt А2V Р23)V Pi Аг.

Из сравнения этой системы с исходной видно, что ФП для опе­ раторов Ао и А) остались без изменения. Если после вынесения за скобки переменной р;- в каждом из заключенных в скобки выраже­ ний формулы переходов содержатся два и более ЛУ, то процеду­ ру вынесения за скобки следует продолжить применительно к этим выражениям ФП. Например, пусть получена следующая ФП:

Pi (Рг Рз A i V Р2 Рз А 2 V Рз А ^ VPi А 3.

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

Pi (Рз (Рз A i V Рз А 2) V Рз А 4) V PI А з -

От скобочных ФП легко перейти к ЛСА. Вначале выписываем оператор Ао- После него выписываем ЛУ (со стрелкой), вынесен­ ное за первую скобку. В нашем случае это р\, т. е. получаем AoPif. Затем выписываем оператор, выполняемый после А0 при pi — \, т. е: получаем AoPifAi. После выписки оператора Aj (в нашем случае Ai) обращаемся к ФП оператора Л*, т. е. к ФП оператора Ai, и проделываем ту же процедуру. В результате получаем

А0PifAi Pi\p2\Av

з*

67v

Как видно из скобочной ФП оператора А и после р\ стоит не оператор, а начинается скобка. Поэтому за р\ выписывается р% а затем уже оператор Ai. Однако в том случае, когда оператор А, уже выписан, его не повторяют в ЛСА, а вводят тождественно ложное ЛУ со стрелкой, оканчивающейся перед имеющимся опера­ тором Ai. В нашем случае оператор А\ выписан ранее. Поэтому вместо (3.24) получаем

A0 P i^1 A1 p1 ]pi\(ù\1.

В том случае, когда таким образом прерывается выписывание нового оператора, необходимо обратиться к первому слева логи­ ческому условию в выписанной части ЛСА, у которого не отмечена номером стрелка. В нашем случае это логическое условие р\, стоя­ щее после оператора Ао. Стрелку у р\ пронумеруем и продолжим выписывание скобочной ФП оператора Ао (так как pi выполняется после Ао) при условии, что pi = Q. В результате получаем

A Alt2! 1 А дАдзМ 1! 2 Аг.

Продолжая процесс построения ЛСА таким же образом, по­ дучаем последовательно:

AP ifI1 Ai, рДр2М Ч 2А РгЩ1-,

A)Pi Î2 11 Ai pit3 A iM T A P sH 1! 3 A3\

A0 p i\-f

Ai pi\* AsM1 I2

A A iM T A AsM2;

A piA 1

A Pi Î3 p2t4

« t1! 2 A p2t <»tH8

A PitAsM2! 4 A ;

A Pi!2yxA Pit3 Psî4 <4T A p2 f2 O>IH 3

A Pit1 PsM V A

и окончательно

 

 

 

Я = A0 р^"-11 Ai л ! 3

4

®tH2 A Pa t2

®t*i8 A3 pi t1 p2tacof j4 Aft.

Пример 3.10. Пусть задана система ФП, полученная в примере 2.9. Необ­ ходимо построить ЛСА.

Реш ение. По заданным ФП получаем скобочные ФП:

'Ao— Ai ;

Ai — Р 2 (Pi AV Pi A) VA A:

-, A P i AV Pi A >

A -’-P I A V P I A

. A-^Pi (Ps^sV Ps A)V Pi A-

Затем строим ЛСА:

A0 Ах ра t ра U 1 A Pi î A3 Pi t A Pi t P3 t <■>t 1 ;

A Ai Pa t2 Pi U1 A2 p! î A Pi U2 A4 Pi î P3 t w î1 ;

AoAi p2 î*Pi îsi 1 A Pi U3 A3 Pi îl2 A4 Pi t p3 t © t1 !

A# i 4 Ai Pa î2Pi t3 il Aa px t4 i* A3 рг t i 2 A4 px t ps t tu t1 :

A i4 AjPa t*Pi t8 A, Pi t4 i 3 Aa px t4 i2 At P i f î <o t1 !

й

А 4‘ АРа l 2 P i î8 P A p x t4 i* A„ p x t4 i2 At Pi t*Pa Î «0 tx 1» A k .

И, наконец, получаем ЛСА

31 = A i i4 A i р г t2 P i t*i1 А 2 p i t41* А й P i t4 i2 At P i t8 p 3 1* © î11* Ah .

3.5. Объединение логических схем алгоритмов

Как было отмечено в разд. 3.3, для удобства составления ЛСА весь алгоритм функционирования дискретного устройства пред­ ставляют в виде алгоритма выполнения частных ЛСА, описываю­ щих отдельные этапы работы ДУ. Однако в каждую из таких част­ ных ЛСА могут входить одни и те же операторы и логические ус­ ловия. Поэтому, когда вместо символов частных ЛСА будут под­ ставлены соответствующие выражения из операторов и логических условий, общая ЛСА, описывающая весь алгоритм функционирова­ ния ДУ, может оказаться далеко не минимальной. При этом в та­ кой ЛСА могут повторяться не только логические условия, но и операторы.

Для минимизации ЛСА с повторяющимися операторами и логи­ ческими условиями может быть использован так называемый ме­ тод объединения логических схем алгоритмов. Рассмотрим пример объединения двух ЛСА. Общий случай одновременного объедине­ ния нескольких ЛСА описан в [3].

Пример 3.11. Пусть необходимо объединить две частные ЛСА, полученные в примере 3.6 [см. (3.9) и (3.10)]. При этом общая ЛСА имеет вид

31 = / 1

î 1 21, tût” l 1 21jj i 11

 

 

(3.25)

Реш ение. На основе логических схем (3.9) и (3.10) составим матричные схе­

мы алгоритма:

 

 

 

 

 

А»

A i

A 2 A 3

F i

 

Ah

 

 

 

1

 

 

 

Л1

 

1

 

 

 

31,=

а2

 

 

1

 

 

А3

 

 

1

 

 

 

Ft

 

 

PiPs

PlPz

P1

 

F}

PiPbPs

P4

 

РьРьЧ PlPbPs

 

 

A Q

 

 

 

1

 

 

Ai

 

 

 

 

 

 

A2

 

 

 

1

 

*и = A$

 

 

 

1

 

 

Ft

P IP l

P1

PIPl

 

 

Fj

 

 

P iP sV PAPS = PA

P4

Если в (3.25) подставить ЛСА (3.9) и (3.10), то получим ЛСА с 22 члена­ ми, включая Ао и не считая тождественно ложных логических условий о>,в ко­ торой каждый из операторов встречается дважды. Объединим ЛСА (3.9) и •(3.10) так, чтобы в объединенной логической системе алгоритма каждый из «операторов был бы выполнен только 1 рае.

Процесс построения объединенной ЛСА, в которой операторы не повторяются, состоит в следующем.

По матричным схемам алгоритма двух частных логических схем алгоритма составляется MCA объединенной ЛСА, каждый элемент которой

«и = V а\$\> >

где — определяющая функция, равная функции от логических условий Рг1= /(г ь ..., rm), принимающей единичное значение на на­ боре значений переменных ги ..., гт, который сопоставлен с ЛСА 21. Если оператор А* не входит в ЛСА 21;, то в функцию рг; соот­ ветствующий набор значений ги ..., гт войдет в качестве условного.

В нашем случае для всех операторов логической схемы алгорит­ ма 21исх PIi= r, а для всех операторов 2tBIpni= f, так как в 2ГХи 21ц входят все операторы.

Таким образом, получаем следующую объединенную матричную схему алгоритма:

 

Ai A2

A3 A4

Fi

Fj

Ah

A0

 

 

r

r

 

Ai

r \j7 = \

 

 

 

ai = Az

 

 

r

г

 

 

 

.

 

3

 

 

r

r

 

A

 

 

 

 

Fi

Pi Pir

~Pir

PiPzr\J PiP-,7

piPzr

Pir

F,

P*PbPir

P*r

pJ

piPbr4 РчРьРгТ PiT

От матричной схемы алгоритма 21 перейдем к системе формул перехода, после чего преобразуем последнюю в систему скобочных формул перехода, в которой объединены общие выражения:

'A0~7r F i \/ r F j ^ ^ r F t\/7Fj;

Ах-7 А2;

Л - 7 г Ft V гЕ; =(о|1;

Аз ~7 Fi‘,

F i" 7 Pip,~rAx V Pi? A3y Pifo r Ft \/ р хР ^ Ft\/ PiPsr Fj\J

VP ir A =Pi Ir (/>3?JVP3 F,) \J~r (p7Ai\J~Pi Fi)] V

V Â (r Ah\ j 7A3)^

F] Pi Рь Рг rAj V Pi ГА3 V pt r F,y p4 ръ rFj\fPtPtP*r ^N

p j A h = Pk {r [p5 (p2 A1V Pt Fj) y p6 F} \JrFi)V

. VMrAgVrAft).

Соседние файлы в папке книги