226 4. Syntezu układów sekwencyjnych wać z separowania całycli bloków i przeanalizować pary. Zamiast dodatkowego warunku,2,43, powstają wówczas dwa warunki,23 i,43, gdyż 2 I 4 przechodzą w. Łatwo można sprawdzić, że warunek oddzielenia,23 jest spełniony przez T,, a,43 przez v %, a zatem kodowanie zgodnie z tymi podziałami nie powoduje wyścigów krytycznych i prowadzi do najprostszej realizacji. Na podstawie powyższych rozważań i przykładów można zestawić następujący kolejność czynności przy kodowaniu: ) wypisać podziały wewnętrzne; 2) na ich podstawie utworzyć podziały prawidłowe; 3) wybrać takie podziały prawidłowe, aby ich iloczynem był podział zerowy; 4) sprawdzić czy wybrane podziały separują wszystkie bloki podziałów wewnętrznych; jeśli tak wykonać p. 9, jeśli nie wykonać p. 5; 5) wypisać nie spełnione warunki separacji bloków i zamienić je na warunki separacji par; 6) sprawdzić, czy wybrane podziały prawidłowe separują te pary; jeśli tak wykonać p. 9, jeśli nie wykonać p. 7; 7) sprawdzić, czy wprowadzenie przejść cyklicznych likwiduje warunki separacji; jeśli tak wprowadzić je i wykonać p. 9, jeśli nie wykonać p. 8; 8) wprowadzić dodatkowy podziat prawidłowy, realizujący warunki separacji i wykonać p, 9; 9) na podstawie wybranych podziałów prawidłowych utworzyć kod i zakodować tablice przejść i wyjść. Piąty punkt tego algorytmu wiąże się ze zwiększeniem liczby elementów pamięciowych i jest stosowany tylko w ostateczności, gdy zawiodą inne sposoby uniknięcia wyścigu krytycznego. Jeśli istnieje kilka wariantów rozwiązania, o wyborze mogą decydować pary podziałów lub podziały zewnętrzne, podobnie jak w układach synchronicznych. 4.3.4. REALIZACJA PAMIĘCI I FUNKCJE WZBUDZEŃ W układach asynchronicznych statycznych są stosowane dwie metody realizacji pamięci.
4.3. Uklttth' łisynchroniczitc stotyczitt' 227 Pierwsza metoda wykorzystuje zależność (44) A' +I = d(a', X') która, po zamianie stanów na sygnały {po zakodowaniu) można przedstawić w postaci rodziny równań Q't = &(&i>&'"»&i*i**i'i«) (* = i» 2.».,*) (44) 73 (Zw a b L \! i i d e U j i i ^_ r j j_ r y n_ t Rys. 438. Likwidowimie hazardu statycznego: u) zakodowana tablica przejść; b) schemat układu z hazardem statycznym; c) wykres czasowy układu z hazardem: d) schemat układu bez hazardu; e) inna postać schemutu bez, hazardu; f) układ przekaźnikowy; g) układ z wydzielonym przerzutnikiem
228 4. Syniezu układów sekwencyjnych Opóźnienie r (symbolizowane przez znak ') w układach asynchronicznych nie musi mieć ściśle określonej jak w synchronicznych wartości, wobec tego do jego realizacji nie są potrzebne żadne dodatkowa elementy i zależność (44) można uważać za równanie opisujące układ kombinacyjny o wejściach O; i Xj oraz wyjściach O';. Każdy fizyczny układ kombinacyjny wprowadza pewne opóźnienie i dlatego zachowanie różnej symboliki dla wejść O i wyjść O' jest uzasadnione, oznacza jednak tylkfi kolejność występowania, gdyż są to te same sygnały. Do wyrażenia związków (44) w postaci równań logicznych wystarczy zakodowana tablica przejść (najlepiej jako tablica Karnaugha), którą uważa się za typową tablicę układu kombinacyjntgo. O tym, żv jest to układ sekwencyjny świadczą jedynie sprzężenia zwrotne, powstałe po połączeniu wyjść O\ z wejściem Q t. Na przykład tablica przejść z rys. 432d, po przyjęciu O = A, przybiera postać jak na rys. 438a, skąd można otrzymać równania Q> ^ { a O' *ab+aq Z tablicy wyjść na rys. 432e uzyskuje się y = <>Q więc schemat'logiczny układu może mieć postać z rys. 438b. Występująca tu pętla sprzężenia zawrotnego realizuje obwód pamięci. Mimo logicznej poprawności uzyskanego schematu jego działanie będzie poprawne, jeśli spełnione będą dwa dodatkowe wymagania: w obwodzie objętym sprzężeniem zwrotnym występuje element czynny, opóźnienia wprowadzane przez elementy nic zmieniają zasad pracy układu. Pierwszy warunek wynika z konieczności wzmacniania sygnałów obiegających pętlę sprzężenia zwrotnego oraz separowania układów biernych; łatwo można sprawdzić, że objęcie sprzężeniem elementów diodowych nie daje żadnych możliwości zapamiętywania. Drugi warunek wiąże się z faktem, że w układach często jeden sygnał przesyłany jest kilkoma drogami, o różnej liczbie elementów, a więc i różnych opóźnieniach. W rezultacie na końcowy element działają jak
/..?. Uktady iisynchniniczne statyczne 229 gdyby różne sygnały, co może spowodować błędną pracę. Właśnie na rys. 438b występuje taka sytuacja, gdyż sygnał a wpływa na stan Q dwiema różnymi drogami (pogrubionymi), o różnej liczbie elementów. Fragment działania tego układu just przeanalizowany na rys. 438c. Po lewej stronie pokazano idealne przebiegi czasowe, nie uwzględniające opóźnień wnoszonych przez elementy, natomiast po prawej przebiegi realne, z dowolnie przyjętymi opóźnieniami. Z rysunku wynika, że na skutek opóźnienia wnoszonego przez negator (c), sygnał e nie zmieni się w tej samej chwili co sygnał ii, więc przy zmianie z a = na «= powstaną warunki pojawienia się =. Gdyby nie działało sprzężenie zwrotne, impuls O byłby krótkotrwały (przerywana linia na rys. 438c), ponieważ jednak sprzężenie istnieje sygnał Q podtrzymuje się w trwały sposób zniekształcając sygnał wyjściowy. Opisane zjawisko, polegające na pojawieniu się niewłaściwego stanu Q na skutek różnicy w czasie przesyłania sygnału po dwóch różnych drogach, nosi nazwę hazardu {ryzyka) statycznego. Hazard ten jest zawsze związany z obecnością w formule logicznej, opisującej O, argumentu z negacją i bez negacji, gdyż właśnie negator jest głównym powodem błędów. Dwa człony funkcji, w których występuje a i a można w tablicy Karnaugha poznać po dwóch grupach kratek, stykających się v.\i sobą na linii zmiany wartości a. Na rys. 438a linią ta jest brzeg tablicy linia styczności dwóch zakreślonych grup zer. Hazard oznacza, że już przestnt działać element realizujący jedną grupę, a jeszcze nie zaczął działać element realizujący drugą grupę (lub odwrotnie) i dlatego przejście między grupami jest niebezpieczne. Z analizy tej wynika uniwersalna metoda zwalczania hazardu statycznego, gdyż wystarczy na miejsce styczności dwóch grup w tablicy Karnaugha natożyć trzecią grupę, by przejęła ona obowiązki utrzymywania właściwej wartości O w przejściowym okresie, gdy nic działają dwie poprzednie grupy. Na rys, 438a odpowiednią grupę zaznaczono linią przerywaną, a wolna od hazardu funkcja O' ma postać Q> =(u+b)(q+a)(o + b) Realizacja tej funkcji z elementów NOR (czynnych) jest przedstnwiona na rys. 438d. Jeśli negacje argumentów są do dyspozycji, bardziej korzystna jest postać Q' = (
23 4. Sytttesa układów sekwencyjnych o schematach jak na rys. 438c (z elementów NOR) i 438f (z elementów stykowych). Opisana tu metoda budowania układu sekwencyjnego bez wydzielania elementów pamięci szczególnie dobrze nadaje się do syntezy układów z przekaźnikami i elementami pneumatycznymi (z systemów, w których elementy pamięci nic występują jako odrębny blok). W schematach z rys. 43S wykorzystywano funkcje O', wyrażoną jako iloczyn sum i otrzymaną z zer tablicy Kamaugha. W podobny sposób, łącząc w grupy jedynki, można uzyskać postać sumy iloczynów O' =ab+aq Również w tym przypadku utworzone grupy stykają się, więc do realizacji nadaje się wolna od hazardu postać m ab+aq+bo Poprzednio hazard groził pojawieniem się sygnału O tam, gdaie powinno być O ; obecnie brak zabezpieczenia przed hazardem spowodowałby pojawienie się sygnału O U tani, gdzie powinno być Q =. Dla odróżnienia pierwszy przypadek nazywany jest hazardem w zerach"', a drugi hazardetn w jedynkach". Zwalczenie jednego z nich automatycznie likwiduje drugi. Walka z hazardem statycznym przez dołączenie dodatkowych elementów, sprowadza się ogólnie do realizowania funkcji w postaci iloczynu wszystkich implicentów alho sumy wszystkich implikantów, zdarza się jednak, że niektóre przejścia między grupami Karnaugha nic są wykorzystywane w tablicy przejść i wtedy zabezpieczać ich nie trzeba. Inna metoda walki z hazardem polega na takim przyspieszaniu lub opóźnianiu reakcji poszczególnych elementów metodami układowymi, aby warunki powstania hazardu nie wystąpiły. Jest to metoda niekiedy tańsza, ale bardziej kłopotliwa i mniej uniwersalna. Jeśli sygnał w układzie jest przesyłany trzema lub więcej drogami o różnych opóźnieniach, to może wystąpić hazard dynamiczny, polegający na wygenerowaniu sekwencji zamiast, albo zamiast. Hazard taki może powstać tylko w układach faktoryzowanych o dużej liczbie poziomów, gdy jedna ze zmiennych wchodzi na trzy lub więcej różne poziomy. Jest to przypadek stosunkowo rzadko występujący, a jego złe skutki najprościej można zlikwidować przez zmianę struktury układu (zmniejszenie liczby poziomów).
4.3. Układy asyttchronicsne statyczna 23 Hazard statyczny i dynamiczny występuje właściwie w układzie kombinacyjnym i powinien być zwalczany we wszystkich układach kombinacyjnych, w których pojawienie się krótkotrwałych, nie przewidzianych programem, przerw lub impulsów na wyjściu jest szkodliwe. W szczególności jest to szkodliwe, gdy (jak w układach sekwencyjnych asynchronicznych) wyjścia układu kombinacyjnego bezpośrednio oddziaływują na elementy pamięci lub podtrzymują swój stan pętlami sprzężenia zwrotnego. Jeśli w układzie sekwencyjnym /, więcej niż jednym obwodem pamięciowym występują elementy o bardzo różnych czasach reakcji, istnieje niebezpieczeństwo powstania hazardu podstawowego. Polega on na tym, że jedne obwody pamięciowe uzależnione od jakiegoś,v działają szybciej niż inne, uzależnione od opóźnionego sygnału x. W rezultacie przy zmianie wartości *, powstaje inny stan wewnętrzny niż wynika to z tablicy przejść. Jeśli stan ten ma warunki stabilizacji, występuje trwały błąd w pracy układu. Hazard podstawowy może powstać, gdy czas reakcji negatora jest kilkakrotnie dłuższy niż czas reakcji innych elementów układu. W nowoczesnych układach negator ma identyczną budowę jak inne elementy (niekiedy nawet jest prostszy i szybszy), więc problem walki z hazardem podstawowym nie występuje. "W schemacie z rys. 438e można wydzielić dwa elementy NOR objęte pętlą sprzężenia, gdyż już wcześniej zostały stwierdzone interesujące właściwości takiego układu (rys. 25), polegające na możliwości przebywania w dwóch różnych stanach stabilnych, zmienianych sygnałami oznaczonymi przez aj{wpisywanie) i z (zerowanie). Wprowadzenie symbolu takiego przerzutnika wz zmienia schemat układu z rys. 438e do postaci z rys, 438g. Różnica w oznaczeniach nie jest istotna, ale nowy rysunek sugeruje możliwość wyznaczania wzbudzeń w i z zamiast poprzednio tworzonej funkcji O'. W ten sposób dochodzi się do drugiej metody realizacji pamięci w układach asynchronicznych statycznych, polegającej na wydzieleniu przerzutników toz. Ogólny schemat blokowy układu sekwencyjnego z rys. 4 w przypadku iikładów synchronicznych statycznych może więc przybrać jedną z dwóch postaci, przedstawionych na rys. 439. Rozwiązanie bez wydzielania bloku przerzutników jest bardziej ogólne i umożliwia uzyskanie większej liczby wariantów (niekiedy prostszych niż przy zastosowaniu przerzutników), natomiast roz
232 4. Synteza układów sekwacityjnyrh wiązanie z blokiem pamięci upraszcza wyznaczanie wzbudzeń i umożliwia łatwą realizację zarówno sygnałów O jak i O. Ze względu na te cechy, metodę wydzielania przerzutników stosuje się zwykle tylko w tych przypadkach, gdy niezbędne są zarówno sygnały O jak i O. Gdy dla realizacji funkcji y są potrzebne tylko negacje Q, można je łatwo uzyskać i w pierwszej metodzie, zmieniając kod w ramach tych samych podziałów. a) b) Q, UK2 '" Ul *2~ UK' UK 2 \ ł i i i Rys. 439. Struktury układów asynch ro nicznych statycznych: (u) bez bloku pamięci; b) z blokiem pamięci Wyjściami przerzutnika ws są sygnały O i O tylko w tym przypadku, gdy obydwa wejścia nie są wzbudzane równocześnie, tzn. gdv tog =. Warunek ten sprawia, że działanie przerzutnika wz staje się bardzo podobne do działania elementu SJi, a do wyznaczania wzbudzeń w i z można wykorzystać odpowiednie kolumny SR z tablic 4 i 42. Na przykład tablica przejść układu bramkowania generatora z rys. 438a może być za pomocą tahl. 4 przekształcona w tablicę wzbudzeń v. rys. 44a, 7. której otrzymuje się w = ah z ab Odpowiada to schematowi z rys. 438g. Podobnie jak w układach synchronicznych, przy bardziej złożonych tablicach jest korzystne stosowanie uniwersalnych tablic wzhuclzcń powstałych przez podkreślenie tych sygnałów w tablicy przejść, które ulegają zmianie. W ten sposób z rys. 438a powstaje rys. 44b. Sygnał w musi mieć wartość w tyclt kratkach tablicy, w których występuje i musi mieć wartość (I tam gdzie występuje jakiekolwiek ; kreski i oznaczają dowolną wartość ze. Sygnał z musi mieć wartość w tych kratkach, gdzie występuje oraz musi mieć wartość tam gdzie występuje jakiekolwiek ; kreski i oznaczają
4.3. Uhlfliiy asynclrroiticsne statyczne 233 dowolną wartość % (tabl. 42). Na podstawie tych reguł z rys. 44 wyznacza się wprost formuły d!a w i z, a i w bardziej złożonych tablicach określenie wzbudzeń nie jest trudne. Dr,,,D o r o o fi w, z oo! m Rys. 44. Tablice wzbudzeń układu bramkowania generatora Próba realizacji układu bramkowania generatora wg tablicy z rys. 432c prowadzi do rozwiązania identycznego jak w wersji Mealy'ego, natomiast odmienny układ Moore'a można uzyskać przez inne łączenie stanów przy minimalizacji (rys. 44a). Po zakodowaniu otrzymuje się tablicę jak na rys. 44b. Jeśli układ ma być budowany z elementów [oj 4..ab,2,4 3,52 Q m b) oo i, 2 Rys. 44. Projekt uklndu bramkowania goneratora (wersja Moore'a): a) minimalna tablica przejść; b) zakodowana tablica przejść; c) układ z wydzielonym przerzutnikiem
234 4. Synteza itkititlóu.' sekwencyjnych NOR lub NAND, do jego syntezy można wykorzystać metody z p 3.3: /l przy cnym zmienne wypisywane sq w kolejności (O), Q,. a, b). W pierwszym przekształceniu F (' 2 ) zrezygnowano z postaci minimalnej, aby J_ ^l"? \ t : 2 2 4 i A Ą y! r 3 d )a^! 2 u U w,ło @ t } w w o? ra 6 Ot w 2 cl) Rys. 442. Projekt układu statycznego: a) wykres czasowy; b) tablica pierwotna; c) tablica minimalna; d) tablica zakodowona; c) schemat układu z elementów NAND
J.J. Układy asyitcfiraiiicztie statyczne 235 upodobnić do siebie rdzenie. Prowadzi to do minimalnego schematu przedstawionego na rys. 44c. Negację sygnału wyjściowego można uzyskać w postaci wiązki (jak na tym rysunku), dodając negator na wyjściu układu, iilbo realizując, za pomocą pirzerzutnika. Z tablicy na rys. 44 b uzyskuje się wówczas w 2 Qi ab; z z = Ti a odpowiedni schemat zawiera jeden element więcej (rys. 44d) niż w przypadku wiązki. W układach kombinacyjnych, realizujących sygnały iv i iy, również mogą powstać hazardy, ale są one znacznie mniej prawdopodobne, gdyż funkcje w ij=r są dużo prostsze niż O', a ponadto hazard w układzie wzbudzenia rzadko jest niebezpieczny, gdyż krótkotrwała przerwa w działaniu wzbudzenia zwykle nie może już zmienić stanu przerzutnika. Niezależnie od tego czy przerzutnik jest zbudowany z elementów NOR, czy NAND, należy w i z wyznaczać w postaci sum iloczynów, gdyż sumy realizowane są w samym przerzutniku (rys. 25e i 26c). W przypadku elementów NAND zazwyczaj prościej jest określać w i ~%. Na przykład gdy trzeba zaprojektować układ wybierający pierwszy impuls Xi z serii impulsów dzielonych impulsem x 2 (rys. 442a), uzyskuje się tablicę pierwotną z rys. 442b. Założenie, że impulsy wejściowe nie mogą występować w tym samym czasie, bardzo upraszcza tablicę. Łatwo można zauważyć zgodność stanów i 4 oraz 2 i 3, co prowadzi do tablicy z rys. 442c, dla której: «(X ) = {; TX\ n(x 2 ) {,; 2} «(y) = {^; } Przyjęcie do kodowania podziałów wewnętrznych skotnplikuje funkcję wyjściową. Ponieważ tablica przejść jest silnie nieokreślona, można założyć, że funkcje przejść będą proste przy każdym kodzie, a wyrugowanie wyścigów krytycznych nie sprawi trudności. W takiej sytuacji każdy kod daje podobne rezultaty. Kodując tak jak na rys. 442d otrzymuje się albo Zl =X 2 2 2 = Q
236 4. Synteza układów Obydwie metody postępowania dają w tym przypadku takie same wyniki. Na schemacie z elementów NAND (rys. 442e) zachowano typowy rysunek przerzutnika i zanegowane sygnały wzbudzeń. Przy zmianie formuł O' na w, z (lub odwrotnie) niekiedy mogą być użyteczne podstawowe równania przerzutników (p. 2.3.2): z elementów NOR Q' (Q + zv)z oraz z elementów NAND O' Qz +w Gdy wz równania te są równoważne. Układy asynchroniczne statyczne projektuje się z najbardziej elementarnych składników układu logicznego, jakimi są elementy kombinacyjne. Inne stosowane poprzednio elementy, np. przerzutniki, mogą być uważane za układy złożone z tych elementarnych składników. Na przykład przerzutnik synchronizowany typu D może być uważany za układ asynchroniczny o dwóch wejściach D i c i jednym wyjściu y {pożądana negacja y). Z wykresu czasowego (rys, 443a) wyznacza się tablicę a) o o \ 2 3 i 5 6 i @ ' 7 a (7) 6 s ii 3 Ji 5 5 2 A < i f i) 62 33 f), Cl) 2 ) 3 i i 2 3 B u u t Rys. 443. Projektowanie realizacji statycznej przerzutnika typu D
4,4. Układy asynchtotiicstte dynamiczne 237 pierwotną (h). Stanów pseudorównoważnych nie ma, więc na wykresie skracania każdy stan występuje oddzielnie. W wierszach 3 i 6 tablicy pierwotnej występują stany nieokreślone, więc nie łącząc tych stanów z innymi można spodziewać się pewnego uproszczenia układu. Z minimalnej tablicy Moore'a (rys. 443d) otrzymuje się: _/ v \ Jn o T. fx\\ **/ V \ ~wi v \ _/«,\ = (ni. 7"3i n^aoj \")^, i t \J)} ^V U " '^ " 3/ ^[yt {U,o, ii^i ^=: J^]. re(x 2 ) = {; T3; (2)}, więc T, {^2; U} Z zakodowanej tablicy można uzyskać łatwo TT o" 7 co odpowiada strukturze stosowanej w przerzutnikach MasterSlave (rys. 223a). Jeśli układ ma być budowany z elementów NAND, to^ decydując się na realizację O 2 za pomocą przerzutnika, można z zakodowanej tablicy otrzymać: (l~) = n o \ = () () przy czym zmienne są wypisywane w kolejności: Oi, Q 2t A c F (w 2 ) oraz.f ^), realizowane jednym elementem NAND, wyznaczają w 2 oraz j 2, czyli potrzebne wzbudzenia przerzutnika. Ponieważ w obydwu tych wyrażeniach występuje Ć, dla ujednolicenia usunięto c z F (Q' ). Po zastosowaniu wiązki zamiast pojedynczego sygnału Q u otrzymuje się schemat (rys. 443f) podobny do schematu układu z elementów NOR (rys. 222a). W taki sam sposób można zaprojektować rozwiązania statyczne innych typowych przerzutników. 4.4. UKŁADY ASYNCHRONICZNE DYNAMICZNE 4.4.. PODSTAWOWE PROBLEMY SYNTEZY UKŁADÓW DANYMICZNYCH Charakterystyczną cechą układów asynchronicznych dynamicznych jest możliwość wykorzystania dynamicznych stanów wejść, tzn. informacji o charakterze zmian sygnałów wejściowych. Układ o n sygnafach