книги / Проектирование дискретных устройств автоматики
..pdfходимость выполнения одной из этих двух ЛСА, т. е. общая логи ческая схема должна иметь вид
31= | 15Г1г | 3ЗГ2^ |2513| 2со| 1 j*3l4cot1. |
(3.12) |
Из ЛСА (3.12) видно, что при г=0 выполняется ЛСА Щ, а при г=1—ЛСА«ц. Однако, поскольку в данном случае, в отличие от
предыдущего примера, режимы чередуются, в процессе |
работы |
|
MA необходимо менять значение логического условия г. Так, пос |
||
ле выполнения ЛСА Щ значение логического условия |
г |
должно |
измениться с нуля на единицу, а после выполнения |
ЛСА |
— с |
единицы на нуль. Очевидно, изменение значения г здесь уже не может производиться извне, а поэтому в ЛСА необходимо ввести специальные операторы, обычно обозначаемые через Fи которые и будут устанавливать необходимые значения логического условия г.
Пусть Fi устанавливает |
значение r=0, a Fи — значение |
г=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 |
После получения скорректированной 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 Р2.А3)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 |
AÎ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 P» î <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).