KURS Cyfrowe systemy asynchroniczne (1)



Podobne dokumenty
Sławomir Kulesza. Projektowanie automatów asynchronicznych

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Układy asynchroniczne

Cyfrowe układy scalone c.d. funkcje

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Układy asynchroniczne

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014

dwójkę liczącą Licznikiem Podział liczników:

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 212

Asynchroniczne statyczne układy sekwencyjne

Sławomir Kulesza. Projektowanie automatów synchronicznych

Automat skończony FSM Finite State Machine

Wstęp do Techniki Cyfrowej... Układy kombinacyjne

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Podział układów cyfrowych. rkijanka

Synteza układów kombinacyjnych

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

Podstawy Techniki Cyfrowej Teoria automatów

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

Podstawy elektroniki cz. 2 Wykład 2

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

LICZNIKI PODZIAŁ I PARAMETRY

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Programowalne układy logiczne

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

Proste układy sekwencyjne

Statyczne badanie przerzutników - ćwiczenie 3

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Układy sekwencyjne. 1. Czas trwania: 6h

Logiczne układy bistabilne przerzutniki.

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

Układy zegarowe w systemie mikroprocesorowym

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

ĆWICZENIE 15 BADANIE WZMACNIACZY MOCY MAŁEJ CZĘSTOTLIWOŚCI

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Badanie działania bramki NAND wykonanej w technologii TTL oraz układów zbudowanych w oparciu o tę bramkę.

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie

Układy sekwencyjne. 1. Czas trwania: 6h

BADANIE PRZERZUTNIKÓW ASTABILNEGO, MONOSTABILNEGO I BISTABILNEGO

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

S P R A W O Z D A N I E T e m a t: Projektowanie układów realizujących złożone funkcje logiczne.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

Przerzutnik (z ang. flip-flop) jest to podstawowy element pamiętający każdego układu

LABORATORIUM TECHNIKI IMPULSOWEJ I CYFROWEJ (studia zaoczne) Układy uzależnień czasowych 74121, 74123

Mechatronika i inteligentne systemy produkcyjne. Aktory

Sterowniki Programowalne (SP)

zmiana stanu pamięci następuje bezpośrednio (w dowolnej chwili czasu) pod wpływem zmiany stanu wejść,

Bramki TTL i CMOS 7400, 74S00, 74HC00, 74HCT00, 7403, 74132

Tranzystor JFET i MOSFET zas. działania

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Automatyzacja i robotyzacja procesów produkcyjnych

Tranzystorowe wzmacniacze OE OB OC. na tranzystorach bipolarnych

Laboratorium przedmiotu Technika Cyfrowa

Liniowe układy scalone w technice cyfrowej

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Obiekt. Obiekt sterowania obiekt, który realizuje proces (zaplanowany).

Podstawowe układy cyfrowe

PL B1. Sposób i układ do modyfikacji widma sygnału ultraszerokopasmowego radia impulsowego. POLITECHNIKA GDAŃSKA, Gdańsk, PL

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

LABORATORIUM ELEKTRONIKI. Jakub Kaźmierczak. 2.1 Sekwencyjne układy pamiętające

Ćwiczenie Technika Mikroprocesorowa komputery 001 Układy sekwencyjne cz. 1

Architektura komputerów Wykład 2

Podstawy Automatyki. Wykład 13 - Wprowadzenie do układów sekwencyjnych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

Przerzutniki RS i JK-MS lab. 04 Układy sekwencyjne cz. 1

Napęd elektryczny. Główną funkcją jest sterowane przetwarzanie energii elektrycznej na mechaniczną i odwrotnie

Podstawy Techniki Cyfrowej Liczniki scalone

CYFROWE UKŁADY SCALONE STOSOWANE W AUTOMATYCE

Metody optymalizacji soft-procesorów NIOS

b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.

Ćwiczenie nr 1 Temat: Ćwiczenie wprowadzające w problematykę laboratorium.

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

Statyczne i dynamiczne badanie przerzutników - ćwiczenie 2

Krótkie przypomnienie

Dobór współczynnika modulacji częstotliwości

Architektura potokowa RISC

Ćwiczenie ZINTEGROWANE SYSTEMY CYFROWE. Pakiet edukacyjny DefSim Personal. Analiza prądowa IDDQ

12. Zasilacze. standardy sieci niskiego napięcia tj. sieci dostarczającej energię do odbiorców indywidualnych

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne

Ćwiczenie 29 Temat: Układy koderów i dekoderów. Cel ćwiczenia

Laboratorium Analogowych Układów Elektronicznych Laboratorium 6

UKŁADY MIKROPROGRAMOWALNE

UKŁADY CYFROWE. Układ kombinacyjny

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

Przetworniki A/C. Ryszard J. Barczyński, Materiały dydaktyczne do użytku wewnętrznego

Ćwiczenie 1 Program Electronics Workbench

Lekcja 19. Temat: Wzmacniacze pośrednich częstotliwości.

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Transkrypt:

Cyfrowe systemy asynchroniczne () Większość współcześnie projektowanych systemów cyfrowych opiera się na dwóch zasadniczych: wszystkie sygnały są binarne oraz czas ma naturę dyskretną określoną przez kolejne takty sygnału zegarowego. Odrzucenie drugiego z założeń prowadzi systemów określanych jako asynchroniczne. Przyjęcie założenia o dyskretnej naturze czasu znakomicie upraszcza proces projektowania w przypadku systemów synchronicznych,. Między innymi ignorowane mogą być takie zjawiska jak hazard w układach kombinacyjnych oraz wyścigi w układach sekwencyjnych. Zjawisk tych nie można już pominąć podczas projektowania systemów. Zasadniczo systemy asynchroniczne, to takie w których nie występuje globalny sygnał zegarowy, synchronizujący ich działanie. Zalety systemów Systemy asynchroniczne charakteryzują się pewnymi zaletami w stosunku do systemów synchronicznych. Do zalet tych można zaliczyć [, 2]:. Nie występują problemy z dystrybucją globalnego sygnału zegarowego. Coraz większa złożoność systemów cyfrowych wymusza zwrócenie większej uwagi projektantów na zagadnienia dystrybucji sygnału zegarowego. Aktywne zbocze sygnału zegarowego powinno występować w tym samym czasie w znacznie oddalonych geometrycznie fragmentach układu scalonego (clock skew). W układach, wobec braku globalnego sygnału zegarowego, problemy te nie występują. 2. Większa szybkość działania. Szybkość działania systemów synchronicznych jest ograniczona szybkością działania najwolniejszego elementu w systemie (worst case performance). W układach wiele podsystemów może pracować współbieżnie i wówczas wydajność jest ograniczona zależnościami czasowymi pomiędzy przepływem danych i sygnałów sterujących. Szybkość działania systemów może zmieniać się dynamicznie (poszczególne podsystemy mogą wykryć moment czasu w którym wykonywanie operacji zostanie zakończone) i dlatego determinowana jest poprzez element o przeciętnym czasie wykonania operacji (average case performance). 3. Możliwość adaptacji do zmiennych warunków pracy. Opóźnienia wnoszone przez poszczególne elementy logiczne układu scalonego mogą się zmieniać wraz ze zmianą parametrów procesu produkcyjnego, temperatury czy też napięcia zasilania układu. Projektant układów synchronicznych musi brać pod uwagę kombinację najgorszego przypadku spośród wymienionych czynników, dobierając odpowiednio częstotliwość taktowania całego systemu. Ze względu na adaptacyjną naturę układów (wykrywanie momentu zakończenia wykonywania operacji) układy asynchroniczne będą pracować poprawnie odpowiednio zwiększając lub zmniejszając szybkość przetwarzania, niezależnie od zmian wnoszonych przez czynniki zewnętrzne. 4. Mniejszy pobór mocy. W przypadku układów nie ma potrzeby stosowania dodatkowych drajwerów i buforów dla sygnału zegarowego, redukujących zjawisko różnicy faz (clock skew). W układach synchronicznych nawet w danej chwili nie używane komponenty są cały czas taktowane sygnałem zegarowym powodując niepotrzebne straty mocy. W przypadku współczesnych wysokowydajnych mikroprocesorów synchronicznych szacuje się, że moc tracona na dystrybucję sygnału zegarowego stanowi nawet połowę mocy pobieranej przez cały układ (typowa wartość to około 3%). W przypadku układów moc tracona jest tylko w komponentach, które są w danej chwili aktywne (realizują określone operacje). 5. Mniejsza emisja zakłóceń elektromagnetycznych. Aktywność systemów synchronicznych skoncentrowana jest wokół pewnej ściśle określonej częstotliwości. Niemal cała energia wypromieniowanych zakłóceń elektromagnetycznych skupiona jest w wąskim paśmie wokół częstotliwości sygnału zegarowego oraz jej harmonicznych. Działanie poszczególnych podsystemów w układach jest nieskorelowane, dlatego widmo zakłóceń ma charakter znacznie bardziej rozproszony. Mniejsza jest również maksymalna amplituda tych zakłóceń. 6. Większe możliwości modularyzacji systemu. Poszczególne komponenty układów, a także całe systemy mogą być ze sobą bezpośrednio łączone bez konieczności dodatkowej synchronizacji, tak jak ma to miejsce w przypadku systemów synchronicznych taktowanych sygnałami zegarowymi o różnymi częstotliwościach. 7. Skuteczne działanie elementów realizujących wzajemne wykluczenie oraz praca z zewnętrznymi sygnałami wejściowymi. Elementy, które gwarantują poprawną realizację wzajemnego wykluczenia (mutual exclusion) niezależnych sygnałów oraz synchronizacja z sygnałem zegarowym zewnętrznych sygnałów wejściowych są podatne na występowanie zjawiska metastabilności. Stan metastabilny charakteryzuje się m. in. wydłużeniem, w ogólnym przypadku nieokreślonym, czasu odpowiedzi układu. W systemach synchronicznych wszystkie elementy systemu powinny charakteryzować się ograniczonymi opóźnieniami. Dlatego też istnieje duże prawdopodobieństwo, że synchroniczna realizacja elementów wzajemnego wykluczenia będzie prowadziła do błędnego działania układu. Z kolei systemy asynchroniczne są w stanie oczekiwać arbitralnie długi czas na ukończenie operacji swoich podsystemów, zapewniając tym samym poprawną realizację elementów wzajemnego wykluczenia. Dodatkowo, ponieważ w systemach nie występuje sygnał zegarowy z którym muszą być synchronizowane inne sygnały, systemy te charakteryzują się znacznie lepszą akomodacją zewnętrznych sygnałów wejściowych, które z natury są asynchroniczne. 26 ELEKRONIKA PRAKCZNA /2

Cyfrowe systemy asynchroniczne Słabe strony systemów w systemach synchronicznych również są stosowane pewne mechanizmy pozwalające np. na zaprzestanie taktowania niewykorzystywanych w danej chwili komponentów, co również prowadzi do redukcji pobieranej energii. 2. Wydajność systemów jest niedeterministyczna. Szybkość działania układów może zmieniać się dynamicznie zależnie od warunków środowiska pracy a nawet samych danych. Oznacza to, że wydajność systemu, rozumiana jako szybkość pracy, nie jest znana z góry jest niedeterministyczna. W przypadku niektórych zastosowań nie ma to znaczenia. Ogólnie jednak właściwość taka nie jest pożądana. Na przykład układy asynchroniczne nie nadawałyby się do implementacji systemów czasu rzeczywistego o twardych wymaganiach czasowych (hard real time systems), dla których niezwykle istotna jest deterministyczna znajomość czasu odpowiedzi systemu. 3. Uruchamianie i testowanie systemów jest bardzo trudne. Uruchamiając system synchroniczny można dowolnie zmniejszać (zmieniać) częstotliwość sygnału taktującego sprawdzając jaki to ma wpływ na działanie układu i w ten sposób stosunkowo łatwo identyfikować element systemu, który zawodzi. Układy asynchroniczne muszą być uruchamiane przy pełnej prędkości działania. Wykrycie elementu, który działa nieprawidłowo wymaga niemal detektywistycznych umiejętności, wnioskowania na podstawie zachowanie systemu itp. Również testowanie układów za pomocą testerów, które z natury przeznaczone są do testowania systemów synchronicznych, nie jest łatwe i wymaga pewnych specjalnych zabiegów. Do wymienionych wyżej słabych stron systemów można jeszcze dodać to, że ze względu na konieczność Mimo wymienionych wyżej zalet systemów, jak również faktu, iż zainteresowanie nimi datuje się już od połowy lat 5-tych ubiegłego wieku, to jednak wciąż systemy te nadzwyczaj rzadko są realizowane w praktycznych aplikacjach. Istotnym problemem utrudniającym stosowanie układów na szeroką skalę, jest niedostatek efektywnych metodologii projektowania i mała dostępność narzędzi wspomagających proces projektowania układów [2]. Chociaż ostatnio pojawiły się dość skuteczne rozwiązania firmy Handshake Solution [3], to jednak w odniesieniu do systemów podnoszone są też inne zarzuty, takie jak wymienione niżej [4]:. Mniejsze zużycie energii nie jest ewidentne. Co prawda w systemach nie istnieje globalny sygnał zegarowy, którego dystrybucja prowadzi do znacznych strat mocy, jednak w zamian tworzone są lokalne sygnały żądania/ potwierdzenia wykonania operacji, które są propagowane pomiędzy poszczególnymi stopniami/komponentami systemu. Ścieżki doprowadzeniowe tych sygnałów stają się krytyczne z punktu widzenia wydajności systemu, stanowią większe obciążenie o charakterze pojemnościowym oraz ich aktywność jest taka sama jak pozostałej logiki. W systemach występuje więc przesunięcie zużycia energii na układy logiczne związane z obsługą tych sygnałów. en argument nie wydaje się jednak być trafnym w każdym przypadku. Na przykład największą zaletą zaprojektowanych przez Handshake Solution mikroprocesorów jest właśnie niskie zużycie energii (także mała emisja zakłóceń elektromagnetycznych). Gdy mikroprocesor nie wykonuje żadnych operacji, moc pobierana jest pomijalnie mała. Należy jednak zauważyć, że R E ELEKRONIKA PRAKCZNA /2 K L A eliminacji zjawisk takich jak hazard oraz implementacji logiki odpowiedzialnej za generowanie sygnałów żądania/potwierdzenia wykonania operacji - systemy te często są znacznie bardziej złożone (zajmują większą powierzchnię krzemu) od analogicznych systemów realizowanych w sposób synchroniczny. Również wiedza na temat zagadnień projektowania układów nie jest zbyt rozpowszechniona. Klasyfikacja układów Układy asynchroniczne można podzielić na trzy kategorie: klasyczne układy typu Huffmana, układy z samotaktowaniem (selfclocked), układy ze współpracą lokalną (selftimed). Inny podział układów uwzględnia założenia związane z przyjętym modelem czasowym. Według tego podziału możemy wyróżnić [2]: układy bazujące na modelu ograniczonych opóźnień (bounded delay), układy mikropotokowe (micropipeline), układy niewrażliwe na opóźnienia (delay-insensitive), układy niezależne od szybkości (speedindepended). Układy asynchroniczne, a ściślej asynchroniczne automaty sekwencyjne, można też sklasyfikować ze względu na pewne ograniczenia związane ze zmianą stanu wejść. Wyróżnia się układy SIC o zmianie stanu jednego wejścia (single-input change), układy MIC o jednoczesnej zmianie stanu wielu wejść (multiple-input change) oraz UIC układy o zmianie stanów wejścia bez ograniczeń (unrestricted-input change). W układach SIC tylko jedno wejście układu może zmieniać się w danej chwili czasu. Następne zmiany stanu wejścia muszą być przedzielone pewnym minimalnym interwałem czasowym d. W układach MIC wiele sygnałów wejściowych może zmieniać się w określonym przedziale czasowym o długość M A 27

cd ab Rysunek. Przykładowa funkcja logiczna z hazardem funkcyjnym n i j g h p d. e zmiany traktowane są jako symultaniczne. Następne zmiany stanu wejść możliwe są po upływie czasu d 2. W przypadku układów UIC dowolne wejście układu może zmieniać się w dowolnym czasie, pod warunkiem, że żaden sygnał wejściowy nie zmieni się dwa razy w ciągu jakiegokolwiek okresu o długości d. Hazard w układach kombinacyjnych Spora część problemów związanych z projektowaniem systemów koncentruje się wokół zjawiska hazardu lub pewnych niepożądanych impulsów mogących pojawiać się na wyjściu układów m k logicznych. W systemach synchronicznych wystąpienie krótkotrwałych, niepożądanych impulsów jest dopuszczalne z wyjątkiem chwili czasu w pobliżu aktywnego zbocza zegara. Wpływ tych impulsów na działanie systemu synchronicznego można wyeliminować poprzez odpowiedni dobór okresu sygnału zegarowego. W systemach nie występuje globalny sygnał zegarowy. System taki powinien odpowiedzieć na zmianę stanu wejść w dowolnej chwili czasu. Dlatego też wszelkie niepożądane impulsy, będące wynikiem np. zjawiska hazardu, prowadzą do nieprawidłowej pracy systemu. Przypomnijmy krótko podstawowe aspekty związane z występowaniem zjawiska hazardu w układach kombinacyjnych oraz sekwencyjnych. Dla układów kombinacyjnych, oprócz hazardu logicznego, definiuje się również hazard funkcyjny (function hazard) [5]. Dowolna funkcja boole owska f więcej niż jednej zmiennej, której wartość nie zmienia się monotonicznie (tzn. tylko raz z na lub z na ) podczas zmiany stanu zmiennych wejściowych, zawiera hazard funkcyjny dla tej zmiany stanu wejść. Funkcja f zawiera statyczny hazard funkcyjny przy zmianie stanu zmiennych wejściowych ze stanu A do stanu C, gdy f(a)=f(c) i istnieje przynajmniej jeden stan wejścia Be[A,C], czyli taki stan, który muszą przyjąć zmienne wejściowe przechodząc ze stanu A do stanu C, przy założeniu zmiany tylko jednej zmiennej wejściowej (bitu) w danej chwili, dla którego stanu f(b) f(a). Funkcja f zawiera dynamiczny hazard funkcyjny przy zmianie stanu zmiennych wejściowych ze stanu A do stanu D, gdy f(a) f(d) i istnieje przynajmniej jedna para stanów B i C zmiennych wejściowych, takich że Be[A,D] i Ce[B,D], dla których f(b)=f(d) i f(a)=f(c). Rozważmy przykładową funkcję logiczną f zdefiniowaną za pomocą tablicy Karnaugha na rysunku. Funkcja ta zawiera statyczny hazard funkcyjny dla zmiany wejść ze stanu i do stanu k: f(i)=f(k), f(j)= i je[i,k]. Funkcja f zawiera z kolei dynamiczny hazard funkcyjny dla zmiany wejść ze stanu g do stanu j: f(g)=, f(j)=, he[g,j], ie[h,j], f(g)=f(i)=, f(h)=f(j)=. Zmiana wejść funkcji f ze stanu k do m jest wolna od statycznego hazardu funkcyjnego, a zmiana wejść ze stanu n do stanu p jest wolna od dynamicznego hazardu funkcyjnego. Hazard funkcyjny jest właściwością funkcji logicznej i nie może być wyeliminowany poprzez odpowiedni dobór opóźnień lub modyfikację sieci logicznej. Jeżeli funkcja f nie zawiera hazardu funkcyjnego przy zmianie stanów wejściowych, to realizacja R E K L A M A 28 ELEKRONIKA PRAKCZNA /2

Cyfrowe systemy asynchroniczne x = y x3 = y Rysunek 2. Układ kombinacyjny z hazardem statycznym w [6] x y x = y y4 x3 = y4 Rysunek 3. Układ kombinacyjny z hazardem dynamicznym [6] wego z hazardem dynamicznym. Dla podanych wykresów czasowych przyjęto założenie, że każda z bramek logicznych wnosi opóźnienie jednostkowe. Istnieje wiele opracowanych metod eliminacji zjawiska hazardu. Dla układu z rysunku 2 aby wyeliminować hazard statyczny, pierwotną funkcję należy zmodyfikować dodając człon konsensusu, czyli:. W tablicy Karnaugha odpowiada to dodatkowemu połączeniu sąsiadujących grup implikantów. Metoda ta jest jednak skuteczna tylko w przypadku, gdy w danej chwili zmienia się sygnał tylko jednej zmiennej wejściowej. W przypadku przeciwnym układ może nadal zawierać hazard. Układ z rysunku 3 można z kolei zminimalizować do postaci eliminując tym samym hazard dynamiczny. Wówczas jednak, przy jednoczesnej zmianie i z na, wystąpi hazard statyczny w. Wtedy pozostaje jedynie ograniczenie liczby zmiennych wejściowych, które mogą zmieniać się w danej chwili czasu, tylko do jednej (układy typu SIC). Jednakże wymienione wyżej metody eliminacji hazardu odnoszą się do realizacji układów cyfrowych na poziomie bramek logicznych i nie nadają się bezpośrednio do zastosowania w układach FPGA. Jeżeli dana funkcja logiczna może być zaimplementowana za pomocą pojedynczej tablicy LU (w układach FPGA opartych na tablicach LU), wówczas implementacja tej funkcji jest wolna od hazardu. Jednak w przypadku realizacji funkcji logicznej zajmującej więcej niż jedną tablicę LU hazard nadal może wystąpić. Celem uniknięcia tego hazardu na ogół konieczna jest ingerencja projektanta w sposób działania narzędzi rozmieszczania i planowania połączeń, np. poprzez wykorzystatej funkcji może wciąż zawierać hazard logiczny ze względu na opóźnienia powodowane przez rzeczywiste elementy wykorzystane do implementacji funkcji. Hazardem logicznym w układach kombinacyjnych określa się krótkie zakłócenia szpilkowe, pojawiające się na wyjściu układu podczas procesów przejściowych [6]. Układ kombinacyjny zawiera statyczny hazard logiczny dla funkcji f, przy zmianie stanu zmiennych wejściowych ze stanu A do stanu B, gdy f(a)=f(b) i następuje chwilowa zmiana stanu wyjścia układu podczas wspomnianej zmiany stanów wejściowych. Układ kombinacyjny zawiera dynamiczny hazard logiczny dla funkcji f, przy zmianie stanu zmiennych wejściowych ze stanu A do stanu B, gdy f(a) f(b) i wyjście układu nie zmienia się monotonicznie podczas trwania opisanej zmiany stanów wejściowych. Hazard na wyjściu układu logicznego może pojawić, gdy [6]: choćby jeden sygnał wejściowy dochodzi do wyjścia drogami o różnych opóźnieniach, przy jednoczesnej zmianie dwóch lub więcej sygnałów wejściowych przychodzą one do wyjścia drogami o różnych opóźnieniach, układ zapewnia dla wszystkich sygnałów wejściowych drogi o jednakowych opóźnieniach, lecz sygnały te zmieniają swe stany logiczne niejednocześnie (hazard funkcyjny). Jeżeli sieć logiczna zawiera hazard funkcyjny dla danej zmiany stanu wejść, to nie może jednocześnie zawierać hazardu logicznego dla tej zmiany wejść. Na rysunku 2 przedstawiono przykładowy układ z hazardem statycznym w, a na rysunku 3 przykład układu wielopoziomo- ELEKRONIKA PRAKCZNA /2 29

x G Rysunek 4. Prosty układ sekwencyjny z hazardem G3 G2 nie makr sprzętowych, umieszczenie odpowiednich dyrektyw rozmieszczania względnego w pliku wymuszeń projektanta itp. Hazard w układach sekwencyjnych Hazard w układach sekwencyjnych, spowodowany propagacją poprzez pętlę sprzężenia zwrotnego nowej wartości sygnału jeszcze przed zakończeniem propagacji sygnału wejściowego do wszystkich punktów wewnętrznych układu, określa się jako hazard podstawowy (essential hazard) [5]. Jeżeli w wyniku wystąpienia hazardu podstawowego na wyjściu układu pojawi się niepożądany impuls (glitch) wówczas taki hazard nazywa się przejściowym hazardem podstawowym (transient essential hazard). Jeżeli zaś w rezultacie pojawienia się hazardu podstawowego układ przejdzie do niewłaściwego stanu stabilnego, wówczas taki hazard określa się jako podstawowy hazard stanu stabilnego (steady-state essential hazard). G4 Hazard podstawowy stanowi istotną cechę konkretnej implementacji układu. Potencjalnie hazard ten może być wykryty poprzez analizę tablicy przejść, jeśli pojedyncza zmiana sygnału wejściowego doprowadza opisywany układ do innego stanu końcowego, niż w przypadku, w którym wartość rozpatrywanego sygnału zmieniłaby się trzy razy. Jedynym sposobem uniknięcia hazardu zasadniczego jest zapewnienie, że sygnały zmiennych stanu nie mogą być podawane zwrotnie do układu przed rozpatrywaną zmianą sygnału wejściowego. Można to osiągnąć poprzez staranne rozmieszczenie topograficzne elementów cyfrowych, jak również poprzez celowe wprowadzenie dodatkowych opóźnień sygnałów w ścieżkach zmiennych stanu. Przykład prostego asynchronicznego układu sekwencyjnego (typu Huffmana) zawierającego hazard podstawowy przedstawiono na rysunku 4. Układ realizuje funkcję ( oznacza stan następny wyjścia y). Rozważmy przejście układu ze stanu stabilnego do stanu zmiana stanu wejścia z na. Na skutek dodatkowego opóźnienia wnoszonego przez inwerter G sterujący bramkę G2 i propagacji nowej wartości sygnału przez pętlę sprzężenia zwrotnego, układ znajdzie się w stanie stabilnym (,,), zamiast zgodnie z równaniem, w stanie (,,). Hazard w układach sekwencyjnych może być przyczyną wyścigów, w tym niekorzystnych wyścigów krytycznych. Wyścig nazywamy krytycznym, jeżeli zmiana stanu stabilnego automatu przebiegająca poprzez różne stany przejściowe, może doprowadzić do innego stanu stabilnego, niż pożądany. Wyścig nazywamy niekrytycznym, jeżeli zmiana stanu stabilnego automatu, przebiegająca poprzez różne stany przejściowe, prowadzi do pożądanego końcowego stanu stabilnego [6]. Zjawiska wyścigów mogą być wyeliminowane przez odpowiednie zakodowanie stanów wewnętrznych automatu. Zbigniew Hajduk zhajduk@prz-rzeszow.pl Literatura Myers Ch. J.: Asynchronous Circuit Design, John Wiley & Sons Inc., 2. 2 Hauck S.: Asynchronous Design Methodologies: An Overview, 3 Handshake Solutions: http://www.handshakesolutions.com/. 4 Borkar S.: Does asynchronous logic design really have a future?, EE imes, 23. 5 Unger S. H., Hazards, Critical Races and Metastability, IEEE rans. on Comp., Vol. 44, No. 6, June 995. 6 Kalisz J., Podstawy elektroniki cyfrowej, WKŁ, Warszawa 998. R E K L A M A 3 ELEKRONIKA PRAKCZNA /2