Návrh asynchronního automatu Domovská URL dokumentu: http://dce.felk.cvut.cz/lsy/cviceni/pdf/asyn_automat.pdf Obsah DEFINICE AUTOMATU... 2 KROK 1: ZADÁNÍ... 3 KROK 2: ANALÝZA ZADÁNÍ... 3 KROK 3: VYJÁDŘENÍ CHOVÁNÍ AUTOMATU V ORIENTOVANÉM GRAFU... 4 KROK 4: ZÁPIS AUTOMATU DO TABULKY PŘECHODŮ... 4 KROK 5: MINIMALIZACE STAVŮ... 5 KROK 6: KÓDOVÁNÍ STAVŮ... 5 KROK 7: ZAKÓDOVÁNÍ TABULKY PŘECHODŮ... 7 KROK 8: VOLBA KLOPNÝCH OBVODŮ... 8 KROK 9: MAPY VÝSTUPŮ KLOPNÝCH OBVODŮ... 9 KROK 10: SCHÉMA ASYNCHRONNÍHO OBVODU... 10 LOGO A ASYNCHRONNÍ AUTOMAT... 11 1
Definice automatu Vstupy automatu Výstupy automatu A B bit q 1 bit q 2 Kombinační obvod (KO1) Následující stav Q n+1 bit q 1 * bit q2 * Q n Současný stav Q n KO2 Y Výpočet nového stavu Paměť stavu Potřebujeme-li rychlou odezvu automatu, lze paměť stavu realizovat pomocí asynchronních obvodů RS nebo non-rs. V tom případě se musí bezpodmínečně zaručit fundamentální režim činnosti KO1. Asynchronní automat reaguje okamžitě po změně vstupu, na rozdíl od synchronního automatu, který má paměť realizovanou synchronními klopnými obvody JK či D a čeká se změnou na externí hodinový signál. 2
Krok 1: Zadání Navrhněte automat, jehož výstup Y bude signalizovat "1" (logickou jedničkou), že vstup A přešel do "1" dříve než vstup B. Krok 2: Analýza zadání Návrh začínáme vždy podrobnou analýzou zadání. Jaké možné varianty připouští slovní formulace? Co zadavatel vlastně požaduje? Které možné průběhy mohou nastat? A B Y 1 Y 2 Y t Obrázek ukazuje několik možných průběhů, vyhovujících požadavkům, přičemž zadavatel si přál poslední průběh Y. Kdo se nezeptal... 3
Krok 3: Vyjádření chování automatu v orientovaném grafu. Krok 4: Zápis automatu do tabulky přechodů 4
Krok 5: Minimalizace stavů Krok 6: Kódování stavů Další postup závisí na typu návrhu. a) Pokud navrhujeme synchronní automat pomocí synchronních klopných obvodů (JK anebo D) s pomocným externím hodinovým signálem, potom můžeme stavům přiřadit jejich binární kódy zcela libovolně. b) Navrhujeme-li ale asynchronní automat, například asynchronní kódový zámek, pak musíme zajistit, aby logický obvod pracoval ve fundamentálním režimu, tj. na jeho vstupech se měnil v daném čase výhradně jediný signál. Vzhledem k tomu, že kódy stavů se zavádějí díky zpětné vazbě na vstupy, je nutné, aby se měnil právě jeden bit při přechodu mezi stavy. Podmínku splníme, budou-li kódy stavů sousedit v Karnaughově mapě. 5
Řešíme-li jako asynchronní automat (úloha b), pak postupujeme takto: Vytvoříme pomocnou tabulku, která popisuje vztahy sousednosti mezi stavy, tj. existenci přechodu z jednoho stavu do druhého, jednosměrně či obousměrně. Na jejím základě zkusíme umístit stavy. Pokud úloha nemá řešení, nezbývá než modifikovat přechodovou tabulku. K tomu si můžeme vybrat metodu: α) Lze přidat do přechodové tabulky další stav β) Lze přecházet před jiný stav, využít již existujícího skoku anebo dodefinovat neurčitý stav X. 6
Krok 7: Zakódování tabulky přechodů 7
Krok 8: Volba klopných obvodů 8
Krok 9: Mapy výstupů klopných obvodů 9
Krok 10: Schéma asynchronního obvodu 10
LOGO a asynchronní automat LOGO pouze simuluje chování logiky. I1 I I2 RS Q I Zapojení tohoto RS obvodu emuluje v nekonečném cyklu, Čtení vstupů Zápis výstupů Výpočet výstupů kterému odpovídá zhruba náhradní schéma: I1 I D Q I2 I D Q I1+Q.I2 Q D Q Neperiodický scan Všimněte si, že hodinový signál slouží výhradně jako pomocný hypotetický vstup. Signály I1 a I2 nejsou s ním synchronní - jejich průběhy nezávisí na hodinách. Při návrhu automatu pro LOGO není potřeba dodržovat fundamentální režim, jelikož ve skutečnosti jde o synchronní automat, tj. stavy lze kódovat dle potřeby a nemusí se ošetřovat hazardy. 11
Cykly v zapojení lze uzavřít jedině přes paměťovou buňku, výstup nebo flag. & & Chybně, cyklus ve výpočtu! & & Q Správně Upravené zapojení předchozího asynchronního automatu 12