Józef Kalisz PODSTAWY ELEKTRONIKI CYFROWEJ Wydanie 3 zmienione WYDAWNICTWA KOMUNIKACJI I ŁĄCZNO$CI WARSZAWA Okładkę projektowa~ Tadeusz Piecrzyk Układ typograficzny: Tadeusz Pietrzyk Redaktor. mgr in7_ Elżbieta Gawin Redaktor techniczny: Jerzy Korpalski Korekta: Alina Podmiotko 621.38. 181.4 Książka sranowi monografię obejmującą podstawy teorii układów cyfrowych oraz rechniki wyt warzania i konsrrukcję cyfrowych układów scalonych. Obsurnie omówiono właści wości funkcjonalne i zasady stosowania układów TIL, ECL, MOS i CMOS i programowalnych układów logicznych PLO oraz FPGA wraz z symulacją komputerową układów cyfrowych oraz językami programowania HOL(Abel, Verilog) i VHOL. Opisano wiodące osiągnięcia mikroelektroniki wraz z najnowszymi osiągnięciami w tej dziedzinie. Wiele opisywanych zagadnień jest ilustrowanych programami komputerowymi w języku Turbo Pascal. Książka jesr przewaczona d la pracowników naukowych i inżyruerów oraz studenrów szkól wyższych. Podręcznik akademicki dotO't\:any przez Ministers t·wo Edukacji Narodov.·ej ISBN 83-206-ł 255- 1 © Copyright by Wydawnictwa Komunikacji i Warsza wa 1991, 1998 Łączności WydawnictV1•a Komunikacji i Łączności sp. z o.o. ul. Kazimierzowska 52, 02-546 Warszawa tel. (022) 49-27- Sł; fax (022) 49-23-22 Dział handlowy (022) 49-23-45 Pro~·adzimy sprz.edaż wysylko·wą książek Księgarnia firmowa w siedzibie wydawnicrwa ret (022) 49-20-32, czynna pon.-pt. w godz. 10°0- 18°0 e-mail wkl@wklcom.pl Oferta WKŁ w inrernecie http://www.wkl.com.pl Warszawa 1998. Wydarue 3 Orukarrua Naukowo-Techniczna w Warszawie. Zam. 621/ 11/98 sp. z o.o. SPIS TREŚCI 1 PODSTAWY MATEMATYCZNE I. I. 1.2. 1.3. 1.4. l.S. 2 2.2.3. 2.2.4. 2.2.S. 2.2.6. 2.2.7. 2.3. 2.4. 3 Określenia podstawowe/34 Kody liczbowe/ 37 Kody naturalne/37 Konwersja licib przedst.awionych w kodach naturalnych o wacb/43 Uzupełnienia liczb/ 48 Zapis licib dwójkowych ze :znakiem/ 50 Kody dwójkowo-<lziesiętne (BCD)/ 52 Kody reOeksyjne/ 55 Zmiennoprzecinkowa reprezentacja liczb/ 57 Kody alfanumeryc:zne/61 Kody zabezpieczające pr,cd blędami/65 Literatura/72 ARYTMETYKA DWÓJKOWA 3.1. 3.2. 3.3. 3.4. 5 11 ,SUOJt4 J4 Rachunek zdań/I I Rachunek zbiorów/ 16 Rachunek kwantyfikatorów/22 Relacje i funkcje/ 25 Algebra Boole'a/29 Literatura/33 CYFROWY ZAPIS INFORMACJI 2.1. 2.2. 2.2.1. 2.2.2. Sfl'()llO Działania różnych podsta- """"' 73 arytmetyczne na liczbach dwójkowych bez znaku/73 arytmetyczne na liczbach dwójkowych ze :znakiem/81 Działania arytmetyczne na liczbach dziesiętnych kodowanych dwójkowo (BCD)/89 Działania arytmetyczne na liczbach zrniennoprzecinkowych/92 Literaturaf93 Działania SPIS TRESCI 4 PODSTAWY TEORII UKŁADÓW CYFROWYCH 4.1. 4.1.1. 4.l.2. 4.1.3. 4.1.3.1. 4.1.3.2. 4.1.4. 4.1.5. 4.1.6. 4.2. 4.2.1. 4.2.2. 4.2.2.1. 4.2.2.2. 4.2.3. 4.2.4. 4.2.4.1. 4.2.4.2. 4.2.4.3. 4.2.4.4. 4.2.5. 4.2.5.1. 4.2.5.2. 4.2.5.3 4.2.5.4. 4.3. 4.3.1. 4.3.2. 5 94 Układy kombinacyjne/95 Funkcje przełączające i formy boolowskie/95 Rodzaje form boolowskicb/ 101 Minimalizacja form boolowskich/ 110 Siatki Karnaugh/ 113 Inne metody minimalizacyjne/ 117 Podstawowe uldady kombinacyjne: bramki. Symbole graficzne/1 18 Złożone uklady kombinacyjnc/ 126 Zjawisko hazardu/ 132 Uklady sekwcncyjnc/ 136 Właściwości i sposoby o pisu układów sekwencyjnych/ 136 Podstawowe układy sekwencyjne: przerzutniki. Symbole graficzne/ 145 Przerzutniki asynchroniczne/ł 47 Przerzutniki synchroniczne/ 150 Metody syntezy układów sekwencyjnych/160 Synteza układów asynchronicznych/ 163 Określenie pierwotnej tablicy przejść i wyjść/ł63 Redukcja pierwotnej tablicy przejść i wyjść/ł65 Kodowanie stanów wewnętrznycb/1 68 Określenie struktury bloku przejść ó i bloku wyjść ,\/171 Synteza układów syncbronicznych/ 178 Utworzenie tablicy przejść i wyjść/178 Minimalizacja liczby stanów w tablicy przejść i wyjść/180 Kodowanie stanów wcwnętrznych/1 86 Określanie struktury bloku przejść tl i wyjść ,\/186 Programy komputerowe do syntezy i symulacji układów cyfrowych/ 188 Użycie symulatora TLS do analizy układów kombinacyjnych/ 191 Użycie symulatora TLS do analizy układów sekwencyjnych/ 192 Literatura/ 194 CYFROWE UKŁADY SCALONE Podstawowe określenia i klasyftkacja/ 196 Rys historyczny/ 199 Zasadnicze parametry cyfrowych układ ów scalonycb/ 200 5.1. 5.2. 5.3. 5.3.1. 5.3.2. 5.3.3. 5.3.4. 5.4. Obudowy/ 208 5.5. Nie23wodnośćf215 Szybkość działania/200 Moc strat/ 201 Odporność na zakłóccnia/203 Zgodność łączeniowa Literatura/ 222 6 strOfltl i obciąź.alność/207 SlrOtta 196 SPIS TRESCI 6 WYTWARZANIE C YFROWYCH UKLAOÓW SCALONYCH 6.1. 6.2. 6.2.I 6.2.2. 6.2.3. 6.2.4. 6.3. 6.3. 1. 6.3.2. 6.3.3. 6.3.4. 6.4. 6.S. 6.6. 7 7. 1 7.2. 7.2.1. 7.2.2. 7.2.3. 7.2.4. 7.2.5. 7.2.6. 7.2.6.1. 7.2.6.2. 7.3. 7.3.1. 7.3.2. 7.3.3. 7.3.4. 7.4. 7.4.1. 7.4.2. 7.5. 7.5.1. 7.5.1.1. 7.5.1.2. 7.5.1.3. 7.5.1.4. 7.5.1.5. 7.5.2 7.5.3. 7.6. 7.7. 7 „,.... 223 Wytwarzanie płytek podloiowych/ 223 Proces planamy/ 226 Obszary izolacyjne/228 Litografia/229 Domieszkowanie/234 Wykonanie połączcń/236 Elementy układów scałonych/238 Tranzystory bipolarnc/ 238 Diody/243 Tranzystory polowe/246 Rczystory/25 I Wytwarzanie bipolarnych układów scalonycb/253 Wytwarzanie układów scalonych MOS/262 Wytwananic układów scalonych C MOS/268 Literatura/273 BUDOWA I C HARAKTERYSTYKI CYFROWYCH UK ŁADÓW SCALONYCH '"""' 274 Najprostsze bramki/ 274 Układy TIL/275 Podsta wowa bramka TIL/ 276 Inne rodzaje bramck/289 Układy z wyjściami do poląC?.cń szynowych/293 Przcrwtniki/297 Układy monostabilne i astabilne/ 300 Ulepszone serie układ ów TI'L/ 304 Serie S i LS/ 305 Serie ALS, F i AS/3 10 Ulcłady ECL/314 Podstawowe bramki ECL/318 Inne układy o małym stopniu sealcnia/326 Układy do rozprowadzania sygnałów zcgarowychf33 I Zasady projektowania systemowego z użyciem układów ECL/334 Układy MOS/338 Układy statycznc/ 339 Układy d ynamicznc/342 Układy CM OS/347 Postawowc układy C MOS/350 Budowa i właściwości/350 Szybkość działania/361 Moc stral/363 Odporność na zakłóccnia/364 Zgodność łączeniowa i obciąttlność/366 o małym stopniu dynamiczne/380 Ulcłady BiCMOS/387 Układy GaAs/389 Literatura/393 Inne układy Układy scałenia/369 SPIS TRE$CI 8 strona 394 CYFROWE BLOKI FUNKCJONALNE 8.1. 8.2. 8.2.1. 8.2.2. 8.2.3. 8.2.3.J. 8.2.3.2. 8.2.3.3. 8.2.4. 8.2.5. 8.2.6. 8.2.7. 8.3. 8.3.1. 8.3.2. 8.4. 8.4.1. 8.4.1.1 . 8.4.1.2. 8.4.1.3. 8.4.2. 8.4.2.l. 8.4.2.2. 8.4.2.3. 8.4.2.4. 8.4.2.5. 8.4.2.6. 8.4.2.7. 9 Podstawowe definicje/ 394 Układy kombinacyjncf397 Multipleksery i demultipleksery/397 Zastosowanie multiplekserów do syntezy układów kombinacyjnych/400 Konwertery kodów/ 403 Kodery/ 403 Dekodery/ 404 Konwertery kodu N8 na kod BCD i odwrotnie/ 408 Komparatory cyfrowe/413 Sumatory/ 41 5 Układy arytmetyczno-togiczne/ 425 Multiplikatory/ 426 Błoki sekwencyjne/ 430 Rejestry/ 430 Liczniki/ 434 Bloki pamięciowe/449 Pamięci o swobodnym dostępie (RAM)/452 Pamięci statyczne (S·RAM)/453 Pamięci dynamiczne (D ·RAM)/458 Ulepszone odmiany pamięci D-RAM/ 474 Pamięci stałe/484 Pamięci RO M/ 484 PROM/ 488 Pamięci EPROM/ 490 Pamięci EEPROM/ 495 Pamięci błyskowe - Flash/504 Moduły pam ięci błyskowych - Flash/ 508 Inne rod1.aje pamięci/515 Literatura/524 Pamięci PROGRAMOWALNE I SPECJALIZOWANE C YF ROW E 9.1. 9.J.I. 9.1.1.1. 9.1.1.2. 9.1.1.3. 9.1.2. 9.1.3. 9.1.3.1. 9.1.3.2. 9.1.4. 9.1.5. 9.2. 9.2.1. 9.2.2. 8 Układy UKŁA DY programowalne/527 Programowalne struktury logiczne (PLD)/528 U kłady FPLA/ 528 U kłady PROM/ 53 1 U kłady PAL/ GAL/ 53 1 Złożone programowalne struktury logiczne (CPLD)/54 J Projektowanie z układami PLD/ CPLD/553 Język ABEL-HDL/ 556 Języki VHDL i Verilog/568 Uklady FPGA/ 572 Projektowanie z układami FPGA/583 U kłady specjalizowane (ASIC)/584 Matryce bramkowe (GA)/586 Matryce komórkowe (SC) i wbudowane (EA)/59 1 stro11a 525 SPI S TRESCI 9.2.3. 9.2.4. 10 Układy indywidualne (FC) i k.omórkowe (CB)/593 Projektowanie ukladów ASIC/594 Literatura/ 596 $1TQfł(J ZESPOŁY, URZĄDZENIA I SYSTEMY CYFROWE 10.1. 10.2. 10.3. 10.3.1. 10.3.2. 10.3.3. 10.3.4. 10.3.4.1. 10.3.4.2. 11 Mikroprogramowanc uklady sterujące/599 Mikroprogramowane uklady opcracyjne/611 Mikrokomputery/613 Struktury podstawowe/ 613 Architektura komputerów/622 Programowanie ko mputerów/625 Mikroprocesory/631 Ewolucja rozwojowa mikroprocesorów/631 Architektura mikr opro<:esorów/637 Literatura/648 ZASTOSOWANIA CYFROWYCH UKŁADÓW SCALONYCH W TECH NICE IMPULSOWEJ I I.I. 11.2. 11.3. 12 12. ł. "'°"" 649 Uklady monostabilne/650 Układy astabilne/657 Detektory zboczy impulsów/661 Literatura/664 POŁĄCZENIA CYFROWYCH UKŁADÓW SCALONYCH 12.2. 12.3. 12.4. 12.5. 598 Linie transmisyjne/666 Odbicia i przesluch/669 Zaklóccnia/672 Polączenia w ukladach TTL/676 Polączcnia w ukladach ECL/677 Literatura/685 DODATEK/686 Symbole graficzne ukladów cyfrowych zgodne z Literatura/697 SKOROWIDZ/698 normą ICE/686 MrMa 665 PRZEDMOWA DO WYDANIA TRZECIEGO Trzecie wydanie książki zostało znacznie zmienione w porównaniu z poprzednimi. Główne zmiany polegały na wprowadzeniu nowego i szerszego omówienia najnowszych rodzajów cyfrowych układów scalonych, zwłaszcza układów programowalnych PLO, CPLD i F PGA (rozdział 9), a także pamięci pół­ przewodnikowych S-RAM, O-RAM, EEPROM i Flash oraz mikroprocesorów. Opisano zasady stosowania języka ABEL do opisu i syntezy układów PLD/C PLD. Wyodrębniono problematykę tworzenia połączeń cyfrowych ukła­ dów scalonych (rozdział I 2), co nabiera szczególnej wagi wobec ciągłego wzrostu szybkości działania układów. Wprowadzono również bardzo wiele zmian o charakterze poprawek i ulepszeń tekslu. Aby ograniczyć objętość książki do rozmiaru akceptowalnego przez Wydawnictwo i Czytelników wiele tekstu i rysunków z poprzedniego wydania książki zostało usunięte. Dotyczy to w szczególności rozdziału 6. Duża liczba skreśleń dotyczyła również tekstu poświęconego układom i aplikacjom już przestarzałym w 1997 roku. Autor starał się wykryć i wyeliminować błędy z tekstu, ale trudno je było wszystkie dostrzec przy tak dużej objętości książki. W związku z tym autor będzie bardzo wdzięczny tym Czytelnikom, którzy zechcą nadesłać swoje krytyczne uwagi odnośnie do wykrytych usterek, jak również z propozycjami poprawek, uzupełnień i rozszerzeń (a także skreśleń). Uwagi proszę nadsyłać pocztą elektroniczną na adresjkalisz@wel.wat.waw.pl lub na nazwisko autora i adres pocztowy: Instytut Systemów Łączności, Wojskowa Akademia Techniczna, ul. Kaliskiego 2, O1-489 Warszawa. Wiele osób było zaangażowanych w proces tworzenia tri.eciego wydania tej książki. Wszystkim tym osobom autor pragnie wyrazić najgłębsze podziękowanie. W szczególności autor pragnie podziękować swym współpracownikom w Zakładzie Techniki Cyfrowej Instytutu Systemów Łączności WAT oraz licznym studentom, którzy poprzez wykrywanie usterek oraz propozycje poprawek i uzupełnień znacząco przyczynili się do udoskonalenia treści książki. Książka nie powstałaby w obecnej postaci bez serdecznej pomocy i znakomitej współpracy z red. Elżbietą Gawin. Nieocenioną pomoc i życzliwość okazał autorowi red. Krzysztof Wiśniewski. Współpraca z Dyrekcją Wydawnictwa była bardzo efektywna i prowadzona w doskonalej atmosferze. Autor bardzo dziękuje Redaktorowi Naczelnemu Bogumiłowi Zielińskiemu za znaczną i życzliwą pomoc przy opracowaniu książki oraz za wyrozumiałość wobec różnych pomysłów autora. Autor Podkowa Leśna, 1998 10 1 PODSTAWY MATEMATYCZNE Teoria cyfrowego zapisu informacji oraz teoria układów cyfrowych oparte są na podstawach matematyki, takich jak logika matematyczna i teoria mnogości. W niniejszym rozdziale są omówione skrótowo te dziedziny, które będą wykorzystywane w dalszej c-tęści tekstu: rachunek zdań, zbiorów i kwan· tyfikatorów, opis relacji i funkcji oraz algebra Boole'a. RACHUNEK ZDAŃ 1.1 Rachunek zdań jest zasadniczą częścią logiki matematycznej. Zajmujemy się w nim tylko takimi zdaniami, którym możemy przyporząd kować wartość logiczną prawdy lub jej zaprzeczenia - fa/$zu. Nie mogą to być zatem zdania pytające i rozkazujące, lecz wyłą<.<:nie orzekające. Oto przykłady zdan prawdziwych woda jest cieczą kot jest zwierzęciem 3+4 = 7 i fałszywych woda jest gazem kot jest rybą 3+4 = 5 Wyrażenia rachunku zdań są budowane z symboli następujących ro· dzajów: - zmiennych zdaniowych, reprezentujących zdania, np. p, q, r, - spójników zdaniowych. - nawiasów. Zdaniu prawdziwemu, np. p, przyporządkowujemy wartość logiczną w(p) oznaczaną symbolem I lub T (z ang. true), czyli w(p) = I albo w(p) = T, 11 \. PODSTAWY MATEMATYCZNE na1omias1 zdaniu fałszywemu przyporządkowujemy wartość logiczną O lub F (z ang. fa/se). W dalszym 1ekście będą stosowane symbole I, O. Spójniki zdaniowe są również określane jako funklory zda11io1wórcze, gdyż łącznie ze zmiennymi zdaniowymi tworzą nowe zdania. Najczęściej używanymi spójnikami są zwroty dwuargumen1owe ••• I ••• ... lub ... ..., 10 ... ... wtedy i tylko wledy, gdy ... jeżeli oraz 2wro1 jednoargumentowy nieprawda, że ... Wymienione spójniki w rachunku zdań mają tę wspólną własność, że wartość logiczna zdań utworzonych z ich pomocą zależy tylko od wartości logicznych łączonych zdań, a zupełnie nie zależy od ich sensu. Spójniki (fun ktory) ta kie określa się jako eks1e111;jo11a/11e. Zdanie o postaci „p i ą" nazywamy koniunkcją (iloczynem logicznym) zdania p i q oraz piszemy symbolicznie przy użyciu znaku „czapeczki" jako "p 11q". Zdanie o postaci „p lubą " nosi nazwę alternatywy (sumy logicznej) zdań p. q i zapisujemy je przy użyciu znaku ,,kubeczka" jako „pv q". Zdanie o postaci ,jeżeli p. to q" nazywamy implikacją o poprzedniku p i następniku q i zapisujemy je przy użyci u symbolu strzałki prawostronnej jako „p => q". Zdanie o pos1aci „p wtedy i tylko wtedy, gdy ą" zwie się równoważnością o członach pi q, i zapisujemy przy użyciu symbolu strzałki dwustronnej jako „p=q". Wreszcie zdanie o postaci „nieprawda, że p" nazywamy negacją zdania p i zapisujemy je przy użyciu znaku negacji -, jako -, p, czytając je krótko ,,nie p". Oprócz wyżej przedstawionych symboli spójników zdaniowych, w literaturze spotyka się wiele innych symboli, które bywają stosowane w różnych kombinacjach. Symbole te są następujące: - dla dla dla dla dla koniunkcji: p /\ q, p·t1, pq, pr.q, p&q, Kpq, alternatywy: p v ą, p+ q, puq. Apq, implikacji: p=» ą, p ~ q, p :::i ą. Cpq, równoważności : P""'<i· p: q, 11-ą, Epq negacji: -, p, p', - p, p, Np. Symbolika operatorów prefiksowych A, C, E, K, N została wprowadzona przez polskiego logika J. Łukasiewicza. Spójniki jednoargumentowe (tj. jednozdaniowe) mogą być, ogólnie biorąc, cztery. Oznaczając je symbolami s1(i = I, 2, 3, 4), można je zdefiniować dla dowolnego zdania p związkami: s 1 (p) p (zdanie bez zmiany), s 2 (p) p (negacja zdania), s 3 (p) = l (stała l) i s4 {p) = O(stała O). Podobnie można określić = 12 = -, 1 I RACHUNEK ZOAN 16 spójników dwuargumentowych (są one omówione w p. 4.1.1). Można wykazać, że przy użyciu spójnika zwanego kreską ( dyzjunkcją) Shejfera pjq !JJ-, (p A ą) lub spójnika zwanego strzałką Peirce'a p!ą ~-,(p v ą) można określić wszystkie pozostałe spójniki jedno- i dwuargumentowe. zmienne zdaniowe p, q mogą przybierać tylko dwie wartości logiczne (O, 1), za tem najprostszą metodą definicj i wymienionych spójników jest określenie wartości logicznej zda11, stosujących te spójniki, w sposób pokazany w tabl. 1.1, gdzie argumentami są wartości logiczne zmiennych pi q. Na przyklad, Ponieważ Tablica I.I Równoważność Zdania Ko niunkcja Alternatywa (p i q) (p lub q) Implikacja (jeśli p to q) (p wtedy i 1ylko wtedy, gdy q) Negacja (nic p) Zmienoe zdaniowe p q o o o p " q p V q p „ q p "' q IP o I I I I o o I I o I I o o I o o o I I I I I I o w(O=O) = I, w(0<> 1) = O itd. Użyty znak równoważności występuje między zdaniami logicznymi i, jak widać z tablicy, równoważność p <> q zachodzi wtedy i tylko wtedy, gdy p i q mają tę samą wartość logiczną. Nie oznacza to jednak równoważności tekstów zdań p i q, ponieważ spójnik "" jest, podobnie jak pozostałe tu omawiane, spójnikiem ekstensjonalnym. Na przykład, prawdziwe jest zdanie (woda jest cieczą)= (3 +4 = 7), a także (kot jest rybą)-(3 + 4 = 5). Związki między zdaniami stosującymi te spójniki, a także zawierającymi stale O, I, określa się przez podanie praw rachunku zdań, zwanych wutologiami. Są to takie schematy zdań złożonych, które są zawsze prawdziwe, niezależnie od wartości zdań składowych. Wystepuje w nich zawsze spójnik równoważności lub implikacji. Sprawdzanie tautologii wykonuje się metodą zero-jedynkową, polegającą na podstawianiu za zdania składowe wszystkich możliwych kombinacji zer i jedynek, i wykorzystaniu definicji z tabl. I.I. Sprawdzane twierdzenie jest 13 1 PODSTAWY MATEMATYCZNE tautologią, jeśli fałszywego. w wyniku sprawdzenia ani razu nie otrzymuje Ważniejsze tautologie są wymienione niżej. W odniesieniu do alternatywy i koniunkcji l) prawa prawa prawa istnieją: p A p.::.p przemienności p V q.::.qV p, 3) zdania idempotemności p V p<>p, 2) się p A p.::.q A p łączności p v (ą v r)<>(p v ą) v r p A(q A r).::.(p Aq) A r 4) prawo a) rozdzielności b) względem koniunkcji alternatywy p A (ąvr)-(p A ą) v (p A r) prawa pochłaniania p V(p Aq)=p, 6) względem p v (ą A r)<»(p v ą) A (p v r) i koniunkcji 5) alternatywy prawa p A(p V q)=p określające własności stałych p VO<»p, p A l<»p oraz 7) p V I <•>I, p A0-::.0 Warto zwrócić uwagę. że w przeciwieństwie do arytmetyki, w logice rola koniunkcji i alternatywy jest symetryczna_ W arytmetyce liczb dziesi~tnycb nie ma odpowiednika prawa 4a, gdyż nie może my napisać np. x+(y·z) ~ (x+ y)-(x+z). Dalsze różnice występują również w prawach (5) i (7). Przy wykorzystaniu spójników koniunkcji, alternatywy i negacji formułuje się 8) prawa określające własności negacji: a) prawo wyłączonego środka p v -, p=I co oznacza, 14 że z dwóch zdań sprzec:z:nych jedno jest prawdziwe, 1.1.·RACH UNEK ZDAN oraz b) prawo sprzeczno.fri p l\-, p=O co oznacza, i fałszywe, 9) że żadne zdanie nie może być równocześn ie prawdziwe prawo podwójnego przeczenia • • p=p IO) prawa De Morgana* -, (p Vq)<=> o p l\ o q -, (p /\ q)<=> o pV• q z których na mocy (9) wynika także p V q<=> o (op lloq) p ll q<=> o (• p V• ą) Przedstawione tautologie, oprócz (9), stanowią dualne pary. Oznacza to, że w obrębie każdej pary jeden związek można otrzymać z drugiego przez zamianę spójników I\ na V i odwrotnie, oraz stałych O ma I i odwrotnie. Właściwość tę określamy jako zasadę dua/11ości w rachunku zdań. Wiele tautologii wykorzystuje spójniki implikacji. Interpretację tego spójnika podaje definicja 11) (p => q)<=>(o p V q) Implikacja p => q jest fałszywa wtedy i tylko wtedy, gdy jej poprzednik jest prawdziwy (w(p) = I) i następnik fałszywy (w(ą) = O). We wszystkich innych przypad kach implikacja jest prawdziwa (por. tabl. 1.1). A zatem prawdziwe są implikacje a) b) c) (kot jest rybą), to (3 + 4 = 7), jeżeli (kot jest zwierzęciem), to (3 + 4 = 7), jeżeli (kot jest rybą), to (3 + 4 = 5), jeżeli natomiast d) fałszywa jeżeli jest implikacja (kot jest zwierzęciem), to (3 + 4 = 5). Jak widać, sens tekstowy implikacji w rachunku zdań odbiega od potocznego „wynikania". W odniesieniu do przypadku (b), gdy (I= I) = I, • Augustus De Morgan, logik angielski (1806-1871) 15 1. PODSTAWY MATEMATYCZNE formułuje się przydatną w logice regułę odrywania, która brzmi: jeśli prawdziwa implikacja ma prawdziwy popr7.ednik, to musi być również prawdziwy jej następnik. Jeżeli 12) implikacja jest obustronna, to znaczy że jest równoważnością (p=ą) = [(p= ą) fl (ą c>p)) Niektóre inne tautologie 13) związane z implikacją to: prawo transpozycji (przestawiania) (p=ą)=(•ą= 14) prawo •p) przechodniości relacji implikacji [(p = ą) fl (ą = r)] = (p E>r) prawa Claviusa 15) =• p) =• P a) (p b) (•p=p)=p Powyższy wybór praw definiujących rachunek zdań nie jest jedynym, a w szczególności nie jest zbiorem minimalnym, czyli pewne prawa w tym zbiorze można wyprowadzić w oparciu o inne z tego samego zbioru. Rachunek zdań można również sformulować inaczej. W aksjomatycznym ujęciu rachunku zdań przyjmuje się pewne nieliczne pojęcia pierwotne, związane z nimi aksjomaty (tj. zdania, których prawdziwości już się nie udowadnia) oraz definicje, które łącznie slużą jako podstawa do określenia wszystkich innych praw logicznych. Na przykład, system Łukasiewicza jest oparty o dwa pojęcia pierwotne (implikację i negację), związane z nimi trzy aksjomaty oraz trzy definicje (określające koniunkcję, alternatywę i równoważność w zależności od implikacji i negacji). Istnieje również aksjomatyka rachunku zdań oparta na tylko jednym aksjomacie. Początki rachunku zdań sięgają czasów starożytnych (szkola stoików, 111 w. p.n.e.). Szybki rozwój tej dziedziny nastą pil jednak dopiero w XIX w. dzięki pracy matematyka angielskiego G. Boole"a [2], którego uważa się za twórcę współcz.esnej logiki matematyczcj, a także dzięki pracom A. De Morgana, G. Fregego i C. S. Peirce'a. W XX w. zaznaczył się także wpływ polskiej szkoly logicznej (J. Łukasiewicz). RACHUNEK ZBIORÓW Pojęcie jest jednym z podstawowych pojęć w matematyce. Znaczenie tego pojęcia jest powszechnie zrozumiałe. Jako przyklady można przytoczyć zbiór liter alfabetu, zbiór liczb naturalnych, zbiór aksjomatów pewnej zbioru 16 (mnogości) 1 .2 1.2. RACHUNEK ZBIOROW teorii . Przedmioty należące do danego zbioru nazywamy elementami, przy czym ich liczba może być skończona lub nieskończona. Zbiór można zdefiniować przez wymienienie jego elementów, na przykład A = {a, b, c} przy czym kolejność ich wpisania jest dowolna. Zdanie „elemeni b zbioru A" można zapisać należy do be A Podobnie zapisujemy „element d nie należy do zbioru A" d ~A, czyli • (d EA) Zbiór, który nie zawiera żadnego elementu, określa się jako pusty i oznacza symbolem 0. Podzbiorem zbioru A nazywamy dowolny zbiór B, którego wszystkie elementy należą do zbioru A, co zapisujemy stosując symbol inkluzji s BsA lub A ;;;1B Mówimy również, że zbiór B jest zawarty w A lub że A zawiera B. Definicję relacji inkluzji można zapisać w postaci równoważności zdań (B~A)=(dla każdego Jeżeli x: xeB=xeA) B nie jest podzbiorem A, to piszemy B ';;/A lub A ;/. B Podzbiór B należący do A nazywamy właściwym, jeśli B "# A. Zapisujemy to stosując znak inkluzji właściwej c , tj. B c A. Wykorzystując definicję inkluzji można wykazać, że dla dowolnych zbiorów A, B, C są słuszne związki a) b) c) d) e) B, 0 s C czyli zbiór pusty jest zawarty w każdym zbiorze, B, C s C czyli każdy zbiór jest swoim podzbiorem, (A s B /\ B s C) =(A s C): prawo przechodniości dla relacji inkluzji, (A S B AB S A)=(A = B), (A "# B) =(A ';;/ B v B ';;/ A). 0 sA, 0 A s A, B s s Rachunek zbiorów można przedstawić w postaci aksjomatycznej, podobnie jak rachunek zdań . Przyjmując jako pojęcia pierwotne pojęcie zbioru i relację przynależności elementu do zbioru (e) można wymienić następujące cztery podstawowe aksjomaty, .podane przez E. Zermelo w 1904 r.: I. Aksjomat równości zbiorów: jeśli zbiory A i B mają te same elementy, to zbiory A i B są równe. Równość zbiorów wyraża się symbolem „ = " i definiuje implikacją zdań (dla 17 każdego x: x e A<=> x e B) = (A = B) I , PODSTAWY MATEMATYCZNE li. Aksjomat sumy: dla dowolnych zbiorów A i 8 istnieje zbiór, którego elementami są wszystkie elementy zbioru A i wszystkie elementy zbioru 8, i który nie zawiera innych elementów. Oznaczając sumę zbiorów A i B jako Av8, warunek konieczny i dostateczny na to, aby xeAv8, 1..apisuje się w postaci (xe AvB)-(xe A V XE 8) Ili. Aksjomat różnicy: dla dowolnych zbiorów A i B istnieje zbiór, którego elementami są te elementy zbioru A, które nie są elementami zbioru 8 i który nie zawiera żadnych innych elementów. Różnicę zbiorów A i 8 oznaczamy jako A - 8. Z definicji różnicy wynika warunek (xeA- 8)-(xe A 11 xj 8) 1V. Aksjomat istnienia: istnieje co najmniej jeden zbiór. Relację zawierania zbiorów można zdefiniować za pomocą aksjomatów (1) i (Tl) oraz twierdzenia, że dla dowolnych zbiorów A, 8 , C, D obowiązują związki As AvB B s;; AvB czyli suma zbiorów zawiera każdy ze składników, (A s;; C /\ B s;; C) => (AvB s;; C)czyli każdy zbiór, który zaw iera dwa dane zbiory zawiera także ich sumę, (A sB 11 C s;; D) =>(AvC s;; BvD): prawo dodawania stronami ink luzji, (As;; B)=(AvB = 8): właściwa definicja inkluzji przez sumę i równość zbiorów. Przez iloczyn zbiorów A i 8 rozumiemy część wspólną tych zbiorów, czyli zbiór zawierający te i tylko te elementy, które jednocześnie należą do zbioru A i do zbioru 8. Iloczyn zbiorów A i 8oznacza się jako AnB. Aby xeAn8, musi być spełniony warunek (xeAnB)-(xe A 11 xeB) Do zdeli niowania iloczynu za pomocą różnicy i równości zbiorów wykorzystujemy twierdzenie, że dla dowolnych zbiorów A i B An8=A-(A-8) Jeżeli AnB = 0, to mówimy ie zbiory A i 8 są rozłączne. Zbiór pusty można określić za pomocą różnicy jako 0 = A - A dla dowolnego zbioru A. Dla każdego podzbioru 8 s;; A zbiór tych wszystkich elementów x e A, które nie należą do zbioru 8 , nazywa się dopełnieniem (uzupel.nieniem) B' zbioru B (w zbiorze A) i deliniuje jako B'=A-B 18 1.2. RACHUNE:K Z810A0W Oznacza to, że dla każdego B s; A i każdego x e A jest spełniony warunek (xe B') =(xtf. B) =-, (x E 8) W zastosowaniach teorii mnogości zazwyczaj traktuje się zbiory jako podzbiory pewnego uniwersalnego zbioru, zwanego przestrzenią. W arytmetyce nieskończony zbiór wszystkich liczb naturalnych nazywa się przestrzenią ,,V = { f, 2, 3„..}, zbiór wszystkich nieujemnych liczb całkowitych nazywa się przestrzenią% 0 = %u {O} = {O, I, 2, 3„.. } i zbiór wszyst kich lic-.lb calkowitych nazywa się przestrzenią :fr = {O, ± l , ± 2, ± 3„..}. W analizie przestrzenią dt nazywamy zbiór wszystkich liczb rzeczywistych*. Ogólnie dla zmiennej x przyjmuje się przestrzeń X. Jeśli U oznacza daną przestrzeń. to dopełnieniem dowolnego zbioru A c U jest zbiór A' U - A. Stąd wynika, że jeśli A U to U'= 0 i 0 ' = U. Omówione działania inkluzji, sumy, różnicy i iloczynu zbiorów są zilustrowane na przykładzie dwóch nierozłącznych zbiorów A s; U i B s; U, (rys. l.1) w postaci tzw. wykresów Ve111ia. Pole określone przez obrys zewnętrzny = = Rys. I.I. Wykresy Venna obydwu pól A i B reprezentuje sumę AuB, a pole ich wzajemnego przenikania przedstawia iloczyn A118. Ponieważ Av B s; U, zatem (AvB)' =U - ( Av B). Łatwo zauważyć, że gdyby zbiory A i B były rozłączne, to AnB = 0. Przy ograniczeniu się do działań iloczynu n, sumy u i negacji ' można sformulować prawa rachunku zbiorów w pełni analogiczne do przedstawionych wcześniej (p. I.I) praw rachunku zdań, a więc: J) AuA = A, AnA =A (ide111poten111ość), 2) Au B = Bv A, An B = Bn A (prze111ie1111ość), „ • Symbole .A', .N" !T i iJt (przestrzeni). 19 będ~ utywanc w dalszym tekście do omaC7.ania 1ych zbiorów t. PODSTAWY MATEMATYCZNE 3) Au(BuC) = (AuB)uC, At1 (Bt1C} = (At1B) t1 C 4) Au (Bt1C} = (AuB)t1 (AuC), A t1 (BuC) = (A t1 B) u(At1C} 5) Au(At1B) =A, 6) Au0 = A, At1U = A 7) Au U= U, At10 = 0 8) AuA' = U, At1A' = 0 9) (A')'= A . 10) (AuB)' = A't1 B', (At1B}' = A'u B' Istnieje (lączno.fć) (rozdzielnośc') (pochłanianie) At1 (AuB) = A (własności stałych) (dalsze własności stałych) (własności uzupełnienia) (podwójne uzupełnienie) (prawa De Morgana) także wiele innych praw rachunku zbiorów, w tym prawa dotyczące różnicy zbiorów i tzw. różnicy symetrycznej. Jest ona definiowana dla dowolnych dwóch zbiorów A i B jako A-'--B = (A - B) u (B - A) Oprócz podanych wcześniej czterech podstawowych aksjomatów rachunku zbiorów, do szerszej analizy wprowadza się dalsze trzy aksjomaty, związane z definicjami predykatu, zbioru potęgowego i rodziny :zbiorów. Predykat (funkcja zdaniowa, formula zdaniowa) jest poprawnym wyraże­ niem opisującym pewną własność lub relację, które zawiera pewne wolne zmienne (co najmniej jedną) i które staje się zdaniem (prawdziwym lub fałszywym), gdy na miejsce zmiennych podstawimy ich wartości. Na przykład w przestrzeni Yt liczb rzeczywistych predykat x 2 > 4 staje się zdaniem p'rawdziwym dla x > 2 i fałszywym dla x ,;;; 2. Oznaczając <p(x) = (x 2 > 4) otrzymujemy np. <p(l.5) = O i <p(7) = l. Mówimy, że x = p spełnia predykat <p(x), jeśli <p(p) = I. Użycie predykatu jest często wygodne również w zwykłej algebrze. Na przykład zamiast pisać x2 + 5 y= { 2 X gdy X~ 0 gdy X< 0 po zastosowaniu predykatu y = x 2 +5p można napisać gdziep = (x~O). Zbiór tych wszystkich wartości zmiennej x e X, przy których predykat staje się zdaniem prawdziwym (czyli zbiór x-ów, które spełniają ten predykat) oznacza się jako 20 1.2. RACHUNEK ZBIOROW {xeX: q>(x)} lub prościej {x: q>(x)} Na przykład, w przestrzeni f!ł liczb rzeczywistych zbiór {x: (x >O)} jest zbiorem wszystkich liczb dodatnich, a zbiór {x: (x 2 < O)} jest zbiorem pustym. Aby dowolny element a e X należał do zbioru {x: q>(x)}, potrzeba i wystarcza aby zdanie q>(a) było prawdziwe. Można to zapisać symbolicznie następująco dla każdego a: [a e {x: q>(x)}J <=-q>(a) Jeśli dane są dwa predykaty q>(x) i l{t(x), x e X, to spełnione są następujące wzory wiążące odpowiednie zbiory {x: {x: {x: {x: q>(x) v l{t(x)} = {x: q>(x)} u {x: l{t(x)} q>(x) Al{t(x)} = {x: q>(x)} r'\ {x: l/t(x)} q>(x) A[l{t(x)]'} = {x: q>(x)} - {x: i/J(x)} [q>(x))'} = {x: q>(x)}' Zbiór potęgowy danego zbioru U jest zbiorem wszystkich podzbiorów tego zbioru i oznacza się symbolem 2u lub &(U). Jeieli zbiór U ma 11 ~ I elementów, to do zbioru 2u należy zbiór U, zbiór pusty 0 i 2• - 2 podzbiorów właściwych zbioru U, czyli łącznie zbiór zawiera 2" elementów. Jeżeli elementami zbioru X są zbiory, to zbiór X nazywamy rodziną zbiorów, a sumę zbiorów tej rodziny oznaczamy przez u X. Wspomniane dalsze trzy aksjomaty zostały także wprowadzone do teorii mnogości przez E. Zermelo: V. Aksjomat podzbiorów (wyróżniania): dla każdego zbioru X i każdego predykatu q>(x), dla którego zakresem zmienności x jest X, istnieje zbiór złożony z tych i tylko tych elementów x zbioru X, które spełniają ten predykat. Innymi słowy, w każdym danym zbiorze X predykat q>(x) wyróżnia pewien podzbiór elementów, które go spełniają. VI. Aksjomat zbioru potęgowego: dla każdego zbioru X istnieje rodzina zbiorów (oznaczana symbolem zx), której elementami są wszystkie podzbiory zbioru X i tylko one. VII. Aksjomat wyboru: dla każdej rodziny zbiorów niepustych i rozłącznych istnieje zbiór, który z każdym ze zbiorów tej rodziny ma jeden i tylko jeden wspólny element. Jeżeli zbiory X i Y są zbiorami skończonymi i zawierają tę samą liczbę elementów, to mówimy, że są one równoliczne (symbolicznie X - Y). Liczebność zbioru X zawierającego n elementów wyraża się liczbą kardynalną lub mocą X = n, pny czym 0 = O. Zatem zu (X =Y )-=-(X-Y) 21 1 PODSTAWY MATEMATYCZNE Pojęcia mocy i równoliczności zbiorów generalnie definiuje się w ten sposób, aby one również zbiory nieskończone. Np. zbiory liczb naturalnych parzystych i nieparzystych mają tę samą moc i są równoliczne. Teoria mnogości została sformulowana w drugiej połowie XIX w. przez G. Cantora. Pierwszy układ aksjomatów tej teorii podał E. Zermelo w 1904 r. Znaczący wpływ na rozwój tej dyscypliny wywarli również matematycy polscy, zwlaszcza W. Sierpiński. obejmowały RACHUNEK KWANTYFIKATORÓW 1 .3 W przedstawionym wcześniej rachunku zdań (p. I.I) brak jest symbolicznego zapisu zwrotów "dla każdego" ("d la wszystkich") i "istnieje" („d la pewnego"). Rolę tę spełniają kwantyfikatory. Jeśli predykat rp(x)staje się zdaniem prawdziwym dla każdego x e X ~ 0 , to wlaściwość tę zapisujemy przy użyciu symbolu kwant.yfikatora ogólnego V (z ang. for All) w postaci wzoru V <P<x> ••X lub V rp(x) który czytamy: dla każdego x spclniony jest predykat q>(x). Podobnie, jeśli istnieje jakieś xe X'# 0, spełniające predykat rp(x), to wlaściwość tę zapisujemy przy użyciu kwancyflkaiora szczegółowego (eg-tys tencjalnego) 3 (z ang. Exists) w postaci wzoru 3 rp(x) „x lub 3 rp(x) X który czytamy: istnieje x spełniające predykat rp(x). Zmienną x w powyiszych wyrażeniach nazywamy zmienną związaną odpowiednim kwantyfikatorem, natomiast zmienną x w samym predykacie nazywamy zmienną wolną. Podobnie w matematyce, np. w wyrażeniu x 2 - 5 =O 2 x jest zmienną wolną, natomiast w wyrażeniu Jx dx zmienna x jest związana o przez operator całkowy. Jeśli zbiór X jest skończony, np. X = {x 1 , x 2,„., x.}. to kwantyfikator ogólny może być zastąpiony przez iloczyn logiczny zdań V q>(x) «>q>(x 1)Aq>(x 2) i\ ... i\ rp(x.) xeX a kwantyfikator 3 x.X 22 szczegółowy przez sumę rp(x)=rp(x 1)v rp(x 2 ) v ... v rp(x.) logiczną zdań 1.3. RACHUNEK KWANTYFI KATOROW Kwantyfikatory można zatem interpretować jako uogólnienie iloczynu i sumy logicznej dla nieskończonej liczby zdań składowych. Istnieją również kwantyfikatory o zakresie ograniczonym przez predykat o postaci 'V qi(x) oraz "'(x) 3 qi(x) of<(<) które interpretujemy odpowiednio jako „dla każdego x e X spełniającego predykat l/J(x) spełniony jest predykat ip(x)" i „istnieje xe X spełniające predykat l/J(x), takie że jest spełniony predykat <p(x)". Ponieważ zgodnie z aksjomatem podzbiorów (V w p. 1.2) każdy predykat l/J(x) wyróżnia w zbiorze X pewien podzbiór W c X, zatem powyższe kwantyfi katory można także zapisać w postaci 'V <p (x) oraz xe W 3 ip(x) x e lł' Następujące równoważności umożliwiają przejście od kwantyfikatorów o zakresach ograniczonych przez predykat do wyrażeń, w których takie kwantyfikatory nie występują 'V ip(x)= 'V [(l/J(x) =ip(x)] "(X) oraz X 3 qi(x)-=> 3 [l/J(x) A ip(x)] ~ (X) X Kwantyfikatory umożliwiają przekształcenie predykatów w zdania (prawdziwe lub fałszywe). W tym celu należy przed danym predykatem dopisać tyle kwantyfikatorów, aby związać wszystkie wolne zmienne występujące w tym predykacie. W praktyce oznacza to użycie tylu kwantyfikatorów, ile jest zmiennych, np. 'V qi(x), X 'Vx yte3Y rp(x, y). Zasięgiem kwant)fikatora nazywamy wyrażenie następujące bezpośred­ nio po kwantyfikatorze, które ujmuje się w nawiasy, jeżeli wymaga tego jasność zapisu.Kwantyfikator wiąże odpowiednie zmienne tylko wtedy, gdy znajdują się w jego zasięgu. Na przykład w predykacie ~(y) ='V [(ip(x, y) v 3 l/J(x, y)] X )' zmienna y występuj ąca w predykacie qi(x, y) jest wolna, gdyż nie leży w zasięgu żadnego kwantyfikatora. Prawa rachunku kwantyfikatorów stanowią schematy zdań zawsze prawdziwych, podobnie jak tautologie rachunku zdań. Prawa te jednak nie mogą być sprawdzane metodą zero-jedynkową Gak ma to miejsce w rachunku zdań) 23 1 POOSlAWY MATEMATYCZN E i wymagają odrębnych dowodów. T ylko w s-zczególnych przypadkach, gdy wyrażenia z kwantyfik atorami stanowią zdania, związki między nimi mogą być określone prawami rachunku zdań. Prawa dotyczące rozdzielności kwantyfikatorów są następujące: [~ ip(x) ll ~ l{l(x}]<=> ~ [ip(x) ll l{l(x)) [~ ip(x) v ~ l{l(x}]<=>~ [ip(x)v l{l(x)] [~ ip(x) v ~ l{l(x)]=> ~ [ip(x) v l{l(x)] 3 [ ip(x)Al{l(x)] => 3 ip(x)11 3 t{l(x) X X X Powyższe implikacje nie mogą być zastąpione równoważnościami. Na przykład, jeśli w ostatnim wzorze przyjmiemy ip(x) = (x = I) i t{l(x) = (x = 0), to po prawej stronie tego wzoru występuje zdanie prawdziwe, a po lewej fałszywe. Uogólnione prawa De M organa dla kwantyfikatorów opisują się związkami -, V ip(x) = 3 X -, ip(x) X -, 3 ip(x) = V -, qi(x) X X przy czym negacje lewych stron tych równoważności mogą być oczywiście przeniesione na prawe strony. Przy zastosowaniu predykatów dwu zmiennych, porządek w jakim występują po sobie dwa kwantyfikatory ogólne lub dwa szczególne jest obojętny. Zazwyczaj pisze się V X1 zamiast V V :t1 oraz 3 zamiast 3 3 . Natomiast przy X'1 X'1 użyciu pary różnych kwantyfikatorów jest inaczej i prawo przestawiania kwantyfikatorów opisuje wzór 3 V tp(x, y) => V 3 ip(x, y) X )' )' X W podręcznikach teorii mnogości za.zwyczaj stosuje się inne oznaczenie kwantyfikatorów (/\ dla kwantyfikatora ogólnego i V dla kwantyfikatora szczegółowego). Nie zostaly one użyte w niniejszym tekście, aby uniknąć niejednóznaczności przy stosowaniu symbo lu uogólnionej sumy logicznej zmiennych boołowskich (p. 1.5). Początki rachunku kwantyfikatorów sięgają drugiej połowy XIX w. (G. Frege, 1879 i C.S. Peirce, ok. 1885). 24 1,4, RELACJE I FUNKCJE 1.4 RELACJE I FUNKCJE W teorii mnogości relacje i funkcje określa się przy użyciu pojęcia pary. Istnieją dwa rodzaje par: pary nieuporządkowane i pary uporządkowane. Pierwsze są po prostu zbiorami dwuelementowymi, w których kolejność elementów jest bez znaczenia, tj. {a, b} = {b, a }. W drugich kolej ność elementów jest już istotna. Parę uporządkowaną o poprzednika a i następnik.u b, którą oznaczamy symbolem (a, b), uważamy za różną od pary (b, a), jeśli a'# b. Określamy ją definicją podaną przez K uratowskiego (a, b) ={{a}, {a, b}} Jeśli a'# b, to (a, b) '# (b, a), gdyż w myśl tej definicji (b, a)= = { { b}, {a, b}} i' {{a}, {a, b}}. Ogólnie pary (a, b) i (c, d) są sobie równe tylko wtedy, gdy mają identyczne poprzedniki i identyczne następniki, tj. ((a, b) = (c, d)]<=>[(a = c) A(b = d)] lloczynem (produktem) kartezja1iskim zbiorów X i Y, który oznaczamy symbolem X x Y, nazywamy zbiór wszyst kich par uporządkowanych (x, y), gdzie x e X i y e Y Jeśli X jest zbiorem n-elementowym i Y jest zbiorem 111-elementowym, to iloczyn X x Y jest zbiorem złożonym z nm elementów, którymi są pary (x, y). W analogiczny sposób określa się iloczyny kartezjańskie wielu zbiorów, np. X X Yx Z, X X X X X = X 3, X X X X .•. (11 razy) = Jeśli X = {O, I}, LO oznaczamy ten charakterystyczny zbiór symbolem B i iloczyn kartezjański 83 zawiera 2 3 = 8 trójek uporządkowanych (ściślej: ciągów 3-elementowych), a iloczyn B" zawiera 2" ciągów n-elementowych („n-tek"). Relację binarną (dwuczłonową) stanowi związek między elementami x i y par uporząd kowanych (x, y) e X x Y, wyrażany predykatem dwu zmien· nych cp(x, y). Relację taką oznacza się symbolem x{J y, co oznacza, że istnieją pary uporządkowane (a, b)eX x Y, dla których zachodzi równoważność apb <=> cp(a, b). Zapis x p y czytamy: x pozostaje w relacji p z y. Zgodnie z aksjomatem podzbiorów (V w 1.2) relacje binarne są podzbiorami iloczynu kartezjańskiego, czyli dla dowolnej relacji p można określić zbiór x·. R = {(x, y):xpy} s Xx Y który w praktyce tak dalece utożsamia się z relacją p, że mówi się ,.x pozostaje w relacji R z y". Odwrotnie, każdy podzbiór R s X x Y może być uważany za relację p, spełniającą warunek xpy<»(x, y)eR Na przykład, relacja p = (x < y) wyznacza zbiór R = { (x, y): (x < y)}, czyli zbiór punktów na półpłaszczyźnie położonej nad prostą x = y. 25 1 POOSTĄWV MATEMATYCZNE Zbiór poprzedn ików x par uporząd kowanych (x, y) wyznac-wnych przez relację p nazywamy dziet/zi11ą ~ (p) tej relacji fl (p) = {xeX: 3 (xpy)} 1 Podobnie, zbiór następników y par ( x, y) wyznaczonych przez p nazywamy przeciwdziedzi11ą !'A*(p} tej relacji ~*(p) = {ye Y: relację 3 (xpy)} X Sumę ~ (p) u~* (p) nazywamy polem relacji p. W szczególnym przypadku, gdy Y =X, iloczyn kartezjański X x X= X 2 stanowi zbiór wszystkich par ze zbioru X. Relację pokreśloną na takim zbiorze nazywamy: zwrotną, jeśli Vxp x • syme1ryczną, jeśli przechodnią, jeśli V i.1.ex V (xp y = yp x). [(xp y Ayp z)"" xpz], ~.y.: t X relacją równoważ11ości, jeśli jest zwrotna. symetryczna i przechodnia. Na przykład, relacja identyczności = jest równoważnością. Relacja ,,. jest zwrotna i przechodnia, lecz nie jest symetryczna. Dla tej relacji i zbioru X = {O. I, 2} otrzymujemy X 2 ={(O, O), ( 0, 1), ( 0, 2), ( 1, O). ( I, 1), ( !, 2), ( 2,0),(2, 1),(2,2)},natomiast R = {(0,0),(0, 1),(0,2). ( 1, 1),( 1,2),(2,2)}. Dla danych dwóch zbiorów X i Y,funkcją o arg11memaclr x e X i wartoś­ ciaclr ye Y nazywamy relację binarną, określoną podzbiorem f r;;. X x Y, która spełnia warunek, że dla każdego argumentu x istnieje dokładnie jedna wartość yo własności (x, y) ef Zbiór argumentów (X) stanowi dziedzinęfimkcji, a zbiór wartości funkcji oznaczany symbolem f(X) stanowi przeciwdziedzinę fimkcji. Oczywiście f(X) c;; Y. Zamiast pisać ( x, y)e/ zwykle piszemy y = f(x) i wówczas funkcję f można zdefiniować jako zbiór par uporządkowanych f = {(x, y): y = /(x)} Mówimy, żefjest funkcją (odwzorowaniem, przekształceniem) określoną na zbiorze X i o wartościach w zbiorze Y (fodwzorowuje X w Y) oraz zapisujemy f: X .... Y (strzałkę czytamy „w"). Należy odróżnić symbole f i /(x): pierwszy oznacz.a samą funkcję (zbiór), a drugi wartość funkcji dla argumentu x. Dla pewnego zbioru A i;;; X , symbolem /(A) oznaczamy obraz zbioru A wyznaczony przez funkcję .1; czyli zbiór wartości y funkcji f d la argumentów xeA 26 1.4. RELACJE I FUNKCJE f(A) = {y: :J [(x e A) A(y = f(x))]} ~ Y X Jeśli f A= X, to obraz/(A) stanowi przeciwdziedzinę/(X). Odwrotnie, przeciwobrazem zbioru Be Y wyznaczonym przez funkcję nazywamy zbiór 1- '(B) złożony z takich argumentów x, że f(x) e B, czyli 1- 1(B) = {x:f(x)e B} ~X Aby uniknąć dwuznaczności w powyższych dwóch definicjach założono, i B rf: Y. Dla każdego podzbioru B ~ Y zachodzi tożsamość że Arf: X f(f - '(B)) =B X jest zbiorem liczb naturalnych % , to funkcję f: X-+ Y nazywamy ciągiem nieskończonym .. Jeśli X c .1V jest zbiorem skończonym, np. X= {l, 2, ..., k}, to funkcję f : X-+ Y nazywamy ciągiem skoń.czonym k-elementowym i zazwyczaj oznaczamy przez (a 1, a 2, ..., ak). Dla dowolnych zbiorów skończonych X , Y, jeśli X zawiera 11 elementów i Y zawiera m elementów, to istnieje m• funkcj i odwzorowujących X w Y. Oznaczając zbiór wszystkich funkcji f : X-+ Y symbolem YX, mamy w tym przypadku VX = m•. Przy niewielkich, skończonych dziedzinach najprostszą metodą okreś­ lenia funkcj i jest podanie wykazu bądź tablicy przyporządkowań elementów obrazu elementom dziedziny. Np. dla X = {a, b, c} i f(A) = {b, g} można zdefiniować funkcję f(x) podając trzy przyporządkowania (symbol >-+), czyli f: a>-+g, b>-+b, c>-+g. Te przyporządkowania reprezentują zbiór trzech par uporządkowanych/= {(a, g), (b, b), (c, g)}. Funkcję f(x) nazywamy różnowartościową łub iniektywną (iniekcją, przekształceniem jednojednoznacznym „ 1- 1"), jeśli dla różnych argumentów przyjmuje różne wartości, czyli gdy spełniony jest warunek Jeżeli V V xl EX xzeX [x 1 # x 2 = f(x 1) # f(x 2 )] w obrębie funkcji ciągłych funkcje stale rosnące lub stale obraz funkcji /(X) może tu być podzbiorem właściwym przeciwdziedziny Y. Funkcję f: X -+ Y nazywamy suriektywną łub suriekcją (symbolicznie f: X--+--+ Y), jeśli jej obraz /(X) jest całą przeciwdziedziną, czyli gdy f(X) = Y. Mówimy, że suriekcja jest odwzorowaniem zbioru X „na" zbiór Y. Funkcja ta może nie być różnowartościowa. Funkcję nazywamy bijektywną łub bijekcją (symbolicznie/: X <-+ Y), gdy jest ona jednocześnie iniekcją i suriekcją. Może również istnieć funkcja, która nie jest ani iniekcją, ani suriekcją ani bijekcją. Określamy ją jako odwzorowanie zbioru X „w" zbiór Y. Na przykład, Warunek ten spełniają malejące. Należy podkreślić, że 27 1. POOSTAWY MATEMATYCZNE liczb całkowitych), wówczas funkcja y = - x jest bijekcją, funkcja y = 2x jest iniekcją, a le nie jest suriekcją (gdyż obraz l(X) obejmuje tylko liczby parzyste w przestrzeni !t), a funkcja y = x 2 nie jest ani iniekcją (gdyż x 2 = ( - x) 2) ani suriekcją (gdyż obraz l(X) jest, podobnie jak poprzednio, podzbiorem właściwym przestrzeni .2'), czyli nie może być również gdy X = Y = !t (przestrzeń bijekcją. Wymienione cztery rodzaje funkcji oraz dwa rodzaje relacji są poglądowo zilustrowane na rys. 1.2. Jak widać z tabl. 1.2, wymienione cztery rodzaje funkcji mogą być interpretowane jako elementy zbioru wyznaczonego przez iloczyn kartezjański 25 x 2r, gdzie S = {„na"} i T = {„ 1- 1"}. o X RELA CJA y d y I NIEKCJA X - 1„ •• •• • • b X FUNKCJA „w" c X SURIEKCJA „no„ • •• • e X RELACJA. FUNKCJA f y y BIJEKCJA C!> C!> C!> C!> C!> C!> O> C!> C!> Rys. I. 2 Graficzna reprcuntacja „. r •> „ootji. d) Uridtji, c) a) ttbtji. b) IW>t tji bijcie"' ~ 1111on1 po• ·-"""id>. w-i..,.i. ..i..,. i r„tc;ę Dla iniekcji i bijekcjilistnieje równiei fimkcja odwrotnal- 1 , spełniająca równości 1- •(f(x)) = x, l(f- 1 (y)) = y oraz (f" 1)- 1 =I czyli I jest również funkcją odwrotną do funkcji 1- 1 • 28 1.5. ALGEBRA BOOLE'A Tablica 1.2 RODZAJE FUNKCJI („1 -1")' „1- l" (,,na")' funkcja ,.n'" iniekcja „na" suriekcja bijekcja Szczególnym rodzajem funkcji jest permutacja f: X.__, X, która zgodnie z zasadą Dirichleta jest zawsze bijekcją, jeśli X jest dowolnym zbiorem skończonym. W pewnych przypadkach funkcja[: X -+ Y może być niezdefiniowana dla pewnych argumentów xeX (np. funkcje y = l/x i y = lnx są nieokreślone dla x = O), natomiast może być zdefiniowana d la pewnego podzbioru właściwego A c X . Funkcję taką, tj. g: A--+ Y nazywamy częściową (niezupełną, zredukowaną do zbioru A) i oznaczamy symbolem f i A (rys. 1.3). y X Rys. J. J Przyklad bijekcji jako funkcji częściowej ALGEBRA BOOLE'A 1 .5 Symbolicznym sposobem opisu dowolnej dziedziny matematycznej, zwanej najczęściej systemem algebraicznym lub algebrą, jest układ przedmiotów (A.f1,f2· ...• /.) w którym A jest niepustym zbiorem i / 1 • f„ ..., J. są operacjami w A. Te ostatnie są funkcjami typu f : Am --+A (czyli funkcjami 111 zmiennych przebiegających zbiór A i o wartościach należących do A) i nazywane są m-argumentowymi operacjami (działaniami) w A. W szczególności, przy m = 2 otrzymuje się dwuargumentową (binarną) operację w A (np. sumowanie zbiorów), m = I oznacza operację jednoargumentową (unarną, np. dopełnienie zbioru), a m =O oznacza operację zeroargumentową (wyróżniony stały element w A, 29 1. PODSTAWY MATEMATYCZNE np. 0 ). Mówimy, że zbiór A jest zamk11ięty ze względu na te operacje, gdyż dla wszyst kich argumentów należących do A wartości wszystkich funkcji/, .f2 , „„!,, również należą do A. Algebrą Boole'a nazywamy co najmniej dwuelementowy zbiór zamknięty ze względu na dwa działania dwuargumentowe, jedno działanie jednoargumentowe i dwa działania zeroargumentowe, taki że dla jego wszystkich elementów spelniony jest określony zespól aksjomatów. Nazwa algebry pochodzi od jednego z jej twórców (George Boole, 1815- 1864, [2)). Algebra Boole'a moie służyć do opisu rachunku zbiorów (bez użycia relacji e) oraz rachunku zdań. Jeśli U jest dowolnym niepustym zbiorem, to system (2u. v, n, ', 0 , U) jest algebrą Boole'a. W szczególności jeżeli zbiór U zawiera /1 elementów, to otrzymujemy 2"-elementową algebrę Boole'a. Przy n = 1 mamy system ({0 , U}. v . n.', 0, U) stanowiący, łącznie z zespołem praw (I) + (IO) podanym w p. 1.2, dwuelementową algebrą Boole'a. Podobnie rachunek zdań można opisać dwuelementową albegrą Boole'a <{O, I}, v, /I , -, , O, I ) spełniającą równości (I) + ( IO) podane w p. I. I. W dalszym tekście pod nazwą „algebra Boołe'a" będzie rozumiana zerojedynkowa algebra sygnałów binarnych, sformułowana do tego celu przez C. E. Shannona w 1938 r. [IO). W algebrze tej operację sumy oznacza się symbolem + lub v, operację iloczynu symbolem · lub /I i operację negacji (uzupełnie nia) znakiem - łub '. W dalszym tekście będą przyjęte operatory binarne „v " i ,;", aby uniknąć dwuznaczności przy jednoczesnym stosowaniu operatorów arytmetycznych. Stąd operator „ +" będzie oznaczać wyłącznie dodawanie arytmetyczne, a do oznaczania operacji mnożenia arytmetycznego będzie służyć znak „ x ".Znaki ,;" będą w tek ście pomijane,je7..eli nie utrudni to wlaściwej interpretacji danego zapisu. Operator unarny „-" oznacza negację (uzupełnienie). Operator „v " {„ku beczek") wymawia się jako „plus" {logiczny) albo „lub", np. a v bczytamy „a plus b" (wiedząc, że jest to dodawanie logic-.tne)albo "a lubb". O perator ,;" wymawia się jako „razy" (mnożenie logiczne) albo „i", np. a·b czytamy „ab" lub „a razy b" (wiedząc, że jest to mnożenie logiczne) albo „a i b". Symbol negacji „-" wymawia się jako „nie'', np. a czytamy „nie a". Zerojedynkowa algebra Boole'a sygnałów binarnych jest zatem opisana przez sys tem ( B, V, „-. O, 1) gdzie 8 ~ {O, 1} jest zbiorem, w którym są określone operacje dwuargumentowe „v " i,;" i operacjajednoargumen towa ,; ",zgodnie z aksjomatami analogicznymi do równości (1) ~ (10) podanych w p. I.I i 1.2 Dla dowolnych zmiennych boolowskic/1, tj. zmiennych przyjmujących wartości ze zbioru 8 , np. x, y. z, istnieją następujące prawa algebry Boole'a: 30 1,5. ALGEBRA BOOLE'A I) XV X = X, 2) x v y = y V x. 3) x v (y vz) = (x v y) v z x·(y·z) = (x · y) · z 4) x v (y·z) = (x v y)·(x v z) x ·(y v z) = (x · y) V(x ·z) 5) x v (x ·y) =x. 6) x v O = x, x· I = x 7) XVl = I, x·O= O 8) XVX= I, x·x = 9) X= X JO) xVy = x·x = x (idempolentno.fo) x·y = y·x (przemienności (łączność) x-(x v y) = (rozdzielność) x (pochłanianie) (własności siałych) (dalsze własności stałych) (własności nega~ii) 0 (podwójna negacja) x·y, x·y = xvy (prawa de Morgana) Podobnie jak w rachunku zdań i zbiorów, do powyższych praw, z wyjątkiem (9), odnosi się zasada dualności. Stanowi ona, że w obrębie danego prawa każdy związek można otrzymać z drugiego pruz zamianę operatorów V na · i odwrotnie oraz stałych O na I i odwrotnie. Można jeszcze zapisać oczywiste równości 0=1 T=O 1V l = l I· I = I I V0=0 Vl=I 1·0=0 · 1 = 0 oraz drugie prawo pocliłaniania x v :i·y=x v y X • (x V y) = X· y Liczba aksjomatów, które są niezbędne do zdefiniowania a lgebry Boole'a, może być mniejsza. Często jest cytowany układ sześciu aksjomatów, sformułowany przez E. V. Huntingtona [4]. Obejmuje on cztery wyróżnione aksjomaty 2, 4, 6 i 8 oraz następujące dwa, ujęte już w podanej głównej definicji a lgebry Boole'a: a) wszystkie działania w zbiorze A są zamknięte, tj. V x,yeA 31 (x v yEA)' (x · yE A) 1. b) PODSTAWY MATEMATYCZNE istnieją przynajmniej dwa elementy x. y e A, takie że x i' y. Pozostałe sześć praw 1, 3, 5, 7, 9 i 10 może być zatem traktowane jako zbiór twierdzeń, których słuszność można wykazać wykorzystując aksjomaty 2, 4, 6 i 8. Istnieją także inne układy aksjomatów Huntingtona [5]. Prawa De Morgana potocznie formułuje się następująco: negacja sumy jest równa iloczynowi jej zanegowanych składników oraz negacja iloczynu jest równa sumie jego zanegowanych czynników. Dla n zmiennych x" i= I, 2, ..., n prawa De Morgana można zapisać w postaci uogólnionej jako • <V x,) = n• x, l= l i= 1 • • i• l i= l oraz <O x,) = V x, gdzie symbol Voznacza uogólnioną sumę logiczną • V x1 = x 1 vx 2 v ... v x.„ i• 1 a symbol n oznacza uogólniony iloczyn logiczny n• Xi= X 1 ·xz···Xn I= I Z uwagi na silny związek algebry sygnałów binarnych z rachunkiem zdań (zwanym również rachunkiem logicznym) przy opewwaniu algebrą Boole'a często stosuje się przymiotnik „logiczny" w znaczeniu "boolowski" (np. iloczyn logiczny, mnożenie logiczne, stan logiczny, logiczne „O" i „I "). Ma to na celu podkreślenie, że nie chodzi w danym przypadku o operacje czy argumenty nieboolowskie, w szczególności arytmetyczne. Mówimy także o „funkcji logicznej" w znaczeniu „boolowskiej", czyli funkcji na algebrze Boole'a i o „układzie logicznym" jako o układzie realizującym funkcję logiczną (boolowską). W dalszym tekście określenia „logiczny" i „boolowski" będą traktowane jako równoznaczne. 32 1.S. ALGESRA BOOLE'A LITERATURA t. Birkhoff G ., Bartec T. C.: Współczesna algebra stosowa1J0, PWN, Warszawa 1983 2. BooleG.: An inuest.igation ofthe lawsoftlw11ght, Open Court, Chicago 1854 (Do"er Publications, New York, 1954) 3. Grzegorczyk A.: Zarys logik; matematycznej , PWN, Warszawa 1984 4. Huntington E. V.: Sets of independent postulatesfor che algebra oflogic, Trans. Am. Malh Soc„ Vol. 5, 1904, 288-309 5. Huntington E. V.: New sets of independenc posculates for the algebra of logic, Trans. Am. Math. Soc„ Vol. 35, 1933, 274-304 6. Kuratowski K.: Wstęp do teorii mnogości i copolvgii. PWN, Warszawa I 977 7. Kuratowski K.• Mostowski A.: Teoria 1nnogo.ici. PWN, Warsza;,.\'a 1978 8. Majewski W„ Albicki A.: Algebraiczna teoria awomaców. WNT, Warszawa 1980 9. Rasiowa H.: W.Stęp do matematyki współczesnej, PWN, Warszawa 1984 10. Shannon C. E.: Symbolic analysis of relay and swicching circuits, Trans. AIEE, Vol. 57, 1938, 713.723 li. ł/ istory of logic, Encyclopacdia Britannica, Vol. 14, 1963, 305-323 2 CYFROWY ZAPIS INFORMACJI OKREŚLENIA PODSTAWOWE 2.1 Przechowywanie, przetwarzanie i przesyłanie informacji stanowią od wieków przedmiot ludzkiego zainteresowania. Przechowywanie (pamiętanie) informacji ·realizuje się przez operację zapisu (tekstowego lub graficznego). Najprostsze informacje zapisuje się tekstowo przy użyciu pojedynczych znaków, takich jak cyfry i litery. Bardziej złożone informacje zapisuje się tekstowo w postaci odpowiednio dłuższych łańcuchów znakowych. Aby wykonać operację zapisu, najpierw należy utworzyć alfabet i język nad tym alfabetem. Alfabet defin iuje się jako skończony, niepusty zbiór różnych znaków (np. A = {a. b..... z}, D = {O, 1,..., 9}), który :zazwyczaj jest uporządkowany, tzn. dana jest kolejność znaków alfabetu. Służy on do tworzenia słów informacyjnych, czyli skończonych łańcuchów znaków (np. A 1 = bdaaf). W praktyce, zwłaszcza w telekomunikacji, słowa nazywa się również ciągami. Liczba n znaków tworzących słowo (ciąg) A; jest określana jako długość słowa (ciągu) n(A ;), np. n(ccag) = 4. Na słowach określa się operację złożenia (dostawienia, zetknięcia, konkatenacji). Złożeniem słów A 1 i A ;jest słowo A 1 powstałe przez zetknięcie ze sobą łańcuchów znaków stanowiących te słowa w taki sposób, że słowo A;iest wpisane z lewej strony, a słowo A; z prawej, przy czym n(AJ = n(A1) + n(A). Operację złożenia zapisuje się przy użyciu znaku kółeczka „•", kwadracika „o", a czasem również znaku dodawania „ + ", :zależnie od przyjętej konwencji. Na przykład, dla podanych wyżej słów A 1 i A1 A1 = A 1° A; = bdaafccag Stosowane są także nawiasy ostre, np. (A 1, A;) zamiast A 1 • A;. pojedynczy znak można interpretować jako słowo jednoznakowe, zatem każdy łańcuch znaków tworzących słowo można określić jako wynik operacji złożenia pojedyncznych znaków, np. A 1 = bdaaf = b 0 d 0 a 0 a 0 f. Ponieważ 34 2. 1. OKRESLENIA PODSTAWOWE Jeżeli alfabet zawiera tylko dwa znaki, to nosi on nazwę a!fabet11 być dowolne dwa różne znaki, np. a i b, Li H , lecz najczęściej stosuje się cyfry O i l i wówc-tas alfabet dwójkowy oznacza się symbolem 8 = {O, l }. Słowa utworzone nad takim alfabetem określa się jako słowa dwójkowe (binarne). Najkrótsze słowo dwójkowe, zawierające tylko jeden znak (n = I), określa się jako bit. Słowo z n = 4 określa się jako tetroda lub kęsek (nibble), a z n = 8 jako bajt (byte). Językiem nazywa się niepusty, skończony zbiór różnych słów nad danym alfabetem. Znaczenia tych słów tworzą semantykę języka, a reguły ich używania dwójkowego (binarnego). Mogą to stanowią składnię języka. Słowo dwójkowe o długości n stanowi n-tkę uporządkowaną, będącą elementem zbioru 8 ", który zawiera 2" takich słów (p. 1.4). Na przykład przy n = 3 zbiór 8 3 zawiera 8 słów: 8 3 = {OOO, 001, 010, 011, 100, 101, I IO, 111}. Zatem dowolny niepusty podzbiór J ~ B" może stanowić pewien język nad alfabetem dwójkowym. Liczbę i numerację bitów w słowie dwójkowym określa się przez podanie formatll słowa. Typowym sposobem zdefiniowania formatu słowa jest przedstawienie słowa w postaci indeksowanego łańcucha znakowego, co umożliwia operowanie na bitach (traktowanych jako litery a nie liczby) i ich składanie w nowe słowa. Wówczas format słowa X można zapisać w postaci X [a, b, ..., n], gdzie liczby a. b. . n są wzrastającymi numerami pozycji bitów w łańcuchu. Liczby te dobiera się ze zbioru A' lub A'0 • Jeśli numeracja ta jest ciągła od k do m, to zapis formatu słowa można uprościć do postaci podobnej do stosowanej w języku Algol: X [k : m]. Na przykład, jeśli A(O : 3) = 1010 i B[O: 7) = 10001101, to można określić słowo C[0:4) = A[O, l] • B[5 :7] = 10101. Pojedynczy bit na pozycji i słowa X zapisuje się jako X [i]. Opisany sposób jest równoważny definicji formatu słowa jako jednowymiarowej tablicy znakowej czyli wektora. Stosowane są również inne konwencje oznaczeniowe, np. A(O- 3), B (O :7), C(0 .. 5). Jeżeli z jednej st rony mamy zbiór I informacji /, a z drugiej strony dysponujemy takim zbiorem A słów A, że można określić związek między pewnymi elementami obydwu tych zbiorów w postaci zbioru par uporząd­ kowanych ( / , A), to mówimy, że informacje I są kodowane przez słowa A. Ogólnie, kod jest definiowany jako zbiór R tych par, wyznaczony przez relację kodową p (patrz rys. 1.2 a-f) „. R ={(I, A)e / x A :lp1 A} W praktyce zazwyczaj mamy do czynienia z kodami funkcję kodową J..: I -+ A , 35 czyli A = f,.(I) określonymi przez 2. CYFROWY ZAPIS INFORMACJI o postaciach opisanych w p. 1.4. Wiele kodów opisuje się bijekcją, przyjmując nazwę kodów bijektywnych (rys. I .2e, f), a niektóre iniekcją (rys. l .2d, f) i dlatego są nazywane kodami iniektywnymi. Jeśli dana funkcja kodowa jest nieokreślona dla pewnych elementów zbioru I , czyli jest funkcją częściową (patrz rys. 1.3), to opisany nią kod również określa się jako częściowy (niekompletny). Natomiast jeśli przeciwdziedzinaf.(/) danej funkcji kodowej jest podzbiorem właściwym zbioru A, tj.f.(l ) c A, to kod opisywany tą funkcją nazywany jest nadmiarowym. Kodem takim może być kod iniektywny i kod opisany funkcją „w" (rys. l.2b, d). Nadmiarowość jest charakterystyczną cechą kodów BCD (p. 2.2.5) oraz kodów kontrolnych (p. 2.4). Przez wybór różnych podzbiorów par ze zbioru I x A można utworzyć wiele różnych kodów. W kodach dwójkowych, służących do kodowania m informacji, liczbę bitów n w słowach kodowych zbioru A należy tak dobierać, aby liczebność N = 2" zbioru A była nie mniejsza od m: Do zakodowania pierwszej informacji istnieje N możliwości, do zakodowania drugiej mamy N -1, dla trzeciej N -2 itd. Liczbę różnowartościowych kodów kompletnych lub nadmiarowych, czyli opisywanych funkcjami bijekcji lub iniekcji, można zatem określić jako N x(N-l)x(N-2)x ... x(N-m+ I ) = N!/(N - m)! co w praktyce daje bardzo duże wartości (p. 2.2.5). Są one jednak mniejsze od liczby A 1 wszystkich możliwych kodów, równej Nm (p. 1.4), gdyż kody niekompletne oraz kody opisywane funkcjami suriekcji i „w" zostały wykluczone. Kodowanie stanowi zatem operację zapisu informacji przy użyciu odpowiedniego kodu. W technice cyfrowej pojęcie kodowania stosuje się zazwyczaj wówczas, gdy zbiór I stanowi dziedzinę funkcjif. i obejmuje ciągi nad alfabetem źródłowym (zrozumiałym przez człowieka). Zbiór A zawiera natomiast ciągi nad alfabetem wynik.owym (zrozumiałym przez układ bądź system cyfrowy), czyli nad a lfabetem dwójkowym B. Dziedzinę I określa się ogólnie jako język źródłowy, a przeciwdziedzinaf.(/) ~ A stanowi język wynikowy (potocznie mówi się ,język kodu"). Ciągi A ef.(/) zwykle się określa jako ciągi kodowe. Służą one do zapisu danych w kodzie f.. Na przykład, jeśli A = B3, to język ten może służyć do zakodowania najwyżej ośmiu (2 3 = 8) informacji, np. liczb ze zbioru I = {O, I, 2, ... , 7}, w różny sposób. Przy zastosowaniu naturalnego kodu dwójkowego (p. 2.2. I) następujące przyporządkowania określają bijekcję f.: I <-> A 01-+000 Jt-+001 21-+ 0IO 31-+0l I 36 2.2. KODY LICZBOWE 4>-+ 100 5>-+ 101 61-> I LO 7>-+111 Każde z tych przyporządkowań reprezentuje parę uporządkowaną ( l, A) , np. ( 5, 101). Par takich w zbiorze lx A istnieje w tym przypadku 8 x 8 = 64, lecz tylko osiem z nich wchodzi do zbioruf,.. W powyższym przykładzie przedstawiony został kod kompletny. Jeśli jednak zwiększyć liczbę m słów informacyjnych I powyżej ośmiu, np. / - {O, I, 2, 3, 4, 5, 6, 7, 8}, to otrzymany kod będzie częściowy (niekompletny). Z kolei przy zmniejszeniu liczby m poniżej ośmiu ot rzymuje się kod nadmiarowy. O peracja dekodowania opisuje się runkcją odwrotną 1.- I = L, która istnieje dla kodu iniek tywnego i bijektywnego (p. 1.4). Powyższe operacje kodowania i dekodowania stanowi ą szczególne przypadki ogólnej operacji, zwanej potocznie, lecz niezbyt ściśle konwersją kodów. Ściślej biorąc, jest to konwersja (tłumactenie) języków, ogólnie języka wejściowego X na język wyjściowy Y, poprtez określenie pojedynczego kodu t ranslacyjnego w postaci pewnego zbioru par uporz.1dkowanych ( X, Y) e X x Y, gdzie Xe Xi Ye Y są odpowiednimi słowami. Kod taki definiuje się jako relacjęp, lub runkcję J. w sposób opisany w p. J.4. W literaturze jest podawana także definicja kodu j ako zbioru odwrotnych par (A, / )e A x I , ze zbiorem A zawierającym dziedzinę relacj i kodowej bądź będącym dziedzim1 runkcji kodowej . Kody liczbowe stosuje się do zapisu informacji liczbowych. Jeżeli informacje obejmują nie tylko liczby, lecz także litery i odpowiednie znaki interpunkcyjne, to kod stosowany do zapisu takich informacji tekstowych określa się jako alfanumeryczny. Do wykrywania (detekcji) i ewentualnego poprawiania (korekcji) błędów, które mogą powstać w praktyce przy przesyłaniu lub podczas przechowywania informacji kodowanych cyfrowo, służą odpowiednie kody zabezpieczaji1ce przed błędami. Są to specjalne kody nadmiarowe, ok rcślane jako ko111ro/11e, gdyż służą do kontroli wierności informacji. KODY LICZBOWE Kod y naturalne 2.2 2.2.1 Najbardziej rozpowszechnionymi kodami liczbowymi są kody zwane na111ral· nymi. Zapis liczb w kodzie naturalnym jest pozycyjny. O zoacza to, ie w słowie kodowym A reprezentującym liczbę dziesiętną L(A) każdy znak a1 przyjętego alfabetu zajmuje ściśle określoną pozycję (i), przy czym tej pozycji jest przypo· rządkowana odpowiednia waga w1 = p1, gdzie stała p jest tak zwaną podstawą 37 2. CYFROWY ZAPIS INFORMACJI przyjętego kodu liczbowego. Stąd też mówimy, że kod nat11ra/11y jest kodem pozycyjnym, wagowym, o stałej podstawie. Powszechnie stosowany naturalny kod dziesiętny (w skrócie ND) ma oczywiście podstawę p = 10. Na przykład, naturalna liczba dziesiętna A = 2578 jest interpretowana jako L(A) = 2xJ0 3 +5xJ0 2 +7xJ0 1 +8xl0° lub inaczej 3 L(A) = La 1 101 gdzie a0 = 8, a 1 = 7, a2 = 5 i a 3 = 2. Jak widać, liczba L(A) jest identyczna ze słowem dziesiętnym A, które ją reprezentuje. Wynika to z potocznego zastosowania kodu dziesiętnego jako kodu zewnętrznego (wejściowego i wyjściowego) dla ukladów (systemów) cyfrowych, w celu zapisu i odczytu informacji liczbowych przez czlowieka. Przy zapisie liczb w postaci odpowiednich słów kodowych A czasem należy wyraźnie wskazać na podstawę użytego kodu liczbowego, aby uniknąć niejednoznaczności. Realizuje się to przez zapis typu AP lub (A)P , np. 2143 8 lub (2143) 10, albo przez wprowadzenie odpowiedniego przedrostka lub przyrostka znakowego, np. BlOlO, 2CD7H (B - kod dwójkowy, H - szesnastkowy). Wielkość przyjętego alfabetu liczbowego, czyli liczba różnych znaków, które mogą być stosowane do zapisu liczb w kodzie liczbowym o podstawie p, jest także równa p, obejmując znaki a,e{O, l, ... ,p-1}. Na przykład, w kodzie dziesiętnym (p = 10) posługujemy się dziesięcioma symbolami ze zbioru {O, I, 2, ... , 9} Odpowiednie formuły wiążące slowa kodowe z nieujemnymi liczbami rzeczywistymi są następujące: I. Nieujemna liczba całkowita L ~ O, przedstawiona w kodzie naturalnym o podstawie p w postaci slowa A o długości 11 A=a._ 1 . •. a, ... a 1 a0 • O~a,~p-1 jest równa 11- L(A) = a. _ 1 pn - I +a. _ 2 pn - 2. 2 + ... +a , p I l + a0 p = L... a,p i O '\' (2.1) l= O Nieujemna liczba ułamkowa O~ L < 1, przedstawiona w kodzie naturalnym o podstawie p w postaci słowa A o długości m A = a _ , a _ 2 .„ a;-„a - m+ia - m, O ~ a1 ~ p - 1 jest równa - 1 L(A) = a _ 1 p - 1 +a _ 2 p - 2 + ... + a_„+ 1 P-m+•+a_mp - "' = L }= -m 1pi t1 (2.2) 38 2.2. KODY LICZBOWE 3. Nieujemna liczba rzeczywista L ~ O, mająca część całkowitą i ułamkową, przedstawiona w kodzie naturalnym o podstawie p w postaci słowa A o długości (n+ m) A = a„ _ 1 an _ 2 ... a 1 a0 a_ 1 a_ 2 ... a_m jest równa •- I L(A) = L a,p• (2.3) k= -m Niezależnie od rodzaju liczby (całkowita, ułamkowa czy ogólnie biorąc rzeczywista), słowo kodowe zawierające n dowolnych symboli przyjętego alfabetu może reprezentować najwyżej p• różnych liczb. Najmniejsza z nieb jest zerem, a największa zależy od tego, czy jest to liczba całkowita, czy ułamkowa. Maksymalna wartość liczby całkowitej jest równa L max = p" - 1 (2.4) a dla liczby 11/amkowej L < 1 (2.5) Na całkowitą przykład, ma czterocyfrowe słowo w kodzie ND reprezen tując liczbę wartość maksymalną Lm„ = 104 - 1 = 9999 a reprezentując liczbę ułamkową Lmax = 1-10- 4 = 0.9999 W niniejszej książce przy zapisie liczb niecałkowitych zamiast symbolu przecinka dziesiętnego będzie stosowana kropka. Konwencja ta jest zgodna z notacją liczb rzeczywistych we współczesnych językach programowania komputerowego i jest często stosowana w literaturze specjalistycznej z zakresu techniki cyfrowej. Ułatwia na przykład zapis ciągu liczb rzeczywistych (np. O.I, 0.2, 0.3, ...) i przedziału o krańcach wyznaczonych przez lic-.tby rzeczywiste (np. [0.17, 0.44)). Naturalny kod dziesiętny (ND) jest stosowany powszechnie z uwagi na wielowiekową tradycję, popularność i zrozumiałość. Jest on jednak w użyciu dopiero od około dziesięciu wieków. W starożytnym Rzymie też był stosowany kod dziesiętny, lecz nie był to naturalny kod dziesiętny. Stosowane wtedy (i jeszcze dzisiaj na receptach lekarskich) były następujące symbole: I = 110, V = 5 10, X = 1010 , C = 100 10 , D = 50010 , M = 1000 10 . Np. rok 1990 można wyrazić jako MCMXC, gdzie CM = 1000-100 i XC = 100- 10. W kodzie tym brak było symbolu zera. Koncepcja zera była jednak j uż znana w starożytnej Mezopotamii, gdzie był stosowany pozycyjny kod liczbowy o 60 symbolach. 39 2. CYFROWY ZAPIS INFORMACJI Jakkolwiek kod ten został zarzucony ok. 1700 r. p.n.e., to jednak jego wpływ trwa do dzisiaj: godzina ma 60 minut, minuta 60 sekund, kolo ma 6 x 60 = 360 stopni. Naturalny kod dziesiętny został opracowany w Indiach około piątego wieku n.e. i udostępni ony cywilizacji europejskiej przez Arabów. W technice cyfrowej najczęściej jest stosowany naturalny kod dwójkowy (binarny) z p = 2, oznaczany literami NB (Natura/ Binary). Dla nieujemnych liczb calkowityc/1, zapisanych w postaci słowa B = b. _ 1 b. _ 2 ••• b1 ••• b 1 b0 , b,e{O, l} otrzymujemy zgodnie z wzorem (2.1) reprezentację dziesiętną jako n- 1 L(B) = L b,2 1 (2.6) i= O przy czym L„1• = O i zgodnie z wzorem (2.4) L„0 x=2" - 1 Na przykład, I X (2.7) liczba dwójkowa 1011 2 jest 23 + OX 22 + l X 2 1 +I X równoważna liczbie dziesiętnej 2° = 1110 Dla liczb ułamkowych stosuje się w podobny sposób wzór (2.2). Nieujemna liczba ułamkowa przedstawiona w kodzie NB słowem zerojedynkowym B = b _ 1 b _ 2 ..• b;-··b - m+ib - .„ b;e{0,1 } jest równa - 1 L(B) = L b;2j (2.8) j= - m przy czym Lmi• = O i zgodnie z wzorem (2.5) L.,., = 1-2- "'. (2.9) Na przykład, jeśli liczba dwójkowa 1011 2 reprezentuje liczbę ułamkową (0.IOl l)i, to jej reprezentacja dziesiętna będzie równa I x2 - •+ox2- 2 +1 x2 - 3 +1 x2 - 4 =0.687510 Dla nieujemnych liczb rzeczywistych o części całkowitej i ułamkowej się ogólny związek (2.3). Na przykład liczba dwójkowa 1011.1011 2 ma reprezentację dziesiętną równą I J.6875 10 . W słowie dwójkowym bit związany z najw iększą wagą (skrajny z lewej strony) nazywamy najwyższym lub najbardziej znaczącym bitem (MSB - Most Significant Bit), a bit związany z najmniejszą wagą (skrajny z prawej strony) - najniższym lub na;mniej znaczącym bitem (LSB - Least Significant Bit). stosuje 40 2.2. KODY LICZ80W( Jak powiedziano wcześniej, liczba słów w zbiorze stanowiącym język kodu dwójkowego zależy tylko od długości n tych slów kodowych i jest równa N = 2". Wynika stąd, że dla zakodowania liczby m informacji elementarnych jest potrzebny kod dwójkowy o długości słów nie mniejszej niż nmin = log2 111::::: 3.32 log 10 111 a ponieważ długość słowa jest liczbą całkowitą, n= INT(nm;„) + (FRC(n„,0 ) >O) (2.10) zatem (2.11) INT(n„,.) - część całkowita gdzie: liczby nmin obliczonej z (2. IO), liczby nmin> (FRC (nminl > 0) - predykat, przyjmujący wartość l przy spełnieniu lub wartość O przy niespełnieniu. FRC(nmin) - część ułamkowa Na przykład, dla m = 7 otrzymujemy nmio ::::: 2.81, czyli n = 3. Podobnie dla m = IO otrzymujemy 11„,. ::::: 3.32 czyli 11 = 4. Kod dwójkowy kojarzy się zwykle z pracami G. Boole' a ( 1854) oraz C. E. Shannona (1938). Początki dwój kowego kodu liczbowego sięgają jednak XVII w. (F. Bacon, 1605). W XVIII w. naturalny kod dwójkowy prt.edstawił G. W. Leibniz. Na początku XIX w. wstała opracowana przez J. M. Jacquarda pierwsza maszyna tkacka z elementami sterowania cyfrowego ( 1805), a dopiero potem nastąpiło opracowanie algebry logiki przez G . Boołe'a ( 1854) oraz dwuwartościowego alfabetu telegrafic-Lnego przez J. Baudota (1874). Zapis dużych liczb w naturalnym kodzie dwójkowym oznacza wprowadzanie dlugich słów złożonych z zer i jedynek, co przy „ręcznym" operowaniu liczbami jest niewygodne i sprzyja powstawaniu błędów. Dla skrócenia zapisu liczb dwójkowych wprowadzono zatem kody o podstawie p = 2', gdzie r > I jest liczbą naturalną. Najczęściej są stosowane dwa takie kody: kod ósemkowy (r = 3) i kod szesnastkowy (r = 4), oznaczany czasem dla wygody literami HEX (z ang. liexadecimal). W zapisie liczb kodu szesnastkowego częst o stosuje się przedrostek $ lub przyrostek H. Liczby są przedstawione w tych kodach zgodnie z ogólnymi wzorami (2.1) do (2.3). W tablicy 2.1 są przytoczone reprezentacje niektórych liczb w różnych kodach. Jak widać, w kodzie szesnastkowym są wprowadzone symbole literowe A, B, ..„ F do zapisu liczb dziesiętnych odpowiednio IO, 11, ..„ 15. Każdą tetradę z naturalnego kodu dwójkowego można więc zapisać tylko jednym symbolem z szesnastu możl iwych (0, I, .. „ 9, A, B, .. „ F). Umożliwia to znaczne skrócenie zapisu liczb dwójkowych. 41 2. CYFROWY ZAPIS INFORMACJI Ruu.zntr-ACJA tfJEX;T()1t,Y(H UCU W l.02HYCK Tobika 2.1 I.ODACH SATUkAU'll"Y(:H Kod dziesiętny (ND) Naturalny kod dwójkowy (N8) o o I 2 3 4 I IO li 100 101 11 0 Lli 1000 1001 5 6 1 8 9 IO li 12 13 L4 15 L6 17 18 19 20 21 31 32 40 50 60 63 64 70 100 127 128 200 255 256 1000 1023 1024 42 1010 1011 1100 1101 ILLO LLli 10000 IOOOl 10010 10011 10100 IOLOI 11111 100000 101000 110010 11 1100 Lli LI L 1000000 10001 10 1100100 111111 1 10000000 11001000 11111111 LOOOOOOOO IL li LO I OOO 1111111111 I 0000000000 Kod ósemkowy (0C7) o Kod szesnast· kowy (HEX) o I I 2 2 3 4 5 6 1 10 11 3 4 12 13 14 IS 16 17 20 21 22 23 24 A 2S 37 40 50 62 74 77 100 106 144 177 200 310 377 400 1750 1777 2000 s 6 7 8 9 B c o e F 10 11 12 13 14 IS IF 20 28 32 3C 3F 40 46 64 7F 80 CB FF 100 3E8 JFF 400 2.2. KODY LICZBOWE Konwersja liczb przedstawionych w kodach naturalnych o różnych podstawach 2.2.2 Konwersję liczp o różnych podstawach wykonuje się w oparciu o dwa proste algorytmy, związane z konwersją liczb całkowitych i ułamkowych. Celem konwersji jest określenie liczby o podstawie y, reprezentującej liczbę o podstawie x. W praktyce najczęściej x = 10 i y = 2, co oznacza konwersję dziesięt­ no-dwójkową. Poniżej podane są reguły konwersji dla liczb nieujemnych. Konwersja dziesiętnych liczb całkowitych jest dana dziesiętna liczba całkowita L, to równoważną jej liczbę Bo podstawie p otrzymuje się w wyniku interacyjnego dzielenia przez podstawę p. W wyniku pierwszego dzielenia otrzymuje się Jeżeli L b p p 0 -= ao+- gdzie: a0 - liczba całkowita, b0 ~ p - I - reszta. Dalsze dzielenia wykonuje równego zeru: się tak długo, dopóki me otrzyma a0 b, -=a1+P p a•. , = O+~ p p Poszukiwana liczba B o podstawie p ma postać B = (b.b• . , „. b, b0 )p Przykład. Przekształcić liczbę 61 I T =30+ 2 b0 = 1 ~= b, 2 43 15 =o 61 10 na jej równoważnik dwójkowy. się a. 2. CYFROWY ZAPIS INFORMACJI 15 I - =7+2 b, = I 2 7 I - =3+2 2 3 I I 1 2 2 2= 1 +2 b4 = I -= 0+Stąd 61 io = 111101 ,. Poniższy program, napisany w popularnym języku komputerowym Turbo Pascal umożliwia konwersję dodatnich, całkowitych liczb dziesiętnych na liczby o dowolnej podstawie z zakresu [2, 16]. prova• Koca l i { Prietwaria dtleaietnQ łt c ib41 ca lkowlta na lictbe o innej podstawie 1 16 } uae1 Crti var liczbo. longtnt: baza, u byte; •t begin ł o atrtnrl 40J; •trlng( iJ; ClrScr; GoToXY( I. 10); Write(' Wpisz licz btt dtiealetno. .. '); Readln( liczba); Write('Wpi&t nowa podstnwe .•. ..• '); Readln(baza); s :• . repeat u :. liczba llOd baza; St r (u. t); lf u > 9 tben t S : : t + !• Cbr(u + 55); Sj liczba : = liczba div bezo: u.ntil liczba = O; Wri teln; Wr ite('Prietworiona liczbo jett rowna: s) e nd . Konwersja dziesiętnych liczb ułamkowych Jeżel i dana jest dziesiętna liczba ułamkowa l, to równoważną jej liczbę Bo podstawie pot rzym uje się w wyniku iteracyjnego mnożenia przez podstawę p. W wyniku pierwszego mnożenia o trzymuje się lp = b _ , +d, gdzie: b _ 1 ~ p-1 to liczba d, - nowy ułamek. 44 całkowita, 2.2. KODY LICZBOWE Dalsze mnożenia wykonuje się tak długo, dopóki nie ornyma się żądanej liczby cyfr w liczbie o podstawie p (czyli żądanej liczby bitów pny p = 2) lub dopóki nie otrzyma się ułamka dm = O d 1 p = b_2 +d 2 dzp = b _3 +d3 dm - 1P = b _m+dm Jeśli d„ > O, to błąd wynikający z zaokrąglenia jest równy p-"'d..,. Poszukiwana liczba B o podstawie p ma postać B = (O.b_ ,b _z ···b- m)P Przykład. Przekształcić liczbę 0.2110 na jej równoważnik dwójkowy. 0.2 l x2=0+0.42 b _ 1 = 0 0.42 X 2 = 0 + 0.84 b _ 2 = 0 0.84 x 2 = 1+0.68 b_ 3 = 1 0.68x2 = 1+0.36 b _4 = 1 0.36x2 = 0+0.72 b_5 = 0 0.72x2=1 + 0.44 b_6 =1 itd. Stąd 0.21 1 0 = (0.001101.„)i. Poniższy program Konuła w języku Turbo Pascal służy do konwersji dziesiętnych liczb ułamkowycf1 na liczby o podstawie z zakresu (2, 16]. Maksymalna liczba cyfr w przetwarzanej lic.zbie wynosi 30. progra• Konula; ( Przetwarza dziesietna li c zbe ułamkowa ł na liczbe o innej podstawie i usee Crt; var 1 iczba bo.zo, n, u t 16 O } real; byte; otring[2 ) ; begin ClrScr: GoToXY(l, 10); Write('Wpisz li czbę ułamkowa ... •); Readln(liczba); Wri te( ' Wpisz nowa podst owe ... •); Read ln (bata); n : . O; Writeln; Write( 'Przetworzona liczba jest równa: repeat l iczba :a li czba - baza; u :. Trunc(liczba); Str(u, t); if u> 9 then t :• Chr(u + 55); Write(t); liczba :• liczba - u; n :. Succ(n); until (liczba • 0) or (n • 30) end. 45 . ' ); 2. CYFROWY ZAPIS INFORMACJI Jeżeli przekształcona liczba ma część całkowitą i ułamkową, to obydwie części przetwarza się oddzielnie według opisanych wyżej algorytmów. Pnykład: Przekształcić liczbę a) 61.2 110 na liczbę w kodzie szesnastkowym. część całkowita 61 16 = 3, reszta 13,0 = 0 16 = b0 3 = O, reszta 3 = b 1 16 b) część ułamkowa 16 = 3.36 b _I = 3 0.36 X 16 = 5.76 b_2 = 5 0.76 X 16 = 12.16 0.16x 16 = 2.56 b_3 = 1210 = b_. = 2 0.56 X 16 = 8.96 b_ 5 = 8 itd. 0.21 X c,6 W rezultacie liczba szesnastkowa b 1 b0 b_,b_ 2 b_ 3 b_ 4 b_ 5 jest równa 3D.35C28 16 . W tym zapisie cyfra b _5 oznacza najmniej znaczącą cyfrę (LSD - Least Sig11ifican1 Digit), a cyfra b, oznacza najbardziej znaczącą cyfrę (MSD - Most Significant Digit). Błąd zaokrąglenia wynosi 0.96 x 16- 5 , tak że właściwe jest przyjęcie b- s "'9. Otrzymany wynik można łatwo sprawdzić przy użyciu wyników z poprzednich przykładów, gdyż konwersję zapisu szesnastkowego na dwójkowy otrzymuje się przez łatwy rozkład każdego symbolu liczby szesnastkowej na odpowiednie tetrady: (11 1101.0011 0101 1100 0010 IOOih = 3D.35C29 16 Konwersję całkowitych liczb żna wykonać na podstawie (2.6), dwójkowych na dziesiętne najłatwiej monatomiast konwersję ułamkowych liczb dwójkowych na dziesiętne według (2.8). W obydwu przypadkach pomocna jest tablica potęg liczby 2 (tabl. 2.2). W tablicy tej umieszczono również skrótowe oznaczenia liczb większych od tysiąca, powszechnie stosowane do oznaczania pojemności pamięci. Na przykład, układ pamięciowy zawierający 1024 słów jednobitowych ma pojemność równą IK x I, czyli I kilobit (I Kb), a pamięć zawierająca 65536 słów ośmiobitowych ma pojemność równą 64K x 8, czyli 64 kilobajty (64 KB). Konwersję liczby szesnastkowej na dziesiętną wykonuje się według jednego z wzorów (2.1), (2.2), (2.3), przyjmując p = ł6. Program Kosd jest prostym programem w języku Turbo Pascal do konwersji całkowitych liczb szesnastkowych na dziesiętne: 46 2.2 KODV llCWOWE TABLICA POT(O LłCUY 2 Tablica 2.2 2" n 1 2 o '8 2 16 )2 4 s 6 7 8 9 10 11 12 1) 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 )0 )I )2 I ) " 1 2 4 8 17 )4 68 I 2 4 8 16 33 67 1)4 268 S36 07) 147 294 S89 179 3S9 719 128 2S6 512 1 024 2 048 4 096 8 192 16 )84 )2 768 65 536 1) 1 072 262 144 524 288 048 576 097 152 194 304 )88 608 777 216 5S4 4)2 108 864 217 728 43S 456 870 912 741 824 48) 648 967 296 934 S92 869 184 738 )68 476 736 47 li Kl <2Kl OK> C8Kl C16K) ()2K) C64K) C128K> C256K) C512K) ( 1K) C2Kl C4Kl C8Kl Cl6K) )) )4 35 35 2-• 1.0 o.s 0.2S 0.12S 0.062 s 0.0)1 2S 0.01S 62S 0.001 812 O.OO) 906 0.001 9S3 o .ooo 976 o.ooo 488 o.ooo 244 o.ooo 122 o.ooo 061 o.ooo 0)0 o.ooo 01S o.ooo 007 o.ooo 003 o.ooo 001 o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo o.ooo ooo O.OOO OOO s 2S 12S 562 281 140 070 035 517 2S8 629 814 907 9S3 476 2)8 119 059 029 014 007 00) 001 ooo ooo ooo ooo ooo ooo OOO 5 25 625 )12 156 S78 789 )94 697 )48 674 8)7 418 209 604 802 901 450 725 862 931 465 232 116 osa 029 014 5 25 12S 062 s 531 25 265 625 6)2 812 )16 406 158 20) 579 101 289 550 644 77S 322 )87 161 19) 58o 596 290 298 645 149 322 574 661 287 830 643 41S )21 207 660 10) 8)0 SSI 91S s 25 125 562 781 390 695 647 923 461 2)0 615 307 6S3 826 913 456 228 5 2S 625 )12 656 828 914 9S7 478 739 869 934 467 733 366 5 2S 12s 062 0)1 51S 257 628 814 407 703 8S1 5 25 62S 812 906 4S) 226 613 806 5 25 12S 562 5 281 2S 640 62S 2. CYFROWY ZAPIS INFORMACJI progra.e Kosd; { Przetwarza całkowita liczbe szesnastkowa Dopusiczalne so małe l itery a .. t } ł O na dziesietna. uses Crt: var f I longint; byle; r i •c string(8 ); charj begin ClrScr; GoToXY(l, 10); Write (' Wpisz liczbe 6%esnastkowa... Readln(s); r f := O; '); :• O; for i : • l to Length(s) do begin c : : s (i ); jf c in ['0'..'9' ) then r : a r • 16 + Ord(c) 48 el se i f c In ['A ' .. 'F' ) the n r !• r • 16 + Ord(c) el se i f c in (' •... ' t. l thon r : . r • 16 + Ord(c) el se t : a - - 1 55 87 end; Wri teln ; if t =O tben Wr ite('Rownowa ina liczba dziesietna jest rowna: • , r) ełse Write('Mylny zapis liczby szesnastkowej!') end. M ożna również wykorzystać znacznie prostszy program: prograa Konad; { Przetwarza całkowita liczbe siesnastkow4 ł O na dziesietna . Dopuszczalne se małe litery a .. f } uses Crt; var r longint; integer; a atring[8); • begin ClrScr; GoToXY(l, 10) ; Write('Wpi st liczbe szesnastkowa... Readln(s); Val('$' + s , r, a)i ')i Write lni if a • O tben Wr ite else ( 'Równowatna 1iczba dziesietna jest równa: zapia liczby szesnastkowej!') r) Write('ł1ylny end. U zupełnieni a liczb 2.2.3 Każdą liczbę zapisaną w kodzie naturalnym można również przedstawić w odpowiednim kodzie uzupełnieniowym. Dla każdego naturalnego kodu liczbowego o podstawie p istnieją dwa rodzaje takich uzupełnień: a) uzupełnienie do podstawy p, oznaczone symbolem Up , b) uzupełnienie do zmniejszonej podstawy p - 1, oznaczane symbolem U(p-1). Dla liczb o podstawie p = IO i p = 2 otrzymuje uzupełnienia: U 10, U9 i U2, U I. 48 się odpowiednio 2.2. KODY LICZBOWE Uzupełnienie U(p-1) Dla liczby nieujemnej L o podstawie p, długości części całkowitej równej n ;;i: O i długości części ułamkowej równej m ~ O, uzupełnienie do zmn iejszonej podstawy jest równe U(p - 1) (L) = p• - p - "'-L Reguła przez odjęcie praktyczna: uzupełnienie U(p - 1) liczby nieujemnej otrzymuje się każdej cyfry tej liczby od (p- 1). Przykłady: U9(347) = 652 U9(67.324) = 32.675 U9(0) = 9 U9(0.0) = 9.9 W przypadku liczb dwójkowych operacja uzupełnienia do I nosi również nazwę dopełnienia i oznacza zastąpienie każdej jedynki przez zero i odwrotnie, czyli negację wszystkich bitów danej liczby. Przykłady: U/(łOl 101) = 0 10010 u1(01.1011) = 10.0100 U1 (O) = I U 1 (O.O) = !.I Uzupełnienie Up Dla liczby nieujemnej L o podstawie p i długości części całkowitej równej n ;;i: O uzupełnienie do podstawy jest równe Up(L) = p"-L Up(O) = O dla L >O Reguła praktyczna I: uzupełnienie Up liczby nieujemnej otrzymuje się przez dodanie jedynki na najmniej znaczącej pozycji jej uzupełnienia U (p - 1). Reguła praktyczna 2: uzupełnienie Up liczby nieujemnej otrzymuje się przez pozostawienie wszystkich mniej znaczących zer bez zmiany, odjęcie pierwszej niezerowej najmniej znaczącej cyfry od podstawy p, a następnie odjęcie pozostałych bardziej znaczących cyfr od zmniejszonej podstawy (p-1 ). Przykłady: UJ0(3410) = 6530 = 104 - 3470 (n = 4) UJ0(0.3947) = 0.6053 = 1-0.3947 (n = O) U/0(32.194) = 67.806 = 102 - 32.194 (n= 2) UJO(O) =O 49 2. CYFROWY ZAPIS INFORMACJI W przypadku liczb dwój kowych (p = 2), zgodnie z regułą 2, uzupełnie­ nie do 2 można ot rzymać pozostawiając wszystkie mniej znaczące zera i pierwszą najmniej znaczącą jedynkę niezmienione, a następnie negując pozostałe bity. Przykłady: U2(10! 100) = 010100 U2(01. 1010) = IO.Ol IO U2(0) = O, U2(0.0) =O.O Przedstawianie liczb dwójkowych w kodach uzupełnieniowych U I i U2 wykonuje się w układach cyfrowych, aby wykonać arytmetyczną operację odejmowania (rozdz. 3). Układy cyfrowe nie umożliwiają bowiem bezpośred­ niego odejmowania liczb dwójkowych, mogą tylko dodawać. Zapis liczb dwójkowych ze znakiem 2.2.4 Do tej pory zajmowaliśm y się tylko liczbami bez znaku, które są interpretowane jako nieujemne. W zbiorze liczb rzeczywistych istnieją jednak również liczby ujemne, które w dziesiętnym systemie liczbowym oznacza się znakiem „ - ". Podobnie dodatnie liczby dziesiętne oznacza się znak iem „ + ". W dwójkowym systemie liczbowym znaki te mogą być wprowadzone tylko w postaci odrębnego biw znaku, którego wartość równa I symbolizuje umownie zna k „ - ",a wartość O odpowiada znakowi „ + ". Istnieją trzy zasadnicze sposoby kodowania liczb dwójkowych ze znaIdem: znak-moduł (ZM), znak-uzupełnienie do I (ZU /), znak-uzupełnienie do 2 (Z U 2). Kody te stosuje się do liczb całkowitych i ułamkowych, czyli ogólnie biorąc liczb rzeczywistych. W niektórych polskich podręcznikach kody uzupeł­ nieniowe liczb ze znakiem są również oznaczane symbolami U I i U2. KodZM W dziesiętnym systemie liczbowym liczba taka jak - 715.46 jest reprezentowana przed znak ( - ) i modu/ 715.46. Podobnie w dwójkowych systemie liczbowym, liczba przedstawiona w kodzie ZM składa się (od strony lewej do prawej) z bitu znaku, po którym następuje kropka, oraz z bitów znaczących, określających wartość bezwzględną liczby czyli jej moduł. Kropka ta ma znaczenie tyl ko w zapisie „na papierze", aby wyraźnie wydzielić bit znaku. W praktyce układowej jest ona pomijana. 50 U. KOOY UCZ80Wt CzTEJt.OBIT~'E L1cz1v ie Zl'ilAKIEM w KODACH 1ab/lca :u ZM, 7.tll I lłll Lie7.ba dzicsi~tna (w nawiasach ulamkowa) Liczba dwójkowa ZM Z Ui I.I I I I.I IO I. IO I 1.100 I.Oli l.OIO 1.001 I.OOO I.OOO 1.001 1.0IO 1.011 1.1 00 1.101 I.I IO I.I I I o.ooo o.ooo 0.001 o.oto O.Oli 0.1 00 0. 101 0. 110 O. li I 0.001 o.oio O.O t I 0.1 00 0.1 01 O. I IO O.I I I -8 (-1)• -7 (--0.875) -{; (--0.7S) -S (--0.62S) -4 (--0.5) -3 (--0.375) -2 (--0.2S) -I (--0. t 2S) -O o +O I (0.12S) 2 (0.2S) 3 (0.375) 4 (0.S) 5 (0.62S) 6 (0. 7S) 7 (0.87S) •)specjalna konwencja dla najmniejsuj Uczby owacza - 1. ułam kowej ZU2 I.OOO 1.001 1.010 I.Ol I 1. 100 1. 101 I. I IO 1.111 o.ooo 0.001 0.010 O.Oli 0. 100 0. 101 0. 11 0 0. 11 1 w kodzie Z U1: zapis 1.000„.0 W kodzie ZM liczby dodatnie i ujemne o tych samych wartościach bezwzględnych różnią się tylko bitem znaku. Na przykład, dla liczb ca łkowitych otrzymujemy przyporządkowania + 12,0 ..... 0. 11002 - 12,0..... 1.11002 liczb Te same zapisy liczb dwójkowych można także otrzymać przy kodowaniu ze znakiem: ułamkowych + 0.751 0H 0. l 1002 - 0.75 10 ..... 1.11002 przy czym kropka spełn ia już dwie funkcje, gdyż służy do wydzielania bitu znaku i jednocześnie jest punktem dziesiętnym. W praktyce układowej kropka ta jest jednak pomijana, gdyż zwykle przyjmuje się, że dany zapis reprezentuje al bo liczbę całkowitą a lbo liczbę ułamkową (o zerowej części całkowitej). Dalsze przykłady są przedstawione w tabl. 2.3. 51 2. CYFROWY ZAP1S INFORMACJI Kod ZU1 W kodzie ZU I reprezentacja liczby dodatniej jest identyczna jak w kodzie ZM. Natomiast lic-.:ba ujemna jest reprezentowana przez bit znaku równy I i przez uzupełnienie jej modułu do I. Na przykład, + 1210 >-+0. 11002 +0.75 10 >-+0.1 1002 -1210 >-+ 1.0011 2 -0.75 10 >-+ 1.0011 2 Jak pokazano w tabl. 2.3, kody ZM i Z U I wprowadzają pewną anomalię, a mianowicie dwie różne liczby reprezentujące zero. Te dwa zera określa się umownie jako „dodatnie" i „ujemne" zero. KodZU2 W kodzie ZU 2 reprezentacja liczby dodatniej jest identyczna jak w poprzednich dwóch kodach. Natomiast liczba ujemna jest reprezentowana przez bit znaku równy 1 i przez uzupełnienie jej modułu do 2. Na przykład, przy zapisie liczb całkowitych + 12 10 >-+ 0.1100 2 - 1210>-+ 1.01002 a przy zapisie lic-lb ułamkowych + 0.75 10 >-+ O.l 1002 -0.75, 0 >-+ 1.01002 W tablicy 2.4 są pokazane 8-bitowe reprezentacje liczb ze znakiem w kodzie Z U 2. W tym przypadku za kres kodowanych liczb całkowitych obejmuje liczby od -128 do + 127. W przypadku formatu 16-bitowego zakres ten wynosi od - 32768 do + 32767. Można zauważyć, że uzupełnienia liczb ze znakiem wykonuje się tak samo jak liczb bez znaku. Liczby nieujemne mają zerowy bit znaku i zera na nieznaczących wyższych pozycjach modu łu. Podobnie liczby ujemne mają jedynkowy bit znaku i jedynki na nieznaczących pozycjach uzupełnionego modułu. Oznacza to, że bit znaku jest powiela11y na nieznaczących pozycjach modułu lub jego uzupełnienia. Kody dwójkowa - dzies iętne (BCD) 2.2.5 Aby liczby dziesiętne mogły być użyte w systemie cyfrowym, muszą być przetworzone na kod dwójkowy, np. naturalny NB, lub zapisane w kodach dwójkowych noszących wspólną nazwę kodów BCD (Binary-Coded- Decimal). W kodzie BCD każda cyfra liczby dziesiętnej jest oddzielnie kodowana dwójkowe w postaci odpowiedniego słowa. Cała Liczba dziesiętna jest kodowana dwójkowe przez złoieoie słów dwójkowych, reprezentujących wszyst kie cyfry tej 52 2.2. KODY LICZBOWE Tablica 1.4 0bOOBITOWE LIClllY ZE ~AKJ.EM W KOOACH ZUl I Jl!K Liczba dwójkowa w kodzie ZU2 Liczba dziesiętna (ND) Liczba dwójkowa w kodzie HEX 10000000 10000001 10000010 10000011 - 128 -127 -126 -125 80 81 82 83 11111110 11111111 -2 FE FF -I o 00000000 o 00000001 00000010 00000011 I I 2 3 2 3 + 125 + 126 70 7E +127 7F 01111101 01111110 01111111 liczby. Ponieważ liczba różnych cyfr w systemie dziesiętnym wynosi m = IO, zatem do zapisu lych cyfr w kodzie dwójkowym są potrzebne słowa co najmniej 4-bitowe, czyli z n = 4 (p. (2.11)). Słowo takie umożliwia zapisanie N = 24 = 16 różnych liczb (w kodzie szesnastkowym od Odo F lub w kodzie dziesiętnym od O do 15), c-~yłi 6 z nich jest w tym przypadku zbędne. Oznacza to, że wszystkie kody BCD są kodami nadmiarowymi. Wybierając różne dziesiątki z szesnastu możliwych slów kodowych i przyporządk owując je dziesięciu cyfrom 0,1,„„9 w różnych kombinacjach można otrzymać teoretycznie bardzo dużą liczbę możliwych kodów BCD, równą N!/(N - 111)! = 16!/6! = 2.9x t0 10 .w praktyce stosuje się jednak tylko kilka z nich (tabl. 2.5). Najpopularniejszym jest kod BCD 8421, obejmujący pierwsze JO liczb z 4-bitowego naturalnego kodu dwójkowego (por. tabl. 2.1). Zwyczajowo określa się go po prostu jako „kod BCD" (bez dopisku „8421 "). Kody 2421 i X S3 są kodami „samouzupełniającymi" w tym sensie, że uzupełnienie do I liczb dwójkowych w tych kodach daje uzupełnienie do 9 odpowiednich lic:ib dziesiętnych. Upras = to wykonanie niektórych operacji arytmetycznych. 53 2. CYFROWY ZAPIS INFORMACJI Thblica 2.5 Koov 8CD 2421 I XS3· z 10 7-seg.ine.nt. ND 8421 (Aikena) X S3 -Graya (pierścieniowy) abcdefg o 0000 0000 1 000 1 00 10 00 11 0100 0101 0 110 0 11 1 1000 1001 0001 00 10 00 11 0100 1011 1100 110 1 1110 1111 00 11 0100 OIOI 0 110 0 111 1000 1001 1010 1011 1100 0010 0 110 0 111 0101 0 100 1100 110 1 11 11 1110 1010 000000000 1 0000000010 0000000100 000000 1000 0000010000 0000100000 000 1000000 0010000000 0100000000 1000000000 11 11110 0110000 110 1101 111 1001 01 10011 10 110 11 2 3 4 5 6 7 8 9 IOll Jll 1110010 1111111 1111011 Specjalnym rodzajem kodu BCD jest kod „ I z JO" (pierści.eniowy), będący jedną z odmian kodu „m z 11". Kod ten jest najprostszym koncepcyjnie kodem do wprowadzan ia do układu cyfrowego cyfr kodu dziesiętnego przez dziesięć wzajemnie wyłączalnych klawiszy lub do wyświetlania przez układ jednej z dziesięciu cyfr kodu dziesiętnego. Zastosowania takie są powszechne w relacjach człowiek- układ (system) cyfrowy. Stąd też przyjęto w technice cyfrowej określenia: koder - układ służący do przetwarzania liczb w kodzie „I z JO" na liczby w innym kodzie BCD i dekoder - układ służący do przetwar?.an ia liczb w innym kodzie BCD na liczby w kodzie „ I z I O". Do grupy dekoderów zalicza się także układy służące do sterowania niektórych optyc-,mych wskaźników cyfrowych przez konwersję liczb przedstawionych w kodzie BCD na liczby w kodzie wskaźn ików 7-segmentowych. Kod ten jest stosowany do wyświetlania cyfr dziesiętnych w większości kalkulatorów i w przyrządach pomiarowych. Każda cyfra jest tworzona przez „zapalen ie" odpowiednio dobranych segmentów a...g wyświetlacza (rys. 2.1). a ,j-:f if d Rys. 2.1 Oznaczenia segmentów wy.S.,i,•ictlacza ?-segmentowego Układy służące do wszystkich pozostałych przemian między słowami w różnych kodach określa się zwyczajowo, lecz niezbyt ściśle, jako konwertery kodów (p. 2.1). Zalicza się do nich konwertery NB-BCD i BCD-NB. 54 2.2. KODY LICZBOWE 2.2.6 Kody refleksyjne W refleksyjnym systemie liczbowym dowolne dwie kolejne liczby różnią się tylko o I na jednej pozycji. Kody refleksyjne (Graya) o ta kiej właściwości są stosowane głównie w urządzeniach slu7,ących do cyfrowego pomiaru analogowych wielk ości mechanicznych, takich jak przesuw liniowy lub kąt obrotu. Przy użyci u do lego celu kodującego zespolu styków jest praktycznie niemożliwe zapewnienie idealnie jednoczesnej zmiany sta nu na dwu lub więcej stykach, co przy zastosowaniu kodu nierefleksyjnego prowadziłoby do dużych błędów pom iaru w procesie przełączania (rys. 2.2). b Rys. 1. 2 Tar= kodowe do cyfrowego pomiaru a) b) WC'l2 1 tarcia 2 kąta obrotu ctterob1to wym l odem /lo'8. ł::tónl m• • :ntto••K duit błędy. np.. prey pne,pau tt. .u.au 1111 u 0000. cnttabitov.ym a:o0em G,..,.._ db kt6rej mak.J)małoy błąd odczytu ~ ± 1(2 LSB Przykłady kodów refleksyj nych są podane w tabl. 2.6. Jak widać na refleksyj nego kodu dziesiętnego, po wzrastającej sekwencj i liczb O, I, „„ 9 następuje malejąca sekwencja 19, 18, ..., IO, po której nastą piła by sekwencja rosnąca 20, 21, ..., 29, potem malejąca 39, 38, ...,.30 itd. Dla naturalnych liczb dziesiętnych o postaci d. _ 1 •. • d, „ . d0 generacja liczb w refleksyjnym kodzie dziesiętnym, przed stawionym w tabl. 2.6, następuje na podstawie reguł przykładzie tik = d.., jeśli du 1 jest parzyste, tik = 9 - d.., jeśli dt+ 1 jest nieparzyste, gdzie d,; (k = O, I, ..., n-l)jesl cyfrą dziesiętną liczby w kodzie refleksyj nym, przy czym d. jest przyjmowane jako parzyste. 55 2. CYFROWY ZAPIS INFORMACJI Tablica 1.6 Kod dziesiętny naturalny Kod dziesięlny refleksyjny o o I I 2 3 4 2 3 4 5 5 6 7 8 9 IO li 12 13 14 15 16 17 18 19 20 21 6 7 8 9 19 18 17 16 15 14 13 12 li Kod dwójkowy naturalny IO 20 21 o Kod dwójkowy refleksyjny (Graya) o I I IO 11 li 100 101 110 111 1000 1001 1010 JOi i 1100 1101 I I IO 1111 10000 10001 10010 1001 1 10100 10101 110 111 101 100 1100 1101 1111 1110 1010 1011 1001 1000 11000 11001 11011 11010 11 110 11 111 IO PrzetwarU1nie liczb przedstawionych w refleksyjnym kodzie dziesi~tnym na liczby w kodzie naturalnym jest wykonywane zgodnie z regułami jeśli jeśli d<+ t jest parzyste, d„ t jest nieparzyste, przy czym d. jest przyjmowane jako parzyste. Liczba dwójkowa zapisana w kodzie NB w postaci słowab. _ t ••• b• ... b,b0 może być przetworzona na liczbę b'. - • ... b\ ... b' 1b' 0 w kodzie Graya przy użyciu operacji sumowania modu Io 2 (p. 3. 1. tabl. 3.1) według wzoru k = 0, I, ..., n - I przy czym b. = O. Oznacza to, że bit b'k w generowanym słowie jest taki sam jak odpowiedni bit b.,jeśli poprzedni bardziej znaczący bit bu 1 jest równy O, lub jest negacją bitu b•• jeśli bk+ 1 = I. Do przetwarzania odwrotnego posługujemy się podobnym związkiem b. = b'. Eflbk+t• przy czym b. = O. 56 k - O, I, ..., 11 - I 2.2. KOOY llCZBOWE Zauważmy, że sekwencja kodu reOeksyjnego jest symetryczna względem dla sąsiednich długości słów kodowych, z wyjątkiem najwyższej pozycji. Stąd też pochodzi nazwa kodu reOeksyjnego, którego tablicę dla sąsiednich długości, lecz bez najwyższej pozycji, można podzielić na dwie części, stanowiące swoje wzajemne odbicia zwierciadlane (refleksje). punktu środkowego Zmiennoprzecinkowa reprezentacja liczb 2.2.7 Omawiane do tej pory liczby przy przedstawiane w tak zwanej reprezentacji stałoprzecinkowej (fixed-point noration), w której położenie punktu dziesiętnego (kropki) jest stałe, niezależnie od wielkości liczb, np. A - 47567.31, B = 0.000075244. Je7..eli takie, znacznie różniące się od siebie, liczby mają być przedmiotem obróbki w systemie cyfrowym, który przetwarza tylko dane np. IO-cyfrowe w formacie XXXXX.XXXXX, to wprowadzenie ich do systemu w oryginalnej postaci będzie związane z dużym błędem obcięcia liczby B: B = 0.000075244 obcięte Stosuje się wówczas skalowanie liczby, polegające na tak im przedstawieniu danej liczby, aby możliwe wszystkie jej cyfry znaczące zostały objęte formatem obróbki w systemie. Dla liczby B jest możliwych kilka takich przedstawień, np. 0.75244 x 10- 4 , 7.5244 x 10- s itd. Przyjmując pierwsze z nich i zakładając, że na liczbach A i B ma być wykonana operacja mnożenia, otrzymujemy AX B Mnożenie = (47567.3 1 X 0.75244} X 0.000 I w nawiasach może teraz być wykonane na wszystkich cyfrach lecz otrzymany wynik musi być jeszcze pomnożony przez 10- •. Operację skalowania można wykonać na liczbach o dowolnej podstawie, w tym również na liczbach dwójkowych. W tym przypadku mnożenie przez 2- • wykonuje się bardzo prosto przez przesunięcie w prawo wszystkich bitów danej liczby o k pozycji. Mnożeniu przez 2• odpowiada analogiczne przesunięcie w lewo. Gdy różnice rzędów wielkości liczb podlegających obróbce są znaczne, a ograniczenie długości słowa danych systemu spowodowałoby duże błędy wynikające z obcięcia przy stalopozycyjnym zapisie liczb (skalowanych lub nie), wówczas stosuje się zmiennoprzecinkowy zapis liczb (floati11g-poi111, notation). Zapis ten, określany również jako zmie1111opozycyj11y, jest ogólnie stosowany do obliczeń naukowych i inżynierskich. Reprezentację zmiennoprzecinkową dziesiętnej liczby rzeczywistej L definiuje się jako takie złożenie słów dwójkowych M i W, czyli M • W, że znaczących, 57 2. CYFAOW'f ZAPIS INFORMACJI L = L(M o W) = L(M) X (2. 12) pdL(W) M - mantysa, liczba ułamkowa ze znakiem, przedstawiona w jednym z trzech kodów ZM, ZUJ, Z U2, słowo W - wykładnik lub cecha, liczba całkowita ze znakiem przedstawiona również w jednym z trzech kodów (niekoniecznie tym samym co M), p - wspólna podstawa kodów zastosowanych do zapisu słów Mi W, d - liczba naturalna (zwykle równa I). Liczba zmiennoprzecinkowa jest znormalizowa11a,jeśli mantysa spełnia warunek gdzie: słowo p - d ~ IL(M)I <I (2. 13) Dobranie takiego wykładnika W, aby spełnić ten warunek określa się jako normalizacja. Podczas tej czynności następuje odpowiednie przesunięcie pozycji kropki dziesiętnej („przecinka"). co uzasadnia nazwanie tej notacji zmiennoprzecinkową. jednobajtowe słowa dwójkowe M i W w kodzie ZU2 przedstawić liczbę dziesiętną L = - 4.25 w dwójkowym zapisie zmiennoprzecinkowym, znormalizowanym. Pnyklad. Przyjmując I. Przekształcenie liczby L na liczbę dwój kową daje w kodzie ZU2 Z U2(L) • 1.001.11, gdzie pierwsza kropka z lewej strony służy umownie tylko do wydzielenia bitu znaku, a druga jest punktem dziesiętnym. 2. Normalizacja wymaga przesunięcia punktu dziesiętnego w lewo o trzy pozycje, aby spełnić warunek 0.5 ~ IL(M)I = I i wówczas L = L (l.Ollll)x2 3 3. Stosując 8-bitowy kod ZU2 dla słów mantysy i wykładnika otrzymujemy dwójkowy zapis zmiennoprzecinkowy M• W = 1.0111 1000.0000011 --..---.----....-~ M W przy czym bity przed kropkami wskazują na odpowiednie znaki (należy jeszcze raz podkreślić, że kropki te nie są kodowane i umieszczone w powyższym zapisie tylko dla łatwiejszej interpretacj i). 4. Sprawdzenie: L (M )xpl.lWI = -(2- • +2 - s) x2 3 = - 0.53125x2 3 = - 4.25 które Istotną zaletą reprezentacji zmiennoprzecinkowej jest duży można w ten sposób przedstawić. Pnyjmując, że słowo M 58 zakres liczb, ma m bitów 2.2. KODY LICZBOWE i słowo W ma w bitów można obliczyć, że jeśli obydwa te słowa są zapisane w kodzie ZM lub Z U I, to zakres liczb zmiennoprzecinkowych będzie określony jako L(M• W) e [- L„„ (M• W), Lm,..(M• W)] gdzie Lmax(M•W) = Lmu.li (M)x 2lm,,.<••'>= (1 - 2"' + ' )22w - L1-22 w- 1_ , Jak widać, zakres ten zależy głównie od liczby bitów wykładnika . Przy zastosowaniu kodu ZU2 dla słów mantysy i wykładnika otrzymuje się wynik zbliżony: L (MoW)e[ - 22w-t - 1, ( 1- 2- „ +1) 22w - 1_ l] gdyż najmniejszą liczbą ułamkową, stanowiącą mantysę, którą można w kodzie Z U2, jest - I (zapis I .()()·„O). Minimalna liczba dodatnia różna od zera, która w zapisie zmiennoprzecinkowym, jest równa. przed- stawić R może być wyrażona = L*(M)+2L,,;.IW> gdzie L *(M) = 2 - 1 jest najmniejszą dodatnią mantysą znormalizowaną. Najmniejszy wykładnik przy opisaniu go kodem ZM i ZUi jest równy Lm;n( W) = -L„,,(W) = - (2"' - l - 1) i wówczas R = 2- 2 "'- 1• Przy kodzie ZU2 w wykładniku otrzymujemy Lm;n( W) = L(f.00„·0) = - 2"'- 1 i wtedy R = 2-2w-•-1 Ta duża zaleta notacji zmiennoprzecinkowej jest w praktyce okupiona czasem obliczeń i bardziej złożonym systemem cyfrowym niż przy użyciu zapisu stałoprzecinkowego, a także zm11iejszoną rozdzielczością w przeliczeniu na bit, gdyż bity „znaczące" liczby L(M• W) dotyczą tylk o mantysy. Przy danych z ostatniego przykład u 8-bitowa mantysa (łąc-mie ze znakiem) daje rozdzielczość równą 2 - 7 ""7.8 x I0 - 3 , czyli zaledwie 2 cyfry dziesiętne, natomiast 16-bitowa notacja stałoprzecinkowa (łącznie ze znakiem) zapewnia rozdzielczość 2 - 15 "" 3. 1 x 10- 5 czyli 4 cyfry dziesiętne. Dlatego przy obliczeniach z liczbami zmiennoprzecinkowymi są wymagane odpowiednio duże mantysy, gdyż w przeciwnym razie błędy zaokrągleń mantysy mnożone przez duże czynniki 2l(K1 mogą prowadzić do znacznego pogorszenia dokładności wyników. Na przykład, przy stosowanej w programach mikrokomputerowych mantysie 3-bajtowej (łącznie ze znakiem) otrzymuje się rozdzielczość równą 2 - 23 "" 1.2x10- 1 , podobnie przy mantysie 4-bajtowej otrzymuje się 2 - l i "" 4.7 x 10- 10, a przy mantysie 6-bajtowej 2- 4 7 "" 7.1 x IO- 1 5• zwiększonym 59 2. CYFROWY 2.APIS INFORMACJI Liczba zmiennoprzecinkowa zero nie ma reprezentacji znormalizowanej. Jest ona zwykle reprezentowana zerową mantysą (L(M) = O) i minimalnym wykladnikiem (LmmCW)). Takie przedstawienie zmiennoprzecinkowego zera umożliwia zachowanie dokładności przy wykonywaniu operacji dodawania i odejmowania liczb zmiennoprzecinkowych. W takich operacjach najpierw wyrównuje się wykladniki, a następnie dodaje (odejmuje) mantysy. Pny wyrównywaniu wykładników zw iększa się mniejszy wykładnik, bo zmniejszanie większego wykładnika oznac-.tałoby przesuwanie w lewo bitów znaczących mantysy i prowadziłoby do przekroczenie dopuszczalnego zakresu wynikające­ go z normalizacji mantysy. Gdyby zero nie było opisane najmniejszym wykład­ nikiem, wtedy mogłoby się zdarzyć podczas wyrównywania zwiększenie wykład­ nika drugiego argumentu (o niezerowej mantysie), czyli przesunięcie bitów jego mantysy w prawo, co spowodowałoby odrzucenie mniej znaczących bitów tej mantysy. W wyniku tego następowałoby zmniejszenie dokładności obliczeń. Liczba zmiennoprzecinkowa jest również interpretowana w obliczeniach jako zero, jeśli pojawi się niedomiar, czyli wykładnik mniejszy od Lm;.( W). W systemach cyfrowych stosuje się różne zapisy zmiennoprzecinkowe. Dotyczy to nie tylko liczby bitów mantysy i wykładnika, ale i ich kodowania. Na przykład.jeśli mantysa jest przedstawiona w kodzie ZM, to najbardziej znaczący bit mantysy (za znakiem) może być w zapisie pominięty, gdyż w znormalizowanej liczbie zmiennoprzecinkowej jest on wtedy zawsze równy I. W pewnych komputerach stosuje się reprezentację „szesnastkową", którą można otrzymać gdy we wzorach (2.12) i (2.13) podstawi się d = 4. W wykładniku można pominąć bit znaku, jeśli wprowadzi się „przesunięty" nieujemny wykładni k W' spelniający równanie L(W) = L (W)+2· gdzie m jest liczbą bitów 1 wykładnika. Przykładowo, przy m = 8 największy wykładnik L.,..(W') jest równy 2 - I = 255, czyli L....,(W) = 255 - 128 = + 127, natomiast przy Lm,.( W) = O otrzymujemy L,,.;.(W) = - 128. Oznacza to, że odpowiednie wielkości L.,.,„ (M • W) i R są takie same, jak przy użyciu bitu znaku w wykładniku. Przesunięte wykładniki są zawsze liczbami nieujemnymi, czyli ich porównywanie jest technicznie łatwiejsze niż przy wykładnikach ze znakiem, który musi być wtedy uwzględniony. Ponieważ minimalny przesunięty wykladnik jest równy O, dlatego w tym przypadk u zmiennoprzecinkowym zapisem zera jest proste zlożenie OoO. 8 Przykład. Obliczyć zakres liczb dodatnich i rozdzielczość dla zmiennoprzecinkowego formatu danych, gdz.ie zastosowano przesunięty wykładnik i nic uwzględniono najbardziej znaczącej jedynki znormalizowanej mantysy, przed stawionej w kodzie ZM. 60 2.3. KODY ALFANUMERYCZNE Znak man tyły o Mantysa \łykładn l k 9 10 1 Pierwsze [ słowo 15 o 15 16•bltowe Drugi e słowo 16-b itowe Numer bitu I. Wykładnik [O - 2 8 =- L(W) zawiera się w zakresie 256, 29 - I - 28 = 255) 2. Najmniejszą niezerową liczbą dodatnią otrzymujemy przy minimalnej mantysie (1.00„.0)z, gdzie kropka jest punktem dziesiętnym, a jedynka nie jest na pozycji bitu znaku, lecz wynika z normalizacji i przesunięcia w lewo o jedną pozycję bitów mantysy Gedynka ta nie jest faktycznie zawarta w powyższym formacie danych). Podobnie największą liczbą dodatnią ot rzymuje się przy maksymalnej mantysie równej (I. I I I ... Ih "" 2 10• Dlatego zakres liczb dodatnich wyrażanych tym formatem wynosi (J 3. X 2- 256 :::: 8.636 X 10- Rozdzielczość 2- 23 =:,: 78 , 2 X 2255 =:,: 1.158 X 1077 ) wynika z liczby bitów mantysy (22 + I f.19 X 10- „pominięty"): 7 co odpowiada dokładności sześciu - siedmiu cyfr dziesiętnych. Zmiennoprzecinkowy format liczb jest ustalony w systemach cyfrowych przez sprzęt lub oprogramowanie bądź łącznie przez sprzęt i oprogramowanie. Norma amerykańska IEEE 854 określa wiele standaryzowanych formatów dla obliczerl zmiennoprzecinkowych, które zostaly uwzględni one m.io. przy projektowaniu specjalistycznych scalonych koprocesorów arytmetycznych (np. Intel 8087, Motorola. MC68881 ). Format liczb zmiennoprzecinkowych jest również zawsze zdefiniowany w językach programowania. Na pnyklad podstawowa wersja języka Turbo Pascal operuje na 6-baj towych słowach reprezentujących liczby rzeczywiste (real). Jeden bajt opisuje wykładnik (dla tego mak symalny wykładnik jest równy 2 127 :::: 1.7 x 1038 • a minimalny meuiemny 128 39 2:::: 2.9 x 10), natomiast pięć bajtów zawiera mantysę (stąd rozdzielczość 2 - 39 :::: 2 x 10- 12, czyli dokładność 11 cyfr dziesiętnych). KODY ALFANUMERYCZNE 2.3 Informacje są przedstawiane nie tylko w postaci liczbowej, ale i tekstowej. W cel u wprowadzenia informacji tekstowej do systemu cyfrowego, jej przetworzenia, zapamiętania i wyprowadzenia niezbędny jest kod, który umożl iwia dwustronną 61 2. CYFROWY ZAPIS INFORMACJI · translację znaków alfabetu tekstowego (czyli liter i cyfr) na odpowiednie słowa dwójkowe. Kody, które umożliwiają taką translację, określa się jako alfa- numeryczne. Z uwagi na powszechne zastosowanie tych kodów w telekomunikacji zawierają one również znaki kontrolne, służące do sterowania odpowiednich urządzeń wejścia/wyjścia podczas przesyłania informacji. Ponadto zawierają one znaki interpunkcyjne i podstawowe znaki matematyczne. W telegrafii od wielu lat stosowany jest 5-bitowy kod telegraficzny Baudota, znany obecnie pod nazwą kodu telegraficznego cc1n· nr 2 i związany ze sposobem dziurkowania pięciu pozycji na taśmie papierowej. Każdy znak tekstowy i techniczny jest w tym kodzie reprezentowany przez 5-bitowe słowo kodowe. Poza tym kodem stosuje się wiele innych kodów 5-, 6-, 7-, i 8-bitowych. Objęty normą międzynarodową ISO 646-1983 (ISO- International Organiza1ion for Standardization) jest kod 7-bitowy, czyli obejmujący 128 znaków. Amerykańską wersją 7-bitowego kodu ISO jest kod ASCII (czyt. aski, American Standard Code for lnformation lntercha11ge) objęty normą ANSI X3.4-1986. Jest on pokazany w tabl. 2.7, w której na dziesięciu pozycjach podano również niektóre litery polskie (przestarzały standard tzw. klawiatury maszynistki). Pierwsze 32 7-bitowe słowa kodów ISO i ASCII są słowam i sterującymi. Słowa te są podzielone na następujące grupy: TC - słowa sterujące transmisją informacji w sieci telekomunikacyj nej, FE - słowa sterujące układem tekstu, OC - słowa sterujące pracą urządzeń wejścia/wyjścia, IS - separatory informacji. Znaczenie poszczególnych słów sterujących jest następujące: NUL - brak informacji (znak pusty), SOH (TC!) - początek nagłówka, STX (TC2) - początek tekstu, ETX (TC3) - koniec tekstu, EOT (TC4) - koniec transmisji, ENQ (TC5) - zapytanie, ACK (TC6) - potwierdzenie (odpowiedź pozytywna), BEL sygnał dźwiękowy, BS (FEO) - cofnięcie o I pozycję, HT (FEi ) - tabulacja pozioma, LF (F E2) - wysuw jednego wiersza, VT (FE3) tabulacja pionowa („HOME" w mikrokomputerach I BM PC), FF (FE4) 62 - wysuw strony, 2.3. KOOV AlFANUM ERYCZNE 51eOM1081T0WY KOD ALfANU~tERYCZNY (STANDARD MASZYNISTKI) ASCII Z WYMI ENNYMI LITERAMI POLSKl ~tl Oznaczenia: ND liczba dziesiętna, HEX - liczba s1.csnastkowa, ZN - znak, ZS - wak sterujący (symbol • oznacza klawisz Ctrl), NA - skrótowa nazwa znaku sterującego zs ND HEX Z.N o oo I 01 02 Ol 04 2 3 4 s 6 7 8 9 IO li 12 13 14 IS 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 os ~ ·Ą • •e • • • ·c ·o OC 9 o STX 34 • K VT d ) "o• li 12 Il 14 15 16 17 18 19 IA IB JC ID IE IF ! - ·v ·w · x CAN • y EM · z SUB t -'.... .,·c -- OLE (TC7) - DCi DC2 DC3 DC4 (STOP) ESC FS „ os •- us '] • • 40 41 42 43 44 SYN ETB 11 37 38 39 45 § i !! 36 • L FF SI OLE · Q DC i ' R DC2 ·s DC3 • T DC4 • u NAK • 3S •M CR ' N SO ·o •p CR (FE5) SO SI 63 32 33 • ·c D ND HEX ZNAK ND HEX ZNAK ND HEX ZNAK SOH ETX EOT · ie ENQ • f ACK BEL • H BS · 1 HT • J LF ł • IO •@ NUL o 07 08 09 OA OB OD OE OF NA RS Thblica Z.7 46 47 48 49 20 SP 64 40 @ ~ 21 22 23 24 ! 6S A •s 66 41 42 43 25 26 27 28 29 2A 28 2C 2D 2E 2F 30 31 32 „ 67 68 44 % & 69 ( ) 72 73 + 74 7S 76 4S 46 47 48 49 4A 4B • I o I 70 71 77 4C B c D E F o H I J K L 4D M 4E N · 4F o 78 79 80 81 82 83 SO p 51 S2 53 Q R s T SI 52 S3 )) 34 2 3 4 84 54 35 5 8S SS u 54 6 7 8 9 86 56 V 87 88 89 : 90 ; 91 57 58 59 SA SB w 57 SB S9 36 37 38 39 3A 38 60 K < 92 se 61 62 63 3D 3E 3F > 93 94 95 SD SE SF SO 55 56 - ? X y z I t \ l J ń ś - 96 97 98 99 100 101 102 103 104 105 106 107 60 'ą 61 62 63 a 64 69 d c f g h i 6A 6B k 6S 66 67 68 IOS 6C 109 110 111 11 2 11 ) 114 115 116 11 7 118 119 120 121 122 123 124 125 126 127 6D 6E 6F 70 71 72 73 b e J I m n o p q r $ 74 7S 76 I 77 w 78 • 79 u V )' 7A z 78 { ó 7C I I 7D '' z. 7E ~ ć 7F DEL powrót karetki, zmiana kodu (do miejsca wystąpienia znaku SI), powrót do kodu podstawowego, zmiana znaczenia określonej liczby słów kodu w celu przesiania rozkazu dla systemu transmisj i, sterowanie urządzeń wejścia/wyjścia, polegające w szc-.regół· ności na ich włączaniu i wyłączaniu (uruchamianiu i zatrzymywaniu), 2. CYFROWY ZA.PIS INFORMACJI NAK (TCS) SYN (TC9) ETB (TCIO) CAN - EM SU B ESC FS (IS4) GS (IS3) RS (IS2) US (!SI) - brak potwierdzenia (odpowiedź negatywna), synchronizacja spoczynkowa, koniec transmisji bloku danych, anulowanie błędnej informacji o określonej liczbie znaków, poprzedzającej znak CAN, koniec nośnika informacji (np. taśmy), zastąpienie błędnego znaku, zmiana znaczenia następnego slowa kodu, separator pól (plików), „CU RSOR RIGHT' w IBM PC, separator grup, „CURSOR LEFT" w IBM PC, separator rekordów (zapisów), „CU RSOR UP"' w I BM PC, separator jednostek. „CURSOR DOWN" w IBM PC. W pierwszej kolumnie tabl. 2.7 są również podane znaki graficzne i znaki sterujące, s1osowaae w komputerach kompa1ybilnych z IBM PC przy jednoczesnym użyciu klawisza CONTROL (skró1 Ctrl, symbol Ą). Znak o numerze 32, oznaczony li1erami SP (space), oznacza spację (pojedynczy odstęp między znakami 1eks1u), a znak I 27 - DEL (delete) oznacza kasowanie poprzedzającego znaku. Zazwyczaj znaki są kodowane w pos1aci słów ośmiobitowych (bajtów) i ósmy bil może być wykorzys1any do tzw. kontroli parzys1ości w celu wykrycia pojedynczych błędów w lych bajlach (p. 2.4). W komputerach zazwyczaj wykorzystuje się ósmy bil do kodowania doda1kowego zestawu znaków o numerach od I 28 do 255 (numery ie stanowią wartości dziesiętne baj1ów reprezentujących poszczególne znaki). Jesl 10 ogólnie stosowana metoda kodowania specjalnych znaków alfabetów narodowych. Z wielu systemów kodowania polskich liler w kompulerach najczęściej stosuje się następujące standardy: Laiin-2 (Slavic, strona kodowa 852) - w systemie operacyjnym MS DOS, Windows EE (Eastern Europe, strona kodowa 1250) - w spolszczonym MS Windows 3.1 PL i MS Windows 95 PL, ISO Latin-2 (ISO 8859-2) w systemie operacyjnym UNIX, w sieci Internet. środowisku Są one pokazane w tabl. 2.8, wraz z anglojęzyczną stroną kodową 437 (English). W kodach Windows EE i /SO Llllin-2 podano tylko numery polskich liter. a leży również wymienić kod UN I CO DE (JSO/I EC- 10646) o postaci 16i 31-bitowej, który umoiliwia zapis praktycznie wszystkich, wystarczająco szeroko stosowanych, znaków alfabetów narodowych aa świecie. 64 2.4. KODY ZAB EZPIECZAJĄC E PRZED BŁĘDAM I POLSKIE LITERY W NAJCZJ;ŚCIEJ STOSOWANYCH KODACli Oznaczenia: N O - liczba dziesiętna, EN - IBM English (Code page 437), L2 - IBM Lalin·2 (Code page 852), EE - IBM Windows EE (Code page 1250), ISO - ISO Latin-2 (IS0-8859-2) ND EN u EE ISO 128 i; ~ 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 u ii i i i i i i •• •• • A ć ~ I ó I ó I ź i i A A Ą ć t t "' JE il ś t Ł i o t: ś ij ś o o o o e c t t' V ł, Pl X f c i\ i i u u ń Ń ł, ł, i\ • ł i\ ś i Ę 168 l 169 ' ę 170 171 'h i 172 '!. ć 173 I ł 174 175 • 176 177 178 ~~ i~ 179 I I 180 -I 181 =I 182 A 183 t 184 "I ~ 185 i o§ .. . ... ... u r u 'ó 'ó -- o o b EE ISO ·~ 167 • ~ ł u ND EN 160 161 162 163 164 165 Tablica 2.8 186 • i KODY I 187 'il 188 dl 189 190 .i 191 _. t ż • I 1 I ż I ś • 'il dl i ż ż , , ż i u ND EN 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 EE ISO ND EN u ó n ó L L .L .L 214 (I( 2l5 8 T T 226 I- I- - - +I- +A I- i f' "" rr I. ,,!!,, ...I= = + ..L """ .,. dh ć Ę ć Ę 'iF IF - ~:- a d D Ń Ń i> t. E ó ó T a b F .- + + -' Ń j i • -' r ---I r I ZABEZPIECZAJĄCE I I t PRZED 227 228 229 230 231 232 233 234 235 236 237 238 239 140 141 242 243 244 245 246 247 248 249 250 251 252 253 254 255 r „ Ń ń i: " µ n ś ~ j 4> R '8o (1 „ ~ !! :I: l!: s J + •"' ć ć ę ę ń ń ó ó f (I y y I ( n EE ISO -. . . § + . ./ u " R 2 t • • BŁĘDAMI 2.4 Przy przechowywaniu i przesyłaniu informacji w postaci cyfrowej należy liczyć się z pewnymi błędami, zwanymi „przekłamaniami". Mogą one być wywołane m.in. przez odpowiednio silne zakłócenia energetyczne i zjawisko przesłuchu . W telekomunikacji przesyłanie danych cyfrowych określa się ogólnie jako przesyłanie sygnałów ziarnistych, tzn. skwantowanych w wartości i dyskretnych w czasie. Kanał telekomunikacyjny, który jest przystosowany do przesyłania 65 2. CYFROWY ZAPIS INFORMACJI takich sygnałów, jest nazywany kanałem ziarnistym (dyskretnym). W szczególności, przy przesyłaniu informacji kodowanych dwójkowo, mówimy o sygnałach binarnych i kanale bi1uimym. Błędy, które mogą zniekształcić informację przesyłaną kanałem binarnym, zależą od rodzaju użytego rozwiązania technicznego, np. przy łączu radiowym występują zakłócenia transmisji wywołane warunkami atmosferycznymi (trzaski pochodzenia burzowego, zaniki sygnałów odbieranych). Błędy takie występują czasem grupowo, jeśli dane cyfrowe pochodzą z pamięci masowych o napędzie mechanicznym (np. z dysków lub taśm magnetycznych). Kod y służące do kontroli wierności informacji kodowanych cyfrowo oheśła się jako kontrolne. Istnieją dwa zasadnicze rodzaje takich kodów [8- 10]: kody detekcyjne - służące wyłącznie do wykrywania błędów, kody korekcJifne - służące nie tylko do wykrywania, ale i do korygowania tych błędów. Inny podział kodów kontrolnych dzieli je na blok{>we (gdzie kolejne informacje są kodowane niezależnie od siebie, czyl i bez użycia pamięci) i nieblokowe, określane również jako splotowe (gdy wynik kodowania informacji zależy także od pewnej liczby informacji kodowanych poprzednio, narzucając konieczność stosowania pamięci). Kody kontrolne są głównie stosowane w telekomunikacji. Słowa stanowiące język kodu są tam zwyczajowo określane jako ciągi, a słowa dwójkowe jako ciągi binarne. To nazewnictwo będzie też użyte w poniższym opisie kodów kontrolnych. Jednym z parametrów kodu jest odlegloJć Hamminga między dwoma jego ciągami o tej samej długości. Odległością d(A 1 , A.) między dwoma ciągami A 1 i A• o jednakowej długości, niekoniecznie kolejnymi, nazywa się liczbę pozycji, na których te ciągi różnią się. Oznacza to, że d(A 1 , A.)= Owtedy i tylko wtedy, gdy A1 = A„ a poza tym d(A 1 , A1 ) >O. W kodzie dwójkowym jest to zatem liczba bitów, która musi być zmieniona przy przejściu z jednego ciągu (A 1) na inny (A.). P rzy zdefiniowaniu wagi ciągu binarnego A , oznaczonej symbolem 11{A), jako liczby jedynek w tym ciągu, można także określić odległość między ciągarni binarnymi w'postaci d(A 1, A.) = w(A 1 E0 A•) gdzie: EE> - symbol sumowania modulo 2, A1 e:> A. - ciąg otrzymany w wyniku sumowania modulo 2 elementów ciągów A1 , A. występujących na tych samych pozycjach. Sumowanie modulo 2 jest zdefiniowane w p. 3.1 (tabl. 3.1). Minimalna odleglo.fć kodowa określana jest na zbiorze A ciągów kodowych A jako 66 2.4. KODY ZABEZPIECZAJĄCE PRZED BŁĘDAM I li= min[d(A 1 , AJ], l•k i jeśli te ciągi są n-bitowymi ciągami binarnymi, to można je tak ponumerować, aby f, k e {O, I, 2,„., 2"-1}. Jeżeli kod n-bitowy służy do zapisu 2• różnych informacji, to oznacza że jest on kompletny i ma il = l. W takim przypadku wystarczy zmiana tylko jednego bitu w ciągu kodowym, wywołana jakimś zakłóceniem pracy systemu, aby ciąg ten reprezentował już inną informację. Warunkiem, aby dany kod miał właściwości kontrolne, jest il ~ 2. W praktyce oznacza to albo wybór odpowiedniego kodu informacyjnego (tj. reprezentującego informacje źródłowe) z il = 2, albo wprowadzenie do ciągów kodu informacyjnego dodatkowych bitów kontrolnych. W najprostszym przypadku wykonuje się operację złożenia ci ągów informacyjnych z jedno- lub ki lkubitowymi ciągami kontrolnymi. Złożenie pojedynczego bitu kontrolnego z ciągami dowolnego kodu informacyjnego z li = I oznacza, że dowolne dwa ciągi tak utworzonego kodu będą się różnić między sobą co najmniej dwoma bitami. Kod taki charakteryzuje się zatem minimalną odległością il - 2 i może być użyty do wykrywania pojedynczych blędów w badanych ciągach. Ogólnie, największą krotność wykrywanych błędów można obliczyć jako k„ =li - I , natomiast największą krotność korygowanych blędów jako k„ = !NT[(il - 1)/2] gdzie symbol I NT[x] oznacza część całkowitą liczby rzeczywistej x, a zatem kod korekcyjny musi mieć il ;i: 3. Popularnym kodem liczbowym z il = 2, który umożliwia także wykrywanie błędów, jest kod BCD „I z IO", którego każdy ciąg zawiera tylko jedną jedynkę (tabl. 2.5). Oszczędniejszymi, jeśli rozważać długość ciągów kodowych, kodami liczbowymi z il = 2, są kody BCD o stałej liczbie jedynek równej 2. W praktyce najczęściej stosuje się jednak kodowanie informacji źródło­ wych w oszczędnym kodzie informacyjnym z il = I, przy czym dla każdego ciągu tego kodu określa się jednocześnie dodatkowy ciąg kontrolny, który jest następnie składany lub kombinowany z danym ciągiem informacyjnym. Kody kontrolne, których ciągi kodowe stanowią złożenia tych dwóch części, określa się jako systematyczne. Najprostszym i najczęściej stosowanym kodem systematycznym z il = 2, służącym do wykrywania błędów, jest kod z kontrolą parzysrości. Każdy informacyjny ciąg kodowy składa się z dodatkowym bitem parzyswści, który jest tak dobrany, aby waga każdego takiego z.łożonego ciągu była parzysta. Istnieje też zasada odwrotna, polegająca na tak im dobieraniu dodatkowego bitu. aby waga ciągu złożonego była nieparzysta. W takim przypadku jest to kod 67 2. CYFROWY ZAPIS INFORMACJI PRZYK.LAOY K<>t>óW Z B ł'fEM PARZYSTOSCI (Jl> I NU~PAR2 YSTOSCI (") Liczba dziesiętna Tablica 2.9 Kody z LI Kod z LI = I =2 a2a1ao a2a1aop a2a1aon o o oo o o oo I OO I OIO OI I I OO I OI I I O I I I OO I I OI 0 I OI I 0 I OO I I OI O I I OO I I I I 0 OO I O0 I 0 0 I 0 0 0 I I I I 0 0 O I0 I I I I OI I I I O 2 3 4 5 6 7 z kontrolą nieparzystości. Ma on tę zaletę w porównaniu z poprzednim, że umożliwia wykrycie awarii w transmisji, gdy odbierane są same zera. Natomiast kod z bitem parzystości interpretowałby tę informację po prostu jako zero (tabl. 2.9). Można zauważyć, że bity parzystości i nieparzystości stanowią swe dopełnienia. W praktyce, po stronie nadawczej informacyjne ciągi binarne są doprowadzane do układu zwanego generatorem parzystości, który dla każdego ciągu generuje składany z nim dodatkowy bit (p łub n, zależnie od przyjętej 1.asady). Tak zwiększone o jeden bit ciągi są transmitowane przez kanał binarny i doprowadzane do układu zwanego kontrolerem łub testerem parzystości. Układ ten sprawdza odbierane ciągi pod względem parzystości ich wag i sygnalizuje błąd (ew. żądanie powtórnej transmisji), jeśli sprawdzona parzystość nie zgadza się z przyjętą zasadą. Sprawdzanie to jest wykonywane w układzie przez ocenę wyniku sumowania modulo 2 wszystkich bitów kontrolowanego ciągu. Wynik równy Ooznacza parzystość, a wynik równy l oznacza nieparzystość (p. 3.1, tabl. 3.1, a także p. 4.1.1 i tabl. 4.3). Generator parzystości w taki sam sposób kontroluje ciąg informacyjny, aby wygenerować odpowiedni stan bitu parzystości łub nieparzystości. Przy użyciu kodu z kontrolą parzystości łub nieparzystości jest możliwe wykrycie tylko nieparzystej liczby błędów (1, 3, 5„.). Błędy parzyste nie są wykrywane. Pozycja dodatkowego bitu kontrolnego w przesyłanym ciągu nie jest istotna, a le musi być znana i jednakowa we wszystkich ciągach przesyłanych przez kanał binarny, aby uniknąć błędnego zaliczenia tego bitu do ciągu informacyjnego. Dołączenie lub włączenie ciągu kontrolnego do ciągów kodu informacyjnego oznacza, że każdy utworzony w ten sposób kod kontrolny jest kodem 68 2.4. ~ODY ZABEZPIE CZAJĄCE PRZED BŁĘDAM I nadmiarowym w sensie definicji podanej w p.2.1. Ogólnie można powiedzieć, że istnienie właściwości kontrolnych kodu implikuje jego nadmiarowość. Twierdzenie odwrotne jest już nieprawdziwe, gdyż istnieją kody nadmiarowe, które nie mają właściwości kontrolnych (np. kod BCD 8421). Zdolność wykrywania błędów może być jednak dodatkowo zwiększona, jeżeli kod informacyjny jest również kodem nadmiarowym. Jeśli jest to np. kod BCD 8421, to wyposażenie odbiornika ciągów kodowych w dodatkowy układ wykrywający stany (A, B,„„ F) 16 zwiększy możliwości detekcji blędów w odbieranej informacji. Rozwinięciem kodu z pojedynczym bitem parzystości jest kod z grupą bitów kontro/11ych, stosowany ro.in. do wyk rywan ia błędów w pamięciach dyskowych firmy IBM. Blok danych jest dzielony modulo 2 przez pewną stałą, iloraz jest odrzucany, a reszta (czyli pewien ciąg bitów) jest dopisywana do bloku. Tak utworzony nowy blok jest już podzielony przez daną stalą bez reszty, jeśli jest bezbłędny. Dopisywany ciąg bitów jest określeniem akronimem CRC (Cyc/ie Redundancy Clieck). Wymienione kody zalicza się do wspólnej grupy kodów systematycznych .ilorazowych. Nazywa się je tak, gdyż w kodach tych binarny ciąg kontrolny określa się generalnie jako resztę z dzielenia modulo 2 ciągu informacyjnego (interpretowanego jako wielomian binarny) przez pewien inny wielomian binarny, tzw. wielomian generujący kod, którego postać określa rodzaj i nazwę danego kodu kontrolnego. Bezbłędne ciągi takiego kodu charakteryzują się tym, że dzielą się bez reszty przez wielomian generujący. Powstanie niezerowej reszty umożliwia wykrycie obecności przynajemniej jednego blędu. Istnieją również kody ilorazowe służące nie tylko do detekcji, ale i do korekcji błędów określonego rodzaju (np. kod Fire'a). Problemem korygowania błędów w przesyłanych danych może być rozwiązywany w różny sposób. Jednym z prostych, ale kosztownych sposobów, jest zwiększenie liczby kanałów do przesyłania tych samych informacji. Przykładowo, przy trzech k anałach, po stronie odbiorczej porównuje si~ kolejne bity informacyjne otrzymywane równolegle z tych kanałów i podejmuje się decyzję o wyborze „prawidłowego" bitu na podstawie prostego kryterium większoś­ ciowego (2 z 3). Sposób ten zabezpiecza dane od błędów powstałych w jednym z kanałów np. w rezultacie awarii. Błędy, które powstaną jednocześnie w dwu kanałach, pozostaną jednak niewykryte. Innym sposobem, który umożliwia wykrycie i skorygowan ie blędów, jest zastosowanie kodów parzystości blokowej, zwanych inaczej geometrycznymi. Na rys. 2.3 przedstawiono przykład takiego kodu w zastosowaniu do prostokątnej tablicy danych o 7 wierszach i 5 kolumnach. Do każdego wiersza dodaje się kontrolny bit nieparzystości, a do każdej kolumny kontrolny bit parzystości. Bity te są również niezależnie testowane na przecięciu kolumny i wiersza utworzonych 69 2. CYFROWY ZAPIS INFORMACJI o n; o o 1 1 Pi - 1 1 o o o 1 I 1 o o o o 1 o o o o 1 o 1 © o 1 o o o 1 @] 1 o o 1 n, n, 1 n, 1 1 1 1 n, o n, li] "• 1 n, n• p =O P, P, P, P, Ps n; b o I 1 o 1 1 o o 1 o o ro„'"ól 1 o '•o. t.: _ __ o: 1 o o 1 1 1 ~„ 1 ® o 1 + o ' 1 [j] 1 o o '.,; " ::i c „"„ 1 1 ·;;- o ',;; [QJ o o o p. - „o• o. " ~ Rys. 2. 3 Przykład kodu n= p = 1 :zastosowania · ko rekcyjnego blokowej parzystości a) 1.ablica nadawana. b) t:1.błiea O<.kbfana przez nie. Przedstawiony kod umożliwia wykrycie wszystkich błędów pojedynczych i wskazuje ich położenie w tablicy przez znalezienie odpowiednich bitów kontrolnych wiersza i kolumny, jako ich współrzędnych. Umożliwia to skorygowanie błędnego bitu. Przykładowo, jeśli znak CD z nadawanej tablicy (rys. 2.3a) został odebrany jako @ w odbiorniku (rys. 2.3b), to sygnałem istnienia pojedynczego błędu jest nierówność wyników testów n = p. Porównując bity kontrolne p, i n; z tablicy odebranej i otrzymane w wyniku przetestowania tej tablicy, znajduje się współrzędne błędu, który należy skorygować. W podobny sposób można wykryć pary błędów i trzeba porównać kolejno bity kontrolne tablicy nadawczej i odbiorczej. Jest to zaletą kodu geometrycznego, gdyż w praktyce często występują błędy seryjne w transmisji powstałe w wyniku zakłóceń zewnętrznych o określonym czasie trwania. W takich przypadkach częstość błędów podwójnych jest znacznie większa od tej, którą można obliczyć na podstawie częstości błędów pojedynczych. M ożna jednak zauważyć, że pewne błędy parzyste ulokowane symetrycznie w stosunk u do współrzędnych nie są wykrywalne (np. gdy bity O objęte na rys. 2.3b linią przerywaną zostaną odebrane jako jedynki). Jak już podano, właściwość wykrywania i korygowania błędów jest charakterystyc-.m a dla kodów o minimalnej odległości LI , równej co najmniej 3. Kodem takim jest często stosowany kod Hamminga, który w swej podstawowej 70 2.4. KODY ZABEZPI ECZAJĄC E PRZED BŁĘDAMI L tCZBA err()w KONTR.01,.NYCH KODU H.AMMJNGA OD Dl.UGOŚCI CIĄOÓ\\' INFORMACYJNYCH w ZA1,.E.tNO$CI Tablica 2.10 K I 2 3 4 1 4 5 6 7 26 3 7 15 31 57 120 127 11 63 postaci służy do wykrywania i korygowania pojedynczych błędów w ciągach kodowych. Ciąg w kodzie Hamminga stanowi kombinację I bitów z kodu informacyjnego i określonej liczby K kontrolnych bitów parzystości, przy czym musi być spełniony warunek 2K - l ;i: K + I skąd wynikają liczby podane w tabl. 2.10. Całkowita Hamminga jest równa długość n ciągu w kodzie n = K+I przy czym bity tego ciągu numeruje się zaczynaj ąc od I (nie od O). Wszystkie bity, których numer jest potęgą dwójki (a więc I, 2, 4, 8,...) są kontrolnymi bitami parzystości, a pozostałe niosą informację źródłową. Zgodnie z danymi z tabl. 2.10, np. dla 7-bitowych słów kodu ISO lub ASCII są potrzebne 4 bity kontrolne, przy czym są one generowane według zależności K 1 = / 3 $ / 5 $ / 7 $ / 9 $ / 11 K2 K4 = l3Ef> / 6Ef>l1©I,o©I11 = Is $ I 6 ffi I7 (2.14) Ka = 19 $1 10 $1 11 gdzie symbolami I; oznaczono bity informacyjne w I I-bitowym ciągu łącznym I 11 I 10 19 Ka1 7 16 1s K 4 13 K 2 K, W celu wykrycia i zidentyfikowania błędu (który może istnieć w bitach informacyjnych lub w bitach kontrolnych) oblicza się dla danego ciągu bity kontrolne według (2.14) i tworzy się ciąg B = KaK 4 K 2 K 1 przypisując mu wagi 8, 4, 2, 1 tak jak w kodzie NB. Równoważna liczba dziesiętna L(B) równa Ooznacza, że badany ciąg nie zawiera pojedynczego błędu, natomiast liczba ta różna od zera bezpośrednio wskazuje na pozycję błędnego 71 2. CYFROWY ZAPIS INFORMACJI bitu. Np. ciąg B = O1O1, dla którego L(B) = 5 wskazuje, że bit I 5 jest błędny, co umożliwia jego prostą korekcję. Dla I = 4 w zależnościach (2.14) nie ma pozycj i K 8 , 19 , 110 iI 11 . Jak wyni ka z tablicy 2.10, d la 16-bitowych ciągów informacyjnych (I = 16) wystarczy K = 5 bitów kontrolnych. Jednakże przez zastosowanie jeszcze jednego bitu kontrolnego można zapewnić nie tylko korekcję wszystkich błędów pojedynczych, lecz także wykrywanie wszystkich błędów podwójnych. Sposób taki jest stosowany w niek tórych komputerach w celu zabezpieczen ia się przez tzw. miękkimi błędami (soft errors), pochodzącymi z przejściowo niepoprawnego działania półprzewodnikowych pamięci dynamicznych wielkiej skali integracji. LITERATURA AschoIT V.: A11s der Frii/Jgeschicllle des 8i11iir-Code. AEO, 35 198 1, H. 2, 57 Budkowski S., Papliński A., Sosnowski J.: Zespoly i 11rzqdze11ia cxfmwe, WNT, Wars7.awa 1979 Doll D. R.: Dala communica1ions, J. \Viley. 1978, rozdz. 6. Dróżdż J.: Podstawy transmisji danych (red. Z. Baran), WKL, Warszawa 1982, ro1,dz. 10- 14 Heath F. G.: Origi11s of t.lie bi11ary cotfe. Scientific American, 227, 1972, No 2, 76 Ostro\\•ski P.• Dąbrowski M .: Sys1e1ny i :>ieci teleiąjOrn1atyl'z11e. WK.L, \Vars1..awa 1979 Sobczak W.: S1.a1ys1yfz 1ul reoria systrn1ó\v przesyJania i11for111acji, WKŁ. Warsza\\'a 1984 Vanstone S. A„ Oorschot P. C.: A" introduction to el'ror t·orrecti11g codes 1vitlt app/i('r11ions, Kluwer Aeadeinic Publishers, Boston 1989 9. Houghton A.: The e11gineer's 1mor <·o<li11g ha11book, Chapman & Hall, London 1997 IO. Mochnacki W.: Kody korei«'J:ine i kryp109raji<1, Oficyna Wydawnicza Politechniki Wrocła wskiej, l. 2. 3. 4. 5. 6. 7. 8. Wrocław 1997 3 ARYTMETYKA DWÓJKOWA Podstawowe reguły arytmetyki dwójkowej będą w niniejszym rozdziale omówione najpierw dla liczb dwójkowych bez znaku, czyli nieujemnych (p. 3.1). Następ­ nie będą omówione działania arytmetyczne na liczbach dwójkowych ze znakiem, czyli dodatnich i ujemnych (p. 3.2), na liczbach dziesiętnych kodowanych dwójkowo w kodzie BCD (p. 3.3) i na liczbach zmien noprzecinkowych (p. 3.4). Treść rozdziału jest ograniczona do podstawowych czterech działań arytmetycznych: dodawania, odejmowania, mnożenia i dzielenia liczb dwójkowych. DZIAŁANIA ARYTMETYCZNE NA LICZBACH DWÓJKOWYCH BEZ ZNAKU 3.1 Poni.ższe działania będą one słuszne także rzeczywistych. omówione w odniesieni u do liczb całkowitych, lecz są dla liczb ułamkowych i ogólnie biorąc, nieujemnych liczb Dodaw ani e W celu dodania dwu liczb dwójkowych Pi Q dokonuje się sumowania par bitów na poszczególnych pozycjach, rozpoczynając od najmniej znaczącego bitu. Podo bnie j ak w arytmetyce dziesiętnej należy przy sumowan iu bitów na każdej (i-tej) pozycji uwzględnić bit prze11iesie11ia (c1) z niższej pozycji. Jeśli przyjąć oznaczenia dodawanych liczb całk owitych 1 P = P. - 1P. - 2···P•···Po Q = q• _ lq• - 2···q1 ··· qo F = f. - 1f.-2···f. ... fo sumy to dodawanie bitów na poszczególnych pozycjach przebiega zgodnie z regułami podanymi w tabl. 3.1. W wyniku dodawania na każdej pozycji otrzymuje si~ bit sumy (f,) oraz bit przeniesienia na wyższą pozycję (ci+ 1) . 73 3. ARYTM ETYKA OW0JK0WA R rout.Y DODAWANIA BtTOW f'RtY SUMOWANIU LICZB DWÓJKOWYCH REOUl.Y SUMOWANIA MODULO ?). Tablica 3.1 (UNIĄ PR ZER YWA NĄ OBJĘTO Argumenty c, r-- - - o o I I o I I I o L o o I I I J, q, P• o o Na Wynik --- - - o I ,.__ o - o- - I I o I - C1 • l ---, 0 I I I I I _O_J I o o o o o I o I I przykład pozycja: 4321 O p = 1001 Q = 1101 wynik Y= IOll O tJ Reguły z tabl. 3.1 2 C1+ 1 L(P) = 9 L(Q) = 13 L(Y) = 22 tJ mogą być także opisane formułą +f; = p, + ą, +c, i dlatego wyrażenie określające słowo dwójkowe Y, stanowiące wynik dodawania liczb P, Q i ewentualnego przeniesienia „wstępnego" c0 E {O, I}, można przedstawić w postaci P+Q+c0 = Y = c0 • F L(P)+L(Q)+c0 = L(Y) = L(c. • F) czyli L(Y) = 2" c. + L(F) W powyższym omówieniu operacji dodawan ia sygnał przeniesienia jest transmitowany przez kolejne pozycje, w najgorszym przypadku od wejścia c0 aż do wyjścia c,. Jest to najprostsza koncepcyjnie, lecz najwolniejsza metoda sumowania z przeniesieniami tworzonymi szeregowo, czyli jak się to skrótowo określa, „z przeniesieniami szeregowymi". Inne szybsze metody sumowania są omówione w rozdziale 7. 74 3.1. DZI AŁAN IA ARYTMETYCZNE NA LICZBACH OWOJKOWYCH Dodawanie pojedynczych bitów przy nieuwzględnieniu przemes1ema pozycji (c; = 0) i bez generacji przeniesienia na wyższą pozycję nosi nazwę sumowania modu/o 2, a jego reguły są podane w tabl. 3. 1 (w części obwiedzionej linią przerywaną). Sumę modulo 2 oznacza się symbolem „$". Dla bitów P; i ą; z niższej f; = P; Ef;l ą; W zasadzie liczby dwójkowe mogą być dodawane tylko parami, to znac-q że nie można dodawać „słupków" utworzonych z liczb dwójkowych. Dodawanie większej liczby argumentów dwójkowych wykonuje się zazwyczaj przez sekwencyjne dodawanie poszczególnych argumentów. Na przykład, w celu dodania liczb A, B, C i D dodaje się najpierw A+ B = W,, a następnie W, + C = W2 i W2 + D = W Taki proces sumowania kolejnych argumentów określa się jako sumowanie akumulacyjne. Metody jednoczesnego dodawania wielu liczb dwójkowych są omówione w [5]. Odejmowanie W dwójkowym systemie liczbowym nie ma operacji odejmowania analogicznej do tej, która jest powszechnie używana w dziesiętnym systemie liczbowym. W związku z tym również układy cyfrowe nie mogą wykonywać takiej operacji odejmowania - mogą tylko dodawać. Dlatego, aby wykonać operację odejmowania liczb dwójkowych, należy dokonać zabiegu, który umożliwi wykorzystanie do tego celu operacji dodawania. Zabiegiem takim jest przedstawienie odjemnika w jednym z kodów uzupełnieniowych i następnie wykonanie operacji dodawania z odjemną. Stosuje się to również do dziesiętnego systemu liczbowego. Na przykład, można obliczyć w pamięci różnicę odejmuj ąc 54 - 30 24 albo, jemy przedstawiając odjemnik 30 ja ko uzupełnienie do 9 (czyli 69) otrzymu- 54 + 69 r I I - 123 tJ li 4+24 75 przeniesienie zwrotne wskazuje na dodatni znak wyn iku 3. ARYTMETYKĄ OWOJKOWA Jak widać, w celu uzyskania poprawnego wyniku, należy jedynkę z pozycji przeniesienia przenieść na pozycję najniższą (jest to tzw. przeniesienie z wrotne lub cykliczne) i dodać. Jeżeli zamienimy miejscami odjemną i odjemnik, to różnica będzie ujemna: 30 + 45 r -- 075 I I I 1.J 4 - 24 uzupelnien ie do 9 liczby 54 wynik ujemny w kodzie U9 uzupełnienie do 9 liczby 75 Poprawny wynik w kodzie ND otrzymuje się zatem po uzupelnieniu do 9 otrzymanej sumy. Brak przeniesienia (0) w sumie oznacza wyn ik ujemny i konieczność uzupelnienia sumy w celu uzyskania wyniku w kodzie ND. Odwrotnie, jeśli w sum ie występuje przeniesienie (1), to znaczy że wyn ik jest dodatni. W dwójkowym systemie liczbowym analogiem dziesiętnego uzupełnienia do 9 jest kod U I . Stosując kod NB mamy NB(54) = 110110 U/(54) = 001001 NB(30) = 011110 U I (30) = 100001 i operację 54- 30 = 24 wykonuje się jako sumowanie 110110 + 100001 1010111 '-' L, +011000 NB(54) u1(30) przeniesienie zwrotne + 24 i rozpoznanie znaku wyniku następuje tak samo jak w systemie Podobnie prą różnicy ujemnej Oli 110 +00 1001 0100111 t l - 011000 76 NB(30) U I (54) wynik ujemny w kodzie U I (uzupełnienie do I liczby 100111 ) - 24 (uzupełnienie do I liczby I OO 111) dziesiętnym. 3.1. OZIALANIA ARYTMETYCZNE HA LICZBACH OWOJKOWYCH Wykorzystując uzupełnienie do podstawy danego systemu liczbowego eliminuje się przeniesienia zwrotne i dlalego operacja odejmowania staje się prostsza. Wykorzystując uzupelnienia do 2 liczb dwójkowych, dla argumentów z poprzedniego przykladu otrzymuje się U 10(30) = 70 i U2(30) = 100010, skąd 54 +70 :l: 24 N B(54) U2(30) +24 110110 + IOOOIO t 011000 tJ tJ + + Poprawne wynik i otrzymuje się przy pom i n ięciu w sum ie jedynek wynikających z przeniesienia z najwyższych pozycji, ale trzeba pam iętać, że wskazują one na dodatni znak wyniku tak wykonanego odejmowania. Zam ieniając odjemną z odjemnikiem i obliczając U/0(54) = 46 i U2(54) = 001010 o trzymujemy 30 +46 076 tJ I 1 -24 011110 +001010 0101000 (uzupełnienie do IO liczby liczby 76) tJ ! - 011000 N 8 (30) Ul (54) wynik ujemny w kodzie U2 (uzupełn ien ie do 2 liczby 101000) - 24 czyli brak przeniesień z najwyższej pozycji sumy wskazuje na wynik ujemny i konieczność uzupełnienia sumy do podstawy danego systemu liczbowego, w celu otrzymania nie uzupełnionego modulu wyn iku. Jak widać, aby odejmować nieujemne liczby dwójkowe, nie jest konieczne przedstawianie ich w postaci liczb ze znakiem. Mnożenie Podstawowa metoda mnożenia liczb dwójkowych jest podobna do mnożenia liczb dziesiętnych i polega na określeniu, a następnie dodaniu iloczynów częściowych . Przy mnożeniu liczb dwójkowych Pi Q iloczyny częściowe są równe mnożnej P,jeśli odpowiednim czynnikiem z mnożnika jest bit I, lub równe zeru, jeśli tym czynnikiem jest bit O. Operacja mnożenia polega zatem na realizacji ciągu przesunit,)ć mnożnej w lewo (opera to r SHL) i akumulujących dodawań (opera tor ADO). Ilustruje to poniższy przykład mnożenia liczb calk owitych: L(P) = 21 i L(Q) = 19, których iloczyn wynosi L(P x Q) = 399: 77 3. ARYTMETYKA DWÓJKOWA p 10101 X 10011 10101 10101 111 111 10101 Wynik F: 110001111 Q p SHL P ADD SHL P, SHL P, SHL P ADD Przykład ten jest ilustracją odręcznej metody „papieru i ołówka". W realizacji maszynowej nie przesuwa się mnożnika, lecz kolejne iloczyny częściowe (w prawo). Pity każdym przesunięciu w prawo (operator SHR) iloczynu częściowego przesuwa się w prawo także mnożnik, tak że badany bit mnożnika znajduje się zawsze na najmniej znaczącej pozycji. Na zwolnioną najwyższą pozycję mnożnika wprowadza się najniższy bit przesuwanego iloczynu częściowego. W ten sposób po zakończeniu mnożenia słowo mnożnika Q jest zastąpione przez mniej znaczące bity iloczynu F. Przy takim postępowaniu powyższy przykład można przedstawić w postaci: p Q 10101 10011 10101 01010 10101 10011 11001 11001 111 11 0 11 11 00111 11001 ADD li 100 SHR SHR SHR p 10101 111 10 11111 11111 11000 1100 ll 111 01111 OOOll Wynik F: Przykład p SHR p ADO SHR procedury mikroprocesorowej, realizującej ten algorytm, jest podany w p. 10.3.3 (tabl. 10.2). W ogólnym przypadku przy mnożeniu a-bitowej liczby P przez b-bitową liczbę Q otrzymuje się iloczyn F o liczbie bitów równej a + b. Oznacza to, że jeśli obydwie mnożone liczby mają tę samą długość słowa, to wynik wymaga podwójnej długości słowa. W powyższym przykładzie dziesiąty bit, wynikający z mnożenia dwu liczb 5-bitowych, jest równy O na dziesiątej (najwyższej) pozycji. Szybsze metody mnożenia są omówione w p. 3.2 w odniesieniu do liczb ze znakiem. 78 3.1. Oli.Al.ANIA ARYTMETYCZNE NA LICZBACH DWOJKOWYCH Dzielenie W najprostszy koncepcyjnie sposób operację dzielenia liczb dwójkowych wykonuje się metodą porównawczą, a więc podobnie do dzielenia dziesiętnego, wykonując ciąg kolejnych mnożeń i odejmowań. Ponieważ odjemnikiem jest zawsze dzielnik, przy operacji odejmowania wpisuje się go w kodzie uzupeł­ nieniowym, najczęściej UZ. Ilustruje to przykład dzielenia liczby l(P) = 110 przez L(Q) = 5: 10110+-wynik F dzielna P - 1101110 ~ 101, UZ(5) = 011 011 l i 00111 dzielnik Q dzielnik Q w kodzie UZ 011 w kodzie NB 0101 011 0000 W procesie dzielenia występuje sekwencyjnie operacja porów11a11ia z dzielnikiem reszt częściowych o liczbie bitów równej liczbie bitów dzielnika (w tym przypadku 3). Jeśli dzielnik jest większy, wpisujemy do wyniku O, przesuwamy się z dzielnikiem o jedną pozycję w prawo i wykorzystujemy kolejny bit dzielnej. Jeśli jest mniejszy lub równy, to wpisujemy do wyniku I, pod resztę częściową wpisujemy dzielnik w kodzie UZ i dokonujemy sumowania, po czym wykorzystujemy kolejny bit dzielnej, dokonujemy porównania itd. Przy realizacji maszynowej proces ten przebiega inaczej: kolej ne reszty c-tęściowe przesuwa się o jedną pozycję w lewo, przy czym na pozycję LSB wprowadza się kolej ne bity dzielnej, a dzielnika się nie przesuwa. W powyższym przykładzie dzielenie kończy się bez reszty, ale w ogólnym przypadku wynik dzielenia otrzymuje się z resztą niezerową. W innej metodzie dzielenia zwanej res1ycucyjną w kaźdym kroku następuje odejmowanie dzielnika i następnie badanie znaku różnicy. Jeśli znak ten jest ujemny, to oznacza, że trzeba wrócić do poprzedniej postaci reszty częściowej („restytuować" ją), co realizuje się przez dodanie nie uzupełnionego dzielnika. Proces ten jest objaśniony na przykładzie dzielenia liczby L(P) = 456 przez L(Q) = 24: N8(456) = 111001000 NB(24) = 11000 UZ(24) - 01000 79 3 ARYTMETYKA DWÓJKOWA F= 10011 111001000+ 11000 010001 odjęcie dzielnika ( +) 001001 wynik doda tni 01000 odjęcie dzielni ka wynik ujemny (- ) 10001 11000 dodan ie dzielnika 0 10010 odtworzen ie poprzedniej reszty cz. 01000 odjęcie dzieln ika (-) 11010 wyn ik ujemny dodanie dzielnika 11000 100100 odtworzenie poprzedniej reszty cz. odjęcie dzielnika 01000 011000 wynik dodatni ( +) 01000 odjęcie dzielnika 00000 wynik dodatni, reszta zerowa. ( +) Odejmowanie dzielnika wykonuje się przez dodanie jego uzupelnienia do 2. Każdorazowo po odjęciu dziel nika następuje sprawdzenie znaku wyni ku i jeżeli znak ten jest dodatni, to wpisuje się I do wyniku i przechodzi się do następnego kroku odejmowania przez wy korzystanie następnego bi tu dzielnej. J eżeli znak jest ujemny, to trzeba powrócić do poprzed niej postaci reszty częściowej i w t ym cel u dodaje się dzielnik w postaci nie uzupelnionej. Przy kolejnych odejmowan iach wykonuje się przesunięcie dzielnika o jedną pozycję w prawo, a po wykorzystaniu wszystkich bitów dzielnej ostatnia reszta częściowa stanowi resztę z dzielenia. Przy realizacji maszynowej nie przesuwa się dzielnika w prawo, lecz kolejne reszty częściowe w lewo. W szybszej metodzie nierestyrucyjnej unika się zabiegów odtwarzania reszt częściowych i dzielnik jest w każdym kroku dodawany lub odejmowany od reszty częściowej. Metoda ta jest omówiona w p. 3.2 w odniesieniu do liczb ze znakiem. / Działania na dużyc h li czbach stałoprzecinkowych W wiciu typowych zastosowan iach podstawowym formatem danych jest bajt, który daje możliwość zapisan ia liczb ca lkowitych w zakresie od Odo zaledwie 255. Aby móc operować większymi liczbami, stosuje się formaty danych dwu- lub więcej-bajtowe. Jeśli uklad cyfrowy może akceptować do jednoczesnego przetwarzania tylko dane jednobajtowe, to wynika stąd konieczność sekwencyjnego przetwarzania kolejnych bajtów. Ilustruje to poniższy przykład dodawania liczb dziesiętnych 80 3 ..2. OZIAt.ANIA ARYTMETYCZN E NA LICZBACH OW0JK0WYCH ZE ZNAKI EM 46813 + 52388 = 9920 I czyli w kodzie szesnastkowym B6DD 16 + CCA416 = 18381 16 bajt 1 bajt O 10110110 11011101 11001100 + 10100100 1 10000011 10000001 + LJ 1 Najpierw dodaje się niższe bajty (O) obydwu liczb, a następnie wyższe (1), z uwzględnieniem przeniesienia z poprzedniej operacji. Jak widać, również przy sumowaniu wyższych bajtów nastąpiło generowanie jedynkowego bitu przeniesienia. Ponieważ przyjęty format danych w tym przypadku obejmował 16 bitów, bit przeniesienia z najwyższej pozycji przekracza ten format i stąd nosi nazwę nadmiaru lub przepel11ie11ia (overjlow). Przy odejmowaniu wielobajtowych liczb bez znaku odjemnik najczęściej przedstawia się w kodzie U2 i następnie dodaje do odjemnej. W tym celu najpierw przedstawia się wszystkie bajty odjemnika w kodzie U 1 i dodaje I do najniższej pozycji najniższego bajtu (O). Jeżeli z najwyższej pozycji tego bajtu generowane jest przeniesienie jedynkowe, to należy je dodać do najniższej · pozycji wyższego bajtu (1). Podobnie należy dodać wszystkie dalsze przeniesienia z bajtów niższych do wyższych. DZIAŁANIA ARYTMETYCZNE NA LICZBACH DWÓJKOWYCH ZE ZNAKIEM 3 .2 Przy działaniach aa liczbach dwójkowych z osobnym bitem znaku, również wynik otrzymuje się od razu z bitem znaku, spełniającym podobną rolę do bitu przeniesienia z najwyższej pozycji przy odejmowaniu liczb bez znaku. Liczby ze znakiem zwykle normalizuje się tak, aby reprezentowały one albo liczby całkowite, albo liczby ułamkowe (ułamki właściwe) w jednym z trzech zapisów: ZM, ZU 1 lub ZU2 (p. 2.2.4). Poniższe działania będą omówione na przykładach liczb całkowitych, lecz są one słuszne również dla liczb ułamkowych. Dodawanie i odejmowanie Biorąc pod uwagę, że P-Q = P +( -Q), dodawanie i odejmowanie liczb dwójkowych ze znakiem wykonuje się według tych samych reguł. Najczęściej 81 3. ARYTMETYKA OWOJKOWA stosowane są kody Z Ui i ZU2. Na przykład, przy zastosowaniu kodu ZUi , dodajemy liczby łącznie z bitem znaku: + 12 +-37 - 25 0.001100 1.011010 1.100110 ZUi(+ 12) ZUl( - 37) - 25 w kodzie ZUi i przy przeciwnych znakach argumentów - 12 + +37 + 25 1.110011 0.100101 10.011000 I '1 0.011001 ZUl( - 12) ZUl(+37) przeniesienie zwrotne +25 w kodzie ZUi Te same działania w kodzie ZU2 są prostsze, gdyż nie wymagają stosowania przeniesienia zwrotnego. Równiei dodajemy liczby łącznie z bitem zna ku: 0.001100 1.011011 1.100111 ZU2(+ 12) ZU2( - 37) -25 w kodzie ZU2 1.110100 0.100101 i 0.011001 ZU2( - 12) ZU2( + 37) + 25 w kodzie ZU2 tJ Nadmiar (przepełnienie) przy działaniach na liczbach ze znakiem jest bardziej grożay niż na liczbach bez znaku, bo w pewnych przypadkach może doprowadzić do błędnego wyniku danego działania. Nadmiar może wystąpić, jeśli dwie dodawane liczby są jednocześnie dodatnie łub jednocześnie ujemne. Wówczas przeniesienie jedynkowe z najwyższego bitu modułu sumy, jeiełi wystąpi, powoduje zmianę znaku wyniku i nie jest uwzględnione w module wyniku. Na przykład, przyjmując kod ZU2, +69 +103 + + 172 0.1000101 0.1100111 1.0101100 - 84 w kodzie ZU2'! tJtJ / \ c' =O c„ = I Sytuację taką można zawsze wykryć, obserwując dwa bity przeniesień generowane w czasie dodawania: c, - z bitu znaku i c„ - z najwyższego bitu modułu sumy. Nadmiar powodujący błędny wynik ma miejsce tylko wtedy, gdy 82 3.2. OZIALANIA ARYTMETYCZNE NA LICZBACH OW0JK0WYCH ZE ZNAJ(IEM c, $ c„ = 1 a więc tylko wówczas, gdy c, = Oi c„ = I lub c, = I i c„ = O. Można zauważyć, że w poprzednich przykładach poprawne wyniki były uzyskiwane przy spełnionym warunku c, = c„ = O albo c, = c,,, = I. W celu zlikwidowania nadmiaru należy zwiększyć długość słowa danych przynajmniej o jeden bit. Przy stosowaniu mikroprocesorów, które operują słowami bajtowymi, oznacza to użycie dla danych formatu dwubajtowego. Wówczas bajt I bajt O 0.0000000 0.0000000 0.0000000 01000101 01100111 !0!01 100 t I + ł72 o Porównując bity określające znak wyników otrzymanych z działań na liczbach bez znaku i na liczbach ze znakiem można zauważyć, że pod pewnym względem są to relacje przeciwstawne: wynik działania na liczbach bez znaku był dodatni, jeśli na najwyższej pozycji słowa wyn ikowego otrzymywana była jedynka, natomiast w liczbach ze znakiem bit równy l na pozycji znaku wskazuje zawsze na znak minus. Mnożenie i dzielenie Koncepcyjnie najprostsze operacje mnożenia i dzielenia liczb ze znakiem otrzymuje się wówczas, gdy liczby te są zapisane w kodzie ZM. Wtedy bowiem działania mnożenia i dzielenia wykonuje się na modułach liczby, czyli jak na liczbach bez znaku, w sposób opisany poprzednio w p. 3.1. Znak wyniku ustala się osobno, sumując module 2 bity znaku argumentów. Jeżeli liczby są przedstawione w kodzie uzupełnieniowym ze znakiem (ZU 1 lub ZU2), to na liczbach ujemnych można dokonać ponownego uzupeł­ nienia modułu, przechodząc w ten sposób do kodu ZM, czyli do sytuacji opisanej poprzednio. Uzupełnienie otrzymanego wyniku wykonuje się t ylko wtedy, jeśli wynik ma być ujemny. Gdy do zapisu mnożonych liczb jest stosowany kod ZU2, wtedy jedną ze stosowanych metod jest metoda Robertsona.. Jeżeli obydwie te liczby są dodatnie, to mnożenie następuje oczywiście jak dla liczb bez znaku. Gdy obydwie liczby są ujemne, wtedy należy obliczyć uzupełnienia do 2 tych liczb i też wykonać mnożenie jak dla liczb bez znaku. Jeżeli mnożna jest ujemna a mnożnik dodatni, to także wykonuje się mnożenie jak dla liczb bez znaku, lecz wymagane jest 83 3 ARY1METYKA OWOJKOWA dopisanie jedynek po lewej stronie mnożnej, przepisywanej jako iloczyn częściowy. W reszcie, jeżeli mnożna jest dodatnia a mnożnik ujemny, to dokonuje się ich przemnożenia przez - I lub zamiany, aby uzyskać dodatni mnożnik i operację mnożenia wykonuje się tak samo jak w poprzednim przypadku. Przedstawiono to na następujących przykładach: +23 I) +5 X +115 - 23 2) liczba 10-bitowa dopisane jedynki +5 X liczba 5-bitowa ze znakiem liczba 5-bitowa ze znakiem 0.1011 1 0.00101 0.0000010111 0.000101 I I 0.000111001 1 'Io ze znakiem 1.01001 0.00101 - 11 5 I 11 1.1110001101 W praktyce do mnoi.enia dużych liczb ze znakiem w kodzie ZU2 zwykle stosuje się szybszą metodę Bootha, a tak:i.e jej modyfikacje. W klasycznej metodzie Bootha wykorzystuje się tę właściwość liczb dwójkowych, że ci11g m jedynek w zapisie liczby, tj. m jedynek 00011 ··· llOOO można zastąpić zapisem 00100 ··· OTOOO (m - 1) zer gdzie symbol T oznacza minus 1. Odpowiada to przedstawieniu maksymalnej wartości dziesiętnej dla m-bitowej liczby dwójkowej, która jest równa Otfuc.n: PUY MNC>lENIU (b• •I, ł1 LICZI W l.OOZll lł/1 MtTOOĄ IOOTHA Tablit:a J.1 • KOLUNt lnY M!<OZNIKA) b„ .... b, o o o I o Operacja na pozycji (I<+ I) żadna dodaj mnożną odejmij mnożną żadna 84 3.2. DZIAŁ.AN IA ARYTMETYCZNE NA LICZBACH OWOJKOWYCH ze ZNAKIEM Lm••= 2"' - I. Algorytm mnożenia oparty jest na badaniu par bitów mnożnika od najmniej znaczącego bitu, przy czym zakłada się, że na prawo od tej pozycji jest cyfra O. Zależnie od rodzaju danej pary wykonuje się dodawanie lub odejmowanie mnożnej, bądź też nie wykonuje się żadnej z tych operacji (tabl. 3.2). Zakończeniem każdego kroku jest przesunięcie wyniku uzyskanego w tym kroku o jedną pozycję w prawo (SHRA). Jeśli mnożone liczby są liczbami n-bitowymi (łącznie z bitem znaku), to wynik mnożenia wyraża się liczbą (2n- l)-bitową. Przedstawiono to na przykładzie mnożenia liczb L(P) = 23 i L(Q) = - 19: począwszy p Q c 010111 101101 o 101001 110100 010111 001100 0001 10 101001 101111 110111 111011 010111 010010 001001 101001 Wynik F : 110010 101101 110110 110110 110110 011011 011011 011011 101101 110110 110110 110110 011011 011011 01101 o -P 1 I 1 o o o 1 I I I o o SHRA +P ADD SHRA -P ADD SHRA SHRA +P ADD SH RA -P - 437 R początkowo zawiera tylko mnożnik Q. Przy kolejnych przesuQ jest przesuwany w prawo, a na opróżnione pozycje z lewej strony wprowadzane są niższe bity iloczynu F. Dodatkowy bit c tworzy wraz z najniższym bitem słowa R parę, która jest badana po każdym przesunięciu. Oznaczona symbolem SHRA operacja przesunięcia stanowi przesunięcie arytmetyczne dla liczb w kodzie ZU2. Przy takim przesunięciu bit znakowy liczby przesuniętej jest zawsze taki sam jak bit znakowy liczby przed przesunię­ ciem. Zwróćmy także uwagę, że operacje dodawania i odejmowania występują przemiennie, a liczba przesunięć wynosi (11- l). Metoda Bootha przyspiesza operację mnożenia jeśli w mnożniku występują dłuższe ciągi jedynkowe. Natomiast gdy w mnożniku występują liczne izolowane jedynki, wtedy metoda Bootha staje się wolniejsza od metody konwencjonalnej, gdyż dla każdej izolowanej jedynki wykonuje się jedno dodawanie i jedno odejmowanie mnożnej. Słowo nięciach mnożnik 85 3. ARYTMETYKA DWÓJKOWA W usprawnionej metodzie Bootha wykonuje się takie przekodowanie aby zwiększyć liczbę bitów zerowych mnożnika w postaci ciągów zer. Na przykład ciąg jedynek z „wtrąconym" zerem można przedstawić jako mnożnika 11...1011...1 = 100... 0TO...OI m bitów m+ I bitów W wyniku przekodowania otrqmuje się zapis mnożnika, w których zawarta jest minimalna liczba bitów niezerowych, przy czym każdy bit niezerowy jest oddzielony przez co najmniej jedno 7.Cro. Z tego względu przekodowanie takie określa się często jako kanoniczne. Algorytm mnożenia opiera się na badaniu kolejnych par bitów mnożnika, lecz jest bardziej złożony niż w klasycznej metodzie Bootha. Przyspieszenie mnożenia można także uzyskać przez zastosowanie algorytmu, który bada bity mnożnika w sukcesywnych grupach trójkowych (5). Dzielenie liczb ze znakiem, przedstawionych w kodach uzupelnieniowych ZUi lub ZU2, można wykonać przez przekodowanie liczb ujemnych na zapis ZM, wykonanie dzielenia na dodatnich modułach i obliczenie uzupełnienia wyniku, jeśli ma on być ujemny. Znak ilorazu otrzymuje się przez sumowanie module 2 znaków dzielnej i dzielnika. Do dzielenia liczb w kodzie ZM stosuje się metody omówione w p. 3.1, tj. metodę porównawczą lub metodą restytucyjną, stanowiącą w istocie specjalny przypadek metody porównawczej (gdy porównanie reszty częściowej i dzielnika wykonuje się metodą odejmowania). Metodę nierestytucyjną, stosuje się do dzielenia liczb przedstawionych zarówno w kodzie ZM jak i ZU2. Omówimy stosowanie metody nierestytucyjnej dla liczb zapisanych w kodzie ZU2. Najpierw wykonuje się test istnienia nadmiaru. W tym celu dzielnik (Q) dodaje się łub odejmuje od (do) najbardziej znaczących bitów dzielnej (P) i bada się znak wyniku (pierwszej reszty częściowej) zgodnie z regułami podanymi w tabl. 3.3. Jak widać, nadmiar występuje tylko wówczas, gdy rezuł0xRESLENlE NADMIARU, POPR.AWNEOO ILORAZU I f POPRAWNEJ RESZTY R Tablica 3.3 PRZY OZ.IEUNIU LICZB V.' K.ODZ.I Ę: l Cl1 Mef()OĄ NI ER ESTYTUCYJNĄ Bitv znaku Dzielna Dzielnik (reszta Znak Operacja o I I I o I 86 o wskazujący Tloraz nadmiar częściowa) o wyniku } odejmowanie o } dodawanie o I I I Reszta R /' /' U2( R') + /' + /' R' I I R' U2( R) 3.2. OZłAlAN I A ARYTMETYCZNE NA LIC28ACH DW0JK0WYCH ZE ZNAKIEM 0KRl!S:L.ANl~ k.OLEJNY( H 8 JTÓW ll.ORAZU I KOLEJN YCH Oł'ERACJI TWOR.Zf..NIA RESZT Tllblica 3.4 C'ZĘSCIOWYCU Bily znaku reszty częściowej i dzielni ka Kolejny bil ilorazu jednakowe I o różne Naslępna operacja odejmowanie doda\vanie tat operacji ma ten sam znak co dzielna. W takiej sytuacji trzeba odpowiednio zmodyfikować postać argumentów aby zlikwidować nadmiar, np. przez ope· rację skalowan ia. Jeśli nadmiar nie występuje, to określa się pierwszy bit (znaku) ilorazu przez porównanie bitów znaku reszty częściowej i dzielnika zgodnie z regułami tabl. 3.4. Następnie przesuwa się resztę częściową o jedną pozycję w lewo, wprowadzając na opróżnianą pozycję kolejny bit dzielnej i wykonuje się operację wynikającą z tabl. 3.3. Znak nowej reszty częściowej porównuje się ze znakiem dzielnika itd. Czyrmości te powtarza się aż do wyczerpania wszystkich bitów dzielnej, po czym jeszcze raz wykonuje się porównanie bitu znaku reszty częściowej ze znakiem dziel nika i wykonuje operację zgodnie z tabl. 3.4. W rezultacie o trzymuje się iloraz /' i resztę R'. Liczby te należy ewentualn ie skorygować, co zależy od znaków dzielnej i dzielnika (tabl. 3.3). Zakładając długość słowa P równą 2n i długość słowa Q równą 11, algorytm dzielenia można sformułować następująco: I. Wykonaj test nadmiaru. Jeśli nadmiar występuje, przejdź do procedury korekcyjnej, w przeciwnym razie określ bit znaku ilorazu. 2. D la i równego od l do n wykonaj: a) przesuń dzielną o jedną pozycję w lewo i wprowadź na opróżnioną pozycję kolejny bit dzielnej, b) oblicz nową resztę częściową wykonując operację wynikającą z tabl. 3.3, c) określ kolejny bit ilorazu (tabl. 3.4). resztę wykonując czynności 3. Oblicz 4. Oblicz poprawny iloraz I i 2b. poprawną resztę R zgodnie z tabl. 3.3. W rezultacie otrzymuje się (n + 1)-bitowy iloraz i 11-bitową resztę. Ilustruje to poniższy przykład dzielenia liczby L(P) = - 75 przez L(Q) = 6: P = ZU2( - 75) = I.Ol 10101 Q = ZU2(6) = 0.110 -Q = ZU2( - 6) =1.010 87 3. ARYTMETYKA OWOJKOWA I '= 10011 10110101 + 0110 OllOJ +Q 0001 ADD (nie ma nadmiaru, znak ilorazu: I) iii SHL (przesuw reszty cz. i wpisanie bitu dzielnej) 0010 1010 1100 1001 0110 111 1 1110 0110 0100 1001 1010 0011 1010 R' = 1101 -Q ADD (bit ilorazu: O) I I - Q (korekta reszty) ADD Poprawny iloraz I otrzymuje się zgodnie z tabl. 3.3 jako I = I'+ 1 = otrzymuje się jako U2(R') = = 0011 = 3 10. Rezultat dzielenia wynosi zatem -(12+3/6) = - 12.5. Operacja dzielenia jest tradycyjnie uważana za najwolniejszą i najtrudniejszą z podstawowych działań arytmetycznych. W celu przyspieszenia jej realizacji zostały opracowane bardziej wydajne metody niż opisana metoda nierestytucyjna [5]. = 1.0100 = -12 10. Podobnie poprawną resztę Zaokrąg l an ie Ogólnie biorąc, w rezultacie mnożenia dwóch n-bitowych liczb bez znaku otrzymuje się liczbę 2n-bitową, a przy mnożeniu dwóch n-bitowych liczb włącznie z bitem znaku otrzymuje się liczbę (2n - 1)-bitową.. Przy pewnych działaniach, np. przy dzieleniu i pierwiastkowaniu, wynik może mieć dowolnie dużo bitów, zależnie od wymaganej dokładności. Jeśli jednak wynik ma być przedstawiony w postaci liczby o mniejszej liczbie bitów, to najprostszą operacją jest obcięcie „zbytecznych" mniej znaczących bitów. Przy wielokrotnym powtarzaniu obcięcia liczb podczas liczenia należy się jednak liczyć ze wzrostem błędu ostate<.."Znego wyniku. Korzystniejsze jest zaokrąglanie, polegające na takim określeniu m-bitowej liczby, aby możl.iwie zapobiec narastaniu lub akumulowaniu się błędów zaokrąglenia podczas liczenia. 88 3.3. DZIAŁAN IA ARYTM ETYCZNE NA LICZBACH DZI ES I ĘTNYCH KODOWANYCH OW0JK0W0 Najbardziej znana metoda zaokrąglania polega na dodaniu I na najwyż­ szej pozycji w odciętej części zaokrąglonej liczby i dodanie wyn ikłego stąd przeniesienia (O lub 1) do skróconej liczby. Na przykład: obcięcie 10100101 dodanie 10101 zaokrąglona liczba Postępowanie takie odpowiada w przybliżeniu zasadzie zaokrąglania do po obcięciu (round to nearest). Różnica powstaje tylko wówczas, gdy część obcięta jest równa 100...0, czyli gdy liczba nieobcięta jest dokładnie w połowie między dwoma najbliższymi liczbami po obcięciu. Wówczas bowiem zasada zaokrąglania „do najbliższej" stanowi, że najmniej znaczący bit zaokrąg­ lonej liczby powinien być równy O. Na przyk ład, przy zaokrągleniu liczby 10101100 zgodnie z tą zasadą otrzymuje się liczbę 1010, a stosując powyższą metodę dodawania jedynki otrzymuje się 1011. Natomiast przy zaokrągleniu liczby 10111100 otrzymuje się wyniki zgodne: 1100. najbliższej liczby DZIAŁANIA ARYTMETYCZNE NA LICZBACH DZIESIĘTNYCH KODOWANYCH DWÓJKOWO (BCD) 3.3 Treść niniejszego podrozdziału jest ograniczona do działań na liczbach bez znaku w kodzie BCD 8421. Jak opisano w p. 2.2.5, liczby dziesiętne w kodzie BCD są przedstawiane w ten sposób, że każdej cyfrze dziesiętnej odpowiada tetrada bitów. Działania arytmetyczne na takich liczbach wymagają specjalnych zabiegów. Na przykład, przy „zwykłym" dwójkowym dodawaniu liczb 23 +47 70 00100011 01000111 01101010 ~---...- 610 1010 otrzymuje się dla mniej znaczącej cyfry wyniku niedozwoloną w kodzie BCD liczbę 10 10 = A 16. Aby otrzymać prawidłowy wynik, należy wykonać korektę każdej tetrady wyniku jeśli (a) w czasie dodawania pojawiło się przeniesienie jedynkowe z najwyższej pozycji danej tetrady, lub (b) tetrada reprezentuje liczbę dziesiętną większą od 9. Korekta polega na odjęciu od danej tetrady liczby 1010, 89 3. ARYTMETYKA OWOJKOWA czyli dodaniu uzupełnienia U2(1010 2) = 0110 2, przy czym proces korekcji rozpoczyna się od najniższej tetrady, a przy korekcie wyższej tetrady uwzględnia się przeniesienie z niższej tetrady. W powyższym przykładzie spełniony jest warunek (b) w odniesieniu do niższej tetrady. Zatem 01101010 +0110 01110000 \) Inny (7010) przykład: 68 +39 107 01101000 +00111001 10100001 warunek (a) w niższej tetradzie \) 1 0110 101001I1 .....___, 1 L---~ 0110 10000 1~ (I O 7)10 korekta niższej tetrady warunek (b) w wyższej tetradzie korekta wyższej tetrady Z procesu korekcji można wyeliminować operacje komparacji, wymagane przez warunek (b), przez zastosowanie innego algorytmu, który wykorzystuje dwa bity przeniesień występujące przy dodawaniu dwu cyfr BCD zawartych w jednym bajcie. Algorytm dodawania dwóch bajtów jest następujący: I. Dodaj dwójkowo liczbę 66 16 do dodajnej. 2. Dodaj dodajnik do sumy z kroku 1. Generowane w tym kroku przeniesienie c z najwyższej (siódmej) pozycji sumy stanowi właściwe przeniesienie dla każdej cyfry w następnym bajcie. 3. Za leżnie od stanu przeniesień c i h (z trzeciej pozycji sumy) dodaj dwójkowo odpowiedni składnik K do sumy z kroku 2. Pomiń ewentualne przeniesienie z pozycji siódmej. Składnik K dobiera się z tablicy c h K o o o I o 9A 16 A0 16 FA 16 I 0016 I I 90 DZIAŁANIA ARYTMETYCZNE NA LICZBACH DZI ESIĘTNYCH KODOWANYCH 0\.V0Jl(0W0 3.3. Stosowanie tego algorytmu przedstawiono na przykładzie dodawania dwu liczb dziesiętnych 2987 + 3479 = 6466. Każdy składnik tej sumy jest reprezentowany w kodzie BCD 8421 przez dwa bajty. Zakładając, że operujemy na pojedynczych bajtach, dodajemy najpierw niższe bajty obu składników, czyli 87 +79 = 166: 10000111 + 01100110 11101101 + 01111001 - -101100110 tJ 66,6 krok I dodajnik (79) krok 2 tJ I c =I \ h= I + 00000000 01100110 _____,,_,_, ! (I dodajna (87) 6 dla eh = li jest K = 00l6 00,6 krok 3 ! 6) 10 Następnie dodajemy wyższe bajty, uwzględniając przeniesienie z sumy niższych bajtów, tj. (29+ 1)+34 = 64 00110000 + OllOOllO 10010110 + 00110100 11001010 u u I \ c=O h=O + 100.11010 :J:____,._,..., 01100100 (6 dodajna (30) 66,6 krok I dodajnik (34) krok 2 dla eh = OO jest K = 9A 16 9A 16 krok 3 4) IO Składając wyniki otrzymane przy pierwszym i drugim zastosowaniu tego algorytmu dodawania otrzymuje się wynik końcowy (6466 10). Odejmowanie liczb dziesiętnych zapisanych w kodzie BCD zastępuje się przez dodawanie uzupełnienia odjemnika {do 9 lub do I O) do odjemnej (p. 3.1 ). Pewne ułatwienia obliczeniowe można uzyskać stosując w tym przypadku zapis liczb w kodzie XS3 (z nadmiarem 3), gdyż uzupełnienie liczby dziesiętnej do 9 jest równoznaczne z negacją wszystkich bitów w kodzie XS3. 91 3, ARYTMETYKA OWOJKOWA DZIAŁANIA ARYTMETYCZNE NA LICZBACH ZMIENNOPRZECINKOWYCH 3 .4 D odawanie i odejmowanie liczb zmiennoprzecinkowych (p. 2.2.7) wymaga najpierw wyrównania wykładników, a następnie właściwą operację dodawania lub odejmowania dokonuje się na mantysach jak na stałoprzecinkowych liczbach ze znakiem. W celu wyrównania wykładników mniejszy z nich odejmuje się od większego i mantysę związaną z tym mniejszym przesuwa się w prawo o liczbę pozycji równą otrzymanej różnicy. Na przykład, w celu dodani a liczb M • W równych P = 0.10110010 • 0. IOOO i Q = 0.11001011 • 0.0101 odejmujemy wykładniki 0.1000-0.0101 czyli dodajemy drugi z nich w kodzie ZU2 0.1000 + 1.1011 0.0011 (3 10) po czym przesuwamy w prawo dodawanie mantys mantysę liczby Q o trzy pozycje i wykonujemy 0.10110010 + 0.00011001011 0.11001011011 Otrzymana suma stanowi mantysę wyniku dodawania, a jego wykładnik jest równy O.I OOO. Jeśli w wyniku operacji dodawania w mantysie sumy pojawi się przeniesienie na pozycję znaku, to należy go skorygować przez przesunięcie tej mantysy w prawo o jedną pozycję i zwiększenie wykładnika sumy o I. Jeśli w wyniku operacji odejmowania w mantysie różnicy pojawi się zero na najbardziej znaczącej pozycji tej mantysy, to na.leży znormalizować mantysę przez jej przesuwanie w lewo i zmniejsza nie wykładnika tak długo, aż na tej pozycji pojawi się bit l. Oczywiście nie dotyczy to mantysy zawierającej same zera. Zwykle procedurę no rma lizacyjną wykonuje się po każdej operacji arytmet ycznej. Do wykonania działań mnożenia i dzielenia wyrównywanie man tys nie jest potrzebne. Przy mnożeniu mantysy S<i mnożone jak liczby ze zna kiem, a wykładniki dodawane. Dzielenie wykonuje się podobnie przez dzielenie mantys jak liczb ze znakiem i odejmowanie wykładn ików. Niedomiar przy działaniach na liczbach zmiennopozycyjnych występuje wtedy, gdy w trakcie obliczeń pojawi się liczba o wykładniku mniejszym od Lm;.(W) (p. 2.2.7). Może on być interpretowany jako zero, albo zainicjować 92 3.4. OZlAŁAN I A ARYTMETYCZNE NA LICZBACH ZMI ENNOPRZECINKOWYCH wykonanie denormalizacji mantysy. W ostatnim przypadku kosztem zmniejszenia dokładności otrzymuje się jednak wynik niezerowy. Nadmiar ma miejsce wtedy, gdy w trakcie obliczeń pojawi się liczba o wykładniku większym od Lm„( W) = 2"'- 1 - 1 (p. 2.2.7). Może to spowodować błąd w obliczeniach i dlatego w praktyce pojawienie się nadmiaru wymaga sygnalizacji lub uruchomienia procedur korekcyjnych. LITERATURA I. 2. 3. 4. 5. 6. Ecadie D.: Nowoczesne masz)•ny i system)• cyfrowe, WNT, Warszawa 1975 Flores I.: Arytmetyka maszyn cyfrowych, WNT, Wars1.awa 1970 Mano M. M.: Archltekt.ura komputerów, WNT, Warszawa 1988 Mowie I. F.: A systematic approach 10 digirnl logic design, Addison- Weslcy, 1976 Scott N.: Computer number systems and arithmetic, Preotice-Hall, 1985 Pochopień B.: Arytmetyka syst.emów CJfrowych. Skrypt Politechniki Śląskiej Nr I 548, Gliwice 1990 4 PODSTAWY TEORII UKŁADÓW CYFROWYCH Układ cyfrowy można w ogólnej postaci przedstawić jako wielobiegunnik o n binarnych sygnałach wejściowych i m binarnych sygnałach wyjściowych (rys. 4.1 ), opisanych łącznie wektorami: wejściowym X = (x 1 , x 2 , . .. , x.) i wyjściowym Y = (y 1 , y 2 , . .„ y„). Nadając zmiennym x i y wartości zerojedynkowe otrzymujemy konkretny stan wejściowy X; (np. X 25 = (O, 1, I, O, O, I) i podobnie konkretny stan wyjściowy Y,. Zbiór X występujących stanów X; stanowi w ogólnym przypadku podzbiór iloczynu kartezjańskiego B" (p. 1.4), który zawiera 2" = N ciągów o n elementach zerojedynkowych X ~ B· Stany X; :zazwyczaj numeruje się w ten sposób, że je {O, l , 2,..., N - 1} = N. Na przykład, dla n = 2 można utworzyć zbiór X = B 2 = {X 0 , X 1 , X 2 , X 3}= = {OO, Ol, 10, 11 }. gdzie d la uproszczenia zapisu stanów X; pominięto przecinki. ·ny· xz . . Y2 . . . . Ym Xn Wygodnie jest n Rys. 4.1 Schemat funkcjonalny również stosować wskazującym bezpośrednio = {O, I, 2,..., 7}. na układu cyfrowego oznaczenie N. zamiast N, z indeksem Np. N 3 = liczbę sygnałów wejściowych. Zbiór X stanowi język wejściowy układu cyfrowego (w literaturze jest w tym znaczeniu określenie „alfabet wejściowy" w odniesieniu do ,,liter" X;). Podobnie można opisać zbiór Y stanów Y,, czyli język wyjściowy układu cyfrowego, przez podzbiór iloczynu kartezjańskiego B"' czyli także stosowane y~ B"' przy czym jeśli oznaczyć 94 zm = M , to le {O, I, 2,„„ M - 1} =M. UKŁADY 4.1. KOMBINACYJNE Według powyższych definicji, zbiory X i Y nie muszą zawierać wszystkich możliwych stanów X i i Y,,czyliniezawszespełnionesą warunki X = B", Y = B"'. Odpowiada to realnym układom cyfrowym. Jeśli w dowolnej chwili czasu t stan wyjściowy Y' układu zależy wyłącznie od obecnego w tej chwili stanu wejściowego X', czyli Y' = f(X') to taki układ cyfrowy określa się jako kombinacyjny (bez pamięci). W przeciwnym razie układ określa się jako sekwencyjny (z pamięcią). W takich układach, wskutek właściwości pamiętania stanów z poprzednich chwil, stan wyjść Y' zależy nie tylko od stanu aktualnego X', lecz również od poprzednich stanów wejść X. Stany te w układach sekwencyjnych są zwyk le określane w pewnych dyskretnych chwilach czasowych, a nie w czasie ciągłym. Jeżeli kolejne chwile czasowe, liczone wstecz od pewnego momentu t, oznaczymy przez t 1, t 2, ..., to w ogólnym przypadku, dla układu sekwencyjnego = f(X', X ' - '', X' - ''. ...) Y' UKŁADY Funkcje Cyfrowy układ KOMBINACYJNE przełączające 4.1 i formy boolowskie kombinacyjny z rys. 4.1 opisuje 4.1.1 się funkcją f:X - Y natomiast dla każdego sygnału wyjściowego y, (i = I, 2„.., m) można określić funkcję f;: X-B którą można również zapisać w postaci Y1 = fi(X) fi, która każdemu stanowi wejściowemu X 1e X jednoznacznie przyporządkowuje stan O lub I sygnału wyjściowego y, e B, nazywa się funkcją przelączającą układu cyfrowego. Jest to funkcja na algebrze Boole'a sygnałów binarnych i stąd określa się ją również jako funkcję boo/owską lub funkcję Funkcję logiczną. Funkcje przełączające są przedstawiane analitycznie przez formy boolowskie. Forma boolowska (wyrażenie boolowskie, wielomian boolowski) stanowi wyrażenie utworzone z pewnej liczby symboli zmiennych boolowskich i ewentualnie stałych Oi I przez zastosowanie skończonej liczby operacji boolowskich: 95 4. PODSTAWY TEORII UKŁADÓW CYFROWYCH sumy ( v ), iloczynu (-) i negacji C ). Formę boolowską otrzymuje się również wówczas, gdy zmienne boolowskie zostaną zastąpione innymi formami boolowskimi. Na przykład: f 1 (X) = x 1 V x 2 x3 V x 1 x 2 x4 f2(XJ = X2X3X5 V(x, Vx4)(X2 VX3X5) f3(X) = f ,(X) Vfz(XJ. Dwie formy boolowskie są rów11oważ11e, jeśli określają tę samą funkcję funkcja przełączająca może być przedstawiona przez nieskończenie wiele równoważnych form boolowskich. Na przykład, dlaf(x) = x można znaleźć f(x) = x v x , x v x v x , x · x, x · x · x itd. Przy określaniu funkcji przełączającej przez formę boolowską często nazywa się j ą postacią tej funkcji. Dwie formy boolowskie są d11a/11e, jeśli po zamianie w jednej z nich symboli „V" na ,;"i odwrotnie oraz stałych O na 1 i odwrotnie, otrzymuje się drugą formę. Odpowiada to zasadzie dualności, podanej w p. 1.5. Uogólnienie prawa De Morgana na funkcje przełączające stanowi wzór Shannona przełączającą. Każda .f(xI > Xz, „. ,x•• V, ·) = f(,i,. Xz, "', x., .,V) lub w uproszczonej postaci ,f(X, V,·) = f(~. ·, V) Z powyższej równości wynika, że negację funkcji przełączającej otrzymuje się przez negację każdej zmiennej oraz zmianę operatorów „v " na ,;" i odwrotnie w formie boolowskiej tej funkcji . Na przykład, negacją formy f(X) = x 1X2 V X1X3 V x 1X2X3 jest forma .f(X) = (x, VXz)(x, VX3)(x, VX2 VX3) Przy stosowaniu wzoru Shannona do bardziej złożonych form boolowskich należy przestrzegać pewnych dodatkowych reguł. Jeśli funkcja negacji (kreska) obejmuje więcej niż jedną zmienną (np. pewne wyrażenie będące częścią formy }), to stosowanie wzoru Shannona sprowadza się tylko do usunięcia tej negacji (kreski), czyli bez dalszych zmian zanegowanego wyrażenia. Jeśli formafzawiera wyrażenie ujęte w nawiasach, to wzór Shannona stosuje się stopniowo, rozpoczynając od wyrażeń w najbardziej wewnętrznych nawiasach. Na przykład dla formy z= ab(bc v iI) = (ii v b)(bc v d) 96 4.1. stosując UKŁAOY KOMBINACYJNE wzór Shannona otrzymujemy formę i= abV (b v C) d łatwo zauważyć, można ją także uzyskać Jak bez pośrednich przekształceń , traktując iloczyn ab jako pojedynczą zmienną. Funkcje przełączające mogą być także przedstawiane za pomocą tablic stanów (tablic prawdy, tablic funkcyjnych). Tablica stanów dla funkcji y1 = f,(X) n zmiennych zawiera 2" wierszy i n+ I kolumn, gdyż każdy wiersz tablicy zawiera n stanów wejść oraz jeden stan sygnału y,. Liczba wszystkich możliwych funkcji przełączających dla n zmiennych wejściowych wynosi yx = B8" = (2) 2" (p. 1.4). Przy n = I można sformułować 4 funkcje jednoar- gumentowe f(x) = X f(x) = x f(x) = l f(x) =O Dla każdej z nich przeniesienie negacja (uzupełnienie) stała l stała O można utworzyć tablicę stanów, jak pokazano na rys. 4.2. Rys. 4.1. Przedstawianie funkcji pn.elączających jednej zmiennej przy pomocy tablicy stanów Przy n = 2 otrzymuje się 16 funkcji, w tym również cztery wymienione poprzednio przy n = l. Są one pokazane w tabl. 4.1, w której każda kolumna przedstawia tablicę stanów jednej funkcji J; dla i = 0,1, .. „ 15. W tabl. 4.2 są podane formy boolowskie dla tych funkcji, a także wyrażenia operatorowe z użyciem operatorów nieboolowskich Geżeli istnieją) i nazwy funkcji. J ak widać, przy 11 = 2 otrzymujemy dwie funkcje będące stałymi, cztery funkcje unarne (dwa przeniesienia i dwie negacje) oraz dziesięć funkcji binarnych. Funkcje przełączające, dla których istnieją nazwy operatorowe, określa się jako podsiawowe. Funkcje podstawowe w sensie algebry Boole'a to jednak tylko suma OR (LUB), iloczyn AND (I) i negacja NOT (NIE). Funkcje te są roz.surzalne dla dowolnej liczby argumentów (por. wyrażenia V i n w p. 1.5) z wyjątkiem negacji, która jest funkcją jednoargumentową. 97 4. PODSTAWY TEORII UKlAOOW CYFROWYCH FUNKCJE PRlELĄCZAJĄCE DWÓCH ZJ.łl ENN"YCH / 1 Jl /J /4 f, X1 x, o o o o o I o o o o o 1 o I 1 I fo o o o o o I I I o o 1 o Sym bol operatora /\ 0Pts FUNKCJI Wyrażeoie fo = o f , = X1X1 f, = X1X1 f, = X1 f · = X 1X2 f, = x, = X1.1'.2VX1i2 = Is = J. f, o o o I 1 I 1 o I !; !; I I I o I EB V I• f• I !10 I o o o o o 1 o j + Zastosowanie operatorów nie- !11 I I o o I I I o , => :::> fu /JJ /,. I 1 I 1 o o ' o o I I => :::> Tablica 4.2 angielska XJ 6 X1 Stala 0 iloczyn iloczyn z zakazem X2 6 Xl iloczyn z zakazem AND przeniesienie przeniesienie X 1 @ X2 I 1 I 1 NaZ\va funkcji polska I ALBO EX-OR, XOR funkcja LUB LUB-NIE (skró t LUN) ALBO-NIE (skró t ALBON) OR NOR suma x 1 .~2 nierówności (x 1 #xi) X1 V Xz Xt VXz ;;::: .Y1X2v X1X2 /10 = x, /11 = X t V i2 X1 j x, x10 x2 = x1 Eł>x2, (x 1 = xi) NIE (skrót N) funkcja (strzalka) Pcirce'a EX-NOR, XNOR funkcja EQUALITY, EQUIVALENCE NOT negacja /1 2 - -~1 fu = .Yi V X2 f„ = -X1Xz równości implikacja: X2 ;;:a.Xt jeśli X1~ f„ = I 1 I j, , Nazwa operatora funkcji boolowskich f, f• PRULĄCZAJĄC\'CH 0\llÓCH ZMIENNYCH boolowskie I• Tablica 4.1 NIE (skrót N) NOT x , ~x 2 to X1 negacja implikacja: x 1 , to Xz funkcja (kreska) Shcffcra stała I jeśli x, I X1 I-NIE (skrót IN) NAND I Funkcja nierówności XOR (ang. EXCLUSIVE - OR, poi. ALBO) jest określona dla dwu zmiennych związkami y = x , Etlx2 = (x , V X2)(i, V i2) = il X2 V x, X2 98 4.1 . Ul<lAOY KOMBINACYJNE lub predykatem y = (x 1 # x2) Oznacza to, że y = I wtedy i tyl ko wtedy, gdy stany logiczne zmiennych x , i x 2 nie są równe (innymi słowy wtedy, gdy stan logiczny I ma albo zmienna x" albo zmienna x 2 , ale nie obydwie). Funkcja ta ma także wiele innych nazw: WYŁĄCZNIE LUB, suma wyłączająca, suma modu/o 2, różnica symetryczna. Stosuje się także nazwę funkcji nieparzystości, gdyż przyjmuje ona wartość logiczną I, gdy w funkcji XOR wielu zmiennych (np. gdy y = x 1 $ x 2 $ x 3 $ ... $ x.) liczba jedynek odpowiadających stanom poszczególnych zmiennych jest nieparzysta (I, 3, 5, ...), czyli gdy jest sumowana modulo 2 nieparzysta liczba jedynek. Związki manipulacyjne funkcji XOR są zestawione w tabl. 4.3. Zw1ĄZKJ MANIPULACYJNE FUNKCJI XOR. (ALB()) X1 X1 X EB EB $ $ .~z = Xi $ = Q X2 Xz =X1 X2 X x@X • = Xi Ef) Xz a Tablica 4.3 X1 0 x2 I x$1 = .< x$0=x I $ I = O 1 $0= 1 o$ o= o Jeśli x1 $ x1 = y. to x1 E& y • x2 i x2 EB y = x, Funkcja równo.fri XNOR (ang. EXCLUSIVE-NOR, EQUALI1Y, EQUIVALENCE, COINCIDENCE, poi. ALBO-NIE, w skrócie ALBO N) jest negacją funkcji XO R: y = x 1 0x 2 = x 1 $x 2 = x 1 x 2 V x i opisuje się 1x 2 predykatem y = (x 1 = x 2 ) Funkcja XN OR przyj muje wartość logiczną I wtedy i tylko wtedy, gdy stany logiczne zmiennych x 1 i x 2 są równe. Ma ona wiele nazw: WYŁĄCZ­ NIE- LUB- NIE, fu nkcja równoważności, fu11kcja parzystości (gdyż przyjmuje stan l tylko wówczas, gdy jej argumenty zawierają parzystą liczbę jedynek: 0,2,4, ... , funkcja komparacji (układ realizujący tę funkcję nazywa się komparatorem). Operatory nieboolowskie, zwłaszcza często używane symbole $ i 0 są stosowane do zapisu form boolowskich w skróconej postaci. Należy jednak zwrócić uwagę, że np. wyrażenie z = a$ b nie jest formą boolowską, a równoważne logicznie wyrażenie Z = iib V już nią jest. ao 99 4. PODSTAWY TEORII UKŁADÓW CYFROWYCH Nazwy operatorowe służą głównie do skrótowego nazewnictwa funkcji, stosowane jako operatory prefiksowe do opisu funkcji przełączają­ cych w postaci wyrażeń operatorowych. Na przykład, forma boolowska są również y = x1 x 2 v x3 x4 x 5 może być przedstawiona w postaci wyrażenia operatorowego Y = OR (AND (NOT (XI), X2), AND (NOT (X3), X4, X5)) Powstaje pytanie, czy z funkcji wymienionych w tabl. 4.1 i 4.2 można utworzyć zbiory niewielu funkcji, umożliwiające realizację każdej funkcji przełą­ czającej. Otóż zbiory takie istnieją i nazywa się je systemami funkcjonalnie pełnymi (SFP). System taki definiuje się jako zbiór operacji, który umożliwia przedstawienie każdej funkcji przełączającej w postaci wyrażenia zawierającego wyłącznie operatory wchodzące do tego systemu i który traci tę właściwość po zmniejszeniu go o choćby jedną operację. Podstawowym SFP jest zbiór boolowski {v, ale istnieją również inne systemy, z których najbardziej są znane: a) {v, - }, czyli funkcje OR, NOT (LUB, NIE); iloczyn otrzymuje się z prawa De Morgana: x 1 · x 2 = x1 v i 2 b) { czyli funkcje AND, NOT (I, NIE); sumę otrzymuje się również z prawa De Morgana: x 1 v x 2 = x1 • i 2 c) {!}, czyli funkcja NOR (LUB- N IE, w skrócie LUN), zwana również strzal/<4 Peirce'a; negację otrzymuje się z x ! x = x, sumę z x 1 l x 2 = = x 1 v x 2 , iloczyn z x1 !x2 = x 1 ·x 2 d} {I}, czyli funkcja NAND (I- NIE, w skrócie IN), zwana również kreską Sheffera; negację otrzymuje się z x Ix = x, sumę zx, I x2 = x, v x 2 , iloczyn z x 1 Ix 2 = x 1 · x 2 e) {ó, l}, gdyż lóx = x, x 1óx 2 = x 1 ·x 2, x1ó x 2 = x 1 V x 2 f) {=,O}, gdyż x = O= x,x1 =>x 2 = x 1 V x 2 , x 1 =>x 2 = x 1 · x 2 g) { => , - }, czyli system Łukasiewicza; sumę otrzymuje się z x1 => x 2 = = x 1 v x 2 , iloczyn z x 1 => x2 = x 1 • x 2 Jak widać, podstawowy SFP jest nadmiarowy w sensie liczby stosowanych operatorów, gdyż wystarczą systemy (a) i (b). Na szczególną uwagę zasługują systemy (c) i (d), gdyż umożliwiają one opis każdej funkcji przełączają­ cej za pomocą tylko jednego operatora. W praktyce oznacza to, że układ cyfrowy realizujący każdą funkcję przełączającą można zbudować z „uniwersalnych" elementów logicznych wykonujących operacje NOR (LUN) łub NAND (IN). Było to wykorzystywane w początkach rozwoju mikroelektroniki, gdy podjęto produkcję takich elementów, zwanych bramkami. Gdy później zaczęto wytwarzać wiele specjalizowanych układów scalonych o znacznym stopniu złożo­ ności logicznej, znaczenie tego wniosku stało się tylko teoretyczne. „ -}, „ -}, 100 4.1. UKŁADY KOMBINACYJNE Rodzaje form boolowskich 4 .1.2 Funkcje przełączające mogą być przedstawiane analitycznie w wielu postaciach. Ogólnie biorąc, są to formy boolowskie lub wyrażenia nieboołowskie (tzn. wykorzystujące operatory nie zawarte w definicji algebry sygnałów binarnych, p. 1.5), które są przekształcalne do form boolowskich. W związku z tym ograniczymy się do opisu rodzajów form boolowskich. Najpierw jednak wprowadzimy odpowiednie nazewnictwo. Litera/em nazywa się symbol zmiennej (x) lub jej negacji (x). Jako symboliczne oznaczenie literału przyjmuje się x• = {x e= gdy x gdy I e= O gdzie e jest zerojedynkowym wskaźnikiem literału (a nie potęgą w sensie matematycznym). Dla n zmiennych x" x2 ,„„x. można określić literały x~1. x;z, „., x~· oraz najwyżej 2" = N wektorów wskaźnikowych o postaci „ E, = (e11 ,e 2 „„ e.,J. ke {O, I, 2, „„ N - I} = N przy czym każdy wektor E4 e B" zawiera wyłącznie elementy zerojedynkowe. Wyrazem lub termem iloczynowym (sumac)1nym) nazywa się iloczyn (sumę) literałów, w którym (której) żadna zmienna nie występuje więcej niż jeden raz. Iloczynem (sumą) pełnym (pełną) n zmiennych nazywa się term iloczynowy (sumacyjny), zawieraj ący n literałów. Iloczyn (sumę) pełny (pełną) określa się również jako kanoniczny wyraz iloczynowy (sumacyjny) lub krótko minterm (maksterm). Liczba różnych mintermów (makstermów), które można utworzyć dla funkcji n zmiennych, jest równa 2" = N . Nazwa minterm pochodzi stąd, że przyjmuje on wartość logiczną I tylko przy jednym stanie wejść. Analogicznie nazwa maksterm pochodzi stąd, że przyjmuje on wartość l dla wszystkich stanów wejść, z wyjątkiem jednego. Na przykład, dla funkcji trzech zmiennych term x1 x 2 x3 jest mintermem, a term x1 x 3 nim nie jest. Minterm x1 x 2 i 3 prLyjmuje wartość 1 tylko przy X = (0, !, O). Analogiczny maksterm x 1 v x 2 v x3 przyjmuje wartość I dla wszystkich stanów X z wyjątkiem stanu X = (!,O, !). Do oznaczania mintermów przyjmiemy symbol P.(X) = x~ u x~21 „. x!•k, ke N Jak widać, wektor E• reprezentuje zerojedynkowo minterm P„ utworzony z literałów. Wygodnie jest stosować oznaczenia Pk(X), gdzie liczba n umieszczona na pozycji wykładnika wskazuje na liczbę zmiennych. Podobnie wygodne jest oznac-Lenie N. zamiast N. Przyjmuje się konwencję, że wektor E1 po pominięciu przecinków i nawiasów tworzy n-bitową liczbę dwójkową b1 w kodzie NB, przy czym litera k reprezentuje wartość dziesiętną liczby b•: 101 4. PODSTAWY TEORII UKŁ.AOOW CYFROWYCH Konwencja ta umożliwia łatwy, numerycmy zapis mintermów w postaci liczb b1 lub k. W tym celu literały zmieniamy następująco: każdy symbol x zastępujemy przez O, a x przez 1. Na przykład, x 1 x 2 x 3 1-+ b1 = 100 2 1-+ k = 4io, czyli min term x 1 x2 x3 = Pl(X) może być reprezentowany liczbą k = 4. Aby taki numeryczny zapis mintermów był prawidłowy, niezbędne jest uporządkowanie ich symbolicznego zapisu: literały w mintermach powinny następować po sobie (od strony lewej do prawej) według wzrastających indeksów zmiennych lub według alfabetu, jeżeli są użyte symbole literowe zmiennych. Np. minterm P~ 6 = x 1 x 2 x3 x 4 Xs1-+ l 10!02 1-+ 2610 jest iloczynem uporządkowanym, natomiast minterm P = x 1 x 3 x 2 x 4 xs , już nie jest, mimo że pod względem logicznym te obydwa wyrażenia są równoważne. Minterm P1 (X;) przyjmuje wartość I tylko dla j = k. Na przykład, dla X 13 = E 13 = 01101 mamy P 13 (X 13 ) = 0° · 11 · 11 ·0° · 11 = I· I· 1·1·1 = 1, natomiast dla tego samego wektora E 13 = O11 OI i X 2 s = li 001 # X 13 otrzymujemy P 13 (X 2 sl = 1°· 11 ·01 ·0°·1 1 = O· l ·O· l ·I= O. Maksterm definiuje się następująco: S,(X) ~ P. (X) Stosując uogólnione prawo de Morgana otrzymujemy S1(X) = xfu vxj2• v ... v x!•>, keN przy czym s.(X1) = O i S1 (Xi) = I dla każdego j 'I k. Można również stosować symbol S;(X). Dla danych z poprzedniego przykładu przy X 13 = E 13 = 01101 mamy S13 (X 13 ) = 0 1 v 1°v ! 0 v O' v 1° = Ov Ov Ov Ov O = O. Podkreślmy, że każdy możliwy minterm P,(X) bądź maksterm S,(X) jest wyrazem symbolicznym, zawierającym wyłącznie literały, natomiast przy X= X iUeN) każdy minterm P,(X) bądź maksterm S, (X1) staje się równy O lub I. Rozłożeniem (rozbiciem) sumacyjnym funkcji przełączającejf(x 1 ,x 2 , .. •, x,) względem zmiennej x 1 nazywa się działanie f (x t> x 2 , •.. , x,) = x,f(I , x 2 , ... , x,) v x1f(O, x 2 , „., x,). Podstawiając zamiast x 1 kolejno O i I do obydwu stron tej równości otrzymuje się tożsamość. Na przykład, przy rozłożeniu funkcji f(x 1 , x 2 ) = x 1 x 2 VX1 = x 1 (x 2v 0) Vx 1 (0 v I) przyjmując 102 x 1 = O otrzymujemy J = I, a przy x 1 =I otrzymujemy x 2 = x„ 4.1. UKLAOY KOMBINACYJNE Proces rozkładania można w podany sposób kontynuować względem następnej zmiennej (np. x 2). Wówczas każdy wyraz poprzedniej sumy rozkłada się na dwa v x1x 2/(0, I, x 3„ ..,x.) v x1.i2/(0,0, x 3, „.,x.) co dla poprzedniego przykładu daje sumę mintermów gdyż/(1, I) =/(O, I) = f(O, O)= I i /(I , 0) = O. Rozłożen ie sumacyjne funkcji pnełączającej względem nych tej funkcji zapisuje wszystkich zmien- się następująco 2"- t /(xpx 2, ... ,x.) = V (x~ax~2• ... x~·>)/(X,) t =O albo krócej 2" - 1 V f(X) = P,(X)f(X.) Taką formę boołowską, stanowiącą sumę min termów, nazywa się kanoniczną formą sumacyjną. Każdą funkcję przełączającą można przedstawić w tej postaci. Oczywiście w tej sumie występują tylko takie mintermy P•,d la których f(X J = 1, gdyż P, ·O = O. Wprowadzając zbiór T(z ang. 1rue - prawdziwy) liczb k taki, że T = {k :f(X,) = I} s;; N kanoniczną formę sumacyjną można opisać wyrażeniem l 1T a także określić funkcję / 1 w postaci f,:T-J Wygodnie jest stosować oznaczenie T. zamiast T, gdyż wskaźnik 11 bezpośrednio wskazuje na liczbę zmiennych. Np. przy n = 3 może być T = (O, I, 3}, co mogłoby się odnosić do dowolnego n ;;ii 2, natomiast oznaczenie T3 = {O, I, 3} usuwa tę niejednoznaczność. Jeśli V /(X,) = 1, czyli forma boolowska n zmiennych zawiera N minter- t • l'I mów, to znaczy 103 że T= N i wtedy f( X) - I. 4. PODSTAWY TEORII UKŁAOOW CYFROWYCH Opisany poprzednio sposób numerycznego zapisu mintermów poprzez podanie odpowiednich liczb dwój kowych b lub liczb dziesiętnych k, znacznie ułatwia zapisanie kanonicznych form sumacyjnych. Na przyklad, funkcję f(X) = x1 x2 X3 V x1 x2 x3 vx1 x2 x 3 v x1 x 2 x 3 można zapisać w postaci zbioru liczb dwójkowych T8 = {OOO, 100, 101, 111} lub jeszcze krócej, w postaci zbioru Trównoważnych liczb dziesiętnych: T3 = {O, 4, 5, 7} c N3 . Zdefiniujmy zbiór F (z ang. fa/se - fałszywy) następująco F = {k:f(Xk) = O} s: N Podobnie jak oznaczenie T,,, również oznaczenie F. jest precyzyjniejsze niż F, gdyż bezpośrednio wskazuje na liczbę 11 zmiennych funkcji f Funkcję przełączającą określa się jako zupełną, jeśli spełniony jest warunek Tv F = N, czyli F = T'. Zwróćmy uwagę, że istnieje implikacja (Tv F = N)= (X = B"). Negacja ·zupełnej funkcji przełączającej opisuje się zatem formą J(X) = Zbiór F V Pk(X), F = T' umożliwia też określenie funkcji f 0 :F-l Dla funkcji zupełnych słuszna V f 1 (X) vf 0 (X) = x.x jest zależność 1 Przy stosowaniu numerycznego zapisu kanonicznej formy sumacyjnej zmiennych, całkowitym liczbom dziesiętnym k z przedziału [O, N - I ], określającym kolejne min termy, można przyporządkować jedynki na odpowiednich pozycjach w nowej N-bitowej liczbie dwójkowej B., zwanej liczbą charakterystyczną zupełnej funkcji pnelączającej . Liczbę tę można również przedstawić w postaci dziesiętnej (LJ lub szesnastkowej (H.) otrzymując w ten sposób najkrótszy zapis zupełnej funkcji przełączającej o niewielkiej liczbie zmiennych. 11 Przykład. Określić liczby charakterystyczne dla funkcji rem T3 = {O, 4, 5, 7}. Określamy przyporządkowania 765432 1 0 ! ! ! ! B3 = I O I I O O O 1 a zatem L 3 = 177 i H 3 104 = Bł. określonej zbio- 4.1. UICł.AOY KOMBI NACYJN E Program Zapis w języku Turbo Pascal, przedstawiony obok, umożliwia szybkie określenie liczb B, L i H dla zadanego zbioru T. Można również postępować odwrotnie, to znaczy określać zbiór T na podsta wie zadanej liczby charakterystycznej. Przykład. Określić kanoniczną formę sumacyjną dla funkcji przełączają­ cej o liczbie charakterystycznej L 3 = 27. Przedstawiamy liczbę 27 jako liczbę dwój kową 27 = 16 +8+ 2+1 czyli 83 = O O O I I O I I l ! ! ! 7 6 5 4 3 2 I O Stąd T3 = {O, l, 3, 4} czyli f(X) = x1 x2 i 3 V i 1 -~ 2 x 3 V i x 2 x 3 V X 1 i 2 i 3. Wykorzystuj ąc uogólnione twierdzenie De Morgana (p. 1.5) możemy zapis zupełnej funkcji przełączającej f(X) także w postaci iloczynu makstermów, zwanej kanoniczną formą iloczynową otrzymać f(X) = fl S.(X), F = T' keP Wynika stąd zasada równoważności form kanonicz nycli, według której dla każdej kanonicznej formy sumacyjnej, opisującej zupełną funkcję przełączającą, można określić równoważną kanoniczną formt;: iloczynową według wzoru V P.(X) = n s.(X) lceT jeśli F = T' łe F Przykład. Określić rów noważne formy kanoniczne dla przełączającej opisanej liczbą charakterystyczną H 3 Przedstawiamy liczbę 1C 16 jako liczbę dwójkową = zupełnej I C. 00011 1 00 ! ! ! 7654 3210 czyli T3 = {2, 3, 4} i F 3 = N 3 -T3 = {O, l , 5, 6, 7} Zatem /(X)= X 1X2X3 Y X1X2X3 V X1X2X3 = (x, V X2 V X3) (x , V xz V .X3) · ·(x, V x2 V i3) 105 (.X , V i2 V X3) (i, V i2 Y X3) funkcji pr oP'a• Zapi s ; ( Obllc:z..a l i c zby char ekt ery1tyc s ne 8 , L, H :z.up•łnej funkcji przeła c zej a cej dl o s oda nero z bioru T o nojwytej 32 111„nt•ch ) ueea Crt: ver ••tot r otrlnc ! 2 J: p q etrln• (•J: otrlnc( IO): •u atrl D•( 32) i orr_, I 1. . 32 I of byte ; l nt•1•r : booleen ; a, b, c, d, l, k f berin GoToXY(3, 8 ) ; Ct rScr; t :• o.. l l i t () : Wrlte ł n('Wpie:z. elementy ib loru T (koniec wpiaywenie: Enter) Writeln ; repea t Re ad l n(r); Val(r , o, b); if b • o tbea t =• t + l • I : untll '> > o; ClrScr; TextCo l or(81 oc k ); Text 8ack,-rou.nd( Wbite) ; Write (' El e-enty zbior u T: '); for o :. O to 31 do if o ln t theo Wr lte ( a . '); NoniVideo ; { Obllc:z.enle ll c s by 8 ) Gol'OXY( l, S ); Hl a bVlde o: Vrite l n ('Llczby c bar okt ery at y czne funkcj i przeł aczaj a cej:•): Wrl t e lo ; Write ( ' B • • ); FillCbar( a, SizeOf ( a ) , '0') ; t :•folie; for a : • O to 31 do lf o int tben 1 (32 - a ) l • ' l': k : • O; repeat k : . Succ (k) unt ll 1 (k ) • 'l ' ; for i : • k to 32 do bellD Write(a(l ) )i u (I) :• Ord(a(I)) - •8 Write l n; { Oblicze ni e d :a 10; q :• end; l lc~by L I I: repeat t :. false; for i =• b ! • 1; k t o 31 do be(iD abl 1 + u ( 1 + 1) : l f o < 10 then be1l a b : • a ; if a >• 10 t .be n a :• b beCiD b :a 4 - 10; u(i + l) : . 1; if not t tb•n c : • i + l i f :. true end; . end; k :a c ; q[dJ :. Chr(b + • &) ; d :• Pred(d); unt11 f • fo l se; Wri teln( ' L • • , q) : ( Obllc:z.enl e li csby H ) Write('H • '): f : • t o l ae ; for e : • o to 7 do begin b : • O; p :. Copy( a, e ebl 2 + 1, • ); for i : a ~ dowo.to 1 do be(ln c : a Ord (p(l)J - •a: b :. b + c •bi l) end ; ił b > O then. f : . t rue; if (b • O) all<I f t ben Wr l t o('O ' ); t t b in ( 1 . . 9) ~ben Write(b)i if b > 9 tben Wrlto(Chr(b + 5 5 )) <• - end; NormVt deo ; end. u(l +l) : . O end ; ' ); 4.1. UKŁADY KOMBINACYJ NE Przedstawienie funkcji przełączającej w kanonicznej formie iloczynowej można także uzyskać stosując iteracyjnie rozłożenie (rozbicie) iloczynowe tej funkcji. Dla rozłożenia ceniem f(x,, x 2 , •.•, względem jednej zmiennej (x 1) opisuje x.) = [x 1 v f(O, x 2 , .•• , x,,)) [.X 1 v f(J, x 2 , ... , się to przekształ­ x.)) Przykład. = (x1 V J) (.X 1 V X2) = X 1 V X 2 X2) = x 1x2 V i 1 Stosując powtórne rozłożenie względem f(x,, Xz) = (Xz V .X,) f(xl> x 2 otrzymujemy (.X2 V J) =i, V X2 W tym przypadku kanoniczna forma iloczynowa jest bardzo prosta i zawiera tylko jeden makstcrm. Identyczny wynik otrzymuje się po zastosowaniu wzoru opisującego kanoniczną formę iloczynową, gdyż, jak można zauważyć we wcześniej podanym przykładzie rozbicia sumacyjnego tej funkcji, T2 = {O, I, 3}. Ponieważ N, = {O, 1, 2, 3}, zatem Fz = {2}. Stądf(x,, X2) = s~ (X) = i, V Xz. W pewnych formach boolowskich występuj ą również iloczyny lub sumy niepełne, to znaczy takie, w których Liczba literałów jest mniejsza od liczby zmiennych. Ogólnie biorąc, postać funkcji przełączającej stanowiącą sumę iloczynów (pełnych lub nie) nazywa się formą sumacyjną (normalną postacią sumy), a stanowiącą iloczyn sum (pełnych lub nie) nazywa się formą iloczynową (normalną postacią iloczynu). Forma kanoniczna stanowi zatem szczególny przypadek for my boolowskiej. Wzór Shannona stosuje się do każdej formy boolowskiej, a więc niekoniecznie kanonicznej. Dla formy z podanego przykładu otrzymuje się wynik niemal automatycznie f(x 1, x 2 ) = x 1 x 2 v .x 1 = (x 1 v i 2)x 1 = x 1i 2 = x1 v x 2 Jak podano wcześniej, fun kcję przełączającą nazywamy zupełną, jeśli Tv F = N. M ogą jednak zaistnieć sytuacje, gdy na wejściach układu kombinacyjnego nie występują wszystkie możliwe stany wejściowe lub gdy stan sygnału wyjściowego y 1 układu nie jest określony Gest obojętny) przy pewnych stanach X/ Wówczas funkcję przełączającą możemy opisać przez zredukowanie dziedziny funkcji.f;(X) do pewnego zbioru X, c B", zawieraj ącego tylko te stany wejść, dla których funkcja przełączająca przybiera wartość Olub I. Taką funkcję przełączającąf;I X, : B" -> B nazywa się częściową (p. 1.4). Drugim sposobem opisu tej sytuacji jest nie redu kowanie dziedziny funkcji, lecz rozszerzenie jej przeciwdziedziny o nieokreślony stan wyjściowy układu. Mówimy, że funkcja przełącza­ jąca jest niezupełna, gdy jest spełniony warunek Tv F # N i istnieje niepusty zbiór D takich liczb k (określających wektory Ek), dla których wartość funkcji przełączającej jest równa Olub I. Ten „dowolny" stan oznacza się w literaturze 107 4. POOSlAWY Tł ORll U KŁ.AOOW CYFROWYCH symbolami „ x " (krzyżyk), „ - " (kreska), „~ " (przekreślone zero) lub literą „d" (don't care - nie troszcz się). Stosując symbol d zbiór D definiuje się jako D = {k:f(X,) = d} c N, Spełnione są zależności TuF u D - N oraz przy czym funkcja fAX) jest zdefiniowana jako J,,:D- 1 lub J,,(X) = V P, (X) natomiast funkcja niezupełna h jako h: B" - {O, l, d} Nie-lupelną funkcję przełączającą pomocą dowolnych dwóch spośród h można zatem jednoznacznie opisać za trzech zbiorów T, F, D lub dwóch z trzech funkcji / 1, / 0 , J,,. W szczególnym przypadku, jeżeli liczba eleme ntów zbioru D jest większa niż liczba elementów zbiorów Ti F, to taka funkcja niezupełna jest nazywana funkcją słabo określoną. W praktyce zbiór D jest z reguły włączany częściowo lub w całości do zbioru T. Zależy to od potrzeb wynikających z procesu minimalizacj i formy boolowskiej reprezentującej funkcję /(X) (p. 4.1.3). Jeżeli zbiór D włączymy do zbioru T, albo do zbioru F, albo częściowo do zbioru Ti częściowo do zbioru F, to wówczas funkcja przełączająca niezupełna przekształca się w zupełną. Przyjmując x• = w miejsce poprzedniej nową konwencję xgdye = I i gdy e = O { x v i = l gdy e = x (stan dowolny) można rozszerzyć zapis numeryczny formy sumacyjnej w ten sposób, aby każdemu znakowi x w zapisie wektora Et odpowiada! znak x w odpowiedniej liczbie dwójkowej b,. W ten sposób można przedstawiać numerycznie również iloczyny niepełne, np. dla wektora Ek - (l , O, x, I, x, O) otrzymujemy zapis b, = lOx I xO, który w istocie reprezen tuje zbiór czterech liczb dwójkowych: {100100, 1001 IO, 101100, 101110}. Odpowiedni iloczyn niepełny ma postać x 1x2 1x,li 6 = x 1i 2 x,i 6 . 108 4.1. UKŁADY KOMBINACYJNE PR.ZYKlAD TABLICY STANÓW l''UNKCJI Tablica 4.4 CZTERECH Z:MIEN'NYCH Stan X1X2 X 3 X4 y o o oo o I 2 3 OOO I OO1 O OO1 I O I OO O I OI O I 1O O I 1 I I OOO I OO1 I O I O I O I I I 1OO I 1O1 I I 1O I I 1 1 o o o d ( = 1) o o o I o o 4 5 6 7 8 9 IO 11 12 13 14 15 I d ( = O) o o d ( = I) do kanonicznej formy sumacyjnej są również włączone wyrazy pochodzące ze zbioru D, to w zapisie numerycznym liczby odpowiadające tym wyrazom umieszcza się w nawiasach. Na przyklad, w zbiorze T8 = {01 11, 1010, 1011, (0011, 1111)} i w równoważnym zbiorze T4 = {7, 10, li, (3, 15)} liczby umieszczone w nawiasach pochodzą ze zbioru D. Odpowiada to tablicy stanów funkcji y = f(X) pokazanej w tabl. 4.4. Jak można było zauważyć, operacjom na algebrze sygnałów binarnych odpowiadają operacje na algebrze zbiorów. Na przykład, jeśli Jeżeli f1(X) = V P,(X), T{ = F 1 i to f2(X) = V P,(X), Tź = F 2 , istnieją związki 1, (X) = v P,(x) = n s.cx) keF, h<XJ = k• T 1 v P,(X) ns.cx) = ke Pi kET 1 koT 1v T 1 11 ex) I 2<X) = 109 v .1i:e1·,,.....1· 2 P,(X) = n ~F, v F 1 s.cx> 4. PODSTAWY TEORII UKlA00W CYFROWYCH Minimalizacja form boolowskich 4.1.3 Proces przekształcania form boolowskich, w celu otrzymania możliwie najprostszych postaci końcowych, jest ok reślany jako ich minimalizacja. Najczęściej stosowane kryterium minimalizacji wynika z dążenia do minimalizacji kosztu projektowanego układu i formułuje się następująco: I) minimalna forma sumacyjna (iloczynowa) zawiera minimalną liczbę iloczynów (sum), oraz 2) żaden z iloczynów (sum) nie może być zastąpiony przez inny o mniejszej liczbie literałów. Jest to minimalizacja koncepcyjnie najprostsza - dwupoziomowa, czyli ograniczona do poszukiwania najprostszej struktury logicznej AND-OR (lub OR-AND), zwanej również strukturą PLA (Programmed Logic Array, p. 8.5.1.). Do oszacowań liczbowych stosuje się wskaźnik złożoności formy boolowskiej, stanowiący sumę liczby termów i łącznej liczby tworzących je literałów. W celu minimalizacji kosztu projektowanego układu, wskażnik ten powinien być jak najmniejszy. Najprostszą metodą minimalizacyjną, stosowaną tylko dla funkcji o malej liczbie zmiennych (najwyżej 4-6), jest grafie-ma metoda siatek Karnaugh, przedstawiona w p. 4.1.3.l. Jest ona łatwa w użyciu i ma duże walory dydaktyczne. Do minimalizacji form o większej liczbie zmiennych stosuje się metody tablicowe, realizowane przez odpowiednie programy komputerowe. Klasyczną metodą tablicową jest metoda Quine'a-McCluskeya (w skrócie Q- M) (3, 4), opisana również w [5, 6, 9- 12, 15] oraz w poprzednich wydaniach niniejszej książki. W metodzie tej, jak również w innych podobnych metodach opisanych w literaturze (np. CAMP (15)), wymaga się aby forma podlegająca minimalizacji była na początku przedstawiona w postaci sumy min termów czyli jako kanoniczna forma sumacyjna. Stąd metody takie określa się jako „oparte na mintermach". Podane wymaganie stanowi istotne ograniczenie przy minimalizacji form o dużej liczbie zmiennych. Jeśli na przykład w formie sumacyjnej 20 zmiennych występuje term dwuliterałowy, to musiałby on zostać przekształcony do sumy 2 18 mintermów aby zastosować metodę Q- M lub podobną. Oznacza to duże obciążenie komputera i długi czas przetwarzania. Dlatego stosowanie metody Q-M jest ogranicwne do form o najwyższej 10-12 zmiennych. Wady tej nie mają nowsze metody minimalizacji, które wykorzystują reprezentację form boolowskich w postaci „kostek" (cubes), które mogą być przetwarzane bezpośrednio. Najbardziej znanymi metodami„opartymi na kostkach" są metody użyte w programie ESPRESSO (5, 14-23] (p. 4.1.3.2). Dalej przedstawione są podstawowe pojęcia i ogólny sposób postępowa­ nia przy minimalizacji form boolowskicb. Mówimy, że funkcja boolowska g implikuje inną funkcję boolowską f (w zapisie g = f), jeśli dla każdej kombinacji zmiennych, dla której g = I, 110 4.1. UKŁADY KOMBINACYJNE otrzymuje się/= I (ale niekoniecznie odwrotnie). Określenie „implikuje" pochodzi od nazwy funkcji implikacji (por. tabl. 4.2), wprowadzonej pierwotnie jako działanie w rachunku zdań (p. I. I). Jeśli g =>f, to funkcję g nazywamy implikantem funkcji/. W szczególności każdy iloczyn bądż suma iloczynów, wchodząca w skład sumacyjnej formy boolowskiej, jest implikantem funkcji opisanej tą formą. W odniesieniu do zbioru T, odpowiada to inkluzji każdego podzbioru H ~ T Prostym implikantem funkcji boolowskiej n zmiennych,/, opisanej formą sumacyjną, nazywamy iloczyn p zawierający m literałów, m ~n, będący implikantem funkcji/, czyli p = f, lecz który po odrzuceniu jakiegokolwiek literału przestaje być implikantem. Na przykład w funkcji f = x1 vx1 x 2 literał xdest implikantem prostym, natomiast x1 x 2 nie jest implikantem prostym, gdyż zmienna x 2 może być odrzucona nie zmieniaj ąc funkcji przełączającej f. Załóżmy, że funkcję boolowską można przedstawić w postaci /= h v g, gdzie h jest sumą boolowską implikantów prostych i g jest implikantem nieprostym, stanowiącym iloczyn literałów. Zatem można znaleźć taki iloczyn g*, że dla pewnej zmiennej x, będzie albo g = x1g*, albo g = x,g*, przy czym g* =>f. Również g => g*, gdyż dla tych kombinacji argumentów, dla których g = l, również musi być g* = I. Zatem możemy zastąpić g przez g* o liczbie literałów o jeden mniejszą. Postępowanie to można kontynuować tak długo, dopóki nie otrzyma się implikanta prostego. Każdą formę boolowską można przekształcić do postaci sumy zawierają­ cej wyłącznie implikanty proste. Jak wyżej wspomniano, do celów minimalizacji można przedstawić funkcję boolowską n zmiennych w postaci n-wymiarowej kostki (n-kostki). Każdy wierzchołek n-kostki reprezentuje jeden z 2" możliwych mintermów i może być oznaczony przez liczbę dwójkową bk (np. lOOl)lub równoważną liczbę k (np. 9). Funkcję boolowsk ą można przedstawić na n-kostce przez zaznaczenie wszystkich wierzchołków, dla których ke T. Przy funkcji niezupełnej należy odrębnie oznaczyć wierzchołki, dla których k e D. Definiujemy i-{sub)kostkę jako zbiór 2' wierzchołków n-kostki, opisaną przez n - i zmiennych. Każdy wierzchołek n-kostki stanowi zatem O-kostkę, opisaną przez n zmiennych (minterm). Krawędź łącząca dwa sąsiednie wierzchołki stanowi I-k ostkę, opisaną przez n - I zmiennych. Dwa wierzchołki nazywamy sąsiednimi, jeśli oznaczające je liczby dwójkowe różnią się na tylko jednej pozycji. Sumę takich dwu rnintermów można zastąpić jednym iloczynem niepełnym w wyniku redukcji jednej zmiennej (x v x = I). Jest to podstawowa czynność w procesie minimalizacji. Podobnie 2-kostka jest kwadratem, 3-kostka sześcianem itd. Na przy2 kład, na 3-kostce można wyróżnić 2 3 = 8 wierzchołków (O-kostek), 2 x 3 = 12 krawędzi (I-kostek) i 2 1 x 3 = 6 boków (kwadratów, 2-kostek), co ilustruje rys. 4.3a. 111 4. PODSTAWY TEORII UKŁADÓW CYFROWYCH a b 3(0111 3 7 (111 1 7 +" +' sno11 I I •2 I 2!0101~/ 01000 ) -· 4(100 ) x / 6 / / 1 >< 2)--~ 611101 / / „ 5 X o • T XD Rys. 4.3ab. Geometryczna reprezeniacja funkcji boolowskiej trżech zmiennych a) Ił-kostka dla tri«b zmX:nnyt"h b) oznaczenie preykładowej runktji nic:zupdnej Przykład T3 pokazany na rys. 4.3b ilustruje funkcję opisaną zbiorami = {O, 4, 6, 7} i D3 = {3, 5}. Jak widać, dwa mintermy (O-kostki) z sąsiednich wierzchołków Oi 4 można zastąpić jednym iloczynem niepełnym (I-kostką) x2 x3 • Mówimy, że I-kostka pokrywa (zawiera) dwie O-kostki. Podobnie cztery O-kostki 4, 5, 6, 7 (po włączeniu min termu 5 do zbioru T) są pokryte przez jedną 2-kostkę x1 . W ten sposób można uzyskać formę minimalną o postaci x2 x3 v x1 i wskaźniku złożoności równym 5 (dla porównania, kanoniczna forma sumacyjna tej funkcji ma współczynnik złożoności równy 16). W ogólnym przypadku, jeśli kostka c1 pokrywa (zawiera) kostkę c1, to zapisujemy to w postaci c1 ~ c1 . Kostka C; jest imp/ikantem funkcji f, jeśli C; s;; Tv D. Kostka prosta (implikant prosty) jest taką kostką c,, która nie jest pokryta przez żadną inną kostkę w n-kostce. W przykładzie z rys. 4.3b żadna z czterech O-kostek O, 4, 6, 7 nie jest kostką prostą, natomiast trzy !-kostki (O, 4), (4, 6) i (6, 7) są kostkami prostymi, jeśli min term 5 nie jest włączony do zbioru T. Po tym włączeniu I-kostki (4, 6) i (6, 7) nie są już kostkami prostymi, ponieważ są pokryte przez 2-kostkę (4, 6, 7, 5). Zbiór C = {c 1 c 2 , .„, c.} kostek zawartych w n-kostce stanowi pokrycie funkcji boolowskiejf,jeśli te kostki zawierają wszystkie wierzchołki wyznaczone przez zbiór T, ewentualnie pewne wierzchołki wyznaczone przez zbiór D, i nie zawierają żadnych wierzchołków wyznaczonych przez zbiór F. Pokrycie proste zawiera wyłącznie kostki proste. Istotna prosta kostka (istotny prosty implikant) jest taką kostką prostą, która zawiera O-kostkę (minterm) nie zawartą w żadnej innej kostce prostej. W przykładzie z rys. 4.3b I-kostka (O, 4) i 2-kostka (4, 6, 7, 5) są istotnymi prostymi kostkami. Zbiór wszystkich istotnych implikantów prostych danej funkcji boolowskiej nazywa się jądrem. Nieredukowalna forma boolowska, określona dla danej funkcji przelącwjącej, stanowi taką sumę implikantów prostych, że wyrażenie 112 4.1 . U KlAOY .C:OMBINACYJNE otrzymane po odrzuceniu któregokolwiek z nich nie reprezentuje już tej funkcji. W ogólnym przypadku, dla danej funkcji można otrzymać więcej niż jedną nieredukowalną formę boolowską, ale każda z nich zawiera to samo jądro. Ogólna procedura minimalizacji formy boolowskiej przy niewielkiej liczbie zmiennych zawiera następujące, kolejne czynności: określenie zbioru wszystkich prostych implikantów, czyli pokrycia prostego, określenie zbioru istotnych prostych implikantów, czyli jądra, określenie zbioru nieredukowalnych form boolowskich, w oparciu o przyjęte kryterium minimalności wybranie jednej z nieredukowalnych form boolowskich jako formy minimalnej. W ogólnym przypadku forma minimalna zawiera jądro oraz pewien podzbiór implikantów prostych, nie będących istotnymi. Siatki Karnaugh 4.1.3.1 Przedstawienie graficzne funkcji przelączającej w postaci odpowiednio oznaczonego wykresu, umożliwiającego proces minimalizacji, zostało najpierw zaproponowane przez E. W. Veitcha w 1952 r. Modyfikacja tej metody, opracowana w 1953 r. przez M. Karnaugh (czyt. kano) [ I], jest ogólnie stosowana pod nazwą siatek (tablic, map) Karnaugh jako najprostsza metoda minimalizacji form boolowskich o niewielkiej liczbie zmiennych. Siatka Karnaugh jest uporządkowaną strukturą prostokątną, złożoną z prostokątów elementarnych (kratek), z których każdy reprezentuje jeden mintenn. Przy n zmiennych siatka Karnaugh zawiera 2" kratek, obejmując wszystkie możliwe min termy. Rozkład kratek jest taki, że dowolne dwie sąsiednie kratki (tj. stykające się bokami) różnią się stanem tylko jednej zmiennej (zasada kodu Graya). Na rys. 4.3 przedstawiono przykłady siatek Karnaugh dla 11 = 2, 3 i 4. Podana wyżej właściwość siatki Karnaugh, dotycząca dwóch sąsiednich kratek, dotyczy tylko kratek mających wspólne boki. Drugą istotną właściwości siatki Karnaugh jest to, że każda kratka siatki styka się swymi bokami z tyloma różnymi kratkami sąsiednimi, ile wynosi liczba zmiennych. W odniesieniu do kratek położonych na brzegach siatki oznacza to, że górny i dolny wiersz oraz podobnie lewą i prawą kolumnę brzegową siatki można uważać za sąsiednie. Można sobie zatem wyobrazić, że siatka Karnaugh jest w rzeczywistości oklejona z czterech stron odpowiednimi wierszami (kolumnami) brzegowymi z przeciwległej strony siatki. Ogólnie można powiedzieć, że siatka Karnaugh jest otoczona ze wszystkich stron (włączając rogi) takimi samymi ośmioma siatkami. Poszczególne mintermy aa siatce Karnaugh oznacza się przy użyciu zapisu, w którym zmienne proste zastępowane są cyfrą I, a zmienne zanegowane cyfrą O, np ABCD1-+0l11 2 1-+7 10 • Linia skośna w lewym górnym rogu i od- 113 4. PODS TAWY TEORII UJ<lAOOW CYFROWYCH o AB o o o 1 1 i\ii AB 2 3 AB AB 1 b c A Ol 11 10 oo 1 o 3 2 oo -- - ABCO iiiico iiiico i\ il co n ~2 A BC o 1 co oo 01 ii iic iisc ABC ABC A~ l: ABC ABC ABl: n,J 11 10 01 11 10 4 5 ABCO li B~ O 13 12 7 6 AB(O ABCG 15 14 ABCO ABCD ABCO ABC D 8 9 11 10 ABCÓ ABCD ABCO ABCD Rys. 4.4. Siat ki Karnaugh d la n zmie oaych a) n = 2, b) n = ), ć) n c 4 powiednie symbole literowe wskazują, że np. na siatce z rys. 4.4c zmienne A i B są reprezentowane zapisem dwójkowym z lewej strony siatki (w odniesieniu do odpowiednich wierszy), przy czym lewa cyfra reprezentuje A, a prawa B. Zmienne Ci D są reprezentowane podobnie na górze siatki (w odniesieniu do odpowiednich kolumn), przy czym lewa cyfra reprezentuje C, a prawa D. Liczby umieszczone w kratkach siatek z rys. 4.4 reprezentują równoważniki dziesiętne odpowiednich mintermów. Funkcję przełączającą, zapisaną w kanonicznej formie sumacyjnej, oznacza się na siatce Karnaugb przez wpisanie cyfry I w kratkach odpowiadających wszystkim min termom sumy. Kratki nie zajęte oznacza się cyfrą Olub pozostawia się puste. Jeżeli dana funkcja jest funkcją niezupełną, to mintermy należące do zbioru D oznacza się na siatce Karnaugh symbolami „ x ", „ - ", „0" lub „d" . W poniższych przykładach będzie stosowany symbol ( - ). Właściwy proces minimalizacji polega na „sklejaniu" sąsiedniobocznych kratek oznaczonych symbolem „I " lub „ - " w możliwie największe pola prostokątne (k-kostki), zawierające 2" kratek (k = I, 2, ...). Pola takie, które obwodzi się linią ciągłą, reprezentują implikanty (kostki) proste. Ogólnie na siatce Karnaugh implikant prosty określa się jako zgrupowanie kratek, które nie może być włączone w całości do jeszcze większego zgrupowania. Owie sąsiednie kratki jedynkowe (I -kostka) wskazują na zbędność jednej zmiennej, zgodnie z zasadą ABv AB= A, np. A°lłCl> v A'BCTJ = A'BD(Cv C) = ABD (rys. 4.5). Podobnie pole zawierające cztery zajęte kratki (2-kostka) oznacza możliwość wyeliminowania dwóch zmiennych, np. ABCDv ABCD v ABCD v ABCD = if.D (rys. 4.5). Przedstawiona na siatce forma przykładowa, zawierająca osiem mintermów, sprowadza się do zbioru pięciu implikantów prostych. Różne pola mogą się wzajemnie pokrywać gdyż, jak wiemy, x v x = x. Aby określić, czy implikanty proste otrzymane na siatce Kamaugh są implikantami istotnymi, posługujemy się następującym twierdzeniem: jeśli 114 4.1. UKŁAOY KOMBINACYJ NE A co oo 01 11 oo 1 1 01 1 1 11 1 10 1 10 1 G::: -- YADv BCO v ACDv AB C Y;ABO 'ABO v AO v ABC Rys. 4.5 Minima.lizacja formy Y = ABCDv ABCDv ABCDv v ABCDv ABCDv ABCDv v ABCDv ABCD przynajmniej jedna kratka w polu reprezentującym dany implikant prosty nie jest również objęta polem należącym do innego imp/ikanra prostego, to taki implikant prosty jest istotny. Zatem jądro dla funkcji z rys. 4.5 tworzą dwa istotne implikanty proste: ABD i AD. Pozostałe trzy implikanty proste nie są istotnymi. Zbiór nieredukowanych form boolowskich zawiera dwie formy: y = ABD V AD V BCD V ACD = ABD V AD V ABC i od razu widać, że druga z nich jest formą minimalną. Ogólnie, obecność na siatce 2k sąsiednich kratek jedynkowych oznacza możliwość eliminacji k zmiennych, pod warunkiem, że kratki te tworzą pole prostokątne. Oznacza to utworzenie k-kostki. Inny przykład stosowania siatki Karnaugh do minimalizacji form boolowskich zilustrowano na rys. 4.6. Celem jest minimalizacja formy sumacyjnej f = Xi XzX3 V X1Xz X4 V X1 XzX4 V X1XzX3X4 V X1XzX3X4 V X1 X2X3X4 V V x 1 x 2 x 3 x4 V x 1 x2 x3 x4 . Oznaczenie zajętych kratek na siatce Karnaugh realizuje się po przekształceniu pierwszych trzech składników tej sumy w odpowiednie mintermy, tj. x1 x2 x3 = x1x2x3(x4Vx4) = x1x2x3X4Vx1x2x3x4 itd. Przy pewnej wprawie czynność tę można uprościć, wyznaczając właściwe mintermy bezpośrednio na siatce Karnaugh. Po odpowiednim sklejeniu kratek otrzymujemy formę zawierającą wyłącznie implikanty proste: f = x1 .i 3 v x 2 x4 v x2 x4 v V x3 x4 v x2 x3 , przy czym pierwsze trzy są implikantami istotnymi. Formy nieredukowalne są dwie i każda z nich zawiera, oprócz. jądra, jeden z dwóch pozostałych implikantów prostych. Dla obydwu form wskaźnik złożoności jest taki sam (12), a zatem obydwie reprezentują formy minimalne. X3 X4 oo 01 11 oo 1 1 1 J 01 1 1 11 1 10 1 •2 115 10 r·a~~ I o .-- ... '' t.~- l ~) 1 •''~„o""'' 1 1 „· o ~, 1 1' ' ' ' Rys. 4.6 Siatka Karoaugh z polami jedynek i zer 4. PODSTAWY TEORII UKŁAOOW CYFROWYCH zero, można określić minimalną formę będącą negacją wyrażenia reprezentowanego przez kratki jedynkowe. Czyn· ność tę w powyższym przykładzie wykonano sklejając na siatce z rys. 4.5 kratki zerowe linią przerywaną. Wówczas otrzymuje się formę = x 1 x 2 x 4 v x 2 x 3 x 4 V v x2 x 3 x4 , zawierającą wyłącznie jądro. Stosując wzór Shannona znajdujemy minimalną formę iloczynowąf = (x 1 v x2 v x4 )(x 2 v x3 v x4 )(x 2 v x3 v x.J. Można zauważyć, że wskaźnik tej formy minimalnej jest również równy 12. Warto zauważyć, że forma opisana zbiorem T4 = {O, 2, 8, IO}, czyli czterema jedynkami umieszczonymi w czterech rogach siatki czterech zmiennych, sprowadza się do formy minimalnej równej/= x2 x4 . Wykonując minimalizację dla funkcji niezupełnej, przedstawionej po· przednio w tabl. 4.4, otrzymuje się formę/= x 3 x 4 V x 1 x2 x 3 (rys. 4.7). Jak widać, przyporządkowanie stanom dowolnym wartości równej Olub I jest uzasadnione potrzebą sklejenia kratek w polu x 3 x 4 . J Sklejając kratki zawierające J ' . X X 2 oo 01 11 oo -- 01 1 11 10 - 10 1 Rys. 4.7 1 Minimalizacja formy boolowsltiej reprezentującej funltcj~ niezupełną Przy liczbie zmiennych większej od czterech stosowanie siatki Karnaugh staje się bardziej złożone. Ponieważ każda kratka styka się swymi bokami z tyloma różnymi kratkami, ile wynosi liczba zmiennych, stąd np. przy pięciu zmiennych wymagałoby to otoczenia każdej kratki pięcioma innymi kratkami, co w prostokątnej strukturze płaskiej nie jest możliwe. Trudność ta jest usuwana przez zastosowanie struktury „zwierciadlanej" pokazanej na rys. 4.8, w której połówkom siatki stanowiącym z osobna siatki czterech zmiennych, przyporząd· kowano stany Ci C. Podwójna linia środkowa może być uważana za lustro, tak że dowolna kratka x oprócz sąsiednich czterech „ własnych" kratek ma również sąsiednią piątą kratkę po drugiej stronie siatki, na pozycji będącej odbiciem zwierciadlanym pozycji kratki x. Siatka ta może być równie dobrze przed· stawiona w strukturze pionowej, gdzie polówkom siatki będą odpowiadać stany A i A. Podobna procedura może być także zastosowana przy sześciu zmiennych. Wtedy siatka Karnaugha składa się z czterech siatek czterech zmiennych. Siatka ta jest pokazana na rys. 4.9. 116 4.1. UKŁADY KOMBINACYJNE DE AB MO 001 oo n11 n10 11n 111 1nn 1n1 ::!:] G::: 01 1 1 1 1 11 1 1 1 1 10 1 Rys. 4.8 Siatki Karnaugh i przykłady sklejeń dla rormy boolowskiej pięciu uniennych 1 ) AB COE ooo 001 011 010 ooo I 001 1 011 110 11 1 1 1 1 -I 010 r2:: ~ 111 101 1 I :2J I 1 1 1 1 2l 1 1 1 Rys. 4.9 Siatka Kamaugh i przyklady l1 100 100 1 ~ 110 101 1 I dla formy boolowskicj zmiennych skłejen sześciu Zasada sklejania w tym przypadku brzmi: dwie kratki jedynkowe z dwóch sąsiedniobocznych siatek czterech zmiennych mogą być sklejone, jeśli zajmują tę samą zwierciad.lanie pozycję na tych siatkach. Zasada ta rozciąga się również na pola zawierające 2• kratek. Przykłady takich sklejeń pokazano na rys. 4.8 i 4.9. Metoda siatek Karnaugh jest wygodna do szybkiej i łatwej minimalizacji form boolowskicb, jeśli liczba zmiennych nie przekracza c-t:terech. Przy pięciu lub sześciu zm iennych stosowanie siatek Karnaugh jest również możliwe, jakkolwiek jest bardziej złożone. Przy większej liczbie zmiennych stosowanie siatek Karnaugh staje się tak trudne, że w praktyce nie jest stosowane. Inne metody minimalizacyjne 4 .1.3.2 Oprócz opisanej wyżej, elementarnej metody siatek Karnaugb, istnieje wiele innych bardziej wydajnych metod minimalizacyjnych. Można tu wymienić wzmiankowaną wcześniej metodę Q- M [3-4], metodę iteracyjnej zgodności 117 4. PODSTAWY TEORII UKt.AOOW CYFROWYCH (9, 18), która nie wymaga przedstawiania minimalizowanej funkcji w postaci kanonicznej oraz metodę bezpośredniego przeszukiwania (10). Obszerna dyskusja metod minimalizacyjnych jest zawarta w (2, 6, 12, 14, 15, 17, 18, 20). Przy dużej liczbie zmiennych najczęściej stosowany jest opracowany na uniwersytecie w Berkeley (USA) program komputerowy ESPRESSO (5), który umożliwia szybkie uzyskanie bardzo dobrych rezultatów, jakkolwiek bez gwarancji uzyskania absolutnie minimalnej formy sumacyjnej. Algorytm tego programu jest heurystyczny, tzn. polega na poszukiwaniu wyniku przez stosowanie prób i błędów. Szeroko stosowany nowszy program ESPRESSO-Il umoż­ liwia w większości przypadków otrzymanie wyników minimalnych lub niemal minimalnych (z dokładnością do jednego lub dwu termów), nawet przy kilkudziesięciu zmiennych i setkach termów. Program ESPRESSO jest obszernie omówiony wjęzyku polskim w książ­ kach (22, 23] (p. także p. 4.3). Osobną grupę stanowią metody minimalizacyjne układu form boolowskich, odnoszące się do układów kombinacyjnych wielowyjściowych. W tym przypadku poza wymaganiem minimalnej złożoności każdej z form wymaga się również, aby miały one jak najwięcej wspólnych termów, co umożliwia uproszczenie i zmniejszenie kosztów projektowanego układu. Bardzo skutecznym programem minimalizacyjnym do takich zadań jest program ESPRESSO-MV (19). Podstawowe układy kombinacyjne: bramki. Symbole graficzne 4.1.4 Przy analizie układów cyfrowych istotne znaczenie ma wybór odpowiedniego rodzaje graficznych symboli elementów logicznych: symbole o kształcie prostokątnym i symbole o kształtach zr6ż11icowan ych. Pierwsze z nich mają zunifikowany kształt prostokątny, a funkcje elementów są oznaczane odpowiednimi symbolami literowymi, umieszczonymi wewnątrz symboli graficznych. Symbolika ta jest zalecana przez Między­ narodową Komisję Elektrotechniczną (IEC), która w 1972 r. wydała publikację 117-15, a następnie w 1981 r. publikację 113-7 i w 1983 r. publikację 617-12. W drugim rodzaju symboliki funkcje elementów są określone przez zróżnicowane kształty symboli. Symbole te zostały pierwotnie wprowadzone w 1962 r. przez normę amerykańską MIL-STD.8068 i następnie szeroko zastosowane w przemyśle. Obydwa rodzaje symboli (drugi z nich w zmodyfikowanej postaci) zostały w 1973 r. objęte normą amerykańską ANSI Y32.14-1973 (IEEE Std 91-1973), a następnie w 1984 r. normą ANSI/IEEE Std 91-1984, kompatybilną z wymienioną publikacją IEC 617-12. języka graficznego. Istnieją zasadniczo dwa 118 4 , 1. UKł.AOY KOMBINACYJNE Na rysunku 4.10 są pokazane symbole podstawowych układów kombinacyjnych o kształcie prostokątnym i kształtach zróżnicowanych oraz wskaź­ niki negacji i polaryzacji. Na podstawie tych symboli można tworzyć symbole bardziej złożonych układów ze wskaźnikami negacji - w systemie abstrakcyjnych stanów zerojedynkowych, oraz ze wskaźnikami polaryzacji - w systemie wymiernych fizycznie poziomów ,,niskich" i „wysokich". Symbole o kształtach zróż­ nicowanych, ilustrujące połączenia funkcyjne DA NO i DOR mają rozmiary dwukrotnie mniejsze od analogicznych symboli AND i OR. a Nazwo elementu Symbol e o ksz tofci e Symbol e o kształt ach prostokq.tnym zr 6żn i cowonych ł!EC, ANSI/I EEEI Strono IANSI/IE EE) Strono wejśc~ściowo XORIAL80) Bufor niewzmocniojqcy Jnwer ter,negotor NOT INIE) OANOIZI) OORIZU8) Element opó żni oj qcy Wskaźni k negacji Wskaźnik nolorvzoeii b Strono wyj śc i owo =[j- DD=D- -0-D- -[>--[>- ANOłl) ORILU8) Strono wejściowa =rJ- fi•ub r- $$- IEJ-lub ~ -LJ-- -<JC)- o t::. Rys. 4.10 Symbole p<>dSlawowych układów kombinacyjnych a) zestaw symboli, b) zwięk~'lCnie JK:lb)' OJ;-Cjst W zasadzie przyjmuje się, że przy użyciu podstawowych symboli o kształtach zróżnicowanych liczba wejść bez wskaźników negacji nie powinna przekraczać 4, a liczba wejść ze wskaźnikami negacji nie powinna przekraczać 3. 119 4. POOSl AWY TEORII UKLAOOW CYFROWYCH Dalsze zwiększanie liczby wejść przedstawiono na rys. 4.10. Zwiększenie liczby wejść przy użyciu symboli o kształcie prostokątnym wykonuje się łatwo przez odpowiednie zwiększenie wysokości symbolu. Przy stosowaniu symboli prostokątnych schemat logiczny zmniejsza się i upraszcza, gdyż symbole te mogą się ze sobą stykać poziomymi bokami. Symbol literowy określający funkcję logiczną umieszcza się tylko w najwyższym prostokącie (jeżeli dotyczy on wszystkich zetkniętych ze sobą prostokątów). Zasadą jest, u wszystkie wejścia umieszcza się z lewej strony symbolu prostokątnego, a wszystkie wyjścia z jego prawej strony. Od góry i od dołu nie umieszcza się żadnych końcówek. Klasyczne symbole prostych bramek o kształtach zróżnicowanych są lepiej czytelne i łatwiejsze w interpretacji od symboli IEC o kształcie prostokąt­ nym. Dlatego są one najczęściej stosowane w praktyce. Z drugiej strony symbole bardziej zlożonych układów cyfrowych nie są objęte standaryzacją symboli o kształtach zróżnicowanych, a są szczegółowo zdefiniowane w systemie symboli prostokątnych. Z tych powodów w praktyce często stosuje się jednocześnie obydwa rodzaje symboli: dla podstawowych bramek - symbole zróżnicowane, a dla pozostałych układów - symbole prostokątne. Taka symbolika jest stosowana m.in. przez firmę Texas Jnstruments w katalogach i publikacjach firmowych. Pewną wadą symboli prostokątnych dla zlożonych układów cyfrowych (np. liczników) są dość skomplikowane i mało czytelne oznaczenia literowe, służące do opisu układu. Trudno jest jednak w prosty sposób objaśnić graficznie budowę i działanie złożonych, wielofunkcyjnych układów cyfrowych. Istotną zaletą symboli prostokątnych jest kompletność opisu, realizowana m.in. przez odrębne oznaczen ia wejść z układem Schmitta, wyjść z otwartym kolektorem, wyjść trójstanowych i buforów mocy. Szczegółowy opis systemu symboli prostokątnych IEC podany jest w Dodatku. Wskaźniki negacji i wskaźniki polaryzacji stosuje się do konstrukcji schematów logicznych w odpowiednio dwóch różnych systemach oznaczeń. Przy konstrukcji schematów logicznych w konwencji abstrakcyjnych stanów logic-'nych (O, I), tzn abstrahując od występujących w realnych układach poziomów wielkości fizycznych (np. napięć) reprezentujących te stany, stosuje się wskaźniki negacji. Ten system oznaczeń określa się jako system wskaźników negacji (SWN). Przy konstrukcji schematów logicznych w konwencji poziomów wielkości fizycznych, mierzonych na wejściach i wyjściach realnych układów cyfrowych, stosuje się wskaźniki polaryzacji. Ten system oznaczeń określa się jako system wskflźników polaryzacji (SWP). Przyjmuje się umownie, że w sensie logicznym wyróżnia się dwa przeciwstawne poziomy wielkości fizycznej: poziom bardziej dodatni, określany jako poziom wysoki i oznaczany literą H (Higli), oraz poziom mniej dodatni, określany jako poziom niski i oznaczany literą L (Low). Każdy schemat logiczny może być zatem skonstruowany jako „teoretyczny" lub „praktyczny". Schemat wykonany prLy użyciu SWN może być schema120 4 t. U KŁADY KOMBINACYJNE tem „praktycznym", jeśli dodatkowo wprowadzona będzie konwencja tzw. logiki dodatniej lub ujemnej, o czym będzie mowa nieco dalej. Systemy te w zasadzie nic powinny być stosowane jednocześnie. Należy podkreślić, że funkcja symbolu podstawowego (np. AND, OR) jest całkowicie niezależna od obecności bądź braku jakichk olwiek wskaźników. Dowolny symbol X złożony z symbolu podstawowego i określonych wskaź­ ników należy rozumieć w ten sposób, że wejścia i wyjścia symbolu podstawowego są połączone z końcówkami symbolu X (stanowiącymi faktyczne wejścia i wyjścia symbolu X) za pośrednictwem wskaźników pełniących tylko rolę inwerterów stanu (SWN) lub poziomu (SWP), lecz nie zmieniających funkcji symbolu podstawowego. W związku z tym operuje się pojęciami „wewnętrz­ nego" stanu logicznego i „zewnętrznego" stanu logicznego lub poziomu: wewnętrzny stan logiczny ozoac-la stan logiczny istniejący wewnątrz symbolu podstawowego na jego wejściu lub wyjściu, zewnętrzny stan logiczny lub poziom oznacza stan logiczny lub poziom istniejący na zewnątrz symbolu: a) na linii (końcówce) wejściowej przed jakimkolwiek wskaźnikiem na wejściu, b) na linii (końcówce) po jakimkolwiek wskaźniku na wyjściu. System wskaźników negacji (SWN) SWN jest oparty na następujących regułach: I) brak wskaźnika negacji (kółeczka) między symbolem podstawowym a jego końcówką oznacza, że stan wewnętrzny jest taki sam jak zewnętrzny, 2) obecność wskaźnika negacji oznacza, stanu ie stan wewnętrzny jest negacją zewnętrznego. Należy podkreślić, że obecność lub brak wskaźnika negacji nie ma i.adnego związku z poziomami wielkości fizycznych na końcówkach realnych układów. Z reguły (2) wypływa wniosek. 7.e obecność wskaźnika na wejściu symbolu podstawowego elementu logicznego oznacza negację odpowiedniej zmiennej wejściowej w zapisie matematycznym funkcji logicznej, realizowanej przez ten element. Natomiast obecność wskaźnika negacji na wyjściu symbolu elementu oznacza negację tej funkcji. Zastosowanie tych reguł ilustrują pnykłady pokazane na rys. 4.11i4.12, na których są przedstawione symbole równoważne (zgodnie z prawem De Morgana) podstawowych bramek z inwersją (rys. 4.11) i bez inwersji (rys. 4.12). W polskich skrótowych oznaczeniach literowych dla realizowanych funkcji położenie litery N odpowiada miejscu użycia wskaźników negacji na symbolach. W przeciwieństwie do terminologii angielskiej oznaczenia te zapewniają łatwo zrozumialą, krótką i wygodną fonetycznie formę zapisu podstawowych fun kcji. 121 4, PODSTAWY TEORII UKŁADOW CYFROWYCH o NANDUNI ••----fil__ y: NegotiveOR INUBl „., ·•=u-1 ., ··~ ~ Równowa.Zne - - -- ' b =r::FI' NORILUNI AND(NI) x1 -P1l______y :: x, vx2 x, X1 ~ c Y= ii v"X; y-=Xj5'2 X2 ~ Równowożne---_, •-Q-r:x •--0---y:i ' - - Równoważne Rys. 4.11 Symbole ---....J' ró"'l'loważne elemen16w logicznych z inwersją a) NAh'D (I-NIE. ltl). b) NOR (LUB-NIE. L UN). c) NOT (NIE. N) 0 Nogohve NORINUNI ANDlll lC , -f&l_y::x1 x, „··=fJ-, ··~ ' -- - Równowotne - -- ' b x, ORiLUBl ~ Negohv• NANO(NI NI ><1 ~ '--- y: i1 V il Y=X1V"2 ., --9'1...__y=i;Vi ., ~ - Równoważne - -- ' Rys. 4.12 Symbole równoważne bez inwersji a) A:-10 (I) b) OR (LUB) System wskaźników ncgaCjt JCSt stosowany z obydwoma rodzajami symboli (o kształcie prostokątnym i ksztaltach zróżnicowanych). System wskaźników negacji może być użyty do opisu realnych układów, jeżeli dodatkowo wprowadzone zostaną jednoznaczne związki między abstrakcyjnymi stanami O, 1 i realnymi poziomami L, H. Istnieją tylko dwie konwencje (przeciwstawne), które określa się jako „logika dodatnia" i „logika ujemna". Definicje tych konwencji w odniesieniu do schematów logicznych są następujące: logika dodatnia oznacza, że na wszystkich końcówkach symboli stan I jest równoważny poziomowi wysokiemu H, a stan O jest równoważny poziomowi niskiemu L, logika ujemna oznacza, i.e na wszystkich końcówkach symboli stan I jest równoważny poziomowi niskiemu L, a stan Ojest równoważny poziomowi wysokiemu H. Przy opisie schematowym realnego układu przy użyciu SWN niezbędne jest zatem dodatkowe określenie słowne, która z tych konwencji została użyta 122 4.1. UKŁADY KOMBINACYJNE w danym przypadku. Na rys. 4.13 jest przedstawiony symbol elementu NAND w logice dodatniej i elementu NOR w logice ujemnej. Wprowadzenie konwencji logiki dodatniej lub ujemnej nie ma żadnego odzwierciedlenia w postaci grafic-.mej symbolu i w opisie matematycznym jego funkcji logicznej. Symbole AND, NAND, OR itd. oznaczają tylko abstrakcyjne funkcje logiczne, sprecyzowane matematycznie lub/i przy użyciu tablicy stanów zerojedynkowycb. a r - - - - NANO- - - - -, I I I I I Symbol I I . I Negoqo 1 I podstawowy 1 IAND I I I NOT~ I I x, .--I L- 0 I H- I F= AB I / 1( / & L---, 1 A=x 1 1 0 -L I F bl-'---"--i---- - - y = F= i';'"X2 I I 1 1-H IL- O B=- x 2 I H- 1 x, I I I I L- - - - - -- :..1 I x, x, I Konwencjo logiki dodatniej L L H H L H L H Poziomy z ewnetrzne ,· b r - - NOR- - I I 1 I rl'..:1 I I Symbot F -Av ;.1 H- O A=x, IH~ o I I I F o o o o 1 o 1 o o 1 1 1 y H H H L Stany 'łl"ew n ę t r zne ---- 1 I I Negocjo I I // „ rr-- ---, 10 - H x --'---ł B - x I B podstawowy I ( NOT\) B I I L -1 ' A - z I F t:.;.:-.,---t11 - L I I I L - -- - - ' I L --- - - - _ J - - - y = F =~2 I I ~ Konwencjo logiki ujemnej I x, L L H H ., A B F y 1 1 1 o 1 1 1 H L H L H o 1 o o o H H L Rys. 4. 13 Stosowanie systemu wskaźników negacji oraz konwencji logiki dodatniej i ujemnej przedstawione na przykładzie opisu a) elementu N.A.NO w l()giet" dodatniej, b) eJcmento NOR 123 w logice ujemnej ' PODSTAWY TEORII UKtAOOW CYFROWYCH Zastosowanie ko nwencji logiki ma charakter alterna tywny, Lzn. nie obydwu konwencji do o pisu tego samego schematu. Dlatego SWN jest również określany jako „system logiki dodatniej lub ujemnej" lub „system jednej logiki". można jednocześnie stosować System polaryzac ji (SWP) wskaźników SWP jest oparty na następujących regułach: brak wsk aźnika polaryzacji (t rójkącika) między symbolem podstawowym a jego końcówką oznacza, że poziom wysoki H na końcówce jest równoważny wewnętrznemu stanowi logicznemu 1 (wynika stąd także, że poziom niski L na końcówce jest równoważny wewnętrznemu stanowi O), obecność wskaźnika polaryzacji oznacza, że poziom wysoki H na końcówce jest równoważny wewnętrznemu stanowi logicznemu O (wyni ka stąd także, że poziom niski L na końcówce jest równoważny wewnęl rzncmu sta nowi I). Zastosowanie tych reguł ilustrują przykłady pokazane na rys. 4.1 4. J ak widać, brak wskaźnik a pola ryzacji oznacza konwencję logiki doda tn iej, a obecność tego wsk aźn ika oznacza konwencję logiki ujemnej. Obydwie konwencje są tu zatem stosowa ne razem, na odpowiednich końcówkach symboli. Dlatego SWP jest określany jako „system logiki mieszanej''. a 1symbol 1 Wsk.0Żnik11 1 pOdsta ... 1 poziomu I wowy I I I I (AND) 1I ,....- ) I ' F:AB I ( ' ., H- 1 A •• H..,.. l B o I t L- O „„ Alfobtt P 1 I F P "-,_-L 1 L'- 0 .__~ o- Y H H I dodatnio 8 Allobtt P ,........, F y x, o o o ., H L L H l H H L H H H A l H L H o 1 1 8 1 o o o , 1 L A 8 F L L H H L H L H L L l ~ Poziomy S ło ny wr:wn.ętrzne zewn ę trz ne Poziomy wewnrtrzne b Wskoinik1 Symbol 1 1 poziomu I poo1ta - : 1 I wowy I l, I ' IORI I I x, I '""" 1 f• Av BI x, I ~A > 1 _H__ _.O L._ I X2 H ._~ 8 l .... , ....._ F __, 1 ..., H Y Q i- L L L H H „,, , A L H L 1 H Rys. 4. 14 Zastosowanie systemu a) bam.ta N'AND (11''). b) 124 l'Ó'Jrr~~ B F , , o 1 o o o o wsk aźników y H H H L H ~ Poziomy zewnftrznt Logi ko ujemna L09\ko L L H Allobeł Ćwiczenie dla Czyte lnika y H H H L polaryzacji: bramka Nqari'iir OR (NUB) 4,1, UKŁADY KOMBINACYJNE Jakkolwiek SWP może być stosowany z obydwoma rodzajami symboli (o kształcie prostokątnym i kształtach zróżnicowanych), to w praktyce stosuje się go najczęściej z symbolami o kształcie prostokątnym. Formalne nazewnictwo układów cyfrowych przy użyciu SWP jest złożone. Symbol pokazany na rys. 4.14a należałoby określić jako „dwuwejściowy element AND ze wskaźnikiem polaryzacji na wyjściu" lub „dwuwejściowy element AND z wyjściem w logice ujemnej''. Określenia te wynikają z założenia, ujętego w publikacji IEC 617-1 2, że działanie elementów logicznych opisuje się przy użyciu wewnętrznych stanów logicznych wyłącznie z a lfabetu B = {O, 1}. Przy opisie realnych układów, gdy mamy do czynienia z poziomami L, H, jest konieczne przyjęcie odpowiednich przyporządkowań (O 1-+ L, l 1-+ H lub odwrotnie) przy przejściu ze stanów wewnętrznych na poziomy zewnętrzne. Prostszy opis i łatwiejszą interpretację symboli realnych układów otrzymuje się przy użyciu algebry Boole'a realnych sygnałów binarnych ( P, V, ·, - , L, H ) ze zbiorem P = {L, H} (p. 1.5). Funkcje logiczne z tabl. 4.1, 4.2 i 4.3 oraz opisy bramek można wyrazić wówczas przy użyciu wyłącznie a lfabetu P. Wskaźnik poziomu pełni wtedy rolę analogiczną do wskaźnika negacji w SWN, oznaczając już nie miejsce zastosowania logiki ujemnej, lecz po prostu inwersję poziomu wewnętrznego przy przejściu do poziomu zewnętrznego lub odwrotnie. Ta konwencja będzie też stosowana w dalszym tekście. Układ z rys. 4.14a nazywamy zatem krótko: „dwuwejściowa bramka NAND (IN)". Jest to krótszy zapis niż przy użyciu SWN, w którym jest wymagana dodatkowa uwaga „ w logice dodatniej". Tablice funkcyjne pokazane na rys. 4.14a ilustrują przejście ze stosowania dwóch a lfabetów B i P na jeden alfabet P. Jako dalszy przykład można także przytoczyć reprezentację logiczną tranzystora npn, przedstawioną na rys. 4.15. Tranzystor ten może być określony a ~ 8~K d e B E L X K H X H H H L L + E b :~K e c :~K 125 E Rys. 4.15 Reprezentacja logiczna tranzystora np11 a) $Chemat elcktnw:n)'. b) 1.ałlO!IOWllln łt symb<.>h1 ANO. c) i.as1osowank symbolu OR, d) tablica runłC)jna, c) równo'A•ainy łogiClniit układ dwutranzys1orowy 4. PODSTAWY TEORII UKŁAOOW CYFROWYCH jako układ o dwu wejściach (baza Bi emiter E) oraz jednym wyjściu (kolektor K). Symbol logiczny tranzystora można utworzyć przy wykorzystaniu symbolu bramki AND (rys. 4.l 5b). Napięcie kolektora tranzystora jest „niskie", jeśli napięcie bazy jest „wysokie" i napięcie emitera „niskie". Dlatego na końcówkach emitera i kolektora musi być użyty wskaźnik polaryzacji, a na końcówce bazy wskaźnika tego nie będzie. Zgodnie z prawem De Morgana runkcja logiczna układu może być zmieniona. T ranzystor moi.e być zatem reprezentowany również symbolem OR (rys. 4. I 5c) ze wskaźnikiem polaryzacji umieszczonym na końcówce bazy. Oczywiście, gdy emiter tranzystora jest „wysoko" (tzn. ma bardziej dodatnie - „wysokie" napięcie) łub jeśli baza tranzystora jest „nisko", wówczas kolektor tranzystora jest „wysoko". W podobny sposób można przedstawić logicznie tranzystor pnp. Często spotykany i wygodny w zastosowaniach jest układ połączeń realizujący runkcję DANO (Distributed AND, Zwarte I, skrót Zl), wykonywany przez zwarcie wyjść ~.z otwartym kolektorem" tranzystorów npn łub "z otwartym drenem" tranzystorów z kanałem n) z dwóch lub więcej odpowiednich układów scalonych (rys. 4.10). Podobnie realizuje się funkcję zwarciową DOR (Distributed OR, Zwarte LUB, skrót ZUB) przez zwarcie wyjść (,;z otwartym emiterem" tranzystów npn lub „z otwartym drenem" tranzystorów z kanałem p) z dwóch lub więcej odpowiednich układów scalonych (rys. 4.10). Według zaleceń normalizacyjnych IEC funkcje DANO i DOR oznacza się graficznie małym kwadracikiem wewnątrz symbolu prostokątnego (o ile się go stosuje). Złożone układy kombinacyjne 4 .1.5 Przez odpowiednie połączenie pewnej liczby podstawowych elementów logicznych można utworzyć mniej lub bardziej złożone układy kombinacyjne. W prostych przypadkach układy takie buduje się z bramek scalonych małej skali integracji. Kolejność postępowania przy syntezie kombinacyjnego układu logicznego może być sformułowana następująco: I) określenie runkcji przełączającej odpowiednio do postawionych wymagań (np. za pomocą tablicy stanów lub zbiorów Ti D), 2) wykonanie minimalizacji formy boolowskiej, 3) sporządzenie schematu układu, odpowiadającego zminimalizowanej formie boolowskiej, 4) optymalizacja konfiguracji schematowej. Czynności ujęte w punktach I. i 2. zostały już omówione poprzednio. Obecnie zastanowimy się nad czynnościami z punktów 3. i 4. Realizacja punktu 3. zależy od rodzaju układów cyfrowych, które przyjmuje się za elementarne, co odpowiada przyjęciu określonego SFP (p. 4.1.1). Klasycznym tego rodzaju 126 4.1. UKŁADY KOMBINACYJNE funktorem podstawowym jest element realizujący funkcję NAND (IN) oraz równoważną funkcję Negative-OR (NUB) (rys. 4.11). Z takich elementów, jak z cegiełek, można budować układy kombinacyjne, realizujące zadane funkcje. Symbole funktorów równoważnych umożliwiają tworzenie latwo czytelnych schematów układów kombinacyjnych na podstawie odpowiednich regul. Ich podstawę stanowi zasada, że przy budowie układu złożonego z elementów NAND (IN) schemat układu powinien zawierać wlaściwie polączone zarówno symbole NAND (IN), jak i równoważne symbole Negative-OR (NUB) (rys. 4.11). Uogólniając to można powiedzieć, że układ cyfrowy powinien być reprezentowany schematem, zawierającym symbole funktorów równoważnych (komplementarnych). Przy stosowaniu elementów NAND do syntezy układu opisanego formą sumacyjną, reguły stosowania symboli funktorów równoważnych są następujące: I) bramkę wyjściową, na której wyjściu otrzymuje się stany lub poziomy logiczne realizujące pożądaną funkcję, określa się jako reprezentującą pierwszy (nieparzysty) poziom układu; graficznym symbolem tej bramki jest symbol Negative-OR (NUB). 2) bramki których wyjścia są przyłączone do wejść bramki wyjściowej, określa się jako reprezentujące drugi (parzysty) poziom układu; graficznymi symbolami tych bramek są symbole NAND (IN), 3) dalsze poprzedzające bramki reprezentują odpowiednio dalsze nieparzyste i parzyste poziomy, przy czym na poziomach nieparzystych stosuje się symbole Negative-OR (NUB), a na poziomach parzystych symbole NAND (IN), 4) w zasadzie każda linia połączeniowa między wyjściem jednej bramki a wejściem drugiej powinna mieć na obydwu końcach symbole wskaźnika negacji (kółeczko) lub polaryzacji (trójkącik) lub nie powinna ich mieć w ogóle, 5) zmienne wprowadzane na wejścia ze wskaźnikami negacji lub polaryzacji są reprezentowane w formie boołowskiej przez swe dopełnienia, 6) zmienne wprowadzane na wejścia bez wskaźników negacji lub polaryzacji są reprezentowane bez dopełnienia w formie boolowskiej. Wymienione reguły ilustruje przykład pokazany na rys. 4.16. Zgodnie z regułą 5. zmienna wejściowa x 1 występuje w formie boolowskiej w postaci zanegowanej, a zmienna wejściowa x 3 występuje w niej bez negacji. Istotoą właściwością reguły 4. jest to, że obecność wskaźników negacji na obydwu końcach linii, łączącej wyjście jednej bramki z wejściem drugiej, jest równoważna z brakiem tychże wskaźników z punktu widzenia funkcji przełączającej realizowanej wspólnie przez te bramki. Ilustruje to przykład pokazany na rys. 4.17. Od reguły tej istnieją wyjątki, związane z połączeniami w obrębie jednego poziomu, jak również przy realizacji sprzężeń zwrotnych w układach sekwencyjnych. Przykład występowania takiej wyjątkowej sytuacji jest pokazany na rys. 4.18. Celem jest realizacja układowa funkcji 127 4. PODSTAWY TEORII UKlAOÓW CYFROWYCH o Poziomy uktodu 4 3 I 2 y b 4 3 2 y Przykład Rys. 4.16 stosowania symboli a) funktorów tó„·ńowat.nych, b) wyl4cznie symboli NAND x, & x, y x, y:: X1 X l V X3x, Rys. 4. I 7 Przykład ilustrujący regułę 4 o 84 x, b Poziomy 2 ., 82 & 81 B3 & ,.., y R)'s. 4.18 a) 128 Przykład odstępstwa od reguły 4 z regułą, b) uklad oiagod.ny z rrgułą ukł.ad ą.odoy 4.1. UKŁADY y= KOMBINACYJN E x1 x 2 v x 3 (x 1 v x,) Na rys. 4.18a przedstawiono bezpośrednie odwzorowanie schematowe tego związku. Łatwo można zauważyć, że bramki B3 i B4 stanowią w istocie te same elementy, o tych samych zmiennych wejściowych i wyjściowych. Dlatego układ z rys. 4.18a można przedstawić w postaci pokazanej na rys. 4.l 8b. Interesujący przykład stanowi realizacja funkcji XOR (ALBO). Nasuwającym się od razu rozwiązaniem jest układ pokazany na rys. 4.19a, zawierający trzy bramki i dwa inwertery. Po przekształceniu wzoru definicyjnego = X1 X2 V X1X2 = X1 (xl V X2) V X2(.X, V x,) y można jednak zrealizować prostszy układ, pokazany na rys. 4.19b, zawierający cztery bramki dwuwejściowe. Realizację bramkową funkcji XNOR (ALBON), będącej negacją funkcji XOR (A LBO), stanowi układ komparatora, przedstawiony na rys. 4.20a. Układy z rys. 4.19 i rys. 4.20 są komplementarne, tzn. realizują wzajemne dopełnienia. Przy negacji jednej zmiennej wejściowej lub przy negacji na wyjściu, układy te zmieniają wzajemnie role. o ., y=x,i2 v i 1 x2 x, b x, y x, Rys.. 4.19 Realizacja funkcji XOR (ALBO) przy użyciu SWP a) z trzema tltmentami NAND i d\li'Otna ir1wer1erami, b) z c:zt«tma elementami NAND, Inny przykład stosowania symboli funktorów równoważnych przedstawiono na rys. 4.21, na którym jest pokazany układ reprezentujący formę Y = AB(C v f>E) v FG(R v J) v J K(LM v N v O) = AB(C v f>E) v (F v G)(R v J) v J(K: v NO(L v M)) Konstrukcja układu na podstawie przytoczonych reguł jest bardzo łatwa. Również czynność odwrotna, tj. określenie formy boolowskiej na podstawie 129 4. PODSTAWY TEORII UKlAOOW CYFROWYCH a b Rys. 4.20. Real.izacja funkcji XNOR (ALBO-NIE, ALBON) przy użyciu SWN 2) 1 trr.ema dcmcnti1mi Nl\NO i d""'Vm41 inwe.ncru.mi. b) .symbole logic;lllC kompani toru y L M K Rys. 4.21 Przykład w stosowania symboli funktorów wielopoziomowym równoważnych układzie układu z rys. 4.21, nie sprawia żadnych trudności nawet mało wprawnemu projektantowi. Kolejne poziomy na schemacie logicznym układu reprezentują na przemian funkcje NAND (IN) oraz Negative-OR (NUB), odpowiednio do zapisu danej formy boolowskiej. Jak ilustruje powyższy przykład, zadaną formę należy tak pr7-ekształcić, aby znaki negacji obejmowały tylko pojedyncze zmienne. Gdy pożądana jest realizacja funkcji przełączającej o postaci zanegowanej (>'), wówczas przyjmuje się bramkę wyjściową o symbolu NAND, a ponadto bramkę tę przyjmuje się jako reprezentującą umownie drugi (parzysty) poziom. Dalsze bramki określa się zgodnie z regułą 3. Tego rodzaju konfiguracja schematowa dla funkcji ji może być znaleziona dla każdego układu reprezenlującego funkcję y. Synteza układu logicznego realizującego funkcję ji odpowiada funkcji określonej przez zera na siatce Karnaugh. Symbole funktorów równoważnych stosuje się również w oparciu o symbole o kształcie zróżnicowanym, które zapewniają jeszcze lepszą czytelność schematu logicznego. 130 4.1. Ul<ŁAOY KOMBINACYJNE Do optymalizacji kombinacyjnych stosowane następuj ące kryteria: 1) 2) 3) 4) układów logicznych najczęściej są minimalna złożoność układowa, minimalne opóźnienie propagacji, minimalny koszt, maksymalna niezawodność. Kryterium I umożliwia realizację układu o minimalnej liczbie bramek, tzn. wykluczającego ewentualność budowy równoważnego logicznie układu o jeszcze mniejszej liczbie bramek. Jeśli mogą istnieć układy o tej samej liczbie bramek, to układem optymalnym jest ten, który zawiera bramki o najmniejszej sumarycznej liczbie wejść. Z praktycznego punktu widzenia wymaganie minima.1nej złożoności układowej jest jednak związane z liczbą użytych układów scalonych. Należy przy tym uwzględnić cechy strukturalne układów, gdyż z reguły jeden układ scalony małej skali ingracji zawiera cztery bramk i dwuwejściowe lub trzy bramki trzywejściowe, lub dwie bramki czterowejściowe, lub jedną bramkę ośmiowejściową. Kryterium 2 narzuca budowę układu logicznego o możliwie najmniejszej liczbie poziomów (równej najwyżej trzem), tj. o strukturze możliwie równoległej. Układ zrealizowany zgodnie z tym kryterium nie zawsze spełnia kryterium I. Natomiast kryterium 3. jest zawsze zbieżne z kryterium I. Kryteria 3 i 4 mogą być również przyjęte razem jako podstawa procesu optymalizacji. Ponieważ prowadzą one w przeciwne kierunki, optymalizacja układu sprowadza się do określenia racjonalnego kompromisu między minimalizacją kosztów a maksymalizacją niewwodności układu. Do projektowania logicznego układów cyfrowych, zwłaszcza o dużej złożoności (LSlfVLSI) stosuje się również specjalne metody, mające na celu zapewnienie poprawnego działania układów przy pewnych uszkodzeniach (fault-tolerant design) oraz zapewnienie odpowiedniej testowalności (1esiable logic design, design for testability). Pierwsza z nich opiera się na zasadzie wprowadzenia redundancji układowych lub/i kodów korekcyjnych aby wpewnić lepszą niezawodność pracy. Druga służy do takiego projektowania układów, aby zmniejszyć koszty ich testowania, gdyż przy wytwarzaniu złożonych układów scalonych koszty te mogą być dominujące. W praktyce, układy kombinacyjne są wykonywane ze scalonych bramek małej skali integracji tylko w bardzo prostych przypadkach, gdy stosowanie metod minimalizacyjnych jest również bardzo proste. Przy bardziej złożonych formach boolowskich, gdy liczba zmiennych nie jest większa od pięciu, można stosować multipleksery średniej skali integracji, które umożliwiają łatwą i tanią realizację układową form boolowskich przy prostych regułach minimalizacyjnych (p. 8.2.2). Przy złożonych formach powyżej pięciu zmiennych najbardziej celowe jest użycie programowalnych układów cyfrowych wielkiej skali integracji, 131 4. PODSTAWY TEORII UKŁAOOW CYFROWYCH takich jak PLO, CPLD, EPROM, EEPROM, FPLA, FPGA. Wymienione układy i ich stosowanie są omówione w rozdziałach 8 i 9. Zjawisko hazardu 4 .1 .6 Hazardem 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. Zjawisko hazardu może wystąpić wówczas, gdy choćby jeden sygnał jest przesyłany dwoma drogami o różnych opóźnieniach, prowadzącymi do jednej bramki. Na wyjściu tej bramki może powstać krótkotrwały impuls, wynikający a •• & Yo I ., ., ~1 y L_ I I I I..- - b X1 =X3 : 1 .,_J I I -I Y, I I 1' I r .:_i Y, -I F I I I 1' I I I Y, y Hazard statyczny c I -i • X;r X3 oo I 01 o 1 Rys. 4.22 11 10 1 n 1 ' 1 1- Występowanie a) pnyk~.ad o"''Y układ, c) si.iłk.a 132 ;.!.. Karnaugh impulsów hazardu statycznego b) pr.r.ebi-eji CU$0\1.'e opisująca daną formę: pri)· impulsowej :ani.anie. sygnalu x1, boolOW$tit 4.1. UKŁADY KOMBINACYJNE z różnicy tych opóźnień. Może on czasem spowodować mylne działanie dalszego układu. Na przykład, dla ukladu z rys. 4.22a, opisanego formą y = x 1 x 2 v x 2 x 3 , można wykreślić przebiegi czasowe pokazane na rys. 4.22b. Wskutek opÓŻ· niającego działania inwertera trzeciego poziomu, na wyjściu ukladu pojawia się krótki impuls, o szerokości odpowiadającej opóźnieniu t tego inwertera. W tym przypadku mówimy o hazardzie statycznym „w jedynkach", ponieważ za. kłócanym stanem prawidłowym na wyjściu y jest stan 1. Możliwość wystąpienia hazardu można w prostych przypadkach wykryć aa siatce Karnaugh, jeśli forma boolowska jest reprezentowana przez stykające się grupy, odpowiadające implikantom prostym. Stykanie się takich grup wskazuje na obecność hazardu. Aby uniknąć hazardu, należy wprowadzić dodatkową bramkę reprezentującą pozostały implikant Gak pokazano na rys. 4.22c linią przerywaną), mimo że jest to zbyteczne z punktu widzenia minimalizacji danej formy. Po wprowadzeniu dodatkowej bramki, zapewniającej y 4 = I przy x 1 = x 3 = I, impuls hazardu z przebiegu sygnalu y zostaje wyeliminowany. W układach wielopoziomowych można również zaobserwować zjawisko hazardu dynamicznego. Polega ono na pojawieniu się na wyjściu ukladu impulsu szpilkowego bezpośrednio po zmianie poziomów logicznych z O na I a lbo z I na O, co przypomina oscylacje w niedotłumionym liniowym układzie dynamicznym. Hazard dynamiczny może wystąpić, gdy choćby jeden sygnał jest przesyłany do wyjścia trzema drogami o różnych opóźnieniach. Sytuację taką przedstawiono na rys. 4.23, gdzie impuls hazardu statycznego „w zerach" sygnału y 4 przenosi się na wyjście y jako impuls hazardu dynamicznego. Układ z rysunku 4.23a odwzorowuje schematowo formę y = x 1 v (x 1 v x 2)(x1 v x 3 ), którą można sprowadzić przy użyciu siatki Karnaugh (rys. 4.23c) do postaci minimalnej y = x 1 v x 3 (rys. 4.23d). W tym układzie przy x 3 =O żadne zjawisko hazardu nie wystąpi. Jednak jeśli sygnały zmienią się jednocześnie w sposób pokazany na rys. 4.23e, to na wyjściu y pojawi się szpilka hazardu statycznego. Uogólniając powyższe przykłady można powiedzieć, że impulsy hazardowe mogą się pojawić na wyjściu układu kombinacyjnego, gdy: 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ści owych przechodzą one do wyjścia drogami o różnych opóźnieniach, układ zapewnia dla wszystkich sygnałów wejściowych drogi o jed· nakowych opóźnieniach, lecz sygnały te zm ieniają swe stany logiczne niejednocześnie. W układach wyłącznie kombinacyjnych impulsy hazardowe z reguły nie są niebezpieczne. Z uwagi na niezerowe czasy przelączeń fizycznych ukladów cyfrowych (równych dla układów elementarnych ok. t/ 2) impuls hazardowy 133 4. PODSTAWY' TEORII UKt.AD0W CYFROWYCH o c x, x, X3 x, 1 o X3 ;>1 1 y oo 01 11 10 I 1 1 1 1 1 b l<.2: )('l: „ o d x,~y ., ~ I I Y1 -it e Y2 x, _J Y3 Y, v, y I Rys. 4.13 a) Występowanie impulsów hazardu dynamicz.nego ullad. b) przebiegi czasowe przy impulsowej zmianie sygnału Xi. c) si.alka Karnaugb. d) uklad form~ uninimaliz.o~n~ . e) pn:c:biegi cusowe w układzie (d) prl)' jtdno<:lC$11Cj unU.nie sygBalów X1 i x1 przykłado...,y reali :tU.iłCY o teoretycznej szerokości 't w praktyce ma postać impulsu trójkątnego o szerokości odpowiednio mniejszej. Niebezpieczeństwo mylnego działania układu cyfrowego może natomiast powstać wówczas, gdy układ kombinacyjny współ­ pracuje lub wchodzi w skład układu sekwencyjnego asynchronicznego. Problem ten będzie opisany w p. 4.2.4. Układy generujące impulsy hazardowe są również celowo wykorzystywane w praktyce. Są to często stosowane układy detektorów początku i końca impulsu wejściowego. Do uzyskania impulsów wyjściowych o pożą­ danej szerokości zwiększa się opóźnienie jednego z torów sygnału wejścio­ wego przez połączen ie kaskadowe dodatkowych inwerterów lub bramek, jak pokazano na rys. 4.24, 4.25 i 4.26. Są to tzw. układy „logicznego różniczkowania". W układzie z rys. 4.26 przy zastosowaniu parzystej liczby inwerterów otrzymuje się dodatnie impulsy wyjściowe, natomiast przy liczbie nieparzystej otrzymuje się impulsy ujemne. Jeśli sygnał wejściowy jest w postaci symetrycznej fali prostokątnej, to układ ten stanowi prosty podwajacz czę­ stotliwości. Zamiast parzystej liczby inwerterów można zastosować prosty układ całkujący RC. 134 4. \ . VKt.AOY KOMBINACYJNE a „ ·---'D -QQtj-y -r 1' "" b X Rys. 4.U Detekto r narastającego zbocza in1pulsu 'A•ejściowego a) ul:lad, b) prr.cb.cgi a X r t cuso.,.,~ 1' T ----CHJ:-D:t]t---Y b X I I Y, y I n I w - Rys. 4.25 I Detektor opadającego I -!....i~ zbocza impulsu - ---.LJ 0 ~ T wejściowego a) akbd. b) prttblcp aawr•e T t 1'b · -- -- y b X Yo I I I I I I I I :-=i I y I I .!!....J w Rys. 4.16 Detektor obydwu zboczy impulsu •) układ. b) . . . - . . - 135 ~ W!_; wejściowego 4. PODSTAWY TEORII UKŁAOOW CYFROWYCH UKŁADY SEKWENCYJNE 4.2 Właściwości i sposoby opisu układów sekwencyjnych 4 .2.1 W odniesieniu do rysunku 4.1 reprezentującego układ cyfrowy jako „czarną skrzynkę", przypomnijmy, że stan wejść jest określony wektorem X = (x 1 ,x2 , .•• ,x.), x; E B, który może przyjmować wartości ze zbioru X , tj. XEX<;; B". Podobnie stan wyjść jest określony wektorem Y= (y1 ,y 2 , . •• ,y„). yE B, który może przyjmować wartości ze zbioru Y, tj. YE Y s;; B'". Pamiętanie stanów logicznych w układzie sekwencyjnym modeluje się przez określenie stanów Q1(i = I, 2, ... , k) elementów pamięciowych (przerzutników) układu, czyli stanu wew11ę1rz11ego, danego wektorem A= (Q,,Q 2 , •.• , QJ, Wektor ten Qe B może przyjmować wartości języka wewnętrznego ze zbiorów stanów wewnętrznych, czyli A AEA s;; 8 1 Zbiór A jest zwany również „alfabetem wewnętrznym" w odniesieniu do „liter" oznaczających stany A. Maksymalna liczba tych stanów w zbiorze A wynosi 21 = K (gdy A = B'). W uk ładach sekwencyjnych zwi11zki między stanami X, Yi A określa się w postaci dwóch funkcji. Pierwsia z nich określa dla wektorów A'. X' następny (tj. opóźn iony o pewien czas r)stan wewnętrzny A'+' i nosi nazwęfimkcji przejść fJ A'+' = b(A', X') Można je zapisać również prościej A'= b(A,X) Natomiast druga funkcja określa stan wyjść Yukladu i nosi nazwęfu11kcji wyjść i.. Funkcja ta jest funkcją przełączającą i może mieć postać opisującą tiw. aur omar Mealy'ego (rys. 4.27a) Y' = 2(A',X') lub opisującą automat Moore'a (rys. 4.27b), w którym stan wyjściowy Y' zależy w sposób jawny tylko od stanu wewnętrznego A' (zależność od X jest pośrednia, gdyż A zależy od X ) Y' = J.(A') Powyżsiy zapis oznacza, że Q1(i = 1,2, ..„k) wektora A, opisuje 136 każdą zmienną się równaniem: sra11u, czyli każdy element 4.2. U KŁADY SEKWENCYJNE a y b y Rys. 4.17 Podstawowe modele a) •~1o.na:t ~łuł)"'eso. układów sekwencyjnych: b) i;.utoma.t Moore·• QI= ó,(Q , ,Q2 ,„„Qk; x„x 2 ,„„x.) Każdą zmienną wyjściową Y;U = 1, 2, .„, 111) zapisuje się dla automatu Mealy'ego jako Y1 = l1(Q1>Qz,„„ Qk; x,,xz,.„,xJ a dla automatu Moore'a Y1 = l1(Q, • Qz„.„ Q.) Funkcje oi ). ukladu sekwencyjnego opisują się zatem układem równań o =(o ,, Óz, „„ó,) i 2 = (..l, ,.lz„„,J.,.) Automat, czyli model matematyczny układu sekwencyjnego, może być zatem opisany przez piątkę ( A, X, Y, ó, .l), przy czym funkcje wyj ść ;. w automacie Meały'ego i Moore'a w ogólnym przypadku różnią się od siebie, co zaznacza się czasem przez wprowadzenie dodatkowych oznaczeń (np. i. 1 i ).z). Przy braku pamięci układ sekwencyjny staje się kombinacyjnym, a funkcja ). staje się funkcją przełączającą tego układu. Jeśli zbiory A, X i Y są skończone, to tworzony przez nie automat określa się jako skończo11y. Z określenia i l jako funkcji wynika, że dany automat jest deterministyczny. Istnieją również automaty probabilistycz11e, w których operuje się prawdopodobieństwami stanów wewnętrznych A i stanów wyjść Y. Podobnie jak kody i funkcje przełączające, automat określa się jako zupe/11y, jeżeli dla wszystkich par (A, X ) ze zbioru A x X istnieją określone wartości funkcji i J.. W przeciwnym razie au1omat jest niezupełny. Blok realizujący funkcję ó stanowi blok pamięci, natomiast blok realizują­ cy funkcję ). jest układem kombinacyjnym. Jeśli blok ó rozbijemy w sposób pokazany na rys. 4.28 na dwa bloki: pierwszy(µ), zawierający wyłącznie zestaw elementów pamięciowych (przerzutników) czyli rejestr, oraz drugi (y), będący układem kombinacyjnym, przygotowuj:1cym sygnały dla bloku µ, to schemat blokowy automatu Mealy'ego można przekształcić do postaci pokazanej na rys. 4.28. W tym przypadku blok kombinacyjny jest utworzony z bloków y i 2. Wekto r W oznacza sian wzbudzeń elementów pamięci o o 137 4.. PODSTAWY TEORII UKŁADOW CYFROWYCH o A' I.. y• W 1:f(A1 ,X1) \ I ZE GARł C ) b Rys. 4.28 Modyfikacje struktury kwencyjnego : układu se- a) rozbicie: bloku 15 na czę:SC kombinac)'jR1 '/ i p11omię;ciow4 µ. b) integrac:.ja bloków kombinacy}nytb 7 i J.. S)'gtl.81 zegarowy (ZEGAR) V."")'Stwujc t)·lko w ZEGAR IC) W= (q 1 , q2 , .„, q1) , układach synchronicznych. qE B gdzie liczba I sygnałów wzbudze1i q pamięciowych (zwykle 2k ~ zależy od rodzaju użytych elementów I ~ k), przy czym We {W" W2 ,.„, WL} = W , L ~2 1 Zależnie od trybu pracy układy sekwencyjne dzieli się na układy asynchron iczne i synchroniczne. Układy asynchroniczne nie mają wejścia sterującego (synchronizuj ącego, zegarowego). Reagują one natychmiast na każdą zmianę stanu wejściowego X, a jakakolwiek zmiana stanów A lub Ymoże w tych układach wystąpić jedynie po zmianie stanu X. Każdy nowy stan wewnętrzny A'+' ustala się po niezerowym opóżnieniu czasowym r, wynikającym z niezerowych cz.asów propagacji w elementach, z których jest zbudowany dany układ. Zakładając, że opóżnienie czasowe jest zawarte tylko w bloku pamięciowym µ (rys. 4.28), można definicję funkcji /t podać w postaci A 1 + • = µ(W') łub łub A'= µ(W' -') krótko A'= µ(W) W tym przypadku blok µ zawiera wyłącznie przerzutniki bez wejścia sterującego (zegarowego), zwane asynchronicznymi. W układach asynchronicznych cały blok może być jednak układem kombinacyjnym, a funkcja pamięci może być wówczas uzyskana przez sprzężenie zwrotne, obejmujące ten blok. o 138 4.2. UKŁADY SEKWENCYJNE Opóźnienie czasowe elementów bloku wprowadza niezbędne przesumęc1e czasowe 't między wejściami i wyjściami bloku (tj. między „przyczyną" i „skutkiem"). W celu uzyskania funkcji pamięci blok ó musi zawierać nieliniowe elementy wzmacniające, objęte pokazanym na rysunku sprzężeniem zwrotnym. Sprzężenie zwrotne musi być dodatnie (zasada przerzutnika Eccles-Jordana). Układ asynchroniczny, podobnie jak opisany niżej układ synchroniczny, może być reprezentowany zarówno automatem Mealy'ego (rys. 4.27a, 4.28), jak i automatem Moore'a (rys. 4.27b). W układach asynchronicznych opóźnienia '• sygnałów Q,(i = I, 2 , ... , k) w wektorze A są, ogólnie biorąc, niejednakowe. Aby zapewnić jednoznaczność analizy, zakłada się, że w układach asynchronicznych nigdy nie występują ściśle jednoczesne zmiany sygnałów w wektorach A i X, tzn. przy każdorazowej zmianie stanu X i A zmienia się stan tylko jednego elementu w tych wektorach. Zmiana stanu X jest dopuszczalna tylko wtedy, gdy stan wewnętrzny automatu nie ulega zmianie, czyli jest stabilny (gdy A'+• = A'). W wyniku zmiany stanu X może się także pojawić jeden lub więcej stanów wewnętrznych niestabilnych (gdy A' +• i' A'), po których powinien nastąpić stan stabilny, chyba że układ pracuje w sposób regeneracyjny, powtarzając periodycznie określone sekwencje stanów (taki rodzaj pracy może być pożądany lub nie). Jeśli po zmianie stanu X nastąpiło p stanów niestabilnych a następnie stan stabilny, to łączny czas potrzebny do ustalenia się stanu stabilnego wynosi (p + l)r. Minimalny odstęp czasowy między sąsiednimi zmianami stanu X moż­ na zatem określić jako Tm > (Pmu + 1) 't gdzie Pmujest maksymalną liczbą stanów niestabilnych występujących w danym układzie przy przejściu z jednego stanu stabilnego do drugiego. Układy synchroniczne reagują na zmianę stanu wejściowego X tylko w dyskretnych chwilach czasowych, określonych przez zewnętrzny sygnał periodyczny, niewchodzący do wektora X i zwany sygnałem sterującym (zegarowym, synchronizującym, taktującym) C. Sygnał ten jest doprowadzony do bloku pamięciowego układu (ó lub µ) w sposób pokazany przykładowo na rys. 4.28. Każdy kolejny stan wewnętrzny w układzie synchronicznym jest wytwarzany synchronicznie z impulsami sterującymi i może być oznaczony liczbą naturalną, odpowiadającą zwiększającej się liczbie impulsów sterujących (zegara), liczonej od pewnego umownego zera lub umownej chwili t. W układach synchronicznych nie występują stany niestabilne. Kolejne stabilne stany wewnętrzne ustalają się w każdym takcie po opóźnieniu<, które musi być mniejsze niż odstęp T0 między kolejnymi impulsami sterującymi (okres zegara). Funkcję przej ścia układu synchronicznego zapisuje się w postaci podobnej do postaci dla układu asynchronicznego, z tą różnicą, że zamiast symbolu r wprowadza się cyfrę I, symbolizującą odległość czasową jednego okresu zegarowego 139 4. PODSTAWY TEORII U KŁAOOW CYFROWYCH A'+I = ó(A',X') lub lub krótko, tak samo jak dla A' = ó(A'- 1 ,x•- 1 i układu asynchronicznego: A'= ó(A,X) Dla układu z rys. 4.28b mamy A'+ 1 =µ(W') lub A' = µ(W' - 1) lub krótko A'= µ(W) Oznaczenie „I + l" nie jest formalnie najlepsze i dlatego dla umownego n i chwil i., i. + 1 stosuje się także w literaturze oznaczenia A" , A"+1 lub A., A.+ 1 . O ile w układach asynchronicznych stały stan logiczny (O lub I) na wejściu jest traktowany jako pojedynczy sygnał, to w układach synchronicznych taki stały stan logiczny na wejściu, trwający na N taktów zegara, traktuje się jako N kolejnych sygnałów. Jeżeli zatem w układzie sekwencyjnym występuje konieczność odróżniania sąsiednich w czasie, jednakowych stanów wejść (np. przekazywanych szeregowo), to układ ten musi być synchroniczny. Typowymi operacjami synchronicznymi są operacje obliczeniowe. Składają się one w ogólnym przypadku z sekwencji wielu synchronizowanych zegarem kroków, w których następuje odczyt informacji zawartej w układach pamięciowych (rejestrach), przetwarzanie jej w odpowiednich układach operacyjnych oraz wpisanie wyniku do innych (lub tych samych) rejestrów. Typowymi układami asynchronicznymi są niektóre układy automatyki przemysłowej, takie jak np. sterowniki dźwigowe i układy alarmowe. U kłady asynchroniczne są znacznie rzadziej stosowane w systemach cyfrowych niż układy synch roniczne. Główną tego przyczyną jest fakt, że w układach asynch ronicznych wskutek niejednakowych opóźnień elementów układu i jego różnych dróg sygnałowych występuje niebezpieczeństwo wystąpienia przejściowych i stabilnych n iepożądanych reakcji na zmianę stanu wejściowego. Zjawiska te określa się jako wyścigi i hazardy. Ich analiza i wprowadzenie odpowiednich środków zapobiegawczych są łatwe w prostych układach, lecz przy zwiększaniu złożoności układów analiza ta k bardzo się komplikuje, że radykalnym środkiem zaradczym jest wprowadzenie dyskretyzacji poszczególnych kroków realizowanej operacji, czyli zastosowanie układów synchronicznych. W układach tych wyścigi i hazardy nie występują, a ponadto synteza tych układów jest prostsza. Należy zauważyć, że każdy układ synchroniczny może być rozpatrywany jako asynchroniczny, jeśli sygnał sterujący zostanie włączony do wektora X . Niektóre układy asynchroniczne można również przedstawić jako synchroniczne, jeżeli jeden z sygnałów wejściowych wpływa na ustalen ie się stanów 140 4..2. UKŁADY wewnętrznych SEKWENCYJNE tak jak sygnał sterujący. Tego rodzaju konwersja jest korzystna, projektowanie. Układy synchroniczne określa się jako autonomiczne, jeżeli nie mają żadnych wejść x. Ogólnie biorąc, uk łady asynchroniczne mogą w dwojaki sposób reagować na sygnały wejściowe. Jeśli układ reaguje bezpośrednio na stan wejściowy X, czyli poziomy fizyczne sygnałów wejściowych, to układ taki określa się jako statyczny. Jeżeli natomiast układ reaguje na zmiany stanu X, oznaczane symbolicznie X'- 1/X', to układ nazywamy dynamicznym. w tym przypadku tylko zmiana sygnału wejściowego ze stanu O na I (0/ 1) jest interpretowana jako x = 1 (lub x = O, zależnie od przyjętej konwencji). Ponieważ zmiana ta jest w realnych układach krótkotrwała, oznacza to, ie stany X są „widziane" przez układ wyłącznie w postaci krótkotrwałych impulsów szpilkowych, występują­ cych w czasie zmian stanów wejściowych. Układ statyczny o 11 sygnałach wejściowych ma N = 2" możliwych stanów X . Natomiast w układzie dynamicznym, jeśli założymy, że przy zmianie stanu X zmienia się tylko jeden sygnał x, to po każdym stanie xr- t może nastąpić n różnych stanów X ', czyli istnieje N4 = n2" wejściowych stanów dynamicznych x•- 1;x•. Oznacza to, że przy tej samej liczbie wejść układy dynamiczne mogą zapewnić większe możliwości sterowania niż statyczne, a lbo że przy tych samych możliwościach operacyjnych układy dynamiczne mogą mieć mniej wejść i prostszą budowę niż statyczne. Podział na układy statyczne i dynamiczne jest również stosowany w odniesieniu do układów synchronicznych, dla których określenia „statyczny" i „dynamiczny" dotyczą reakcji układu na sygnał sterujący. Synchroniczny układ statyczny jest określany jako ,,sterowany (wyzwalany) poziomem'', natomiast synchroniczny układ dynamiczny jako „sterowany (wyzwalany) zboczem". Istnieją również układy sterowane (wyzwalane) impulsem, co oznacza pewne połączenie sterowania poziomem i zboczem (p. 4.2.2). Każdy układ sekwencyjny można zaprojektować jako automat Mealy'ego lub Moore'a. Nie zawsze można przewidzieć, która struktura jest prostsza realizacyjnie. Dlatego w celu znalezienia prostszego rozwiązania często jest wymagane sprawdzenie obydwu postaci. Opis zewnętrzny (końcówkowy, funkcjonalny) układu sekwencyjnego wiąże ze sobą przebiegi sygnałów wejściowych z odpowiednimi przebiegami sygnałów wyjściowych. Nie umożliwia to jeszcze pełnego określenia struktury układu, gdyż znajomość zbiorów X i Y jest niewystarczająca (zbiór A i funkcje ó i A. pozostają nieznane). Określenie minimalnego zbioru A oraz najprostszych funkcji ó i A. staje się zatem zadaniem syntezy układu sekwencyjnego. Naturalnym opisem zewnętrznym jest opis słowny, mimo że w wielu przypadkach jest on zbyt mało precyzyjny. Opis ten jest często stosowany do formułowania założeń projektowych lub funkcjonalnych układu. Dość często, zwłaszcza w układach asynchronicznych, stosuje się opis zewnętrzny w postaci ułatwia 141 4. PODSTAWY TEORII UKŁADOWCYFROWYCH x, x, Rys. 4.29 y Przykład wykresu czasowego sygnałów zewnętrznych układu sekwencyjnego wykresu czasowego przebiegów sygnałów X i Y, co umożliwia jasne określenie zależności czasowych między tymi sygnałami. Przykład takiego wykresu jest podany na rys. 4.29. Często stosowane dodatkowe strzałki wskazują na wzajemną zależność (przyczynę i skutek) zmian stanów. Jeżeli takim samym stanom X odpowiadają różne stany Y, to oznacza że układ jest sekwencyjny. Inną formę opisu zewnętrznego, równoważną wykresowi czasowemu, stanowią przyporządkowane sobie ciągi zerojedynkowe sygnałów X i Y, które przedstawia się w postaci tablicy. Opis pełny układu sekwencyjnego określa wszystkie elementy piątki ( A, X, Y, 2). W tym celu stosuje się opis graficzny w postaci grafu zorientowanego z etykietą (zwanego grafem przejść i wyjśc), tablice przejść i wyjść (stanowiące odpowiednik grafów) oraz macierze przejść i wyjść. Jeżeli zmiany stanów A nie następują w momentach określonych przez dyskretną skalę czasu (tj. przebieg zegara), to znaczy że dany układ jest asynchroniczny. Konstrukcję grafów i tablic przejść i wyjść zilustrowano przykładami z rys. 4.30, gdzie (a) odpowiada automatowi Mealy'ego, a (b) innemu automatowi Moore'a. W obydwu przypadkach wierzchołki grafów są oznaczone (zaetykietowanc) symbolami stanów A. W układzie Mealy'ego gałęzie grafu są opisane przez parę symboli stanów (X, Y). W układzie Moore'a gałęzie grafu są oznaczone symbolami stanów X, natomiast stan wyjść Yprzypisuje się wierzchoł.kom grafu, gdyż w tym układzie zależą one tylko od stanów A. Tablica przejść opisuje funkcję czyli każdej obecnej parze stanów (A, X) przyporządkowuje następny („nowy", „przyszły") stan A, oznaczany krótko symbolem A'. Tablica wyjść ilustruje funkcję 2. Dla układu Mealy'ego stanowi ona odrębną tablicę, natomiast w układzie Moore'a jest ona scalona z tablicą przejść, tworząc tablicę przejść i wyjść. Z dwóch tablic układu Mealy'ego można również utworzyć jedną tablicę przejść i wyjść, jeżeli każdej kratce tablicy przeporządkuje się dwa stany: A i Y. Tablicę przejść i wyjść układu Moore'a można łatwo przetworzyć w tablicę równoważnego układu Mealy'ego, jeżeli stany Y wprowadzi się do wewnątrz tablicy przejść, jak pokazano na rys. 4.30b. Jeśli oznaczymy funkcję o, o, 142 4.2. UKlAOY SEKWENCYJN E o AX AX Xt x, A, Az At Az A3 Az Grot + A3 Az A, A przejść i wyjść x, x, At v, v, Az v, v, A3 Yz v, - X A x, Xt At Az'/2 Ai.Y2 A, A1,Y3 A1,Y1 A, A1,Y2 A,,Y, y Tablico A', Y Tablico przej ść. Tobtica wyjŚĆ prz~~ć i Wyj'SC b x, Xz AX Xt Xz x, At Az A, A3 Az A, At Az y v, v, A3 A, A3 A, Yt A Xz Rys. 4.30 Przyklady 1.1kłlld Meal)"cgo, b) A' .Y' To~\;~o przejść i WYJSC okładu Moore'o Graf prze)ść i wyJść :k) A3 AhY2 A'l1Y1 A2,Y2 pełnego opisu układu Moore'a przejŚĆ i wyjść rownowożnego Tablico uk !lldu Meotyego sekwencyjnego w poscaci symbolicznej układ wyjść układu Mealy'ego przez A. 1 (A',X') = Y' i funkcję wyjść układu Moore'a przez A. 2 (A') = Y', to wykorzystując funkcję przejść A'+ '= o(A',X') w postaci A' = o(A' - 1 , x•- 1) otrzymujemy 22(A') = .l,(o(A' - 1 ,x'- 1)) = A.t(A' - 1 ,x'- 1) = Y' czyli y•+• = 2T(A',X') lub krócej Y' = .l.1(A,X) gdzie .l! jest funkcją wyjść równoważnego układu Mealy'ego. Oznacza to, że stany wyjść tak określonego układu pojawiają się jeden takt później niż w definicyjnym układzie Mealy'ego. Konwersja tablicy przejść i wyjść układu Mealy'ego w równoważną zewnętrznie tablicę Moore'a jest bardziej złożona, gdyż każdemu stanowi 143 4, PODSTAWY TEORII UKlAOOW CYFROWYCH A tablicy Mealy'ego trzeba przyporządkować tyle stanów a równoważnej tablicy Moore'a, ile różnych stanów Y było w nim skojarzonych w tablicy Mealy'ego. W tym celu zazwyczaj buduje się tablicę pośrednią, w której każdej parze (A, Y) przyporządkowuje się pewien stan a z nowego zbioru A, odpowiadającego tablicy Moore'a. Przedstawiono to na przykładzie z rys. 4.31. Tabl.ica Mealy'ego (a) z rys. 4.31a jest przekształcona w tablicę pośrednią (b), a następnie zgodnie z procedurą wskazaną liniami przerywanymi w tablicę Moore'a (c). o AX A, x, x, A2,Y2 A, .Y2 Az A„ Y3 A, Az,Y1 A2.Y2 A1 , Y3 b A x, x, At Az.Yz p,,,,v, ~~ ~ A3,Y3 Az,V, Az A1 c '>co:: ><o; Az 1Y2 Ai,Y3 /,(, /o'. x, x, A y v, v, 03 a, Os v, o, o, o, v, o, 03 a, a, a, a, o, o, o, Y3 Rys. 4.31 Konwersja przykładowej tablicy p rz.eJSC Mealy'ego (a) w równoważną tablicę (c) przy użyciu tablicy pośredniej (b) Powyższe przykłady układu układu 1 wyJSC Moore'a oparte były na zbiorach X, A , Y określonych w postaci symbolicznej. Jeżeli natomiast symbolicznym elementom tych zbiorów zostaną przyporządkowane odpowiednie stany zerojedynkowe, to grafy i tablice przejść i wyjść można przedstawić w postaci zakodowanej, jak pokazano na przykładach z rys. 4.32 (odpowiadających rys. 4.30). Do opisu małych układów sekwencyjnych, zwłaszcza przerzutników, stosuje się także tablice funkcyjne , stanowiące odpowiedniki tablic stanów w układach kombinacyjnych. Tablica funkcyjna w wygodny do interpretacji sposób przyporządkowuje każdemu stanowi wejść X' e X w chwili t odpowiedni stan wyjść y• +• w chwili (t + t), względnie y •+ 1 w chwili (t + I), przy czym stan wyjść wyrażany jest nie tylko przez stany logiczne (O, !) lub poziomy (L, H), lecz 144 4.2. UKŁADY SEKWENCYJNE o X ={0.11 . A=[00.01,10j , Y ={10,11.01) o 11 ,10 X A 1.01 b A o 1 oo 01 oo 01 10 01 x ={00.11.101 A ={10.11.ool X 1 11 oo 11 o 01 01 10 10 01 oo 10 11 01 A y v . {1.0] oo 10 AX oo 11 10 y 10 11 10 oo o 11 oo 10 11 o oo oo Rys. 4.32 Prżyklady a) u.kl.;id Mealy'ego. b) 10 oo 11 1 z rys. 4.30 w postaci zakodowanej układ Moore'a także przez „poprzednie" stany wyjść Y'. W tablicach funkcyjnych kolejność zapisu poszczególnych stanów X ' nie ma żadnego znaczenia i najczęściej uszeregowuje się je zgodnie z tablicą kodu NB. Podstawowe układy sekwencyjne: przerzutniki. Symbole graficzne 4.2.2 Przerzutnikami nazywamy układy sekwencyjne Moore'a, które mają jednobitowy stan wewnętrzny, identyczny ze stanem wyjściowym: A = Q = Y, A = Y = B oraz stan wejściowy równy stanowi wzbudzeń: X = W Stan logiczny przerzutnika jest równoważny stanowi wyjścia (Q). Mówimy, że przerzutnik jest elementarnym automatem dwustanowym, gdyż Qe{O, l}. Gdy przerzutnik znajduje się w jednym z tych dwóch stanów, wykluczających się wzajemnie, wówczas zmiana stanu przerzutnika może nastąpić jedynie w wyniku podania na jego wejścia nowych informacji (lub wyłączenia zasilania). 145 4, PODSTAWY TEORII UKŁAOOW CYFROWYCH o. ~ (W) X:\'/ { .'' ? f Zegor (CI--- Cm Y:O vdi Rys. 4.33 Ogólny symbol przerzutnika Symbolem graficznym przerzutnika - zgodnie z zaleceniami IEC (Pub!. 617-12) - jest prostokąt lub kwadrat (rys. 4.33). Przerzutnik ma pewnę liczbę wejść (przynajmniej dwa) i wyjść Gedno lub dwa). Mogą być następujące wejścia: informacyjne X (oznaczane zależnie od typu przerzutnika symbolami S, R, J, K, D, 1) i sterujące (wyzwalające) C, tradycyjnie określane jako zegarowe i oznaczane w literaturze także symbolami CP, CK, CLK lub po prostu CLOCK - zegar. Wyjścia Y stanowią zwykle komplementarną parę (Q, Qi. Tak jak wszystkie układy sekwencyjne, przerzutniki dzieli się na asynchroniczne (bez odrębnego wejścia sterującego C) i synchroniczne (z wejściem sterującym C). Jeśli jednak sygnał sterujący włączymy do stanu wejściowego X, to przerzutnik synchroniczny może być uważany za asynchroniczny. Dlatego można powiedzieć, że wszystkie przerzutniki mogą być określane jako układy asynchroniczne. W dalszej treści będzie jednak utrzymany podział przerzutników na asynchroniczne i synchroniczne. Na rysunku 4.33 przedstawiono ogólny symbol przerzutnika. Litery a ...f oznaczają wejścia informacyjne, a litera m stanowi rezultat stosowania notacji zależnościowej od wejścia sterującego C, występującej oczywiście tylko w przerzutnikach synchronicznych. Literę tę w danym typie przerzutnika zastępuje się liczbą (np. I lub 2), którą umieszcza się również przed określonym symbolem wejścia informacyjnego (np. zamiast a piszemy 1D lub zamiast b piszemy 2K). Oznacza to, że stany wewnętrzne tak oznac-~onych wejść informacyjnych wpływają na działanie przerzutnika tylko przy stanie wewnętrznym C = 1, natomiast przy stanie wewnętrznym C = Ostany te nie mają żadnego wpływu na działanie przerzutnika. Wejścia informacyjne, które są związane taką notacją zależnościową z wejściem sterującym C, określa się jako synchroniczne. Pozostałe wejścia informacyjne są wejściami asynchronicznymi. Do opisu właściwości logicznych przerzutników wykorzystuje się wiele sposobów. Do podstawowych z nich należą tablice przejść, tablice funkcyjne, tablice wzbudzeń i funkcje przejść (równania funkcyjne). Poza tym są stosowane także grafy przejść i wykresy czasowe. Tablica przejść i tablica funkcyjna ilustrują w różny sposób tę samą zależność Q' = o(Q, W). Przy opisywaniu konkretnych układów scalonych tablice funkcyjne (zwane także tablicami prawdy) są zazwyczaj przedstawiane przy użyciu poziomów fizycznych L, H (zamiast stanów logicznych O, l), a na symbolach graficznych stosuje się wskaźniki polaryzacji (SWP, p. 4.1.4). Tablica wzbudzeń przedstawia zbiór stanów wzbudzeń W potrzebnych do uzyskania 146 •~. U KLA.OYSEICWENCVJ NE czterech możliwych zmian stanu Q _, Q'. Równanie funkcyjne przerzutnika przedstawia funkcję przejść Q' = .S(Q, W) jako formę boolowską. Istnieją cztery zasadnicze typy przerzutników: SR, O, J K i T. Będą one omówione niżej jako układy asynchroniczne i synchroniczne. Podane przykłady budowy nie są jedyne; w szczególności układy zbudowane z bramek NAND (ł N) można zbudować także z bramek NOR (LUN). 4.2.2.1 Przerzutniki asynchroniczne Najprostszym przerzutnikiem asynchronicznym jest statyczny przerzutnik SR (Set-Reset) o budowie pokazanej na rys. 4.34a. Aby go odróżnić od synchronicznego statycznego przerzutnika SR, są stosowane także w literaturze oznaczenia sr lub wz, odpowiednio do zmienionych symboli sygnałów wejściowych. Jest stosowane także oznaczenie RS. a b s--JSl-a R--Li-P d c $łon 0 SR logiezrWe zo!!:.ooiony '\,.li!!l.,...Wl!,-!-11!...,-!1.IL, o o o 1 1 o - 1•1 I s R a· o o Q o 1 o 1 1 o 1 1 1 p' p 1 o o o 1 - Stan l<>gicznie zobron1ony a e o-o· s R o o o X o 1 1 o 1 o o 1 1 I • o SR •10 01 x - stan O lub 1 Rys. 4.34 Pnerzutnik a.synchroniczny statyczny SR a) budowa • ~ I) NOR (LUN). b) .,..boi _..1n;1:a, <) 1&blica pntjić. d) l&blica l\mkyJU. •) Qblico ,,.r pncjlt 147 4 PODSTAWY TEORII UICtADOW CYFROWYCH Stany wewnętrzne i zewnętrzne wejść S, R są jednakowe (rys. 4.32b). Zmiany stanów przerzutnika są wywołane wprowadzeniem na odpowiednie wejścia stanu logicznego 1, zgodnie z tablicą przejść (rys. 4.34c). Przerzutnik ten może zmieniać stan tylko wówczas, gdy S = R. Przy SR = 00 przerzutnik pozostaje w stanie„nie zmienionym" czyli Q' = Qi odpowiednio P' = P. Stan ten zależy od tego, które z wejść było „ostatnio" w stanie I, tzn. czy przed stanem SR =OO był stan Ol czy 10. Stan SR = 11 jest logicznie zabroniony, gdyż od przerzutników wymaga się, aby na ich wyjściach zawsze były komplementarne stany logiczne. Oznacza to, że w przerzutniku SR powinien być spełniony warunek S · R = O. Jak widać z tablicy funkcyjnej (rys. 4.34d) przy SR = 11 otrzymuje się Q' P' Oi dlatego w przerzutniku SR drugie wyjście oznacza się nie symbolem Q, lecz innym (P). ~isując równania opisujące bramki NOR z rys. 4.34a w postaci Q' R v P i P S v Q otrzymujemy równanie funkcyjne przerzutnika SR: = = = = Q' = R(S v Q) spełnianiu które przy warunku S · R = O można o uprościć: b ~ s-<fSl--o Jl--4!_j-p c d SR~ logicznie zo broniony 01 11 10 1 o oo o I - I o o I o t s ł• t R Cl P' , 1 o o o 1 1 o I o o 1 I 1 o p Stan - l o~icznit zabroniony rt e o- o· ~ R o o 1 • o 1 o 1 1 o 1 o 1 I X 10 1 Rys. 4.JJ Przerzutnik asynchroniczny statyczny SR a) budowa 1 bnmc.k NAND OJrl). b) 'Ylnbo1 pnwtUlftik.t. c) cablica prttjit., d) cablic:a - 148 o .,.r pnqll tllftk~ e) tablica 4.2. U~ŁAOY SEICWENCYJNE Q' = R(S v Q) v SR = S v QR W podobny sposób można opisać działanie przerzutnika SR wykonanego z dwóch bramek NAND (rys. 4.35a). Dla zaznaczenia, że przerzutnik ten zmienia stan w odpowiedzi na stan O sygnałów S lub g, na schemacie z rys. 4.35a zastosowano symbole równoważne bramek NAND. Stany wewnętrzne i zewnęt­ rzne wejść S, R nie są już jednakowe i stanowią swe dopełnienia (rys. 4.35b). Równanie funkcyjne tak zdefiniowanego przerzutnika SR otrzymuje się w tej samej postaci co poprzednio: Q'=S V QV R=SV QR gdyż warunek „ustawienia" (set) przerzutnika pozostaje taki sam (Q = I gdy S = I i R = O). Jeżeli przerzutnik reaguje wyłącznie na zmiany stanów wejściowych (zbocza impulsów wejściowych), to jest on przerzutnikiem dynamicznym. Najprostszą realizację tej zasady stanowi dodanie na wejścia przerzutnika statycz- o •Ucc Przerzutnik stotyczny SR , - - - ---1 R, JL c I so--ł o o ·n o d o '.n : l.\. JL c t Ro--ł I R, c L-- - - b R R O I __ J +Uce ...rL c So--ł u. ...rL c R o--ł R R O Rys. 4.36 Przerzutniki asynchroniczne dynamiczne a) budow~ przeriutn.ił:a SR, b) &)'mboł przerzutnikn SR. c) budowt1 pm:rt1.1ln1k1t Uw-.1g;i: ponieważ: n.1 "">epc;i;u;h Ulłi()S()warUt OO'J\3C;i:eń 149 poka'lltn)'ł;h ukl:idów open1jc s~ poiłomam.i SWP, Cl.}'łi ti6jkącik6 w zamiast k6łecicl(. SR. d) 3)'mbol prtt:r-tulnika SR rr,yctnymi . ....1;·lścl wtte byi<>by 4. PODSTAWY TEORII UKŁA00W CVFAOWYCH nego prostych układów różniczkujących RC, jak pokazano na rys. 4.36. W ten sposób otrzymuje się asynchroniczne dynamiczne przerzutniki SR i SR. Dzielniki napięcia R 1- R 2 w przerzutniku dynamicznym SR (rys. 4.36a) dobiera się tak, aby napięcie na wejściach przerzutnika statycznego było równe typowemu napięciu wyjściowemu tych bramek na poziomie niskim (UL). Zapewnia to pewne wyzwalanie przerzutnika impulsami dostarczanymi z innych układów scalonych z tej samej klasy co użyte bramki. Podobnie w przerzutniku dynamicznym SR z rys. 4.36b dzielniki napięcia R 3 - R4 projektuje się tak, aby napięcie na wejściach przerzutnika statycznego było równe typowemu napięciu wyjściowemu tych bramek na poziomie wysokim (U8 ). Jak widać, przerzutnik asynchroniczny dynamiczny SR reaguje tylko na zbocza narastające impulsów wejściowych, a przerzutnik asynchroniczny dynamiczny SR tylko na zbocza opadające impulsów wejściowych. Układy takie okazują się w praktyce bardzo użyteczne. Ich działanie logiczne opisuje się tymi samymi tablicami i grafami jak dla przerzutników statycznych, jeśli sygnały na wejściach składowych przerzutników statycznych przyjmiemy w postaci krótkich impulsów szpilkowych, odpowiadających aktywnym zboczom na wejściach przerzutników dynamicznych. W przerzutniku dynamicznym SR będą to szpilki dodatnie, a w przerzutniku dynamicznym SR ujemne. Z uwagi na znikomą możliwość niespełnienia warunku S · R = O w przerzutniku dynamicznym SR oraz warunku S v R = 1 w przerzutniku dynamicznym SR, obydwa wyjścia tych przerzutników oznacza się komplementarnie (Q, Q). Przerzutniki synchroniczne Istnieją następujące 4 .2.2 .2 typy przerzutników synchronicznych: JK, SR, D i T. Zależnie od sposobu wyzwalania, wyróżnia się (według normy IEC 617-12) cztery rodzaje takich przerzutników (rys. 4.37): a) zatrzaskowe (latch), b) wyzwalane zboczem (edge-triggered), c) wyzwalane impulsem (pulse-triggered), d) z blokadą danych (data-lock-out). Dwa z nich (rys. 4.37cd) mają wejścia dynamiczne, oznaczone trójkącikami. Wejście dynamiczne interpretuje się w ten sposób, że związany z nim stan wewnętrzny (w tym przypadku C) jest przejściowo równy 1 tylko podczas zmiany stanu wewnętrznego: z O na I Geśli wejście to jest bez wskaźnika negacji) lub z 1 na O Geśli wejście ma wskaźnik negacji). W każdym innym czasie stan wewnętrzny na wejściu dynamicznym jest równy O. W symbolu przerzutnika z blokadą danych jest wprowadzony symbol opóźnionego wyjścia „-..,", który oznacza, że zmiana stanu przerzutnika jest wstrzymana do momentu, gdy sygnał inicjujący zmianę (C) osiągnie początkowy stan zewnętrzny. Do prawidłowego działania wszystkich przerzutników (z wyjątkiem zatrzaskowego) wymaga się, 150 4.2. UKŁADY SEKWENCYJNE o c Rys. 4.37 Oznaczenie sposobu steruj ącego C działania sygnału a) sterowanie statyctDC w prunutnikach n tnas.ko· wych. d b b) $lero~nje impulsowt- w pmrzutnikacb wyZW*lanych impulstm, c) mrowa.nie dynamiczne w pmrzutmk;a.c;h „yzwalanfcb lbocum. d) sterowanie d)mmkwe w pqrn.ut.n.ikach z blok~d~ dany(:h o b c ~=fl-: R~Q & Rys. 4.38 Przerzutnik zatrzaskowy SR a) budowa. b) żeby ~ymbole stan wewnętrzny każdego wejścia związanego z wejściem C nie zmieniał się w czasie gdy C = I. Budowa zatrzaskowego przerzutnika SR jest pokazana na rys. 4.38a. Sygnały wejściowe tego przerzutnika są przenoszone (z negacją) przez bramki wejściowe tylko przy stanie sygnału sterującego C = l i wówczas przerzutnik ten opisuje się takimi samymi tablicami jak przerzutnik asynclironiczny statyczny SR z rys. 4.35. Przy C = Ostan Q przerzutnika synchronicznego nie zależy jednak od stanów wejściowych S, R, natomiast jego wartość (O lub I) określa się z podanego wcześniej równania funkcyjnego Q' = ~(S v Q), gdzie wartość stanów S, R i Q odnoszą się do chwili zmiany stanu sygnału zegarowego Cz I na O(oznacza się to symbolicznie jako C = 1/0 lub C = !). Oznacza to, że w chwili C = 1/0 stan Q zostaje trwale zapamiętany, co odpowiada „zatrzaśnięciu" informacji wejściowej (stąd nazwa przerzutnika). Jeżeli w tym układzie wejście R zostanie połączone poprzez inwerter z wejściem S, to otrzymany układ określa się jako zatrzaskowy przerzumik D (rys. 4.39). Zasadniczą funkcją układu jest przenoszenie stanów sygnału z wejścia D na wyjście Q w czasie trwania impulsu zegarowego (tj. przy C = I) oraz, przy C = O, przechowywanie tego stanu, który istniał na wejściu D w chwili, gdy C = 1/0. Odpowiada temu równanie funkcyjne przerzutnika D: 151 4. POD$TAVłY TEORII U Kt.AOOW CVFROWYCH b o-fl-: c--h_j,-a c d OD o o o 1 o 1 1 1 e f a-o o o o o o 1 1 o o 1 1 0• 1 1 o 1 Rys. 4.39 Przen:ulnik zatrzaskowy a) budowa b) symbole, c) &abłilCI pr:rcjłić, d) ta bl ~ funkcyjna, c) Lablica ~bud;,ei\ , o ir1r pnc;K Q' =D Oczywiście przenoszenie sianu D na wyjście Q przy C = 1 jest czynnością rrywialną. nie wymagającą funkcji pamięci. Istotna jest naromiast czyn ność zapamiętywania stanu D w chwili C = 1/0 na leoretycznie dowolnie długi czas, przy którym C = O (rys. 4.40). Podobnie jak w poprzednim przerzutniku, przypomina to czynność ,,zatrzaskiwania" informacji wejściowej przy C = ł/O i dlatego przerzutnik ten nazywa się zatrzaskowym lub po prostu ,,zatrzaskiem" (late/i). Literę D w nazwie zazwyczaj się opuszcza, gdyż poprzedni typ przerzutnika (zatrzaskowy SR) jest stosowany bardzo rzadko jako odrębny układ. Natomiast zespoły (czwórki i ósemki) przerzutników zatrzaskowych D są wykonywane w licrnych odmianach jako układy scalone do typowych za. stosowań jako małe pamięci pośredniczące (buforowe). Prostszą budowę przerzurnika zatrzaskowego przedstawiono na rys. 4.41. Przerzutnik JK różni się zasadniczo tym od przerzutnika SR, że wykorzystuje zabroniony poprzednio stan wejść równy 1 do uzyskania sta nu wyjścia Q' = {2. Klasyczny przykład to przerz utnik J K wyzwalany impulsem. Jest to układ wykorqstujący obydwa zbocza impulsu sterującego do zmiany stanu przerzur- 152 4.2. UKŁADY SEKWENCYJNE o c _J t/ Zatrzask Zatrzask ''i.___,--v L- - 1.>....> Q R ys. 4.40. Przykładowe przebiegi czasowe, ilustrująre dzialanie pnerzu1nika za1rzaskowcgo (strzałkami oznaczono wocza •.za1rzaskująre" sygnalu C) Rys. 4.41 Prostsza budowa przerzulnika zatrzaskowego takiego przerzutnika stanowi użycie dwóch kaskadowo zatrzaskowych przerzutników SR w sposób pokazany na rys. 4.42a. W układzie tym przerzutnik M pełni funkcję „pana" (Master), a przerzut· nik S „sługi" (Slave). Stąd też pochodzi zwyczajowa angielska nazwa tego przerzutnika: Master-Slave, w skrócie M-S. Dzięki temu, że sygnał sterujący C blokuje bramki I, 2 przy C = O albo bramki 3, 4 przy C = I, nie istnieje możliwość powstania oscylacji wskutek sprzężenia zwrotnego. Przebiegi czasowe w tym układzie przy J = K = 1 są podane na rys. 4.42b, zaś kolejne operacje nika. Prostą realizację połączonych, są następujące: izolacja układu M od S (zablokowanie bramek 3, 4), wprowadzenie informacji wejściowej do układu M (tylko jedna z bramek I, 2 może być otwarta wskutek sprzężenia zwrotnego z wyjść Q, Q), 3) izolacja układu M od wejścia (zablokowanie bramek I, 2), 4) przeniesienie informacji z układu M („pana") do S („sługi"). Aby zapewnić taką kolejność operacji, bramki 1 + 4 i inwerter I muszą być odpowiednio zaprojektowane. Można jednak układ przerzutnika JK wyzwalanego impulsem zrealizować prościej, jak pokazano na rys. 4.43, gdzie nie są wymagane specjalnie projektowane bramki. Zwiększenie możliwości układu osiąga się przez wyposażenie przerzutnika w dodatkowe wejścia asynchroniczne: ustawiające S i zerujące R, które umożliwiają zmianę stanu przerzutnika niezależnie od stanu na wejściu sterują­ cym C (rys. 4.44). Jest to w istocie połączenie przerzutnika synchronicznego JK wyzwalanego impulsem i przerzutnika asynchronicznego statycznego SR. Równanie funkcyjne przerzutnika JK ma postać I) 2) Q' = JQv KQ 153 4. PODSTAWY TEORII UKŁAOOW CYFROWYCH o M s s ) s c R K b o ij J•K •1 c1--~2 O-- I I V a:.=::::\,__-t--~ Q c C JUJ Cl Q K 1K O e In l l Q oo 01 11 o o o 1 1 1 o o J łn.1 a· o· o o o o o 1 o 1 1 o 1 o 1 1 il o J K K 10 1 1 a o-a· o o o o 1 1 X 1 o X 1 1 1 X o K X R ys. 4.42 Przerzutnik JK wyzwalany impulsem a) zasada budowy, g JK~1 0,11 01.11 154 b} przebiegi czasowe przy J = K = 1, <:) s)·mbol grafia.n)-. d) 1ab!K.:.1 pm:jść. e) 1ablica funkqjna, f) cablica "'7.buduń, g) graf pn.ejSC 4.2. UKlAOY SEKWENCYJNE 1-1---00 c .,..-+--oii ~~ Rys. 4.43 Prostszy układ przerzutnika JK wyzwalanego impulsem o so-~~~~~~~~~~~~~~ co-- b s J c K li -, a -, o Rys. 4.44 Przerzutnik JK wyzwalany impulsem, z dodatkowym i zerującym R) wejściem asynchronicznym (ustawiającym S a) schemat Jogieiny. b) symb<>I grafiCVlY Schematy logiczne scalonych przerzutników JK wyzwalanych impulsem mają nieco inną budowę, co wynika z użytych technologii. Działanie tych układów, widziane na końcówkach, jest logicznie jednak takie samo, jak układów z rys. 4.42, 4.43 i 4.44. Pewną wadą przerzutnika JK wyzwalanego impulsem jest warunek, aby stany na wejściach J , K nie ulegały zmianie podczas impulsu sterującego (gdy stan wewnętrzny C = I), gdyż w przeciwnym razie działanie przerzutnika może być nieprawidłowe. Oznacza to podatność przerzutników wyzwalanych impulsem na zakłócenia sygnałów J, K , pojawiające się przy C = I. Wady tej nie mają przerzutniki wyzwalane zboczem, w których wprowadzenie danych z wejść informacyjnych i odpowiednia zmiana stanu wyjść następuje synchronicznie 155 4. PODSTAWY TEORII UKLAOOW CYFROWYCH z jednym zboczem impulsu sterującego. W przerzutniku JK wyzwalanym zboczem zmiany stanów J , K podczas trwania impulsu sterującego są już dopuszczalne. Należy podkreślić, że w przerzutniku wyzwalanym zboczem podczas trwania impulsu sterującego jest stan wewnętrzny C = O. Budowa przerzutników wyzwalanych zboczem wykorzystuje podstawowy układ zatrzaskowy przerzutnika SR, pokazanego na rys. 4.38. Przez wprowadzenie dodatkowych bramek i sprzężeń otrzymuje się układ przerzutnika SR wyzwalanego zboczem, zawierający 8 bramek NAND i 2 inwertery (rys. 4.45). Układ ten ustala stany wyjściowe Q, Q odpowiednio do stanów wejściowych S, R i zgodnie z tablicą przejść z rys. 4.35c, lecz synchronicznie z narastającym zboczem impulsu sterującego. b SBS C R Cl IR o 0 Rys. 4.45 Przerzutnik SR wyzwalany zboczem a) tu.adowa, b) $)'ml>ol Pokazany układ przerzutnika SR wyzwalanego zboczem może być łatwo w uniwersalny przerzutnik JK wyzwalany zboczem, przez zastąpienie inwerterów wejściowych bramkami NAND. Sygnał S zastępuje się przez JQ, a sygnał R przez KQ (rys. 4.46). Przerzutniki wyzwalane zboczem są niezastąpi one w tych zastosowaniach, gdzie stany na wejściach informacyjnych nie mogą być utrzymywane przekształcony 156 4.2. U KLAOY $f:l(WENCYJNE o KO--+--l b ' JBJ C K C1 1K o O c J K c _J C1 Q _J Rys. 4.46. Przcnutnik JK wyzwalany zboczem • ) bi,Jdo.,.... b) ł)1Dbol et pmbiqi cz;uo• -e bez wiiany w czasie trwania impulsu sterującego. Uklad przerzutoika SR wyzwalanego zboczem może być uproszczony w takich zastosowaniach, gdzie występują wylącznie komplementarne stany wejściowe (S = R), czyli wyeliminowany jest stan wejściowy S = R = O (stan S = R = I jest zabroniony na mocy definicji przerzutnika SR). Wówczas układ przerzutnika SR z rys. 4.45 może być uproszczony do postaci pokazanej na rys. 4.47. Stąd można łatwo otrzymać schemat przerzutnika D wyzwalanego zboczem (rys. 4.48). 157 4. PODSTAWY TEORII UKtADOW CYFROWYCH s co--.... Rys. 4.47 Budowa przerzutnika SR wyzwalanego zbocum i działającego prawidłowo, jeśli spełni ony jest warunek S = R c o c Cl b ono C Cl ---'----L-----L---~ o il Rys. 4.48. Przerzutnik O wyzwalany zboczem a) txado-.-.. b) qmbol, c} pn.ebtegj a.uowe Jest on opisany tymi samymi tablicami co przerzutnik zatrzaskowy z rys. 4.39, z jedną różnicą. W układzie z rys. 4.39 zatrzask następował przy zmianie stanu wewnętrznego C = 1/0, a przy C = I każda zmiana stanu D przenosiła się na wyjście, natomiast w przerzutniku wyzwalanym zboczem wpisanie i ,,zatrzaś­ nięcie" informacji z wejścia D następuje momentalnie przy zmianie stanu 158 4.2. UKŁADY SEKWENCYJNE zewnętrznego z O na l (gdy stan wewnętrzny C = !) i poza tym przerzutnik nie reaguje na zmiany stanu wejściowego D. Jeśli stan na wejściu D ustala się krótko po „wpisującym" zboczu impulsu sterującego, to takie działanie przerzutnika D reprezentuje funkcję opóźnienia, gdyż stan ten zostanie przeniesiony na wyjście Q dopiero synchronicznie z następnym „wpisującym" zboczem impulsu sterującego. Jeśli sygnał sterujący jest okresowym sygnałem zegarowym, to odpowiada to opóźnieniu bliskiemu okresu zegara. Stąd też pochodzi symbol D (delay). Podobnie wygodne w zastosowaniach są przerzutniki z blokadą danych na wejściach informacyjnych. Blokada ta dopuszcza zmiany stanów na tych wejściach podczas impulsu sterującego (gdy C = I). Wpisywanie danych z wejść informacyjnych następuje w tych przerzutnikach tak samo jak w przerzutnikach wyzwalanych zboczem, lecz odpowiednie zmiany na wyjściach następują dopiero po powrocie sygnału sterującego do początkowego stanu zewnętrznego (tak jak w przerzutnikach wyzwalanych impulsem). Przerzutnik D można łatwo przekształcić w asynchroniczny przerzut11ik T, jeśli wejście D zostanie połączone z Q, a wejście sterujące C oznaczy się symbolem T. Jest to układ bistabilny, dzielący częstotliwość impulsów podawanych na wejście Tprzez dwa i dlatego określany jako „dwójka licząca" (rys. 4.49a). Ten sam wynik można otrzymać stosując przerzutnik JK (rys. 4.49b, c). o b C stan 1 lJ T T T Q Cl K Rys. 4.49. Asynchroniczny pr7.erzutnik T a)otrcymany i pn..en.ulnika O W)'i\\'a.lanego zboCllem., b) otrzyman)' l pmnutnika JK "")'l"''aJaoego 'lbocwn, c) Inny sposób wył:()l".l::)1łan ia pn,trtutnik.a JK Synchroniczny przerzutnik T można otrzymać z przerzutnika JK przez zwarcie wejść JK w jedno, oznaczone symbolem T(rys. 4.50). Dlatego też nie wytwarza się przerzutników T jako odrębnych układów scalonych. Tablica przejść, tablica funkcyjna i tablica wzbudzeń przerzutnika T stanowią oczywiście części odpowiednich tablic przerzutnika JK (rys. 4.42). Równanie funkcyjne przerzutnika T otrzymuje się z równania przerzutnika JK podstawiając J = K = T Q' = 7Qv 7Q = TffiQ Przyrównując prawe strony równań funkcyjnych różnych przerzutników można uzyskać konwersję jednego przerzutnika w drugi. Na przykład, przyrów- 159 4. PODSTAWY TEORII UKLADOW CYFROWYCH o T=aJOTBO b C C C1 1K ~ Cl Q i) e d c t o o 1 1 o a 1 a-0 T o o o 1 t. łn .1 o a' o a , 1 1 o 1 o 1 1 o T , Rys. 4.50 Prurzu1nik T a) _ .y z pmnucnika •) t>.blica - o IK. b) 'Y'"bol. c) 1abloao ...,.;;<. d) tablioa f..U,jna. · I) .,., pn<jlt b r - - - - - - ----, : o.r ea : I r --- - - - --- .-, I O D I I =1 T•D@O li 1T o C o~----pC I L---- - - - - -...J Rys. 4.51 Konwersja a} pnemitnił: między T ueatizo• ·a11y pn)' przerzutnikami T i D pomocy prurz.utnib O. b) odwrocnie nując równania przerzutnika T i przerzutnika D otrzymujemy D = Wynikające stąd możliwości zilustrowano na rys. 4.51. Metody syntezy układów sekwencyjnych re Q. 4.2.3 Zadanie syntezy układu sekwencyjnego polega na określeniu takiej struktury układu, który przy znanym pocz.1tkowym stanie wewnętrznym A i zadanym ciągu X stanów wejściowych generuje pożądany ciąg Ystanów wyjściowych. Zadanie to można rozwiązywać w różny sposób. Tak zwane klasyczne metody syntezy, sformułowane m.in. przez D. A. Huffmana, G. H. Mealy'ego i E. F. Moore'a wykorzystują elementarne układy logiczne,jakimi są bramki i przerzutniki. Stosowanie tych metod jest praktycznie ograniczone do liczby zmiennych wejściowych nie większej od trzech i liczby stanów wewnętrznych nie większej od ośmiu, gdyż "ręczne" projektowanie przy większych liczbach zmiennych wejściowych i stanów wewnętrznych jest bardzo uciążliwe. Liczby te można nieco zwiększyć po zastosowaniu technik dekom- 160 ł.2. UKt.AOY SEXWENCYJNE pozycji (podzjału układu na mniejsze części, które są łatwiejsze w projektowaniu) lub/ i przy projektowaniu wspomaganym komputerem. Najczęściej jest to jednak niecelowe, gdyż w praktyce wytwarza się już wiele typów scalonych układów cyfrowych o dużej złożoności (średniej i wielkiej skali integracji) i bazowanie na układach wyłącznie elementarnych (malej skali integracji) byłoby nieopłacalne i techniczn ie przestarzałe. Dlatego też często s tosuje się inne, bardziej efektyw ne metody, wykorzystujące bardziej złożone układy cyfrowe jako „cegiełki ". Uklady scalone tego rodzaju określa się jako bloki f unkcjonalne lub moduły. Syn tezę układu cyfrowego złożonego z takich bloków funkcjonalnych wykonuje się zazwyczaj metodą mikroprogramowania, poprzez określenie wszystkich elementarnych operacji w projektowanym układzie. Poniżej będą krótko omówione klasyczne metody syntezy. Zasady mikroprogramowania będą przedstawione w rozdz. 9, po omówieniu bloków funkcjonalnych (rozdz. 8). D o syntezy układu sekwencyjnego niezbędne są informacje o żądanych właściwościach funkcjonalnych układu, czyli jego opis zew11ętrz11y, wyróżniający wszystkie możliwe stany stabilne układu. Stany te są określone przez różne pary (X, Y) zewnętrznych stanów stabilnych, czyli odpowiadają stabilnym stanom wewnętrznym (pamięci A) układu. Jak już napisano wcześniej (str. 142), stosuje się następujące formy opisu zewnętrznego: a) wykresy czasowe lub ciągi zerojedynkowe dla przebiegów stanów X i Y, z wprowadzonymi numerami wszystkich możliwych i różniących się od siebie stanów stabilnych (X, Y), b) grafy przejść i wyjść. Opis (a) stosuje się najczęściej dla układów asynchronicznych, a opis (b) dla układów synchronicznych, o ile rodzaj układu (asynchroniczny lub synchroniczny) może być określony już na etapie formułowania założeń dla projektowanego układu. Kolejne czynności w procesie syntezy są następujące: I. Przedstawienie właściwości funkcjonalnych układu w formie tablicy przejść i wyjść. Jeżeli układ jest układem asynchronicznym, w którym występują stany niestabilne, to opisuje się go pierwotną tablicą przej.M i wyj.fć. Liczba kolumn tej tablicy jest równa liczbie stanów wejściowych X, a liczba wierszy jest równa liczbie różnych stanów stabilnych (X, Y) układu, przy czym każdy wiersz tablicy odpowiada numerowi stanu pamięci i zawiera tylko jeden stan stabil ny. Pierwotna tablica przejść i wyjść opisuje automat Moore'a. 2. Minimalizacja liczby stanów wewnętrznych, czyli redukcja tablicy przejść i wyjść, w celu otrzymania minimalnej liczby potrzebnych elementów pamięciowych. Jeżeli właściwości 161 funkcjonalne układu są już opisane tablicą przejść 4. PODSTAWY TEORII UKlAD0W CYFAOWVCH i wyjść w wyniku czynności (I), to znaczy, że jest określony automat „pierwotny" Mp = ( A p, X , Y, .l.p). Minimalizacja polega na poszu kiwaniu aut.omaiu 111i11ima/11ego MM= ( A„, X , Y, óM, )."), speł­ niającego dwa warunki: a) jego liczby stanów wewnętrznych (ii„) nie można zmniejszyć, b) automaty M i M"' dzialają runkcjonalnie (końcówkowo) tak samo, tj. w odpowiedzi na ciąg wejściowy 5l obydwa generują identyczne ciągi wyjściowe Y(wszędzie tam, gdzie stany są określone). Kodowanie stanów tablicy przejść i wyjść. Stany wejść (X) i wyjść (Y) są zwykle określone dwój kowo w fazie formułowania pierwotnego opisu układu. Czynność kodowania ogranicza się zatem do przyporządkowania wszystkim symbolicznym stanom wewnętrznym A odpowiednich wektorów (Q 1 , Q,, ... , Q,) o elementach zerojedynkowych (Qe B), czyli określen ia fonkcji różnowartościowej o,„ „ 3. x :A _, B' Przy kodowaniu w stanów wewnętrznych przy o k bitach wymaga się spełnienia nierówności użyciu bloku pamięci k ~ IV~ 2' Przy w = k otrzymuje się kodowanie liniowe w kodzie pierścieniowym „ I z k", rozrzutne ze względu na liC'lbę bitów pamięci, lecz upraszczające w układzie Moore'a budowę bloku wyjściowego A., który realizuje wówczas wyłącznie runkcje OR. Częściej stosowane jest kodowanie dwójkowe w kodzie N B łub Graya, w którym minimalna wartość k wynika ze związku 2' 1 < w~2' Są to najprostsze koncepcyjnie i użyt kowo sposoby kodowania, stosowane powszechnie w układach sy11chro11icz11ych. Istnieją również inne sposoby, które umożliwiają w układach synchronicznych uproszczenie budowy bloku wzbudzeń lub/ i bloku wyjściowego. W szczególnym przypadku blok wyjściowy). w układzie Moore'a może być całk owicie wyeliminowany, jeśli dobierzemy k = m oraz kod pamięci identyczny z zadanym kodem wyjść (w ten sposób budowane są m.in. układy łic-lników). 4. W ukladach asynchro11icznych kodowanie wykonuje się w ten sposób, aby wyeliminować możliwość wystąpienia tzw. wyścigów krytycznych. Ok reślenie struktury bloku przejść (ó) i bloku wyjść (A.). Czynność ta polega najpierw na wyborze struktury bloku pamięci. W układach asynchronicznych może on być zrealizowany przez blok kombinacyjny, objęty dodatnim sprzężeniem zwrotnym lub przez zespół 162 4.2. UKŁADY SEKWENCYJNE przerzutników asynchronicznych SR lub SR. W układach synchronicznych blok pamięci jest tworzony wyłącznie z przerzutników synchronicznych (SR, JK , D, T). Zadanie syntezy sprowadza się do określenia kombinacyjnych funkcji wzbudzeń W (rys. 4.28) i funkcji wyjść )~ z jednoczesnym zapewnieniem w układach asynchronicznych braku zjawiska hazardu (p. 4.1.6), zwlaszcza w bloku wzbudzeń (y). Po okreś­ leniu tych funkcji wykonuje się syntezę ukladową przy użyciu teoretycznie dowolnych elementów systemu funkcjonalnie pelnego, na przyklad elementów NAND lub NO R. Synteza układów asynchronicznych 4.2.4 Przedstawione w tym rozdziale metody syntezy dotyczą układów asynchronicznych statycznych. Układy asynchroniczne dynamiczne mają zwykle strukturę prostszą niż statyczne, ale są bardziej wrażliwe na zakłócenia. Określenie i pierwotnej tablicy wyjść Pierwotną tablicę przejść przejść 4.2.4.1 i wyjść ukladu można otrzymać różnymi sposobami, od formy opisu zewnętrznego i rodzaju układu. Opis zewnętrzny powinien określać wszystkie możliwe różne stany stabilne układu, a także sekwencje wymagające pamiętania Jeśli układ jest opisany wykresami czasowymi, w praktyce o ograniczonej długości, to może się zdarzyć, że nie obejmują one wszystkich możliwych sytuacji, jakie w rzeczywistości mogą powstać. To samo dotyczy ciągów zerojedynkowych. Na przykład, gdy projektowany układ ma reagować na sekwencję x, x 2 = OL-00-01-00-10 (czyli wyróżniać sytuację, gdy impuls sygnału x 1 następuje po dwóch kolejnych impnlsach x 2 ), to każdy z tych impulsów i dzielących je przerw (OO) trzeba oznaczyć innym numerem stanu pamięci, mimo występowania jednakowych stanów (X, Y). Rozważmy układ o dwóch wejściach i jednym wyjściu (rys. 4.52a), nie wyróżniający żadnych specjalnych sekwencji X i opisany wykresami czasowymi (rys. 4.52b), na których można wyróżnić 7 stanów stabilnych. Równoważne opisy w postaci ciągów zerojedynkowych i grafu automatu Moore'a są pokazane na rys. 4.52c, d. Pierwotną tablicę przejść i wyjść tego u kładu ilustruje rys. 4.52e. Liczba jej kolumn jest równa liczbie różnych stanów wejściowych X, a liczba wierszy jest równa liczbie stanów stabilnych układu. Do takiej tablicy wpisujemy najpierw stany stabilne (w kółeczkach): a więc stan CD ma miejsce przy x 1 x 2 = 11 i A = I itd., jak łatwo zauważyć na poprzednich formach opisu zewnętrznego. Następnie wpisujemy stany niestabilne, występujące krótkotrwałe wówczas, gdy zmienił się już stan wejść X, lecz stan wewnętrzny A jeszcze się nie zmienił. Przykładowo, gdy zależnie 163 • . PODSTAWY TEORII U ICŁADOW CYFROWYCH o I I ytL~~~~~~-'-~~:~~~~~~--'~.-1 c A 1 ., 2 1 1 1 1 d X, y 1 o o o 1 o 7 o 1 1 1 1 1 2 3 o o o o o o o 4 1 6 1 1 1 1 1 s o 1 3 o o s o 1 1 1 1 1 1 1 6 4 1 o 1 f e ' z oo 1 2 3 - 01 11 10 y CD o 7 2 - 1 ® o ® s - 4 1 3 3 - 6 5 3 ® 6 - 1 s ® 4 1 4 6 - 7 3 ® 1 © - o A',Y 164 1 A (1,2,7) oo y 01 11 10 o b{2)@@ o 13.4,5,6 1b @@@ @ A',V Rys. 4.5:1 Przykład ( I) pocZ11tkowych etapów syntezy układu asynchronicznego •) .mem.a bloli:o-y. b) „yt_n:sy ~t. c) dui zerojcdynko„-c. cl) gn.f automara btoorc·a. .-...'Otm tabbca ~ i •')jłt. t) uechat Q"l"an3 tablia pntjif i ...,)ić c) 4.2. UKŁADY SEKWENCYJN E przy A = <D stan X zmieni się z 11 na Ol , to będzie to odpowiadać stanowi 7. Kolejnym krokiem jest wykrycie stanów nieokreślonych, występujących przy jed11oczes11e.i zmianie dwóch (lub ogólnie biorąc, więcej) sygnałów wejściowych . Ponieważ zmiana z Il na OO może wystąpić (wskutek nieuniknionych, lecz nieznanych opóźnień w układzie) albo na drodze 11 -01 -00 albo 11 -10-00, zatem stan OO jest w tym przypadku nieokreślony. Dlatego w wierszu I na pozycji x 1 x 2 = Owpisujemy kreskę, oznaczającą nieokreśloność. Podobnie postępujemy w pozostałych wierszach. Jeśli teraz w tablicy są jeszcze puste kratki, to oznacza, że opis zewnętrzny nie obejmuje wszystkich teoretycznie możliwych stanów stabilnych układu, których liczba wynosi 2•+m (bez uwzględ nienia ewent ual nych sekwencji wymagających pamiętania). Jeśli pewne stany zostały pominięte celowo Gak w naszym przykładzie stan 8 odpowiadający x 1 x 2 = OO i y = O), to można wprowadzić do pustej kratki numer stanu stabilnego, występujący przy danej zmianie stanu X i zanegowanym sygnale wyjściowym. W naszym przykładzie występuje to przy X = OO i A = 4,7, gdzie został wpisany numer 3. Innym rozwiązaniem jest wprowadzenie numeru stanu występującego tylko niestabilnie (8). Jeśli układ wyróżnia pewne sekwencje X wymagające pamiętania, to numery stanów niestabilnych wynikają wprost z opisu tych sekwencji. Uustruje to przykład układu opisanego na rys. 4.53, gdzie stan y = I występuje tylko przy stanie x 1 = I, następującym po dwóch kolejnych impulsach x 2 = I. Pomimo, że w ukladzie występują tylko 4 różne stany stabilne (x 1 x 2 y = 000, 010, 100, 101), to należało wprowadzić dodatkowe 3 stany do zapamiętania sekwencji generującej y = I. Redukcja pierwotnej tablicy i wyjść przejść 4.2.4.2 Zmniejszenie liczby stanów wewnętrtnych, ujętych w pierwotnej tablicy przejść i wyjść, można osiągnąć przez łączenie wierszy, czyli zamianę dwóch wierszy jednym, o ile spełnione są określone warunki. Podstawowym wanmkiemjest oczywiś­ cie całkowite spełnien ie wymagań funkcjonalnych (końcówkowych), wynikają­ cych z opisu zewnętrznego danego układu. Jeżeli w wyn ik u takiego postępo­ wania minimalizacyjnego ot rzyma się tablicę, w której liczby stanów wewnętrz­ nych już nie można zmniejszyć, to znaczy, że opisuje ona automat minimalny. W celu ułatwien.ia opisu minimalizacj i wprowadzone zostaną pewne nowe określenia, zbieżne z podanymi w (9, 10]: 1. D wa stany wewnętrzne lub sygnały są niesprzeczne, gdy są jednakowe lub gdy choćby jeden z nich jest nieokreślony (oznaczony kreską w tablicy). Relację niesprzeczności (o symbolu ~.która jest zwrotna i symetryczna, definiuje się równoważnością (<p ~y) '°"' (<p = y) V(<p = X) 165 4, POOSTAWV TEORII UKLA00W CYFROWYCH o Xż V 1 t t 2 3 456767 r1 r1 6 r i1 7 2 3 4 3 t r i1 t 1 6 r1 , r, r 2 1 r , rh r1 r1 I 1 b c d X1Xz A 1 2 3 4 5 6 7 OO y 01 11 10 - - o o 4 ® - o 4 3 - 5 o 6 - - ® 1 ©1 - 7 o 6 - - 0 o 2 1 @ 3 - X 7 oo 1 2 2 @ ł 3-4 )3 16·7 ) 4 5 0 1 11 10 - o 4 o -5 o - © o - ® 1 <D 3 0® ©1 4 - - A,V Rys. 4.53 Przy kład (2) a) wykresy ciasowc, b)gr;if pm:jSć i wyjść i "''>i*• c) ' A,V etapów syntezy pierwo1na t.abJjca pntjść układu i wyjść. asynchronicznego d) zredukowana krzyżyk tabłic;i ( x) jest symbolem nieokreśloności. Na przykład A 3 ~(x), Y4 = !Oxx ~ x OO x = Y6 Dwa stabilne stany wewnętrzne A 1, A 1 są pseudorównoważne, jeśli występują przy tym samym X, mają niesprzeczne stany wyjściowe f i ich stany następne są dla każdego X niesprzeczne lub pseudorównoważne. Pseudorównoważność oznacza się symbolem „~" i stąd, zgodnie z powygdzie 2. początkowych prl.Cj~ V ższą definicją, (A,~ A;l-3 [ó(A, , X) = A1=ó(A;,X) = A;] AV [..t(A,,X) ~ X X ~.ł(Ai, X)] i\ V {[ó(A,, X) ~ó(A,, X)] V [ó(A,, X)~ ó(A,,X)]} X 166 4.2. UKŁADY SEKWENCYJNE Dwa wiersze pierwotnej tablicy przejść i wyjść mogą być zastąpione jednym, jeśli: zawierają one stany pseudorównoważne, lub dla każdego X zawierają one pary stanów niesprzecznych, niezależnie od stanu wyjść Y. W pierwszym przypadku jeden z wierszy można skreślić (zwykle ten o większym numerze), natomiast w drugim przypadku wiersze można połączyć w jeden wiersz o dwóch stanach stabi lnych. W podobny sposób można postępować z większą liczbą wierszy, o ile spełniają one wymienione warunki. Przy łączeniu wierszy zawierających stany pseudorównoważne warunek niesprzeczności stanów następnych jest latwy do sprawdzenia, nato· miast warunek pseudorównoważności stanów następnych jest nieco trudniejszy. Można jednak zauważyć, że sprowadza się on do badania innych stanów stabilnych, znajdujących się w jednej kolumnie, pod kątem pseu dorównoważności. Możliwe są takie przypadki pseudorównoważności warunkowanej wzajemnie przez dwie lub więcej par stanów, na przykład we fragmencie tablicy gdzie stany 1,2 i 3,4 są parami pseudorównoważne, czyli mogą być zastąpione stanami (l,2) i (3,4). Jeśli łączy się wiersze zawierające stany pseudorównoważne, lub gdy w przypadku (2) łączy się wiersze o niesprzecznych stanach wyjść Y, to otrzymuje się zredukowaną tablicę układu Moore'a. Można także łączyć wiersze zawierają­ ce pary stanów niesprzecznych, lecz o sprzecznych stanach wyjść, otrzymując w ten sposób tablicę przejść i wyj ść układu Mealy'ego. Zwykle ta tablica jest mniejsza od poprzedniej, lecz nie musi to oznaczać większej prostoty całego układu, gdyż blok funkcji J.(A, X) w układzie Mealy'ego jest generalnie bardziej złożony niż blok funkcji l.(A) w układzie Moore'a. Przykłady redukcji pierwotnych tablic przejść i wyjść są pokazane na rys. 4.52fi 4.53d. Na drugim z nich wprowadzono nowe oznaczenie stanu 3 (wynikającego z połączenia stanów 3 i 4 w tablicy pierwotnej) i podobnie nowe oznaczenie stanu 4. W procesie minimalizacji są stosowane także wykresy redukqjne i tablice trójkątne, które są przydatne zwłaszcza wówczas, gdy istnienie stanów pseudorównoważnych zależy od spełnienia warunku pseudorównoważności stanów następnych. Tablice te będą omówione w p. 4.2.5.2. 167 4. PODSTAWY TEORII UKŁAOOW CYFROWYCH Kodowanie stanów wewnętrznych 4.2 .4 .3 Poprawność działania układów asynchronicznych bardzo zależy od przyjętego sposobu kodowania, ze względu na możliwość wystąpienia tzw. wy.foigów krytycznych. Zjawisko wyścigów ma miejsce wówczas, gdy przy przejściu ze stanu obecnego A, do stanu następnego A1 w zapisach tych stanów zmieniają się przynajmniej dwa bity jednocześnie. W przykładowej tablicy pokazanej na rys. 4.54 zjawisko wyścigu występuje w kolumnie X I i X 2 · w pierwszej z nich, przy przejściu o(A4, X ,) = = A2 =o(I0 ,00) =Ol zmiana stanu A = Q, Q2 z JO na Ol oznacza zmianę obydwu bitów A jednoc-leśnie. Wskutek niezerowej różnicy opóźnień na drogach Q,: l -+O i Q2 : O-+ I mogą w czasie tej zmiany wystąpić stany przejściowe OO i I I. Jak widać z tablicy, obydwa te stany prowadzą jednak do jednego stanu stabilnego A 2 =Ol. Wyścig, który po obydwu stanach przejściowych kończy się jednakowym stanem stabilnym, ma nazwę wyścigu niekrytycznego. Nie narusza on poprawnej pracy układu, jeśli chodzi o jego stany stabilne. Wyścig, który występuje w kolumnie zawierającej tylko jeden stan stabilny, jest zawsze wyścigiem niekrytycznym. o X=)C1 xz X1 X2 X3 X4 A,o,o, '--~oo~_.:0~1c__.:1.!_1-~10!..._ Az,01 Al: 11 A4 ~ 1 0 O', O" b o, Rys. 4.54 Przykład (3) zredukowanej tablicy zjawisko wyścigu i oscylacji (a) oraz odpowiadający jej graf pr7.ejść (b) przejść o, 168 i wyjść. ilustruj ący 4.2, UKt.AOY SEKWENCYJNe W kolumnie X 2 obserwujemy wyścig krytyczny, gdyż przy przeJsc1u ó(A 3 , X 2) = A , <=>ó(l l.01) ~ OO zmiana A z 11 na OO może generować stany przejściowe IO i Ol , które prowadzą do ró.lnych stanów stabilnych. Stanem prawidłowym jest stan A 2 = Ol (na zasadzie idealnego przejścia A : 11 - OO, a dalej 00->0l - @),natomiast stan A 4 - IO jest stanem błędnym. Wyścig krytyczny może wystąpić wówczas, gdy w danej kolumnie jest więcej niż jeden stan stabilny i zmiana A występuje na więcej niż jednym bicie. Jeżeli w danej ko lumnie obserwujemy przejście między przynajmniej dwoma stanami niestabilnymi, przy czym kolejne (sąsiednie) stany A różnią się tylko jednym bitem, to takie przejście określa się jako cykliczne. Obserwujemy je w tablicy z rys. 4.54, w kolumnie X 3 . Można zauważyć, że działanie układu będzie szybsze, jeśli w kratce A4 , X 3 wpiszemy zamiast stanu OO stan 11. Oznacza to zastąpienie przejścia cyklicznego przejściem pojedynczym do stanu stabilnego 11 . W kolumnie X 4 wyst\)puje wyścig niekrytyczny, gdyż zawiera ona tylko jeden stan stabilny. Jednaki e, je7..eli przy dwu bitowej zmianie ó(A 4 , X 4 ) = A 1 występuje stan przejściowy A 3 , to wówczas nastąpi odtworzenie stanu A4 , następnie znowu A 3 itd., czyli nastąpi proces regeneracyjny (oscylacja). Zjawisko to jest równie niepożądane jak wyścig krytyczny. Kod owanie przy użyciu grafu przejść Sytuacje występujące przy kodowaniu moi.na, przy niewielkiej liczbie stanów A, łatwo zilustrować graficznie za pomocą grafii przejść. opisującego wszystkie występujące w tablicy przejścia li między stanami A. Przy k = 2 graf przejść opiera się na strukturze kwadratu, a przy k - 3 na st rukturze sześcianu. Punkty (węzły) grafu przejść oznacza się sym bolami stanów, występujących w zredukowanej tablicy przejść (stan wyjść jest w tym przypadku zbędny) i każde przejście ó(A,, X) = A1 oznacza połączenie linią punktów A,, A 1 (strzałki nie są konieczne). Jeżeli do kodowania kolejnych stanów A przyjmiemy dwójkowy kod Graya, charakteryzujący się jednobitowymi zmianami kolejnych liczb dwójkowych, to wszystkie połączenia punktów grafu, nie będące przekątnymi, odpowiadają jednobitowym zmianom stan ów A (są to tzw. linie cykliczne). Oznacza to brak możliwości wystąpienia wyścigów, zarówno krytycznych jak i niekrytycznych. Dlatego wymaga się, aby kodowanie tablicy przejść odpowiadało grafowi przejść bez przekątnych. Jeżeli w grafie takie przekątne występują, to często okazuje się, że trzeba wprowadzać dodatkowe stany A, co odpowiada zwiększeniu tablicy przejść, czyli czynność odwrotną do wykonanej poprzednio redukcji. Zwykle nie wywołuje to zwiększenia liczby k sygnałów Q. Ogólnie, jeżeli k ;;, p, gdzie p jest maksymalną liczbą linii wychodzących z jednego punkiu na grafie przejść, to zawsze istnieje sposób kodowan ia zapewniający brak zjawiska wyścigu krytycznego. Przy k < p tej gwarancji nie 169 4. PODSTAWY TEORII UIClAOOWCYFROWYCH ma, lecz nie oznacza to, że taka możliwość nie istnieje, gdyż wyścig może być niekrytyczny. Postać grafu przejść dla tablicy z rys. 4.54a jest pokazana na rys. 4.54b. Występowanie dwóch przekątnych wskazuje od razu na obecność wyścigów, przy czym k = 2 i p = 3, czyli k < p. Ponieważ występuje wyścig krytyczny i w grafie nie ma „wolnych» linii cyklicznych, które mogłyby zastąpić przekątne, należałoby zwiększyć liczbę k do trzech i zastąpić przekątne odpowiednimi przejściami cyk licznymi. Bliższa analiza tablicy pokazuje, że jest jednak prostsza możliwość. W kolumnie X 2 wyścig krytyczny można wyeliminować przez zastąpienie w kratce (A 3 , X 2) stanu A 1 = OO stanem A 2 = 01. Można tak zrobić, gdyż: stan A2 jest następnikiem A 1 w tej kolumnie (X 2 ), tak że stanem stabilnym będzie A 2 zgodnie z lablicą, stan A 2 jest stanem sąsiednim A 1 na grafie przejść, działanie układu w odniesieniu do stanów stabilnych pozostaje prawidłowe. usunięta została przekątna A 3 -A 1 . W podobny sposób można zrobić poprawkę w kolumnie X 4 , gdzie grozi oscylacja. Przez zastąpienie w kratce (A 4 , X 4 ) stanu A 2 = 0 1 stanem A 1 =OO procesy przejściowe w kolumnie X 4 zawsze kończą się stanem stabilnym A 1 . Należy zauważyć, że przekątna A4 - A 2 pozostaje, ale wynikający z niej wyścig w kolumnie X 1 jest niekrytyczny. Kodowanie tablicy przejść z przykładu z rys. 4.53d jest pokazane na rys. 4.55ab. W tym przypadku k = 3 i p = 3, czyli kodowanie bez wyścigów krytycznych jest zagwarantowane. Trzeba w tym celu wprowadzić trzy dodatkowe stany A (bez zwiększania liczby k), aby przekątne zastąpić przejściami W len sposób a b a,a,a 3 X 1 X2 oo 01 11 ooo oo 1, <® 7 a, @' 0 11' 0 11 <0 @])' 0 10 ([j]) 001 101 100 'ooo - - - - - - - - 1 10 '010 11 1 a, Rys. 4.55 Kodowanie tablicy przejść 2 a) par pm:j&C. b) iakodowana tablica piujit 170 - rys. 4.53d 10 - OlO W • 1 101 (7) 0 10 . 2 . 111161 11 o· 3 @ ' @:!]) 5 1 10 6 100 7 ooo 8 y o o o o 1 :;--1 o o 4.2. UKlAOY SEKWENCYJNE cyklicznymi, jak pokazują linie przerywane na rys. 4.55a. W trzech najwyższych kratkach kolumny x 1 x 2 = IO należy też wprowadzić wskazane strzałkami nowe stany niestabilne. Określenie struktury bloku przejść (ó) i bloku wyjść (l ) asynchronicznych blok przejść może być zrealizowany w dwóch postaciach (rys. 4.56), zarówno dla automatu Mealy'ego, jak i Moore' a. Pierwszą wersję bloku stanowi układ kombinacyjny (rys. 4.56a) złożony wyłącznie z elementów logicznych dowolnego systemu funkcjonalnie pełnego, np. z elementów NAND. F unkcja pamięci jest realizowana przez odpowiednie sprzężenia zwrotne, obejmujące ten blok, przy czym niezbędne opóźnienie między Qi i Q, jest zawarte w elementach bloku (por. rys. 4.28a). Aby sprzężenia zwrotne prowadziły do wytworzenia funkcji pam ięci, muszą być one dodatnie. Synteza polega na określeniu analitycznym funkcji Qi = o,(A, X), i = 1,2, „. , k, przy czym pętle sprzężeń zwrotnych są realizowane niejako automatycznie przez zwarcie wyjść Q; tego bloku z odpowiednimi „wejściami" Q, wchodzącymi w skład wektora A. Układ pokazany na rys. 4.56a reprezentuje automat Mealy'ego, lecz po usunięciu wejść X z bloku .i. zmienia się w automat Moore'a. Wybór rodzaju automatu następuje wcześniej, przy określeniu zredukowanej tablicy przejść i wyjść. Druga wersja bloku ojest pokazana na rys. 4.56b. W tym przypadku blok ten jest rozbity na dwa pod bloki: układ kombinacyjny y i blok pamięci µ, przy czym ten drugi stanowi zespół k elementów pamięciowych asynchronicznych statycznych, czyli przerzutników statycznych SR łub Sit W tym przypadku zadanie syntezy sprowadza się do określenia funkcji W= y(A, X). Ponieważ sygnały S •' R.(p = I, 2„„, k), wchodzące w skład wektora W, służą do sterowania wejść przerzutników, funkcję y nazywa się funkcją wzbudzeń. Podobnie jak poprzednio, układ ten może być zrealizowany jako automat Mealy'ego lub, po usunięciu wejść X z bloku .i., jako automat Moore'a. Zadanie syntezy w obydwóch przypadkach sprowadza się zatem do określenia funkcji przełączających, reprezentujących bloki lub y, w postaci form boolowskich oraz do ich minimalizacji. To samo dotyczy bloku .i., który z definicji jest blokiem kombinacyjnym. Możliwość wystąpienia zjawiska hazardu jest szczególnie niebezpieczna w blokach ó i y, gdyż efekt hazardu może być zapamiętany. Ogólnie, synteza bloków y i ). powinna prowadzić do rozwiązań, w których hazard nie istnieje lub jest nieszkodliwy (np. w bloku A., gdy odbiornikami sygnałów wyjściowych y są elementy o relatywnie dużej bezwład­ ności, np. żarówki, przekaźniki itp.). W układach 4.2.4.4 różnych o o o, 171 4, POOSTAWY TEORII UKLAOOW CYFROWYCH o L I o, '-;"' c.....J.. r-- y, l, ' ó i - -Y2 I I o, ' '' I J\ ' I I I I I ' ~ b l_[---------, r - ---, 4 s L..j. .&..l_R 1 ,1 I I ., I ., 1 - I I ' I I · . I r I I : ' I I I I I : I I l... · I I I o, ~ I I I Rys. 4.56 S1ruktury i kombinac)jnyin wcł1odząc)'m układów blokłem 4i, b) I y, Y2 I I I I O-, A j l I 1-ó ).I o. ' I I '' L _ - --- - _ _ _ J a) -- 1· 4s ' ' R„ I !I '-- 7- I ' o, asynchronicznych typu Mealy'ego i ut)'tiern 1.CSpOh.J pn:erzulnik0\11· istatycviych SR \\' bloku ''· do bloku 6 Najpierw omówimy sposób syntezy układu zawierającego wyłącznie kom binacyjny blok o. Na podstawie za kodowanych tablic przejść i wyjść można określić funkcje i 2, czyli wyrażenia o QI= 01(Q,,Q„ ...,Q„x1>x 2 , ••• ,x.), oraz dla układ u Mealy'ego: Y; = A;(Q,,Q 2 , .•• , Qk, x 1 ,x 2 , .•• ,x.), a dla układu 172 i = l,2, ... ,k Moorc'a: j = 1, 2, ...,n 4..2. U KŁADY SEICWENCVJNE Wyrażen ia le przedstawiają funkcje przeh1czające, czyli określa się je przy zastosowaniu znanych metod minimalizacyjnych. Na przykład, z tabl icy przejść pokazanej na rys. 4.54a można otrzymać dwie tablice przejść, pokazane na rys. 4.57a, b. Stąd otrzymuje się formy boolowskie Jak widać z rys. 4.57a, obecność dwóch przylegających do siebie grup Q2 x, i Q, Q2 x 2 wskazuje na niebezpieczeństwo wystąpienia hazardu w jedynkach. Zjawisko to, polegaj<)Ce na występowaniu na wyjściu ukladu kombinacyjnego zaklóceń w postaci kró tkich impulsów szpilk owych, jest szczególnie niebezpiec-me wówczas, gdy może być podtrzymane w układzie w wyniku dzialania sprzężenia zwrotnego lub w przerzutniku. Ponieważ może to oznaczać blędne działanie układu, fukcje przejść ó1 powinny być formułowane w sposób wykluczający występowanie ha.z ardu. W tym celu wprowadza się do formy określającej ó1 i wskazującej na możliwość wystą pienia hazardu dodatkowy składnik, pokrywający częściowo grupy „hazardowe" w tablicy przejść. Pokazano to na rys. 4.57a linią przerywaną, czemu w formie Q, odpowiadałby skladaik Q, x x 2 • Należy jednak dodać, że obecność przylegających grup nie nawsze oznacza wystąpienie hazardu b11dż jego szkodliwość, co wymaga oddzielnej analizy. W naszym przykladzie (rys. 4.54a) hazard w postaci krótkotrwałego impulsu Q, =O może się pojawić przy x 1 x 2 = 11 i przy zmianie Q1 Q2 = 10 na 11 lub odwrotnie. Jednakże możliwy stan przejściowy Q'1 Q'2 = Ol prowadzi do tego samego i jedynego stanu stabilnego 11 w tej kolumnie, czyli w tym przypadku hazard nie jest szkodliwy i wprowadzenie skladnika „antyhazardowego~ Q, x, x 2 jest zbędne. o b o,o,x, x, X 1X2 ' oo 01 11 oo o o o 10 o oo 1 11 o o o o I 10 o I 1 01 ( 1 oo 01 11 10 1 1 I 01 =1 o 1 1 1 1 "~ 1 11 1 1 1 o o 10 1 o 1 o 1 I • li, d, Rys. 4.57 Indywidualne tablice prujść o trzymane z 1ablicy z rys.4.54a (przy wprowada:tniu tam stanów nies1abilnych u~tyeb w nawiasach) 173 4. PODSTAWY TEORII UKŁADÓW CYFROWYCH o c b o,o,o x, xz ' oo o 01 11 10 oo 01 11 10 o - 1 1 o - o t o 1 - o 1 1 - 1 - 1 1 1 - 1 1 1 - 1 o - o 1 o - 1 o o - o o - - 1 I 1 - o 11 1 - - - 1 1 I' - - - o 101 - - - ' - --·-' 1 - - - o - - - o 10 0 - - - o - - - o - - - o 03 oo 01 ooo o o 11 10 - o o o - 011 o o 010 o 110 0 01 ' -- ---- --- ,--' ' I rf, Rys. 4.58 Indywidualne tablice ~ przej ść o - Cl, olrzymane z lablicy z rys. 4.55b W podobny sposób można postąpić z tablicą przejść z rys. 4.55b, zestaw tablic pokazanych na rys. 4.58 (znaczenie pogrubienia niektórych symboli będzie omówione później). W rezultacie 01rzymuje się formy otrzymując Q', = Q3 x 1 v Q, Q2 x 1 Q2 = Q3x2VQ2.X2v <!, <22<23x, v Q, Q, Q3 = <21 Q3v Q,.x. x, przy czym składnik Q, Q2 w formie Q2 reprezentuje grupę antyhazardową. Funkcję wyjść J.i układu Moore'a określa się na podstawie zakodowanej tablicy wyjść. Stabilne stany wyjść tej tablicy są podane w zredukowanej tablicy przejść i wyjść. Natomiast niestabilne stany wyjść określa się „antyhazardowo" w zależności od stanu poprzedniego i następnego: jeśli te dwa stany są jednakowe, to stan pośredni powinien być taki sam, natomiast jeśli następuje zmiana tych stanów, to s tan pośredni moie być dowolny. Oznacza to sekwencje OOO, 111, Ox I, l xO. Dla tablicy z rys. 4.53d i tablicy przej ść z rys. 4.55b otrzymuje się w ten sposób tablicę wyjść pokazaną z prawej strony rys. 4.55b. Funkcja wyjściowa y wyraża się formą boolowską stanowiącą sumę jej wszystkich implikantów, czyli łych iloczynów literałów Q1Q~ Q3, dla których y = 1. Wykonując prostą minimalizację otrzymuje się z rys. 4.55b funkcję wyjść 174 4.2. UKlAOY SEKWENCYJNE y Rys. 4.59 Schemat kombinacyjny blok układu opisanego tablicami z rys. 4.55b 4.58, :zawierającego przejść Przy zastosowaniu do syntezy układowej elementów NAND i inwerterów otrzymuje się układ pokazany na rys. 4.59. Równoważne funkcjonalnie rozwiązanie można otrzymać stosując blok µ złożony z przerzutników statycznych SR. W tym celu należy wyznaczyć bezhazardową funkcję wzbudzeń W= (S p R „S 2 , R 2 ,S 3 , R3 ). Można to zrobić metodą analityczną, polegającą na przyrównaniu każdej z form Qi odpowied· niego równania przerzutnika: w przypadku przerzutnik ów SR i SR równania Q' = S VliQ, z właściwymi indeksami (I, 2, ...). Następnie dokonuje się po· równania współczynników. W ostatnim przykładzie, stosując przerzutniki SR (z elementów NAND) można to dla Q~ zapisać w formie skąd otrzymujemy S, = Q3 x 1 oraz /i 1 = Q2 x 1 . Podobnie można określić funkcje wzbudzeń dla pozostałych przerzutników. Najczęściej jednak do okreś­ lenia funkcji wzbudzeń układu stosuje się metodę tablicową, wykorzystującą 175 4, PODSTAWY TEORII U.:lAOOW CYFROWYCH zakodowane tablice przejść oraz tablice wzbudzeń używanego typu przerzutnika. Tablice wzbudzeń statycznych przerzutników SR i SR zostały podane już uprzednio (rys. 4.34e i 4.35e), a poniżej są przytoczone łącznie (łatwo zauważyć, że są komplementarne): S R Q-+ Q' o o o 1 o 0 X 1 o X o J O I o l 0 X X W oparciu o wybrany typ przerzutnika tworzy się tablice wzbudze1i W tym celu dla każdej kratki zakodowanej tablicy przejść odczytuje się następstwo Q;-+ Q;, następnie znajduje się w tablicy wzbudzeń wybranego przerzutnika odpowiednie stany wejściowe (w naszym przypadku S, R lub S, ~ i wpisuje się je do nowej tablicy o tych samych współrzęd nych co tabl ica przejść. Na przykład, dla tablicy z rys. 4.58a i przerzutnika typu SR można znaleźć tablicę wzbudzeri układu, pokazaną na rys. 4.60. Po typowych zabiegach minimalizacyjnych i sprawdzeniu, czy nie istnieje niebezpieczeństwo hazardu, otrzymuje się następujące funkcje wzbudzeń układu. X., X, o,o,o3 oo 01 ooo 1. - 1- 11 10 - 1- o01 o11 1 - t- - 0.1 1 - 1.- - 0.1 o10 1. - 1,- - 1.- - - - .1 - - - - .1 - - - - .1 - - - 1.0 s, .R, 10 1. 0 111 101 100 S1 = Q3 x1 , Rys. 4.6fl Tablica wzbudzeń przerzutnika wyni kająca z rys. 4.58a SR(Q 1) R1 = Q,x 1 VQ3 Należy utworzyć tyle samo tablic wzbudzeń układu, ile jest przerzutników w blokuµ. Można jednak tego uniknąć, modyfikując zapisy symboli w tablicach przejść przez pogrubienie symboli tych stanów Q; (wewnątrz tablicy), które różnią się od stanów Q, (oznaczonych z lewej strony tablicy), jak pokazano na rys. 4.58. Określenie funkcji wzbudzeń polega na wykonaniu minimalizacji na określonych niżej zbiorach T, F, D, prą jednoczesnym zapewnieniu braku hazardu w tak tworzonych funkcjach wzbudzeń. 176 4.2. UKŁADY SEKWENCYJN E Przy stosowaniu przerzutników SR, dla funkcji S zbiory te są zdefiniowane następująco: Ts={l , 1, ...} F5 = {0,0,„.,0,0„.} D5 = {1, I,„.} i dla funkcji R: TR= {0,0,„.} FR= {l, l , „.,l,l„.} DR= {0, 0,„.} Przy stosowaniu przerzutników SR zamienia się zbiory Ti F: T5 = F 5 = {o.o.„.. o,o„.} F5 = T5 = {1, 1,„.} Ds= Ds = {!, !, „.} TR= FR= {1, 1,„., l, 1...} FP, = TR = {O.O,„.} DR= DR= {0,0, „.} Przykładowo oznacza to, że sygnał S musi mieć wartość 1 tam, gdzie w tablicy przejść występują symbole l , a może mieć wartość I tam, gdzie w tablicy występują symbole I. Na podstawie tablic z rys. 4.58 można określić te same wyrażenia dla S 1 i R1 , co poprzednio z tablicy wzbudzeń, a dla pozostałych dwóch przerzutników funkcje wzbudzeń są następujące: S2 = Q 3 X1 V Q 3 X2 V QI V Q2 R2 = X2 V Q3 S3 = Q 2 V x , V X2 R3 = Q, Wynikająca stąd struktura układu zbudowanego z elementów NAND i inwerterów jest pokazana na rys. 4.61. Elementy NAND dostarczające sygnały wzbudzeń przedstawiono symbolami równoważnymi, aby lepiej unaocznić zbieżność układową z wzorami. Jak widać, układ ten charakteryzuje się niemal tą samą złożonością co poprzedni, wymagając przy tym dodatkowej syntezy funkcji wzbudzeń. 177 4. PODSTAWY TEORII UKlAOOW CYFROWYCH y Rys. 4.61 Schema1 ukladu_oyisanego tablicami z rys. 4.55b i 4.58, z przerzuinikami SR zawierającego blok prn:jść Synteza układów synchronicznych Utworzenie tablicy Pierwszą czynnością przejść i wyjść 4 .2.5 4.2.5.1 w syntezie układów synchronicznych jest, podobnie jak w układach asynchronicznych, sformułowanie runkcjonalnego opisu układu. Na podstawie opisu słownego najczęściej tworzy się grar przejść i wyjść (Mealy'ego lub M oore'a), a następnie tablicę przejść i wyjść. Jako przykład rozważmy układ z rys. 4.53, projektowany poprzednio jako asynchroniczny. Układ ten ma generować na wyjściu y stan 1 tylko wówczas, gdy po dwóch kolejnych stanach x 1 x 2 = 01 nastąpi stan 10. We wszystkich innych sytuacjach powinno być y = O. W takim układzie można wyróżnić następujące sytuacje: gdy brak jest stanów x 1 x 2 =Ol, y =O, gdy wystąpił jeden stan Ol, y = O, gdy wystąpiły dwa kolejne stany OI, y = O, gdy po dwóch kolejnych stanach Ol nastąpił stan IO, y = I. Zgodnie z tym można skonstruować grar przejść i wyjść przedstawiony na rys. 4.62b. Jest to graf układu Mealy'ego, zgodny z opisem słownym, który jak opisano wcześniej można przekształcić do postaci automatu Moore'a. W ukła­ dzie przyjęto możliwość wystąpienia stanu x 1x 2 = 11, gdyż w układzie synchronicznym jednoczesna zmiana sygnałów wejściowych jest dopuszczalna. Ogólnie biorąc, zastępowanie stanów nieokreślonych stanami określonymi nie jest jednak zalecane, by nie zmniejszać efektywności minimalizacji. Wynikająca z grafo tablica przejść i wyjść jest pokazana na rys. 4.62c. 178 4.2. UKŁADY SEKWENCYJNE a e l t I l I l t X ' I r l r I I t y A 2 1 3 2 1 L 2 1 3 3I b oo.o 10,0 11 ,0 00.1 10.1 11,1 1,0 c A X1X2 oo 01 11 10 1 1.0 2.0 1,0 1.0 X1 )'2 A OO 0 1 11 10 V 1 1 2 1 1 o 2 1.0 3.0 1. 0 1.0 2 1 3 1 1 3 1. 0 3.0 1. 0 4.0 4 1.1 2.1 1.1 1, 1 3 1 3 1 4 o o 4 1 2 1 1 1 Rys. 4.62 Przykład początkowych u kładu etapów syntezy układu synchronicznego, analogicznego do opisanego przebiegami z rys. 4.53a a) prubkgi czasowe. b) graf przejść i '4yj~. c) tablica prr.ejU i W>:i:Sć ukll.ldu w 111o~rsji ~1cały"<go i ~łoore'11 179 4. PODSTAWY TtORll UKV.OOW CYFROWYCH Minimalizacja liczby stanów w tablicy przej ść i wyjść 4 .2.5.2 Liczbę stanów wewnętrznych w tablicy przejść i wyjść można zmniejszyć, gdy przynajmniej dwa stany (dwa wiersze) można zastąpić jednym bez naruszenia prawidłowości działania układu. Do określenia, kiedy tak ą operację można wykonać, są przydatne następujące definicje, zbieżne z podanymi w (9, IO]. Dwa stany wewnętrzne A;. A1 określa się jako zgodne, jeśli dla każdego X mają one niesprzeczne stany wyjść Y i ich stany następne A;, Aj są niesprzeczne lub zgodne. Przyjmując symbol „ - " do oznaczenia zgodności, można relację zgodności stanów A;. Ai zapisać w formie ,l-V [.A(A;, X) ~ A(A (A; - A J• X)] /\ X 11'V {[c5(A 1 , X)~ cS(Ai,X)) v (cS(A 1,X)-cS(A1,X)J} }( Relacja zgodności jest zwrotna i symetryczna, ale nie jest pnechodnia (p. 1.4). Stany A1, A1określamy jako wprost zgod11e, jeśli dla każdego X mają one niesprzeczne stany wyjść i jeśli ich wszystkie stany następne są niesprzeczne lub równe A 1, A1 względnie A./> A 1• Stany A1, A1 są warunkowo zgodne, jeśli dla każdego X mają one niesprzeczne stany wyjść i jeśli ich zgodność zależy od zgodności stanów następnych, tj. gdy istnieją przynajmniej dwa różne stany następne, poza A;. A 1 i A 1, A 1• Stany A„ A1 są wprosi niezgod11e, jeśli stany wyjść w wierszach A" A1 są sprzeczne co najmniej w jednej kolumnie. Dwa stany zgodne A 1, A1 można zastąpić jednym nowym stanem Ak• co zapisujemy w postaci A, ;i: {A 1, A1}. Jeśli istnieją trzy stany parami zgodne: A, - A 1, A 1 - A 0 , A 1 - A 0, to tworzą one zbiór stanów zgodnych {A 1, A1, A.}, który może być zastąpiony jednym stanem, czyli At ;;i: {A;, A 1, A.}. Ana logicznie można określić zbiory wielu stanów wzajemnie zgodnych, które można zastąpić pojedynczym stanem. Wynikałby stąd prosty sposób wykonywania minimalizacji, polegający na określeniu rodziny maksymalnych zbiorów stanów zgodnych {S,, S2 , „. SP}, prq czym każdy zbiór zastępuje się jedn ym stanem wewnętrznym. Ponieważ jednak relacja zgodności nie jest przechodnia, więc zbiory S mogą nie być rozłączne. Wynika stąd, i.e liczba p takich zbiorów może być nawet większa od liczby stanów w tablicy podlegającej min imalizacji. Proces minimalizacji będzie zatem polegał na poszukiwaniu rodziny zbiorów R , uzyskanych po odpowiedniej selekcji i ewentualnie korekcji zbiorów S. 180 •.2. U KŁADY SEKWf.NCYJNE Jeżeli rodzinę zbiorów S oznaczymy przez 4> .,.. = to poszukiwana rodzina minimalna 4>min = {R 1 , R2 „ .. R,}, oczywiste warunki: ' maksymalną = {S„S2 „ ... S,}, musi a) b) I) 2) spełniać automat minimalny MM , dla którego AM= {A 1 ,A2 „„.A,}, A 1 ~ R,, i = I , 2„.„ r, musi działać tak samo jak Mr (p. str. 162), nie istnieje liczba stanów mniejsza od r i spełniająca warunek (a). Aby warunek (a) był spełniony, muszą być spełnione wymagania: pełności: rodzina <I>min musi zawierać wszystkie stany A e A"' czyli R 1 u R2 u ... u R, =u <I>min = A p (mówimy, że rodzina 4>mln jest pokryciem zbioru Ap), zamknięcia: dla wszystkich stanów A należących do dowolnego zbioru R1 e 4> mln• ich stany następne, określone przez funkcję l>,, (A, X) przy dowolnym X , muszą należeć do jakiegoś zbioru R,e <Pm1n: \:/ 3 [A e R1 = l>,(A,X)e R,] A .X R. przy czym zbiór R 1 może być równy R,. Spełnienie warunku (a) oznacza, że przejścia w automacie AM są takie same jak w automacie Ar i jednoznaczne po zastąpieniu zbiorów R1 przez stany A, (tzn. gdy A1 ;;;. R1). W pewnych przypadkach, gdy niektóre maksymalne zbiory S z rodziny <I>"""' nie spełniają wymagania zamknięcia, można je przekształcić w takie zbiory niemaksymalne R, które spełniają to wymaganie. Algorytmizacja tych czynności jest jednak złożona i zwykle stosuje się metodę prób i błędów. Na podstawie powyższych rozważań można sformułować następujące kolejne czynności, tworzące proces minimalizacji: I) wyznaczenie wszystkich par stanów zgodnych, 2) określenie rodziny <Pm•• wszystkich maksymalnych zbiorów stanów zgodnych, 3) określenie rodziny 4> min• spełniającej warunki pełności i zamknięcia, 4) opisanie automatu minimalnego na podstawie rodzin y 4>min· Przy minimalizacji automatów zupełnych, których tablice przejść i wyjść nie zawierają stanów nieokreślonych, proces ten znacznie się upraszcza. Wówczas bowiem w definicji stanów zgodnych relacja niesprzeczności staje się równością, a sama relacja zgodności staje się przechodnia, czyl i staje się równoważnością. Wynika stąd, że zbiory S są rozłąc:-~ne, czyli 4>m„, = <1>m1n i wymieniona czynność (3) jest zbędna. Poniżej będą opisane procedury minimalizacyjne dla automatów synchronicznych zupełnych, a następnie niezupełnych, wykorzystujące tzw. metodę zgodności par [9, I O). Inna metoda („rozdzielanych zbiorów") jest opisana w (9, 10). 181 4. PODSTAWY TEORII UKŁADÓW CYFROWYCH Min imalizacja aut omat ów synchronicznych zupełnych Metoda zgodności par polega na tym, że wszystkie możliwe pary stanów, które można określić z zadanej tablicy przejść i wyjść, są badane, czy spełniają warunki zgodności. W tym celu najpierw bada się i akceptuje lub odrzuca wszystkie pary pod względem równości wyjść. Niech zbiorem par spełniających ten warunek będzie L0 czyli = {(A,, A) :V [J.(A,, X)= A.(A i• X)]} X Następnie pary ze zbioru L 0 bada się, czy spełniają warunek zamknięcia, sprawdza się zbiory stanów następnych, tworząc zbiór L 1 : L 1 = {(A,,A 1):[(A1,A1) s L 0 ] A A[ y(.5(A,, X), .5(A1, X)) !: L 0 ]} Proces ten powtarta ogólnym (k = O, I , „„ z) się, tworząc kolejne zbiory zgodnie ze wzorem Lk+ 1 = {(A 1,A1) : [(A, , A1) !: L,] A A[y(.5(A,, X), .5(AJ> X) !: L•]} przy czym L, = L:+ 1 stanowi zbiór wszystkich par stanów zgodnych. Jeżeli natomiast 3 Lk + 1 = 0, to oznacza, że brak jest stanów zgodnych i dana tablica k jest minimalna. Na przykład, dla prostej tablicy z rys. 4.62c mamy L 0 = {l,2;1,3;2,3} L 1 = {1,2} L 2 = 0, czyli tablica ta jest już minimalna. Dla tablicy z rys. 4.63a można określić następujące zbiory: o A X oo 01 11 10 y 1 4 s 3 2 2 3 6 4 1 o o 3 1 3 6 2 1 /i.X G 1 4 5 1 1 5 2 G 3 6 6 1 3 4 o o 5 A',y 182 b Rys. 4.63 oo 01 11 10 y o b c b o o b o b c o 1 c o b b c o l/.. y Przykład minimalizacji liczby stanów automatu zupełnego a) tablica pn:ej ić i minim;iliw,(M, b) ta sama tablica po minimalizacji wyjiić pr.eed 4 2. UKlAOY SEKWENCYJNE L 0 ={ 1,2; 1,5; 1,6;2,5;2,6;3,4;5,6} L 1 = { 1,2; 3,4; 5,6} Li = Li Oznaczając tablicę A.;;,, {A 1 , A2}. Ab;;,, {A 3 ,A,} i A,;;, {A 5 ,A 6 } otrzymuje się automatu minimalnego, pokazaną na rys. 4.63b. Minimalizacja automatów synchronicznych niezupeł nych W praktyce w większości przypadków spo tykamy się z au tomatami niezupeł· nymi, w których niektóre stany tablicy przejść i wyjść są nieokreślone. Nawet jeśli dany automat jest zupełny, to często podczas kodowania okazuje się, że trzeba go przedstawić jako niezupełny. Zachodzi to, gdy liczba stanów wewnętrznych automatu zupelnego nie jest równa 2•, gdzie /1 jest lic-.i:bą natura lną . Na przykład, automat zupełny opisany tablicą o X = x 1 x 2, Y= y i A = {A1 ,A 2 „.„ A6 } przy kodowaniu dwójkowym stanów A będzie musiał zawierać 8 stanów, skąd wynikają 4 nieokreślone stany A' i 2 nieokreślone stany Y. Ogólnie biorąc, przy formułowaniu opisu automatu nadawanie stanom nieokreślonym wartości określonych jest niewskazane, gdyż ogran icza to możliwości minimalizacji. Zadaniem minimalizacji jest bowiem maksymalne wykorzystanie możl iwości oferowanych przez stany nieokreślone, aby uzyskać automat o możliwie jak najmniejszej liczbie stanów wewnętrznych . Metoda zgodności par, opisana niżej dla automatów niezupełnych, może być także stosowana dla automatów zupełnych. Wykorzystuje ona tzw. tablicę trójkątną do ok reślania par stanów zgodnych. Dla przykładowej tablicy przejść i wyjść z rys. 4.64a tablica trójkątna ma postać pokazaną na rys. 4.64b. Numeracja wierszy i kolumn tablicy trójki1tnej jest taka, że kratki odpowiadają wszystkim możliwym parom stanów z tablicy przejść i wyjść, czyli wszystkim możliwym parom wierszy z tej tablicy. o A b X o 1 1 z 1 3 2 4 - 5 6 6 3 1 y ' -o ' 5 1 5 3 1 2 ./ 3 1. 2 4.5 4 4.5 5 1.6 ./ 6 1.3 3.4 3.5 c 1 - 3.6 AX b (1261 b o o 5 Rys. 4.64. Przyklad minimalizacji licz.by Sianów automatu niezupełnego 183 t~l.1„. <) o (134510 4 a) llbllCI pnlt)łt i ")'jłt pmd ~ b) Ubl><o o miinuuluO"'-anq liabit ~' o , iablica pntji< i • })il 1 o 4. PODSTAWY TEORII UICtAOOW CYFROWYCH Wypełnianie kratek tablicy trójkątnej przebiega następująco. Do danej kratki wpisujemy znak x (przekreślamy ją), jeśli odpowiadające jej stany Al> A1 są wprost niezgodne. Podobnie wpisujemy do kratki znak jeśli odpowiada ona stanom wprost zgodnym. Jeśli natomiast stany A,, A i wyznaczające daną kratkę są warunkowo zgodne, to wpisujemy do niej wynikające z tych stanów różne stany następne, poza A 1, A i A 1' Ai. 1 Rodzina 4>m„ może być określona przez żmudne badanie zgod ności wynikających z tablicy trójkątnej. W tym celu tworzymy zestaw par sta nów, które nie są wprost niezgodne. W naszym przykładzie, rozpoczynając od prawej strony tablicy trójkątnej i pomijaj:1c na razie przecinki między numerami sta nów, mamy następujące pary: J, 5: .56 4 : ll6. 96 3: .)4, )5 2: )6 I : }1', J.1, )4, }'5, J-<l Badając te pary staramy się utworzyć z nich większe zbiory stanów wzajemnie zgodnych, skreślając pokrywane przez nie pary. Łatwo można zauważyć, że {56, 45, 46} ~ 456, {34, 35, 45} ~ 345 itd„ otrzymujemy więc zestaw trójek pokrywających w tym przykładzie wszystkie pary: M ożna więc utworzyć zestaw pokrywający poprzedni: 1345, 1456, 126 czyli rodzina 4>..... zawiera zbiory s, = {1,3,4,5} s, = {l,4,5,6} S3 = {1,2, 6} Ten sam wynik można uzyskać wykorzystując pary stanów wprost niezgodnych [IO). W tym celu najpierw wypisujemy z tablicy trójkątnej pary (A..,+ A,) stanów wprost niezgodnych, określonych przez przekreślone kratki. W naszym przykładzie są to pary tworzące zbiór Z= {(A2 , A3), (A 2 ,A 4 ), (A 2 ,A 5), (A 3 ,A6 )} Następnie tworzymy zdanie a= • A (g,.; v g,J i• l 184 4.2.. UKt.A_OY SEK'WENCYJNE gdzie: g - zdanie „usuń ze zbioru A stan A ;", n - liczba par w zbiorze z. Po wykonaniu mnożeń i działań g otrzymujemy sumę iloczynów, określającą rodzinę 4>.,.,. W naszym przykładzie zdanie a ma postać Ograniczając się do działań na indeksach otrzym ujemy (2 V24 V23 V34)A(23 V26 V35 V56) = = 23 V 26 V 235 V256 V234 V246 V2345 V2456 V v .l1v 236 v 4J'Sv 2356 v ~v 2346 v 345 v 3456 gdzie ,,liczby" powtarzające się zostały skreślone. Wykonując działania zgodnie ze zdaniem g otrzymujemy iloczyny indeksów reprezentujące zbiory S z rodziny 4> maJt: a= 1456 v 1345 v l;ł6 v t,'A v 1)6v 1)5v ;.{) v }1 v I}ł$ v v J4 v .0v t26 v}1 Skreślając te zbiory, które są podzbiorami większych zbiorów, otrzymujemy te same zbiory S 1, S2, S3 co poprzednio. W celu otrzymania rodziny cf> 01111 wybieramy z rodziny 4> mi" te zbiory, które łącznie spełniają warunek pełności, a następnie badamy je, czy spełniają warunek zamknięcia. W naszym przykładzie warunek pełności spełnia rodzina {SpS3 }. Do sprawdzenia warunku zamknięcia tworzymy tablicę kontrolną, określającą stany następne w zbiorach S 1 i S3 s. = 1345~!26 [12-6 455- x=O x=I z której wynika, że warunek zamknięcia jest odpowiednie inkluzje). A zatem cf)min = 113 443 spełniony (strzałki wskazują na {R , • R2} gdzie R 1 = S 1 i R 2 = S3 . Wynikająca stąd tablica przejść i wyjść automatu minimalnego jest pokazana na rys. 4.64c. W ogólnym przypadku, jeśli warunek zamknięcia nie jest spełniony, to w celu otrzymania rodziny cf> min do zbiorów spełniających warunek pełności należy dołączyć dodatkowy zbiór rodziny <I>.,.., albo też podzbiór właściwy R c S tak dobrany, aby spełnić warunek zamknięcia. Może też zais1nieć potrzeba dołączenia więcej niż jednego zbioru (podzbioru). 185 4, POOSl AWV TEORII UKt.ADOW CYFROWYCH Kodowanie stanów 4.2 .5.3 wewnętrznyc h Kodowanie stanów wewnętrznych w układach synchronicznych jest znacznie prostsze niż w układach asynchronicznych, gdyż nie występuje w nich niebezpieczeństwo wyścigów. Najczęściej są stosowane kody NB i Graya, jakkolwiek jest możliwe również użycie innych kodów, umożliwiających uproszczenie budowy bloku wzbudzeń (Jl) lub bloku wyjść (..1.), a także dostosowanych do typu użytych przerzutników. o c b X1 X ] o,o, oo 01 11 10 y oo oo Ot oo oo o 01 oo t1 oo oo o 11 oo 11 oo 10 o 10 oo Ot oo oo 1 o, o, X1X1 oo 01 1t 10 oo o.- o.- o.- o.01 Il- 1.- u- o.11 - .1 -.o - .1 -.o o,02 10 -.1 - .1 -,1 -.1 X1 X] oo 01 11 10 oo o.- 1. - o.- o01 - .1 -.o - .1 11 -.1 -.o -.1 - .1 o.- 1- o.- o.- 10 - .1 l 1 =11.,x 2 K 2 :x1 v 3t'2 Rys. 4.65 Przykład kodowania stanów (a) i określania funkcji wzbudzcil (b,c) w oparciu o tablicę przejść i wyjść z rys. 4.62c Na przykład, stosując kod Graya do tabl icy automatu Moore'a z rys. na rys. 4.65a. Tablicę tę można bezpośrednio wykorzystać do syntezy kombinacyjnej bloku ó, gdyż jest opisana ona tak samo jak siatka Karnaugh. Jeżeli natomiast kod Q1 Q2 nie jest wybrany jako kod Graya, to do celów minimalizacji form boolowskich opisujących funkcje wzbudzeń, trzeba odpowiednio zmodyfikować postać zakodowanej tablicy przejść i wyjść. Oznacza to takie przestawienie wierszy tej tablicy, aby uzyskać z lewej strony tablicy opis kodu Graya. Na przykład, gdyby tablica z rys. 4.62c była zakodowana w kodzie NB, to do celów minimalizacji należałoby zamienić miejscami dwa dolne wiersze. 4.62c można otrzymać lablicę pokazaną Określenie struktury bloku i bloku wyjść ().) Pierwszą czynnością przejść (15) 4.2.5.4 na tym etapie syntezy jest wybór typu przerzutników, które w bloku ó. Najczęściej stosowanymi, synchronicznymi przerzutnikami scalonymi malej skali integracji są: mają być użyte 186 .-.2. U~t.AOV SEKWENCYJNE przerzutnik D wyzwalany zboczem, przerzutnik JK wyzwalany zboczem, przerzutnik J K wyzwalany impulsem. Przerzutniki Ti SR nie są wytwarzane jako układy małej skali integracji, a ich stosowanie w układach o większej skali integracji jest sporadyC?.ne. Z tego względu ograniczymy się do przerzutników Di JK,jako elementów tworzących zespół pamięciowy 11 w bloku ~ (rys. 4.28). Do wyznaczenia funkcji wzbudzeń W= y(A , X), realizowanej przez blok wzbudzeń y, wykorzystuje się tablice wzbudzeń pr.lCrzutników O (rys. 4.39e) i JK (rys. 4.42f), przytoczone łącznie niżej: Q-+Q' D J K o o o o I I I o o o X 1 X X 1 X o Dalsze postępowanie jest analogiczne do opisanego poprzednio dla asynchronicznych. Synteza blok ów kombinacyjnych y i .i.jest prostsza, gdyż nie jest wymagane wykrywanie i pr'.lCCiwdzialanie zjawiskom hazardu. Na podstawie wybranego typu prlerzutnika tworzy się wblice wzbudzeń układu. Na przykład, dla tablicy z rys. 4.65a i przerzutnika JK (których będzie dwa) otrzymujemy tablice pokazane aa rys. 4.65b, c. Na podstawie tych tablic otrzymujemy funkcje wzbudzeń układów = X1X2Q2, !2 = X1X2 JI K 1 =i 1i 2 V X 1X2 V (i2 K 2 =x 1 V i 2 Ten sam rezultat można otrzymać wprost z tablicy przejść i wyisc, wprowadzając pogrubienie tych symboli stanów Qi, które różnią się od Qi. Określenie funkcji wzbudzeń polega wówc-zas na wykonaniu zabiegów minimalizacyjnych na okre.ś lonych niżej zbiorach T, F, D w sposób objaśniony przy omawianiu układów asynchronicznych (s. t 77). Przy stosowaniu przerzutników JK zbiory te są zdefiniowane nastę­ pująco: 0 ={1, 1, ... } F1 = {0,0, ...} D1 ={0,0, ... , 1, l, ...} TK = {0,0, ...} FK ={J, 1, ... } DK ={ I , 1, ... ,0,0, ...} 187 4. PODSTAWY TEORII U KŁAOOW CYFROWYCH Ponieważ dla przerzutników D obowiązuje równanie Q' = D, zatem dla tego typu pr~rzutników funkcję wzbudzeń D można określić bezpośrednio z zakodowanej tablicy przejść, bez potrzeby wprowadzania pogrubionych symboli. Funkcję wyjść w naszym przykładzie otrzymujemy z tablicy przejść i wyjść (rys. 4.65a) w postaci Y = QIQ2 1 ••-- x, ., 1'' ,_ & 1 t>-- 1l >-- - ~- - & j ~ ~ o-- ,_ ~- - 1 C>- J u- o, lK & - Cl o, '-- L ~ I 1 1 ~y ii, Zęgor kl Rys. 4.66 Schemat logiczny układu opisanego tablicami z rys. 4.65, przerzutniki J K, elementy NAND i inwertery wykorzystujący Wynikający stąd schemat logiczny układu przedstawiono na rys. 4.66. Jego złożoność jest mniejsza niż w realizacjach asynchronicznych (rys. 4.59 i 4.61 ), a ponadto synteza jest prostsza ze względu na brak wyścigów i nieszkodliwość hazardu w układach synchronicznych. Dlatego w praktyce chętniej są projektowane układy synchroniczne, które są także mniej wrażliwe na zakłócenia zewnętrzne niż układy asynchrooiczoe. PROGRAMY KOMPUTEROWE DO SYNTEZY I SYMULACJI UKŁADÓW CYFROWY CH 4 .3 Aby ułatwić i przyspieszyć projektowanie układów cyfrowych opracowano wiele wspomagających ten proces programów komputerowych. Większość tych programów była opracowana w ośrodkach uniwersyteckich. Posługują się one 188 4.3. PROGRAMY KOMPUTEROWE OO SYNTEZY I SYMULACJI UKlAOOW CYFROWYCH różnymi językami opisu układów, mają różne walory użytkowe i na ogól niewielką skalę upowszechnienia. Największą popularność uzyska! program ESPRESSO [5] (wzmiankowany wcześniej w p. 4. 1.3.2) i obszerniejszy program SIS [21 ], opracowane na Uniwersytecie Kalifornijskim w Berkeley (USA). Obydwa le programy są omówione szczegółowo w [22, 23]. Pakiet SIS zawiera program ESPRESSO do dwu- i wielopoziomowej minimalizacji układ ów kombinacyjnych oraz umożliwia projektowanie i optymalizację układów sekwencyjnych (synchronicznych i asynchronicznych). Ponadto w pakiecie zawarty jest fit er, czyli program służący do wprowadzenia uzyskanych równań boolowskicb do konfiguracji realnych układów scalonych, z użyciem dodatkowych bibliotek komórek układów FPGA (rozdz. 9). SIS wchodzi w skład wielu komercyjnych kompilatorów PLO i stanowi ogólnie przyjętą bazę porównawczą dla innych tego typu opracowań. Pakiet SIS w wersji oryginalnej napisany został w języku C prz.ez zespól badawczy CAD (http://www-cad.eecs.berkeley.edu) na platformę UN IX. Pakiet (wraz z opis.em [2ł] w formacie Postscript) jest dostępny z serwera flp Uniwersytetu w Berkeley pod adresem ftp://ic.eecs.berkeley.edu/ pub/ Sis. Do szybkiej symulacji i weryfikacji układów cyfrowych służy interaktywny program VIS, dostępny w lym samym katalogu („,/pub/Vis) lub ze strony http://www-cad.eecs.berkeley-edu/ Respep/ Research/ vis. Wersję SIS 1.2 przetworzono na platformę DOS na Uniwersytecie Bristol w Anglii i jest ona dostępna w postaci wynikowej pod adresem ht1p://www.pac1.srf.ac.uk/ ~ paul/dos is wraz z (bardzo) obszernym podręcznikiem u żytkowania w postaci pliku ASCII. Tamże podane są również adresy alternatywnych serwerów. Korzystanie z UN IX-owego i DOS-owego pakietu SIS jest dość żmudne z uwagi na specyficzny język opisu oraz dużą liczbę poleceń i opcji, które trzeba wprowadzać tekstowo. W praktyce najefektywniejszym sposobem korzystania z systemu SIS jest użycie jednego z popularnych kompilatorów PLO (np. firm Synario, X ilinx, Philips). Pracują one na platformie Windows, umożliwiają prosty opis układu z użyciem ję-ąka ABEL-HOL lub przez wprowadzenie schematu logicznego oraz zapewniają w pełni zautomatyzowany proces optymalizacji. Dokładniejsze informacje podane są w p. 9. l.3. Tam7..e omówione są języki opisu układów (HOL - Hardware Descrip1io11 Language), najczęściej stosowane w praktyce: ABEL-HOL, VHDL i Verilog. Do analizy niewielkich układów cyfrowych przydatne są również proste programy komputerowe, które umożliwiają symulację ich działania. Jednym z nich jest opisany niżej symulator logiczny TLS [ 13]. Program 1en wykorzystuje popularny język programowania Turbo Pascal, to znaczy symulację układów cyfrowych realizuje się w oparciu o ich opis w tym języku. Oznacza to, 189 4 PODSTAWY TEORII UKtAOOW CYFROWYCH że symulator TLS jest praktycznie dostępny dla każdego, bez dodatkowych kosztów i konieczności uczenia się zasad odrębnego języka. Symulator TLS stanowi zbiór plików dyskowych, napisanych w języku źródłowym Turbo Pascal. Część z nich , obejmująca zbiorcze dek laracje typów o raz biblioteki procedu r i funkcji, jest skompi lowana i stanowi wydzielone moduły (z rozszerzeniem TPU w nazwach). Przy typowym zastosowaniu komputera klasy I BM PC z twardym dyskiem, pliki te umieszcza się w wydzielonym katalogu TLS, łącznie z kompilatorem języka Turbo Pascal (pliki TURBO.EXE i TURBO.TPL). Symulacja projektowanego układu polega na utworzeniu i wykonaniu odpowiednigo programu. W tym celu wykorzystuje się wybrane funkcje i procedury biblioteczne, slużące do: opisu układu, generacji wejściowych wektorów testowych, obrazowania wyników (typowo w postaci tablicy stanów). Pliki potrzebne do realizacji programu są do niego dolączanc przy użyciu słowa kluczowego uses (skompilowane moduly) lub dyrektywy SI (pliki w języku źródłowym). Moduł deklaracyjny DEC zawiera deklaracje typów i zmiennych globalnych. Podano uproszczoną postać jednego wariantu tego modułu: unit Dec; { Modu! deklaracji typów i zmiennych inte r fa ce t ype B • O.. l; r2 • array[O .. l] of B; r3 • array[0 .• 2] of B; rl6 br4 br8 s2 sJ var • • • • • } array [0 .. 15] of B; array[0 .. 3] of boolean; array[0 .. 7] of boolean; s tring( 2]; string[ J]; sl6 • s tr ing [l6]; m, n, l : shortint; vl. v2, fl, f2, . .. , v20 ... , f20 Bt boolean; function Ran : B; i•ple•entatlon f ·u n ction Ra.n; v o.r u rea l; beg in u :• Random; if u < Q. 5 then Ran : • O olse Ran := I end; end. Zadeklarowanie wybranych nazw zmiennych globalnych upraszcza pisanie programów użytkowych. Nazwy m, 11, I są wybierane do zastosowań 190 •.3 PROGRAMY KOMPUTEROWE 00 SYNTEZV I SYMULACJI U KŁADÓW CYFROWYCH w instrukcjach iteracyjnych, a nazwy 1•/ -'- v20 ifl -'-.120 dla zmiennych wymagają­ cych przejściowego pamiętania podczas wykonywania programów. Prosta runkcja Ran służy do losowej generacji bitów o wartości O lub I. Symulowane układy są opisywane przez zestaw równań reprezentujących odpowiednie mikrooperacje. Dane wejściowe i wyj ściowe wewnątrz symulowa nego uk ładu są przedstawiane w najprostszych przypadkach jako zmienne jedno bitowe, przyjmujące wartości ze zbioru {O, l }, albo jako tablice jednowymiarowe. W ostatnim przypadku, przy zapisie liczb dwójkowych o postaci a„ -1 an -2 ··· ao takie same indeksy są również stosowane przy adresowaniu elementów tablicy. Na przykład liczba dwójkowa 10110 jest zapisywana w tablicy A: r5 = (0, I , I, O, I), czyli A(O] = a0 , A[I] =a, itd. Dane wprowadzane przez użytkownika są cz.ęsto dla wygody typu łańcuchowego, czyli mają postać stów, podobnie jak wyniki symulacji. Do konwersji typów służą odpowiednie procedury. Użycie symul atora T LS do analizy kombinacyjnych układów 4.3.1 Najprostszym koncepcyjnie blokiem kombinacyjnym jest siec bramk owa. utworzona przez odpowiednie poląc-tenie bramek elementarnych (tak ich jak AN D , NAND , OR, N O R i XOR) oraz inwerterów. Do opisu takiej sieci stosuje •o „ V, Xz _, "z x, y •• R)'s. 4.f>l Schema1 logicwy sieci bramkowej symulowanej programem Nc1sim •• progra• NetSim; { Okreala uaes Dec, Ga.te , Crt; v ar tab t i ~e atanow pr~ykJadow e j sieci bramkowej { Ogó lna eie•e dek l aracyjna } { Bibllo toka funkcji bramko wych} X : r6; {Tablico ZMlonnych wejsciowych} function Net(X r6) : 8; { Zapis siec i bramkowej } beg in v l : : NAND2 ( X(O), X(l)); v2 : : XNOR2 (X(2) , X(J )); Net : : NORJ(XNORl(vl, vl), ANDJ(vl, vl, X(4)), XOR2(v2, INV(X(5))) ) end ; ($1 Stete } { Generator besin State end. 191 w e~t orow te&to• ych l •ył• letleci teblicy stenów } 4. PODSTAWY TEORII UKŁAOOW CYFROWYCH się postać funkcji, po jednej dla każdego wyjścia. Wewnątrz sieci, jeśli sygnał wyjściowy dowolnej bramki służy do sterowania więcej niż jednej bramki, to wartość tego sygnału ok reśla się najpierw przy użyciu zmiennych pośrednich vl, v2 itd . Kolejność opisu odpowiada kierunkowi przepływu sygnałów w sieci. Ilustruje to poniiszy przykład symulacji sieci bramkowej pokazanej na rys. 4.67. Moduł GATE zawiera biblioteczne funkcje bramek elementarnych o liczbie zmiennych wejściowych równej liczbie wejść (od 2 do IO). Na przyklad: function beg in functio n beg i n f unction beg i n tunction be( in A.ND2(dl, d2 : B) : B; { Dwuwejtciowa bramka AND } AJłD2 :c dl end d2 end; NAND2(d l , d2 : 8) : Bi { Dw u wejścio wa bramka HAND } NAND2 :• AND2(d l, d2) xor 1 e nd ; XOR2(d l , d2 : B) : B; { Dwuwejścio wa br amka XOR } XOR2 : = d l xor d2 end ; INV(dl : B) : B; { Inwerter } I NV :. dl xor 1 end; Procedura State służy do zobrazowania tablicy stanów symulowanej sieci logicznej o liczbie zmiennych wejściowych nie większej od 7, ma ona postać: procedure State; { Wyświetla tablice stanow sieci logicznej } i , j, k, ux var : s horti n t be gi n ClrScr ; ux :. Pred(SizeOt(X)) ; FillChar(X, SizeOf( X) , O); Wr iteln('TABLICA STANOW X:y') ; Wr iteln; fo r i :z O t o Pred( 2 shl ux) do begi n GoToXY(i d i v 16• 10 + 1 , ( i mod 16) + 4); f o r j :. ux downto O do Write(X[j]); Write(' :• , Net(X)) ; { Generator wektorow testowych X } k :- - 1; repe at k : = Succ( k); X[ k ) :. X[k) xor l ; until (X[k) • 1) o r (k = Succ(ux)) end end; Odrębny moduł biblioteczny GATER zawiera opisy bramek przy użyciu zmiennych wejściowych w postaci tablic, zdefiniowanych w module DEC. Dalsze przykłady opisu i symulacji bloków kombinacyjnych są podane w rozdz. 8, przy omawianiu poszczególnych rodzajów bloków funkcjonalnych. Użycie symulatora TLS do analizy sekwencyjnych układów 4.3.2 Układy sekwencyjne są modelowane w sposób zbliżony do opisu układów kombinacyjnych. Symulacja działania wymaga czynności inicjalizacji stanów elementów pamięciowych, podobnie jak w realnych układach elektronicznych. W 192 4 3 PROGRAMY KOM PUTEROWE OO SYNTEZY I SYM ULACJI UK.U.DOW CYFROWVCH najprostszych pr.typadkach działanie układu symuluje się przez wielokrotne powtarzanie procedury opisującej układ, przy odpowiednio zmienianych sygnałach wejściowych. Pamiętanie stanów poprzednich jest wykonywane automa tycznie podczas realizacji programu, poprzez wykorzystanie zmiennych globalnych. Przy najprostszej symulacji logicznej, to znaczy bez uwzględniania uzależnień czasowych, nie jest możliwa analiz.a zjawisk hazardów i wyścigów. Z tego względu symulacja układów asynchronicznych może być prowadzona tylko zgrubnie. Bardziej reprezentatywna jest symulacja układów synchronicznych, w których hazardy są nieszkodliwe a wyścigi nie występują. W prostych programach symu lacyjnych wykorzystuje się te same co poprzednio moduły DEC i GATE(ewcntualnie GATER) oraz doda tkowy mod uł biblioteczny przerzutników (FF) i wh1czane pliki odpowiednich procedur tablicujących. Poniicj przedstawiony jest program symulujący działanie układu synchronicznego z rys. 4.66. progr... SNe t Sim; uaes Dec, Go t e, FF, Crt; sekwencj e syrnelów wejściowych ) il : rlO = (O, O, O, 1, 1, O, 1, O, O, O); i2 : r-10 = (O, I, 1, O, O, 1, O, 1, I, l); { Op is przykładowej sieci se kwencyjnej ) procedura SNet( x l, x2, c , r : B: var Ql, Q2 , y: ą); begin vl :• INV(xl); v2 : • I NV(x2); v 3 :. AND3(vl, x2 , Q2); v4 :• OR3(AND2( xl, x2 ), AND2(vl, v2), INV(Q2)); v5 :a AND2(vl, x2); v6 :a OR2( x l, v2); const { Przy kładowa Jl(l(c, r, v3, v4, Ql, f l); J Kl(c, r, v5 , v6, Q2, f2); y :• AND2(Ql, INV (Q2)) end ; {$I Tab21 } begin Tab21 end. W programie tym użyty jest model przerzutnika JK wyzwa lanego impulsem i zerowanego pr.cy R = O, w postaci procedury zawartej w module FF: procedure JKl(C, R, J, K : B; var Q : B; vor f var u : byte; begin if R • O then Q : = O elae lf (C • O) and f b<>gln then u :. J ahl 1 or K; C488 U Of 1 2 Q :. o; Q :a l; 3 : Q : . Q xor 1 end end; if C ond R • 1 tben f:• true elae t:s folse end ; 193 : booleon); 4. PODSTAWY TEORII UKŁAOOW CYFROWYCH Zmienna/jest tu wprowadzona w celu wykrycia obydwu stanów sygnału C. Procedura Tab2 I tablicuje stany wejść x I, x2 i wyjścia y układu: sterującego procedure Tab21 j var cp : B; begln ClrScr; SNet(O, O, O, O, v 7, v8, v9); Inicja ł lz.acja { n :z O; cp : = li WC'iteln(' n xl x2 Ql Q2 y ') ; Wri te ln ( '--- - - - - - - - - - - - - - - - - - - - - •); ) Writeln; repeat cp : • cp xo r 1 ; SNet(il(n], i2(n ], cp, 1, v 7, v8, v9); if cp • O then begin Write l n(' n end; =• until n • end ; , n, v7 , ' Succ( n) • v8, ' i l [ n), i2{n],' v9); 10 Można również wykorzystać inną procedurę tablicującą, w której przebiegi wejściowe xl, x2 są generowane losowo przy użyciu funkcji Ran zawartej w module DEC. Przykłady opisu i symu lacji sekwencyjnych bloków funkcjonalnych podane są w rozdz. 8. LITERATURA I. Karnaugh M.: 711e niap niethodfor synthesis of con1bi11ational logic circuits, AIEE Trans. Comm. and Elcctronic.,, Vol. 72, Part I, November 1953, 593- 599 2. Kcmtopf P., Michalski A.: »)'brane zagadnienia syntezy ko111bi11acyjnych układów logicznych, PWN, Warszawa 1972 3. Quine W. V.: Tlie problem of simplifying cruth fimetions, Amer. Math. Mootly, Vol. 59, 1952, 521- 531 4. McCluskey E. J.: Minimization of Boolean fimetions, Bell System Tech. J., Vol. 35, 1956, 1417- 1444 5. Brayton R. K., Hachtel G. O., McMullen C. T., Sangiovanni-Vincentelli A. L.: Logic minimiza1ion algorirhmfor VLSJ symhesis, Kluwer Academic Publishers, 1984 6. Praca zbiorowa: CJfrowe układy telekomunikacyjne, pod red. Majewskiego W., Łuby T., WKL, Warszawa 1986 7. Molski M.: Modułowe i mikro programowane układy cyfrowe, WKL. Warszawa 1986 8. Mowie F. J.: A systemacie approaeh w digiral logie desigrr, Addisoo-Wesley, Reading 1976 9. Lee S. C.: Digital eircuirs and logie design, Prentice-Hall. Englewood Cliffs 1976 IO. Traczyk W.: Uklady CJfrowe. Podstawy teoretycz1w i metody syntezy, WNT, Warszawa 1986 11. D ietmeyer O. L.: Legie design of digital systems, Attyn and Bacon, 1988 12 McCluskey &J.: Legie design principles, Prentice-Hall, 1986 194 4.3. PROGRAMY KOMPVTeROWE 00 SYNTEZ'r' I SYMULACJI UKŁADÓW CYFROWYCH 13. Kalisz J.: Genera/.purpose languages si1nulate simple circuit.s, EON. September 17. 1990, 205- 214 14. Majewski Vl„ Luba T.~ Jasiński K.. Zbierzcho\\'Ski B.: ProgranuHvalne „iodufJ' Jogicz11e w syntezie układów cyfrowych, WKŁ, Wars1.awa, 1992 15. Biswas N. N.: Logic design theory, Prentice-Hall International, 1993 16. Almaini A. E. A.: Electronic logic systems, Prentice Hall International (U K) Limited, 1994 17. Michel P„ Lauther U„ Duzy P. (Ed.): 111e synthesis approacl1 to digiwl syst.em design, Kluwer Academic Publishers, 1992 18. Wakerly J. F.: Digital design, princip/es and practices, Prcnticc-Hall lnlernatio nal, 1994 19. Rudełl R. L., Sangiovanni-Vinoentelli, A.: 1\1ultip/e-valued n1inimization for PLA optimization. lEEĘ Trans. CAD, Vol. CAD·6, No. S, 1987, 727- 750 20. Lala P.G.: Practical digital /ogic design and t.esting, Prentice-Hall, Inc., 1996 21. Sentovich E. M. et al.: SIS: a sysremfor sequentia/ circui1 synthesis, ERL Mem. No. UCB/ERL M92/ 41, 4 May 1992 22. Luba T.. Nowicka M., Perkowski M., Rawski M.: J'lowoczesna S)'ttteza logiczna, Oficyna Wydawnicza Politechniki Wa rszawskiej, 1997 23. Łuba T., Jasiński K „ Zbierzchowski B.: Specj"/izowane układy cy/owe w str11kt11rach PLD i FPGA, WKL, 1998 5 CYFROWE UKŁADY SCALONE PODSTAWOWE OKREŚLENIA I KLASYFIKACJA 5.1 Mikroelektronika jest dziedziną elektroniki, związaną z wytwarzaniem układów elektronicznych w postaci zminiaturyzowanej, której charakterystyczną cechą jest scalenie wszystkich lub części elementów tworzących takie układy. U kład scalony (integrated circuit - TC) stanowi fizycznie wykonany mikrominiaturowy układ elektroniczny, którego część lub wszystkie elementy i ich połączenia są wytworzone we wspólnym procesie technologicznym, wewnątrz lub na powierzchni wspólnego podłoża. W czasie procesu technologicznego wytwarza się jednocześnie wiele takich struktur układowych w postaci kostek (płatków, chip) półprzewodnikowych, najczęściej krzemowych, które po przetestowaniu umieszcza się w odpowiednich obudowach (znacznie większych od struktur). Obudowy te chronią struktury od szkodliwych wpływów otoczenia i ułatwiają realizację połączeń zewnętrznych. Do celów aplikacyjnych układem (modułem) scalonym nazywa się półprzewodnikową strukturę układową, umieszczoną w obudowie, z wyprowadzonymi końcówkami. Cyfrowe układy scalone, które jako elementy czynne wykorzystują tranzystory bipolarne (npn lub p11p), nazywa się bipolarnymi. Podobnie układy z tranzystorami unipolarnymi określa się jako unipolarne. Układy bipolarne są wykonywane w podłożu krnmowym technologią epiplanamą, podobnie jak większość układów unipolarnych. Niewielka część układów unipolarnych jest wytwarzana w podłożu z arsenku galu. N ii.ej wymienione jest siedem klas cyfrowych układów scalonych, z których pierwsze cztery osiągnęły wysoki poziom technologiczny i znaczne upowszechnienie rynkowe oraz w dalszym ciągu są ulepszane jakościowo i rozszerzane asortymentowo. Nazewnictwo literowe klas wywodzi się z terminologii angielskiej, związanej z charakterystycznymi cechami konfiguracji elektronicznej podstawowego funktora logicznego lub z użytą technologią. Są to następujące klasy: 196 5.1. PODSTAWOWE OKRE$lENIA I KLASYFIKACJA TTL (Transistor-Transistor Logic) - układy TIL, ECL (Emitter - Co11pled Logic) - układy o sprzężeniu emiterowym, MOS (Metal-Oxide-Semicond11ctor) - układy MOS, CMOS (Complementary MOS) - układy komplementarne MOS, BiCMOS (Bipolar-CMOS) - układy „mieszane": bipolarne-CMOS, I 2 L (Integrated lnjection Logic) - układy iniekcyjne, CTD (Charge Tra11sfer Device) - układy o sprzężeniu ładunkowym, GaAs MESFET (Galli11m Arsenide Metal-Semico11d11ctor Field-Ejfect Transistor) - układy GaAs. Klasy TIL, ECL i I 2 L obejmują układy bipolarne, a pozostałe klasy (z wyjątkiem BiCMOS) dotyczą układów unipolarnych. U kłady MOS dzielą się na dwie główne podklasy PMOS i NMOS, zależnie od typu przewodnictwa kanału użytych tranzystorów. W układach CMOS stosowane są tranzystory M OS o obydwu typach przewodnictwa (p i n). W układach BiCMOS stosowane są dodatkowo tranzystory bipolarne npn. W miarę upływu czasu pewne technologie stają się przestarzałe i dlatego starzeją się technologicznie również układy scalone. Na rysunku 5.1 przedstawiono typowy przebieg „czasu życia" różnych technologii cyfrowych układów scalonych. Jak widać, najświeższe serie TTL to: serie ALS, F i AS, natomiast serie LS, Si wszczególności seria standardowa (TIL) stają się już przestarzale. Układy TTL generalnie ustępują miejsca nowszym technologiom CMOS i BiCMOS, zwłaszcza niskonapięciowym (LV - Low Voltage). Al$ LV,l.VC,LCX I I ALVT I V.'prowodzenie Wzrost 199 6 & Bipo la rne + CMOS e BiCMOS Zależnie Dojr~łoSć Starzenie sięj przestorzołośC Rys. 5.1 Clas życia cyfrowych uk ładów scalonych o różnych technologiach (Texlls lnstruments, 1996) od stopnia złożoności, czyli liczby elementów zawartych w ukła­ dzie scalonym na kostce półprzewodnikowej, początkowo wyróżniano odpowiedni stopień scalenia (skalę inte{1racji) układu. Przyjęto z grubsza, że 197 5. CYFROWE UKŁADY SCALONE układy małego stopnia scalenia - małej skali integracji - SSI (Small Scale Integration), zawierają do stu elementów, układy średniego stopnia scalenia - średniej skali integracji - MSI (Medium Scale Integration), zawierają od stu do tysiąca elementów, układy dużego stopnia scalenia - wielkiej skali integracji LSI - (Large Scale Integration), zawierają od tysiąca do stu tysięcy elementów, układy o bardzo dużym stopniu scalenia - bardzo wielkiej skali integracji - VLSI (Very Large Scale Integration), zawierają od pięćdziesięciu tysięcy do miliona i więcej elementów. Podaną klasyfikację spowodowane jej stopnia integracji obecnie stosuje się rzadko, co jest i brakiem istotnego znaczenia. scalenia umożliwiają technologie MOS. Wynika to małą precyzją Największy stopień z następujących powodów; I. W układach MOS zamiast konwencjonalnych rezystorów dyfuzyjnych są stosowane tranzystory. Skutkiem tego jest duża oszczędność powierzchni (powierzchnia tranzystora MOS może być znacznie mniejsza od powierzchni potrzebnej dla równoważnego rezystora). Dalsze zmniejszenie powierzchni wynika z braku złączy izolacyjnych w układach MOS, w których izolacja międzyelementowa jest cechą właściwą strukturalnie i nie wymaga specjalnych zabiegów ani dodatkowej powierzchni. 2. Technologia MOS umożliwia budowę układów pamięci dynamicznych, w których jedna komórka zawiera tylko jeden tranzystor MOS i jeden mikrokondensator, co zajm uje bardzo małą powierzchnię. W układach bipolarnych komórkę pamięci stanowi przerzutnik bistabilny, zawierają­ cy co najmniej dwa tranzystory i dwa rezystory, co zajmuje odpowiednio większą powierzchnię. układach niż układach 3. Moc strat w 4. Przeciętna gęstość defektów na płytce krzemowej jest mniejsza w ukła­ dach MOS niż w układach bipolarnych. Tranzystor MOS jest bowiem wytwarzany jako przyrząd o strukturze w zasadzie powierzchniowej (poziomej), natomiast tranzystor bipolarny ma zasadniczo strukturę pionową, o bardzo malej (poniżej I µm) grubości bazy. MOS jest mniejsza w bipolarnych. Cyfrowe układy scalone są wytwarzane w dwu zasadniczych odmianach aplikacyjnych, a mianowicie jako układy uniwersalne i układy specjalizowane (ASIC - App/ication Specific Integrated Circuits). Pierwsze z nich są produkowane we wszystkich stopniach scalenia do uniwersalnych zastosowań. Układy z grupy ASIC (p. 8.5) są natomiast wyłącznie układami LSI i VLSI, które są projektowane i wytwarzane do ściśle określonych zastosowań. Umożliwiają one zmniejszenie rozmiarów, mocy strat i kosztu projektowanych urządzeń. 198 5.2. RYS HISTORYCZNY RYS HISTORYCZNY 5.2 Pierwsze próby scalania elementów w kostce półprzewodnikowej podjął J. Kil by (Texas Jnstruments, USA) w 1958 r. Pierwszym układem cyfrowym, którego wszystkie elementy były wykonane w jednym krysztale krzemu, był przerzutnik zawierający dwa tranzystory, dwa kondensatory i osiem rezystorów. Tranzystory były wykonane przy użyciu technologii mesa, kondensatory jako spolaryzowane wstecznie złącza pn, a rezystory jako wyizolowane paski krzemowe. Wszystkie te elementy były połączone ze sobą w strukturę układową za pomocą złotych drucików. Czas od zrodzenia się idei scalania elementów układów w jednym krysztale do jej realizacji praktycznej był krótszy od trzech miesięcy. Układy te zostały po raz pierwszy zaprezentowane publicznie w USA w marcu 1959 roku pod nazwą solid circ11its. Zasadniczą wadą układów Kil by'ego była konieczność wykonywania indywidualnych połączeń między elementami układu za pomocą złotego drutu. Decydowało to o wysokim koszcie układu, małym uzysku produkcyjnym i niezadowalającej niezawodności. Pokonanie tych trudności stało się możliwe przez zastosowanie technologii planarnej, wynalezionej przez J. A. Hoerniego (Fairchild, USA) w 1958 r. w odniesieniu do indywidualnych tranzystorów krzemowych. Twórcą pierwszego układu w pełni scalonego, wykonanego technologią planarną, był badacz amerykański R. Noyce (F airchild). W lipcu 1959 r. zgłosił on patent na krzemowy układ scalony wykonany technologią planarną, przy użyciu wstecznie spolaryzowanych złączy pn do wzajemnej izolacji elementów układu. Wszystkie połączenia elementów w układzie były wykonane przy użyciu jednej, odpowiednio wytrawionej warstwy metalu, naparowanej na izolacyjną warstwę dwutlenku knemu. Dalszy rozwój nastąpił bardzo szybko, zwłaszcza po opracowaniu w 1960 r. w Bell Telephone Laboratories (USA) metody epitaksji. Pierwsze seryjnie produkowane cyfrowe układy scalone (układy RTL, Fairchild i Texas Instruments) pojawiły się już w 1961 r. W tym samym roku zostały opracowane pierwsze układy TTL (J. Buie z Pacific Semiconductor), a w Polsce opracowano półprzewodnikowe przyrządy wielozłączowe, realizujące funkcje liczników (A. Ambroziak, Polska Akademia Na11k [I]). W 1962 r. rozpoczęto produkcję układów DTL (Signetics, Fairchild) i opracowano pierwsze układy ECL (Motorola)oraz pierwsze układy MOS (S. Hofstein i F. Heiman z RCA). W 1963 r. wprowadzono seryjną produkcję układów TTL (rodzina SUHL, Sylvania), następnie rozwiniętą na skalę światową przez firmę Texas I nstrumems w rodzinie SN54/74. Układy CMOS zostały opracowane również w 1963 r. Jednak technologia unipolarna została wystarczająco udoskonalona dopiero w końcu lat sześćdziesiątych, gdy pojawiły się pierwsze układy pamięciowe MOS (1968), a następnie układy kalkulatorowe MOS (1970) i mikroprocesory MOS (1971). Układy 12 L zostały opracowane w 1972 r. W latach siedemdziesiątych i osiem- 199 5. CYFROWE U KŁAD Y SCALONE dziesiątych nastąpił szybki rozwój technologii wytwarzania układów scalonych, w celu osiągnięcia jak największego stopnia ~-alenia, największej szybk ości działania i najniższych kosztów. Ewolucja stopnia scalenia w czasie była następująca: układy SSI - 1961, MSI 1964, LSI - 1968, VLSI - 1975. ZASADNICZE PARAMETRY CYFROWYCH UKŁADÓW SCALONYCH Z punktu widzenia projektanta, istot ne są następujące parametry: wykonystującego cyfrowe układy 5.3 sca lone, szybkość działania, moc strat, odporność na zakłócenia, zgodność lączeniowa i obciążalność. Przy konstrukcji systemów cyfrowych powinny być znane rówmez wlaściwości obudów oraz niezawodność cyfrowych układów scalonych. Szybkość działani a 5.3.1 Podstawową miarą szybkości działania uk ładu cyfrowego jest czas propagacji 1, sekwencyjnych, często tliwość impulsów sterujących. Czas propagacji, określany również jako czas opóżnienia, definiuje się jako odstęp czasowy między zboczem impulsu wejściowego i wywołanym przezeń zboczem impulsu wyjściowego, przy umownie określonym poziomie napięcia na tych zboczach {rys. 5.2). Istnieją dwa zasadnicze czasy propagacji: przy przejściu napięcia wyjściowego U 0 układu z poziomu niskiego, czyli mniej dodatniego L, do wysokiego, czyli bardziej dodatniego H {In.fi), i odwrotnie, przy przejściu z poziomu wysokiego do niskiego (tr11 J. Wartość 1, określa się w związku z tym jako większy z tych dwóch czasów ł ub jako średnią arytmetyczną lnu i I riw tj. oraz, w układach IP = (lpLff+lrTIJ/2. Wartości czasów propagacji obowiązują tylko w odniesieniu określonych warunków pomiarowych, tj . przy w pełni zdefi niowanych do ściśle pa rametsprecyzowanym rach impulsu wejściowego, ok reślonym napięciu zasilającym, obciążeniu i temperaturze. Szczególnie istotne znaczenie. zwłaszcza w układach unipolarnych, ma obciążenie pojemnościowe, na które składają się pasożytnicze pojemności wejściowe sterowanych układów i pasożytnicze pojemności ścieżek łączących. W praktyce modeluje się te obciążenia p17,ez skupioną 1'Qjemność C1, o jednej z dwu umownych wartości: 15 pF łub 50 pF {p. rys. 7.12). 200 5.3. ZASADNICZE PAAAMETRY CYFROWYCH UKt.AOOW SCALONYCH o Nol>'fO• z:osiloJące Uc:c JPrqo ł zosiloJqcy I ce Maso b \~~ ~-·i_aiu...p...,....-"1 ~--- u,- - - ' ------- - - -Rys. S.2 t PU< tij .ikbd qfr~7 ~racntov. any prtt:i ,.C'l;;I~ $kr7Jnłf·, Uo---~ bf "ł4'_.M ' - - --1/ Na~.c u,- --- ---- --/ Iwo Umowne punkty zmiany sianu i ft.Im prubtql Clił.IO•~ p1oao-·e Ur oznllQiil 1UT\(ll'ny pullom 11a pięc111 , odpol'i:1 dający zmianie sta11u lo~ao Z punktu widzenia szybkości działania przewagę mają układy bipolarne, które np. w klasie ECL osi ągają opóźnienia propagacji 300 ps (SSI) i 10 ps (LSI) oraz częstotliwości pracy 0.5+ 5.5 GHz. Układy unipolarne na ogół nie przekraczają częstotliwości 500 MHz (z wyjątkiem układów GaAs, które osiągają częstotliwość kilkunastu GHz). MOC STRAT 5.3.2 Moc strat P układu określa się jako P = U cel co gdzie Ucc jest nap1ęc1em zasilającym i I ce jest prądem pobieranym ze źródła zasilania. Podobnie jak popr.tednio, dla dwóch stanów logicznych na wyjściu, można określić moc P1.. = UcclccdPrzy poziomie niskim na wyjściu) i Pu = Ucclccu(PrzY poziom ie wysokim na wyjściu). Moc średnią przy danym okresie przełąc1.eń T= t..,0 1.. + tw0u można w przybliżeniu określić jako P = (P1,.L„01.. + Pulw0u)f T jeżeli okres Tjest wystarczająco długi, by można pominąć wpływ skończonych czasów narastania i opadania zboczy. Podczas przełączeń niektóre układy scalone, np. TTL, pobierają znacznie większy prąd zasilania niż w stanie ustalonym. W ogólnym przypadku, przyjmuj itC I cdt) jako przebieg prądu zasilania w czasie, średn ia moc strat P wyrazi się zależnością p Ucc TJ =To l cc(t) dt =Ucelce.i. 201 5. CYFROWE UKŁAOY SCALONE gdzie leci, jest średnią wartością prądu zasilania, w praktyce mierzoną łatwo miliamperomierzem. Przy określaniu mocy strat P w układach TTL należy również uwzględnić dodatkową moc strat, wynikającą z obecności prądu wyjściowego I OL• który stanowi sumę prądów wejściowych, wypływających na poziomie L z przyłączonych wejść innych układów (p. 7.2.J). Jeśli zatem badany układ jest przyłączony do N wejść innych układów, to wynikająca stąd dodatkowo moc strat jest równa Nl 0 u„Uo1.• gdzie U0 dest napięciem wyjściowym badanego układu na poziomie L. Ze wzrostem częstotliwości f = l/T moc strat z reguły się zwiększa, pozostając w dalszym ciągu zależna od wartości I cc1. i I ecu· Typowe zależności średniej mocy strat od częstotliwości dla różnych serii układów scalonych TTL są pokazane na rys. 5.3, gdzie N oznacza liczbę układów z tej samej serii, stanowiących obciążenie danego układu. W odróżnieniu od układów TTL, układy ECL przy N = O nie zwiększają mocy strat przy wzroście częstotliwości, gdyż zasada ich działania polega na przełączaniu stałego prądu . Ilust racją tego jest przytoczona porównawczo na rys. 5.3 charakterystyka mocy strat popularnej serii MECL !OK (Motorola). io3 ----------------~-------mV/ p ECL ALS ECL:lh'- .2V c,,o 10·' ~----l--..,...;;.c....-1------ł-----l--TTL,CMOS: u,,„s.ov c,,SOpF 10->·L...,---.J..,.---...J...,---....L- - - - - 1 . - - - -l.,--- C - 10·.1 10 ·1 10·? Rys. 5.3. Typowe zależności średniej wyjątkiem układów 202 10 101 MH2: 10 3 mocy strat P pojedynczej bramki od często tliwości serii układów scalonych TTL, ECL i CMOS (CL= 50 pF ECL, d la których CL = 5 pF) przełą czania/ dla różnych z 1 5.3. ZASADNICZE PARAMETRY CYFROWYCH UKŁAOOW SCALONYCH Wartość w sposób istotny od obciążenia. Przy powoduje znaczny wzrost P przy wzroście częstotliwości. Efekt ten jest szczególnie widoczny w układach scalonych CMOS o bardzo małej mocy strat w stanie statycznym. Do zgrubnej oceny układów cyfrowych bywa czasem stosowany współ­ czynnik dobroci D, będący iloczynem czasu propagacji i mocy strat mocy strat zależy obciążeniu pojemnościowym prąd ładowania pojemności D = t,P Odporność na zakłócenia 5.3.3 Bardzo istotnym parametrem scalonego układu cyfrowego jest jego odporność na zakłócenia, mogące wywołać niepożądaną, choćby krótkotrwałą, zmianę stanu na wyjściu. Z punktu widzenia źródła zakłóceń można wymienić: zakłócenia napięcia zasilającego, zakłócenia uziemieniowe, w liniach transmisyjnych, zakłócenia odbiciowe w liniach transmisyjnych, Należy również wyróżnić zakłócenia generowane wewnątrz systemu cyfrowego podczas procesów przełączania oraz zakłócenia zewnętrzne, wywoła­ ne m.in. włączaniem i wyłączaniem odbiorników dużych mocy, np. silników obrabiarek itp. Wielkość zakłóceń odnosi się zwykle do wejścia układu cyfrowego, który na rys. 5.4 jest określony jako sterowany. zakłócenia przesłuchowe Ze kłócenia napięcia zasiłoJqcego Uktod sterujqcy Zakłócenia w linii transmisyjnej Uklod sterowony Rys. 5.4 Oddziaływanie zakłóceń układy na cyfro we Zoktócenlo uziemieniowe Rys. 5.5 Łańcuch in"•erteró"' Przy analizie wpływu zakłóceń na pracę układów cyfrowych, operuje się kilku modelami i definicjami. Często stosowanym modelem jest łańcuch wielu połączonych szeregowo inwerterów (rys. 5.5). Wykreślając na wspólnym rysunku ich charakterystyki przejściowe otrzymuje się pole charakterystyk, które jest 203 5. CYFROWE UKl.AOY SCALONE wynikiem technologicznego rozrzutu parametrów oraz wpływu temperatury, napięcia zasilają.cego i obciążenia. Pole to nazywa się również charakterystyką przejściową dla najgorszego przypadku. Przyjm ując oznaczenia podane na rys. 5.5, propagację sygnału cyfrowego inwerterów można określić prostą graficzną metodą iteracyjną, zilustrowaną na rys. 5.6. Dwa pola charakterystyk przejściowych P, i P2 są wyznaczone przez rozrzut zależności odpowiednio Y,_(E1 ), Y,_ +,(EH 1),••• i EH 1(Y.), Eu 2(Y.+ 1), •.•. Oznacza to, że pole P , odnosi się do inwerterów oznaczonych przez k, k + l, itd„ natomiast pole P2 do inwerterów k', (k + I)', itd. Pola te mają trzy wspólne obszary A, 8 i C. Oznaczaj ąc granice obszaru C w kierunku poziomym jako napięcia progowe Un i Un1 można wyróżnić trzy przypadki: 1. E1 < U n· Można wykazać, że dla dowolnej wartości E, mniejszej od U TL> w miarę propagacji sygnału przez kolejne dalsze inwertery, sygnał będzie dążył do obszaru A. Na rys. 5.6 jest pokazany przykład propagacji sygnału, która zwykle stabilizuje się po kilku stopniach. 2. E, > U TH· Podobnie jak poprzednio, sygnał E, po kilku stopniach osiąga obszar 8 (rys. 5.6). 3. U n~ E, ~ U ru· W tym przypadku nie można określić, do którego z obszarów stabilnych (A lub 8) będzie dążył sygnał E1. W związku z tym należy traktować obszar C jako niedozwolony z punktu widzenia prawidłowej propagacji sygnału. w łańcuch u X.\.,,- s Rys. 5.6 Określenie czuł ości zakłóceniowej melodą graficzną Na podstawie powyższego omówienia można określić czułość zakłó­ ceniową S. Jest ona różnicą maksymalnego napięcia wejściowego na poziomie niskim i minimalnego napięcia progowego (S,) łub różnicą minimalnego napięcia wejściowego na poziomie wysokim i maksymalnego napięcia progowego (S ul· 204 6.3. ZASADNICZE PARAMETRY CYFROWYCH UKŁADÓW SCALONYCH Klasyczna definicja marginesu zakłóceń jest związana również z propagacją zakłóceń w łańcuchu inwerterów (rys. 5.5). Jeśli na wejściu k-tego inwertera pojawi się zakłócenie sygnału /J.Ek, to na wyjściu tego inwertera otrzymuje się zakłócenie o wartości które jest transmitowane przez dalsze stopnie. Aby w czasie tej propagacji wartość sygnału pochodzącego od zakłóceń malała w kolejnych stopniach, niezbędne jest spełnienie warunku Na polu charakterystyk przejściowych punkty dla najgorszego przypadku wyznacza się na dolnej obwiedni dla poziomu niskiego i na górnej obwiedni dla poziomu wysokiego. W ten sposób otrzymuje się najmniejsze marginesy zakłóceń, odpowiadające najgorszemu przypadkowi (rys. 5.7). V Punkt jed nostkowego wzmocnienia no poziomie niskim (najgorszy przypodek ł Punkt jednostkowego wzmocnienia no poz iomie wysokim (najgorszy przypadek I I ML I• R ys. 5.7. I E I Określenie graficzne marginesów zakłóceń Najbardziej rozpowszechnioną definicję marginesu zakłóceń przedstawiono na rys. 5.8. Pole charakterystyk przejściowych U 0 (U ,) zastępuje się strefą złożoną z trzech prostokątów, wyznaczoną głównie przez współrzędne dwu punktów (A i B) leżących w odpowiednich zagięciach charakterystyk granicznych. Odcięta punktu A jest maksymalnym dopuszczalnym napięciem wejś­ ciowym na poziomie niskim (Unmaxl• a odcięta punktu B jest minimalnym dopuszczalnym napięciem wejściowym na poziomie wysokim (Um„;nl· Jeżeli odpowiednie graniczne napięcia wyjściowe oznaczyć jako U 01••„, i U oum;., to marginesy zakłóceń można określić jako różnice 205 5. CYFROWE UKŁADY SCALONE Obszar P Uo --- --- -- UoHll'lox No wyjści u ~ Poziom wysokilH) UOHll'lil'I I I I I PrzełQczonie I I I I UoLmo.: UoL"'il'I I rI --r-- Poziom niski(t) I I t-- 1--- - Un.~JJOLmo• UtL111oa I I I 1 1 Poziom 1 niski( L) I ullirnll'I Uołłinin Ui.Hmo.: I I I I frzełQ- I a Poziom czonie Ur I 1 1 <}:::li Na wejściu wysoki ł Hl Rys. 5.8. Praktyczne określenie statycznego marginesu zakłóceń MLmin = U I L.ma.x - U OL.max M Hmin = UOff min - U I Hmin przy czym dla oszacowania jednej wartości marginesu zakłóceń przyjmuje się mniejszą z dwóch wartości MI.min> M Hmin· Zgodnie z normą IEC 748- 2(1985) Digital integrated circuits do oznaczenia gwarantowanych wartości napięć i prądów zamiast indeksów max, min stosuje się litery odpowiednio A, B. Wówczas marginesy zakłóceń zapisuje się w skróconej postaci jako M Lmin = U ILA - U OLA Mllmin = Uouo-UIHB Jak można zauważyć na rys. 5.13, strefy poziomów niskiego i wysokiego na wejściu są większe od analogicznych stref na wyjściu odpowiednio o MI.min i M Hmin· Przy połączeniu łańcuchowym układów o charakterystyce przejściowej z rys. 5.8, stabilne stany logiczne na wejściach i wyjściach układów są wyznaczone przez granice obszarów P i R. W praktyce wartości graniczne najgorszego przypadku UoLm•» Unmu• U11I mfo i Uonmin są ustalane przez wytwórców cyfrowych układów scalonych w sposób nieco arbitralny, lecz umożliwiający łatwe wykonywanie testów kontrolnych. W praktyce do celów porównawczych i ilustracyjnych często operuje się typowymi charakterystykami przejściowymi, na podstawie których można określić typowe wartości marginesu zakłóceń (przy typowej temperaturze otoczenia, np. + 25°C, oraz przy typowym napięciu zasilania i obciążeniu). 206 5.3. ZASADNICZE PARAMETRY CYFROWYCH UKlAOOW SCALONYCH Omawiane wyżej marginesy zakłóceń są marginesami statycznymi, tzn. związanymi z zakłóceniami statycznymi. Określenie „zakłócenia statyczne" jest pozornie sprzeczne, gdyż zakłócenie na ogół kojarzy się z procesami przejś­ ciowymi. Pojęcie to jest jednak usprawiedliwione, gdyż przy dużej szybkości działania cyfrowych układów scalonych (czas propagacji od kilku do kilkudziesięciu nanosekund), zakłócenie impulsowe o czasie trwania np. jednej mikrosekundy może być już traktowane jako długie i w tych warunkach dynamiczny margines zakłóceń mierzony w stosunku do amplitudy impulsu zakłócającego jest równy wielkości otrzymanej przy pomiarze faktycznie statycznym. Przy transmisji sygnałów cyfrowych mogą również wystąpić zakłócenia związane z przesłuchem Geśli kilka linii jest prowadzonych blisko siebie na pewnej długości, co powoduje sprzężenie pojemnościowe i indukcyjne między liniami) oraz zakłócenia odbiciowe, wywołane niedopasowaniem impedancji charakterystycznej linii transmisyjnej z impedancją obciążenia. Zgodność łączeniowa i obciążalność 5.3.4 System cyfrowy składa się z odpowiedniej liczby połączonych ze sobą układów scalonych. Im większy i bardziej złożony jest system, tym większa jest liczba użytych układów scalonych, przy czym często ze względów technicznych i ekonomicznych należy ze sobą łączyć układy scalone z różnych serii i klas. Stąd zdolność bezpośredniej współpracy różnych rodzajów cyfrowych układów scalonych stanowi ich istotny parametr techniczny. Układy A są zgodne lączeniowo (kompatybilne) z układami B, jeśli zarówno bezpośrednie połączenie wyjścia układu A z wejściem układu B, jak i bezpośrednie połączenie wyjścia układu B z wejściem układu A zapewnia elektrycznie poprawną współpracę obydwóch łączonych układów. Cyfrowe układy scalone są projektowane głównie do współpracy z ukła­ dami z tej samej serii. Do ilościowego określania możliwości takiej współpracy jest wprowadzone pojęcie znormalizowanego obciążenia N. Obciążenie to jest miarą liczby wejść układów z tej samej serii, które są przyłączone jednocześnie do jednego wyjścia. Maksymalna wartość Nmu jest określana jako obciążalność wyjściowa (fan-out) lub po prostu obciążal110.fć. W układach scalonych TTL jest ona standardowo równa I O, co wynika z ograniczeń wywołanych obciążeniem statycznym. W układach ECL, MOS i CMOS obciążalność statyczna jest znacznie większa, lecz praktycznie dopuszczalna liczba N zależy od wartości pojemności obciążenia, która ogranicza szybkość procesów przełączania. Przy wzajemnym łączeniu układów scalonych z różnych serii, lecz w obrębie jednej klasy, należy uwzględnić odpowiednie poprawki, zwiększające lub zmniejszające wartości N ma.- 207 5. CYFROWE UKŁADY SCALONE scalonych z różnych klas często występuje konieczność stosowania odpowiednich układów po.fredniczących (translatorów) łub dodatkowych elementów, umożliwiających łączenie układów o różnym trybie pracy i różnych napięciach wejściowych i wyjściowych (zarówno na niskim, jak i na wysokim poziomie logicznym). Najczęściej jest stosowane określenie zgodności łączeniowej z układami TTL, co się tłumaczy bardzo szerokim upowszechnieniem tej klasy. Zdolność bezpośredniej współpracy z układami lTL, co stanowi dużą zaletę, mają układy NMOS i CMOS (przy uwzględnieniu określonych katalogowo ograniczeń, dotyczących N m„). Przy łączeniu układów OBUDOWY 5.4 Kostki krzemowe, na których są wykonywane powszechnie stosowane układy scalone, mają stosunkowo niewielkie rozmiary. Typowe układy TTL o małym stopniu scalenia (SSI) mieszczą się na kostkach o rozmiarach około I x I x 0.3 mm, a kostki typowych układów MOS LSI mają rozmiary ok. 5 x 5 x 0.4 mm. Kostki te są delikatne i podatne na szkodliwe wpływy otoczenia. Dlatego w końcu procesu technologicznego kostki są umieszczane w znacznie większych obudowach, które spełniają następujące zadania: ochrona kostek krzemowych przed szkodliwymi fizykochemicznymi wpływami środowiska, ochrona przed uszkodzeniami mechanicznymi, ułatwienie rozpraszania ciepła wydzielanego w wyniku strat energii w kostkach krzemowych podczas pracy, umożliwienie łatwego montażu obudowy na płytce z obwodem drukowanym dzięki znormalizowanym i wytrzymałym mechanicznie końcówkom zewnętrznym. Cyfrowe układy scalone są najczęściej wytwarzane w dwóch rodzajach obudów: w plastykowych i ceramic-t nych. Najczęściej są stosowane obudowy plastyk.owe, gdyż charakteryzują się niskim kosztem produkcji i dużą odpornością mechaniczną. Stosowane do tego celu nowoczesne tworzywa epoksydowe zapewniają dużą odporność na wilgoć i wnieczyszczenia zewnętrzne. Obudowa plastykowa tworzy z kostką krz.emową układu scalonego jednolitą całość, która powstaje w wyniku wlania kostki, wraz z wyprowadzeniami obudowy, płynnym tworzywem w odpowiedniej wtryskarce. Dlatego układy w obudowach plastykowych są bardzo odporne na uszkodzenia mechaniczne. Obudowy ceramiczne charakteryzują się bardzo dużą odpornością na działanie szkodliwych czynników chemicznych i zapewniają bardzo dobrą hermetyzację. Dlatego określenia „obudowa ceramiczna" i „obudowa hermetyczna" są tradycyjnie stosowane jako synonimy. Obudowy te są wykonywa- 208 U . OBUDOWY ne konstrukcyjnie w postaci pudełek ceramicznych z hermetycznie zamkniętą komorą wewnętrzną, w której znajduje się kostka krzemowa. Obudowy te są jednak znacznie droższe od obudów plastykowych i nie dorównują im odpornoś­ cią na uszkodzenia mechaniczne. Wyróżnia się następujące, podstawowe rodzaje obudów: obudowy z końcówkami do montażu wgłębnego (przez otwory w płytach montażowych), obudowy z końcówkami do montażu powierzchniowego (SMT - Sur- face-Mount Technology). Najczęściej stosowane obudowy do montażu wgłębnego są następujące: DIP (Dual In-line Package): obudowa dwurzędowa, SDIP (Shrink DIP): ścieśniona obudowa dwurzędowa, HDIP (Heat-dissipa1i11g DIP): obudowa dwurzędowa z rozpraszaczem ciepła, SIL (Single In-line Package): obudowa jednorzędowa (grzebieniowa, montowana pionowo), PGA, PGAP (Pin-Grid Array Package): obudowa z siatką końcówek szpil kowych, z reguły ceramicwa. Do montażu powierzchniowego najczęściej stosuje się następujące obudowy: SO, SOP (Small Outline Package): obudowa miniaturowa z końcówkami paskowymi, wygiętymi na kształt litery „L", SOJ (SO J-lead Package): obudowa miniaturowa z końcówkami bocznymi o profilu Litery ,)", bardzo popularna w układach pamięciowych, SSOP (Shri11k SOP): ścieśniona obudowa miniaturowa, QFP (Quad Fiat Package): prostokątna lub kwadratowa obudowa plaska, z końcówkami paskowymi „ L" na dwu lub czterech bokach, SQFP (Shrink QFP): ścieśniona kwadratowa obudowa płaska, PLCC (Plastic leaded Cliip Carrier): obudowa plastykowa z wyprowadzeniami bocznymi ,,J", zazwyczaj kwadratowa. Stosowane są również ceramiczne obudowy „bezkońcówkowe" CLCC (Ceramic leadless Chip Carrier), których wyprowadzenia są wykonane w postaci drobnych paseczków na bokach obudowy. Typowe liczby końcówek w obudowach dwurzędowych, miniaturowych i płaskich, stosowanych dla układów cyfrowych, są równe: 8, 14, 16, 18, 20, 22, 24, 28, 32, 40, 48, 52, 64, ~8. Obudowy PLCC mają liczbę końcówek podzielną przez cztery i typowo równą: 20, 28, 32, 44, 52, 68, 84. Największą liczbę końcówek zapewniają obudowy płaskie (QFP) i obudowy z siatką końcówek szpilkowych (PGA): 68, 80, 100, 128, 160, 192, 208, 232, 240 i więcej. W ceramicznych obudowach PGA wytwarza się m.in. popularne mikroprocesory 32- i 64-bitowe. 209 5. CYFROWE UKŁADY SCALONE Struktura wew nętrzna i rozmiary typowej, plastykowej obudowy dwu- rzędowej (DIP) o 14 końcówkach są pokazane na rys. 5.9. Na rysunku 5.10 a Dobro p r zewodnoSć ciep lno materi ału p lastykowe.go oqroniczo wzrost temper ciury kostk1 Materiał obudowy przylega ściśle do wyprowodzef\, nie dopuszczojqc do wilgoci Kołic6w k o 14 Jedno I ila obudowo podtrzymuje d r uty łoczqce , zopewniojq,c znocznq odporność no udary, wibracj e i pr zyspieszeni a Sztywne końców ki umoźli,wi aj ą. au tomo tyczny monto z Wyi;irowodzenio są silnie zwu;Jzone z obudowo , zop ew niojCtc stobilnoSC m@cho- Zgrvb~nio końcówek umożl iw iajo.. płytk9, n icznq UJ.-- - _ utrzymonie obudowy ponad Końc6wko montoZowo, zopewniojac wentylOCJE' i eliminujo.C wilgoć spod obudowy ~ 7 Szkielet metolowy uł at wi aj ą.cy rozpro - szanie Końc6wko 8 ci e pł o - b 19,Smo• g ~'~ UO 8 25 ma• - I ' I N ~ ~ -~ ~ ~ ~ - ~. ..... - ~ - 'c.. ~ ~ ~-- ..... ~ •. ~-- - 0,SJ J,60 J,OS ma> 12' ~ . ·~· . _J 2,2 -1-.1_1~1-1--1_1 ; I - O.SI - · ' 0,76 .I.... . mO • ml n ' Ii I 1 ~c oo ii: E ' wnętr zo I I 1- 0.32 mo x I' I I ,,li 11 + li ~-i?B -1. 10 8,3 g 8 · - - - · - -- Rys. 3.9. Dwurzędowa obudowa plastykowa o 14 końcówk ach (Philips SOT-27) a) budo,,.,'8. b) rozmiary i $pos0b oin;a~:i:1..-ń 210 k.ońcó.,.,-tk I 5.4 . OBUDOWY 5.2 Rys. 5.JQ. M iniaturowa obudowa plastykowa o 14 końcówkach (Philips S014) pokazano przykład plastykowej obudowy miniaturowej (SO). W rzucie bocznym charakterystyczne wygięcia końcówek w kształcie litery „L", przystosowane do montażu powierzchniowego. Zwraca uwagę dwukrotne zmniejszenie odstępów między osiami końcówek: z 2,54 mm (0,1 cala) do 1,27 mm (0,05 cala). W obudowach ścieśnionych SSOP odstęp ten zmniejszono jeszcze dwukrotnie (do 0,65 mm). W obudowach płaskich QFP (rys. 5.11) stosuje się odstęp 1,27, 1,0 i 0,8 mm, a w obudowach ścieśnionych SQFP 0,65 i 0,5 mm. Na rysunku 5.12 pokazano wygląd i rozmiary przykładowej obudowy PLCC o 20 końcówkach. W rzucie bocznym widać charakterystyczny profil wygięcia końcówek o kształcie litery „J". Konstrukcję i rozmia ry obudowy PGA o 84 końcówkach ilustruje rys. 5.13. Obudowy DIP, SIL, PGA, SOJ i PLCC mogą być umieszczane w specjalnych podstawkach. Ułatwia to znacznie wymianę układu scalonego w przypadku jego uszkodzenia lub przy zmianie układu na lepszy. Obudowa spełnia również istotną funkcję rozpraszania ciepła, na które zamienia się energia elektryczna pobierana przez układ scalony ze źródła zasilania. Zależnie od wartości mocy strat P układu, właściwości cieplnych obudowy i warunków ch łodzenia ustala się tempera tura kostk i krzemowej i temperatura obudowy. Ponieważ górna dopuszczalna temperatura 1Jma. kostki jest zwykle ograniczona przez wytwórców do wartości l50°C lub I 75°C, istotne jest określenie warunków rozpraszania ciepła wydzielanego w kostce. W celu obliczenia temperatury kostki posługujemy się wzorem analogicznym do prawa Ohma w elektrotechnice, wiążącym różnicę temperat ur I!.. Tna barierze cieplnej ze strumieniem cieplnym o mocy P i rezystancją cieplną O bariery widać 211 5. CYFROWE V Kł.ADY SCALONE O,!Ml JL_Q& Rys. \O j .J I Przykład 10 0,30 obudowy płaskiej QFP o 44 końcówkach (Phillps 12 SOT389-1) t.T= PO W oparciu o ten związek można obliczyć temperaturę 1j = T.+t.T= T.+P81• gdzie: 1j kostki (5.1) T. - temperatura otoczenia (ambient) Oi< - rezystancja termiczna obudowy między kostką (złączami ju11c1io11) i otoczeniem: o'° =o}<+o,. gdzie: 01, - rezystancja termiczna między kostką i obudową (case) 8„ - rezystancja termiczna między obudową i otoczeniem. Ponieważ wielkość 81, jest niezależna od użytkownika, może on do pewnego stopnia wpływać tylko na T,, i O,., tak dobierając warunki chłodzenia, aby nie przekroczyć dopuszczalnej wartości 7Jm,.- A zatem p mu (T.,) = ('T;m„ - T.,)/O}• Typowa dwurzędowa obudowa plastykowa o 14 końcówkach charakteryzuje się rezystancją termiczną o}o ~ 100°C/W. Zakładając 7j..., = 150°C i T. = 70°C otrzymujemy P'"" (70°C) = 0.8 W. Oznacza to, że dopóki moc st rat układu nie przekroczy 0.8 W i temperatura otoczenia nie zwiększy się ponad 212 5.4. OBUDOWY >---kwodrot ~ 2.29 r=::-:1 3J)4 4.19 Pł oszciyzno montozu 4,57 4321201918 s 17 6 16 7 15 8 14 0,51MIN Rys. 5./2 Wygląd o 20 i rozmiary obudowy PLCC końcówkach (Texas lnstrun1ents) 70°C, dopóty temperatura kostki krzemowej nie przekroczy dopuszczalnej wartości J50°C. W celu uzyskania jak naj lepszej niezawodności pracy układu, różnica między rzeczywistą temperaturą kostki i temperaturą dopuszczalną powinna być jak największa. Obudowy ceramiczne zapewniają lepsze rozpraszanie ciepła. Typowa wartość rezystancji termicznej dla takich obudów dwurzędowych o 14 końców­ kach wynosi 60°C/ W. Jednakże nowsze konstrukcje obudów plastykowych, dzięki zastosowaniu miedzianych ażurów końcówkowych oraz dodatkowych rozpraszaczy ciepła, nie są gorsze pod tym względem od obudów ceramicznych. Rozpraszacze ciep/a stanowią niewielkie paski a luminiowe, umieszczone pod ażurem podczas formowania obudowy tak, że mają one kontakt termiczny z kostką krzemową, stanowiąc jednocześnie jednolitą całość z obudową. Przy analizie mocy strat niektórych układów MOS LSI przyjmuje się, że moc strat układu Pnie jest stała, lecz zmienia się zależnie od temperatury kostki T; zgodnie z przybliżonym związkiem [6]. P ~ K/('f;+273°C) (5.2) gdzie K jest stałą, charakterystyczną dla danego układu. Na podstawie (5.2) i (5.1) można obliczyć wielkość K jako 213 5. CYFROWE UKt.AOY SCALONE l/Jskoźni k i końcówki A1 • Opcjo 2,Si. (0,'1'")-l l !-- :: ©©©©©©©©e ©© _J[ K @@)@)@@)@)@@)@)@@) , ~ T J @© ©©© t:; H @@) ~G@@@ ©© I @@ @@@ ~F@@)@) @@© ~ E ©@© @@©w., " „ ,ro?n1ono ~ - l o ©© ©© ©@)@) © © e © @) © © @ @ © @ @) @ © A @) @ @ @ @ @ © @ © © @ 1 2 3 4 s 6 7 a 9 10 11 c ©@)@) K = (T,, + 273°C) P + 910 P2 koncówko C3 Rys. 5.13 Przykład obudowy ceramicznej PGA z siatką 84 końcówek >'Zpilkowych (Texas lnsrrume111s) (5.3) gdzie P jest mocą strat podaną (pomierzoną) dla określonej (zwykle minimalnej) temperatury otoczenia T,,. Chcąc obliczyć moc strat układu dla r;.,•.,, należy rozwiązać powyższe równanie kwadratowe względem P, przy podstawieniu T. = r;,„„ oraz obliczonej poprzednio wartości K. Na przykład, mikrokomputer jednokostkowy MC6805U2 ma następujące dane firmowe (Mot.orola) dla dwurzędowej obudowy plastykowej: O;a = 100°C/W, 7J„„ = 150°C, P = 600mWprzy Ucc = 5.75Vi T. = 0°C.TemperaturakostkiprzyT,, = 0°Cwynosizgodniez(5.1 ). 214 5.5. NIEZAWOONOSC 1j = 0+0.6· 100 = 60°C i stała K jest równa, zgodnie z (5.3) K = 273·0.6+100 · 0.62 -== 200 Moc strat przy T..ma• = 70°C oblicza się na podstawie równania (5.3) jako P('T.,) = (- (T.,+273) + ((T.,+273) 2 +40i0 K)i)/ 2010 = = (-343 +(343 2 +4 · 100· 200)i)/ 200 = 0.508 w Największa zasilania, gdy 1j = z (5.2) moc strat układu r.,. Dla opisanego po włączeniu przy 1j = OOC otrzymujemy występuje bezpośrednio przykładu, Pm" ::::: 200/(0 + 273) ::::: 0.733 W NIEZAWODNOŚĆ 5.5 Układy scalone, podobnie jak wszystkie inne elementy składowe sprzętu elektronicznego, mają skończoną tnvalość (czas życia), czyli ograniczony czas t > O poprawnego działania. Trwałość jest zmienną losową, zarówno w odniesieniu do konk retnego układu scalonego, jak i do sprzętu, który zawiera takie układy. Trwałość zależy od warunków eksploatacji, jak i zestawu wymagań, których spełnienie stanowi o prawidłowości dzia.lania ukladu scalonego bądź sprzętu. N iezawodno.fć R(t) danego produktu definiuje się jako prawdopodobieństwo, że po pomyślnym przejściu testów produkcyjnych będzie on działać zgodnie z określonymi wymaganiami i w określonych warunkach użytkowania co najmniej przez dany okres czasu t. Praktyczne stosowanie teorii niezawodności jest określone licznymi normami międzynarodowymi: IEC 271(1974), 319(1978) i 409(1981) oraz normą krajową PN-77/N-04005. Niechf(t) stanowi funkcję gęstości prawdopodobieństwa trwalości t danego elementu, to znaczy że prawdopodobieństwo uszkodzenia tego elementu między t i t + .1.t jest równe f(t) .1.t. Wówczas prawdopodobie1istwo uszkodzenia element u w przedziale od O do t jest określone dystrybuantą I F(t) = JJ(x)dx o i niezawodność elementu wyrazi R (t) = 1- F(t), t się funkcją: >o, Funkcja R (t) jest zazwyczaj funkcją monotonicznie przebieg funkcji R (t) ilustruje rys. 5.14. 215 malejącą. Przykładowy 5. CVFAOWE UIC'.lADY SCALONE R(t) 1,0 . 0,5 10 20 30 40 t ł miesiqce J Rys. 5.14 Przykładowy pr7.ebieg funkcji R(r) Chwilowa intensywność uszkodzeń, zwana także funkcją ryzyka i definio- wana związkiem 2(1) = - 1- dF(i) R(t) dt ' t >O jest najczęściej stosowanym wskaźnikiem zmian niezawodności w czasie. Na podstawie poprzednich wzorów .ł(i) = f(t) I dR(t) 1- F(t) = - R(t) dt Do zapisu niezawodności elementu wystarcza więc jedna z funkcjif(t), f(t), R(t) lub .ł(t). Funkcje F(t) i R (t) są bezwymiarowe, natomiast funkcje flt) i .ł(t) mają wymiar odwrotności czasu. Chwilową intensywność uszkodzeń można także zapisać w postaci 2(t) = -~(lnR(t)) de skąd wynika, że I R(t) = exp( - J 2(x)dx) o Funkcję gęstości f(t) = .ł(t)R(t) można zatem przedstawić jako I f(t) = .ł(t) exp ( - J .ł(x) dx) o Średnia trwałość element u m, stanowi pierwszy moment zmiennej losowej o wartościach t m, = 216 "'f tf(t) dt o 5.5. HIEZAWOONOSC Jeśli lim (t R (t)) = O, to m, = '° JR(t)dt o Wariancja trwałości jest określona przez drugi moment centralny uf= '°J(t-m,)2 /(t)dl = o "' 2J 1R(t)d1-111~ o Typowa "wanienkowa" postać charakterystyki intensywności uszkodzeń A.(t)jest pokazana na rys. 5.15. Wyróżnia się na niej trzy charakterystyczne części - okresy. Część I jest związana z początkowym, opadającym odcinkiem charakterystyki, co jest wynikiem defektów wprowadzonych już w czasie produkcji (tzw. okres śmiertelności niemowlęcej). Część II, w której intensywność uszkodzeń jest zazwyczaj w przybliżeniu stała, stanowi właściwy okres użyt­ kowania. Występujące w tym okresie uszkodzenia mają charakter losowy. Część Ili jest związana z zużyciem („starością'') elementów. Układy scalone zazwyczaj nie osiągają tego okresu podczas normalnej pracy, gdyż wcześniej następuje ich zestarzenie technologiczne i są wymieniane (tj. zbudowany z nich sprzęt) na nowocześniejsze. W celu wykrycia i odrzucenia układów z defektami, które spowodowałyby uszkodzenia w okresie l, przy produkcji układów scalonych do specjalnych zastosowań stosuje się wzmożone kontrole między poszczególnymi fazami procesu technologicznego, a gotowe układy poddaje się starze11i11 wstępnemu (ro.in. szokom termicznym, wygrzewaniu w podwyższonej tem· peraturze i zasilaniu podwyższonym napięciem). Próby te są określone właś­ ciwymi normami (np. w USA norma MIL 883). W nowoczesnych technologiach Liczba układów odrzuconych po starzeniu wstępnym nie przekracza ok. 0.05 %. Dla ufytecznego odcinka Il charakterystyki z rys. 5.15, podstawiając A.(t) = const = J. > O otrzymujemy AO J Rys. 5.15. Typowy p=bieg ultiności 217 intensywności uszkodzeń od czasu 5. CYFROWE UKŁADY SCALONE f(t) = .A.exp( - .A.t) czyli rozkład wykładniczy o parametrach 111, = <1, = 1/l Wówczas R (t) = = exp(-.A.t) i F(t) = 1- exp( - .A.t). Jeśli .A.t <<I, to można zastosować przybliżenie R (t) = exp(-,l t) "' I -.A. t Założenie o stałej intensywności). (t) na użytecznym odcinku charakterystyki (li) nie zawsze jest spełnione. Zamiast tego często obserwuje się łagodny wzrost lub spadek intensywności. Sytuację taką modeluje się przez użycie rozkładu Weibulla, opisanego funkcją gęstości f(t) = .A.ót6 - ' exp( - 2t6) t >O współczynnikiem kształtu. gdzie ó jest 2(t)=.A.ot6 - 1 Wtedy intensywność uszkodzeń t>O Przy ó < I intensywność uszkodzeń maleje monotonicznie w czasie, przy ó > I monotonicznie wzrasta, a przy ó = I jest stała, czyli otrzymujemy rozkład wykładniczy. Rozkład Weibulla z ó = 0.5 bywa stosowany do oceny niezawodności cyfrowych układów scalonych. Innym rozkładem stosowanym do modelowania zmian intensywności jest rozkład lognormalny (2,4]. W praktyce do oceny niezawodności układów scalonych z akceptowanych w produkcji układów wybiera się losowo próbkę o pewnej liczności n i poddaje się j ą określonym wymuszeniom środowiskowym i elektrycznym w ustalonym czasie t, po czym określa się liczbę r układów uszkodzonych. Estymatorem niezawodności jest miara R "' (n -r)/n Przy założen iu rozkładu wykładniczego estymator średniej intensywności uszkodzeń oblicza się jako 2= r/(nt) Estymator .średniej trwa/ofri (czasu do uszkodzenia, MTTF - Mean Time to Failure) określa się jako l "' t/2 = nt /r Wartości intensywności uszkodzeń). są podawane w wymiarze 10- 6/h, %/ IOOOh (tj. 10- 5/h) albo w jednostkach FIT (Failures In Ilme) i równych 10- 9/h. Zaleca się (IEC Pub!. 319), aby przy podawaniu wartości miar intensywności uszkodzeń był określony również czas r trwania testu (wartości zalecane to I ooo h i 2000 h). 218 5.5. NIEZAW0DNO$C Ponieważ estymatory są również zmiennymi losowymi, zatem do oszacowania średniej wartości intensywności uszkodzeń należy określić koniec A.9 przedziału ufności przy wybranym poziomie ufności /J, zazwyczaj równym 0.6 lub 0.9. Wielkość 2wt1 przyjmuje wartości zmiennej losowej o rozkładzie x 2 (chi kwadrat) [ 4], czyli A.9 można obliczyć jako A.9 (p, n, r, t) = x2 (cx, v)/ (2nt) gdzie: a. = I - p, v = 2 (r + I) - liczba stopni swobody rozkładu /(a, v), podanych w tablicach statystycznych. x2 o wartościach Wartości A.,(p, r) można też łatwo określić przy użyciu stablicowanych wspól· czynników przeliczeniowych A.~/l [3]. Na przykład, dla r = 1,2,3 współczynniki te wynoszą przy fJ = 0.6 odpowiednio 2.0, 1.6, 1.4, a przy P= 0.9 odpowiednio: 3.9, 2.7, 2.3. W publikacji IEC 409(1981) jest podany jeszcze inny sposób obliczania końca przedziału ufności dla estymatora intensywności uszkodzeń, wykorzystujący tablicę współczynników. Przyczyny lić uszkodzeń cyfrowych układów scalonych można pedzie- na: defekty kostki krzemowej, a więc defekty struktury wywołane zanieczyszczeniami wprowadzanymi w procesach dyfuzji, przebicia spowodowane defektami izolatora bramkowego (głównie Si0 2 ) w układach MOS, defekty powierzchniowe i defekty metalizacji (mikropęknięcia, elektromigracja, zie kontakty); defekty związane z procesem montażu kostk i w obudowie, a zwłaszcza z połączeniami drutowymi między polami kontaktowymi kostki i wyprowadzeniami wewnątrz obudowy (rys. 5.9a); defekty budowy, np. utrata hermetyczności obudowy ceramicznej w rezultacie niewłaściwego jej zamknięcia lub naprężenia. Wywołane tymi przyczynami uszkodzenia mogą być zupelne (katastroficzne), gdy następuje zniszczenie układu lub utrata właściwości uniemożliwiająca jego zastosowanie, albo parametryczne, czyli powodujące zmiany parametrów elektrycznych układu poza granice określone w normach lub warunkach technicznych. Intensywność uszkodzeń ,l cyfrowych układów scalonych MOS LSI i VLSI zawiera się zazwyczaj w granicach 100-1000 FIT, czyli jest rzędu 10- 1/h. Odpowiada to trwałości 1/ A. równej 106 + 107 godzin, czyli 117- 1170 lat, co oczywiście wyklucza badanie trwałości pojedynczych układów (11 = I). W praktyce zwykle bada się próbki o liczności n= 50 + 500 układów, ale i wtedy czas badania w normalnych warunkach eksploatacyjnych byłby bardzo długi. Dlatego, aby skrócić czas badania niezawodności, wykonuje się badania przyspieszone, w których badane układy poddaje się działaniu znacznie wyższej 219 5. CYFROWE UKŁAOY SCALONE temperatury niż w normalnych warunkach. Wysoka temperatura kostki wynika wówczas zarówno z podniesionej temperatury otoczenia T,,, jak i z energii cieplnej rozpraszanej w kostce (gdyż badane układy są zasilane normalnym lub podwyższonym napięciem). Efektem takiego postępowania jest znaczne skrócenie trwałości badanych układów. Otrzymane wyniki są następnie ekstrapolowane na temperaturę z zakresu normalnego użytkowania. Wykorzystując model Arrheniusa, który opisuje proces degradacji trwało­ ści obiektów fizycznych przy wzroście temperatury, można przeliczyć trwałość z temperatury badania T,, na temperaturę „normalną" Tm przez użycie wspólczy1111ika przyspieszenia F: 1 1 F"" - - )) exp(~(k T„ T,, energia wzbudzenia (w cyfrowych układach scalonych równa ok. I eV), k - stała Boltzmanna (k = 8.62·10- s eV/K). Temperatury T,, i T„ wyrażone w skali bezwzględnej dotyczą kostki krzemowej (złączy), a temperaturę otoczenia T. w czasie badania zwykle ustala się na poziomie I 25°C lub dobiera się tak, aby temperatura T,, była bliska maksymalnie dopuszczalnej temperaturze kostki (zazwyczaj 7Jm„ = 150°C przy stosowaniu obudów plastykowych i 7Jmax = 175°C przy obudowach ceramicznych). Zgodnie z równaniem (5.1), temperatury T,, i T„ są zatem nieco wyższe niż odpowiadające im temperatury otoczenia. gdzie: E0 - Przykład. W badaniach mik roprocesorów M C6800 w firmie M oiorola [ 6] n = 135 układów w obudowach plastykowych poddano testowi przyspieszonemu przy T. = I 25°C, uzyskując nt (125°C) = 135576 układogodzin. Współczynnik przyspieszenia przy T„ = 365 K (będącej przy T. = 70°C) i T,, = 415 K (będącej przy T. = I 25°C) wynosi F ""' 49, czyli równoważna liczba ukladogodzin przy temperaturze T. = 70°C jest równa m: (70°C) = Fm (125°C) ""' 6.6· 106 . Ponieważ w czasie testu wykryto jedno uszkodzenie (r = 1), zatem liczba stopni swobody rozkładu x2 wynosi v = 4. Przy założonym poziomie ufności fJ = 0.9 mamy a = 1- fi = 0.1 i z tablic rozkładu x2 otrzymujemy wartość x2 (0.1,4) ""'7.78. Miara ).9 intensywności uszkodzeń wynosi zatem 7.78/(2 · 6.6 · 106 ) = 5.9 · 10- '/ h = 590 FIT, czemu odpowiada trwałość l /.i.9 = 1.7 · 106 h = 194 lata. Warto zauważyć, że ten rezultat można otrzymać obliczając I. = 1/(6.6 · 106 ) = 1.52 · 10- 7 i stosując omówiony poprzednio przeli9(1.. = 3.9 dla r = l. cznik Oszacowanie niezawodności układów scalonych może być uzyskane nie tylko na podstawie badań fizycznych, lecz również przez prognozowanie, które może wyprzedzać produkcję tych układów. W praktyce najczęściej są stosowane metody prognostyczne opisane w amerykańskim podręczniku wojskowym Military Handbook 217C i pr.tytoczone w [3). liczbę J./· 220 5.5. NIEZAWODNDSC W praktyce często stosuje się przybliżone oszacowanie, zgodnie 2 którym średnia intensywność uszkodzeń układów scalonych wzrasta dwukrotnie przy wzroście temperatury kostki o IO K. Układ scalony o dużej mocy strat, pracujący w urządzeniu bez wentylacji, może mieć temperaturę kostki wyższą od temperatury otoczenia o 40-60 K. Odpowiednio zainstalowany wentylator może obniżyć ten przyrost temperatury do l O 30 K, czego wynikiem może być ok. IO-krotne zmniejszenie intensywności uszkodzeń tego układu. Między innymi dlatego współczesne mikroprocesory są chłodzone specjalnymi wentylatorkami. Niezawodność urządzenia, zawierającego pewną liczbę m elementów, można określić następująco. Zakładamy, że aby system działał prawidłowo, to jego wszystkie elementy muszą działać prawidłowo. Jeśli oznaczymy odpowiednie intensywności uszkodzeń przez 2 1, 2 2 „„, J.„, to niezawodność urządzenia będzie wyrażona przez iloczyn niezawodności elementów składowych R (t) = R, (t)' R 2 (1)'·· R„(1) = = exp ( - ). 11) · exp ( -). 2 1)' ·· exp( - J.„1) = exp( - J.1) czyli niezawodność urządzenia jest również funkcją wykładniczą, a intensywność uszkodzeń urządzenia ().) jest sumą intensywności elementów składowych. Opierając się na tych danych uzyskanych od wytwórców elementów, można określić nie-~wodność urządzenia. W tablicy 5.1 podane są prtykladowe wartości intensywności uszkodzeń dla typowych elementów urządzeń elektronicznych [7). Na przykład, niezawodność urządzenia zawierającego 1 mikroprocesor VLSI, 12 układów scalonych LSI, 5 układów MS!, 3 układy SSI, 12 rezystorów, 22 kondensatory blokujące i 1 złącze 50-stykowe na jednej płytce drukowanej, można obliczyć następująco: ). = 500+ 12·250+5 · 160+3·90+ 12 · 10+22· ł5+50· 10+ + 1000 FIT= 6520 uszkodzeń na 109 godzin czyli średnia trwałość (MTIF) urządzenia wynosi 1/ i. ~ 17.5 lat. TYPOWE INTENSYWNOŚCI USZKODZĘN ĘLĘM F.NTÓW ELEKl"RONlCZNVCH PRZY TEMPERATUR:W Elemenl UkJad scalony SSI Układ MSI Układ LSI Układ VLSI Rezystor Kondensator blokujący Złącze krawędziowe (na styk) Płytka drukowana 221 + ss•c Tablica 5.1 Intensywność us•kodzcń (FIT) 90 160 250 500 10 IS 10 1000 5. CYFROWE UKŁADY SCALONE LITERATURA I. Ambroziak A.: A semiconductor f'U/Se counter, Bull. Aca d. Po l. Sci, Ser. tech. 9, 1961 , 179 2. G laser A. 8 ., Subak-Sharpe G . E.: Integrated tircuit. engi11eeri11g, Addison·Wesley, 1977 3. Gładysz H., Peciakowski E.: Niezawodność element6w elektronicznych, WKL, Warszawa 1984 4. Grzesiak K .: N ieza~:odność urządzeń elektronicznych, PWN, \Varszawa 1965 5. Kohoneo T.: Elementy i uklady elektronicznych maszyn cyjrowych, WNT, Warszawa 1975 6. Single-chip microcomputer data 1984/85, Mo torola Semiconductors 7. Wakerly J. F.: Digital design - Principles and pr<>ctices, Second Edition, Prentice-Hall International, 1994 6 WYTWARZANIE CYFROWYCH UKŁADÓW SCALONYCH Niniejszy rozdział zawiera znacznie skróconą treść w porównaniu z rozdziałem „Technologia cyfrowych układów scalonych" zawartym w poprzednich wydaniach tej książki. Konieczność wykonania tych skrótów wynikła z potrzeby znacznego rozszerzenia dalszych rozdziałów, zwłaszcza rozdz. 9. Kompleksowy proces wytwarzania cyfrowych układów scalonych na podłożu krzemowym składa się z wielu autonomicznych procesów cząstk owych, z których niektóre są powtarzane. Wszystkie te procesy można z grubsza podzielić na cztery zasadnicze części. Pierwsza z nich obejmuje czynności związane z oczyszczaniem krzemu, wytwarzan iem monokryształów krzemu i krzemowych płytek podłożowych. Druga część obejmuje cztery zasadnicze czynności, które określa się razem jako proces planarn.v: izolacja, litografia, domieszkowanie i wytwarzanie warstw przewodzących. Trzecią część stanowią czynności związane z umieszczeniem krzemowych kostek układów scalonych w obudowach, a czwarta część obejmuje czynności testowania układów podczas procesu wytwórczego i na jego ko11cu. Trzy ostatnie części t worzą właściwy proces wytwórczy układów scalonych. Niezbędnymi materiałami wstępnymi dla tego procesu są krzemowe płytki podłożowe i kompletny projekt technologiczny danego typu układu scalonego. WYTWARZANIE PŁYTEK PODŁOŻOWY C H 6.1 Krzem w postaci zwykłego piasku jest najpierw czyszczony chemi(.-znie do otrzymania czystości ok. 99.9%, a następnie stapiany w pręty. Pręty te określa się jako polikrystalicz11e, gdyż składają się one z wielkiej liczby kryształów o losowej orientacji wzajemnej. Zanieczyszczenia, zbierające się na obrze-'ach tych kryształów, są usuwane w procesach topienia strefowego. Usunięcie szkodliwych zanieczyszczeń jest niezbędne, aby następnie wprowadzić określoną ilość 223 6. WYTWARZANIE CYFROWYCH UKł.AOOW SCALONYCH znanych domieszek i otrzym ać w ten sposób półprzewodni k właściwego typu i o żądanej rezystancji właściwej. W metodzie topienia strefowego wykorzystuje się fakt, że substancje zanieczyszczające mają zwykle niższą temperaturę topnienia niż czysty krzem . Pręt z polikrystalicznego krzemu wprowadza się do rury kwarcowej z gazem obojętnym, takim jak hel lub argon, i przy użyciu pola elektrycznego wielkiej częstotliwości stapia się pręt na małym odcinku (strefie), jak pokazano na rys. 6.1. Zanieczyszczenia zbierają się w miejscach, gdzie temperatura stopu jest najniższa, tj. na obrteżach strefy topnienia. Przy stopniowym przesuwaniu strefy topnienia z jednego końca na drugi zanieczyszczenia zostają zebrane na końcu pręta i mogą być łatwo usunięte. Przesuwanie strefy topnienia następuje przez przemieszczanie cewk i, wytwarzającej pole elektryczne wielkiej częstotliwości. Cewko o o o o"o Zanieczyszczenia ~ ~ -M Prę t polikrystolieznego y ~,___ _ __~ krzemu Gaz ( hel,argonl obojęt ny 00000 Przemieszczenie cewki \Rura kwarcowa Rys. 6.1 Oczyszczanie po likrystalicznego krzemu topienia strefowego me t odą W wyniku procesu oczyszczania otrzymuje się pręt czystego (tj . o wystarczająco małej ilości zanieczyszczeń resztkowych) polikrystalicznego krzemu. Polikryscaliczna struktura pręta jest rezu ltatem losowego charakteru zestalania się stopu, gdyż w wielu miejscach na obrzeżu strefy topienia tworzą się wzajemnie niezależne kryształy, które następnie rosną i wreszcie zwierają się ze sobą w sposób nieregularny. Obszary styku kryształów zakłócają rozkład rezystancji w pręcie, podczas gdy do wytwarzania ukladów scalonych niezbędny jest rozklad jednorodny. Wymagania te spełn ia struktura mo110krystalicz11a: pręt, stanowiący zbiór atomów regularnie rozłożonych we wspólnej, jednorodnej siatce krystalicznej. Wytwarzanie prętów monokrystalicznych jest dokonywane zwykle metodą Czochralskiego. Czysty polikrystaliczny krzem umieszc-a się w tyglu kwarcowym i stapia polem elektrycznym o wielk iej częstotliwości w atmosferte argonu, aby zapobiec utlenianiu krzemu. Temperaturę stopu stabilizuje się na poziomie 1433°C, tj. ok. I 3K powyżej temperatury topnienia krzemu. Do roztopionego krzemu dodaje się równ ież niewielkie ilości potrzebnych domieszek, aby otrzymać półprzewodnik o żądanym typie przewodnictwa i określonej rezystancji właściwej. 224 6.1. WYTWAA.ZANIE Pt.YTEK POOŁOŻOWYC H Prof. dr Jan Czochralski (1885- 1953) - wybitny polski uczony, profesor zwyczajny metalurgii i doktor Honoris Causa Politechniki Warszawskiej . W czasie badań w Niemczech, w roku 1916 odkrył on nową metodę otrzymywania monokryształów w postaci cienkich pręcików, którą opublikował w roku 1918 (Zeitscl1rijifiir physikalische Chemie 92, 219 (1918)). Obszerne omówienie sylwetki, osiągnięć naukowych i niełatwej drogi życiowej prof. J . Czochralskiego jest zawarte w książce prof. Józefa Żmii Ot.rzymywanie monokryształów, PWN, Warszawa 1988, oraz w referacie prof. Józefa Żmii Prof dr Jan Czochralski i jego wkład do nauki, Mat. Konf. Nauk. Jurata 85, Wyd. Wojskowa Akademia Techniczna, Warszawa 1987, str. 8+ 19. W kierunku roztopionego krzemu opuszcza się precyzyjnie zorientowany kryształ zarodnikowy i jego dolną część zanurza się do stopu (rys. 6.2). Zarodnik jest następnie stopniowo wyciągany w górę i jednocześnie obracany. Następuje wyciąganie monokryształu zapoczątkowanego przez zarodnik, polegające na stopniowym zestalaniu się materiału półprzewodnika we wspólną z zarodnikiem regularną i jednorodną siatkę krystaliczną. W rezultacie otrzymuje się pręt o typowej średnicy 12.5 cm (5 cali) i długości ok. l m (są wytwarzane również pręty o większej średnicy i długości). ł Wyciąganie Zarodnik Wyci qgony pr~t monokrysto liczne90 krzemu Roztopiony kr zem z domieszkami --ii-Argon Rys. 6.2 Wytwarzanie pręta monokrystaliczoego krzemu metodą Czochralskiego Domieszki wprowadzone do krzemu są pierwiastkami z trzeciej i piątej kolumny układu okresowego. Domieszki trójwartościowe służą do wytwarzania półprzewodnika typu p i noszą nazwę domieszek akceptorowych. D omieszki 225 &. WYTWARZANIE cYFROWYCH UKŁAOOW SCALONYCH pięciowartościowe służą do wytwarzania półprzewodni ka typu 11 i nazywają się dom ieszkami donorowymi. Najczęściej stosowane domieszki podane są niżej . domieszki do11orowe (lypu 11): fosfor P, arsen As, antymon Sb domieszki akceptorowe (typu p): bor B, gał Ga, ind In, aluminium Al Pręt monokrystaliczny jest cięty piłą diamentową na płytki o średnicy użytego pręta i grubości 0.4 + 0.5 mm. które są następnie szlifowane, polerowane i trawione chemicznie do osiągnięcia gładkości powierzchni o ptycznych. Płytki te określa się jako podłożowe, gdyż na nich (i w nich) w wyniku dalszych procesów technologicznych wytwarza się struktury scalone. Tak przygotowane płytki podłożowe, o typo wej grubości 0.3 + 0.4 mm, slanowią punkt wyjściowy do dalszych czynności wchodzących w skład procesu wytwórczego. PROCES PLANARNY 6.2 Proces planarny, opracowany w latach 1958- 60 przez J. A. Hoc rniego i innych, obejmuje wszystkie zasadnicze czynności potrzebne do wytworzen ia w płytce podłożowej cyfrowych układów scalonych, zawierających elemen ty czynne (tranzystory) i bierne (diody, rezystory) oraz ich połączenia, w wielu kolejnych krokach. Określenie „planarny~. kt óre można inaczej przedstawić jako „płasz­ czyznowy", odnosi się do geometrii struktury tranzystora łub układu scalonego wytwarzanego tą metodą, a w szczególności do dostępności powierzchniowej do wszystkich złączy tranzystora. W istocie strukt ury te, jakkolwiek są trójwymiarowe i wytwarzane w głąb płytki podłożowej, zachowują względ nie płaską powierzch nię w sekwencji kolejnych czynności technologicznych. Przyk ład prostej struktury tranzystora 11pn połączonego z rezystorem jest pokazany na rys. 6.3. Jak widać, tranzystor jest wykonany w postaci kilkuwarstwowej „kanapki" umieszczonej w „k ieszeni" na powierzchni płyt k i podłożowej. Rezystorem jest pasek półprzewodnika o tej samej rezystywności, co jedna z warstw tranzystora, najczęściej typu p. Symbolami p + i 11 + są oznaczone obszary półprzewodni ka silnie domieszkowanego. Zwróćmy uwagę na proporcje wymiarowe. P rzy typowej grubości płytki podłożowej, równej 0.4 mm, łączna grubość warstw, w których są tworzone struktury scalonych elementów, wynosi 3 + 5 µm , czyli zaledwie o k. I % grubości płytki. Oznacza to, że układy scalone są wytwarzane w bardzo cienkiej „skórce" na powierzchni płytki krzemowej. Struktury tranzystora i rezystora są odizolowane elektrycznie od siebie i innych elementów układu scalonego przez dwa spolaryzowane wstecznie 226 6,2. PROCES PLANARNY o Podłoże 9 Tranzystor :..„ł_ ,....r---- paso żytn iczy P"P ' c ! B•o>-~--t ) E c Me lol Warstwo zagrzebano Pod łoże Rys. 6.3. Przykładowa struktura cranzyscora r1p11 p scalonego z rezystorem a)scbemat cle-łaryczn)', b) $Cłiemat loPOgr.al'ian)'.C) przekrój p17.cz śtodek suuk1ury (ry$t11'ltk: oricnutc)jny beztachowania $kali) złącza pn, gdzie obszar p stanowi podłoże wraz z okalającymi te struktury obszarami p+, a obszar n stanowi warstwa epitaksjalna wraz z warstwą zagrzebaną n+. W takim najprostszym przypadku mówimy o izolacji złączowej bipolarnego układu scalonego. Jeśli jeden koniec rezystora jest połączony z dodatnim napięciem zasilającym (znak + na rysunku), to koniec ten łączy się również z obszarem n pod rezystorem, aby zmniejszyć efekty pasożytnicze. Celem procesu planarnego jest wykonanie jednocześnie bardzo wielu podobnych struktur, tworzących wiele oddzielnych układów na płytce podłożowej. Aby na powierzchni płytki otrzymać warstwę innego półprzewodnika, 227 6. WYTWAAZ.AHIE CYFROWYCH UKlAOOW SCALONYCH wykonuje się domieszkowanie, czyli wprowadzenie do płytki pod łożowej okreś­ lonego rodzaju i ilości domieszki, która lącznie z domieszk11 istniejącą już w płytce stanowi o rodzaju otrzymywanego półprzewodnika i jego rezystywności. Aby warstwy takie otrzymać w postaci wydzielonych plasterków (do wykonania tranzystorów) lub pasków (do wykonania rezystorów), wykonuje się domieszkowanie lokalne. W tym celu najpierw wykonuje się na całej płytce operację izolacji, k tórą w najprostszym przypadku stanowi utlenianie przypowierzchniowej warstewki krzemu. Przekształca się ona w nieprzepuszczalny dla wprowadzanej domieszki izolator (dwut lenek krzemu SiOj, a następnie wykonuje się w tej warstwie tlenkowej otwory, zwane "oknami", przez które można prowadzić operację domieszkowania lokalnego. Ta operacja przygotowawcza nosi nazwę licografli. Kilkakrotne powtórzenie cyklu litografii i domieszkowania lokalnego umożliwia jednoczesne wykonanie na płytce podłożowej wielu (rzędu milionów) struktur tranzystorów, diod i rC'lystorów. Aby je połączyć elektrycznie w odpowiednie konfiguracje układowe, wykonuje się dodatk owy proces litografii, odsłaniający w oknach kontakcy, czyli wyprowadzenia łąC7.eniowe tych elementów. Następnie pokrywa się calą płytkę warstwą metaliczną (zazwyczaj aluminium) i w końcowym procesie litografii odsiania się tę warstwę w takich miejscach, aby po jej wytrawieniu o trzymać żądany układ połączeń elementów. W każdym procesie litograficznym wytwarza się na płytce okna o innych kształtach, rozmiarach i umiejscowieniu. Dlatego do wykonania każdego procesu litografii potrzebny jest projekt topograficzny, w postaci od powiedniej maski. Końcowy etap produkcji to czynności testowania układów na płytce, podziału płytki na oddzielne kostki (zawierające oddzielne struktu ry układowe), umieszczenie kostek w obudowach i wykonanie badań końcowych. Obszary izolacyjne 6 .2.1 Obszary izolacyjne są wytwartane w układach scalonych zarówno przejściowo (w t rakcie litografii), jak i trwale. Służą one do elektrycznej izolacji określonych obszarów półprzewodnika wewnątrl elementarnych struktur tranzystorów, do izolacji wzajemnej tych struktur między sobą, do izolacji sieci połączeń metalicznych na powierzchni kostek układowych oraz do ochrony powierzchni kostek przed szkodliwymi wpływami środowiska. Obsza ry te mają postać cienkich warscw, wytwarzanych na powierzchni płytk:i, lub ścianek izolacyjnych, wytwarzanych w fosach okalających struktury tranzystorów i rezystorów. Warstwę izolacyj ną, której zasadnie-tym celem jest ochrona powierzchni krzemu przed szkodliwymi wpływami środowisk a, określa się jako pasywującą, a proces jej wytwarazania nazywa się pasywacją. Powszechnie stosowanym materiałem izolacyjnym jest dwutlek krzemu SiO„ często stosowany łącznie z innym dielektrykiem, azotkiem krzemu Si 3 N 4 . Wytwarzanie obszarów izolacyjnych z dwutlenku krzemu realizuje się dwoma 228 6.2. PROCES PLANARNY zasadniczymi metodami, którymi są utlenianie termiczne i osadzanie chemiczne z fazy lotnej. Warstwy izolacyjne z azotku krzemu są stosowane aby uzyskać lepsze ochronne właściwości przed penetracją szkodliwych domieszek. Warstwy azotkowe nie przepuszczają bowiem jonów metali, a w szczególności jonów sodu (Na+), które przenikając pr~z warstwy tlenkowe mogą spowodować niewłaś­ ciwe działanie elementów półprzewodnikowych. Ponieważ stała dielektryczna azotku krzemu jest większa od stałej dielektrycznej dwutlenku krzemu, zatem dla zwiększenia sztywności mechanicznej można wytworzyć grubszą warstwę azotkową o tych samych właściwościach dielektrycznych co cieńsza warstwa tlenkowa. Litografia 6.2.2 Zasadniczym wynikiem topograficznego projektowania układu scalonego jest precyzyjny rysunek, przedstawiający rozmieszczenie struktur tranzystorów i rezystorów oraz ich wzajemnych połączeń na kostce krzemowej. Aby wykonać te struktury, należy w trakcie procesu wytwórczego wykonać wiele operacji domieszkowania lokalnego. W celu polączeuia struktur trzeba wykonać co uajmniej jedną operację metalizacji w połączeniu z trawieniem lokalnym. Te lokalne operacje są wykonywane przez odpowiednie okna w materiale izolacyjnym, przy czym ich rozmiary, kształt i rozmieszczenie są różne d la każdej operacji. Wynika stąd, że globalnym wynikiem projektu topograficznego musi być zestaw rysunków okien, dla wszystkich operacji lokalnych. Zestaw ten otrzymuje się z komputera na podstawie zasadniczej topografii układu oraz odpowiedniej biblioteki fizycznych modeli użytych strukt ur elementarnych. Tradycyjnie rysunki te nazywa się projekt.ami masek. Proces odwzorowania tych rysunków na płytce krzemowej nosi nazwę litografii. Często tym mianem obejmuje się również fizyczny proces wykonania o kien, czyli trawienie loktilne. Tak rozszerzona definicja jest przyjęta w niniejszym tekście. Dokładność odwzorowania kształtów okien na płytce krzemowej, cqli rozdzielczość litografii, jest zasadniczym czynnikiem decydującym o minimalnych rozmiarach struktur, a tym samym o stopniu scalenia układów i ich właściwościach użytkowych. Główne ograniczenie rozdzielczości jest wynikiem zjawiska dyfrakcji. Wielkość dyfrakcji jest odwrotnie proporcjonalna do długości fal użytych cząstek, która jest funkcją ich energii (rys. 6.4). Można w przybliżeniu przyjąć równoważną długość fali jako teoretycznie dotną granicę rozdzielczości uzyskiwanej dla danego rodzaju litografii. W praktyce jednak występują liczne inne ograniczenia, któe istotnie pogarszają faktycznie uzyskiwaną rozdzielczość, zwłaszcza w tych „lepszych" rodzajach litografii. Procesy litografii są realizowane w trzech zasadniczych odmianach, w zależności od szerokości wiązki użytego prom ieniowania. Przy użyciu szerokiej 229 6 WYTWARZANIE CYFROWYCH UXU.OOW SCALONYCH ~ 10„0 .„..., §-10·11 5 Rys. 6.4 Równowaina długość fali ciąstck jako funkcja ich energii (2) wiązki pokrywa ona przez maskę całą powierzchnię płytki, natomiast wąska wiązka pokrywa tylko jej fragment. Wynika stąd duża wydajność obróbki dla szerok iej wiązki. Przy użyciu wiązki skt~pio11ej wytwarza ona na plytce tylko niewielką plamkę, której odpowiednie przesuwanie służy do "wymalowania" na plytce odpowiednich wzorów. Jest to metoda najwolniejsza, ale dokladniejsza. Początkowo najpopularniejsza była szerokowiązkowa litografia opty· czna (fotolitografia). Pierwszym etapem tego procesu jest wykonanie masek w postaci plytek szklanych o wymiarach dostosowanych do obrabianych płytek krzemowych. W tym celu plytka maski pokrywana jest warstewką światloczulej emulsji lub chromu i w precyzyjnym procesie fotografic-.mym umieszcza się na niej wiele identycznych rysunków jednoukładowych (obraz podobny do prostokątnej mozaiki podlogowej). Każdy kolejny proces litografii wymaga użycia odrębnej maski. W celu przeniesienia obrazu maski na plytkę krzemową nanosi się na jej powierzchnię, pokrytą uprzednio pasywującą warstwą dwutlenku krzemu, specjalną emulsję, czulą na użyte do kopiowania promieniowanie, zwaną także rezys1em. W tradycyjnej technologii jest to emulsja negatywowa, czula na promieniowanie ultrafioletowe, która polimeryzuje się w miejscach naświet­ lonych i pozostaje w tych miejscach po wywołaniu. Emulsja ta jest rozprowadzana równomiernie na calej plytce za pomocą szybkoobrotowej wirówki i następnie wysuszana. Po utwardzeniu płytkę przykrywa się maską w urządze­ niu kopiującym. Po precyzyjnym ustaleniu wzajemnego polo~..cnia, płytkę naświetla się przez maskę wiązką promieniowania ultrafioletowego. Następnie płytkę poddaje się działaniu wywoływacza, który usuwa niespolimeryzowaną 230 6-2. PROCES PLANARNY o s~ ( 1'11 li 1111 !i li lip tli li li li li li li 111 il łlµm Podłoze I b krzemowe Fotor~zyst i li i il i li li i i i i i i i d iii li li il il ił li ł "I0 I' iii!,,, Ił li" li, li,, i li ' li · 5 Rys. 6.5. Klasyczny proces fotolitografii z µm e jI i i i I I i I I i r: użyciem ii Ili!! 111111 11 11,,",'I , , emulsji negatywov.'ej a) "'")'tworzenie ochronnej .,..'trs-twy dcnko""-ej, h) n2łott:nie ernulsji świ;uloetułej (fo1ort:iys1u). <:J n~5""ietJenje płytki wi•zk-4 promieniowania ułltafM>letowcgo poprzez maskę. d) Uiunięicie nienaS-wittlontj (niot tpolimerrzowanotj emul~j i). e) wytra"'·ienie warst'A'Y tlenkowej w odsJoni~ych obszarach. f) 11!.Uoięicie pozostalicj emulsji emulsję, odsłaniając w miejscach nie naświetlonych warstwę Si0 2 . Kolejną C'Lynnością jest trawienie w odpowiedniej kąpieli chemicznej. W jego wyn iku zostają usunięte odsłonięte fragmenty warstwy Si0 2 , co umożliwia bezpośredni dostęp do materiału podłoża przez tak wykonane okna. Pozostałą emulsję usuwa się w innej kąpieli chemcznej. Omówiony proces przedstawiono na rys. 6.5. Powyższa klasyczna metoda, w której przy kopiowaniu następuje bezpośredni styk maski z płytką krzemową, nosi nazwę fotolitografii stykowej. Jej zasadniczą wadą jest szybkie zużywanie się masek roboczych w wyni ku uszkodzeń emulsji światłoczułej podcz.as dociskania maski do płytki oraz przy korekcie ich wzajemnego położenia (centrowaniu). W nowoczesnych technologiach stosuje się głównie dwie odmiany litografii projekcyjnej, w której przenoszenie obrazu maski na płytkę krzemową następuje przez jego rzutowanie, przy wykorzystaniu promieniowania wysokociśnieniowej łukowej lampy rtęciowej w zakresie 300+ 600 nm. Pierwsza odmiana (rys. 6.6a) wykorzystuje odbiciowy system optyczny 1 x z otworem względnym ok. 0.16 (czyli również maskę w skali I: l), zobrazowujący całą powierzchnię płytki w procesie przemiatania (sca1111i11g projection). Użycie optyki odbiciowej, które umożliwia wykorzystanie pełnego zakresu promieniowania źród ła oraz zobrazowanie całej powierzchni płytki zapewniają najwyższą, ze wszystkich znanych metod litografii, wydajność obróbki. Wadami tej metody są: konieczność wytwarzania kosztownych masek w skali 1: I oraz wymaganie utrzymania ostrości zobrazowania na calej powierzchni płytki. Dolna granica rozdzielczości tej popularnej metody, wynosi ok. 2 µm. 231 6. WYTWAfUANIE CYFROWYCH o Źród to świolfo Płytko krzemowa ł UKŁAOOW SCALONYCH b MOSkO Centrowani e optyczne System soczewkowy Płytko Reflektor wtórny kr zemowa System przes uwu krokowego Interfer ometr toserowy Ret lektor pierwotny Komputer c Okienko t>er ytowe Masko d Konwertery C/A ; blok slerujqcy wiqzkq Komputer Pr ojekl top09roficzny R)•S. 6.6 Główne stosowane systemy Kostko li1ograficzne [2] a) o<lbiciowy system projekcyjny. b) $01;.CCwkowy powicląj4cy ll)'stem projekc)jny (0$W). c) syuem li1ogrslii rcncg_et10"A'Słdcj. d) system litografii eltktrooo>A'tj + + !='!-- Soczewki skupiajqce System Od chyłania Wiqzko • 1 ~_...._,le~ek~tronów +, Znoczn1k ustawczy PłylkO krze mowo Druga odmiana fotolitografii projekcyjnej (rys. 6.6b) wykorzystuje soczewkowy system optyczny, pomniejszający 5 x do IO x, z otworem względnym ok. 0.3. System działa jako rzutnik sekwencyjnie powielający wzór jednego układu z łatwiejszej do wykonania maski w skali od 5: l do 10: l na kolejne fragmenty 232 6.2. PROCES Pl.AHAANY powierzchni płytki krtemowej (direc1-s1ep-011-wafer (DSW) optical projec1ion aligner}. Użycie optyki soczewkowej wymaga wybran ia do naświetlania tylko pojedynczego prążka z widma promieniowania lampy rtęciowej (typowo prążek I: 365 nm). System taki zapewnia znaczn ie lepszą rozdzielczość (0.35 + I ftm) oraz lepszą zdolność centrowania, która nie odnosi się już do calej płytki, lecz do każdego rzutowanego obrazu uklado•vego z osobna. Przy odpowiednim ulepszeniu soczewkowego systemu optycznego oraz użyciu krótszej długości fali promieniowania z zakresu głębokiego ultrafioletu (prążki 248 i 193 nrn) możliwie będzie osiągnięcie tą techniką granicznej rozdzielczości sięga­ jącej O.I µm. Ulepszenia fotolitografii projekcyjnej obejmują m.in . emu lsje pozytywowe, które mają lepsze wlaściwości od negatywowych, oraz emulsje i rój warstwowe, które dodatkowo zapewniają lepszą planarność warstwy emulsji i redukcję odbić optycznych. Istotnym ulepszeniem jest także zastosowanie metod suchego trawienia zamiast mokrego (kąpielowego). Osiągnięcie rozdzielczości poniżej I µm umożliwiają także procesy litograficzne wykorzystujące szeroką wiązkę promieniowania rentg~nowskiego (X) oraz skupioną wiązkę elektronów. Obydwie te metody umożliwiają osiąg­ nięcie granicznych rozdzielczości rzędu O. I µm. Zasadę litografii rentgenowskiej przedstawiono na rys. 6.6c. Metoda ta wykorzystuje szeroką wiązkę miękkiego promieniowania X (fotony o energii ok. 0.5 +IO keV) w sposó b zbliżony do klasycznej fotolitografii bezstykowej. Maska jest wykonywana w skali I: I, przy czym jako materiał pochłaniający promieniowanie X zazwyczaj jest stosowane złoto. Ponieważ równoważna długość fali promieniowania X jest rzędu ł am (rys. 6.4), pogorszenie rozdzielc-.i:ości spowodowane dyfrakcją jest pomijalne, natomiast istotne stają się zniekształcenia geometryczne wynikłe z nieidealnie punktowego źródła promieniowania, istnienia szczeliny między maską i płytkit (IO + 100 µm) oraz braku możliwości skupiania stożkowa tej wiązki promieniowan ia. G łó­ wnymi przeszkodami w upowszechnien iu tej metody są wysoki koszt i trudności technologiczne wytwarzania precyzyj nej maski oraz relatywnie duża gęstość defektów litografii [5]. Zaletami są niewielki koszt źródła promieniowania i duża szybkość obróbki płytek, gdyż są one naświetlane jednocześnie w całości, a nie sekwencyjnie. Na rysunku 6.6d przedstawiono budowę systemu litografii elektro11owej. W systemie tym niepotrzebne są maski, gdyż skupiona wii1zka elektronów służy bezpośrednio do kreślenia, przy użyciu sterowanych komputerowo elektrod oraz scc7.ewek elektrycznych i magnetycznych, odpowiednich wzorów na emulsji płytki krzemowej. Jest to istotną zaletą tej metody, gdyż c-tas i koszt związane z wykonywaniem precyzyjnych masek są wyeliminowane, a tak?.e usunięte jest istotne źródło defektów na płytce, spowodowane defektami maski. Wydajność systemów litografii elektronowej jest mniejsza niż systemów 233 6. WVTWAR1..ANIE CYFROWYCH UKŁAOOW SCALONYCH z szeroką wiązką, ze względu na powolność kreślenia kolejnych wzorów. Wadami systemów litografii elektronowej są również relatywnie duża złożoność techniczna i wysoki koszt. Systemy litografii elektronowej są często stosowane do wytwarzania precyzyjnych masek dla systemów fotolitografii, eliminując w ten sposób proces wytwarzania dużych oryginałów masek i ich czasochłonnego pomniejszania fotograficznego. Ostatnią z głównych metod litografii jest litografia jonowa, w której stosuje się zarówno skupioną, jak i szeroką wiązkę jonów. Korzystną cechą tej technologii jest duża wrażliwość powszechnie stosowanej emulsji na ekspozycję jonową. Ponadto poszerzenie skupionej wiązki w wyniku rozproszenia w emulsji jest dla jonów znacznie mniejsze niż dla elektronów. Systemy ze skupioną wiązką jonów są także wykorzystywane do precyzyjnego, lokalnego domieszkowania o lateralnie zmiennym profilu, czego nie umożliwiają ogólnie stosowane systemy szerokowiązkowe (implantatory jonów). Trawienie jest procesem lokalnego usuwania warstwy rezystu, dielektryka (Si0 2, Si 3 N 4), krzemu lub metalu. Istnieją dwie zasadnicze technologie trawienia: mokra i sucha. Domieszkowanie 6.2.3 Istnieją trzy zasadnicze sposoby domieszkowania półprzewodnika krzemowego: dyfuzja, implantacja i epitaksja. Pierwsze dwa stosuje się głównie do domieszkowania lokalnego, to jest tylko w niektórych o bszarach płytki, do których został utworzony dostęp w czasie litografii (przez wytworzenie odpowiednich okien w warstwie izolacyjnej lub/i emulsji). Trzeci sposób stosuje się do domieszkowania globalnego, na całej powierzchni płytki krzemowej, w rezultacie czego wytwarzana jest warstwa epitaksjalna. Dyfuzja Przy podgrzaniu płytki z monokryształu krzemu do odpowiednio wysokiej temperatury wiele atomów uzyskuje energię termiczną umożliwiającą przezwyciężenie sil wiązania krystalicznego i opuszcza węzły siatki krystalicznej, wędrując w inne miejsca kryształu. Te opróżnione węzły określa się jako wakansy. Jeśli wtedy do powierzchni płytki doprowadzi się atomy domieszki, to będą one wnikać w głąb płytki zajmując odpowiednie wakansy. Proces ten nosi nazwę dyfuzji zamiennowęzlowej. Ma on miejsce przy wprowadzaniu do płytek podłożowych typowych domieszek donorowych i akceptorowych. W okreś­ lonym obszarze domieszka dyfundowana może „przezwyciężyć" domieszkę, znajdującą się uprzednio w krysztale, powodując w tym obszarze zmianę typu półprzewodnika z p na n lub odwrotnie. Koncentracja dyfundowanej domieszki 234 6.2 PROClS PLANARNY obniża się w miarę oddalania od powierzchni płytki i w m•CJSCU, gdzie koncentracje obydwu domieszek stają się sobie równe, tworzy zh1cze pn. Powolny przebieg dyfuzj i umożliwia dokładną kontrolę koncentracji domieszek i jej rozkładu w półprzewodniku. Zwykle stosuje się domieszki w postaci gazowej lub w postaci cienkich warstw (np. sil nie domieszkowanego dwutlenku krzemu) osadzanych na płytkach przed rozpoczęciem procesu właściwej dyfuzji. Przy kilkakrotnie powtarzanych procesach dyfuzji mus-ią być również uwzględnione efekty poszczególnych procesów, które się wzajemnie łączą. Stąd domieszki stosowane w pierwszych procesach dyfuzji powinny mieć mniejszy współczynnik dyfuzji niż w procesach późniejszych. W p rzeciwnym razie dyfu.z ja w pierwszych warstwach będzie również szybko postępować w dalszych procesach. Poza dyfuzją w kierunku prostopadłym do powierzchni półprzewodnika ma miejsce również dyfuzja lateralna w kierunkach bocznych na granicach wytworzonego litograficznie okna, co jest zwykle niepożądane, lecz jest wykorzystywane do wytwarzania tranzystorów bocznych Oateralnych) pnp. Implantacja Implantacja, czyli wszczepianie jonów, polega na bombardowaniu powierzchni płytki krzemowej jonami domieszek o dużej energii {10+300 keV), uzyskiwanej w wyniku przyspieszenia jonów w polu elektrycznym. Głębokość wprowadzania domieszek zależy od energii, lecz nie przekraC7.a I µm, czyli jest znacznie mniejsza od głębokości osiągalnej w procesach dyfuzji. Z tego względu implantację jonów stosuje się często jako zamiennik predyfuzji. Zaletą domieszkowania implantacyjnego jest anizotropia tego procesu, gdyż jony wnikają w półprzewodnik pionowo z bardzo małymi odchyleniami bocznymi. Umożliwia to zm niejszenie rozmiarów struk tur elementów w procesie skalowania i zwiększenie gęstości ich upakowania w układach o dużym stopniu scalenia (LSl i VLSI). Ponieważ implantacja jest procesem niskotemperaturowym, unika się szkodliwych efektów związanych z obróbką wysokotemperaturową, takich jak deformacja płytek i niepożądana redystrybucja domieszek. Wadami procesu implantacji jonów są: ograniczona głębokość domieszkowania, konieczność wygrzewania i duży koszt urządzeń technologicznych. Epit aksja Epitaksją nazywa się proces narastania równomiernie domieszkowanej warstwy półprzewodnika na powierzchni płytki krzemowej przy zachowaniu jednolitej struktury monokrystalicznej z materiałem podłoża. Nazwa epitaksji pochodzi z języka greckiego (epi - na, taxis - wytwarzanie). Zaletą warstw epitaksjalnych jest to, że ich stopień domieszkowania jest niezależny od domieszkowania 235 O WYTWARZANIE CYFA:OWVCH UKtAOOW SCALONYCH podłoża, co umożliwia otrzymanie bardzo dobrych, lekko domieszkowanych warstw na si lnie domieszkowanych podłożach o dowolnym typie przewodności. Właściwość ta jest wykorzystywana prą produkcji bipolarnych cyfrowych układów scalonych, w których podłoże jest typu p, a warstwa epitaksjalna typu 11, zapewniając izolację złączową między sąsiednimi elementami scalonymi w danej strukturze. Złącze 10 ma cha rakter skokowy. Warstwy epitaksjalne wykorzystuje się także przy wytwarzaniu nowoczesnych układów scalonych C MOS. Grubość warstwy epitaksjalnej wynosi od I do 20 µm. Wszystkie elementy ukJadów scalonych są wykonywane w tej warstwic w rezultacie kolejnych czynności litografii i domieszkowania lokalnego. Warstwę epitaksjalną można równiei otrzymać na innym materiale niż podłoże. Proces taki nazywa się heteroepitaksją. K rzemowe warstwy heteroepitaksjalne na podłożu dielektrycznym wytwarza się w celu uzyskania izolacji dielektrycznej struktur elementów w układach sca lonych. Technologie wykorzystujące tego rodzaju izolację dielektryczną określa się skró tem SOI (Silico11-0n-lllsu/ator). U m ożl iwiają one eliminację szkodliwych elemen tów pasożyt­ niczych między elementami układów scalonych. co zapewnia znaczne zwięk­ szenie szybk ości działania tych układów. Klasycznym materiałem podłoża izolacyjnego jest szafir (Al 20 3 ) i otrzymany wówczas rodzaj strukt ur określa się skrótowo jako „krzem na szafirze" (SOS - Silico11-011-Sapplrire). Przeszkodą w szerszym wprowadzeniu tej technologii jest jej duży koszt. Zmniejszenie kosztów i lepsze parametry teclmiczne otrzymuje się przy wykorzystaniu dwutlenku krzemu Si0 2 jako podłoża izolacyjnego. Wykonanie 6.2.4 wykonane kompletne struktury elementów wchodzące w skład scalonych na wspólnej płytce podłożowej, w kolejnych procesach technologicznych wytwarza się odpowiednie połączenia między tymi elementami. W tym celu w najprostszym przpadku stosuje się dwukrotnie proo:s Litograficzny i jeden proces metalizacji. Pierwszy p roces Litografii służy do odsłonięcia w warstwic izolacyjnej okien do wykonania kontaktów z łączonymi elementami. W procesie metalizacji na całą powierzchnię płytki podłożowej jest nanoszona cienka (I + 1.5 ~un) warstwa metalu, zazwyczaj a luminium. Drugi proces litografii służy do usunięcia (wytraw ienia) metalu w wybranych obszarach płytki w taki sposób, aby otrzymać sieć metalicznych ścieżek międzykontak­ towych, tworzącą żądany układ połączeń. W układach o dużym stopniu scalenia (LSI, VLSf) często jest wymagana więcej niż jedna warstwa połączeń. Wówczas metaliczne warst wy połączeniowe wytwarza się kolejno nad sob<i. oddzielając je od siebie warstwami izolacyjnymi. Gdy są już połączeń układów 236 8.2. PROCES PLANARNY Klasyczną metodą nanoszenia warstwy aluminium jest 11apt1rowa11ie. Proces ten przebiega w komorze próżniowej, w której umieszcza się płytki krzemowe oraz tygiel zawierający aluminium roztopione przez nagrzewanie indukcyjne (rys. 6. 1I). Inną stosowaną metodą nanoszenia warstw metalicznych jest 11apyla11ie, czyli osadzanie metalu z fazy stałej. Cząsteczki napylanego materiału są wytwarzane w rezultacie bombardowania utworzonej z niego katody dodatnimi jonami, pochodzącymi z wyładowania jarteniowego w gazie obojętnym, np. w argonie. W ulepszonych metodach napylania stosuje się magnetron jako źródło jonów. W nowszych technologiach wytwarzania ukladów LSI i VLSI warstwy metaliczne są wyk onywane nie z czystego aluminium, lecz ze stopu a luminum, krzemu ( I + 2%) i miedzi(! +4%). Dodatek krzemu przeciwdziała nadżerkom powierzchni kontaktów, a dodatek miedzi zmniejsza prawdopodobieństwo uszkodzenia połączeń wskutek zjawiska elektromigracji metalu. Zjawisko elektromigracji polega na przemieszczeniu się atomów metalu wzdłuż przewodn ika wskutek przepływającego nim prądu elektrycznego. Zjawisko to potęguje się w miarę wzrostu gęstości prądu I/ A (/ jest prądem a A przekrojem przewodnika). W warunkach typowych d la ścieiek metalicznych w układach scalonych, gdzie I/ A = 103 + 106 A/cm 2 , następuje przem ieszczanie atomów metalu wzdłuż granic ziaren tworzących ścieżkę pr7,ewodzącą, w kierunku od katody d o anody. Przy niejednorodności st ru ktury przewodnika przepływ tych atomów staje się również niejednorodny, co prowadzi do wytworzenia w przewodniku lokalnych pustych jamek i odwrotnie - lokalnych przerostów metalu. Jamki w miarę upływu czasu przeradzają się w szczeliny, które zmniejszają użyteczne prtekroje A i tym samym zwiększają lokalne gęstości prądu, co jeszcze przyspies1.a proces. W rezultacie przekrój może stać się tak mały, że ten obszar w przewodniku ulega stopieniu , co prowadzi do przerwania połączenia. Pokazano to na rys. 6.7, na którym po lewej stronie przerwanego połączenia występują lokalne jamy, a po prawej stronie przerosty meta lu. Rys. 6.7 Przykład ścieżki U!Ukodzenia metalicznej powstałego wskutek zjawiska clcktromigracji (4] 237 6.. WYTWARZANIE CYFROWYCH UKŁAOOW SCALONYCH Czteroprocentowy dodatek miedzi do stopu aluminium i krzemu (2%) umożliwia znacznie polepszen ie trwa łości połączeń. Jako materiał ścieżek połączeniowych stosuje się także silnie domieszkowany knem polikrystaliczny, zwłaszc-.ui w układach M OS zawierających tranzystory z bramką krzemową. Główną wadą takich połączeń jest ich relatywnie wysoka rezystancja, co w połączeniu z pojemnościami pasożytniczymi tworzy stale czasowe RC współmierne, a nawet większe od czasów propagacji bramek ukladu. Aby zmniejszyć rezystancje połączeń uzyskiwanych z warstwy polikrzemowej, często wytwarza się na jej powierzchni cienką wa rstwę krzemkową, op. dwukrz.emku wolframu WSi 2 , tytanu TiSi 2 lub tantalu TaSi 2 [ 5]. W tym celu odpowiedni metal jest osadzany na warstwie silnie domieszkowanego polikrzcmu, po czym podwyższa się temperaturą płytki. Przy pewnej temperatune charakterystycznej dla danego krzemku, tworzy się dwukrzemek danego metalu. ELEMENTY UKŁADÓW SCALONYCH 6.3 Podstawowymi elementami aktywnymi układów scalonych są tranzystory. Przy ich wytwarzaniu stosuje się opisany poprzednio proces planarny. Ogólnie dzieli się tranzystory na bipolarne i unipolarne (polowe). Przymiotniki odzwierciedlają mechanizm przewodzenia prądu : w tranzystorach: bipolarnych bio rą w tym udział obydwa (st.ą d „bi") rodzaje nośników, tj. elektrony o ładunku ujemnym i dziury o ładunku dodatnim, natom iast w tranzystorach unipolarnych przepływ prądu jest realizowany przez nośniki tylko jednego (stąd „uoi ") rodzaju, czyli a lbo elektrony, albo dziury. W cyfrowych układach scalonych jako elementy bierne stosuje się diody i rezystory, natomiast kondensatory w zasadzie nie są wykorzystywane. Wyjątek stanowią dynamiczne układy unipolarne, a w szczególności pamięci dynamiczne MOS. Rezystory układów scalonych są również elementami pólprzewodni· kowymi, gdyż są wykonywane w postaci pasków odpowiednio dom ieszko· wanego półprzewodnika. W monolitycznych układach cyfrowych nie stosuje się innych rodzajów rezystorów, a w szczególności rezystorów osadzanych cienkowarstwowo. Tra nzystory bipolarne 6 .3.1 Scalone tranzystory bipolarne stanowią czterowarstwowe stru ktury planarne (por. rys. 6.3). Tranzystory planarne, wytwarzane indywidualnie, również stanowią struktury czterowarstwowe. Są one jednak wytwarzane na podłożu 11 +, przy czym końcówka kolektora jest przytwierdzona bezpośrednio do dolnej powierzchni podłoża. Tego rodzaju geometria nie jest możliwa w klasycznie wytwarzanych układach scalonych, gdzie nie może być żadnych kontaktów na 238 8.3. ELEMENTY UKlAOOW SCALONYC'H dolnej powierzchni kostki podłożowej. W procesie wytwarzania układu scalonego jego poszczególne elementy są wzajemnie izolowane i następnie łączone elektrycznie zgodnie ze schematem ideowym. Typowy bipolarny układ scalony wytwarza się na podłożu krzemowym typu p, a kolektory tran zystorów np11 mają wyprowadzenia na górnej powierzchni kostki. Każdy tranzystor jest otoczony wewnątrz kostki krzemowej złączem pn między kolektorem a podłożem. Złącze to jest spolaryzowane zaporowo, co zapewnia pożądaną izolację międzyelementową. Jak widać z rysunku 6.3c, epitaksja lna warstwa kolektorowa jest rozbita w układzie scalonym na wiele wzajemnie odizolowanych plasterków, w których są wytwarzane tranzystory, diody i rezystory. Właściwości funkcjonalne (końcówkowe) tranzystora i ich związek z jego geometrią i profilem domieszkowania określa się przy użyciu odpowiednich modeli teoretycznych. Do analizy cyfrowych układów scalonych stosuje się najczęściej klasyczne modele Ebersa- Molla i Gummela- Poone'a oraz ich modyfikacje. Do celów poglądowych można się posłużyć uproszczonym modelem, pokazanym na rys. 6.8a, który ilustruje statyczne działanie tranzystora w obs1.ar1~ aktywnym. Zależność I J.U 8 r;) stanowi charakterystykę wej.iciową tranzystora w układzie wspólnego emitera i jest opisywana w pierwszym przybliżeniu klasycznym wzorem Shockley'a dla idealnego złącza p-11: 18 = l ,exp(U8 E/<p 1-- 1) gdzie: I • - stała, zwana prądem nasycenia, <t>r - potencjał elektrokinetyczny (napięcie Boltzmanna), wyra7..any wzo. rem <t>r = k Tfq gdzie: k = 1.38· I0- 23 JfK - stała Boltzmanna, T - temperatura złącza w skali bezwzględnej, ą = l.6 · 10- ' 9 C - ładunek jednostkowy. Przy T = 300 K otrzymujemy wartość <pr{300K):::: 26 mV. Przy polaryzacji zaporowej (U Rt < 0) powyższy wzór teoretycznie pozostaje słuszny, lecz w praktyce szybko dominującą składową prądu I 8 staje się prąd upływu J6 80, wywołany nieidealnością złącza. Charakterystyka I 8'. U 86 ) typowego tranzystora 11p11 małej mocy jest pokazana na rysunku 6.8b. Prąd kolektora l e jest równy l e= PIB p jest współczynnikiem wzmocnienia prądowego tranzystora, najczęściej 50+300. Charakterystyka przejściowa fc(U ul jest pokazana na rys. 6.8b i na rys. 6.8c dla różnych temperatur złączy tranzystora. gdzie wynoszącym 239 6 WYTWARZANIE CYFROWYCH UIClAOOW SCALONYCH o b B - c le j'" ni. Ue.c ' 101 ''"'••le E 1cr'()5 06 0.7 0.8 , 09 IJoclVJ 1 d c 1 2 - 3 4 5 Uc,IYI e le < Jll 1 Uca<O E R)'s. 6.8. Działanie 1ranzys1ora bipolurncgo a) uproszczony mode:l Slatyqny w .mnie 1ktywn)'lll ( nonn~l nym), b> i c) cl\arak1erys1)'ln1•~jidowa I ,J..U..J i pn(iAc.uw1 I t (U.V. d) cbaraluerys:1yk11 • ·yJiciowa I t·{U cJ. Cl uptól:IJCtOfl y model dla stanu nas:yttnia W cyfrowych u kładach scalonych tranzystory często pracują w trybie nasycenia, gdy Uce < UBE• a w szc-.tególności w trybie głębokiego nasycenia, gdy napięcie Ucc wynosi O.I ~0.2 V, czyli jest bliskie zera (rys. 6.8d). Wtedy rezystancja tranzystora między kolektorem i emiterem rcu.1 jest również bardzo mała i wynosi dla tranzystorów małej mocy ok. 10 n. Zapewnienie głębokiego 240 93. ELEMENTY UKŁADÓW SCALONYCH nasycenia wymaga odpowiednio silnego przesterowania tranzystora prądem bazy, gdyż 'etat - 1/ 18 • Uproszczony model tranzystora dla stanu nasycenia jest pokazany na rys. 6.8e. Charakterystyki wyjściowe Ic(UcJ mają w obszarze aktywnym niezerowe nachylenie, które wzrasta z wielkością prądu bazy I 8 • Jest to wywołane zjawiskiem zmniejszania się efektywnej szerokości bazy (efekt Early'cgo). W tranzystorze scalonym npn ładunek magazynowany w stanic nasycenia jest tworzony przez. nadmiarowe nośniki mniejszościowe, a więc przez elektrony w obszarze bazy i dziury w słabo domieszkowanym obszarze kolektora. Wartość czasu magazynowania 1, tranzystora przy przełączaniu jest propor· cjonalna do czasów życia tych nośników. Aby zmniejszyć te cz.asy życia, a tym samym wartość c„ jest stosowane domieszkowanie z.lotem, którego atomy działają jako centra rekombinacyjne w półprzewodniku. Tym samym maleje również wartość p, co jest na ogół niepożądane (z wyjątkiem tranzystorów pasożytniczych). Domieszkowanie zlotem powoduje również pewien wzrost rezystancji właściwej półprzewodnika, co z kolei oznacza wzrost r, i U etat· Poziom domieszkowania złotem jest zatem ustalany na drodze kompromisu, przy jednoczesnym usytuowaniu warstwy zagrzebanej 11 + możliwie blisko złącz.a baza- kolektor. Charakterystyczne dla cyfrowych układ ów scalonych TTL są tranzystory wieloemiterowe. Elementy te mogą mieć od dwóch do ośmiu praktycznie niezależnych wyprowadzeń emiterowych, jak pokazano na rys. 6.9. p Rys. 6.9. Przykład struktury tranzystora lrójcmitero wego a) prxk rój, b) srmbol clcklf)'ClJIY W układach scalonych niejednokrotnie występuje potrzeba stosowania tranzystorów pnp. W klasycznej technice monolitycznej są one wytwarzane głównie w dwóch konfiguracjach strukturalnych jako tranzystory boczne Oateralne) i tranzystory podłożowe. Tranzystory boczne pnp mogą być wytwarzane jednocześnie z tranzystorami npn na wspólnym podłożu, nie wymagając dodatkowych czynności maskowania i dyfuzji. Typową strukturę takiego tranzystora pricdstawiono na rys. 6.10. Warstwa epitaksjalna 11, która w tranzystorach 11p11 służy jako obszar kolektora, jest wykorzystana do wytworzenia bazy. Dyfuzja domieszki p, która 241 6. WYTWARZANIE CYFROWYCH U KLAOOW SCALONYCH Kolektor Emiter Baza POdtoi e p Rys. 6.10. Struktura tranzystora bocznego pnp (nie pokazano metalizacji) w tranzystorach npn jest wykorzystywana do wytworzenia baz i rezystorów, w tranzystorze bocznym służy do wytwo rzenia plasterków emitera i kolektora. Dyfuzja emiterowa n + w strukturach npn jest wykorzystana do wytworzenia kontaktu z bazą. Warstwa zagrzebana 11 + umożliwia znaczną redukcję prądów upływu, związanych z pasożytniczą strukturą tranzystorową pnp w kierunku podłoża (dzięki niekorzystnemu dla niej profilowi domieszkowania), oraz zmniejszenie rozproszonej rezystancji bazy. Struktura tranzystora bocznego jest równoległa do powierzchni kostki. Z uwagi na małą wydajność emitera i relatywnie dużą grubość bazy wywołaną tolerancją maskowania i wymaganym napięciem przebicia, wzmocnienie prądo­ we p tranzystora bocznego pnp jest znacznie mniejsze niż w odpowiednim tranzystorze np11. Również znacznie mniejsza jest częstotliwość graniczna /-,, zależna głównie od czasu przelotu nośników przez bazę. Typowe wartości wynoszą: P':::: IO + 100,fr <>< 5 + 50 MHz. Tranzystory podłożowe pnp otrzymuje się przy użyciu warstwy bazowej p jako emitera, warstwy epitaksjalnej n jako bazy i podłoża p jako kolektora (rys. 6.11). W celu osiągnięcia określonej, malej grubości bazy jest konieczna precyzyjna kontrola procesu wytwarzania warstwy epitaksjalnej. Istotnym ograniczeniem tej struktury jest użycie podłoża jako kolektora: ponieważ podłoże jest zawsze uziemione i ogólnie ma najniższe napięcie w układzie (aby zapewnić zaporową polaryzację wszystkich złączy pn między plasterkami warstwy epitaksjalnej i podłożem), zatem tranzystory podłożowe mogą być wykorzystywane tylko w konfiguracji układowej wtórnika emiterowego. Typowe wartości uzyskiwanych parametrów wynoszą P z: I O+ I OO, fr -:::: 10+ 100 MHz. Bozo Emiter Kolektor Rys. 6.11 Struktura tranzystora podlożo wego pnp 242 6.3. ELEMENTY UKŁAOÓW SCALONYCH 6.3.2 Diody Jak pokazano na rys. 6.3c, tranzystory bipolarne w monolityczny.m układzie scalonym tworzą struktury czterowarstwowe, złożone z warstw emitera, bazy, kolektora i podłoża. W związku z tym diody pn w bipolarnych układach scalonych mogą być utworzone przez odpowiednie wykorzystanie tych warstw, a w szczególności przez odpowiednie połączenie struktur tranzystorowych. W ten sposób można otrzymać sześć konfiguracji diodowych, pokazanych na rys. 6.12. Mają one różne właściwości sta tyczne i dynamiczne. Najwyższe napięcie przebicia mają diody wykorzystujące złącze kolek tor- baza (rys. 6.J 2c, d, e). Złącza te dopuszCT.ają napięcie wsteczne równe co najmniej 20 V, podczas gdy przebicie złącza baza-emiter następuje przy napięciu 5 + 7 V. Przebicie złącza kolektor-podłoże następuje przy stosunkowo wysokim napięciu, powyżej 50 V. o b c d e f <>-C ~ o----C le • O u, •• o 1, · O ~ em Bez Uera ~ o-(}o u.,.o Rys. 6.1 2 UCE•O wsteczny maj ą diody o małej powierzchni złącza, tj. baza-emiter (rys. 6.1 2a, b). Dioda z rys. 6.12f, wykorzystująca obydwa złącza, ma największy prąd wsteczny. Z każdą diodą w układzie scalonym jest związana pewna pojemność złączowa diody oraz pojemność pasożytnicza, związana ze złączem kolektor-podłoże. Najmniejszą pojemność złączową mają diody (rys. 6. J2a, b), a największą dioda (rys. 6.121). Najmniejszą pojemność pasożytniczą ma dioda (rys. 6.12a), która jest oddzielona od podłoża warstwą kolektorową. W zastosowaniach impulsowych istotne znaczenie ma wartość czasu przełączania diody t,„ wynikającego z efektu magazynowania ładunku. Najmniejszą wartość t„ ma dioda (rys. 6.l 2b), natomiast najdłuższy czas przełączania ma dioda (rys. 6.12e), w której jednocześnie przewodzą obydwa złącza. Najmniejszy prąd Możliwe konfiguracje połączeń tranzystorów stosowanych jako diody wykorzystujące złącze 243 &. WYTWARZANIE cYFROWYCH UXŁ.AOOW SCALONYCH W wielu diodach scalonych występują niekorzystne uplywności związane z pasoży tniczymi tranzystorami pnp (por. rys. 6.3a). Jedyną diod11, w której nie występuje to zjawisko, jest dioda (rys. 6.12b). W tej konfiguracji to złącze kolektor- baza struktury npn, które odpowiada złączu baza- emiter w strukturze pnp jest zwarte, co uniemożliwia dzialanie pasożytniczego tranzystora pnp. W ukladacb scalonych najczęściej są stosowane diody z rys. 6. I 2a i b. W przypadku (a) charakterystyka statyczna diody, tj. zależność /(U), opisuje się wzorem Shockleya dla złącza p-n. W przypadku (b) ma miejsce akcja tranzystorowa, czyli skala prądu ulega przemnoieniu przez współczynnik (fJ + ! ). Oprócz opisanych wyżej diod ze złączem p-n szerokie zastosowanie w ukladach scalonych znalazly diody ze złączem metal- pólprzewodnik, znane jako diody Schottky'ego. Mają one duże zalety w stosunku do poprzednich diod: znikomy (praktycznie zerowy) czas przełączania t.,. :znacznie mniejsze napięcie przewodzenia przy małych prądach. Charakterystyki statyczne diody p11 i diody Schottky'ego przedstawiono porównawczo na rys. 6.13. Postać tej ostatniej, tzn.jej nachylenie oraz wielkość napięcia progowego, w znacznym stopniu zależy od rodzaju użytego metalu. W bipolarnych ukladach scalonych często stosuje się platynę. 10 I lmAl . I Dioda pn OiOOy Sc/\ottky·t90 J 5 I I J ,/ I .lV 0.2 0.4 Rys. 6.IJ Porównunic charakterystyk typowej diody p11 i diod ' V 0.6 0.8 UIVI Schottky'cgo małej mocy w różnych wykonaniach Diody Schottky'ego są wykorzystywane glównie w ukladach scalonych TTL jako nieliniowe sprzężenie zwrotne między kolektorem i bazą w tranzystorach pracujących w nasyceniu, stąd zwanych tranzystorami Schottky'ego (rys. 6. I 3a). Dzięki malej wartości napięcia progowego dioda Schottky'ego uniemoż­ liwia w tej konfiguracj i osiągnięcie stanu głębokiego nasycenia przez tranzystor, czego wynikiem jest istotna redukcja czasu wylączania tranzystora, spowodowana zmniejszeniem efektu magazynowania. Jest to znana z układów dyskretnych koncepcja diody Bakera, zwykle germanowej, wprowadzanej jako sprzężenie 244 6.3. ELEMENlY UKł.AOÓW SCALONYCH zwrotne między bazą i kolektorem tranzystora krzemowego. Czas magazynowania w tranzystorze Schottky'ego jest praktycznie równy zeru, co widocznie kontrastuje z typową wartością ok. 7 ns dla klasycznego tranzystora domieszkowanego zlotem lub ok. 30 ns dla tranzystora bez domieszkowania. Duże różnice istnieją również w odniesieniu do wartości napięć nasycenia. Tranzystor Schottky'ego ma napięcie nasycenia UCEsa• równe typowo 0.25 V (tzn. ok. dwukrotnie więcej niż tranzystor konwencjonalny) i może utrzymać UCE•"' < < 0.5 V przy prądzie kolektora równym 20 mA i prądzie bazy równym I mA. Ponieważ napięcie przewodzenia diody Schottky'ego ma mniejszy (ok. - 1.5 mV/ K) współczynnik cieplny niż napięcie przewodzenia złącza baza-emiter (ok. - 2 mV/K), zatem napięcie Ucc•• 1 obniża się przy wzroście temperatury. a b Izolacjo Worstwo epltoksjolno Pod łoże Warstwo zagrzebano Pierścień ochronny Izo lacjo Rys. 6.14. Scalenie diody Schottky'ego z tranzysto rem npn a) rOwnowai:oośić symboli, b) $trull:l\.1r.ł półprtiewodnikowa Na rysunku 6.14b jest pokazana typowa struktura tranzystora Schot· tky'ego. Dioda Schottky'ego jest wytworzona w taki sposób, że kontakt metaliczny bazy jest rozciągnięty na obszar kolektora i między krzemową warstwą epitaksjalną n a warstwą krzemku platyny tworzy się złącze metal-półprzewodnik. Katoda diody jest zatem związana z kolektorem, a anoda z bazą. Wokół złącza metal-półprzewodnik jest niekiedy wytwarzany (metodą implantacji lub dyfuzji) dodatkowy pierścień ochronny typu p, służący do eliminacji szkodliwych efektów brzegowych. 245 6. WYTWARZANIE CYFROWVCH UKLAOOW SCALONYCH Zastosowanie w układach scalonych TIL tranzystorów Schottky'ego umożliwia eliminację domieszkowania zlotem, stosowanego w serii standardowej w celu skrócenia czasu magazynowania w tranzystorach pracujących w nasyceniu. To z kolei powoduje ko rzystne zwiększenie współczynnika wzmocnienia prądowego w tranzystorach oraz zmniejszenie szeregowej rezystancji kolektorów. Tranzystory polowe 6.3.3 W cyfrowych układach scalonych opartycb na krzemie stosuje się tranzystory polowe z izolowaną bramką (TG FET - lnsulated- Gate Fieltl- Effect 'Iransistor) o generalnej strukturze przewodnik-izolator-półprzewodnik (CIS - Conductor - lnsulator- Semicontluctor). Jako przewodnik stosowany jest metal (mówimy wtedy o strukturze MIS - Metal- Insulator-Semiconductor) lub silnie domieszkowany krzem polikrystaliczny, a jako izolator dwutlenek krzemu. Najprostszą strukturą jest metal-(dwu)tlenek (krzemu) - półprzewodnik (MOS - Meral-Oxide-Semiconductor). Zwyczajowo wszystkie krzemowe układy cyfrowe z tranzystorami polowymi określa się skrótem MOS, niezależnie od modyfikacji strukturalnych. Zależnie od typu przewodnictwa kanału, tranzystory MOS dzieli się na p-kanałowe, wykonywane na podłożu n, oraz n-kanałowe, wytwarzane na podłożu p. W pierwszych przepływ prądu jest realizowany przez dziury, a w drugich przez elektrony. Ponieważ ruchliwość elektronów jest ok. 2.5-krotnie większa od ruchliwości dziur, tranzystory n-kanałowe są szybsze od analogicznych tranzystorów p-kanałowych. Niezale-.inie od typu przewodnictwa kanalu, tranzystory MOS dzieli się na dwa rodzaje: tranzystory z kanałem zubożanym, które są w stan ie prtewodzenia przy napięciu U as między bramką (G) i źródłem (S) równym zeru, oraz tranzystory z kanałem wzbogacanym, które nie przewodzą przy Uc;s = O. Na rys. 6.15 przedstawiono zasadniczą budowę, sym bole i charakterystyki przejściowe IJUGs) przy U05 = const dla tranzystorów MOS różnych typów. Należy o b I Konar p I Źródło Bronko S G en.n I Kona< n I S O Podłoże G o p Rys. 6.15. Tranzysrory potowe a) uruktura „ taft.do•qo ttlll)'Slon. 1'10S. b) struktura „t~ tn.nz:)'Slon ~•OS.. 246 N ..., c MOS Z KANAŁEM TRANZYSTORY „,.. ZUBOŻANYM .j>. M ~ I M I KANA<. p i!: Symbol• bez. wyróżnien ia M ~ konc.ówek O i S -1o1-o o o c o "~ ,.J~ ,.J~ ,.J~ oo-j~ oo--j~ oo-j~ oo-1~ s s ""' s ,...._ _ _ _ _ _ __ 110 s S y mbol e 5losow o ne w ks 1q,zce I I . . KANAŁ n o o o s s s __/ ~ ,.J~: ,.J~ ,.J~ oo-j~ oo-j~ o---1~ o~ s przejściowe tranzystorów MOS z :;: "' E Uy s uOSl•UI -Uos Io Symbole bet wyróin iqnio k oncÓwek O c) symbole i charakterystyki o o k anałem zubożanym. i S u,• Uos1.11J Uos ~o :r N d TRAN ZYSTORY MO S Z KANAtEM „ „>~ WZBOGACANYM ~ oo * Io ~G~1+ G~ o s s I I r- ·:_J· 'o-1~ ~ s ""-------- kon cówek O i S ,._j~ oo-j~ s Symbole I b•z wyr initnio o o GcJ Symbt/• I KANAt p słosowone KANAtn '-4~ s s d) symbole i chnrukterystyki o s przejściowe ~ z ;;; ~ ~ „ o ~ n :r u, w c -UGs !1"'r ~ I o z ..( o o s tranzystorów MOS z ~ > o o ::; ksi qice _ _ _ / ,.J~i ,.J* ,.J~ oo-j~ '~~ '~~ '~~ o -1. Symbole bez wyróżnienia koncówek O i S kanałem wzbogacanym :r '• Ur Uos 6.3. ELEMENTY UKt.AOOW SCALONYCH a b i/ i I Obszar Obszar nienasycenia nosycenia 2o •8 Io mA 18 j I J 6 V I 4 / l A' l T - 25°C 2.0 ... + •6 1.0 5.0 •5 3.0 2.0 V ' . I I o ~ I= • u0 5 -10VI 5 .0 3.0 r... = 2s0 c U, = - 3V I I / 2 10 I-" •7 I ,,.. 20 mA 1.0I~ •4 o.os /..- i 0.03 0.02 I 8 , - 4 - 3 -2 - 1 O 1 2 3 4 5 6 7V8 +3 I/ 6 4 - r ; Rys. 6.16 I 2 / ,,,. o o +2 I Przykładowe Uos e. OV , Lbs 2 4 Io= loss -- 0.5 - 1.0 6 8 10 12 14 16 18 20 22 2 4V26 1.5 charakterystyki tranzystora NMOS z kanalern zubożanym a) chataktcrys1yka W)'jkiowa. b) charakccry$tyka pm:jkiowa zaznaczyć, że przy zamianie końcówek drenu i źródła charakterystyki statyczne tranzystorów MOS pozostają takie same. Na charakterystykach przejściowych zaznaczono charakterystyczne napięcia progowe UT oraz, dla tranzystorów z kanałem zubożanym, prądy loss = l 0(U Gs = 0). Zależnie od relacji między napięciami UT• UGs i Uos tranzystory MOS mogą pracować w dwóch głównych trybach: nienasycenia - gdy O.;; IVvsl < 1Uos-U 1·1 łub nasycenia - gdy IVvsl ;;,, IVGs - Uri· Odpowiada to dwóm charakterystycznym obszarom na charakterystykach wyjściowych I 0 ( Uvs) I UGS = const tranzystora MOS, jak pokazano na rys. 6.16 dla przykładowego tranzystora NMOS z kanałem zubożanym. W zakresie nienasycenia charakterystyka przejściowa tranzystora pracującego z uziemionym źródłem (Us = O) opisuje się przybliżonym wzorem 249 6. WYTWARZANIE CYFROWYCH U KtAOOW SCALONYCH W zakresie nasycenia, podstawiając U05 = U05 - Ur, otrzymuje siQ Io"" P(Uos - Url 2/ 2 Symbol Poznacza parametr /J = µC 1Z/L gdzie: µ C; - ruchliwość nośników jednostkę Z L - w krzemie, warstwy izolatora podbramkowego, powierzchni, pojemność przypadająca na sz.erokość kanału, długość kanału. Miarą wzmocnienia tranzystora polowego MOS jest transkonduktancja gm, definiowana jako Na podstawie poprzednich wzorów daje to dla trybu nienasycenia g„ ""P IUosi i dla trybu nasycenia g„ "" /JIU Gs- Uri = 21,j(UGs- Ur) W celu uzyskania pożądanych wielkości g„ odpowiednio dobiera się parametry projektowo-technologiczne, którymi w tym przypadku są pojemność C1 i stosunek Z/ L. Minimalna długość kanału Ljest ograniczona w tranzystorach układów cyfrowych głównie przez precyzję procesów litograficznych i efekty dyfuzji lateralnej w czasie wytwarzania kieszeni drenów i źródeł. Tranzystory n-kanałowe mają większą transkoaduklancję niż p-kanałowe, gdyż, jak już wspomniano wcześniej, ruchliwośćµ. elektronów w kanale 11 jest ok. 2.5-krotn.ie większa niż ruchliwośćµ, dziur w kanale p. Ko nduktancja wyjściowa tranzystora polowego, czyli przewodność kanału, definiuje się jako nachylenie cbarakt.erystyki wyjściowej tranzystora (rys. 6.16a) w określonym punkcie pracy (I O> U osl iJio g,, =-ou DS Dla trybu nienasycenia daje to Yo"" /J(Uos-Ur -Uosl 250 6.3. ELEMENTY LIKU.DOW SCALONYCH Dla trybu nasycenia zgodnie z powyższą definicją otrzymuje się g., = O. Jednakże w praktyce zawsze jest g„ > O. Jest to spowodowane zjawiskiem skracania efektywnej długości kanału (analogicznym do zjawiska Early'ego w tranzystorach bipolarnych). Dynamiczna rezystancja kanału stanowi odwrotność konduktancji ' •· ~ lfg., W zastosowaniach układowych szczególnie istotna jest wartość rezystan cji kanału w obszarze nienasycenia. Jak wynika z poprzedniego wzoru, wartość '•"maleje ze wzrostem UGs· Ponadto przy odpowiednio dużym aa pięciu UGS• gdy U05 - Ur » U DS• zależność l 0 (U os) staje się w przybliżeni u liniowa, co oznacza, że wartość rezystancji dynamicznej r jest równa rezystancji statycznej ros· M ożna zauważyć, że dla przykładowej charakterystyki z rys. 6.16a 'os"' 200 n. W prak tyce dla tranzystorów malej mocy ot rzym uje się typowe wartości r/Js w zakresie IO + 1000 n. Z powyższego omówienia wynikają uproszczone modele tranzystora polowego MOS dla małych częstotliwości, po kazane na rys. 6.17. „ a b Rys. 6.17. Uproszczone modele tranzystora •lmoddopny. MOS dla malych CZ\'Stotliwoś<:i b) model dl~ stanu ....1ątttni;.1 W tranzystorach cyfrowych układów scalonych jest istotna także wartość i stabilność napięcia progowego Ur• którego wielkość najczęściej ustala się przy użyciu metody implantacji jonów. Rezystory scalonych rezystory są wytwarzane również jako W tym celu najczęściej wykorzystuje się warstwy pół­ przewodnikowe wytwarzane do budowy innych elementów (np. tranzystorów bipolarnych), bądź też półprzewodnik warstwy rezystorowej uzyskuje się na drodze odrębnego domieszkowania. Rezystory wykonuje się zazwyczaj w postaci pasków półprzewodnikowych o grubości danej warstwy, przy czym długość i szerokość paska dobiera się stosownie do wymaganej wielkości rezystancji. W cyfrowych układach 6.3.4 półprzewodnikowe. 25 1 6 WYTWARZANIE CYFROWYCH UKt.AOOW SCALONYCH o P~ie met p}:. 1=~p~=~[~=Sllzolocjo O, _, warstwa epitoksjolno p t __ _ _ _ __ _ _ __ -J -- Podłoże b ObSzor p lw= two bozowo ) Obszor n !warstwo el)itok sjOłnol Podłoże p Rys. 6.18. Rezystor bazowy a) n rulaura. b) schcm..1 uiatwc:rr ~ clerntncami paioot)'lnlCl)mi struktura rezystora bazowego jest pokazana na rys. 6. 18a. Warstwa epitaksjalna n, osadzona na podłożu p, zapewnia pożądaną izolację. W celu zmniejszenia pasożytniczych pojemności złączowych i wyeliminowania wpływu pasożytniczych tranzystorów p11p (warstwa bazy, warstwa epitaksjalna, podłoże), obszar warstwy epitaksjalnej pod rezystorem często łączy się z najwięk­ szym dodatnim potencjałem dostępnym w układzie, czyli najczęściej z dodatnim napięciem zasilającym układ. W ten sposób otrzymuje się zaporową polaryzację obydwu złączy p-n struktury pasożytniczej pnp. Przy typowej rezystancji R, wa rstwy p, równej 200 Q/0, do wytworzenia rezystora I k!ljest potrzebny pasek z pięciu szeregowo połączonych kwadratów, czyli I/ w = 5. Rezystor taki może być np. o szerokości IO µm i długości 50 µm. Tolerancja technologiczna rezystorów półprzewodnikowych jest generalnie dość duża i wynosi dla rezystorów bazowych 15 + 25%, a dla innych typów rezystorów półprzewodnikowych często jeszcze więcej. Wynika to z ograniczonej dokładności procesów litograficznych i domieszkowania. Znacznie lepsza dokładność (I+ 3%) można uzyskać w odniesieniu do stosunku dwóch rezystorów tego samego t ypu, wykonywanych jednocześnie w tym samym układzie scalonym. Właściwość ta ma istotny wpływ na metodologię projektowania układów scalonych. Przy rezystancji R, warstwy bazowej równej ł00 + 200 Q/O można wykonać rezystory o wartości od ok. 100 O do ok. 20 kO. Współczynnik temperaturowy rezystorów bazowych jest dość duży i wynosi ok. 2 · I0- 3/K przy R, = 200 0 / 0 . Przykładowa 252 6.4. WYTWARZANIE BIPOLARNYCH UKt.AOOW SCAlONYCH Mniejsze wielkości rezystancji o trzymuje się przy użyciu rezystorów emilerowych, tj. wykorzystujących warscwę emiterową. Warstwy em icerowe 11 + mają stosunkowo małą rezystancję powierzchniową (2-;- 5 !1/0 ), co umożliwia wykonywanie rezystorów w zakresie od kilku do kilkuset omów. Współczynnik temperaturowy rezystorów emiterowych jest mniejszy niż rezystorów bazowych i wynosi typowo ok. 1.5 x 10- 4 /J<. Inne stosowane struktury rezystorów 10 rezystory objętościowe i kana/owe. D o wytwarzania rezystorów scalonych stosuje się również mecodę implantacji jonów, typowo jonów boru. Metoda ta umożliwia osiągnięcie dobrej precyzji, zwlaszcza przy większych wartości ach rezystorów, gdyż umożliwia wytworzenie stabilnych warstw domieszkowanych o dużej rezystancji powierzchniowej. W niektórych ukladach pamięci sta tycznych MOS RAM stosuje się implantowane rezystory polikrzemowe o rezystancji rzędu 10 10 n, co umożliwia uzyskanie bardzo małej mocy strat i bardzo małych rozmiarów komórek pamięciowych. WYTWARZANIE BIPOLARNYCH UKŁADÓW SCALONYCH Poniższe 6.4 omówienie odnosi się do wytwarzania cyfrowych układów scalonych TIL z serii standardowej o małym i średnim stopniu scalenia. Zasadniczy proces technologiczny obejmuje wszystkie czynności, które wykonuje się na całej płytce podłożowej. Proces ten rozpoczyna się od wytworzenia warstwy tlenkowej na płyt­ ce przed pierwszym cyklem litografii i domieszkowania, a kończy się na wytworzeniu ostatniej warstwy tlenkowej, pasywująccj wykonane na płytce układy. Pierwszym etapem produkcyjnym, pokazanym na rys. 6.19a, jest wytworzenie plasterków warstwy zagrzebanej 11 + w miejscach, gdzie mają być umieszczone tranzystory. W tym celu oczyszczoną płytkę podloiową typu p pokrywa się warstwą Si0 2 w procesie utleniania termicznego i wykonuje się pierwszy cykl litografii dla odsłonięcia okien do dyfuzji domieszki donorowej (11), najczęściej arsenu lub antymonu. W drugim etapie produkcyjnym na płytce podłożowej wytwarza się warstwę epitaksjalną typu n (rys. 6.19b~ Zazwyczaj grubość tej warstwy wynosi 2-;- 5 µm, a rezystywność O.I -;- 5 Ocm. Wykonaną warstwę epitaksjalną pokrywa się izolującą warstwą Si0 2 • Kolej ny etap stanowi wytworzenie obszarów izolacyjnych wokól tranzystorów i rezystorów. W tym celu po drugim cyklu litografii przez otwarte okna wykonuje się dyfuzję domieszki akeeptorowej (p), z reguły boru (rys. 6.l 9c), po czym pokrywa si~ płytkę warstwą tlenkową. Następną czynnością jest domieszkowanie obszarów baz i rezystorów bazowych. Po t rzecim cyklu litografii wykonuje się dyfuzję boru (rys. 6.19d~ przy 253 6. WYTWARZANIE CYFROWYCH UKŁAOOW SCALONYCH a Dyfuzjo crsenu 1111 li s.o, ~:.:"!4('.~:••m11fuo111111 111 11111000011m100••0•0000} b Osadzenie warstwy epitaksjalnej I I I I I I I I I I I I I I c ~ Dyfuzjo beru Ili Ili Il i Oyfuz,a boru d i ii 1111 e p R ys. 6.19. Zasad niczy proces technologiczny wytwarzania Lranzystora scalonego 11pn a) wytwarzanie warstwy zag_rubantj 11' . b) osadzenie warstwy epitaksjalnej. c) wytworumic odizolowanyoh "'')'$P.. d) wytwor;_.enic W<llf$1wy ~~.owej , e) wy'lw()r?blic wal'$twy ani l tn)'A-tj i wyp10wf1.dztń k<>lek1ora, f) wykonanie polljCl('ó D\dalicznycb 254 6.4.. WV1WAA2ANIE 81POL.ARNYCH UKLAOOW SCALONYCH czym grubość warstwy p wynosi około 3 11m, a jej rezystancja powierzchniowa ok. 200 n;o. Po zakończeniu dyfuzji p0wicrzchnię płytki utlenia się, wytwarzając ochronną warstwę tlenkową p0dobnie jak uprzednio. W kolejnym, czwartym cyklu litografii odsiania się odp0wiednie obszary baz do domieszkowania obszarów emiterów tranzystorów orazjednocześnieczęść obszarów kolekto rów do wytworzenia konta któw omowych. Jako domieszkę stosuje się fosfor, tworząc silnie domieszkowane wysepki półprzewodnika 11 • (rys. 6.19e). Grubość tej warstwy przekracza 2 µm, tak że końcowa szerokość bazy wynosi 0.3 + 0.7 µm. Rezystancja p0wierzchniowa warstwy wynosi 2 + 5 Q/O. Na końcu procesu wytwarza się warstwę ochronną Si0 2 • W celu skrócenia czasu życia nośników mniejszościowych, a więc czasu przeciągania w tranzystorach pracujących w nasyceniu, stosuje się teraz dyfuzję złota. Proces ten realizuje się przez osadzenie próżniowe na tylnej (dolnej) p0wierzchni płytki cienkiej warstwy złota i umieszczenie płytki na kilka minut w piecu dyfuzyjnym w temperaturze ok. I I00°C, a następnie jej gwałtowne ochłodzenie. Piąty cykl litografii służy do odsłonięcia tych obszarów elementów które służą jako kontakty do wykonania właściwych połączeń elektrycznych, zgodnie ze schematem układu. Tak więc odsiania się wysepki kon taktowe kolektorów, baz i emiterów tranzystorów, jak również rezystorów i diod. Ostatnim etapem zasadniczego procesu technologicznego jest wykonanie połączeń metalicznych. Po naniesieniu warstwy metalu wykonuje się szósty cykl litografii, na końcu którego wytrawia się warstwę metalu w takich miejscach, aby pozostały tylko poi.ądane ścieżki połączeniowe. Do ochrony p0wierzchni płytki często stosuje się dodatkowo osadzenie na niej warstwy szkła niskotemperaturowego, czyli pasywującej warstwy tlenkowej CYD. Wtedy siódmy cykl litografii, odsłaniający okna kontaktowe do wykonania połączeń zewaętrtnych, kończy zasadniczy proces technologiczny. W rezultacie otrzymuje się płytkę o przykładowej postaci p0kazaaej na rys. 6.20, na której widać siatkę prostokątnych struktur układowych . układu, Rys. 6.20 Plytka kn.emowa z wyko na nymi strukturami ukladów scalonych 255 6. WYTWAA2.ANIE CYFROWYCH UKŁADÓW SCALONYCH Układy scalone na płytce podlegają teraz dokładnemu badaniu optycznemu i elektrycznemu. Do wyprowadzeń zewnętrznych kolejnych układów są przyciskane ostro zakończone sondy pomiarowe urządzenia sprawdzającego (testera), sterowanego automatycznie przez komputer. Wszystkie układy, znajdujące się na płytce, są poddawane testom funkcjonalnym. Uklady nie spełniające wymagań technicznych zostają oznaczone optycznie kolorowym tuszem i wykluczone z dalszych operacji technologicznych. Po wykonaniu badań testowych, na płytce rysuje się ostrzem diamentowym siatkę rozdzielającą wszystkie uklady. Po tej czynności płytka jest łamana wzdłuż linii siatki przez przyciśnięcie jej do metalowej półkuli. W wyniku tego wszystkie układy zostają rozdzielone na osobne kostki o charakterystycznym, malowniczym rysunku połączei\ metalicznych (rys. 6.2!). Inną, bardziej nowoczesną i precyzyjną, metodą podziału płytki na kostki jest cięcie płytki za pomocą strumienia Va:, 16 .--- - - - - - 15 1t. 13 12 11 10 L - -- - -9 Masa Rys. 6.21. Przykładowa kostka krzemowa z wykonanym układem scalonym 74LSl38 (Advanced Micro Devu·es), z charakterystycznymi ~.worokątnymi polami kontaktowymi (ro1mia ry kostki 1.7 x 1.7 x 0.35 mm) Lie?by (Yl;n1tc:~1ji numery ko6t0wcl: w obudowie dwu riędowej . Zwracaj;·1 uw;i" grube ścieżki zasilani:a (Ued i INIS)' "1l'Olcół kosdd 256 6.4. WYTWARZANIE BI POLARNYCH UKł.A.00W $CAl.0NYCH c o „. ,...o;,. ·~ e ·'.\ JS· I ·~' I f b d g Rys. 6.22. Końcowe etapy procesu wytwarzania układów scalonych a) pnygotow;anłe mccałowego $1.kitlclu obudowy \\'taz z końcówkami (aiuru), b) priyrv.·ierdzenie k~lk i do ażuru, c) wykonanie połą.cur\ drutowycb (,..szycic1. d} opcjonalne pokrycie k.0$lkl v.'at$1Włt ochronną, e} ufomov.•anie i 2atttkni~cie. obudowy, Qufonnowaoic końcówek, s>o~ laśm nośnych laserowego. Oznaczone uprzednio układy wadliwe są odrzucane, a pozostałe zostają przytwierdzone do metalowych szkieletów (ażurów) obudów (rys. 6.22a, b), za pomocą lutowania eutektycznego lub klejenia. Następnie wykonuje się kolejno połączenia drutowe między końcówkami obudów i polami kontaktowymi kostek (rys. 6.22c). Połączenia wykonuje się drutem złotym lub złoconym o średnicy 17 + 50 µm, stosując najczęściej metodę łączenia termokompresyjnego (kulkowego), względnie przy użyciu drutu aluminiowego, metodą zgrzewania ultradźwiękowego. Czynność ta jest bardzo krytyczna z punktu widzenia niezawodności pracy. Duża część wad i uszkodzeń, wykrywanych w czasie badań fabrycznych i w czasie eksploatacji układów, ma swoje źródło w niewłaściwych połączeniach między kostką i obudową. Stanowi to jedną z przyczyn uzasadniających zwiększanie skali integracji układów scalonych. Dalszy proces jest przedstawiony na rys. 6.22e, f, g. Materiałem najpopularniejsi.ej obudowy dwurzędowej (p. 5.4, rys. 5.9) jest tworzywo termoutwardzalne, zwykle żywica epoksydowa. Ostateczne formowanie obudowy i jej zamykanie wykonuje się w odpowiednich prasach metodą prasowania przetłocznego. Obudowy dwurzędowe mogą być również produkowane jako ceramiczne, co narzuca nieco inny proces technologiczny. Układy scalone mogą być produkowane także w obudowach innego rodzaju, np. do montażu powierzchniowego (p. 5.4). 257 6. WYTWARZANIE CYFROWYCH UKŁADOW SCALONYCH Końcowym etapem produkcji jest kontrola gotowych układów w odniesieniu do gwarantowanych przez wytwórcę parametrów statycznych i dynamiczoych o raz wykonanie napisów, określających typy układów scalonych. Ulepszenia technologiczne Opisany poprzednio elementarny proces technologiczny jest stosowany do wytwarzania najprostszych i najstarszych układów scalonych, np. ze standardowej seńi 54/74 układów cyfrowych TTL. W nowoczesnych technologiach stosuje się wiele modyfikacj i mających na celu polepszenie właściwości wytwarzanych układów, głównie: a) b) c) zwiększenie szybkości działania, zmniejszenie mocy strat, zmniejszenie rozmiarów tranzystorów. Wymagania (a) i (b) są generalnie przeciwstawne. Czas propagacji t„ będący miarą szybkości działania układu (p. 5.3.1) przy małej mocy strat jest określony głównie przez stałe czasowe związane z pasożytniczymi pojemnościami elementów i ich połączeń w układzie. Przy zmniejszaniu rezystancji, czyli zwiększaniu prądów i mocy strat w układzie, czas propagacji się zmniejsza. Dolne ograniczenie tego zmniejszenia wynika z wartości częstotliwości granicznej fr· Ponieważ po przekroczeniu pewnej optymalnej wartości prądu kolektora częstotliwość fr maleje (w rezultacie zjawisk Webstera i Kirka), a ponadto istotną rolę zaczynają odgrywać rezystancje rozproszone bazy i kolektora, praktyczny związek czasu propagacji z mocą strat ma postać pokazaną na rys. 6.23. Wymaganie (c) jest zazwyczaj zbieżne z poprzednimi i ma na celu osiągnięcie możliwie największego stopnia scalenia. Aby osiągnąć szybkość działania zbliżoną do limitu określonego przez f 1„ układy bipolarne muszą mieć relatywnie dużą moc strat, co jest główną przeszkodą w osiąganiu większych stopni scalenia. 2 Rys. 6.23 Typowy związek czasu propagacji t, i mocy strat P dla bipolarnych układów cyfrowych pracujących bez nasycenia ograniCJJenie spowodowane pojemnościami pasolytniayroi. 2 - oaranict.cnic spowodowane maleniem fr i obecl,okią ttz.yf;lancji rol.pr<)W)n}'Ch baty i kołek lora I - tog P 258 6.4. WYTWARZANIE BIPOLARNYCH Ul<lA00W SCALONYCH Pierwszym, istotnym ulepszeniem technologicznym stało się w latach siedemdziesiątych zastąpienie bocznej izolacji złączowej scalanych elementów przez izolację dielektryczną. Wszystkie elementy układu są wtedy otaczane fosami, wypełnionymi wrośniętym dwutlenkiem krzemu. Zostało to wprowadzone ro.in. w technologiach ISOPLANAR (Faircl1i/d) i LOCOS (Philips). Technologie te określa się łącznie jako technologie z boczną izolacją tlenkową. Pierwsze kroki w procesie ISO PLANAR są takie same jak poprzednio, to znaczy w podłożu p wytwarza się lokalne plasterki warstwy zagrzebanej 11 + i następnie cienką warstwę epitaksjalną n o typowej grubości 1.2 + 2 µm. Następnie wytwarza się trójwarstwowy płaszcz izolacyjny tlenkowo-azotkowy (rys. 6.24a). Dolna warstwa tlenkowa jest potrzebna do zatrzymania trawienia warstwy azotkowej, a górna do maskowania warstwy azotkowej. Kolejną czynnością jest odsłonięcie okien do warstwy epitaksjalnej w tych miejscach, gdzie mają być wytworzone fosy izolacyjne. W tym celu najpierw wykonuje się lokalne trawienie azotku poprzez maskę tlenkową. Następnie są wyt rawiane o bydwie warstwy tlenkowe: górna (służąca poprzednio jako maska) i dolna (w miejscach odsłoniętych po wytrawieniu warstwy azotkowej). W rezultacie otrzymuje się struk turę pokazaną na rys. 6.24b. Następną czynnością jest trawienie fos w warstwie epitaksjalnej, na głębokość równą ok. 55% pożądanej grubości tlenkowej warstwy izolacyjnej (rys. 6.24c). Z kolei wykonuje się utlenianie termiczne, aż do zrównania się powierzchni tlenku w wypełnianych fosach z powierz.chnią warstwy tlenkowej pod warstwą azotkową. Warstwa tlenkowa wrasta wtedy również na ok. 45% w głąb płytki, całkowicie przenikając warstwę epitaksjalną. Wreszcie usuwa się pozostałą warstwę azotkową (rys. 6.24d). W praktyce powierzchnia tlenku nie jest idealnie plana rna, gdyż w środ k u fos występuje obniżenie poziomu, a przy brzegach fos następuje przewyższenie i lokalne przegrubienie warstwy tlenkowej pod warstwą azotkową, co prowadzi do charakterystycznego zn iekształcenia profilu brzegowego tlenku, przypominające­ go ptasi dziób. Domieszkowanie obszarów bazy (p) oraz emitera i kolektora (n +) jest wykonywane przy użyciu procesów dyfuzji lub implantacji jonów. Po metalizacji i wytworzeniu połączeń uzyskuje się postać pokazaną na rys. 6.24e. Przy celowo pokazanym niedokładnym ulokowaniu kontaktów, widać w jaki sposób "ptasie dzioby" mogą ograniczać powierzchnię kontaktów i ich wzajemną odległość. Dodatkowa ściana izolacyjna między obszarami kolektora i bazy służy do zmniejszenia pasożytniczych pojemności. Proces izoplanarny, wprowadzony w 1971 r„ podlegał kolejnym ulepszeniom (ISO PLAN AR- II, ISOPLANAR- S), mającym na celu uzyskanie jak najmniejszych rozmiarów struktur i jak największej szybk ości działania. Proces ten został wykorzystany do produkcji ro.in. bardzo szybkich układów scalonych ECL z serii FIOOK oraz bardzo szybkich układów TTL z serii FAST. W procesie ISOPLANAR-S uzyskano częstotliwość graniczną tranzystorów sięgającą 7 + 8 GHz, co umoż­ liwiło uzyskanie czasów propagacji wewnętrznych bramek około 300+400 ps. 259 6. WYTWARZANIE CYFROWYCH Ul(tA00W SCALONYCH o Warstwo zagrzebano n• Podłoże T w A E p E N b $i3 N4 Si02 p T E L N I A N c p Sio, d p e c E B Si0 2 Rys. 6.24. Zasadnicze fazy wytwarzania tranzystora npn w procesie technologicwyro ISOPLANAR a) W)'t"''orunit "'':UStW)' 1.agrttl)anej. warsl „'Y tpitak~jahi.ej i 1lenkowo-aio1kowej warslwy ito13.cyjnej. b) wykonanie okien w wanuwie i1.olacyjntj, c) W)'ptłnienit f0$ i.7.olacyjnych dwu1ltnkitm krzemu, d) wyu3wiwje 'A'łLrSl„')' azotkowej, e) W)'konanie lok1ilnego domies:tk-O\\'ania obszarów bazy, t-mitera i kolektora oraz wytwon:toie poląettń ~wo~rviych (uwid0ctniono 260 pr.tyk.ladow:t nied okł.adnoie lokowania ko ntaktów) 6.4. WYTWARZANIE BIPOLARNYCH UKŁAOOW SCALONYCH W nowszych technologiach bipolarnych zostały wprowadzone dalsze, istotne ulepszenia: struktury samocentrujące, izolacja transzejowa i polikrzemowy kontakt emitera. Modyfikacje te mają na celu, podobnie jak poprzednio boczna izolacja tlenkowa, osiągnięcie dalszego zmniejszenia rozmiarów tranzystora (zarówno poziomych, jak i pionowych), czyli jego przeskalowania, aby zwiększyć gęstość scalenia i szybkość działania układów bipolarnych. Przykład samocentrującej struktury SA (Se!f-Aligned) tranzystora npn jest pokazany na rys. 6.25. Kontakt metaliczny z obszarem emiterowym 11 + nie jest tu bezpośredni, lecz za pośrednictwem poziomego paska polikrzemowego silnie domieszkowanego arsenem. Pasek ten również służy jako źródło domieszki podczas dyfuzji wytwarzającej obszar emiterowy n+. Po utlenieniu polikrzemu i selektywnym wytrawieniu warstwy Si0 2 nad obszarem bazy, wykonuje się kontakt metaliczny do bazy, który jest samocentrujący w stosunku do emitera. W rezultacie osiąga się znaczne zmniejszenie rozmiaru „wszerz" struktury w porównaniu z poprzednimi, w których wykonanie kontaktu do bazy wymagało zapewnienia dość dużej odległości od kontaktu emitera. n• p- Rys. 6.25 Przykład samocentrującej struktury tranzystora np11 [6] Izolacja transzejowa (trench, deep-groove) polega na wykonaniu bocznych ścieżek izolacyjnych wokół każdej struktury tranzystora, które sięgają znacznie głębiej niż przy klasycznej izolacji tlenkowej. W tym celu wytrawia się znacznie głębsze fosy (transzeje), które sięgają poniżej warstwy zagrzebanej, utlenia się ich wewnętrzne ścianki i wypełnia polikrzemem (wypełnienie dwutlenkiem krzemu staje się trudne technologicznie, jeśli warstwa tlenkowa przekracza 2 11m). W ten sposób osiąga się dalszą redukcję pasożytniczej pojemności między kolektorem a podłożem. Zastosowanie polikrzemu jako materiału pośredniczącego w kontakcie między metalem i obszarem n + emitera umożliwia eliminację zjawiska malenia wzmocnienia prądowego w tranzystorach o bardzo płytkich złączach . Zmniejszenie to ma miejsce przy dużym przeskalowaniu rozmiarów struktur. Przykład struktury tranzystora npn, mającej wszystkie trzy wymienione cechy, jest pokazany na rys. 6.26b, w porównaniu ze strukturą o „normalnej" bocznej izolacji tlenkowej. W strukturze samocentrującej z rys. 6.26b zastosowano podwójny, polikrystaliczny kontakt bazy w celu zmniejszenia zewnęt­ rznej rezystancji rozproszonej bazy (Rbxl oraz polikrystaliczny kontakt emitera. 261 6. WYTWARZANIE CYFROWYCH UKŁAOOW SCALONYCH b a r A Ea s 1 • 2 µm1 Ace =4 • 5µm1 Acs = 8x 12 JJml R•• Cee Ces =400ll =8fF =49 fF Aee = 1 x 2 µm1 Ac 8 =3• 2 JJm2 Acs ::. 3• 7 µm 2 R, 11 :: 50.Q: Cee = 2.4ff Ces =4.8 ff Rys. 6.26. Porównanie „normalnej" struktury tranzystora 11pn 7. boczną izolacją tlenkową (a) ze i polikrzemowym emiterem (b) (7). Nie pokazano metalizacji. Symbole A oznaczają powierzchnie odpowiednich złączy strukturą samocentrującą z izolacją transzcjową Wskutek znacznego zmniejszenia rozmiarów tranzystora i wprowadzenia izolacji transzejowej pojemność posożytnicza między kolektorem i podłożem (C,.) została zredukowana dziesięciokrotnie. WYTWARZANIE UKŁADÓW SCALONYCH MOS 6.5 Zasadniczy proces technologiczny rozpoczyna się od wytworzenia płytki podłożowej z krzemu typu n o rezystywności 3 + 5 !'lcm, która jest utleniana powierzchniowo na grubość ok. I µm (rys. 6.27a). Następnie litograficznie wytwarza się maskę z oknami na wyspy drenów i źródeł tranzystorów oraz wykonuje się dyfuzję domieszki typu p, zwykle boru (rys. 6.27b). Następnie wykonuje się ut lenianie powierzchni i w kolejnym procesie maskowania ustala się wyspy bramek. Po wytrawieniu tlenku w obszarach bramek wykonuje się precyzyjne utlenianie powierzchni krzemu w celu wytworzenia ściśle określonej, cienkiej (ok. 100 om) warstwy izolacyjnej (rys. 6.27c). Warstwa tlenku oddziela powierzchnię półprzewodnika od elektrod bramek, produkowanych następnie (po maskowaniu kontaktów) w procesie metalizacji i wytrawiania połączeń (rys. 6.27d). Cały proces obejmuje zatem cztery maskowania: dreny i źródła, bramki, 262 5.5. WVTWARV.NIE U<V.00W SCALONYCH MOS Struktury PMOS nie wymagają wytwarzania izolacji przewodzenie między wyspami dyruzyjnymi drenu i źródła następuje tylko w kanale utworzonym w wyniku oddzialywania napięcia bramki. Długość bramki L , musi być większa od długości kanału L, aby uwzględnić tolerancje topograficzne procesu. Powoduje to jednak zwiększenie pojemności między bramką i :źródłem (C„) oraz między bramką i drenem (C,.,), co negatywnie wpływa na szybkość przełączania tranzystora. kontakty i połączenia. międzyelementowej, gdyż b „ Dyfuzjo okceptorowo Rys. 6.27. Uprosiczooy proces technologiczny PMOS a} płyl\:a pcw:llo1owa 't waf"3t Wlł Otn\:ową.. b) miukowanlc oblliarów dttnu i źródla orat. dyfuzj.11 boru., c) wy1wamnlc denłdcj wanJ:l'•'Ydenku w obsnru bti1mkl, d) ma~kowanic kon1akt61A•. mccalbacjn i W)'lfll\loianic polł(:ul\ Najbardziej krytyczną operacją technologiczną w opisanym procesie jest wytwarzanie i zabezpieczenie podbramkowej warstwy tlenkowej na powierzchni półprzewodnika. Zanieczyszczenia powierzchni, zwłaszcza przez jony alkaliczne (reprezentujące szkodliwy ładunek powie rzchniowy), często są powodem złej stabilności tranzystorów MOS, od zwiercied lającej się m.in. przez krótkoi długoczasowy dryf wartości napięcia progowego, co w zasad niczy sposób wpływa na stabilność i niezawodność pracy ukladów. Zanieczyszczen ia jonowe stanowią również jeden z powodów powszechnego początkowo stosowauia struktu r wyłącz.nie z kanałami typu p. Większość jo.nów zanieczyszczeń ma ładunek dodatni, a ponadto, w związku z raptownym uskokiem struktury półprzewodnika typu n na styku z warstwą tlenkową, wytwarza się dodatni ładunek powierzchniowy związany z defektami struktury krystalicznej. W strukturze p-kanalowej dodatni ładunek w obszarze bram ki działa przeciwnie w stosunku do ujemnego napięcia sterującego bramki, potrzebnego do zapewnienia przewodzenia. Ładunek ten wywołuje niekorzystne zwiększenie wielkości napięcia progowego. Zwykłe jest to jednak mniej niepożą­ dane niż zmniejszanie napięcia progowego, które miałoby miejsce przy strukturze z kanałem typu 11, wywołując stale przewodzenie w zanieczyszczonych strukturach. 263 6. WYTWARZANIE CYFROWYCH UK.U .DOW SCALONYCH Technologia PMOS jest relatywnie tania i prosta. Była stosowana do wytwarzania układów o niewielkiej szybkości działania, do masowych zastosowań rynkowych (np. programatory do pra lek i radioodbiorników, zegary-budziki, proste kalkulatory itp.). W miarę udoskonalania technologii, a zwłaszcza czystości obróbki powieri.chni knemu w obszarach bramek tranzystorów MOS, technologia NMOS została zaakceptowana powszechnie. Układy NMOS mają następujące zasadnicze zalety w stosunku do układów PMOS: większa szybkość działania, wynikająca z ok. 3-krotnie większej ruchliwości µ nośników typu n (elektronów) niż nośników typu p (dziur) oraz mniejszych efektów pasożytniczych, związanych z mniejszymi rozmiarami struktur NMOS; większa gęstość scalenia struktur półprzewodnikowych, wynikająca ze zmniejszenia ich rozmiarów (ponieważ gęstość prądu unoszenia jest wprost proporcjonalna do ruchliwości nośników, zatem do uzyskania tej samej wielkości prądu w strukturze NMOS wystarczy 2 ~ 3-krolnie mniejsza powierzchnia), stosowania mniejszego napięcia zasilającego i występowania mniejszych napięć na złączach; możliwość bezpośredniej współpracy z układami scalonymi TIL. Technologia NMOS jest bardziej złożona i droższa. Tranzystor NMOS, wykonany analogicznie jest tranzystor PMOS w sposób pokazany na rys. 6.27, ma ujemne napięcie progowe, czyli jest tranzystorem z kanałem zubożanym. Oznacza to, że przy U Gs = O kanał n jest przewodzący w wyniku istnienia warstwy inwersyjnej. Aby wytworzyć tranzystor z bramką aluminiową, kanałem wzbogacanym i dodatnią wartością napięcia progowego, należy wykonać dodatkowe, precyzyjne domieszkowanie typu p obszaru kanału, co z reguły wykonuje się metodą implantacji jonów. Z tego samego względu, aby pnerwać przewodzące kanały między tuż obok siebie ulokowanymi tranzystorami, należy wykonać dodatkowe domieszkowanie typu p obszarów ochronnych (np. pierś­ cieni) wokół tranzystorów NMOS. Obszary te zwyczajowo nazywa się stoperami. Struktura tranzystora NMOS z bramką metalową jest pokazana na rys. 6.28. Przykładowy proces technologiczny składa się z następujących, zasadniczych czynności. Maska I: wykonanie okien do obszarów źródeł i drenów oraz domieszkowanie n+ tych obszarów poprzez dyfuzję lub implantację fosforu. Maska 2: wykonanie stoperów poprzez domieszkowanie borem i wytworzenie warstwy tlenku niskotemperatu rowego (CVD) o grubości ok. 1.2 µm. Tlenek ten zwyczajowo ok.reśla się jako polowy, w odróżnieniu od cienkiej warstwy tlenku termicznego pod bramką, którą określa się jako tlenek bramkowy, Maska 3: wykonanie cienkich tlenków bramkowych, po c-.tym następuje implantacja jonów boru (w celu ustalenia pożądanej wartości napięcia 264 6 5. WYTWARZANI E UKlADOW SCALONYCH MOS Termiczny ttenek tH'omkowy G -1,2µ O Metol Tlenek potowy ICVOI . 7·· . Stoper kOnolU lmplontowont JO<'IYboru ł NA:!!! 2 •10'6crri 3 ) typu p z krzemu łN„=1 -101Sem'"l1 PO<łlote ł NA =i 1017cni3 J <100> G s LJ§J•0- ·- r~ .... „.T I I ,- ~.!. .„. „ •.J.. n• @Dó: o zI I "\ n... Rys. 6.28. Strulcrura tranzystorów NMOS z bramką metalową progowego) i związane z nią wygrzewa nie. Implantacja następuje poprzez tlenek bramkowy, przy czym tlenek polowy służy jako maska. Maska 4: wykonanie o kien do kon taktów źródeł i drenów oraz metalizacja powierzchni płytki poprzez naniesienie warstwy aluminium. Maska 5: wykonanie połączeń i tlenkowa pasywacja powierzchni płytki. Maska 6: otwarcie okien do kontaktów zewnętrznych w warstwie pasywującej. Ulepszenia techn ologiczn e Podobnie jak w przypadku układów bipolarnych, postęp w technologii układów MOS ma na celu zwiększenie szybkości d2ialania, zmniejsi:anie mocy strat i zmniejszanie rozmiarów tranzystorów. Dąży się więc do uzyskania jak najszybszych układów o jak największym stopniu scalenia i akceptowalnym koszcie. Z uproszczonej teorii skalowania tranzystorów MOS wynika, że przy zmniejszeniu wymiaru charakterystycznego (szerokości linii) o pewien wspólc-.i;ynnik k > 1, opóźnienie propagacji maleje w przybliżeniu w stosunku 1/ k i moc strat maleje w pr.tybliżeniu w stosunku 1/k 2 • Wynik i praktyczne jednak zazwyci:aj odbiegają od tej teorii . Zmniejszenie rozmiarów tranzystora i zwięks1..enie jego szybkości działa­ nia mo2na osiągnąć także bez zmniejszania wymiaru charakterystycznego i związanego z tym polepszania rozdzielczości w procesach litograficznych. 265 $, WYTWARZANIE CYFROWYCH U Kl.A0 0W SCALONYCH Skrócenie długości kanału i zmniejszenie pojemności pasożytniczych bramki jest możliwe przy zastosowaniu tranzystorów z bramką krzemową. Bram ka ta jest stosowana zarówno w tranzystorach PMOS, jak i NMOS. Zasadnicze fazy procesu wytwarzania tranzystora NMOS z bramką krzemową są pokazane na rys. 6.29. Nie uwzględniono na nim czynności domieszkowania obszaru kanału (do ustalenia wielkości napięcia progowego) oraz domieszkowania stoperów. Powierzchnia płytki jest pokrywana tlenkiem na grubość ok. I /tm, po czym następuje selektywne wytrawienie Si0 2 z obszarów, gdzie mają być wykonane tranzystory (a). Następnie na płytce wytwarza się cienką (ok. 100 nm) warstwę tlenku termicznego i osadza się na niej warstwę krzemu polikrystalicznego (b), po czym litograficznie usuwa się tę warstwę z wyjątkiem obszarów bramek i tych obszarów, gdzie mają być wykonane połączenia z krzemu polikrystalicznego. Następnie wytrawia się warstwę tlenkową znad obszarów drenów i źródeł tranzystorów i wykonuje się dyfuzję domieszki typu n, najczęściej fosforu (c). W wyniku dyfuzji następuje nie tylko wytworzenie domieszkowanych wysp źródeł i drenów, lecz także silne domieszkowanie odsłoniętych obszarów polikrystalicznego krzemu (dyfuzja domieszek w krzemie polikrystalicznym następuje szybciej). Dalszą operacją jest pokrycie całej powierzchni warstwą tlenkową, w wyniku czego bramki krzemowe i krzemowe ścieżki połączeniowe zostają całk owicie wtopione w warstwę izolacyjną. W kolejnym procesie fotolitograficznym wytwarza się maskę odsłaniającą kontakty do tranzystorów i ścieżek połączeniowych, po czym następuje metalizacja i wytworzenie połączeń metalicznych (d). Dużą zaletą bramki krzemowej jest właściwość samocentrowania, polegająca na tym, źe obszary drenu i źródła są dość dokładnie dopasowane wymiarami do obszaru bramki. Jest to rezultatem użycia bramki krzemowej jako maski przy dyfuzji domieszki w odsłonięte obszary drenu i źródła (rys. 6.29c). Przy użyciu do domieszkowania metody implantacji j onów otrzymuje się jeszcze lepsze dopasowanie obszaru bramki z obszarem drenu i źródła. Nie występuje wtedy zjawisko dyfuzji lateralnej, które ma zawsze miejsce przy klasycznej dyfuzji, powodując lekkie zazębienie obszaru bramki z obszarami drenu i źródła. Właściwości samocentrowania nie ma struktura z bramką aluminiową (rys. 6.28), w której obszar bramki jest określany przez rozmiary elektrody metalowej wytwarzanej po ostatnim kroku maskowania. Niedokładności procesu litograficznego narzucają konieczność wytwarzania wtedy bramki o długości większej niż długość kanału, czyli częściowego przykrycia obszarów drenu i źródła przez obszar bramki. Struktury tranzystorów z bramką krzemową mają znacznie (ok. 2-krotnie) mniejszą powierzchnię niż struktury z bramką aluminiową. Głównie jest to wywołane właściwością samocentrowania bramki krzemowej i związanym z tym 266 U. WYlWARZANIE UKlAOOW SCALONYCH MOS Tlenek CVO a "' pHO Ilem) b Krzem pollkryslallczny termiczny p c DYFUZJA DONOROWA ~lllll lll p Rys. 6.19 d ŹrÓdło lS) Dren ID) Sromka krzemowa IG l p Zasadnicze fazy wytwarzania tranzystorów N MOS z bramką knem ową .a) odsłanianie ~to.> CtaftJ')ltC!f6w, b) utłmianw tttmiC':mt i oudu•k W1rjfW)' kt'lltl'lla polikty1Caha:ar:~ C1 d)-fuzja donoron • o.bton-rec okury drcoów i &ódeł oni do krumu polikry1tabCl'MłQ, d} lill$kowanie kontalnów, tl'ld~htaqa 1 -.·)·trawi:ui.it po~ettń brakiem nadmiernych powierzchni, potrzebnych do uwzględnienia 1olerancji maskowania w technologii klasycznej. Bramka krzemowa umożliwia zatem zmniejszenie wartości pojemności pasożytniczych bramka--<lren i bramka-źródło, co w istotny sposób wpływa na zwiększenie szybk ości działania tranzystorów MOS. Zauważmy, że w strukturze układu zawierającego tranzystory z bramką krzemową są możliwe trzy poziomy i rodzaje ścieżek połączeniowych: dyfuzyj ne (n+), z krzemu polikrystalicznego i metalowe. Umożliwia to osiągnięcie dużej gęstości integracji. 267 5. WYTWARZANIE CYFROWYCH UKLAOOW SCALONYCH Wytwarzanie Układy układ ów scalonych CMOS 6.6 CMOS są budowane z tranzystorów MOS o obydwóch typach przewodnictwa kanału (p i 11). Główną zaletą tych układów jest znikoma moc strat w stanie statycznym. Podstawową komórką CMOS jest para tranzystorów komplementarnych (PMOS i NMOS) z kanałem wzbogacanym, tworząca układ inwertera w sposób pokazany na przykładowej strukturze z rys. 6.30. Jak widać, dreny obydwu tranzystorów są połączone, tworząc wyjście układu. Ponieważ do wytworzenia komplementarnych tranzystorów MOS są potrzebne podłoża o odmiennym typie przewodnictwa, w podłożu n wytwarza się najpierw dyfuzyjnie lub implantacyjnie pewien obszar p, zwany jamą p. W tej jamie następnie wytwarza się tranzystor 11-kanalowy i obok niej p-kanałowy. W pokazanej struktune dodatkowo są dyfuzyjnie wytwarzane pierścienie ochronne wokół każdego tranzystora (pierścień p • wokół tranzystora n-kanałowego i pierścień 11 • wokół tranzystora p-kanałowego) w celu eliminacji pasożytniczych kanałów i sprzężeń międzyelementowych. Pierścień ochronny p •jest połączony z masą (Uss = O) i kontaktem do jamy p, a pierścień 11 • jest połączony z dodatnim napięciem zasilającym U 00 i kontaktem do podłoża 11. Wynikiem tego jest zaporowa polaryzacja złącza p-11 między jamą i podłożem. Kontakty do podłoża i jamy nie muszą być wykonywane dla każdego tranzystora oddzieln ie, gdyż w jednej jamie może być wykonane wicie tranzystorów tego samego typu, a w podłożu są wykonywane wszystkie tranzystory drugiego typu. Powyższa struktura CMOS z jamą typu p i tranzystorami z bramką aluminiową jest strukturą klasyczną. Została ona jako pierwsza zastosowana w praktyce w wyniku naturalnego rozwoju układów PMOS. Alternatywnym rozwiązaniem jest struktura z jamą typu n, wykonaną na podłożu typu p. Zaletami struktury z jamą p są.: generalnie lepsza równowaga parametrów obydwu tranzystorów, zmniejszona wrażliwość na defekty radiacyjne i łatwiejsze wykonywanie domieszkowania jamy p. W związku z tym technologia CMOS z jamą p jest nadal szeroko stosowana, m.in. do wytwarzania układów z popularnych serii 4000, przy jednoczesnym wykorzystaniu bramek krzemowych i długości kanału 3 + 5 µm. Zaletami technologii CMOS z jamą 11 są m.in.: większa szybkość tranzystorów n-kanałowych (gdyż nic są one wykonyv;ane w przeciwdomieszkowanej jamie p) i kompatybilność z technologią NMOS. Większy prąd pod loża tranzystorów n-kanałowych, pochodzący z jonizacji zderzeniowej (tworzen ia par elektron-dziura) wywołanej gorącymi elektronami, ma ułatwiony splyw w strukturze z jamą n. W szczególności, korzystając ze wspólnego podłoża typu p, można wytwarzać mieszane uklady cyfrowe CMOS/NMOS. Dlatego technologia CMOS z jamą 11 jest powszechnie stosowana do wytwarzania układów mikroprocesorowych oraz pamięci RAM i EPROM. 268 6.5. WYTWARZANIE UKŁAOOW SCALONYCH CMOS a Wejśc ie x Kontakt po d łożem t Ko nał n p p •źródło p• dren Pierśc i eń Konał Podłoie p Jamo p ochronny n• n Kontokt z )omq p Uoo b Diody \ Tl - k anał Uoo l x Uss = o- - pasożytnicze p - - - - -1-+--<>YL Uoo -- Uss=.O Rys. 6.30. Podstawowa komórka CMOS (inwerter) a) struktura scalona,. b) schemat dcktrya;ny Trzecią odmianę podstawowej komórki CMOS stanowi struktura z dwoma jamami, niezależnie tworzonymi we wspólnym podłożu. Jama p jest tworzona dla tranzystora n-kanałowego i jama n dla tranzystora p-kanałowego. Umożliwia to niezależną optymalizację profili domieszkowania, zmniejszenie pojemności złączowych i osiągnięcie większej gęstości scalenia. Większa złożoność i koszt tego procesu powoduje, że jest on stosowany przy wytwarzaniu układów z tranzystorami o długości kanału L ,:;; 1.5 µm. Tranzystory tworzące układ CMOS muszą być między sobą specjalnie 269 6. WYTWARZANI E CYFROWYCH UtCł.AOOW SCALONYCH izolowane, aby wyeliminować możliwość powstania pasożytniczych kanałów między nimi i, w szczególności, aby nie dopuścić do powstania zjawiska zatrzaskiwania pasożytniczych tranzystorów bipolarnych. Klasyczną metodą izolacji jest stosowanie pierścieni ochronnych. Metoda tajednak ma ograniczone zastosowanie w nowszych technologiach z uwagi na konieczność poświęcenia na ten cel relatywnie dużej powierzchni kostki, co ogranicza wzrost gęstości scalenia. Najpopularniejszą metodą izolacji jest boczna izolacja tlenkowa, znana z procesów ISOPLANAR i LOCOS. Jest ona powszechnie stosowana, w połą­ czeniu ze strukturami z jamą p i tranzystorami z bramką krzemową, do wytwarzania szerokiej gamy układów CMOS o długości kanału 2.5 -;- 5 µm , w tym szybkich układów z serii HE4000B (Philips) i MC74HC (Motorola). Kolejnym ulepszeniem jest zastosowanie wysokooporowej warstwy epitaksjalnej na niskooporowym podłożu, co m.in. zmniejsza podatność układu na zatrzaskiwanie i zmniejsza pojemności pasożytnicze. Na rysunku 6.31 przedstawiono trzy omówione struktury wykorzystujące izolację tlenkową, tranzystory z bramką krzemową i warstwę epitaksjalną (8). Źródła obydwu tranzystorów w pokazanych przekrojach nie mają bezpośred­ nich kontaktów metalicznych. Są to tzw. kontakty zagrzebane, w których o pasie dzioby" Tlenek cvo Tlenek potowy n• Jamo __ ____~'?!~ _!!e!_to~sJ.o!!lo_n____ _ POdto>!e n• b Jama n - - - - - - Wo~łw.JIJ!E)łQ_k~~"-P- - - - Podfoźe p• c p p• Rys. 6.31. Trzy podstawowe warianty budowy polowym typu LOCOS i tranzystorami z układów CMOS z tlenkiem bramką kncmową a) z jamą typu p, b)7.jamą typu Ił. i:) td.,..'Om.fl j~m<&mi (t)'~ p i 1t)(niezaznaczono kontaktów U t>1>i Ua;~ 270 8-5. WYTWARZANIE UKlADOW SCALONYCH CMOS obszary źródeł p + i n+ są przedłużone do sąsiednich struktur, służąc jako lokalne połączenia. Wymienione zjawisko za.irzaskiwania (lat.cit-up) jest charakterystyczne dla układów C MOS. Po wstaje ono w wyniku dodatniego sprzężenia zwrotnego między pasożytniczymi tranzystorami bipolarnymi pnp i npn, stowarzyszonymi z komplementarnymi tranzystorami stru ktury CMOS. Przy wystąpieniu tego zjawiska, analogicznego do włączenia tyrystora, następuje przepływ prądu stałego przez tranzystory pasożytnicze, co może doprowadzić do termicznego zniszczen ia układu, a co najmniej do zatrzymania jego działania na czas zatrzaśnięcia. Struktura pasożytnicza pnpn, w której występuje tyrystorowe zjawisko zatrzaśnięcia stanu przewodzenia, jest pokazana na rys. 6.32. W przykładzie z jamą p tworzy się w niej pionowy tranzystor pasożytniczy 11pn i w podłożu poziomy tranzystor pasożytniczy pnp. Z tranzystorami tymi są stowarzyszone rozproszone rezystancje pasożytnicze między bazą tranzystora 11p11 i kontaktem do jamy (r;) oraz między bazą tranzystora pnp i kontaktem do podłoża (r,J. o b c I ' '• 1,.. y •• Ir 'J D Rys. 6.32. Przyczyny zjawiska zatrzaskiwania 1:) puoi:)1-.. lranr)'Mory bipolarne w IU\ltłum suot aary f)'flltOrOWCj. c) ~)"\• 271 CMOS. b) diana1 dd:trycmy pt;lCłi)'łnlU.C'J ~~ ~ t)·f'}'$tora 6. WYTWARZANIE CYFROWYCH UKŁADÓW SCALONYCH Zjawisko zatrzaśnięcia powstaje wtedy, gdy obydwa tranzystory przewodzą i wzmocnienie w pętli dodatniego sprzężenia zwrotnego stanie się większe od jedności. Może to wystąpić, gdy napięcie zasilające U 00 krótkotrwale, lecz wystarczająco się zwiększy (powodując przepływ prądu przez r C,; i r;), bądź gdy nadmiernie zwiększy się (powyżej Uss) lub zmniejszy (poniżej zera) napięcie na końcówce y, w rezultacie oddziaływania przyłączonych do tego wyjścia zewnętrznych układów lub przyrządów. Zatrzaśnięcie może również wystąpić, jeśli napięcie U00 - Uss przekroczy wartość napięcia przebicia złącza p-n między jamą i podłożem. Ponieważ wejścia zewnętrzne (x) układów CMOS są z reguły zabezpieczane przed szkodliwymi przepięciami przy użyciu diod połączonych wewnętrznie ze ścieżkami Uss i U00, przejściowe spadki napięć powstające na pasożytniczych rezystancjach tych ścieżek w obecności zewnętrznych przepięć „ mogą również spowodować zatrzaśnięcie. Zjawisko zatrzaskiwania jest samopodtrzymujące, jeśli prąd struktury pasożytniczej I jest większy od wartości progowej I H• zwanej prądem podtrzymania (rys. 6.32c). Z kolei aby wystąpiło to zjawisko, jest konieczne przekroczenie przez I,.. wartości progowej I r · Tak więc działania zabezpieczające mają na celu zwiększenie wartości Ir i I"' bądź przynajmniej zapewnienie I,.. < I u· Istnieje wiele sposobów technologicznych mających na celu zwiększenie odporności układów CMOS na zjawisko zatrzaskiwania [2, 8). Klasycznym sposobem jest stosowanie pierścieni ochronnych, pełniących również funkcje kontaktów do podłoża i jamy. Ma to na celu obniżenie wartości rezystancji rozproszonych r• i ' ;• bocznikujących odpowiednie złącza baza-emiter tranzystorów pasożytniczych. Wysoką odporność na zatrzaskiwanie uzyskuje się przez zastosowanie izolacji transzejowej w połączeniu z warstwą epitaksjalną na niskooporowym podłożu . Radykalnym, lecz kosztownym sposobem jest zastosowanie podłoża izolacyjnego, czyli technologii SOI, co praktycznie wyklucza zjawisko zatrzaskiwania w wyniku eliminacji tranzystorów pasożytniczych. Technologie jedno- i submikronowe są znaci.nie bardziej złożone. Regułą jest stosowanie struktur CMOS z dwoma jamami i warstwy epitaksjalnej na niskooporowym podłożu. Aby wyeliminować niestabilności wywołane generacją gorących nośników, stosuje się środki zmniejszające pole elektryczne w kanale w pobliżu drenu. Najczęściej stosowane rozwiązania (rys. 6.33) to lekko domieszkowane dreny (LDD - Lightly Doped Drain) lub dreny z podwójną dyfuzją (DDD - Doubly Diffused Drain). Umożliwiają one zmniejszenie natężenia pola w obszarze zubożenia przy drenie. W celu wytworzenia drenów LDD najpierw wykonuje się wokół bramki boczną warstewkę tlenku dystansującego (oxide spacer), tak aby w czasie implantacji obszaru drenu powierzchnia pod tym tlenkiem była słabiej domieszkowana. „. 272 6.5, WYTWARZANIE UKŁADÓW SCALONYCH CMOS a b Tlenek dystonsujqcy Poli krzem ~ p Polikrzem I ooo I p Rys. 6.33. Modyfikacje technologiczne dla przeciwdziałania szkodliwym 1jawiskorn, wywołanym przez gorące nośniki a) $lr\lkluril l.00, b) łlniktura ODO Użycie technologii CMOS z jamą n umożliwia względrue łatwe wykonanie pionowych tranzystorów bipolarnych npn, z których każdy jest umieszczany w oddzielnej izolującej jamie n, służącej jako kolektor. Implantacja obszarów n+ dla źródeł i drenów tranzystorów NMOS zapewnia kontakty emitera i kolektora, a kontakt do bazy, wytwarzanej oddzielną implantacją, otrzymuje się podczas implantacji obszarów p+ dla tranzystorów PMOS. Scalenie tranzystorów bipolarnych z komórkami CMOS (technologia BiCMOS) umożliwia wykonanie szybkich buforów bipolarnych o malej impedancji wyjściowej , służących do sterowania dłuższych linii połączeniowych na kostce oraz jako układy wyjściowe do sterowania zewnętrznych obciążeń pojemnościowych. Umożliwia to zwiększenie szybkości działania układów i częściowo zabezpiecza je przed zjawiskiem zatrzaskiwania przez separację zewnętrznych wyjść układu od wewnętrznych komórek CMOS. LITERATURA I. Marciniak W.: Przyrz.ądy pólprzewodnilwwe i uklady scalone, WNT, Warszawa 1979 2. Stecie I A. J.: Particle-beamfabrication and in-Silu processing ofint.egrated circuits> Proc. IEEE. vol. 74, No. 12, December 1986, 1753-1774 3. Marcoux P. J.: Dry etching: an overview, Hewlett-Packard J., August 1982, 19-23 4. Merchant P. P.: Elec<romigration: an overview, Hewlett-Packard J., August 1982, 26-31 5. lepselter M. P. et al.: A Systems approach to 1 - µm NMOS, Proc. IEEE, v. 71, No. 5, May 1983, 640-656 6. lohstroh J.: Devices and circuits for bipolar (V) LSI, Proc. IEEE, v. 69, No. 7, July 1981, 812- 826 7. Niog T. H., Tan O. O.: Bipolar 1re11ds, Proc. IEEE, v, 74, No. 12, Dcccmbcr 1986, 1669- 1677 8. Holton W. C., Cavin R. K.: A perspective 011 CMOS tech110/ogy tre11ds, Proc. IEEE, v. 74, No. 12, December 1986, 1646-1668 9. Beck R. B.: Technologia krzemowa, PWN, Warszawa, 1991 IO. Diłlinger T. E.: VLSI engineering, Prcntice Hall Int., Englcwood Cliffs, 1988 273 7 BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKŁADÓW SCALONYCH NAJPROSTSZE BRAMKI 7.1 Bramki AND {I) i OR (LUB) można zbudować jako proste układy diodowo-rezystorowe (rys. 7. I). Układy takie mogą być realizowane jako bardzo szybkie (t, < 100 ps) przy użyciu diod Schottky'ego. Można je także łączyć w struktury kaskadowe typu AND-OR- AND ... Bramki AND i OR nie tworzą jednak systemu funkcjonalnie pełnego (SFP - p. 4.1.l), gdyż nie umożliwiają wykonania negacji boolowskiej. Możliwości ich zastosowania do syntezy układów kombinacyjnych są zatem ograniczone. Ponadto ich możliwości sterowania większych obciążeń, zwłaszcza pojemnościowych, są niewielkie z uwagi na relatywnie duże impedancje wyjściowe. Dlatego układy diodowe nie były wytwarzane jako scalone, a ich zastosowanie jest ograniczone do sporadycznych, prostych przypadków. Budowę podstawowych bramek z historycznie pierwszych klas układów scalonych pokazano na rys. 7.2. Bramka NOR z klasy RTL (Resistor- Transistor Logic) {rys. 7.2a) ma opóźnienie t, = 12 ns i moc strat P = 12 mW. Relatywnie duży prąd wejściowy bramki RTL przy poziomie H powoduje zmniejszanie marginesu zakłóceń przy zwiększaniu liczby N sterowanych bramek. Dlatego liczba sterowanych bramek jest ograniczona. Warto jednak pamiętać, że z takich układów był zbudowany komputer pokładowy amerykańskiego lądownika księżycowego w misji Apollo. Prądy wejściowe podstawowej bramki NAND z klasy DTL (Diode- Tra11sistor Logic) (rys. 7.2b) są już praktycznie pomijalne p1-zy poziomic H na wejściach. Ponadto bramka ta umożliwia realizację funkcji zwarciowej DAND. Bramka ulepszona z serii DTL 930 Firmy Fairchild (rys. 7.2c) jest szybsza, dzięki wprowadzonemu wtórnikowi emiterowemu. Wymaga ona tylko jednego napię­ cia zasilającego. Na podstawie podobnej struktury układowej zostały opracowane układy z klasy HTL (High 1hresltold Logic), o napięciu zasilania + 15 V i marginesie zakłóceń 5 V. 274 7.2. UKŁADY Til o a +Ucc ..::}.~ Xz b ~ x, Xz Y=X 1 V X2 R c o •lite R iANCl°-ORl x, ., y:x, X? V X 3 V X4 x, x, . ,o--l<E!_J - oo Rys. 7.1 Bramki diodowe R)'s. 7.2 Budowa bramek w pierwszych scalonych układach a) ANO, b) OR, c) ANO-OR a) NOR RTL. b) NAND OTL, UKŁADY Układy TTL ~) NAND OTµL 7.2 1TL (Transistor-Transistor Logic) są najpopularniejszymi układami cyfrowymi, stosowanymi w praktyce od lat sześćdziesiątych, kiedy to zostały wprowadzone na rynek światowy przez firmę Texas Instruments. Asortyment typów układów jest ogromny, a ponadto są one dostępne w różnych obudowach i w kilku seriach, różniących się szybkością działania, mocą strat i kosztem. Podstawowe parametry techniczne układów TIL z różnych serii zestawione są w tabl. 7.1. Jak widać, można wyróżnić trzy grupy tych serii, zależnie od użytej technologii. Na wcześniejszym rys. 5.1 pokazano przebieg „czasu życia" układów TTL z różnych serii w porównaniu z układami CMOS i BiCMOS. Najbardziej dojrzałe i perspektywiczne serie TTL to serie ALS, F i AS, natomiast serie LS, S i w szczególności seria standardowa (fTL) stają się już przestarzałe i nie są zalecane do nowych projektów. 275 7, BUDOWA I CHARAKiERYSlYKI CYFROWYCH UKŁA,OOW SCALONYCH Tablica 7.1 ZESTAWIENIE ZASADNICZYCH PARAMETRÓW SERII W RODZINIE UKlA()ÓW 'ITL Seria Technologia izolacji złączowej z domieszko- wanicm zlotem H Standardowa Parametr Ci.as propagacji T,,„ (os) przy N ~ 10 Moc strat na bramkę (mW) Współczynnik dobroci Technologia izolacji zlączowej z d iodami Schottky'ego Technologia izolacji tlenkowej z d iodami Schottky'ego s LS F ALS AS Schottszybka mocy Schott- ky'ego ulepszo- ulepszo(prlCS- (przes- ky'ego malej FAST na LS na S tarzała) tarzała) mocy L małej IO 6 33 3 9 3.5 5 1.7 10 23 I 19 2 5.5 1 8 t,,Y, ·P, „(pJ) 100 138 33 57 18 19.2 5 13.6 Maksymalna częstotliwość pracy rfm„),„ (MHz) 25 50 3 125 33 150 50 200 0.4 l 0.5 ł 0.4 l 0.4 2 16 20 3.6 20 8 20 8 20 l.6 10 2 0.18 20 2 IO 0.4 20 0.6 33 0.2 10 0.5 48 P,„ D,1P • 1 Prąd wyjściowy loffmu(mA) Prąd wyjści owy lotmu(mA) Prąd wejściowy //Lmu(mA) Obciążalność N max Sposób oznaczeń 40 układów scalonych TTL ilustruje przykład: SN74ALS112N Pierwsze dwie łub trzy litery (tutaj SN - Solid Network) wskazują na wytwórcę (SN wskazuje na Texas lnstruments). Cyfry 74 oznaczają „komercyjny" zakres temperatury O... + 70°C (cyfry 54 wskazywałyby na „wojskowy" zakres temperatury - 55... + 125°C). Kolejne litery służą do oznaczenia serii łub rodziny układów cyfrowych. W podanym przykładzie jest to seria ALS z rodziny TTL. Następne dwie, trzy łub cztery cyfry oznaczają typ układu. W omawianym przykładzie l l2 oznacza układ zawierający dwa przerzutniki JK wyzwalane zboczem ujemnym, z oddzielnymi wejściami S i R. Końcowe litery (jedna, dwie łub trzy) oznaczają rodzaj obudowy (w tym przypadku litera N oznacza obudowę plastykową dwurzędową). Podstawowa bramka TTL 7 .2 .1 Na rysunku 7.3a jest pokazany schemat elektryczny dwuwejściowej bramki NAND z serii standardowej TTL. Cztery takie bramki znajdują się w układzie scalonym 7400. 276 7.2. UKŁADY TIL o c b --------ollJc~SV Rl ~kil Rz .6k S! x, x, y L X H X L H H H L ~=D-3 ~=D-6 1 ~=[)-e & 12-1\....11 13-L../- Rys. 7.3. Podstawowa bramka NAND (IN) z serii standardowej 1TL a) sdiemat. b) u1blica $tanów. c) symbó)c grafM:Vle układu 1400 Charakterystyki końcówkowe tej bramki, w tym poziomy napięć i odpowiednie wielkości prądów, odnoszą się do wszystkich układów z serii standardowej. Oznacza to łatwe łączenie układów: z nielicznymi wyjątkami, każde wyjście układu może być połączone z dziesięcioma wejściami innych układów z tej samej serii. Wszystkie tranzystory układu, z wyjątk iem T3, znajdują się w stanie nasycenia lub w stanie odcięcia, zależnie od poziomów logicznych na wejściach. Tranzystor wieloemiterowy Tl jest odpowiednikiem diodowej bramki AND z rys. 7.la. Tranzystor T2 działa dwojako: jako wtórnik emiterowy i inwerter. Dioda DI zapewnia odcięcie tranzystora T3, gdy tranzystory T2 i T4 są w stanie nasycenia, tj. gdy na wyjściu jest poziom L. Tranzystory T3 i T4 tworzą układ wyjściowy, zapewniający małą impedancję wyjściową zarówno przy poziomie L, jak i H na wyjściu. Rezystor R3 ogranicza prąd wyjściowy w przypadku zbyt dużego obciążenia na poziomie H (np. przy zwarciu wyjścia do masy) oraz w procesie przełączania. Diody ograniczające D 2 i D 3 ułatwiają realizację dłuższych połączeń między układami. Cztery bramki są umieszczone w jednym układzie scalonym 7400, o oddzielnych wejściach i wyjściach oraz wspólnym połączeniu napięcia zasilającego i masy. Przy stosowaniu symboliki IEC opis logiczny umieszcza się tylko w głównym elemencie zespołu elementów o wspólnych blokach (rys. 7.3b). Przy zwiększeniu liczby wejść bramek odpowiednio maleje liczba bramek zawartych w jednym układzie scalonym SSI. l tak np. jeden układ scalony może zawierać również trzy bramki trzywejściowe, dwie bramki czterowejściowe lub jedną bramkę ośmiowejściową. W każdym przypadku wszystkie bramki danego układu scalonego są wytwarzane na jednej wspólnej kostce krzemowej. Układy TIL o większym stopniu scalenia (MSl i LSI) są zbudowane z prostszych bramek NAND, o schemacie pokazanym na rys. 7.4. Uproszczenie tworząc 7..espół 277 1. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKLAOOW $CAL0ttYC>1 L\::c"SV --- . , ---, 4kR 4kll. I I y I I !_ ___ _ JI I L ____ J Rys. 7.4 Dwie 11 wcwnęt rzne' ' bramki NAND i sposób ich połąC2eń o budowy wynika I I stąd, że obciążenia „wewnętrzne" są zewnętrzne, zwłaszcza znacznie mniejsze niż przy Nm.,.= JO. P onadto wpływ zakłóceń jest także mmeJSZy. Stan statyczny bramki Dla uproszczenia przyjmiemy stałą, niezależną od prądu wartość spadku napię­ cia na diodzie o przewodzących złączach baza-emiter, równą 0.7 V. Napięcia w punktach A, B, C, F, G schematu z rys. 7.5 są określone odpowiednio jako U A• U8 itd. Napięcia na wejściach bramki są przyjęte jako równe napięciom wyjś­ ciowym innych bramek z tej samej serii, w tym przypadku serii standardowej. Temperatura otoczenia jest przyjęta jako równa + 25°C, a napięcie zasilające Uce jako równe + 5.0 V, z wyjątkiem przypadków, w których podano inaczej. Ll<c R, R, F T3 t!"I.li l1H- - ~ ftl Rys. 7.5 G R, l Sc.hemat podstawowej bramki NANO z pokazanymi kierunkami wejściowych i wyjściowych prądów Zgodnie z ogólnie przyjętą konwencją, prądy wpływające do układu (traktowanego jako czwórnik) są oznaczone jako dodatnie, natomiast prądy wypływające z końcówek układu jako ujemne. Stan włączenia W stanie włączenia na obydwu wejściach bramki jest poziom H (wartość typowa Urn= 3.5 V), co powoduje, że na wyjściu bramki jest poziom L (rys. 7.6). Tranzystory T2 i T4 są w stanie nasycenia, T3 jest odcięty, a Tl pracuje w trybie inwersyjnym. Napięcia w układzie bramki mogą być określone następująco: 278 7.2 UKt.AOY TTL b Stan wyfqczenio o 1C ·Pot1om óO'M>lny w scanie a) •~b) ~oa Uc = 0.7 V, U 8 = Uc+0.7 = 1.4 V, UA = U 8 +0.7 = 2.J V, Uc = UG+0.2 = = 0.9 V (typowa wartość napięcia kolektor- emiter tranzystora T2 znajdującego się w stanie nasycenia jest równa 0.2 V), UP ~ Ucc· Typowa wartość napięcia wyjściowego na poziomie L wynosi U 01_,"' = 0.2 V, przy maksymalnym prądzie obciążenia IoLmax równym 16 mA. Poglądowy schemat bramki w stanie włączenia przedstawia rys. 7.7a. W stanie włączenia zarówno prąd wejściowy Im , jak i wyjściowy (obciążenia) I 0 w istocie wpływają do bramki. Wyjście bramki stanowi „zlew" (sink), do którego wpływają prądy obciążenia, dostarczane przez przyłączane do tego wyjścia inne bramki. Dla typowych wartości rezystorów układu z rys. 7.3 można obliczyć wartości płynących przez nie prądów. Przez rezystor R 1 płynie prąd I 111 = (5-2.1)/(4·103 ) = 0.7 mA, przez R 2 płynie /R 2 =(5-0.9)/(1.6 ·103 ) = = 2.6 mA, a przez R 4 płynie I R4 = 0.7/(1·10 3) = 0.7 mA. Prąd bazy tranzystora T4 wynosi zatem IR, + Irt 2 - IR 4 = 2.6 mA. Typowe wzmocnienie prądowe tranzystora T4 jest równe 40. Dlatego nawet przy maksymalnym prądzie obcią:i-..enia (wpływającym do kolektora tranzystora T4), równym IoLm-.= = 16 mA, tranzystor T4 jest przesterowany prądem bazy równym 2.6- 16/ 40 = = 2.2 mA, zapewniając dobre nasycenie. W stanie włączenia tranzystor wejściowy TI jest spolaryzowany odwrotnie (tryb pracy inwersyjnej), w której kolektor i emiter zmieniają wzajemnie swe role) i przez jego bazę płynie prąd równy IR 1 = 0.7 mA. Zgodnie z inwersyjnym trybem pracy do każdego emitera wpływa zatem prąd Im = {11 1R • (plus prąd upływu), gdzie Pr jest inwersyjnym współczynnikiem wzmocnienia tranzystora Tl. Maksymalny prąd wejściowy jest ograniczany przez wytwórców do wartości I 111m„= 40 µA (w najgorszych dopuszczalnych warunkach pracy). A by spełnić ten warunek, należy zapewnić fJ 1 < 0.025. Maksymalny prąd obciążenia o gwarantowanej wartości I oi „.,= 16 mA jest wystarczający do przyłączenia na wyjście bramki dziesięciu podobnych bramek łub wejść innych układów TTL z serii standardowej. Wyj ście bramk i może zapewnić poziom L również dla wi~kszych prądów obciążenia, lecz „ 279 7, BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKlAOOW SCALONYCH o L\:c ,5y R, R 4kQ .6kG 0.9V loL IJH 1,. °'" lu'" (3,SVł R, 13.SVl 1~ (0.2V) 1kG b -------- -->---<> L\:c•SV R, .6kQ R F c 4,9V --I 4.9SV TJ -ltL .2V 01 X (pazjQmdQWOlny( UIL ( 0.2Vł 300 Rys. 7.7 Poglądowe schcmuly ias1ępczc podslawowcj bramki NANO w sianie ·>~·- b)">~ Nół rysunł• ~ ~nit ~ _..,. wówczas napięcie wyjsc1owe U OL wzrasta. Zależności nap1ęc1a wyjsc1owego U 0 L od prądu obciążenia I 0 L i temperatury otoczenia, przedstawione na rys. 7.8, stanowią charakterystyki wyjściowe bramki w stanie włączenia. Na rysunku zaznaczono również największą wartość napięcia wyjściowego U OL mu = 0.4 V, gwarantowaną przez wytwórców dla najgorszych (lecz dopuszczalnych) warunków pracy. Rezystancja wyjściowa bramki wynosi w tym stanie ok. I O n (wartość typowa). Aby utrzymać bramkę w stanie włączenia, najniższe napięcie wejściowe poziomu H musi być wystarczająco duże, aby zapewnić gwarantowany poziom L na wyjściu. Przyjmuje się U 111 m;n = 2.0 V. Przy zwarciu wejść bramki całkowity prąd wejściowy jest sumą prądów wejściowych zwartych wejść. Oznacza to, że przy zwarciu wszystkich wejść bramki (np. czterowejściowej) i przyłączeniu ich do poziomu H , całkowity maksymalny prąd wejściowy może osiągnąć wartość równą 4 x 40 µA = 160 µA. 280 12.. UKlAOY ITL w.--~--.~---,,-~.-~-.,.~~..-~--.~--,,-~.-~-.,.~----. V Uo 40 80 60 mA 100 101!1.""3• Rys. 7.8 Charakterystyki stanic wląacnia wyjściowe podstawowej bramki TTL z serii standardo=j w Stan wyłączenia na jednym z wejść bramki jest poziom L, wówczas bramka jest i na jej wyjściu jest poziom H (rys. 7.7b). Tranzystor Tl znajduje się w nasyceniu, tranzystory T 2 i T4 nie przewodzą, a T3 pracuje liniowo jako wtórnik emiterowy. Napięcie w punkcie A jest równe U = U n+ O. 7 - 0.9 V i w punkcie B jest U 8 = Un +O.I = 0.3 V (typowa wartość napi11cia kolektor-emiter tranzystora Tl w nasyceniu wynosi ok. O.I V), tak że tranzystor T2 nie może przewodzić. Napięcie wyjściowe może być określone jako Gdy choćby wyłączona „ gdzie: U BEJ - napięcie baza-emiter tranzystora T3, Uo1 - napięcie przewodzenia diody DI , /J3 - współczynnik wzmocn ien ia prądowego tranzystora TJ. Podstawiając typowe wartości otrzymujemy U0 "''" = 5-0.7 - 0.7 - 0.l = 3.5 V. Jak widać z rysunku 7.7b, w stanie wyłączenia zarówno prąd wejściowy ln,jak i wyjściowy(obciążenia) 1011 wypływają z bramki. Prąd wejściowy 1,dest „wlewany" do wyjścia bramki sterującej wraz z podobnymi prądami wejś­ ciowymi pozostałych bramek, przyłączonych do wyjścia bramki sterującej. W starue wyłączenia stosunkowo duży prąd, wynoszący 1111 = (Ucc- U,,.)/ R 1 = 1.03 mA, płynie tylko przez rezystor R1. Zapewniona przez wytwórców wartość prądu J1L nie może przekroczyć wartości mak symalnej l n mu = -1.6 mA w dopuszczalnych warunkach p racy. 281 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKlAOOW SCALONYCH analizowanej bramki jest przyłączone do dziesięciu wejść innych bramek z tej samej serii, maksymalny prąd obciąż.enia wynosi 10 H max= - 0.4 mA. Bramka może być bardziej obciążona, ale wówczas napięcie wyjściowe Uon staje się odpowiednio mniejsze. Zależności napięcia UoH od prądu 1011 , przedstawione na rys. 7.9, stanowią charakterystyki wyj.friowe bramki w stanie wyłączenia. Na rysunku zaznaczono również najmniejszą wartość napięcia wyjściowego U oH mln = 2.4 V, gwarantowaną przez wytwórców w najgorszych, dopuszczalnych warunkach pracy. Rezystancja wyjściowa w tym stanie wynosi ok. 100 n (wartość typowa). Przy założeniu, że wyjście 5 ~~~~~~~~~~~~~~~~~~~~~~~~ V U0 Ucc•S.OV U1l • 0.4 V 4 Obszar procy Io 01 0.4 10 20 I IQIJH -.ox los mA 40 Prqd zwarciowy Rys. 7.9 Charakterystyki wyjściowe podstawowej bramk.i T fL z serii standarowej w stanie wyłączenia Aby utrzymać bramkę w stanie wyłączenia, największe napięcie wyjpoziomu L musi być wystarczająco małe, aby zapewnić gwarantowany poziom H na wyjściu. Napięcie to przyjmuje się jako U n max = 0.8 V. Zależność napięcia wyjściowego U 011 od napięcia zasilającego U ce jest bezpośrednia. Charakterystyka wyjściowa w stanie wyłączenia przesuwa się w górę lub w dół o wartość zmiany napięcia zasilającego, odpowiednio dodatniej lub ujemnej. Przy zwarciu wejść bramki całkowity prąd wejściowy pozostaje praktycznie taki sam, niezależnie od liczby wejść bramki, na których jest poziom L. Oznacza to, że przy zwarciu wejść bramki, np. czterowejściowej i przyłączeniu ich do poziomu L, prąd wejściowy będzie praktycznie taki sam, jak dla jednego tylko wejścia bramki, na którym jest poziom L. ściowe 282 7 2. UKt.AOY TI'L Przełączanie Proces bramki włączenia Załóżmy, że początkowo bramka jest w stanie wyłączenia, przy czym jedno z jej wejść jest na poziomie H, a drugie na poziomie L. Proces włączenia następuje przy zmianie poziomu na drugim wejściu z L na H, tak aby ostatecznie obydwa (w przypadku bramki wielowejściowej - wszystkie) wejścia bramki były na poziomie H. Początkowo typowe napięcie na drugim wejściu jest zatem równe U,= Un = 0.2 V. P rzy wzroście tego napięcia najpierw zaczyna przewodzić tranzystor T2 (przy U, równym ok. 0.5 V, gdyż wówczas U 8 = 0.6 V). Następuje okres liniowej pracy tranzystora T2, który działa wtedy jako prosty wzmacniacz w układzie wspólnego emitera z ujemnym prądowym sprzężeniem zwrotnym, mający wzmocnienie napięciowe równe R 2/ R 4 = 1.6. Przy liniowym zwiększaniu U1 następuje zatem liniowy wzrost napięcia w punkcie G i liniowy spadek napięcia w punkcie C (rys. 7.5). Ponieważ tranzystor TJ działa w dalszym ciągu jako wtórnik emiterowy, zmiana napięcia w punkcie C jest przenoszona na wyjście ze stałym przesunięciem napięciowym, równym sumie spadków napięcia na złączu baza-emiter tranzystora TJ i na diodzie D 1. Po zwiększeniu napięcia wejściowego do wartości ok. 1.4 V, napięcie w punkcie G osiąga wartość równą 0.7 V i następuje włąc-tenie tranzystora T4. P owoduje to również radykalne zwiększenie wzmocnienia wzmacniacza zbudowanego na tranzystorze T2, gdyż przewodzące złącze baza-emiter tranzystora T4 silnie zmniejsza ujemne sprzęże­ nie zwrotne, powodowane poprzednio przez rezystor R4 • Ponieważ napięcie U 8 jest teraz równe sumie spadków napięć na przewodzących złączach baza-emiter tranzystora T2 i T4, przy dalszym zwiększaniu napięcia U 1 napięcie U 8 pozostaje praktycznie stałe. Następuje więc zmiana polaryzacji tranzystora Tl, który zaczyna pracować w trybie inwersyjnym. Tranzystor T2 wchodzi w stan nasycenia, powodując odcięcie tranzystora T3. Przy zmianie napięcia wejściowego, wystarczająco wolnej do pominięcia procesów przejściowych, można otrzymać zależność U0 (U,), zwaną napięciową charakterystyką przejściową bramki (rys. 7.!0a). W przedziale 0.5 V< U,< < 1.3 V napięcie U0 maleje liniowo, zgodnie z liniowym trybem pracy stopnia wzmacniającego z tranzystorem T2. Na krótkim odcinku 1.3 V < U 1 < < 1.5 V rozpoczyna się przewodzenie tranzystora T4, czemu odpowiada nagłe zmniejszenie U 0 . Wartość napięcia wejściowego UI> przy którym napięcie to staje się równe napięciu wyjściowemu U°' stanowi umowny próg zmiany stanu logicznego układu i nazywa się napięciem progowym Ur bramki albo po prostu "progiem". Napięcie to można praktycznie zmierzyć po połączeniu wszystkich wejść bramki z jej wyjściem. Typowa wartość napięcia progowego UT bramek TTL z serii standardowej wynosi ok. 1.4 V przy 20"C, ale do celów testowych przyjmuje się wartość umownie równą 1.5 V. 283 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKlAOOW SCALONYCH o 4 l V Uo 3 7400 ~ Uo;•SV No 10 T0 1: 25°C 2 Rys. 7.10 Charakterystyka przejściowa podstawowej bramki NAND TfL z serii standardowej U1 o b 1 u, 3 2 V a) postał t)'powa, b) włcino$ć charakteryst)'ki bramki od tcmpeJatury 4 pn.:tjściowtj s V Uo :125°C • ' I 3 ' - ooc +70°C ~ -SS C A 2.4V----e-- - -, I 2 I' ~ 1 •125°C ~ I l·70°CI I - ' \,,,ooe ./ ,~- ss•c 1• 25°C uor.;::- I LQ.4V- - - - l---1-O.SV o 0.5 ł Un.~ot --\- - ~ - L..T- 1 - - 1.0 1.S .._ą_ 2.0 u[~mln ___ _ . - --u1___ 2.5 V 3.0 Zmiany charakterystyki przejściowej U0 (U1) bramki przy zmianach temperatury przedstawiono na rys. 7.lOb. Zaznaczono również na nim charakterystyczne napięcia i punkty A, B, odpowiadające oznaczeniom z rys. 5.13. Współc-,:ynni k temperaturowy napięcia progowego Ur wynosi ok. -3 mV/K. Napięcie U0 (0) zmienia się wraz z temperaturą, ze współczynnikiem temperaturowym równym ok. 4 mV/K. Proces wyłączenia Proces wyłączenia przebiega odwrotnie do procesu włączenia. Początkowo na obydwóch wejściach jest poziom H, czyli typowe napięcia wejściowe są równe U1 = Urn = 3.5 V. Przy zmniejszaniu się napięcia wejściowego układ bramki nie reaguje na zmianę U1 , dopóki napięcie wejściowe nie zbliży się do wartości 284 7.2. UKŁADY TI"L równej ok. 1.5 V. Wówcz,as tranzystor TJ zmienia polaryzację i wchodzi w nasycenie powodując przy dalszym zmniejszaniu napięcia wejściowego odcięcie tranzystorów T2 i T4. Tranzystor T2 szybciej wychodzi z nasycenia niż T4, gdyż tranzystor Tl (będący już w stanie nasycenia) zapewnia niskooporowe połączenie bazy T2 z masą, a ponadto tranzystor T4 przewodzi w stanie włączenia większy prąd obciążenia i jest silniej przesterowany prądem bazy. Napięcie w punkcie C zwiększa się, podczas gdy napięcie wyjściowe U0 pozostaje stałe (jak długo tranzystor T4 pozostaje w stanie nasycenia). Gdy różnica napięć Ue - Uo osiągnie wartość równą ok. 1.4 V, tranzystor T3 zaczyna przewodzić. Prąd kolektora T4 wtedy zwiększa się, przyspieszając wyjście tranzystora T4 z nasycenia. Przy wystarczająco dużej wartości ładunku zmagazynowanego w tranzystorze T4 jest możliwe również przejściowe nasycenie tranzystora T3, gdy napięcie UP spada poniżej Uc· Powoduje to przejściowe zwiększenie prądu zasilania lee pobieranego przez bramkę, który jest wówczas ograniczony przede wszystkim przez rezystor R 3 . Amplituda l ee m tego impulsu prądowego może się znacznie zwiększyć przy pojemnościowym obciążeniu bramki (rys. 7.11). Zjawisko to może być przyczyną zaklóceń w pracy systemu cyfrowego, jeśli wiele takich przełączeń następuje jednocześnie i doprowadzenia zasilania do układów scalonych nie są wystarczająco blokowane pojemnościowo do masy. H-~ L -------'-------!' -Iccma: 14mA przy c , = 50 pF IccLa 3.4 mA Rys. 7.11 Zmiany prądu zasilania bramki przy przelączaniu Po wyjściu tranzystora T 4 ze stanu nasycenia napięcie wyjściowe U0 szybko zwiększa się i gdy napięcie wejściowe U1 staje się mniejsze od ok. 0.7 V, napięcie wyjściowe osiąga wartość typową dla poziomu H, równą Uon = 3.5 V. Jeśli proces wyłączenia jest wystarczająco powolny i można pominąć procesy przejściowe w układzie bramki, to charakterystyka przejściowa U0 (U 1) jest taka sama, jak przy wystarczająco powolnym procesie włączenia (rys. 7.10). Szybkość procesów przełączania określa się przez podanie czasów propagacji Lnn• LPHL i tP (p. 5.3.1). Jeden z układów do ich pomiaru jest pokazany na rys. 7. I 2a. Odpowiednie przebiegi napięć są przedstawione na rys. 7.12b, na którym określono również czasy trwania zboczy impulsów na wyjściu układu 285 7, BUDOWA I CHARAkTERYSTY.CI CYFROWYCH U KŁAO OW SCALONYCH a y E 2.4V L 01 02 03 04 Gel"lerotor impulsów Bramko badano b i{----- - ~ --i t, t, 14- u - - - - -1- + IH E u,- ~ ull - I -- - - -- - ~ I~- - - r- -- - - -- - t4- h f - - - - - - 3V ~ -900/e - - I + - - T ·- - -1o'lo łwJH - 1.SV o I i - IPLH-i -iE-- 90%(80%) l..liH -----~[ 'I - - - - - - - v u, - - - - -r - - - - - - - - - u.,,-- - - - - - -+ -r - - - - - - - łtML_. I I ~ • - - tn.H. L - 1sv ~ ~ - -10%(20°/o) I I I• i.---- ł w oL Rys. 7. 12 Pnełączanie bramki 1TL układ pomiarowy, b) definicje mierron)'cb czasów a) pndącttti (tn "' trHl). Wszystkie diody DI „ . D4 są krzemowe, impulsowe, typu 1N3064 lub równoważne. Cl zawiera w sobie pojemność sondy oscyloskopu i złącza pomiarowego. Dla N = 10 przyjm uje się zwykle Cl równe 15 lub 50 pF, RL = 400 n i R' L = 8.2 kQ (rezystor R' l reprezentuje obciążenie bramki przy poziomie wysokim na wyjściu). Gdy użyty oscyloskop ma wejście niskoomowe (np. 50 Q), wejście to przyłącza się do układu pomiarowego za pośrednictwem rezystora R' 1,. Wartość tego rezystora jest wtedy zwykle zmniejszana do około I kQ, aby wyeliminować wpływ reak tancyjnych elementów pasożytniczych związanych z R' L· Jak wynika z rys. 7.9, amplituda impulsu wyjściowego również wtedy nieco maleje. Charakterystyka Zależność wejściowa 11 (U 1) jest zwana charakterystyką wejściową bramki (rys. 7.13a}. Na początkowym odcinku charakterystyki, tj. przy O < U 1 < 1.3 V prąd wejściowy maleje liniowo, zgodnie z zależnością 286 7.2. UKŁADY TIL I, = (Ucc - U1 - Uss1)/R, W przedziale 1.3 V < U1 < 1.6 V następuje weJsc1e tranzystora Tl w tryb inwersyjny, w związku z czym przy U1 = 1.6 V następuje zmiana kierunku prądu 11 • Przy U 1 > 1.6 V bramka pozostaje w stanie włączenia i prąd wejściowy - 11 stopniowo zwiększa się przy zwiększaniu U 1 • W praktycznych zastosowaniach często jest potrzebna znajomość charakterystyki wejściowej bramki w zakresie napięcia wejściowego U1 większym od nominalnego, tj. normalnie zaleconego przez wytwórców (O ~ U1 ~ 5.5 V). Zależność ta jest przedstawiona na rys. 7.13b, gdzie można wyróżnić dwa charakterystyczne przedziały: (a) przy u I <o i (b) prz ul > 5.5 V. w zakresie (a) o 1.2 I mA ..;::Ir 1.0 ~ 0.8 I 7400 l\:c= SV r• •2s•c ......, I I 0.6 I I 1k'1 •SV~ 0.4 u, o.z I lu:- I I o 2 1 -ooos 4 V 3 "- -0.010 b 3 mA I ·I,\ 2 I I I t \' o2 7400 l,\:'c<SV r, .2s•c -1 ' ' •SV u, ' o ~ 1, Ui 2 4 6 'I I -1 I I I I I I -2 287 \ 8 I I I I I I I I V Rys. 7.13 Typowe charakterystyki wejściO\\'C podsta\\1owej bramki TTL z serii standardowej a) w normaln)'IJI nitrtłit pracy. b) w rot'*>:tnonym zakresie prac)' J - b1'3mka z diodami obcinają<')'mi. 1 - bez diod obcinają<:)"Cb 1. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKŁAOOW SCALONYCH prąd l 1 bramki wyposażonej w wejściowe diody ograniczające (rys. 7.3a) szybko po przekroczeniu progu przewodzenia diody, równego ok. 0.6 V. Aby bramka nie uległa zniszczeniu, prąd ten nie powinien przekroczyć 20 mA dla serii 54/74. Jeżeli bramka nie jest wyposażona w diody ograniczające, to próg wzrostu prądu wejściowego jest zwiększony o napięcie nasycenia tranzystora Tl, gdyż wtedy wzrost prądu wejściowego jest spowodowany przewodzeniem pasożytniczej diody między kolektorem tranzystora Tl i podłożem. W zakresie (b) przy typowej wartości U1 równej ok. 9 V, następuje gwałtowne zwiększenie prądu l 1 wskutek przebicia złącza emiter- baza tranzystora Tl. Przebicie to następuje zazwyczaj przy U 1 > 8 V, lecz w zależności od użytej technologii może również wystąpić przy napięciu mniejszym (6-;- 7 V). W praktyce może to oznaczać zniszczenie bramki, gdyż prąd przebicia płynący przez tranzystory Tl, T2, T4 nie jest ograniczony żadnym rezystorem. Dlatego, jeśli zasilacz napięcia Ucc produkuje duże skoki napięcia podczas włączania lub wyłączania, to przy łączeniu wejść TTL z napięciem Uce (reprezentującym poziom H) należy stosować rezystory ograniczające (I -;- 5 k!l). zwiększa się Parametry gwarantowane i typowe Parametry podstawowej bramki NAND, jak też wszystkich innych ukła­ dów scalonych z rodziny TTL, są podawane przez wytwórców w dwóch zasadniczych kategoriach: jako gwarantowane i typowe. W obu przypadkach wartości parametrów odnoszą się zawsze do określonych warunków pomiarowych, tj. konkretnego układu pomiarowego oraz wartości odpowiednich parametrów w tym układzie. Wartości gwarantowane są mierzone zwykle w warunkach odpowiadających umownemu najgorszemu przypadkowi i określonemu przez zbiór najbardziej niekorzystnych (w dopuszczalnych granicach) wartości parametrów układu pomiarowego i źródła sygnałów testujących. Wartości te mogą być minimalne lub maksymalne, zależnie od tego, które z nich odpowiadają najgorszym w danym przypadku warunkom pracy badanego układu scalonego. Wartości typowe odnoszą się z reguły do U cc = 5 V i r. = 2s c. 0 Margines zakłóceń W układach TTL z serii standardowej przyjmuje się, że napięcie wyjściowe w najgorszym przypadku nie może przekroczyć przy poziomie L wartości UoL mu= 0.4 V i nie może być mniejsze przy poziomie H od wartości U 011 m;n = 2.4 V (rys. 7.12). Podobnie jako najgorsze napięcia wejściowe przyjmuje się odpowiednio Unm••= 0.8 V i Urn m;n = 2 V. Wynikają stąd gwarantowane wartości marginesów zakłóceń (p.5.3.3): 288 1.2. UKLAOY TTL MLmln = UILmax- UOLnuu= 0.8-0.4 = 0.4 V Należy zaznaczyć, że zgodnie z normą JEC 748- 2 (1985) Digital integratetl circuits do oznaczania gwarantowanych wartości napięć i prądów zamiast indeksów max i min stosuje się odpowiednio litery A i B. W typowych warunkach marginesy te są większe i przyjmuje się, że są one równe I V. Inne rodzaje bramek 7 .2.2 Inwertery. bufory i bramki mocy inwertera y = x, jeśli wszystkie jej wejścia są połączone razem lub jeśli do sterowania jest wykorzystane tylko jedno wejście, a pozostałe wejścia są przyłączone do źródła napięcia o poziomie H. Ponieważ oznacza to marnotrawstwo niepotrzebnych wejść, zostały skonstruowane specjalne układy scalone, zawierające inwertery o schemacie podobnym do pokazanego na rys. 7.3 z tym wyjątkiem, że mają one tylko jedno wejście. W typowej obudowie 14-końcówkowej znajduje się sześć takich inwerterów (7404). Dla zapewnienia Nma,> 10, czyli prądu obciążenia większego od IoLm•" dwa łub więcej inwerterów (bądż bramek) może być połączonych równoległe, tzn. można zewrzeć odpowiednie wejścia tak łączonych układów oraz zewrzeć ich wyjścia. Do zastosowań nie wymagających inwersji zostały opracowane układy zwane buforami. Układy takie (np.7407) realizują prostą funkcję y = x, reprezentują od strony wejścia N = I i zapewniają na wyjściu N max= IO. Bramki logiczne i bufory, które są przystosowane konstrukcyjnie do sterowania obciążeń większych niż standardowe, tj. N mu > 1O, określa się jako bramki i bufory mocy . Typowym przykładem jest układ 7440 zawierający dwie czterowejściowe bramk i NAND. Bramki te mają obciążalność N max= 30, tj. I OL m.x = 48 mA i I Oli max= - 1.2 mA. Schemat takiej bramki mocy jest pokazany na rysunku 7. t 4a. Bramki te są także użyteczne do sterowania obciążenia o dużej składowej pojemnościowej, umożliwiając osiągnięcie mniejszych opóźnień propagacji niż przy stosowaniu bramek standardowych. Umieszczony wewnątrz symbolu z rys. 7.14b mały trójkącik oznacza funkcję wzmocnienia. W układach cyfrowych TTL odpowiada to zwiększeniu obciążalności N max powyżej typowej wartości równej 1O. Bramka NAN D 289 może spełniać funkcję 1. BUDOWA I CHARAICTERYSTYJCI CYFROWYCH UKt.A00W SCALONYCH o . - --.----,r-oUcc 100Jl •• ·- - "<0 - - - ' b Rys. 7.U Bramka mocy 7440 •) xhcm.at, b) t)'mbol t11lf1CU1y Bramki NAND z układem Schmitta (S/ NAND) W wielu zastosowaniach trzeba przekształcić stosunkowo wolnozmienne sygnały, dostarczane przez różnego rodzaju przetworniki i układy pomiarowe, w impulsy o odpowiednio stromych zboczach do sterowania układów scalonych TTL. Przy przesyłaniu informacji cyfrowych między różnymi częściami systemów cyfrowych z reguły jest pożądane zapewnienie możliwie największej odporności na zakłócenia Warunki te w znacznej mierze są spełnione po zastosowaniu układu progowego z histerezą, znanego w układach elektronicznych pod nazwą układu Schmitta. W sta ndardowej serii układów TTL są produkowane m.in. układy 74 ł 3 (zawierające dwie czterowejściowe bramki S/NAND) i 74132 (zawierające cztery takie bramki). Schemat bramki 7413 jest pokazany na rys. 7.15. o Ut< R, R, 4~0 .6 R9 kQ ., ., ,., "' 05 300 06 y R, 460.Q Ra 01 02 03 0 4 Rys. 7.15 Bramka NAND aJ $Checlut. b) ł)lftbol 290 srafJCmy R• 1.Skr.ł J.. i ukladem Schmina (1/2 741 3) b ~ 7.2. UKŁADY TIL Tranzystor wejściowy Tl działa jako zespół czterodiodowy, gdyż jego złącze baza- kolektor jest zwarte. Tranzystory Tl i T3 tworzą właściwy układ Schmitta, tranzystor T4 stanowi stopień pośredniczący, a tranzystory T5, T6 i T7 tworzą układ wyjściowy typowego układu TTL. Głównymi parametrami wejściowymi układu są napięcia progowe U; i U:; oraz histereza u.= u; - u:; (rys. 7.16). 4 V 4:c' :5V I.Io T0 =•25oC ..:J= .... 3 2 1 Ut o 0.5 tS 1.0 2.0 lĄ, u; u~ V 2. 5 Rys. 7.16 Typowa charakterystyka przejściowa bramki S/ NAND o schemacie z rys. 7. ISa ( U1 oznacza napięcie na zwartych razem "'ejściach X1, X2, X3, .t4) Bramki S/NAND mają bardzo liczne zastosowania. Najpowszechniejsze jest formowanie impulsów, zwłaszcza przy silnych zakłóceniach (rys. 7.17). W przypadku, gdy amplituda zakłóceń przekracza ok. 1.2 V (U oH mln - Ui...,= 2.4-1.l = 1.3 V lub Utmin - UoLmu= 1.5 - 0.4 = l.J V), należy na wejściu bramki zastosować dodatkowo filtr dolnoprzepustowy RC lub bardziej u, I I I I.Io IL.___.J Rys. 7.17 Zastosowanie bramki SfNAND do formowania impulsów v.·ejściowycb w obecności silnych zakłóceń (Ut odnosi si~ do zwart)'ch W.tt)'lllkicłi we,Pć bramki} skuteczny filtr LC. Zastosowanie filtru RC (rys. 7.18) jest zasadniczo ograniczone do tych przypadków, gdy źródło impulsów wejściowych ma pomijalnie małą rezystancję wejściową oraz Uoi ~O V. Wówczas wartość rezystora Rp można obliczyć jako 291 1. BUDOWA I CHARAXTERYSTYKI CYFROWYCH UKtAOOW SCALONYCH Rys. 7./8 Zastosowanie dodatkowego filtru przeciwzakłócen iowego na wejściu bramki S/NAND Użycie rezystora RF o większej wartości może grozić tym, że w najgorszym przypadku sygnał na wejściu bramki nie będzie mógł zmniejszyć się poniżej poziomu u:;. (gdyż Urmt• = 0.6 V), co wykl ucza właściwą pracę ukladu. Wartość CF określa się ze związku Cp = 1/(2n Rpf~) J. gdzie /,jest częstotliwością graniczną ( - 3 dB) filtru. Przy f > charakterystyka częstotliwościowa filtru opada 6 dB na oktawę. Diody wejściowe dodatkowo zabezpieczają wejście bramki przed nadmiernymi przepięciami. Innym typowym zastosowaniem bramki S/NAND jest przemiana napięcia sinusoidalnego na prostokątne (ry. 7.19). Dzielnik rezystorowy R 1 , R2 wytwarza (wraz z rezystorem wewnętrznym R , z rys. 7.15a) napięcie na wejściu bramki równe (Ut+ Uj.)/2. Wartości typowe to R, = 1.8 kfl i R 2 = 470 kfl, względnie przy R, =oo , R 2 = 1.8 kfl. Pojemność sprzęgająca powinna spelniać warunek 2nfCR 2 » I, gdzie f jest cz.ęstotliwością sygnału wejściowego. Rys. 7.19 Zastosowanie bramki SJNAND do pr=iany napięcia sinusoidualncao na prostokątn e Bramka S/ NAND może być również wykorzystana do budowy prostego multiwibratora astabilnego (rys. 7.20a). Przy zwartych czterech wejściach i wartościach początkowych Uc = U:;. i U 0 = U 08 napięcie Uc wykładniczo wzrasta i po osiągnięciu Uc = Uj: następuje przełączenie bramki na U 0 = UoL• po czym napięcie Uc wykładniczo opada. Przy osiągnięciu Uc = u:;. następuje ponowne przełączenie bramki i proces rozpoczyna się od początku, wytwarzając ciąg impulsów na wyjściu. Dolączenie dodatkowej diody D i rezystora R' umożliwia symetryzację przebiegu wyjściowego. Taki generator impulsów może być latwo kluczowany. W tym celu wykorzystuje się jedno wejście bramki do sterowania impulsem kluczującym. Kluczowanie jest synchroniczne na poC7,ątku paczki wyjściowych impulsów ujemnych, lecz nie jest synchroniczne na jej końcu. Ulepszony uklad generatora 292 7.2. UKŁADY TIL O R' r --c:::}--f;;>f-, Klue20v.un;e ~: ILO!l R : xo-- Y--Lru-uitI ~ (1nF) x- - r - - - l - I I ł 1.8MHz) f74132 b R 390Jl. Rys. 720 Mulltiwibrator astabilny a) tłuczo"''anie nie. w pełni z bramką syoch.roniczne.. b) S/ NAND kłocz.owan.ie. w pełni synchroniczne z rys, 7.20b jest kluczowany synchronicznie na początku impulsów (w tym przykładzie dodatnich), Układy z wyjściami do połączeń końcu paczki szynowych 7 .2 .3 W technice cyfrowej szczególną rolę odgrywają połączenia szynowe. Nazwą szyny określa się wspólny przewód, do którego jest przyłączonych N 0 wyjść układów cyfrowych i N wejść układów cyfrowych. Celem takiego „zwarciowego" połąc-.renia wyjść jest najczęściej selektywne przesyłanie danych z jednego wyjścia (z grupy N 0 wyjść) do odbiornika (lub odbiorników) przyłączonego swymi wejściami do szyny. Wyjścia przyłączane do szyny nie mogą mieć struktury opisanej poprzednio (rys. 7.3a), gdyż powodowałoby to przepływ dużych prądów skrośnych między odmiennie sterowanymi wyjściami i ustalenie na szynie napięć o nieokreślonych poziomach. Do tego celu stosuje się wyjścia z „otwartym" kolektorem (w technice MOS z „otwartym" drenem) lub wyjścia trójstanowe. Wyjścia z otwartym kolektorem zostaną opisane na przykładzie budowy bramki NAND 7401, pokazanej na rys. 7,21. Na schemacie nie ma, w porównaniu ze schematem podstawowej bramki NAND z rys. 7.3a, tranzystora TJ, diody DI i rezystora R 3. Zatem przy poziomie H na wyjściu rezystancja wyjściowa jest określona przez wartość zewnętrznego rezystora R1, , włączanego między wyjście bramki i źródło napięcia zasilającego Ucc· Rezystor ten jest niezbędny, aby zapewnić na wyjściu bramki poziom H, gdy tranzystor T4 jest odcięty. Symbol podkreślonego kwadracika umieszczony przy wyjściu (rys. 7.21b) oznacz.a otwarty kolektor tranzystora npn (lub otwarty dren tranzystora MOS z kanałem n). 293 1. BUDOWA I CHAAAICTEAYSTYKI CYFAOWVCH UKLAOOW SCALONYCH o R, <kl! X X Rys. 7.ll Bramie.a NAND z ocwanym kolekton:m (1/4 7401) b a) 1ebcmat. b) l)'mbot graficzoy Połączenie dwóch łub więcej wyjść z otwartym kolektorem realizację funkcji zwarciowej DANO (Distributed AND, ZWARTE I, oznacza skr. ZJ). zdefiniowanej graficznie na rys. 7.22. Przykładowy układ pokazany na rys. 7.23a realizuje funkcję Negative-OR-AND (NUB I), gdzie funkcja AND jest realizowana jako DAN O. Zgodnie z prawem De Morgana funkcję układu można również wyrazić jako AND-OR- NOT (rys. 7.23b), gdzie funkcja OR jest w istocie funkcją zwarciową DOR (Distributed OR, ZWARTE LUB, skr. ZUB). Zasadniczą zaletą funkcji zwarciowych jest łatwość ich realizacji, zwłaszcza dla wielu argumentów. o TTL r~ L_ ,. ' o ' olbo r- r- b ot bo R)'s. 7.11 Symbole graficzne funkcji DANO R)'S. 7.21 Realizacja funkcji logicznych pn:C'Z zwieranie \\'yjść z otwartym kolektorem •) ukbd l f\lnltcjll DANO, b) uk._d a f'Unkcją DOR tÓWl'lowtiny Rezystancja RL, przyłączana między zwierane WYJSC•a z otwartym kolektorem i źródło napięcia Ucc• jest wybierana w wyniku kompromisu_ Wartość RL .,,„ jest ograniczona przez napięcie U08 mln = 2.4 V (w najgor- 294 7.2. UKŁADY n L szym przypadku) oraz przez maksymalnie dopuszczalny czas propagacji przy obciążeniu pojemnościowym i dopuszczalną odporność na zakłócenia, natomiast wartość RL min jest ograniczona przez napięcie UoLmax= 0.4 V (w najgorszym przypadku) oraz dopuszczalną moc strat. Poziom H (U OH min = 2.4 V) W ogólnym przypadku może być razem połączonych N wejść bramek oraz N 0 wyjść bramek. Prąd płynący przez rezystor RL może być określony jako Wartość rezystora RL można obliczyć jako RLmax = (U ce - Uou m;J / ILm"" Przyjmując Ucc = 5 V, IIHmax= 40 µA przy Ummin = 2.4 V oraz l oumax= = - 250 µA (dla bramki 7401), otrzymujemy np. przy N= 3 i N 0 = 4 wartość RLmax = 2321 n. Poziom L (Uoimax= 0.4 V) Przyjmując podobnie jak poprzednio połączone razem N wejść oddzielnych bramek i N 0 wyjść bramek można stwierdzić, że najgorszy przypadek istnieje wówczas, gdy tylko jedna z N 0 bramek przyłączonych wyjściem do RL jest w stanie włączenia, a pozostałe (N0 - l) bramek jest w stanie wyłączenia. Suma prądów 1L +N l IL m„płynie wówczas tylko przez jeden tranzystor T4, stwarzając najtrudniejsze warunki do zapewnienia UoLmax= 0.4 V. Wartość RL może być obliczona ze związku R _ Lm.in - Ucc - UOLm•• foLmax+N/ILmax Przyjmując Ucc = 5 V, loLmax = 16 mA i J/L max = -1.6 mA otrzymujemy przy N = 3 wartość RLmin = 411 n. Przy poziomie H na wyjściu ukJadu DANO jego rezystancja wyjściowa jest równa rezystancji obciążenia RL (czyli jest stosunkowo duża). Dlatego czas propagacji tn 11 , przy dużej liczbie (N0 + N) i związanym z tym dużym obciążeniem pojemnościowym układu, jest znacznie większy niż w standardowych układach TIL z dwutranzystorowym układem wyjściowym. Również odporność na zakłócenia układu DANO jest wtedy (przy U 0 = U 08) odpowiednio gorsza. Lepsze parametry struktury szynowej zapewnia zastosowanie układów scalonych TIL z blokadą wyjść, określanych jako układy trójstanowe. 295 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKlADOW SCALONYCH Budowę układu scalonego z wyjściem trójstanowym przykładowo ilustruje schemat inwertera mocy pokazany na rys. 7.24a. Układ ten jest wyposażony w dodatkowe wejście blokujące e. Przy e = L tranzystory T7 i T8 nie przewodzą i inwerter działa normalnie. Natomiast przy e = H tranzystory te są w stanie nasycenia, co powoduje, że tranzystory 72, T4 i 15 nie przewodzą, niezależnie od stanu na wejściu x. Jeśli bowiem przyjmiemy, że napięcie na kolektorze T8 wynosi 0.2 V, to na bazie T3 jest 0.9 V. Tranzystor T3 przewodzi, czyli na bazie T4 jest 0.2 V, co oznacza odcięcie T4. Tranzystor T5 jest odcięty w rezultacie nieprzewodzenia T2. Wyjście y może być wtedy uważane za odcięte od reszty układu. Wyjście trójstanowe oznacza się symbolem trójkącika 'Il (rys. 7.24b). Wejście zezwolenia (odblokowujące) oznacza się literami EN (Enable). Zazwyczaj wyjście trójstanowe ma większą obciążalność niż standardowe N max= IO, czyli jest to wyjście mocy. Na symbolu graficznym oznacza się to trójkącikiem C>. Na rys. 7.25 przedstawiono symbol graficzny zespołu czterech trójstanowych inwerterów mocy, zawartych w układzie 74F240. Górny element rysunku oznacza wspólny blok komrolny, co oznacza, że wejście EN jest przyłączone równolegle do czterech buforów. o Ucc R1 X b ·~ X R, o y y Rys. 7.25 Symbol graficzny jednego z dwu zespołów inY. erterów 1 Rys. 7.24. Inwerter trójstanowy a) sdieinat, l>} $yml:x>I graliC211y trójstanowych, zawartych w układzie 74F240 Układy trójstanowc mogą być łączone wyjściami pod warunkiem takiego sterowania, że wyjścia nie zablo kowane będą miały takie same poziomy, zgodnie z odpowiednimi poziomami na wejściach i realizowanymi przez te układy funkcjami logicznymi. Różne poziomy na połączonych razem wyjściach nie 296 1.2. UKlAOY TTL o b Ucc Rys. 7.26 Struktury SZ)'TIO\\te a) l. 1.1\:ładami o \\')jścłach z 0 1wartym kolck1orem. b) z ukladami o wyjściach tróp.lanowych zablokowanych są oczywiście n iemożliwe. Nie można jednak łączyć razem takich wyjść, które w stanie nie zablokowanym mają różne poziomy nawet tylko przejściowo. W przypadku połączenia takich wyjść płynąłby między nimi znaczny prąd, ograniczony głównie wartością rezystora R 5 z jednej strony i wartością progu nasycenia tranzystora T5 z drugiej strony. Dlatego też układy z wyjściami trójstanowymi są tak projektowane, aby ich czas zablokowania był krótszy od czasu odblokowania. Struktury szynowe z wyjściami z ot wartym kolektorem i z wyj ściami trójstanowymi przedstawiono na rys. 7.26. Symbolem CL oznaczono skupioną pojemność pasożytniczą, równoważną sumie pojemności pasożytniczych N 0 wyjść, N wejść, połączeń do szyny oraz samej szyny. Stala czasowa <, która ogranicza szybkość przełączeń z poziomu L na H, jest w technice trójstanowej znacznie mniejsza. Dlatego wyjścia trójstanowe stosuje się powszechnie w połączeniach szynowych. Przerzutniki 7.2.4 Przerzutniki TT L są wytwarzane w licznych odmianach. W zależności od sposobu wyzwalania, można je podzielić na następujące głównie grupy (por. rys. 4.37): przerzutniki statyczne SR, np. 74279 (rys. 7.27a), przerzutniki zatrzaskowe, np. 7475 (rys. 7.27 b), 297 7. BUDOWA I CHAAAKTE.A't'STYICI CYFROWYCH U KŁAOOW SCALONYCH przerzutniki JK wyzwalane impulsem, op. 74107 (rys. 7.27c), przerzutniki JK z blokowanymi wejściami informacyjnymi, np. 741 11 (rys. 7.27d), przerzutniki JK wyzwalane zboczem, np. 74LS113 (rys. 7.27e), przerzutniki D wyzwalane zboczem, np. 7474 (rys. 7.27f). Budowa logiczna przerzutników była omówiona w p. 4.2.2. Symbole graficzne przerzutników według normy IEC różnią się pod pewnymi względami od symboli tradycyjnie stosowanych. Poza wprowadzeniem notacji zależnościowej od wejścia C przez odpowiednie numery i wykluczeniem litery „stanu" Q z symbolu, istotna różn ica dotyczy charakteru wejścia C w przerzutnikach wyzwalanych impulsem (MS). W przerzutnikach tych wprowadzono na wyjściach znak „ I", oznac-.tający wstrzymanie zmiany poziomu na tak oznaczonym wyjściu, dopóki sygnał wejściowy inicjujący tę zmianę nic powróci do poziomu pierwotnego (dopóki sygnał C nie powróci do wewnętrznego stanu O, bądź wewnętrznego poziomu L). Następuje to przy tylnym zboczu tego sygnału. Zgodnie z definicją z normy IEC, obecność znaku „ I" oznacza również, że w czasie trwania sygnału inicjującego zmianę stanu przerzutnika (tzn. gdy ma on wewnętrzny stan l, bądź wewnętrzny poziom H), żaden z sygnałów wejściowych związanych funkcjonal nie z sygnałem inicjującym nie może ulegać o b ł7'75 ' 7 c d l2 7•107 74111 s IJ -, l 4 IJ Cl 2 1K , l 7 6 R e Rys. 7.27 Przerzutniki TIL 747• 5 Cl 2 C1 6 aJSR. b) Ult'UJkOW)' {pit• ). c) JK. ~•)' im.pulic:" d) JK z - donydl. <l JK ..,,,......, ....,._ Q 298 o..,....c..,_ 1.2. UKLAOY Tll zmianie. Na przykład, dla przerzutnika 74107 (rys. 7.27c) oznacza to, że w czasie trwania impulsu sterującego C dane na wejściach informacyjnych J, K muszą pozostać bez zmiany. W poprzednim systemie oznaczeń wejście C było zaopatrzone w kółeczko, oznaczające, że „zmiana stanu przerzutnika następuje przy ujemnym zboczu impulsu »zegarowego". Ponadto, obecność kilku tak samo oznakowanych wejść (np. rys. 7.27a) oznacza, że wejścia te są związane ze sobą funkcją logiczną OR. Przerzutniki JK wyzwalane zboczem są zwykle wyzwalane zboczem ujemnym (opadającym) impulsu sterującego. Przerzutniki D zazwyczaj są wyzwalane zboczem dodatnim (narastającym). Do prawidłowej pracy przerzutnika muszą być spełnione określone warunki. Poza warunkami oczywistymi, takimi jak zapewnienie prawidłowego napięcia zasilającego i właściwe spr.tęgnięcie pojemnościowe końcówek Uce i masy, niezbędne jest spełnienie warunków dynamicznych. Są one określane katalogowo przez podanie: 1) minimalnych wartości: - szerokości impulsu sterującego l..cmin• - szerokości impulsów na wejściach si R: lw$min i lwRmln• - czasu 14Stalenia (setup time) stabilnych danych na wejściach informacyjnych, mierzonego wstecz od tego zbocza impulsu sterującego, które powoduje zmianę stanu przerzutnika - 1„mtn• - czasu podtrzymania (hold time) stabilnych danych na wejściach informacyjnych, mierzonego w prz6d od tego zbocza impulsu sterują­ cego, które powoduje zmianę stanu przerzutnika - c•min• 2) maksymalnej wartości częstotliwości impulsów sterujących fe„„· J K Dane stabilne C- - . . JI R----'---+------..1r--Cl------+-' a------+--. ,_ Rys. 7.28. Parametry dynamicuic związane 1.e zmianą stanu przemnnih JK wyzwalanego impulsem z rys. 7.27c 299 1, BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKlAOOW SCALONYCH „ Istotnym parametrem dynamicznym przerzutnika jest czas propagacji t Wartość t, mierzy się w przód od lego zbocza impulsu (sterującego C, ustawiającego S lub zerującego R), które powoduje zmianę stanu przerzutnika, do wiodących zboc-t:y generowanych w ten sposób impulsów na wyj ściach. Przy zmianie poziomu na wyjściu z L na H, opóźnienie to ok reśla się jako t l'Lll• a przy zmianie poziomu z H na L - jako tn11 (tj. tak samo jak w bramk ach). Wymienione czasy twe> t„s. 1„R, 1„, 10 i I• mierzy się w odniesieniu do napięcia progowego, które umownie przyjmuje się jako równe Ur = 1.5 V. Przedstawiono to na przykładzie pokazanym na rys. 7.28 dla przerzutnika JK z rys. 7.27c (por. rys. 5.6). Układy monostabilne i astabilne 7 .2 .5 W klasie ITL jest wytwarzanych kilka typów scalonych układów monostabilnych, mających bardzo dobre parametry techniczne oraz uniwersalne zastosowania. Jeden z n.ich (74121) jest pokazany na rys. 7.29. Wyzwalanie jest stałoprądowe (progowe). tzn. następuje przy określonym poziomie napięcia na zboczu impulsu wejściowego. Układ ma osobne wejścia do wyzwalania narastającymi lub opadającymi zboczami impulsów, z jednoczesnym zapewnieniem możliwości bramkowania (zakazu) wejścia, aktualnie użytego do wyzwalania. Dwa komplementarne wyjścia układu mają standardową obciąża lność N...,. = 10. A, ~3'---'>ł A2 -'''---"'I 8 s Rys. 7.29 Uklad mo oostabilny 741 21 Wejścia A 1 , A 2 są przeznaczone do wyzwalania układu opadającymi zboczami impulsów (minimalna szybkość l V/J1s) pod warunkiem, że na wejściu B jest poziom H. Wejście B jest połączone z układem Schmitta, umożliwiając stabilne wyzwalanie uniwibratora narastającymi zboczami impulsów o bardzo wolnym narastaniu (do I V/s), pod warunkiem, że przynajmniej na jednym z wej ść A 1, A 2 jest poziom L. Z chwilą wyzwolenia praca układu jest całkowicie niezależna od dalszych zmian poziomów na wejściach i czas trwania impulsu wyjściowego jest określony 300 1.2. UKŁADY nl tylko przez zewnętrzny obwód RC. Impulsy wejściowe mogą mieć dowolną długość w stosunku do impulsów wyjściowych. Omawiany przerzutnik jest przerzutnikiem z niepod1rzymywalr1ym wyzwalaniem (11011-retriggerable). Oznacza to, że ponowne podanie na wejście układu impulsu wyzwalającego jeszcze w czasie trwania impulsu wyjściowego nie powoduje zmiany czasu trwania tego impulsu wyjściowego. Przerzutniki lego rodzaju uzupełnia się na symbolu IEC opisem „1 .Jlv (rys. 7.29). Linie wejściowe przekreślone krzyżykami oznaczają połączenia nie związane z sygnałami cyfrowymi (podobnie oznacza się linie zasilania i masy, o ile są narysowane). Czas trwania impulsów wyjściowych przerzutnika 74 121 jest równy i •. = CR ln2, gdzie C oznacza sumę pojemności wewnętrznej układu (ok. 20 pF) i pojemności zewnętrznej Cr, przyłączonej między końcówkami 10 i Il. Wartość R może być określone przez: rezystor wewnętrzny układu, równy ok. 2 k!l przy zwarciu końcówek 9 i 14 (Ued. tylko przez rezystor zewnętrzny Rr, zapewniający lepszą stabilność termiczną (rezystor ten włącza się między końcówkami 11 i 14, przy czym końcówkę 9 pozostawia się wolną), przez sumę rezystancji wewnętrznej 2 kQ i zewnętrznej (przy włączeniu rezystora zewnętrtnego Rr między końcówkami 9 i 14). Zakres zmiany pojemności C wynosi ok. 20 pF + 1000 µF, a zakres zmiany rezystancji R wynosi 2+40 kQ, umożliwiaj<1cc generację impulsów o szerokości od ok. 30 ns (przy wewnętrznych elementach R i C) do 40 s. Maksymalne wypełnienie okresu powtarzania impulsów wynosi 2/3 przy R = 2 kQ i wzrasta do 0.9 przy R = 40 kQ. Średnie opóźnienie układu wynosi ok. 40 ns, co ogranicza jego zastosowanie przy większych częstot.liwościach. Uniwibrator 74121 charakteryzuje się bardzo dobrą stałością szerokości tw impulsu wyjściowego w zależności od temperatury 7;,. W zakresie O+ 50 °C współczynnik stałości temperaturowej wynosi +0.0056%/K, co umożliwia stosowanie tego elementu w układach formowania impulsów o dużej precyzji. W celu osiągnięcia maksymalnej stałości temperaturowej należy stosować odpowiednio dobrej jakości elementy zewnętrzne Cr i Rr = R. Układy pokazane na rysunku 7.30ab umożliwiają generację impulsu uniwibratora po pewnym opóźnieniu 1, w stosun ku do impulsu wyzwalającego, pod warunkiem, że impuls wyzwalający jest dłuższy od 14- W układzie z rys. 7.30a, w którym jest użyta bramka z otwartym kolektorem (7401), wartość opóźnienia można w przybliżeniu określić jako t 4 = 0.3C 1 R 0 , gdzie R 0 = R, 11 2 k!l. Należy pamiętać, że R,„ 111 "" 360 Q. W układzie z rys. 7.30b przy R2 = 100 Q można otrzymać przybliżoną relację t 4 [µs] "" 1.2 C 2 [nF). Układ z rysunku 7.30b może być wykorzystany, do generacji impulsu zerującego system przy włączeniu napięcia zasilającego. W tym celu wejścia A, i A 2 należy uziemić, a R2 połączyć z Uce (bramka 7400 jest zbyteczna). Wartość 301 7. BUDOWA I CHARAKTERYSTYKI C'YFROWYCH uic:t.A.OOw SCALONYCH 74121 o !Jl ZokozlHlq L- c, R, Ucc R1 >360A I b 74121 IJ"l Rys. 7.JO Pnyklady wyzwalania z opóźnieniem opóźnienia 1, należy uniwibratora 74121 tak dobrać, aby bylo ono znacznie dluższe od czasu w chwili włączenia. Specjalną klasę uniwibratorów sca lonych stanowią układy monostabilne z podtrzymywalnym wyzwalaniem (re1riggerable), jak np. 74122 i 74123. Układy te umożliwiają utrzymanie napięć wyjściowych w stanie quasi-stabilnym przez dowolnie długi czas, jeśli na wejście wyzwalające jest podany ciąg impulsów o okresie T krótszym od nominalnego czasu t.., s tanu quasi -stabilnego, tj . szerokości impulsu wyjściowego uniwibratora. Większość ukła­ dów jest wyposażona również w wejście zerujące, umożliwiające zak ończenie impulsu wyjściowego w dowolnej chwili po wyzwoleniu. Symbole graficzne IEC takich przerzutników opisuje się znakiem „.JL.", jak pokazano na przykładzie z rys. 7.31a. Układ z rysunku 7.31 b przedstawia prostą realizację generatora astabilnego. Wartość pojemności C dobiera się w zależności od żądanej symetrii generowanego przebiegu. W praktyce, jeśli wymagania odnośnie stabilności i dokladności czasu trwania impulsów wyjściowych uniwibra tora nic są zbyt duże (I + 10%), często narastania 302 napięcia zasilającego 7.2. UICł.AOY Til b a ~74123 '-o I' Rys. 7.3 J Uklad monostabilny z podt.rzymywalnym wyzwalaniem 74 123 a) 5ymbol JEC, b) 1..as.tosowan.ie jako gcoeratOf~ •1t11bilnc10 stosuje się układy monostabilne tworzone z bramek NAND lub przerzutników scalonych oraz obwodu RC. W klasie TIL są wytwarzane również scalone układy astabilne. Układ 745124 (rys. 7.32) zawiera dwa generatory o różnorodnych możliwościach. Częstotliwość przebiegu prostokątnego na wyjściu każdego z nich może być określona albo przez kondensator zewnętrzny CA.fJMHz) "' 500/ C, [pF]), albo rezonator kwarcowy w zakresie 50 kHz + 85 MHz, przy czym wypełnienie przebiegu wynosi 50%. Przy stosowaniu kondensatora c. wartość częstotliwości może być zmieniana zależnie od wartości napięć na wejściach RNG i FC (rys. 7.32b). Wejście RNG (Ra11ge) służy do określania zakresu regulacji częstotliwości ((O.O l+! )/, przy U R.NG = 1+ 5 V). Wartość częstotliwości w tak określonym zakresie może być regulowana napięciem regulacyjnym U Fc(Frequency Co11trol). Ponadto układ jest także wyposażony w wejście zezwolenia EN. Wejście to umożliwia synchroniczne kluczowanie generatora (praca start-stopowa) w ten b 1kll 11)k 112 7<512< lkll 1ki WeJŚCit kluczowon10 lkll Rys. 7.31 Uklad astabilny 74Sl24 • ) symbol .,.rany, b) 303 pr.t)tild tl$łOliOWUi.:I 10k ll 1. BUDOWA I CHAAAKTERYS1YKI CYFROWYCH U KlAOOW SCALONYCH sposób, że zarówno pierwszy, jak i ostatni impuls w serii generowane przy stanie wewnętrznym EN = I jest taki sam jak pozostałe. Generator ta ki ma w symbolu IEC opis „!G !" (rys. 7.32a). Podobnie generator zapewniający tylko synchronizację początku serii miałby oznaczenie „!G", a wyłącznie przy synchronizacji końca obowiązuje opis „G !". Znak „f'I" oznacza sygnał a nalogowy. Układ ma osobne końcówki zasilania i masy dla układu oscyla to ra i synchronizatora logicznego, aby zmniejszyć ich wzajemny wpływ. Przy stosowaniu kondensatora exwspółczynnik stałości temperaturowej układ u wynosi ok. 0,005%/K, a współczynnik stałości względem zmian napięcia zasilania Ucc wynosi ok. 0,4%/V. W praktyce układ ten stosuje się zazwyczaj z kondensatorem c„ wykorzystując możliwości regulacji częstotliwości. Przy stosowaniu rezonatorów kwarcowych stosuje się prostsze układy z bra mkami NAND. Ulepszone serie układ ów 7.2.6 TIL O prócz serii standardowej 54/74 istnieją serie H, L, S, LS, AS, ALS i F. Dwie pierwsze są całkowicie przestarzałe i dlatego nie są stosowane we współczesnym sprzęcie. Zasadnicze właściwości bramek podstawowych z pozostałych serii są pokazane na rys. 7.33 i 7.34, na których dla porównania umieszczono również da ne „ko nkurencyj nych" układów CMOS, HC i AC (patrz także rys. 5.3). Jak widać na rys. 7.34, serie AS, ALS i F znajd ują się najbliżej ideału (środka współrzędnych). ~ c 2 „uo „o• •, "' •O Ga As ti,.. -• AS s o '& .!, o „o N a: F LS ALS CMOS 0.1 1100001 11200 l ECL 12001 112SI 11501 TTL ł3Jl ISO ! AC ISO! llSOI I' I 10 100 1000 Czfs łotliwośG procy ł MH z I 10000 Rys. 7.33. Zakres CZ\1Sto11iwaści pracy ukladów TTL z różnych serii 304 7.2. UKLAOY TIL I TTLslondord • (196q 10 LS • 119751 „ •'HC .= 8 Hl980 =fr o o "' a. o li 6 „ ALS ·;: •119&1 1 ·"'·gc 4 \c( 19ss1 •N F o s • 11980) • 0975) I 2 .AS 11981) o o I 2 4 ' 6 • 8 I 10 12 14 16 Moc stroi lmW) Rys. 1.34. Op6tnienie propagacji i moc strat Serie Si LS • 18 układów 20 1TL z ' 22 różnych serii 7.2.6 .1 Nowe i ulepszone jakościowo odmiany układów scalonych ITL zostały opracowane w wyniku zastosowania diod Schot1ky'ego jako sprzężeń zwrotnych mię­ dzy kolektorem a bazą w tranzystorach bipolarnych npn. Struktura takiego tranzystora Schottky"ego (rys. 6.19) uniemożliwia osiągnięcie stanu głębokiego nasycenia. Można zatem uzyskać znacznie szybsze przełączenie tranzystora ze stanu przewodzenia do stanu odcięcia w wyniku braku efektu przeciągania (p. 6.3.2). Schemat podstawowej bramki 74SOO jest przedstawiony na rys. 7.35a. Wszystkie tranzystory (z wyjątkiem TI) są tranzystorami Schottky'ego. Rozmiary tranzystorów są w przybliżeniu dwukrotnie mniejsze niż w układach ITL z serii standardowej. Wpływa to na zmniejszenie szkodliwych efektów pasożytniczych i umożliwia uzyskanie bardzo krótkiego czasu propagacji (3 ns). Tranzystor T5 jest połączony z tranzystorem T3 w układzie Darlingtona (podobnie jak w bramce mocy z rys. 7. I4a). Zapewnia to większą szybkość działania i mniejszą impedancję wyjściową. Tranzystor 'ro wraz z rezystorami R, i R6 tworzą układ służący do korekcji charakterystyki przejściowej (rys. 7.35b), aby stała się o na zbliżona do idealnej, czyli bardziej prostokątna niż charakterystyka bramki z serii 305 7, BUDOWA I CHARAKTEflYSTYKI CYFROWYCH UKŁADÓW SCALONYCH o b Ucc R, 2.skn 5 R2 R, go on TS son I 74soo u. V Ucc = sv N = IO V T0 = 25°C T3 - T1 3 R, y 3.Sk.!l T4 • ' o--.----' 01 R, R• soon 250.!l 2 1 u, 02 o 2 3 V 4 Rys. 7.35. Bramka NAND 74SOO 41) Khem;it, 1:>) typ<>wa cliitraklety$1)'ka pncjSciowa standardowej (rys. 7.10). Ten układ korektora charakterystyki (squaring network) jest typowy dla wszystkich bramek z diodami Schottky'ego. Przy zmianie napięcia U 8 na bazie tranzystora T2 z poziomu L na H tranzystor T2 nie przewodzi aż do osiągnięcia progu U8 = 2 UBE· Dopiero przy U8 > 2 UBE zaczyna przewodzić T2 i następuje zmniejszanie się napięcia na jego kolektorze. Napięcie to przenosi się przez T5 i T3 na wyjście, a jednocześnie zaczyna przewodzić T4. Korektor działa również korzystnie na przełączanie tranzystora T4 i ogranicza wartość przejściowych impulsów prądu zasilania, pobieranych przez bramkę podczas przełączania. W układach z serii S gwarantowana wartość U oLmax jest zwiększona o O.I V w stosunku do układów z pozostałych serii i wynosi 0.5 V. Odpowiada to zmniejszeniu marginesu zakłóceń M Lm;n' który w tej serii wynosi 0.3 V. Diody ograniczające, wprowadzone na wejścia układów z serii S (D1 i D2 na rys. 7.35a), są również diodami Schottky'ego. Mniejsze napięcie przewodzenia tych diod zapewnia lepsze zabezpieczenie przed ujemnymi przepięciami na wejściach niż przy zastosowaniu diod złączonych, w konwencjonalnych ukła­ dach TTL. Ponieważ charakterystyka wejściowa układu z serii S stanowi przy U1 < Olepsze przybliżenie "idealnego" zakończenia typowej linii transmisyjnej, przy typowych impedancjach charakterystycznych linii (ok. 100 O), zwykle nie wymaga się wprowadzania dodatkowych rezystorów dopasowujących. Układam.i umożliwiającymi w znacznej mierze osiągnięcie zarówno malej mocy strat, jak i dużej szybkości działania są układy z serii LS (Low-power Schottky). W praktyce zastąpiły one niemal całkowicie układy z serii standardowej. Moc strat pojedynczej bramki LS wynosi ok. 2 mW, czyli 5-krotnie mniej 306 7.2. UKt.A.OY TTL o @] Rz 7.6k R, r 2. --~110.12 R, b . 18kló'I ~1 25°C 03 ~· 4 x, V 04 ., Dl '----+-----ł' T4 -ss•c ' R, SkQ ' \\ Lb 3 o--l--+--1<4--<i>----ł T1 54LSOO Ucc•SV • 2S•C 2 02 o u, 0.5 1.0 15 2.0 V 2.5 Rys. 7.36. Bramka NAND 74LSOO •) 5<:bcm.at. b) typowa cb:ataku:t)'ilykil prujściowil niż w serii standardowej, a maksymalna częstotliwość zega rowa przerzutników jest równa 33 MHz. Schemat podstawowej bramki 74LSOO firmy Motorola jest pokazany na rys. 7.36a. Wejściowy układ AND jest zrealizowany jako diodowy, podobnie jak w bramkach DTL (p. 7.1). Przy zastosowaniu diod Schottky'ego jest to układ szybszy niż klasyczna struktura wieloemiterowa, stosowana w serii standardowej. Ponadto zaletą układu diodowego jest większe dopuszczalne napięcie wejściowe (równe co najmniej 7 V), gdyż typowe napięcie prubicia diod wejściowych wynosi 15 V. Wadą tej konfiguracj i jest natomiast obniżona wartość napięcia progowego, które wynosi Ur = 2U 86 - U os = 1.4-0.3 = = I.I V (Uos jest progowym napięciem przewodzenia diody Schottky'ego). Pozostała część układu bramki jest podobna do układu 74SOO z rys. 7.35a, ale wartości rezystorów są odpowiednio zwiększone i rezystor R 6 jest połączony nie z masą, lecz z wyjściem . W wyniku tej modyfikacji, przy bardzo małym obciążeniu otrzymuje się zwiększoną wartość napięcia UoH = 4.4 V przy T. = 25°C (rys. 7.36b). N apięcie to jest wtedy w przybliżeniu równe napięciu Ucc pomniejszonemu o wartość napięcia U 80 tranzystora T2. W typowych warunkach prąd wejściowy I 111 jest równy ok. I µA, co przy N = I O daje obciążenie prądowe wyjścia bramki równe zaledwie I O µA . Przy większym prądzie obciążenia napięcie wyjściowe jednak szybko spada i przebieg charakterystyki wyjściowej, pokazanej na rys. 7.37a, staje się zbliżony do analogicznej charakterystyki układów z serii standardowej (rys. 7.9). Maksymalna wartość prądu wejściowego na poziomie H wynosi I mmax = 20 µA , a na poziomie L I ILmox = -0.4 mA. Wynika stąd, że wyjście układu z serii stan- 307 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKLAOOW SCALONYCH o b 4.5 V u,. I Ucc' =- 5.0 y o .1s~-~--~-~-­ v Uot L.O ~ 3.0 UoL11111lJ-( •0.Sl----1'==~ 1~25<11C "~·c 55°C ~ '' 1D ~ c_ 1 o 0 10 20 30 IOM mA 40 Rys. 7.37. Charakterystyki wyjiciowc bramki 74LSOO a) n.a poziomie H. b) Ba poziomie l. dardowej zapewnia obciążalność N max = 40 w odniesieniu do wejść układów z serii LS. Układy w obrębie serii LS 74 zapewniają N max = 20. Dioda D6 służy do przyspieszenia rozładowania pojemności obciążenia przy zmianie poziomu na wyjściu z H na L. Dioda D5 służy do przyspieszenia odcięcia tranzystora T2 podczas przełączania. Podobnie jak układy z serii S, układy z serii LS mają nieco pogorszony margines zakłóceń ML = 0.3 V, gdyż gwarantowane napięcie U 01,m„= = 0.5 V (przy l 0 L = 8 mA) jest o 0.1 V wyższe niż w serii standardowej. W celu podwyższenia napięcia progowego Ur na wejściach niektórych układów MSl z diodami Scbottky'ego jest stosowana sieć diodowa, pokazana na rys. 7.38a. Ponieważ przy U1 = Ur diody DJ i D4 jednocześnie przewodzą i ich napięcia przewodzenia wzajemnie się kompensują, napięcie progowe jest równe Ur""' 2 UBE::::< 1.4 V. Dioda D3 służy do przyspieszenia zmiany napięcia na bazie tranzystora Tl z poziomu H na L,jeżeli taka sama zmiana na wejściu jest szybsza (jeśli tak nie jest, to dioda D2 pozostaje odcięta). Aby ograniczyć wartość prądu l m zamiast diody D4 jest stosowany również tranzystor p11p (rys. 7.38b), który działa jako wtórnik emiterowy przy U1 ~Ur""'2U 88 ::::< 1.4 V. Aby skompensować napięcie U8E tranzystora pnp, dioda DJ jest wykonywana jako zwykła dioda złączowa. Tranzystor ten jest zazwyczaj wykonywany jako podłożowy, tj. jego kolektor jest utworzony w warstwie podłożowej p, baza w warstwie epitaksjalnej n i emiter w „normalnej" warstwie bazowej p. Wadą tej struktury w klasycznej technologii z izolacją złączową jest niewielka szybkość działania i mały współczynnik wzmocnienia prądowego. 308 7.2. UKł.AOY TIL Na wejściach są stosowane także konfiguracje z tranzystorami npn. Na rys. 7.38c przedstawiono budowę takiego układu wejściowego, w którym wartość prądu IE""' (Ucs - U sE)/R 2 i wartość rezystancji R3 są tak dobrane, aby przy U1 = U n napięcie w punkcie B było mniejsze od 2 U 8 r i powodowało odcięcie tranzystorów 13 i T4. Dioda D2, która tworzy wraz z TJ tranzystor Schottky'ego, przewodzi tylko przy U 1 > Uce· Zaletami rozwiązania z tranzystorami 11p11 na wejściach jest mały prąd wejściowy (rzędu l µA) i prostota wykonania tranzystora npn. Niektóre układy scalone TTL MSI i LSI są wykonywane „wewnątrz" przy użyciu innej szybkiej techniki, np. ECL, i układami TTL są tylko końcówkowo. Na wejściach i wyjściach wtedy stosuje się odpowiednie konwertery. Przykłady takich konwerterów wejściowych są pokazane na rys. 7.38d,e. a Uct R, D4 c Uec 03 R, DJ D1 Dl R, R, D2 u_, T2 R2 b Ucc R, R2 03 d L\;( DJ 02 R, R1 T2 T1 u•' 2u,,,. Uos 01 e Ucc R, R, R3 FI, Rys. 7.38 Konfigur.icjc wejściowe układów TfL z diodami Schottky'ego a) siei: d iod~wa. b) zasrooowanic tranzystora fn'IP, c) zastosowanie. tranzystora npn, d, e) konwettery lTL/ECL 309 DJ 04 T3 Rs DS D& 7, BUDOWA I C HARAK.TERYSTYK.1 CYFROWYCH UKt.A00W SCAi.ONYCH Pierwszy z nich jest modyfikacją układu z rys., 7.38c, drugi po typowym wejściu diodowym zawiera parę tranzystorów o sprzężeniu emiterowym, która wytwarza komplementarne sygnały wyjściowe. U kład ten stosuje się również w układach TIL bez diod Schottky'ego. Serie ALS, F i AS 7.2.6.2 Układy TTL z serii ALS, F i AS są wynikiem dalszych ulepszeń technołogiC-L· nych, mających na celu zwiększenie szybkości działania przy jak najmniejszej mocy strat (tabl. 7.1, rys. 5.3). Ulepszenia technologiczne polegają głównie na zmniejszeniu geometrii tranzystorów, zastosowaniu bocznej izolacji tlenkowej zamiast złączowej oraz użyciu implantacji jonów do precyzyjnego domiesz· ko wania. Bramka N AND z serii ALS (Advanced Low-power Schottky) pokazana na rys. 7.39a, wyróżnia się naj lepszym współczynnikiem dobroci (D = 5) spośród wszystkich serii układów TTL. Porównując ją z bramką z serii LS (rys. 7.36a) można zauważyć następuj ące modyfikacje: zastosowanie na wejściu tranzystora pnp (w podobny sposób jak na rys. 7.38b, lecz z użyciem szybkiego wtórnika emiterowego T3 zamiast diody DJ), ok. dwukrotnie większe wartości rezystorów R 1 i R 2 , dodatkowa dioda ograniczająca D7 na wyjściu, wprowadzona w celu ułatwienia współpracy z nie dopasowanymi liniami połączeniowymi. W wyniku tych zmian układowych oraz nowej technologii osiągnięta została dwukrotnie mniejsza moc strat (1 mW) i dwukrotnie krótszy czas propagacji (5 ns). Bramka NAND z serii F (FAST - szybka), pokazana na rys. 7.39b, zawiera na wejściach diody złączowe (Dl, D2) zamiast tranzystorów pnp (użytych w bramce ALS). Nie zastosowano w tej bramce diod Schottky'ego aby zw.iększyć napięcie progowe Ur· Wynosi ono w przybliżeniu 2 U 8 8 , podobnie jak w bramce ALS. Diody Dl , D2 są utworzone przez złącza baza- kolektor. Dlatego napięcie przebicia jest większe (min. 7 V) niż w klasycznej strukturze tranzystora wieloemiterowego (gdzie napięcie przebicia złączy emiter- baza może być bliskie 5 V). Układ diodowcrtranzystorowy D9+ D1 J, 17 został wprowadzony w bram· ce F w celu przyspieszenia przełączenia na wyjściu z poziomu L na H. Taka zmiana napięcia na emiterze tranzystora T5 przenosi się przez diodę pojemnościową D9 na bazę tranzystora T 7, powodując jego chwilowe prze· wodzenie. Umożliwia to radykalne zmniejszenie efektu Millera związanego z tranzystorem T3, czyli szybkie rozładowanie pojemności pasożytniczej kolektor-baza tego tranzystora. Wynikiem tego jest skrócenie czasu narastania sygnału wyjściowego. Opisany układ jest nazywany eliminatorem efektu Millera (Mil/er killer). 310 7.2. UKŁADY n L a u,, IALSI R, R, 40kll R• 15kll 35 ll TS x, 03 01 T7 os R, 5 kll y 04 ., 06 07 T4 T2 T8 R, R, 2.Skll 6kn 02 Ro 20kll .L b Uoc ID 10kSl 10kSl 45ll 4.1 kll Dl x, TS T1 05 ., [)6 03 07 02 08 04 T6 S k!l y 09 T2 T3 1skn R ys. 7.39 Bramki NAND z. ulepszonych serii TTL a) seria ALS. b) seria F 2k!l 3kll 0 11 D10 D12 .L Typowe charakterystyki bramek z serii ALS i F są pokazane na rys. 7.40, na którym dla porównania podano również charakterystyki bramek LS. Postęp technologiczny, związany ze zmniejszaniem geometrii tranzystorów w kolejnych seriach S, LS, ALS i F, przedstawiono na rys. 7.41. 311 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKł.ADOW SCAt.ONYCH a b 5 V o lice : SV Uo Ta; 25°C µA 4 r, I OL~ ·100 3 L AL ·200 F 2 ·300 ...- v L...-- i-- v ~ !...--L- i.- - r!...-- Ucc= SV 1 o T0 =25°C - 400 Ur 0.5 tO 1.5 2.0 U1 V 2.5 c O 0.2 0.4 0.6 0.8 1.0 1.2 1.4 V 1.8 2.0 d 1.01~-----~--~ V Uo, ALSOO 3.0 Hl--~+->.---.------1 LSOO V Io" 0'---'- ' - - - -.'10""0--'-m-A_,450 Ioo. OO 20 40 mA 60 Rys. 7.40. Charakterystyki końcówkowe układów z ulepszonych serii TTL a) charat 1erys1yki pr-.i:ejśclo"'<=· b) charakcerystyki -.---ejkiowt, c) charat 1erys1yki 111·yj5c:iowe na poziomie H. d) charaJcttr)'llyki wr.jkio"'"'C na poziomie L Najszybszymi i najbardziej złożonymi układami w klasie TTL są układy z serii AS (Advanced Schottky). Ich zasadnicze parametry (t• = 1.7 ns, P = 8 mW) oraz typowy margines zakłóceń (I V) są lepsze niż w konkurencyjnych układach ECL IOK. Podstawowa bramka NAN D z serii AS (rys. 7.42) jest jednak bardziej skomplikowana niż klasyczna bramka z serii standardowej (rys. 7.3a), zawiera bowiem po 11 tranzystorów, diod i rezystorów. Układ wejściowy bramki AS jest podobny do zastosowanego w bramce ALS (rys. 7.39a), lecz kolektor tranzystora T3 jest połączony przez diodę D5 z emiterem tranzystora T5, zamiast przez rezystor R 3 do Uce· Wejściowe diody ograniczające Dl, D2 są wykonane jako tranzystory, aby zabezpieczyć wejścia także przed dodatnimi przepięciami (np. elektrostatycznymi). Wówczas bowiem złącza baza- kolektor tych tranzystorów pracują w trybie przebicia, skutecznie odprowadzając ładunek z wejść do masy. Zamiast diody D6 z rys. 7.39a 312 7.2. UKLA.OY n L Kolektor C c c Emiter E E E B B DS (is DS Dioda Schottkyf!9o :r:• I zolacja ztqczo~ c -:- ~ --r--· n--.-1--n p• s Csoptonor n Jsoplonor ALS LS F R ys. 7.41. Zmniejszenie geometrii tra nzystorów Schottky'ego w kolejnych seriach: S, LS, ALS i F Ucc R, R, Rz tOkn 2kn Rn SOkn 28.Q TS R T3 TB tkn DS 06 08 no Rs Rio 09 30kSI 2kll y D10 T4 0 11 Tli R, 04 1 kll x,o-- -__.,._ _, R, 07 2kR T2 T9 T7 02 R9 1oon Re 25kll .i R ys. 7.42. Schemat bramki NAND z serii AS zastosowano tranzystor 115, który może być łatwo kluczowany w przypadku wyjść trójstanowych. Układ T8, DB, D9, R6, R7 stanowi dodatkowy stabilizator najniższego napięcia wyjściowego, który przy ujemnym napięciu na wyjściu 313 7, BUDOWA I CHARAKTER YSTYKI CYFROWYCH U Kt.AOOW SCALONYCH dostarcza dodatkowy prąd z emitera tranzystora no, odciążając diodę DI I. Eliminator efektu Millera (T9, D7, R 8 , R 9 ) jest podobny do układu w bramce FAST, a korektor charakterystyki przejściowej (17, R 3, R 4)jest analogiczny do stosowanych we wszystkich bramkach Schottky'ego. Do wytwanania układów z serii A LS i AS w firmie Texas Instruments są stosowane dwie technologie (rys. 7.43). W nowszej technologii IMPACT (rys. 7.43b) wprowadzono dodatkową izolację tlenkową obszaru emitera oraz zmniejszono rozmiary struktury. Jak widać z.e schematów z rys. 7.40 i 7.42, układy bramek z ulepszonych serii TTL są bardziej złożone niż układy z serii standardowej, lecz w wyniku zastosowania nowoczesnych technologii (zmniejszonych wymiarów tranzystorów) zajmują one w przybliżeniu tę samą powierzchnię na kostce krzemowej. Ponadto, w układach TTL SSI i MSI koszt kostki krzemowej z układem scalonym jest zazwyczaj porównywalny łub mniejszy od kosztów związanych z obudowaniem (połączenia do końcówek zewnętrznych, obudowa) i testowaniem układu. W układach LSI z serii ulepszonych są stosowane wewnątrz inne struktury bramkowe niż pokazane na rys. 7.40 i 7.42. Ponieważ wewnątrz układu na kostce nie ma potrzeby sterowania takich obciążeń jak na wyjściu układu ani nie są potrzebne takie marginesy zakłóceń jak na wejściach , zasadniczym wymaganiem jest obniżenie mocy strat i zwiększenie szybkości działania (p. 7.6). Na przykład bramki „wewnętrzne" w układach LSI z serii FAST charakteryzują się czasem propagacji ok. l ns i mocą strat ok. I mW. a b aozo Kolektor SIO, p p R ys. 7.4J. Struktury tranzystorów Schottky'cgo stooowanc w układach ALS J i AS firmy Ttxa.r lrutrumt.nts a) konwmc)ona...1 tturySlot z UKŁADY ECL boczn:1J UiołacM lknkOWl. bł lhllZJ'Słot W)1'.0G-p--uy w ltdudop1 IMPACT 7.3 Klasa układów EC L (Emitter-Coupled Log ie), określane są w polskim nazewnictwie jako układy o sprzężeniu emiterowym. Ich najważoiejszymi cechami są bardzo duża szybkość działania, różnicowy tryb pracy, mały poziom generowanych zakłóceń i dość wysoki koszt. Typowe czasy propagacji układów ECL wynoszą 314 1.3. UKlAOY l Cl 0.2+2 ns, a ich maksymalna częstotliwość pracy zawiera się w zakresie 125 MHz +S.5 G Hz. Pierwsze scalone układy ECL zostały opracowane przez firmę M otoro/a w 1962 roku (rodzina MECL I) i miały typowy czas propagacji równy 8 ns oraz maksymalną częstotliwość zegarową równą 30 MH z. W roku 1966 pojawiła się rodzina M ECL li (4 ns, 70 MHz), a w roku 1968 rodzjna MECL III (I ns, 500 MHz). W roku 1971 wprowadzono ekonomiczną rodzinę MECL 10000 (2 ns, 150 MHz), oznaczaną skrótowo jako !OK (tabl. 7.2). Układy z tej rodziny opracowano również pod kątem minima lizacji mocy strat. W podstawowych Tablica 7.2 lAsA.oNJCZE PARAM B1'RY V K LADÓW SCALONYC H ECL -~· Parametr Opóźnienie IOK lOH lOOK 2 0.15 I.O IOE IOOE JOEL IOOEL 0.25 0.23 Czas trwania zbocza (typ). (ns) 3.5 Częstotliwość zegaro wa / - 150 I 1.5 330 25 25 40 0.36 0.4 1400 25 35 35 SO 35 83 53 53 25 68 53 28 9 101 18 pro pagacji 1, (typ), (ns) (typ), (MHz) Moc strat na bramkę P (typ), (mW) Całkowita moc strat na bramkę przy zasto· sowaniu rezystora obciągającego 2 kO (typ), (mW) Całkowita moc s trat na bramkę przy za. stosowaniu dopaso~· anej linii son (typ>. (mW) Współezynnik do b1oci r, · P (typ), (pJ) Maksymalny prąd wyjściowy, (mA) Obciążalność staloprądowa Pojemność wejściowa Rezystancja C, (typ). (pF) wyjści owa Najdłuższe połączenie N_ , R0 (typ). (O) niedopasowane, (cm) 50 50 92 2.9 550 2800 73 50 2.8 1.5 7 IS 6 4 2 I bramkach wynosi ona 25 mW (bez obciążenia). W rok u 1981 została opracowana szybsza rodzi na IOH (1 ns, 330 MHz) o tej samej, małej mocy strat. Rodzina IOH praktycznie zastąpiła rodzinę MECL Il i i umożliwiła znaczne zwiększenie szybkości działania systemów wykorzystujących poprzednio rodzinę lOK, przy tej samej mocy strat. Przy stosowaniu układów z rodziny !OK wymaga się dobrej stabilizacji napięcia zasilającego, ze względu na du7.ą wrażliwość napięcia wyj ściowego Uot (a tym samym marginesu zakłóceń) na zmia ny tego napięcia. Układy z ulepszonej rodziny lOH mają nową konstrukcję z kompe11sacją 11apięefową (pierwotnie wprowadzoną przez firmę Fairchild w rodzinie FlOK), czego wynikiem jest znaczne zmniejszenie wpływu zmian napięcia zasilającego. Nowatorska konstrukcja szybkich układów ECL z kompensacją napięcio· wą i remperaturowq została wprowadzo na w roku 1973 (3, 4] przez firmę 315 7. BUOOWA I CHARAKTERYSTYKI CYFROWYCH U KlAOOW SCALONYCH Fairchild w rodzinie FIOOK, obecnie wytwarzanej przez firmę National, a także - w rodzinie IOOK - przez firmy Philips i Motorola. Układy Le wyróżniają się bardzo dobrą stabilnością charakterystyk przejściowych i napięcia progowego bramki nie tylko przy zmianach napięcia zasilającego, ale także w szerokim zakresie temperatury otoczenia. W rezultacie otrzymuje się większe i stabilne wartości marginesu zakłóceń. Więcej informacji na ten temat podano w (i]. Uk.Jady z rodziny IOK są wyko nywane z użyciem klasycznej technologii z izolacją złączową. Gęstość scalenia układów z serii !OK wynosi typowo ok. 10 bramek/mm 2 , przy częstotliwości granicznej fr tranzystorów równej typowo 1.5 GHz (dane firmy Philips). Układy z nowszych rodzin IOH i IOOK są wyt warzane z użyciem technologii z boczną izolacją tlenkową. Technologia firmy Fairchild nosi nazwę ISOPLANAR 11, firma Motorola stosuje technologię o nazwie MOSA IC (Motorola Oxide Self Aligned Implanted Circuits), fima Philips technologię SUBI LO (SUBnanosecond Isolation by Lateral Oxidatfon). Na rysunku 7.44 zilustrowano różnice geometrii i parametrów tranzystorów stoso· MECL 10 H MECL 10 1< E n rn n rrn n "' LJ I :- I ,, I ' I I . I •• lJ lJ' ~.~J L.J 'I I O I LJ I I I. Emitor 3 )Jm • 8 )Jm Powi• r zchnio 592 ym2 t 1 • 3. ~ GHz Cc 1 • 0 .16 pF Cu • 0.07 pF Ces• 0. 18 pF Emitor 4 ym • 20 l'm Powi4rJchnio 4323 }'mi ·' r, = t.6 GHz C0 1 = 0.46 pF c„• Ces „ 0.1& pf 0.83 pF Rys. 1.44. Różn ice geometrii i parametró w tranzystorów stosowanych w układach l!CL z rodzin IOK i IOH fi rmy M ororolt1 wanych w układach z rodzin I OK i JOH firmy Motorola. Częstotliwość graniczna fr tranzystorów w układach z rodziny IO H wynosi typowo 3.5 GH z, a w układach z rodziny IOOK oko lo 5 GHz, przy czym gęstość scalenia wynosi ok. 20 bramek/mm 2 (Philips). W ro ku ł988 firma Motorola wprowadzila bardzo szybkie układy ECL w rodzinie ECLinPS (ECL i11 picoseconds). Uk lady te osiągają czas propagacji bramek równy 250 psi częstotliwość zegarową przerzutników sięgającą ł .4 GHz (tabl. 7.2). Układy ECLinPS są wytwarzane w seriach IOE (z kompensacją napięciową) i łOOE (z kompensacją napięciowo-termiczną), kompa tybilnych z seriami odpowiednio IOH i JOOK. Układy z tych serii mają identyczne 316 1.3. UKŁADY ECL parametry dynamiczne, a rozmą się odpornością na wpływ temperatury, dopuszczalnym zakresem napięcia zasilającego i minimalnie parametrami statycznymi (amplitudą logiczną). Ponadto w odmianie !OOLVEjest wytwarzana niewielka grupa układów o obniżonym napięciu zasilania ( - 3.3 V). Układy z serii E są umieszczane w małych obudowach PLCC o 28 końcówkach, zapewniających mniejsze opóźnienia i elementy pasożytnicze niż tradycyjne obudowy DI P. Najnowsze i najszybsze układy ECL wprowadziła firma M ocorola w rodzinie ECLinPS LITE, wytwarzanej w technologii MOSAIC II I. Rodzina ta zawiera proste układy cyfrowe (np. pojedyncze bramki OR/NOR, pojedyncze przerzutniki D i JK, pojedyncze odbiorniki do linii transmisyjnej), umieszczone w miniaturowych, 8-końcówkowych obudowach SOIC. Dzięki bardzo małym .wymiarom obudowy i nowym projektom (o zwiększonej mocy strat w przeliczeniu na bramkę) uzyskano znacznie większą szybkość działania (tabl. 7.2). Rodzina ta zawiera następujące serie: IOEL (kompensowane napięciowa) i lOOEL (kompensowane aapięcio­ wo-tennicznie), kompatybilne z układami z serii odpowiednio IOH i IOOK, o identycznych parametrach dynamicznych, JOELTi IOOELT, obejmującej translatory ECL{TTL i TTL/ ECL w róż­ nych standardach, IOOLVEL o obniżonym napięciu zasilania (-3.3 V). Zgodność łączeniowa układów EC L z różnych rodzin jest bardzo dobra. Przy łączeniu układów niekompensowanych (!OK) z układami kompensowanymi napięciowa ( IOH) lub napięciowa-termicznie ( IOOK) może jednak wystąpić pogorszenie marginesu zakłóceń, zwłaszcza przy różnych temperaturach i napię­ ciach zasilających tych układów. Oprócz podanych już rodzin uniwersalnych układów scalonych ECL niektóre firmy wytwarzają specjalizowane układy ECL do określonych zastosowań. Jedną z nich jest firma Plessey, która wytwarza szereg bardzo szybkich układów ECL do zastosowań telekomunikacyjnych. Są to m.in. różne cyfrowe syntezery częstotliwości o maksymalnej częstotliwości sięgającej 2.7 GHz i dzielniki częstotliwości o współczynnikach podziału od 2 do 32 i maksymalnej częstotliwości pracy sięgającej 5.5 G Hz. Do wytwarzania bardzo szybkich, specjalizowanych układów ECL o bardzo wielkiej skali integracji (VLSI) stosuje się bardzo zaawansowane technologie. Na przykład, technologia USICOS o rozdzielczości 0.3 µm, opracowana w firmie H icachi, umożliwiła wytworzenie tranzystorów scalonych o częstotliwości granicznej 50 GHz i osiągnięcie opóźnienia bramki ECL równego zaledwie 27 ps [5]. Stosuje się również istotne ulepszenia uk ladowe [6]. Jednym z popularnych zastosowań układów ECL w szybkich systemach cyfrowych jest r ozprowadzanie syg11alów zegarowych. Zagadnienie to jest omówione w p. 7.3.3. 317 1. BUDOWA I CHA.RAKTEAYSTYKł CYFROWYCH UKŁAOOW SCALONYCH 7.3.1 Podstawowe bramki ECL Schemat podstawowej, dwuwejściowej bramki NOR z rodziny IOK jest pokazany na rys. 7.45a. Zasadniczy układ bramki jest zrealizowany w konfiguracji różnicowego klucza prądowego o dwóch komplementarnych wyjściach i dwóch wejściach. Typowe napięcia zasilaji1ce są równe Ucci = U cez = O, U ee - 5.2 V. Napięcie U 88, które ustala wartość progu logicznego bramki, jest dostarczane z dodatkowego układu, który jest również wykorzystywany do polaryzacji pozostałych bramek, znajdujących się w tym samym układzie scalonym (na tej samej kostce półprzewodnikowej). Prą T. = + 25°C napięcie progowe jest równe U 88 = - 1.29 V. Diody Dl i D2 kompensują dryf temperaturowy układu w ten sposób, że przy zmianie poziomów logicznych na wyjści u, wywołanej zmianą temperatury, wartość U 88 zawsze znajduje się w połowie zakresu logicznego (U08 - U 0 J. Na komplementarnych wyjściach bramki znajdują się wtórniki emitcrowe (7:5, 70). Zapewniają one przesuwanie poziomów stałoprądowych, potrzebne do sterowania innych podobnych bramek, oraz małą impedancję wyjściową, która jest niezbędna do efektywnego sterowania linii transmisyjnych z do- = u,,, o R, 220Jl. Ucc1 I Ri I I 245Jl. I I lf'ozoostołe bromki Juktodu I 01 I 02 .,•• R, 6.1kfl b I I I I .98e~ I I U« Rys. 1.45. Dwuwejściowa bramka OR/NOR z rodziny !OK (10102) a) tchcmat. b) ró••DCrW&ux •rmbok 1opant 318 7.3. UKŁADY ECl pasowanym obciążeniem. Wtórniki te mają otwarte emitery, co oznacza się na symbolach IEC znakiem „o", umieszc-.tonym przy każdym wyjściu (rys. 7.45b). Wynika to stąd, że bramki ECL są zaprojektowane do stosowania z dopasowanymi na końcu liniami transmisyjnymi, a ponieważ rezystor dopasowujący stanowi duże obciążenie dla wtórnika, więc dodatkowy wyjściowy re-tystor obciągający (wewnętrzny) oznaczałby niepotrzebną moc strat. Bramka ma wprowadzone dwie końcówki zasilania od strony kolektorów: U cci i U cc 2 • Napięcie U cc2 zasila wtórniki wyjściowe, a napięcie Ucci zasila resztę układ u. Oddzielne obwody zasilania stosuje się w celu zmniejszenia wpływu skoków prądu wyjściowego (zwłaszcza przy sterowaniu obciążenia pojemnościowego i linii transmisyjnych) na działanie klucza prą­ dowego. Obydwie końcówki Ucci i Ucc2 powinny być przyłączone do masy jak najkrótszą drogą. rezystory R,, R8 umożliwiają pozostawienie nie używanych wejść bramek jako otwarte, odprowadzając prąd upływu z baz odciętych tranzystorów wejściowych. Na schematach analogicznych bramek z serii IOK firmy Philips są przedstawione dodatkowe rezystory, włączone szeregowo z bazą każdego tranzystora wejściowego (zaznaczone linią przerywaną na rys. 7.45). Rezystory takie są powszechnie stosowane w szybkich układach impulsowych z tranzystorami o sprzężeniu emiterowym, w celu redukcji pasożytniczych oscylacji („dzwonienia'} Typowe wartości tych rezystorów wynoszą 25 + 75 n. Łatwo można obliczyć (p. poprzednie wydania tej książki) Wejściowe UoLiyp :;;;; I.7 V oraz U 01111P :;;;; 0.9 V czyli amplituda logiczna wynosi 0.8 V. Typowe charakterystyki przejściowe bramki są pokazane na rys. 7.46a. Je-i.;eli napięcie na wejściu x 1 pozostaje na poziomie L, a na wejściu x 2 wzrasta z poziomu U li.mu do U mm;., IO napięcie na wyjściu y 2 zmienia poziom z H na L. Przy dalszym wzroście napięcia wejściowego napięcie U ,n dalej maleje. Po osiągnięciu przez napięcie wejściowe wartości U m "" -0.4 V następuje nasycenie sterowanego tranzystora wejściowego. Przy dalszym wzroście napięcia wejściowego napięcia wyjściowe również wzrasta, gdyż wówczas złącze baza-kolektor tranzystora w stanie nasycenia jest spolaryzowane w kierunku przewodzenia. Ponieważ napięcie wejściowe o wartości - 0.4 V jest znacznie większe od wartości U on mu = - 0.81 V, przy normalnej pracy taka sytuacja nie występuje. Charakterystyki wyjściowe bramki są pokazane na rys. 7.46b. Są one takie same dla wszystkich układów z serii !OK. Pokazane proste obciążenia dotyczą wartości rezystora obciążającego RL, przyłączonego z drugiej strony do napięcia UTT = - 2 V. Tego typu konfiguracja jest typowa przy stosowaniu RL 319 7. 8U00WA I CHARAKTERYSTYKI CYFROWYCH UKŁAOOW SCALONYCH o - 0.65 Uo I I - 0.75 '-'2s 0 c -1s0 c V -. -, -o.as \ -0.95 - 1.05 ' O°C -1.15 -1.25 \ ~5°C o•c I Ili \1111 I Wyjście OR \ n.1 VI. f\ /AA' - 1.35 - 1.45 ,, - 1.55 - 1.65 i . - 2'"5°C -1.75 {\ Obszar nasycenia \ " ·}~ oc ~ '-o~~ - 1.85 -1.95 -2.0 5 -2.0 b ,1s•c , '-. ,..._ \ ' - 1.4 •Uo -0.6 I/ 1'- -1.0 I / I - 1. 4 -1.a Urr -- -2.2 100 I I I -i.o - o.a - o.6 - o.4 -0.2 v -1.2 1 I/ I// / ~ ...... o / ./ 4.0 a.o / , - ~ .;' ~ ,.... Ucc 35ll V I/ _... ...... 'lf:l. UoH -- V / I/ !/ I 50 I / I/ / • V / ' / L., o- ----u., 25ll I o- 20 z4 2a Uo ~ 11; R< U 1 r=- 2V· 36 40 u mA Rys. 7.46. Typowe charakte rystyki b!"amki z rodziny IOK przy U ; r, = o+ + 1s•c 16 ;>1 l u„•-s.2v • Io 12 l o•c u, . 150 n ~5°C ~ '- Proste obciaienio V 15•c• •SCle ./. NOR WyJ - i.a - 1.6 - 0.2 I 32 „ = -5.2 V a) ch:arak1ery:Styk1 pmjściowc. b) charakterystyki wyjścio.,.,'t i p<0$1e <>bciątto ia. Rr. pnył~aonego do nap~ia U TT = - 2V jako dopasowania linii transmisyjnej, przyłączonej do wyjścia bramki. Jeśli nie trzeba stosować takiego dopasowania, to do wyjścia bramki przyłącza się rezystor RE. Rezystor RE jest z drugiej strony dołączony do napięcia Uu i ma odpowiednio większą wartość. Celem stosowania Iakiego rezystora, zwanego również obciągającym (pull-down), jest wymuszenie odpowiedniej wartości prądu wtórnika wyjściowego bramki (typowo kilka, kilkanaście mA), aby zmniejszyć jego impedancję wyjściową i przyspieszyć proces przełączania poziomów napięcia wyjściowego. Należy podkreślić, że przylączenie zewnętrznego rezystora Ri, lub RE do wyjścia ukladu ECL jest niezbędne, aby zapewnić odpowiednio szybkie dzialanie ukladu. W niektórych zastoso320 7.3. UKlAOY ECl waniach jest poi.yteczne przyłączenie Re także do WYJSC nie używanych (komplementarnych), aby zapewnić symetrię obciążenia (czyli stalą wartość prądu zasilania oraz mniejsze zakłócenia generowane na liniach zasilania). Wyjścia bramek ECL mogą być także łączone razem (wewnątrz lub zewnątrz układu). Bramki realizują wtedy funkcję zwarciową DOR (rys. 7.47). Aby nie pogorszyć szybkości działania takiej konfiguracji, liczba łączonych wyjść nie powinna być większa od pięciu. Funkcje ECL DDR Br[} ol bO f- olbo ., Rys. 7.47 Funkcja zwarciowa DOR Bramki ECL z rodzin kompensowanych napięciowo (IOH, IOE, IOEL) bardziej złożoną budowę, pokazaną na przykładzie dwuwejści owej bramki O R/NOR z rys. 7.48a. Prąd emiterów klucza 77 , T2- T3 jest dostarczany przez generator prądowy T4, R 8 , sterowany napięciem U es z odrębnego stabilizatora (rys. 7.48b), wykonanego na tej samej kostce. Zapewnia to znacznie lepszą stałość napięć UoL przy zmianach Uu:· Podobnie lepsza jest stałość napięcia progowego U88 przy zmianach UEe Różnice wartości czasów przełączeń układów z rodzin IOK i IOH przedstawiono na oscylogramach na rys. 7.49. Bramki ECL z rodziny kompensowanych napięciowo i termicznie (IOOK, IOOE, IOOEL) mają, przy zachowaniu zasadniczego układu stabi lizatora napięć U 88 i Ucs z rys. 7.48b, dodatkowo wbudowany dwójnik R6 - DI/D2 (rys. 7.48a). Umożliwia to znaczne polepszenie stałości napięć wyjściowych i napięcia progowego przy zmianach U ss i 7;.. Zasilanie układów ECL jest tradycyjnie ujemne. Wynika 10 stąd, ż.e wartości napięć wyjściowych Uou i UOL są bezpośrednio przywiązane do napięcia Uce· Gdy Uce = O, to problem zależności napięć wyjściowych od zmian napięcia U cc praktycznie nie istnieje. Zakłócenia „uziemieniowe" na masie (końcówki Ucc 1 i Ucc2 ) są również zazwyczaj mniejsze niż na szynie zasilania (U u)· Wynika stąd , że przy ujemnym zasilaniu otrzymuje się większe, korzystniejsze wartości marginesu zakłóceń. Tolerancje napięcia U lit są następujące: rodzina IOK: - 5.2 V ± 2%, rodziny IO H, IOE, IOEL: -5.2 V ± 5%, rodziny IOOK, IOOE, IOOEL: od - 4.2 V do - 5.46 V. mają 321 1. BUOOWA I CHARAKTERYSTYKI CYFROWYCH UKlAOOW SCALONYCH l a Ucc1 u•• „ T7 ,__ _ T6 R„ v, tobiłi zolor napi ęć Uee i Ucs X, Ucs X t1Jcs~13V R, L---+--+ -'------..,,..+ - -ou„ • -tyl ko w u k łOd och lJOK '100E 'lJOEL ~w ~. a) budowa dwuwejściowej bra mki OR/ NOR z kompensowanych rodzin ECL, b) układ stabilizatora napięć pomocniczych U88 i Ues Wyj śc i e NOR ';!o ~ „MC 10101 ' :/ \ MC10H t01 I- łp d•- J 0.92ns tpd•· ... 2.0 7ns ' I- I / MC10H10 1 ~ ~ "" tpd • • I - I tpd•• 0.88ns I ) OR I ' '(/ Uo c;:; A 2.tOns MC I OH IOl -l.52 MC IOIOI - 2.62 u, ' ' '~ ,„ .. łr (ns) : Wyjście MCIOH 101 .. · 'MCIOH101 )( 1.10ns V '/ ... t1 Ins i: MC IOHI Ol -1.49 MC 1010 1 - 2.4 ~ Yo U1 "U1 .. u,· ~ •Uo , ,'( I MC tOIOl_ >-- , tpd • • MC10H 101 2.0 Sns - >-- łpd·1.0Bns ' t, (ns): MC tOH IOI -t.48 MC l0101 - 2.51 ' MC 1010 1 / I/'\ :\. " łpd·· 2 .2Sns I llll t lllł -....... - ·- t1 ł ns ) : MCIOH101 -t.42 MC10 101 - 2.4 5 Rys. 7.49 Porównanie szybkości działania układów z rodzin IOK i IOH firmy Motorola (przykład i MCIOHIOI, zawierających 4 dwuwcjściowe bramki OR/NOR) układów MCIOIOI 322 7.3. U KtAOY ECL Jeśli projektowane urządzenie zawiera uklady TTL lub CMOS (zasilane standardowym napięciem + 5 V) i układy ECL, to te ostatnie mogą być zasilane napięciem dodatnim, czyli U cci = U cc 2 = + 5 V i U EE = O. Taki sposób zasilania układów ECL określa się jako PECL (Positive ECL). Wymaga to bardziej precyzyjnego i lepiej filtrowanego zasilania napięciem + 5.0 V lub +5.2 V, aby ograniczyć wzrost marginesu zakłóceń. Jeśli jednak w danym zastosowaniu układy ECL wykorzystują połączenia różnicowe, to wtedy ewentualny wzrost zakłóceń na szynie zasilania nic ma żadnego wpływu na margines zakłóceń układów ECL gdyż, jak wiadom o, od biorniki sygnałów różnicowych są niewrażliwe na zakłócenia nieróżnicowe (common mode). W wielu zastosowaniach wygodnym sposobem zasilania układów ECL jest zapewnienie dwóch napięć: U ce = + 2 V i U EE = - 3.2 V, czemu odpowiada U TT = O. Umożliwia to sterowanie układów impulsami z typowych źródeł przystosowanych do obciążeń 50 n przyłączonych z drugiej strony do masy.jak również przyłączanie wyjść układów do takich obciążeń. Ułatwia to również badanie układów ECL (standardowe układy pomiarowe do badań dynamicznych parametrów układów ECL są właśnie tak zasilane, aby umożliwić bezpośrednie połączenia z wejściam i 50 O szybkich oscyloskopów). Ponadto rezystory obciążające RE i RL są wtedy z drugiej strony łączone bezpośrednio z masą, co zapewnia większą szybkość działania i mniejszą moc strat niż przy stosowaniu jednego napięcia U EE= - 5.2 V. Zwyczajowo ten dwunapięciowy sposób zasilania układów ECL nazywa się „standardem masy". Moc strat układów ECL jest sumą kilku składników (rys. 7.50}. Przy rozpatrywaniu pojedynczej bramki, której wyjście jest połączone z wejściem innej bramki (ewentualnie za pośrednictwem linii transmisyjnej), moc strat jest określona przez: a Ucc c z b d nr 131 [[ Rys. 7.50. Skladowc mocy strat uk ładów ECL a) moc łlrtt bmntł P pod.łwana bWotowo. b) l!IOOt """ ~nc ~ ~ Iła;. C) moce jtr•I ~nir 1 obeit - niem lł4, d) moc a.rr11 bnmłi pn:)' ~11 po,cm1ll0ileio•J "" 323 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKLADOW SCALONYCH moc strat pojedynczej bramki P (przy otwartych wejściach i wyjściach), podawaną katalogowo, 2) moc strat bramki wywołaną przez ewentualne przyłączenie na wyjściu bramki rezystora obciągaj ącego RE, przyłączonego z drugiej strony do napięcia zasilającego U EE• 3) moc strat rozpraszaną w tym rezystorze, 4) moc strat bramki wywołaną dopasowaniem linii transmisyjnej, tzn. przy przyłączeniu na końcu linii rezystora RL o wartości równej impedancji charakterystycznej użytej linii transmisyjnej, przyłączonego z drugiej strony do napięcia pomocniczego U TT = - 2 V, 5) moc strat traconą w tym rezystorze, 6) moc strat bramki wywołaną ładowaniem i rozładowaniem pojemności obciążenia na wyjściu bramki. Składowa (1) jest zwykle podawana w katalogach firmowych i wynosi przykładowo 25 mW na bramkę (typowa wartość średnia dla układów !OK i IOH). Składowa (2) pojawia się wówczas, gdy dwie bramki ECL znajdują się na tyle blisko siebie, że nie trzeba stosować dopasowanej na końcu linii transmisyjnej. Ponieważ wyjście bramki stanowi otwarty emiter, a na wejściu bramki jest relatywnie duża rezystancja (typowa wartość 50 k!l), więc stosowanie zewnętrz­ nego rezystora obciągającego jest wówczas konieczne. Przy zastosowaniu rezystora o wartości 2 k!l moc strat bramki wzrasta o 2.5 mW (tabl. 7.3). I) własną Moc STRAT BRAMKI fCL· PRŁY OOOJĄŻEł'IU rezystor lub dopasowanie linii Obciążenie: obciągający ł50 n Tablica 7.3 REZ.YSTOROWY"M ( UO·TOROLA) Moc s1ra1 w tran- Moc strat w rezyzystorze wyjściostorze obciągająwym bramki ECL cym (mW) (mW) Całkowi la strat obciążeniem (mW) do -2.0 v 5.0 4.3 IOO n do -2.0 V 1.5 6.5 ł4 10 15 8.7 13 18.7 28 15 18.3 9.7 7.2 4.9 2.5 140 57.2 30.2 22.6 15.4 7.7 165 75.5 39.9 29.8 20.3 10.2 75 50 82 n n n n n n n do do do ł30 do 270 do 510 do 680 do I kfl do 2 kfl do Składowe -2.0 - 2.0 masy - 5.2 - 5.2 - 5.2 5.2 - 5.2 - 5.2 v v i v v V V V V moc wywołana 9.3 (2), (3), (4) i (5) są określone dla różnych rezystorów w tabl. 7.3. Przy zastosowaniu dopasowanej linii transmisyjnej o impedancji 50 n, moc strat bramki wzrasta o 15 mW, a całkowita moc strat wzrasta o 28 mW, czyli wynosi 324 7.3. UKt.AOY ECl 53 mW przy użyciu bramki !OK. Przy zastosowaniu rezystora obciągającego 2 k!l całkowita moc strat wynosi 35 mW. Jest to najmniejsza całkowita moc strat w przeliczeniu na jedną bramkę !OK. Przy analizie moc strat całego system u należy zwrócić uwagę na dwie istotne okoliczności. - zwykle większość układów w systemie pracuje przy małych i średnich częstotliwościach, a większy nacisk kładzie się na minimalne opóź­ nienie propagacji, - oszacowanie mocy strat w przeliczeniu na jedną podstawową bramkę małej skali integracji nie oddaje faktycznego stanu rzeczy, jeżeli w systemie stosuje się wicie (z reguły większość) układów o średnim i dużym stopniu scalenia, których moc strat w przeliczeniu na jedną bramkę wewnętrzną jest znacznie mniejsza. Margines zakłóceń oblicza się w sposób podany w p. 5.3.3. Napięcia UIL mu• Uot.mu• Uoum•• i U1u..m są określane przy stałych wartościach napięcia zasilającego i temperatury a nawet ściśle zdefiniowanych warunkach chlodzenia (zgodnie z normą JEC 748-2, 1985 napięcia te oznacza się symbolami UILA• U0 ,_„, Uous· Uuu>· Jest to istotna różnica w porównaniu z układami TIL, dla których przytoc-.wne wartości napięć są gwarantowane w całym dopuszczalnym przedziale zmian temperatury i napięcia zasilającego. Przy połączeniu układów !OK otrzymuje się przy jednakowej temperaturze obydwóch układów najmniejszą wartość marginesu zakłóceń równą 125 mV, a przy krańcowo różnych temperaturach (0°C i 70°C) zaledwie ł5 mV. Różnice napięć zasilających współpracujące układy również powodują zmniejszenie margines u zakłóceń. Jeśli przykładowo (rys. 7.5 ł b) bramka sterująca jest zasilana napięciem U EE = - 5.2 V - 5% = - 5.46 V, a bramka sterowana jest zasilana napięciem - 5.2 V+ 5% = -4.94 V, to przy zalożeniu bramek z serii IOK i ich jednakowej temperatury równej + 25°C dane firmy Motorola są następujące: Uoumin = -0,988 V, Uo1.m„ = -1.71 V, Ummin = - 1.056 V i U11,.,.„ = - 1.426 V, skąd Mu = 68 mV i M1. = 284 mV. Jak widać, margines zakłóceń M 11 zmniejszył się z 125 mV do 68 mV, a w praktyce może być gorzej, jeśli obydwa układy mają różne temperatury. Stosowanie układów kompensowanych napięciowo ( łOH, łOE, łOEL) lub napięciowo i termicznie (!OOK, !OOE, łOOEL) umożliwia otrzymanie większych wartości marginesów zakłóceń w różnych warunkach pracy. Jak widać z tablicy podanej na rys. 7.5lc, wartości marginesu zakłóceń w układach ECL są znacznie mniejsze niż w układach TTL (-0.2 V w porównaniu z l V). Różn ice stosunków marginesu zakłóceń do amplitudy logicznej nie są jednak tak duże (0.2 V/ /0.8 V = 0.25 dla EC L w porównaniu z I V/ 3 V "" 0.33 dla TTL). Bardzo dużą zaletą układów ECL jest różnicowy tryb pracy, charakterystyczny dla symetrycznych kluczy prądowych, stosowanych w tych układach (p. rys. 7.45, 7.48). W tym trybie prąd zasilania pozostaje praktycznie stały przy 325 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKŁAOOW SCALONYCH a u•• UoHmo,_•---+-- NOR Uolmin - -- b +--+-- - OR +-- -- t- - - Zokłócerio 7 . ~- - --~ Uo c U1 Margines zakłóceń przy jednakowej terrperałurze układów (mV) min typ 125 210 10H,10E , tOEL 150 270 IOOK,100E ,t00EL 140 210 10 K Rys. 7.51. Margines zakłóceń układów ECL a) ekstremalne wielkoSci aa~ b) określenie 111.irgin~u uklOOeli, c;) wartości ma.rgiDCSu zakłóceń dl.;i układów ECL ~ róln)'ch rodzin zmianie stanów na wyjściach różnicowych. Oznacza to istotne zmniejszenie zakłóceń generowanych na liniach zasilania, w porównaniu z układami pracują­ cymi w trybie niesymetrycznym (TTL, CMOS). Inne Układy układy o małym stopniu scalenia 7.3.2 ECL o małym stopniu scalenia obejmują, poza omówionymi uprzednio najprostszymi bramkami OR/NOR, wiele innych bramek, ich kombinacje oraz przerzutniki. W układach tych, jak również w układach o większym stopniu scalenia, wykorzystuje się pewne charakterystyczne sposoby realizacji funkcji logicznych AND i OR. 326 7.3. UKŁADY ECL Ucc2 Vcc1 R, Ra Rio T8 T1 T9 y, Y2 ANO NANO R x, ., U99 02 T2 R„ 03 T7 01 Oo innych bromek u„ T10 T6 04 llcs t----~- 05 R, Rg ~.__ R12 _____._____..______..__ _._ ---o u« Rys. 7.52. Budowa bramki AND{NAND (Philip.< 10104), ilustrująca zastosowanie bram_lc:owania szeregowego Jednym z tak.ich sposobów jes bramkowanie szeregowe. Przykładowa bramka AND/NAND zawarta w układzie 10104 (rys. 7.52) zawiera dwa klucze tranzystorowe T3-T5 i T4- 77, przy czym pierwszy z nich jest bramkowany przez drugi. F unkcja AND ma stan I, gdy jednocześnie przewodzą tranzystory TJ i T4. Aby utrzymać dużą szybkość przełączania, istotne jest, by tranzystory klucza T4- 77 nie wchodziły w stan nasycenia. W tym celu jest wytwarzane odrębne napięcie progowe klucza T4- 77 (UFF). Napięcie U FF jest obniżone w stosunku do U88 o ok. 1.3 V. Analogicznie jest przesuwane napięcie z wejścia x 2 , poprzez napięcie baza-emiter tranzystora T2 i napięcie przewodzącej diody Dl . Bramkowanie szeregowe - prosta, bardzo szybka i o małych stratach technika - jest szeroko wykorzystywana w bardziej złożonych układach ECL. Przykład prostej budowy bramki XOR/XNOR (10107) jest pokazany na rys. 7.53. Napięcie zasilające Ulit w układach ECL zostało wybrane jako równe - 5.2 V właśnie dlatego, że jest ono zbliżone do minimalnej wartości napięcia, umożliwiającej realizację potrójnego bramkowania szeregowego (4 x 1.3 V = 5.2 V). Na rysunku 7.54 pokazano sposób lączenia kolektorów, który umoż­ liwia prostą realizację funkcji AND wewnątrz układu. W pokazanej bramce NOR-AND funkcję AND uzyskano przez zwarcie kolektorów tranzystorów 327 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKł.AOÓW SCALONYCH u,,, o---------------~ r+--..-------...--ł------.---..---0 Ucci Tli y, o-- -4---- _ _ _ ....______.__....____..._-o u„ ~--_.,__ Rys. 7.53. Budowa bramki XOR/XNOR (Mororola 10107) x, <>-- --< ;.1 x,o--~ ~-...1 X 3 0 - -...I x.n---ł Re Ro T9 j Io TJ u,,, y T5 x, x, )C 3 >c4 Rys. 7.54. Łączerue kolektorów do realizacji funktji DA ND T3 i T8, które maj ą wspólny rezystor podciągający Re i wspólny wyjściowy wtórnik emiterowy 19. Jest to znana z układów TTL konfiguracja funkcji zwarciowej DANO (por. rys. 7.21+7.23). Aby napięcie wyjściowe nie było za małe gdy na wszystkich czterech wejściach jest poziom L, wprowadzono ogranicznik dolnej wartości UOL• składający się z tranzystora T4 i rezystora R 0 • 328 1.3. U KŁADY ECL Napięcie na połączonych kolektorach nie może spaść poniżej wartości - (/ oRo +UBE4). Innym sposobem budowy złożonych funkcji logicznych jest łączenie emi1erów w celu realizacj i runkcji zwarciowej DOR (por. rys. 7.47). Sposób ten przedstawiono na rys. 7.55, na którym cztery funkcje wyjściowe otrzymuje się po zastosowaniu tylko dwóch kluczy emiterowych i dwóch połączeń DOR. Rezystory obciągające Re w połączeniach wewnątrzukładowych mogą mieć większe wartości niż w połączeniach zewnętrznych (typowo I + 5 k!l). L___ _ _. . __ _.._-+-<>-+--<>--- _._- -<>Uu •:, o----- -- - -- ---t---' l - - -Rys. 7..55. lączenie - -- - - - O.X1 V Xt Y i') emiterów do realizacji funkcji OOR Często stosowane są układy ECL noszące nazwę odbiorników do linii transmisyjnych, które mają dwa różnicowe wej ścia i jedno lub dwa różnicowe wyjścia. Są to w istocie proste jednostopniowe wzmacniacze różnicowe. Są one umieszczone po trzy lub C-ltery w jednym układzie scalonym razem ze stabilizowanym źródłem napięcia progowego, które może być zewnętrznie przyłączone do dowolnego wejścia każdego wzmacniacza. Przykładem takiego układu jest typ 10116 z rodziny IOK, który zawiera trzy wzmacniacze i źród ło napięcia U BB> o budowie pokazanej na rys. 7.56. Istnieją trzy wersje tego ukladu, różniące się szybkością działania: 10116, 10216 i !OHI 16. Czasy propagacji i trwania zboczy impulsów wyjściowych wynoszą odpowiednio 2, 1.5 i I ns. Stosowane symbole grafie-me odbiornik a do linii transmisyjnej są pokazane na rys. 7.56bc. Znak przypominający prawostronny nawias 329 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UJ<t.AOOW SCA.LONYCH a y, Jeden z ł rz~h wzmacniaczy zowor tychw układ zie 10116 ŹrÓdło nop1eC pomocniczych Uae i Ucs c 11.ys. 7.56 Odbiornik do linii transmisyjnej 10116 a) schemat, b)gymb<>I łfil fłCUly IEC, c) symbol kltiyciny kwadratowy wewnątrz symbolu IEC oznacza, że do utworzenia wejściowego logicznego są potrzebne sygnały wszystkich (w tym przypadku dwóch) sygnału wejść. Układ może być sterowany w sposób różnicowy (przez doprowadzenie na wejścia x 1 i x 2 sygnałów komplementarnych linią dwuprzewodową) łub w sposób nieróżnicowy (przez doprowadzenie na jedno z wejść sygnału sterującego i połączenie pozostałego wejścia z końcówką napięcia progowego U88). Połączenia różnicowe ECL nie generują szkodliwych przesłuchów i zakłóceń elektromagnetycznych, generowanych w systemie podczas przełączeń. Dla porównaniu, niesymetryczne struktury i połączenia układów TTL/CMOS generują podczas przełączeń relatywnie duże zakłócenia na szynach zasilających. Również odporność na zakłócenia układów sterowanych różnicowo jest znacznie lepsza niż układów sterowanych nieróżnicowo, gdyż zakłócenia nieróżnicowe na wejściach odbiornika różnicowego odejmują się od siebie. Te korzystne cechy są w szczególności wykorzystywane w układach opisanych dalej. 330 7.l. UKŁADY ECL Układy do rozprowadzania zegarowych sygnałów 7.3.3 W nowoczesnych systemach cyfrowych jednym z istotnych problemów projektowych jest właściwe doprowadzenie szybkich sygnałów zegarowych do różnych układów systemu. W idealnym systemie momenty przełączeń sygnałów zegarowych na wejściach wszystkich sterowanych układów są idealnie jednoczesne. W praktyce występuje jednak zjawisko pewnego przesunięcia w c-t.asie tych przełączeń w różnych miejscach systemu, co może prowadzić do rozsynchronizowania i w rezultacie niewłaściwego działania systemu. Zjawisko to, określane jako "przesunięcie zegarowe" lub krótko ,,skos zegarowy"' (clock skew), stanowi jedną z głównych przyczyn, ograniczających wzrost częstotliwości pracy szybkich systemów cyfrowych, w tym komputerów. Okazuje się, że zastosowanie układów ECL do rozprowadzania sygnałów zegarowych dużej częstotliwości może zapewnić mniejszy skos zegarowy niż alternatywne rozwiązania z układa­ mi TIL/CMOS. Wyróżnia się następujące rodzaje skosu zegarowego. I. Skos wypełnienia. Różnice w czasach propagacji tnn i tPnt układów transmitujących sygnał zegarowy wywołują zmianę współczynnika wypeł­ nienia przebiegu zegarowego. Zjawisko to jest szczególnie szkodliwe w systemach wykorzystujących obydwa zbocza sygnału zegarowego, np. w nowoczesnych mikroprocesorach. Układy ECL, dzięki symetrycwej strukturze różnicowej, zapewniają niemal zerowy skos wypełnienia. 2. Skos międzywyjściowy. M oże on wystąpić w postaci przesunięć momentów przełączeń sygnałów zegarowych na wyjściach układu generującego te sygnały dla różnych układów sterowanych w systemie. 3. Skos rozrzutu technologicznego i środowiska pracy. Czasy propagacji układów scalonych zależą od zmienności procesów technologicznych (różne układy tego samego typu mają zawsze nieco różniące się od siebie wartości czasów propagacji), od rzeczywistych napięć zasilających układy scalone w systemie, oraz od temperatury otoczenia. Trzeba uwzględnić fakt, że często w systemie występują „gorące punkty" wywołane loka.lnie źle działającą wentylacją łub/i lokalnym zwiększeniem gęstości montażu układów scalonych. Wymienione trzy rodzaje skosów są mniejsze, gdy używamy układy ECL niż gdy używamy układy TIL/CMOS. Ponieważ generalnie skos jest tym większy, im dłuższy jest CT.as propagacji układu, zatem krótkie czasy propagacji układów ECL zapewniają mniejsze wartości skosu w systemie. W szczególności korzystne jest zastosowanie połączeń różnicowych z ukła­ dami ECL, które zapewniają ekstremalnie niskie wartości skosu (poniżej 50 ps). Momenty przełączeń sygnałów róinicowych nie zależą bowiem od zakłóceń 331 7. BUOOWA I CHARAKTERYSTYKI CYFROWYCH U KlAOOW SCALONYCH „ 1.20 "E ·~ 104 " tl.03 i J1.1s 1.()2 jI 1.10 l01 1.00 ECL . 0.99 J i 0.96 0.97 o. 0.95 0.94 Q.96 1.02 1.00 1.10 Znormo!imv.one ZOSilani e 1. I.O oo 80 łJO Temperaturo("C) Rys. 7,j7, Wpływ środowisk.a pracy na czasy propagacji ul:.ładów ECL i TTL/ CMOS (Motorola [S]) i innych nieróżnicowych zmian sygnału. Korzystnie dla u.kJadów ECL wypada również porównanie z układami TfL/CMOS zależności ich czasów propagacji od napięcia zasilającego i temperatury (rys. 7.57). Przy zastosowaniu tego samego, dodatniego napięcia zasilania do układów TfL/ CMOS i do układów ECL (czyli PECL - Positive ECL) nie są wymagane żadne dodatkowe, ujemne napięcia zasilające. Przykład zastosowania układów ECL do rozprowadzania sygna łów zegarowych do układów ECL i TTL/CMOS w systemie jest pokazany na rys. 7.58. Układ Eli I jest 9-wyjściowym rozdzielaczem zegara, o gwarantowanym skosie poniżej 50 ps. Układ H64 I jest 9-wyjściowym translatorem PECL/TfL o gwarantowanym skosie międzywyjściowym poniżej 0.5 ns i skosie rozrzutu technologicznego poniżej 1 ns. W ten sposób można otrzymać łącznie 81 wyjść zegarowych. W łączach El 11 - EI 11 trzeba wląc-zyć dodatkowe opóźnienia, aby skorygować różnicę opóźnień między układem E l 11 (typowo 0.5 ns) a układem H64 l (typowo 5.5 ns). Oc-zywiście, jeśli na wyjściach stosuje się wyłącznie układy Eł I I (tylko wyjścia PECL) łub wyłącznie układy H64 I (tylko wyjścia TfL), to żadne dodatkowe opóźnienia ko rekcyjne nie są potrzebne. Do precyzyjnego opóźniania sygnałów ECL można wykorzystać specjalizowane układy opóźniające E 195 lub E196. Schemat logiczny układu E l96 pokazany jest na rys. 7.59. Łańcuch komórek opóźniających jest programowany 7-bitowymi danymi, wpisywanymi z wejść D do odpowiednich zatrzasków. Umożliwia to uzyskanie opóźn ienia między wejściami IN a wyjściam i Q w typowym zakresie 2240 ps (od 1390 do 3630 ps) z rozdzielc-.wścią ok. 20 ps (najmniej znac-Lący bit na wejściach D). Dodatkowe analogowe wejście FTUNE umożliwia płynną regulację opóźnienia przez zmianę napięcia sterującego na tym wejściu. W ten sposób można osiągnąć rozdzielczość regulacji opóźnienia rzędu pojedynczych pikosekund. Charakterystykę regulacji opóźnienia w układzie 10El96 ilustruje rys. 7.60. Prostszy układ E l95 nie 332 7.3. U~lAOY ECL ~ --- --- -- 1 1Em I I I oo I • I IOCL • • I I I I I IL __ _ __ __ J fHSi.1 _ ____ __1 I I 08 I ,,?--;+--, IL __ ______ _J I oo I • • I I • I I I Int I I IL._ _ _ _ _ _ _ _ _ _ J Rys. 7.58. Przykład rozprowadzania sygnalów zegarowych do wyjść ECL i TIL (Moiorola ( S]) IN m EN Zatrzask oo 01 oz 03 04 05 06 07 Rys. 7.59. Uproszczony schemat logiczny programowanego ukladu opó:i:niająeego MCIOE196/MCIOOE196 (Motorola). • Opóźnienia tych bramek są o 25% lub 50% dłuższe od opóioienia standardowego (ok. 80 ps). ma wejścia FTUNE i tym samym możliwości płynnej regulacji opozmenia. Wejścia LEN, SET MIN, SET MAX, D7 oraz wyjścia CASCADE umożliwiają szeregowe połączenie takich układów w celu zwiększenia zakresu regulacji opóźnienia. Programowalne i wieloodczepowe układy opóźniające o dłuższych zakresach i większych rozdzielczościach wytwarza firma Dallas Semico11ductor w technologii CMOS (rodzina DSlOOO). 333 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKŁAOOW SCAi.ONYCH 100 90 ' L '\ 80 L ~: ·e .~ ,f. 50 ~ ·~ L '\.. L " """ L ·a40 L o 30 '20 L 10 L q5 . ... . . -4 "' Rys. 7.6-0 ""' -J -2 FTUNEIVJ Zależność opóźnien ia . układu . . o na (Mororola) Zasady projektowania systemowego z użyciem układów ECL N ie używane wejścia i EI 96 od napięda FTU N f; wej ściu 7 .3.4 wyjścia Nie używane wejścia mogą pozostawać otwarte, jeśli powm1en być na nich ustalony poziom L. Jest to wynikiem obecności wejściowych rezystorów obciągających. Jeśli natomiast na danym wejściu powinien być ustalony poziom H , to nie należy tego wejścia łączyć bezpośrednio z U cc• lecz za pośrednictwem diody krzemowej. Chodzi o to, aby na wejściu nie pojawiło się napięcie większe od - 0.4 V, gdyż prowadziłoby to do nasycenia tranzystora wejściowego (por. rys. 7.46a). Należy zwrócić uwagę, że układy odbiorników do linii transmisyjnych nie są wyposażone na wejściach w rezystory obciągające, charakterystyczne dla pozostałych układów ECL. Jeśli zatem jakiś odbiornik w układzie pozostaje nie używany, to jedno jego wejście powinno być przyłączone do U 88, a drugie do UeE· Wyjścia nie używanych układów mogą pozostawać otwarte. Nie używane (zazwyczaj komplementarne) wyjścia używanych układów mogą w zasadzie również pozostawać otwarte, jednakże zaleca się je obciążać podobnie jak wyjścia używane. Zapewnia to stałość prądu zasilania przy przyłączeniu i ma korzystny wpływ na parametry impulsowe przesyłanych sygnałów. Płytki drukowane Należy stosować płytki drukowane dwustronnie z otworami metalizowanymi lub płytki wielowarstwowe, konieczne przy częstotliwości zegarowej powyżej 200 MHz. Płytki wielowarstwowe umożliwiają większą gęstość upakowania elementów na określonej powierzchni, krótsze połączenia między układami, 334 7.3. UK.LADY ECL bardzo dobre rozprowadzenie masy i zasilania. Oznacza to zmniejszenie wpływu szkodliwych zjawisk pasożytniczych i zwiększenie szybkości działania systemu. Przy stosowaniu płytek dwustronnych zaleca się przeznaczyć jedną stronę laminatu na powierzchnię jednolitej masy, która powinna pokryć co najmniej 70% powierzchni płytki. Zapewnia to dobre warunki do odsprzęgania układów (przy zastosowaniu kondensatorów blokujących) oraz właściwą bazę do realizacji linii mikropaskowych. Jeśli na płytce drukowanej ścieżki sygnałowe są wykonywane po obydwu stronach, to w celu zmniejszenia zjawiska przesłuchu należy w miarę możności zapewnić prostopadłość linii prowadzonych nad sobą. Powierzchnia masy powinna być doprowadzona do 10% końcówek równomiernie rozmieszczonych w złączu krawędziowym płytki. Zmniejsza to impedancję masy i tym samym wartość zakłóceń uziemieniowych. Końcówki Ucci i Ucci układów powinny być przyłączone bezpośrednio do powierzchni masy. Jeżeli na płytce znajduj ą się elementy pobierające impulsowo duże prądy, np. przekaźniki, żarówki, tranzystorowe układy impulsowe większej mocy itp., to masa dla tych elementów powinna być elektrycznie oddzielona na płytce od masy układów scalonych ECL. Obydwie masy należy połączyć razem poza płytką, w jednym punkcie masy systemu. Wszystkie ścieżki drukowane powinny być jak najkrótsze. Zasilanie Jakkolwiek układy ECL pracują funkcjonalnie poprawnie przy dość dużych zmianach napięcia zasilającego (5 + 10%), to w celu uzyskania możliwie dużego marginesu zakłóceń korzystnie jest zapewnić stabilność napięcia zasilającego U EE nie gorszą niż I%. W celu zapewnienia wystarczająco dużego marginesu zakłóceń napięcie Uu: w różnych miejscach systemu nie powinno różnić się więcej niż o 50 mV. Wartość międzyszczytowa zakłóceń uziemieniowych na końcówkach Ucci i Ucc 2 układów nie powinna przekraczać 50 mV. Na każdej płytce drukowanej linia U EE powinna być blokowana kondensatorem (najlepiej elektrolitycznym tantalowym) o pojemności l + 10 µF. Każda grupa l + 4 układów scalonych powinna być blokowana kondensatorem bezindukcyjnym (najlepiej ceramicznym monolitycznym) o pojemności IO+ 100 nF, włączonym między U ee i masę. Przy stosowaniu układów bardzo szybkich z rodzin lOH i IOOK należy każdy z nich blokować kondensatorem bez końcówek drutowych, bezpośrednio między punktem lutowniczym końcówki UEE układu i powierzchnią wspólnej masy. Przy stosowaniu standardu masy (p. 7.3.1) należy w identyczny sposób blokować napięcia U cc = + 2 V i Uu:= -3.2 V. 335 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH VKt.AOÓW SCALONYCH Obc iążalność Granic-zna obciążalność prądowa układów ECL jest relatywnie duża i wynosi 10 ..,, = 50 mA. W praktyce nie należy stosować mniejszych rezystancji obciążenia niż 25 n do - 2 V, czemu odpowiada I oHmu = 40 mA (por. rys. 7.46b). W praktyce istotna jest wartość obciążalności znormalizowanej N, która jest ograniczona głównie przez pojemność obciążenia. Czas opadania sygnału wyjściowego wydłuża się o ok. 100 ps na każde blisko dołączone wejście, przy obciążeniu 50!2 do -2 V lub przy 270!ldo -5.2 V. Jeśli zastosowano obciążenie 100 !l do - 2 V lub 510 n do 5.2 V, to spowolnienie czasu opadania również wzrasta dwukrotnie i wynosi ok. 200 ps na każde wejście. Aby wykorzystać dynamiczne możliwości układów ECL, należy zatem zapewnić N < 10. Każde wykorzystywane wyjście musi mieć przyłączony zewnętrzny rezystor obciążający RE, przyłączony z drugiej strony do napięcia U f f lub napięcia pomocniczego U TT = - 2 V, względnie rezystor Ri dopasowujący odbiorczy koniec linii transmisyjnej (por. tabl. 7.3). Stosowanie rezystorów przyłączonych do napięcia U n zapewnia większą szybkość działania i mniejszą moc strat. Łączenie bezpośrednie wyjść różnych układów ECL tworzy funkcję zwarciową DOR. Przy wartościach rezystora obciągającego 50+ 270 n opóź­ nienie propagacji wzrasta o ok. 50 ps na każdy dołączony emiter, który reprezentuje równoważne obciążenie pojemnościowe równe ok. 2 pF. Chłodzenie Układy z rodzin MECL lOK i lOH nie mają dużych wymagań odnośnie chłodzenia, gdyż ich moc strat jest względnie niewielka. Maksymalna temperatura kostki krzemowej w tych układach jest równa 1j .,., = + 125°C. Przykładowo, układ 10100 zawierający 4 bramki NOR z obciążeniami 50 n do - 2 V ma łączną moc strat równą typowo P = UEE I EE,,.+ 4P 0 = 5.2 V· · 21 mA+4 · 15mW = 169 mW, gdzie P0 jest mocą strat tranzystorów wyjściowych (por. tabl. 7.3). Przy montażu tego układu na płytce drukowanej, bez chłodzenia wymuszonego i przy T. = + 25°C, otrzymuje się zgodnie z wzorem (5.1) zaledwie 1j = 25 + 0.169 X 100 = 42°C przy założeniu reśzystancji termicznej O;. = I00°C/W dla obudowy plastykowej. Przy maksymalnej temperaturze otoczenia T. = + 85°C otrzym ujemy 1j = 102°C < 7Jm„· Ponieważ jednak układy z rodzin lOK i IOH nie są kompensowane temperaturowo (co wpływa bardzo negatywnie na margines zakłóceń), należy unikać w systemie zbyt dużych różnic temperatury takich współpracuj ących układów. Dlatego zaleca się stosowanie chłodzenia wymuszonego do rozpraszania ciepła z większych płytek drukowanych. 336 7.3. UKt.AOY ECL Układy z rodziny IOOK mają znacznie większą moc strat niż układy z rodzin !OK i !OH, i dlatego przy ich stosowaniu warunki chłodzenia są ostrzejsze. Układy sprzęgające ECLfTTL Łączenie układów ECL z układami TTL wymaga stosowania odpowiednich konwerterów. Układy takie są wytwarzane jako scalone, np. układ 10124 zawiera 4 konwertery TTL/ECL, a układ 10125 zawiera 4 konwertery ECL/TTL. Typowy czas propagacji tych układów wynosi ok. 5 ns. Układ 10124 (rys. 7.6la) ma wejście strobujące Gł, które umożliwia blokowanie wszystkich czterech translatorów TTL/ECL poziomem L (TTL). Translatory mają wyjścia komplementarne, co może być wykorzystywane do sterowania bezpośrednio różnicową linią transmisyjną, np. współ­ krętną. W tym przypadku, na końcu linii są przyłączane odbiorniki różni­ cowe ECL. Translatory ECL(ITL z układu 10125 (rys. 7.6lb) mają wejścia różnicowe i mogą być wykorzystane również jako odbiorniki sygnałów różnicowych, a 6 5 b 1012• tl 2 TIL/ECl <::< 1 ~ 4 10 c 12 13 UREF 13 4 5 10 15 14 14 11 I ECL/TTL 11 1 3 15 12 7 10125 3 2 7 6 11Ueel uoc=•sv l/4 10 125 ECL/ TTL --łF. - -' !). lnF 56 510.!l. lkll. u„= -5. 2V Rys. 7.61. Scalone 1tanslatory poziomów logicznych i) symbol graftetny t~nslatora TTL/OCL typu 10124 (Philips), b) S)'mbol grafiany 1ramlatota ECl.fITL 1ypu 10125 (Philips), c) J.ail0$0wanle ukl~ u 1012S do 1rarulacji swałów ECL w stalldardzie masy na S)'gn.ały 'ITL 337 7, 8U00WA I CHARAKTERYSTYKI CYFROWYCH UKŁAOOW SCALONYCH przesyłanych liniami symetrycznymi. Przy translacji sygnałów nieróżnicowych jedno wejście translatora przyłącza się zewnętrznie do wyprowadzonego na osobną końcówkę napięcia U 88 = - 1.3 V. Sposób wykorzystania translatorów z układu 10125 do konwersji sygnałów nieróżnicowych ECL w standardzie masy na sygnały TTL pokazano na rys. 7.6tc. Do translacji sygnałów PECL{ ITL i odwrotnie również służą specjalizowane układy (np. układ EL90 (Motorola) zawiera trzy translatory ECL/ PECL, układ EL91 zawiera trzy translatory PECL/ ECL). Przy translacji pojedynczych sygnałów stosowanie układów zawierających kilka translatorów jest nieuzasadnione. Można wtedy wykorzystać translatory dyskretne (rezystorowo-tranzystorowe), opisane w poprzednich wydaniach tej książki. Pojedyncze, szybkie translatory TTL/ PECL i PECL/TTL zawarte są w miniaturowych układach odpowiednio ELT20 i ELT21. UKŁADY Zależnie MOS 7 .4 od typu przewodnictwa kanału w strukturach polowych, układy MOS dzieli się na dwie podklasy: PMOS i NMOS. Technologia wytwarzania układów NMOS jest trudniejsza. Dlatego najpierw opracowano i upowszechniono układy PMOS. Dopiero później zaczęto produkować seryjnie układy NMOS, które zapewniają większą szybkość działania, większą gęstość integracji i kompatybilność współpracy z układami TTL. Nin iejszy rozdział jest poświęcony układom MOS z tranzystorami o jednym typie przewodnictwa, w zasadzie bez wyróżniania konkretnego typu. Symbole tranzystorów MOS były przedstawione na rys. 6.20. Asortyment układów MOS zawiera niemal wyłącznie układy wielkiej i bardzo wielkiej skali integracji. Większość układów MOS to pamięci i układy mikroprocesorowe. Cyfrowe układy MOS są realizowane schematowo w dwojaki sposób: jako układy statyczne lub dynamiczne. Układy statyczne stanowią pod względem budowy logicznej dość wierne odbicia analogicznych układów bipolarnych. Wadami tej konfiguracji są relatywnie duża moc strat i duża złożoność układowa. Układy dynamiczne umożliwiają redukcję tych wad, jednak wymagają odpowiedniej synchronizacji pracy. Do układów MOS zalicza się w zasadzie również układy z tranzystorami komplementarnymi PMOS i NMOS, określane skrótowo jako układy komplementarne MOS (CMOS - Complementary MOS). Z uwagi na wiele różnic między układami CMOS i „klasycznymi" układami MOS (w konfiguracjach scbematowych, skali integracji i asortymencie układowym), układy CMOS zostały wydzielone w niniejszej książce jako osobna klasa układów cyfrowych (p. 7.5). 338 7.4. UKŁADY MOS Układy statyczne 7.4.1 Najprostszym statycznym układem logicznym, który jest również podstawą realizacji bardziej złożonych funkcji logicznych, jest inwerter (rys. 7.62a). Tranzystor T0 , który zapewnia inwersję sygnału wejściowego, jest tranzystorem z kanałem wzbogacanym. Zmiana napięcia wyjściowego może nastąpić tylko przy IU 11> 1uę1, gdzie uę jest napięciem progowym tranzystora T0 . Pojemność CLjest sumą pojemności pasożytniczych, związanych z przyłączonymi do wyjścia innymi układami, drenem tranzystora T0 i obciążeniem L. a lloo b u. Uoo c ------, UoH l I I .....-9horakterystyko idealna I I L I I I - - - - -ouo I u 0 , I Charakterystyko r zeczywista I - - -L ___ l _ ___-::: __ __ I I Uoo/2 Rys. 7.6Z. Inwerter statyczny MOS ł) $Cłiemat, b) chatakteryst)'ka pntjściowa, c) obcią.Unie w pos1aci 11:u 11.ys1ora „fOS 2 kanarem -.:ub<>Zanym Najprostsze obciążenie w postaci rezystora dyfuzyjnego w praktyce nie jest stosowane, gdyż do realizacji rezystancji o wartości 20 + 100 kQ musiałaby być użyta bardzo duża powierzchnia kostki półprzewodnikowej. Nie jest to do przyjęcia zarówno z punktu widzenia oszczędności miejsca, jak i z uwagi na zjawiska pasożytnicze (rozłożona pojemność ścieżki rezystorowej). Często natomiast stosuje się wysokooporowe, miniaturowe rezystory polikrzemowe, zwłaszcza w układach pamięci NMOS i CMOS. Jako obciążenia nieliniowe z reguły stosuje się tranzystory MOS. Obciążeniem może być tranzystor MOS z kanałem wzbogacanym (pracujący w trybie nasycenia. lub nienasycenia), lecz największą stromość charakterystyki przejściowej inwertera (rys. 7.62b) zapewnia tranzystor TL z kanałem zubożanym, pracujący jako źródło prądowe (rys. 7.62c). Jako obciążenie może być również zastosowany tranzystor PMOS z bramką trwale połączoną z masą, pracujący w trybie nienasycenia. Taką konfigurację określa się jako pseudo-N MOS. Jeżeli zasilające przyjmiemy, że tranzystory inwertera są typu N MOS, to U 00 jest dodatnie. 339 napięcie 7. euoow... I CHllAAICTEAYSTYKI CYFROWVCH UKl.ADOW SCALONYCH Na rysunku 7.63 zilustrowano działanie inwertera z rys. 7.62 podczas Rodzina charakterystyk prądowo-napięciowych, rozpoczynają­ cych się od początku układu współrzędnych, dotyczy tranzystora wejściowego. Linia kropkowana jest charakterystyką prądowo-napięciową tranzystora obciążającego, przywiązaną w postaci zwierciadlanej do punktu A 1 (U 00). przełączania. O 10 ~--r--- u, t ····„„. 'Ua. . Uo A Uoo ,l l\io"Uo •I Uos ~ b Uo UQoł• Uoo ---~ Rys. 7.63 u., - - - - - t --- - u~ 340 Charakterystyki _:-:_:_=------- prądowo-napi~owe, ilustrująoc dzialaoie U, inwenera z rys. 7.62 7.4. UKlAOY MOS Przyjmując, że początkowo napięcie wejściowe jest U n < uę, napięcie U0 będzie równe U 08 = U 00. Przy skokowej zmianie napięcia wejściowego do wartości U IH punkt pracy przemieszcza się skokowo (wskutek włączenia tranzystora wejściowego) z punktu A 1 do punktu A 2• Potem następuje proces rozładowania pojemności CL od napięcia U 08 do U01, , kończący się w punkcie A3 . Przy następnej skokowej zmianie napięcia wejściowego z wartości UIH na Un punkt pracy przemieszcza się z A 3 do A 1 , przy czym następuje ładowanie pojemności CL od napięcia U 01, do U 08. W ten sposób wyznaczona jest dynamiczna trajektoria punktu pracy układu (A 1 -A 2 -A 3 -A 1 ). Wartość prądu płynącego przez Cdest określona przez wysokość trajektorii dynamicznej. Przy wystarczająco powolnych zmianach napięcia wejściowego, gdy procesy przejściowe można pominąć, punkt pracy przemieszcza się tylko po statycznej charakterystyce obciążenia (A 1 - A 3 - AJ Zauważmy, że różnica dotyczy tylko procesu włączenia, gdy Un -+ U IH i U011 -+ U ov Odcięta punktu bieżącego A wyznacza stosunek podziału napięcia U 00 między tranzystor wejściowy (U0 ) i obciążenie (U 00 - U 0 ). Stromość spadku charakterystyki przejściowej inwertera (rys. 7.62b) oraz wartość napięcia UOL zależą w decydującym stopniu od stosunku rezystancji obciążenia do rezystancji przewodzącego tranzystora wejściowego. Należy przy tym zwrócić uwagę, że stromość charakterystyki zależy od stosunku rezystancji dynamicznych (przyrostowych), a wartość napięcia U OL od stosunku rezystancji statycznych (ustalając się wówczas, gdy przy określonym napięciu U111 przez tranzystor wejściowy i tranzystor obciążenia płynie jednakowy prąd). W każdym ustalonym punkcie pracy (a więc również przy U 0 = U 0 J inwerter można sobie wyobrazić jako dwurezystorowy dzielnik napięcia (przy czym rezystory te są nieliniowe). Ponieważ napięcie U OL zależy od stosunku tych rezystorów przy U 1 = U 18, nazwano układy wykazujące tę właściwość stosunkowymi (ratioed), „wspólczynnikowymi" lub „podziało­ wymi". Dla zwiększenia marginesu zakłóceń jest pożądane osiągnięcie minimalnej wartości U OL• czyli maksymalnego stosunku tych rezystancji. Osiąga się to przez odpowiednie projektowanie geometrii kanałów tranzystorów wejściowego i obciążającego. Ponieważ rezystancja kanału tranzystora MOS jest wprost proporcjonalna do stosunku L/Z (L jest długością kanału, z jego szerokością), zapewnienie odpowiednio małego napięcia U 01, wymaga spełnienia relacji (L/ Z)„. « (L/Z).~, w odniesieniu do obydwu tranzystorów inwertera. Tranzystory obciążające powinny mieć zatem relatywnie „długi" kanał (niekiedy znajduje to wyraz w ich nazewnictwie). Układy najprostszych statycznych bramek logicznych są pokazane na rys. 7.64. Na podstawie pokazanych prostych konfiguracji bramek można realizować bardziej złożone kombinacyjne układy logiczne oraz przerzutniki. Układ przerzutnika statycznego SR jest pokazany na rys. 7.65. W podobny sposób 341 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKlAOÓW SCALONYCH a Rys. 7.64. Układy najprostszych bramek logicznych MOS a) bramka NANO, b) bramka NO!l ~---+---<"O .__..._.~R Rys. 7.65 Statyczny przerzutnik SR z tranzystorami MOS buduje się inne przerzutniki oraz bardziej złożone układy sekwencyjne. W praktyce jednak bardziej złożone układy logiczne MOS realizuje się zwykle w technice dynamicznej. Zapewnia ona mniejszą moc strat, prostszą budowę schematową i związaną z tym mniejszą powierzchnię na kostce półprzewodnikowej. Ułatwia to zwiększenie stopnia scalenia układów oraz większą szybkość działania. Układy dynamiczne 7.4.2 Rezystancja wejściowa bramki i rezystancja dren-źródło w nieprzewodzącym tranzystorze MOS mają bardzo duże wartości, rzędu odpowiednio 10' 2 i 109 n. Nawet niewielkie pojemności, które zależą od fizycznej struktury tranzystora i są w przybliżeniu określane jako skupione pojemności związane z końcówkami, mogą w tych warunkach powodować wytworzenie relatywnie dużych stałych czasowych (np. I pF · 109 n = I ms). Magazynowanie ładunku z taką stałą czasową umożliwia próbkowanie napięcia na pojemności w mniejszych odstępach czasu (np. co l µs) do wykonywania wielu operacji logicznych. Podczas próbkowania napięcie na pojemności nie musi być podtrzymywane w sposób wymagający pobierania energii ze źródła zasilania układu. Koncepcja ta umożliwia zatem obniżenie mocy strat układu oraz bardzo prostą realizację układów pamięciowych. Ponadto jest możliwe skonstruowanie układów, w których wartość napięcia wyjściowego U OL nie zależy od stosunku rezystancji obciążenia do rezystancji przewodzącego kanału tranzystora. Układy te są określane jako bezstosunkowe (ratioless) lub „niepodziałowe". 342 7,4, UKt.AOY MOS Układy dynamiczne MOS realizują swe funkcje wykorzystując następujące, zasadnicze operacje: próbkowanie (realizowane przez kluczowanie, tzn. włączanie i wyłączanie obciążenia) i pamiętanie informacji. Operacje te są wykonywane w układzie synchronicznie z dostarczanymi z zewnątrz wielofazowymi impulsami zegarowymi. W większości układów dynamicznych MOS stosuje się synchronizację dwufazową łub czterofazową. Prosty układ bezstosunkowego inwertera dwufazowego przedstawiono na rys. 7.66a. Symbolami <P 1 i <1> 2 oznaczono dwa synchronizujące sygnały zegarowe o okresie T., przesunięte w fazie i nie pokrywające się wzajemnie w czasie (rys. 7.66b). Sygnał <1> 1 służy do chwilowego włączania tranzystora T2, a sygnał <1> 2 do chwilowego włączania tranzystora T3, przeznaczonego do transmisji napięcia z pojemności C 1 do C2, przy czym C2 « C 1 . Działanie układu jest następujące. W chwili t 0 następuje zmiana napięcia U1 z U m na U n i jednocześnie włączenie obciążenia (T2) zgodnie z <P 1. Następuje ładowanie pojemności C 1 prądem przepływającym przez T2 i napięcie Uc 1 ustala się na poziomie U DD· W momencie t 1 tranzystor T2 zostaje wyłączony. Następnie Uci zostaje zapamiętane do momentu 12, gdy otwiera się tranzystor transmisyjny T3, powodując przelanie części ładunku z C 1 do C2 i związane z tym zmniejszenie Uci· W chwili t 3 tranzystor T3 zostaje wyłączony i napięcie Uc 2 zostaje zapamiętane w C2 • W chwili t 4 rozpoczyna się podobna operacja, lecz związana z przejściem U1 z poziomu L na H. W czasie między t4 i t 5 przewodzą jednocześnie obydwa tranzystory Tl i T2 (istnieją in.ne układy inwerterów, w których takie zjawisko nie występuje), a napięcie Uci ustala się na poziomie określonym przez stosunek repre· zentowanych przez nie rezystancji statycznych. W chwili I 5 obciążenie zostaje wyłączone, co umożliwia dalsze rozładowanie C 1 do poziomu L. W chwili t 6 zostaje włączony tranzystor transmisyjny, co umożliwia ustalenie napięcia Uc 2 na poziomie równym O. Jak widać, układ pobiera prąd zasilania tylko krótko przy ładowaniu Cl (chwila t 0 ) i w czasie, gdy jednocześnie przewodzą obydwa tranzystory Tl i T2 (między 14 i t 5 ). Oznacza to znaczne zmniejszenie mocy strat w stosunku do układów statycznych. Okres T. sygnału <1> 1 (równy okresowi 1'2 ) odpowiada ,jednotaktowemu" opóźnieniu propagacji przy synchronizowanym przesuwie danych cyfrowych. Ponieważ opóźnienie pokazanego inwertera jest równe „połowie taktu", zatem przyłączenie do wyjścia układu M następnego takiego samego inwertera S (lecz z tranzystorem obciążającym sterowanym zegarem 1'2 i tranzystorem transmisyjnym sterowanym zegarem <P1 , jak pokazano na rys. 7.66a), umożliwia osiągnięcie opóźnienia równego T., czyli przesuwu jednego bitu danych wejś­ ciowych, bez inwersji logicznej, w czasie r_. Budowa inwertera dynamicznego typu stosunkowego jest pokazana na rys. 7.67a. Pierwszy z nich, synchronizowany przez <P 1 , spełnia rolę sekcji 343 7. 8U00WA I CHARAKTERYSTYKI CYFROWYCH U Kt.AOOW SCALONYCH a . 1 i~~~~~~;-1----: I I T2 I I -- ~ „ I" "~,. . . .~1~~ I I L __ ___ _ c!.'.':.c!. ___ J M I" I~ L_ --~=_s _____ JI S Rys. 7.66. Dynamiczny inwerter dwufawwy typu bczstosunkowego a) budowa ł• polu ~ym liriił prm-yqft4J. bi pndwgi cr:uo'ft M (MASTER), podobnie jak w statycznych przenutnikach wyzwalanych impulsem. Drugi spełnia analogicznie rolę sekcji S (SLA VE), odwracając stany wyjściowe sekcji M. Aby maksymalna wartość napięcia na pojemnościach pamiętających była równa U DD> amplituda sygnałów zegarowych <Il 1 i <ll 2 musi być większa od (U 00 +UT), gdzie UT jest największym napięciem progowym w grupie tranzystorów T2, T3, T5 i T6. Wartość napięcia wyjściowego UoLmu 344 7.4. UKlADY MOS o , -- - - - --, °'l 100 ( I 00 I --~'I I n c,I i IL l ~ 1 ~ ~6 i : I I I °'" I 1·: 11 ____ __ ___ J L - - - - - - - __ J M S I b Pamiętanie w C1 Odświeżanie I 'r. ~, Fb.mietoniew C11 I T-.!:: ~„t Fl:J::m:'.::ię~to=n= 'e=lw:C:'.'::t I I lloó~ U I Uc;U01---,..._-J I - Pa miętanie w C1 ·lJoHmin Ol.mox-- I Pomietonie wC2 Pomtetonie w C1 u.,---.....t::====~v Llo1.mo•-f' - - - - - - - - I OdSwieżorue Rys. 7.67. Dynamiczny inwerter dwufazowy lypu stosunkowego a) budowa (v.· polu obw~ooym zależy linią pt7.trywaną). b) przebiegi c.:iaso~ od stosunku rezystancji kanałów przewodzących tranzystorów Tl, T2 (i analogicznie T4, T5 w drugim inwerterze). Oznacza to konieczność odpowiedniego projektowania geometrii tych tranzystorów. Jak widać z rys. 7.67b, przebieg U 02 jest opóźniony w stosunku do U 1 o czas równy jednemu okresowi zegarowemu T,,, co odpowiada jednotaktowemu opóźnieniu jednego bitu przy przesuwie szeregowym. Przy przesuwie jednakowych stanów logicznych występuje konieczność odświeżania ładunku w pojemnościach pamiętających (przy przesuwie poziomów L - w C 1 i przy przesuwie poziomów H - w C2 ). To ogranicza minimalną częstotliwość pracy. Szybkość działania układu jest ograniczona przez czas trwania procesu przejściowego, związanego z .ładowaniem pojemności C 1 i C2 . Sygnał <1> 1 musi być wystarczająco długi do naładowania C 1, a sygnał <1> 2 musi być wystarczająco długo do naładowania C2 • Czas trwania procesu ładowania w każdym inwerterze zależy głównie od rezystancji obciążenia (T2 lub T5} i pojemności pamiętających (odpowiednio C 1 lub C 2). Czas trwania procesu rozładowania jest funkcją 345 1 BUDOWA I CHARAKTERYSTYKI CYFROWYCH Utc:lAOOW SCALONYCH rezystancji przewodzących tranzystorów (Tl lub T4) i pojemności (odpowiednio C 1 lub CJ. Ponieważ rezystancje przewodzących tranzystorów wejściowych Tl i T4 muszą być znacznie mniejsze od rezystancj i obciążeń (odpowiednio T2 i T5) aby zapewnić wystarczająco małą wartość napięcia U OLmu• czas ładowania jest znacznie dłuższy od czasu rozładowania. Opisane układy par inwerterów M - S stanowią klasyczne, sześciotran­ zystorowe komórki dynamicznych rejestrów przesuwających MOS LSl. Mniejsza, pięciotranzystorowa komórka rejestru jest omówiona w (1). Tamże s11 przedstawione układy dynamiczne MOS z synchronizacją trzyfazową i czterofazową oraz układy statyczno-dynamiczne. W podobny sposób jak inwertery dynamiczne są budowane bardziej złożone układy kombinacyjne. Na rys. 7.68 pokazano przykłady budowy bramek dynamicznych bezstosunkowych typu NAND i NOR. Ogólne zasady budowy dynamicznych układów MOS są przedstawione na rys. 7.69. DJ a .,<>-j l c, b Y•'X'i"R"i c, RyJ. 7.68. Oynamicz.oe bramki MOS typu bczs1osunk owego • ) NAND• .,_ NOM. a b Uklod logiczny statyczny RyJ. 7.69 Zloione układy dynamicwe M OS rypu bc7stosunkowego a).....S.budoo-y. b) ...,t lad 346 c, l c, I I .,<>-j ~J' o, I I Y •~ ' 7.5. U KV.OY CMOS UKŁADY CMOS Układy komplementarne CMOS stanowią specyficzną podklasę układów 7.5 MOS. one charakterystyczną techniką układową, wykorzystującą komplementarne tranzystory PMOS i NMOS do budowy układów cyfrowych bez jakichkolwiek elementów rezystorowych. Układy CMOS wytwarza się w specjalnym procesie technologicznym, który umożliwia wykonywanie komplementarnych tranzystorów MOS we wspólnej strukturze scalonej (p. 6.6). Układy CMOS stopniowo wypierają układy TTL i stanowią najbardziej perspektywiczną technologię układów cyfrowych (p. rys. 5.1). Najwa7.niejsze zalety układów CMOS to bardzo ma/a moc strat w stanie statycznym i przy małych częstotliwościach, oraz możliwość pracy przy ob11iżo11ym napięciu zasilania, co umożliwia znacznie zmniejszyć moc strat przy większych częstot­ liwościach. Układy CMOS były początkowo wykorzystywane przy napięciu zasilania równym 5 V ±0.5 V, aby zapewnić pełną kompatybilność zasilania z układami TTL. Aby obniżyć moc strat przy wyższych częstotliwościach, w najnowszych urlądzeniach z układami CMOS stosuje się obniżone napięcie zasilania równe 3.3 V ± 0.3 V. Napięcie to stanowi nowy standard zasilania cyfrowych układów scalonych (norma J EDEC 8.J). Do takiego napięcia zasilania są przystosowane również najnowsze mikroprocesory, pamięci, „niskonapięcio­ we" rodziny układów SSI/MSI i układy specjalizowane. Układy trzywoltowe są wytwarzane submikronowymi technologiami, umożliwiającymi znaczne zmniejszenie geometrii struktur scalonych w wyniku przeskalowania struktur pięcio­ woltowych. W rezultacie układy trzywoltowe osiągają większą szybkość działa­ nia niż układy pięciowoltowe. Ponieważ moc strat układów CMOS zależy od kwadratu napięcia zasilającego (p. 7.5.1.3), więc w układach trzywoltowych uzyskuje się zmniejszenie mocy strat w stosunku 52/ 3.3 2 ::::: 2.3, co oznacza istotną oszczędność energii zasilania i energii potrzebnej do ch łodzenia, a także - w urządzeniach przenośnych, zasilanych bateriami - większą wygodę użyt­ kowania. Inne korzyści wynikające z obniżonego zasilania to niższy poziom generowanych zakłóceń elektrycznych i elektromagnetycznych. Uzyskuje się również lepszą niezawodność pracy, ponieważ przy niższym napięciu zasilania łatwiej wyeliminować erekt generacji gorących nośników w strukturach submikronowych (por. rys. 6.38), który może prowadzić do podwyższenia napięć progowych, uniemożliwiając działanie układu. Także prawdopodobieństwo przebicia tlenku bramkowego jest niższe przy obniżonym napięciu zasilania. Układy CMOS można ogólnie podzielić na cztery główne kategorie: 1. Układy do zastosowań masowych, o niewielkiej szybkości działania. Typowymi przykładami są układy zegarkowe i proste, nieprogramowane układy kalkulatorowe. Napięcie zasilania tych układów wynosi typowo I + 1.5 V. Układy te nie są objęte ogólnie przyjętą standaryzację typów. Wyróżniają się 347 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH U KlAOOW SCALONYCH 2. Układy programowalne (takie jak uklady PLO i FPGA) i specjalizowane (ASIC - Application-Specific Integrated Circuits). Uklady te są omówione w rozdziale 9. 3. Uniwersalne układy cyfrowe LSI i VLSI, głównie uklady mikroprocesorowe (rozdz. IO) i pamięciowe (p. 8.4}. 4. Uniwersalne układy cyfrowe SSI i MSI, stanowiące funkcjonalne odpowiedniki ukladów TrL. Typowe napięcie zasilające, równe 5 V, mają cztery rodziny SSI/ MSI z grupy 4: 4000B, HC, AHC i AC (tabl. 7.4). Pierwszą byla rodzina ukladów niebuforowanych 4000A, opracowana w firmie RCA na początku lat siedemdziesiątych, przy zastosowaniu technologii 9 µm i bramek metalowych. Rodzina ta została następnie zastąpiona przez ulepszoną rodzinę uklad ów buforowanych 4000B, wytwarzanej w technologii bramek krzemowych 6 µm (np. rodzina HE4000B firmy Philips). Charakteryzuje się ona szczególnie dużym zakresem napięcia zasilającego, lecz niewielką szybkością dzialania. Uklady z tej rodziny nie są zgodne końcówkowo i oznaczeniowo z ukladami TIL. Pełną zgodność końcówkową, oznączeniową i funkcjonalną z układami TIL mają układy CMOS z szybkich rodzin HC (High-speed CMOS), AHC PORÓWNANIE PARAMETRÓW U KŁADÓW TT~ I CMOS (WARTOŚCI TYPOWE PRZY Uoc • 5V, C4 • j()pf i ~ p r.- „25~c. CMOS TTL LS ALS F Napięcie zasilające Ucc (V) St S'I'. 5 ± 10% 5±5% Mocstra1 na bramk~ w sta· nic s1a1ycznym (mW) I 2 5.5 O.as propagacji •, ,,,. (ns) przy Ci = SO pF 9 5 3.5 Maksymalna ~1olliwość pracy /_(MHz) ISO 33 50 Prądy wyjściowe (mA): 0.4 0.4 I l oumu. przy Uonmin P,„ l o1.m11.- przy UoLrn.u Tablica 7.4 8 8 20 20 20 200 0.4 600 0.3 40008 HC AHC AC FACT 3 18 2-6 2- S.S 2 6 0.001 0.0025 0.0025 0.0025 125 8 5.2 5.5 4 SO 115 160 4 mA 2.1 mA 8 mA 24 mA przy 2.5V przy4.5V przy 4.5 V przy 3.8V 0.44mA 4mA 8mA 24mA prą0.4V przy0.4V pny0.4V przy 0.4V Prądy wejściowe (µA~ /IH~ 1„.... Margines 400 zaklóreń M ...[V) 0.3 20 O.I O.I 0.3 Ua: l I l I 028 Vtt cqk I Z.SV pnJ Vtt • • JV OllU l ,AV 348 I I pn) U«• S..OY 7.5. U KŁADY CM OS (Advanced HC) i AC (Advanced CMOS). Popularna rodzina HC wytwarzana jest w technologii 3 µmi zawiera układy kompatybilne oznaczeniowo i funkcjonalnie z układami z rodziny LS TTL. Rodzina AC jest wytwarzana w' technologii I µm i była najpierw wprowadzona z oznaczeniem firmowym FACT (Fairchild Advanced CMOS Technology). Jale widać z tabl. 7.4, układy CMOS są dobrymi zamiennikami ukJadów TIL. Poza wymienionymi zaletami, układy CMOS mogą pracować w szerszym zakresie temperatury otoczenia, a także zapewniają lepsze możliwości sterowania dużych obciążeń. Układy z rodziny AC umożliwiają bezpośrednie sterowanie obciążeń 50-omowycb. Układy z podanych „pięciowoltowych" rodzin mogą również pracować przy obniżonym napięciu zasilania, lecz wtedy ich szybkość pracy znacznie spada. Przykładowo, typowe opóźnienie bramki 74AHCOO wynosi 5.2 os przy 5 V zasilania i 8 ns przy 3.3 V. Ponadto, układy pięciowoltowc zasilane napięciem 3.3 V nie mogą być łączone z układami zasilanymi napięciem 5 V w jednym urządzeniu, z uwagi na diod y złączowe na wejściach i wyjściach. UkJady trzywoltowe są natomiast tak projektowane, aby mogły współpracować z układami pięciowoltowymi. Zestawienie parametrów układów CMOS z czterech rodzin trzywoltowych przedstawione jest w tabl. 7.5. Rodziny LV (Low Voltage), LVC (LV CMOS) i HLL (High-speed Low-power Low-voltage) są wytwarzane pri.ez firmę Philips i z pewnymi modyfikacjami przez firmę Texas Instruments. Rodzina LVX jest wytwarzana przez firmę Motorola. ZlsTAWlENIE PAL\Ml!n0W UKJ.ADÓW CMOS l ROOZJN O NAPIĘCIU ZASILANIA 3.3V ;tG.lV (WARTOSCI TYPOWI! PRZY Utt: • D V, C• c lOpF; T. • +2"Q Rodzina Parametr Napięcie zasilające U ce (V) 1„„ Czas propagacji (ns) przy CL • SOpF Maksymalna częs1011iwość pracy /_ (MHz) Tablica 7.5 LV LVC HLL LCX 1.0-3.6 1.2- 3.6 1.2- 3.6 2- 3.6 9 4.6 2.1 4.S 70 2SO JSO min. ISO 24/24 0.6 24/24 -40+ +85 - 40 + +85 Prądy wyjściowe (mA ~ loLmufloHlllV. Technologia (µm) Temperatura pracy (' C) Układy z 6/6 24/24 2 0.6 - 40 + + 12S - 40 + +85 rodziny LV zapewniają przy zasilaniu 3.3 V podobne parametry co układy z rodziny HC przy 5 V (tabl. 7.4). Podobnie układy z rodzin LVC i LVX mogą zastąpić układy z rodzin AC i AH C. 349 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKLAOOW SCALONYCH W typowych zastosowaniach komputerowych układy CMOS MS! są często stosowane jako różnego rodzaju bufory magistralowe do mikroprocesorów i pamięci, zazwyczaj o 8- lub 16-bitowym formacie danych. Do szybkich mikroprocesorów i pamięci wymaga się możliwie najszybszych ukladów peryferyjnych. Jedną z takich rodzin układów wielobitowychjest rodzina HLL, której szybkość dzialania jest dwukrotnie większa niż układów z rodziny F TTL. Układy HLL są umieszczane w nietypowych obudowach z kilkoma centrycznie umieszczonymi po obu bokach końcówkami zasilania i masy. W ten sposób osiąga się niższy poziom zakłóceń generowanych przez przełączane układy na szynach zasilających. Obszerne omówienie układów CMOS jest zawarte w [8, 9). Podstawowe układy 7.5.1 CM OS Poniżej będą omówione podstawowe struktury układów CMOS o małym stopniu scalenia. Z podobnych struktur są budowane także liczne układy CMOS MSI i LSI, w których moc strat nie stanowi iakiego czynnika ograniczającego wielkość stopnia scalenia, jak ma to miejsce w układach TIL i ECL. Budowa i właściwości 7 .5.1 .1 Podstawowym ukladem CMOS jest inwerter, składający się z dwóch komplementarnych tranzystorów MOS, połączonych w sposób pokazany na rys. 7.70. W każdym z dwóch możliwych stanów logicznych przewodzi tylko jeden tranzystor układu. Jeśli U1 "" Uss =O, to pnewodzi tranzystor PMOS, a tranzystor NMOS jest odcięty, czyli na wyjściu ustala się napięcie U011 • U00. Jeśli natomiast U o&» to przewodzi tranzystor NMOS i tranzystor PMOS jest odcięty, czyli na wyjściu otrzymuje się napięcie U 0 ,_"" U ss = O. Rezystancje nieprzewodzących kanałów są bardzo duże, rzędu 109 n. Jeszcze większe są rezystancje wejściowe bramek, rzędu 10 12 n. Natomiast rezystancje przewodzą­ cych kanałów są typowo równe 200 + I 000 O, a w najszybszych układach są one około IO-krotnie mniejsze. Moc strat w stan ie statycznym wynika zatem głównie z upływności związanych z elementami pasożytniczymi (por. rys 6.35b). Na rysunku 7.71 przedstawiono przykładową statyczną charakterystykę pnejściową inwertera, którą można podzielić na pięć zakresów, stosownie do różnych trybów pracy tranzystorów. Zakresy te są następujące: u, "" r: o..;; li: Ili: IV: V: u, E; u„". UTN <:;;U , E; U 0 - IUrpl. U0 -IUTPI <:;; U,<:;; U0 + UrN• U 0 + Ur„ E; U 1 E; U 00 - IUTPI• Uoo - IUTPI E; U,~ Uoo· 350 TI Tl TI TI Tl nienasycony, nienasycony, nasycony, nasycony, odcięty, T2 T2 T2 T2 T2 odcięty; nasycony; nasycony; nienasycony; nienasycony; 7 5.. U KŁADY CMOS 11 111 IV V loo 200 µA Uoo-- r _) u, Uss Ur 5 V Rys. 7.71 Cbaralc1erys1yka prttjściowa inwertera CMOS Rys. 7.70. Schemat inwertera C MOS gdzie UTP i Urn są napręcrami progowymi tranzystorów odpowiednio p-kanałowego (Tl) i n-kanałowego (Tl). W zakresie I i II inwerter może być zatem reprezentowany od strony wyjścia przez relatywnie małą rezystancję (R 011 ::::: 200 + 1000 Q) między wyjściem i napięciem zasilającym U DI» W zakresach I V i V podobna rezystancja R0 może być widziana między wyjściem a masą . W zak resie III obydwa tranzystory pracują w trybie nasycenia i rezystancja wyjściowa jest kilkakrotnie większa. Statyczna charakterystyka przejściowa inwertera może być wyrażona analitycznie przy użyciu znanych wzorów określających zależność prądu płyną­ cego przez tranzystor MO S od napięć Un U 65 i U vs· Wartości prądów płynących przez tranzystory inwertera mogą być określone następującymi „ wyrażeniami: tranzystor Tl w zakresie nienasycenia I VI' = - p„ [(U o- U DDl (U, - U oo- U rrl - (U o- U DD) 2/2] tranzystor Tl w zakresie nasycenia i'op = - {l„ (U 1 - U DD - U1"p) 2j 2 tranzystor T2 w zakresie nienasycenia I DN = p„[Uo(U,- Un,) - U~/2] tranzystor T2 w zakresie nasycenia 1'0 N = {J„(U1 - Ur„) 2 /2 przy czym współczynnik w p. 6.3.3. p w odniesieniu do obydwu tranzystorów został określony Charakterystykę przejściową podstawie warunku I'Dr go U" inwertera 351 =- w obszarze III można wyznaczyć na I' 0,~· Stąd otrzymuje się wartość napięcia progowe- 1. BUDOWA I CHAAAKTEAYSTYICI CYFROWYCH UKŁAOOW SCALONYCH W celu uzyskania maksymalnej odporności na zakłócenia wymaga się, aby napięcie UP było możliwie bliskie wartości U0 of2, było możliwie stałe przy zmianach temperatury i miało najmniejszy rozrzut. Wartość UP = U0 of2 ustala się przy projektowaniu inwertera przez odpowiedni dobór Ur"" U TN• Pr i PN· W celu zapewnienia symetrii charakterystyki przejściowej można przyjąć U TN = - U u i PN = Pr· Przy tych samych długościach L kanałów i tych samych jednostkowych pojemnościach C1 izolatora podbramkowego w obydwu tranzys· torach, z równości p„ = Pr wynika warunek Z,= Z.(µJµ,) ~ (2 + 3)Z. Szerokość z, bramki tranzystora PMOS powinna być zatem 2 + 3-krotnie bramki tranzystora NMOS. Oznacza to odpowiednie zwiększenie rozmiarów tranzystora PMOS i zwiększenie powierzchni zajmowanej przez inwerter na kostce krzemowej. W praktyce, gdy UrN <IV r„1 (typowe wartości to U TN = 0.6 V i U TP = - I V), w celu zapewnienia U = U 0 of2 zwiększenia te muszą być jeszcze znaczniejsze. Dryf termiczny napięcia U jest niewielki (rzędu pojedynczych procentów), natomiast rozrzut wielkości U może być znaczący. Ogranicza to wartości gwarantowanych marginesów zakłóceń. Cała charakterystyka przejściowa inwertera może być wyrażona analitycznie w postaci następujących związków, odniesionych do wymienionych pięciu zakresów pracy inwertera: większa od szerokości „ „ „ I: II: Uo =Voo U 0 = U,- Uu+[(U 00 - Uu- U 1) 1 - II I: u,= Ur przy u„-Vr„ ~ U 0 IV: U0 = V: ~ p„ (U 1 - UrH) 1 ]~ fJ „ u„ - Urr U1 - UrN - [(U 1 -Ur~·) 2 - ~: (U 1 -U 00 -Urrl 2]~ U0 = 0 Równania te zapewniają dużą zbieżność z wynikami eksperymentalnymi. Na podstawie uproszczonego modelu inwertera może być również określone jego działanie dynamiczne. Przy pominięciu pojemności pasożyt­ niczych tranzystorów i uwzględnieniu tylko pojedynczej skupionej pojemności CL czas opóźnienia inwertera można określić następująco. Załóżmy, że początkowo na wyjściu inwertera jest poziom H, czyli na pojemności CL jest napięcie U 0 ,,. Napięcie na wejściu inwertera zmienia się w postaci skoku jednostkowego od Odo U 00. Po tej zmianie napięcie wyjściowe 352 7.5. UKŁA DY CMOS najpierw pozostaje równe U DD> gdyż napięcie na kondensatorze nie może się zmieniać w sposób raptowny. A zatem tranzystor TI zostaje odcięty i tranzystor T 2 znajduje się w stanie nasycenia. Kondensator CL rozładowuje się prądem o w przybliżeniu stałej wartości, równej I' DN· Ten proces trwa aż do chwili gdy tranzystor T2 osiągnie próg trybu nienasycenia, czyli gdy U 0 = U 00 - U r N· Cz.as opóźnienia, potrzebny do osiągnięcia tego stanu, jest równy. , i.1 2CLUrn = CLUTN / l DN= fJN (U DD - uT N )2 Dalsze rozładowanie kondensatora C1.. następuje prądem I Dl« Proces ten w przybliżeniu zamodelować przez zastąpienie nieliniowej rezystancji ros tranzystora T2 rezystancją liniową można Ro= (Uoo - UrNl f l'oN i wówczas rozładowanie kondensatora obwodu RC: można opisać typowym wzorem dla U 0 (t) = (U 00 - U r N) exp[-(t-i.1) / (R0 CL)] Z warunku U0 (tr 8J = U1)/)/2 można obliczyć trnL = t,, +RoCLln (2(1- UrNI U00)] = = 2-r {UrN f(UDD - UTN) + ln [2(1 - UrNf U oo)]} gdzie CL -r= - - - = - - - {JN(Uoo - UTN) Przy typowych wartościach U TN równych 0.6 """ I.O V można otrzymać przy- bliżony związek "tpffL"' 1.4 1: Na przykład, dla CL = 50 pF, PN = I mA/V2 , U00 = 5 V i UTN = I V można obliczyć -r = 12.5 ns i trHL "' 17.5 ns. W podobny sposób można określić czas opóźnienia tr1n, gdy następuje ładowanie kondensatora CL przez przewodzący tranzystor Tl , a tranzystor T2 jest odcięty. Przy powolnej zmianie napięcia wejściowego u, w zakresach II, III i IV (rys. 7.71) przez obydwa tranzystory inwertera płynie prąd skrośny ze źródła zasilania. Jednak przy szybkim przełączaniu sytuacja wygląda inaczej, zwłaszcza gdy czas trwania zbocza (czyli czas narastania t, łub opadania t1) impulsu wejściowego jest krótszy od analogicznego czasu trwania zbocza impulsu wyjściowego (co może mieć miejsce przy dużej pojemności obciążenia CJ. Jeśli 353 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH U Kł.AOOW SCALONYCH z poziomu H (U 00) na L (U ss = 0), to można przyjąć że pode-Las tej zmiany napięcie U0 jest podtrzymywane niezmiennie na poziomie L, utrzymywanym przez pojemność Cu W tych warunkach przez tranzystor T2 nie płynie żaden prąd, nie ma więc również prądu skrośnego. Podobna sytuacja ma miejsce przy szybkiej zmianie U1 z poziomu L na H. Dynamiczna charakterystyka przejściowa przybiera wtedy postać zbliżoną do kwadratu o bokach równych U00 . W tych warunkach moc strat inwertera CMOS przy przełączaniu zależy wyłącznie od wartości pojemności Cv napięcia U00 i częstotliwości f (p. 7.5.1.3). Specjalne zwiększanie pojemności c„ aby stworzyć opisane warunki jest oczywiście niecelowe, gdyż spowalnia pracę układu i powoduje zwiększenie wtedy napięcie U 1 zmienia się a p x1 ~--------1------<> Uoo ., r-i • • o-- - - --- -----nJ II i p i--, _,L__ __.__ _..._ 9 9u9 ..., y -:. x 1 „x 2 v . „ vXn IN.AND! b ~-~il~-+--Po U.o I x• ., • • Rys. 7.72 x, Podstawowe bramki CMOS o) NOR, b) NAND 354 7.5. UKŁADY CMOS prądu skrośnego w bramkach sterowanych przez wolnozmienne zbocza. W prakdo tego, aby wyrównać czasy przełączeń na wejściach i wyjściach układów. W tych warunkach moc strat, wprowadzana przez prżeJsc1owe prądy skrośne, stanowi zazwyczaj mniej niż 10% całkowitej mocy strat tych układów [10). Elementarne bramki CMOS typu NOR i NAND mają budowę pokazaną na rys. 7.72a, b. Bramka NOR jest budowana przez łączenie szeregowe tranzystorów p-kanałowych i równolegle tranzystorów n-kanałowych, natomiast w bramce NAND proces łączenia jest odwrotny. Bramki tego rodzaju określa się jako nie buforowane. Były one wytwarzane w łatach siedemdziesiątych w ramach podstawowej, nie buforowanej serii 4000A wprowadzonej przez firmę RCA. Wadą bramek nie buforowanych była zależność wielkości napięcia progowego bramki od liczby użytych do sterowania wejść bramki, co pogarszało margines zakłóceń. Drugą wadą układów nie buforowanych była silna zależność czasu propagacji od stromości zboczy sygnału wejściowego. W związku z tym zostały wprowadzone ulepszone, buforowane układy CMOS. Wymienione wady układów nie buforowanych zostały usunięte przez wprowadzenie do układów bramkowych dodatkowych inwerterów, pełniących funkcję buforów wyostrzających charakterystyki przejściowe (dzięki dodatkowemu wzmocnieniu). Ulepszenie to wywołuje co prawda wydłużenie czasów propagacji, ale przy wprowadzeniu nowszych, szybszych technologii ten szkodliwy efekt jest niewielki. W taki sposób są realizowane wszystkie układy CM OS SSl/MSI opracowane w latach osiemdziesiątych (tabl. 7.4). Układy z buforowanej serii 4000 oznacza się dodatkową literą B (bujjered), np. 400ł B. Nieliczne układy nie buforowane oznacza się literami U lub UB (unbuffered). Buforowanie może być praktycznie realizowane różnymi sposobami. Generalnie istnieją trzy takie sposoby w odniesieniu do podstawowych bramek SSI: tyce dąży się buforowanie na wyjściu, buforowanie na wejściach, buforowanie na wyjściu i na wejściach. Buforowanie na wyjściu przedstawiono na rys. 7.73. Polega ono na dodaniu na wyjściu podstawowego układu bramki dwóch szeregowo połączo­ nych inwerterów, pełniących wspólnie funkcję wzmacniacza nieodwracającego. W rezultacie otrzymuje się wyraźnie wyostrzone charakterystyki przejściowe (rys. 7.73c) oraz lepsze charakterystyki dynamiczne (rys. 7.73d). Należy jednak dodać, że układy buforowane z rodziny HE4000B firmy Philips są wytwarzane w unowocześnionej technologii 6 µm, z boc-.:ną izolacją tlenkową (LOCMOS) i bramkami krzemowymi. 355 7. BUDOWA I CHARAKT ERYSTYKI CYFROWYCH UKŁADÓW SCALONYCH Q c b y =x,-;-x; Bramko niebu forowano Bromko buforowano OL__..l)...J..J,......L...:::::..~-U~1_, O 5 10 V 15 d 6~~~~~~~~~~~~~~~ U0 ,b rom ko bufor owano V U11 U0 4 2 0.4 Rys. 7.73. Bufo ro wanie na 0.8 1.0 Czas l}'sl 0.6 wyjściu, na 0.2 przyk ładzie dwuwejściowej 0.4 bramki NOR typu HEF 40018 firmy Philips a) sdiemat dckU)'CUly (gwiazdka 0'1.nac:ia W)jście analogicznaj bramki nie bufór<>wanej). b) róv.·noważny Khem.<111 logiczny, c) cha~ktcrystyki pnx:j kło,,.'t, d) przebiegi v.'}'jści ov.-e przy sterowa.niu sygnalatni o róf n.ej s.t.i<>rn<>ści ibc>i.'ty (().1 J.1$ i I s) Buforowanie na wejściach stosuje się do wyostrzania sygnałów wejś­ ciowych. Zazwyczaj jest ono łączone z buforowaniem na wyjściu. Przykładem może być budowa bramki CD4001B firmy RCA, pokazana na rys. 7.74. W tym 356 7.5. UKŁADY CMOS a Uoo u,,=o b x, - Rys. 7.74. Buforowanie na wejściach i wyjści u na przykładzie bramki NOR typu CD4001B firm y RCA dwuwejści owej a) ~llf4l ~l&tryNny, b) schemat loglc:nJ' przypadku bramką podstawową jest bramka NAND z buforowanymi inwersyjnie obydwoma wejściami i wyjściem. Układ zawiera jeden inwerter więcej w porównaniu z układem poprzednim (rys. 7.73a), lecz liczba poziomów inwersji pozostaje ta sama (rys. 7.73b). Ten sposób buforowania zapewnia nieco lepszą odporność na zakłócenia niż tylko buforowanie na wyjściu. Układy CMOS z rodzin szybkich (HC, AHC AC), kompatybilnych z układami TTL, są generalnie wytwarzane jako buforowane, lecz w dwóch zasadniczych odmianach. Pierwsza z nich cechuje się wejściowym napięciem progowym UP leżącym w pobl i żu wartości UDD/ 2. Opisane powyżej struktury buforowane należą właśnie do tej grupy układów CMOS, przeznaczonych do sterowania przez układy z tej samej grupy. Aby umożliwić bezpośrednie sterowanie układów CMOS przez ukJady TTL, jest wytwarzana druga grupa układów CMOS, których wejściowe napięcie progowe jest ustalone na poziom ie TTL-owskim, czyli ok. 1.4 V. Łatwo zauważyć, że łącząc wyjście układu LS TTL z wejściem układu CMOS z pierwszej grupy nie można zapewnić gwarantowanej poprawnej pracy przy poziomie H, gdyż U oH m;n (LS TTL) = 2.5 -7- 2.7 V, a napięcie prngowe Up (CMOS}= 5/ 2 = 2.5 V. Dlatego układy CMOS z TTL-owskim napięciem progowym są na wejściach wyposażone w specjalne 357 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKŁADÓW SCALONYCH O Układ zobezpieczojqcy pr zed uszkodzeniami pr zebiciowymi , _______ )_.., I I I 02 DJ P2 I I I . I I Pl i . Wejscie I -100 ll 170 ll IiR•Z_YSłor pollkrzemowy 01 I ._..__ Oo uk ład u t09iczne90 '11 N2 I L________'-_- _-:J--.----<'-- - -- -+----<o Uss =O b s V u. 4 l 74HCT 74HC 2 1 o u, 2 l 4 V S Rys. 7.75. Bufor wej śdowy ukladów 74HCT (Philips) a) $Chcmat. b) porównanie cłtarakterystyk pmjścitH'')'ch bufory obniżające napięcie progowe (rys. 7.75). Układy te są zazwyczaj oznaczane dodatkową literą T w zapisie typu, np. 74HCTOO. Jak widać z rys. 7.75, dioda D3 obniża napięcie zasilania pierwszego inwertera. Gdy napięcie wejściowe jest równe O (na poziomie L), to napięcie wyjściowe tego inwertera jest podciągane do napięcia U vv przez przewodzący tranzystor P2, calkowicie odcinając tranzystor P3. W wyniku oddziaływań zewnętrznych, w układach CMOS mogą wystąpić dwa szkodliwe zjawiska: zjawisko zatrzaskiwania i zjawisko przebicia dielektryka bramkowego. Zatrzaskiwanie zostało omówione w p. 6.6. W nowoczesnych, szybkich rodzinach układów CMOS próg jego występowania został przesunięty tak dalece, że prawdopodobieństwo jego występowania w typowych warunkach użytkowania jest znikomo małe. Grożne w skutkach może być jednak zjawisko przebicia. 358 7.5. UKŁADY CMOS Napięcie przebicia warstwy dielektryka w tranzystorze MOS jest rzędu 100 V, natomiast rezystancja wejściowa tranzystora jest rzędu 1012 n. W odróżnieniu od tranzystorów bipolarnych, które mogą być testowane w obszarze przebicia, tranzystor MOS może ulec trwałemu uszkodzeniu w wyniku pojedynczego przebicia dielektryka pod bramką. Ponieważ rezystancja wejściowa na elektrodzie bramki jest bardzo duża, przebicie może nastąpić w wyniku gromadzenia ładunku elektrostatycznego, np. podczas manipulacji układami CMOS przy montażu. Niebezpieczne są wszelkie tworzywa sztuczne, z którymi styka się montażysta, przykładowo: podłoga, fotel lub wykładzina stołu montażowego wykonane z tworzyw sztucznych, jak również części odzieży wykonane ze sztucznych włókien. Warto zwrócić uwagę, że człowiek idący po gładkiej podłodze z tworzywa sztucznego może się naładować do potencjału 4 + 15 kV, który przy zetknięciu z bramką tranzystora MOS przez pojemność ciała (ok. 300 pF) może go trwale uszkodzić. W celu zmniejszenia niebezpieczeństwa uszkodzenia układów CMOS statyczny, wszystkie te układy są wewnętrznie wyposażane na wejściach w odpowiednie układy zabezpieczające (rys. 7.75, 7.76). Przy stosowaniu rezystorów dyfuzyjnych wykorzystuje się także stowarzyszone z nimi diody lub tranzystory pasożytnicze (por. rys. 6.23b). Aby ograniczyć wartość prądu udarowego przy nagłych zmianach na wejściu, w niektórych układach stosuje się dodatkowe, „prawdziwe" rezystory polikrzemowe (rys. 7.76). Standardowa metoda testowania odporności układów na uszkodzenia przebiciowe wykorzystuje układowy model „ludzkiego ciała" pokazany na rys. 7.76e (norma Mil-Std 883B, Method 3015). Stosuje się również inne testy, wykorzystujące model „maszyny" (Philips). przez ładunek Układy CMOS o obniżonym napięciu zasilającym (UDD = 3.3 V) mają zazwyczaj (oprócz rodziny LV) inne wejściowe układy zabezpieczające, które umożliwiają poprawną współpracę z układami CMOS zasilanymi typowym napięciem 5 V. Należy podkreślić, że układy pokazane na rys. 7. 76 nie zabezpieczają struktur scalonych przed wszystkimi, praktycznie możliwymi narażeniami. Dlatego obowiązują następujące zasady obchodzenia się z układami CMOS: układy CMOS powinny być magazynowane i transportowane w opakowaniach z materiału antystatycznego Gest niedopuszczalne stosowanie typowych pojemników lub/i nośników plastykowych), przy montażu i kontroli układy CMOS powinny być umieszczane na metalowych, uziemionych stołach lub w metalowych, uziemionych pojemnikach, przy czym operator powinien być również uziemiony (realizuje się to najłatwiej przez założenie na przeguby rąk operatora uziemionych bransolet), 359 7, BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKŁA DÓW SCALONYCH a 0~Uoo WejŚcieo;;-.,....-C=:JF-...-- Oo układu Rodzi no LOOOB ( RCA I z bromkq m eto lową. 1,5 kll !dyl.I j ~ 03 .__ __,_ _ Uss ~ 0 1, b Uoo 01 R, -LOOll Rodzino HE LOOOB ł Philips I z br am ką. krze m ową, 02 lpoli krzem) ' - - -Uss c ~-----Uoo R„ 01 R„ 50+170 llldyf.I Rodzino HC (Motorolo, Phi lips) I00• 150ll I pol ikr zeml d Rodzino AC I Tl , Phil ips I '-+----..-----u„ e l5 kil Źródło Badany układ wysokiego napię_cio 2 kV Rys. 7.76. Zabezpieczanie wejść ukła dów CMOS przed uszkodzeniami przcbiciowymi na wejściach a) układ t.ahezpio::za.j ący w rodzinie 40008 (RCA} z bramk ą mctalov.'<J. b) układ stosowany w rodzinie HE.40008 (Philips) stosowany w rodzinie HC {Pllilips, ł.łPl<WQ/<)), d) ukłm.I .s1oww11ny w r<xh.:inic AC (Te-xos Instr1111ttnu. Philips), c) standardowy układ tcslowy 1. bramką krzemową, <ł układ nie nałe-ż.y wprowadzać układów CMOS lub wyciągać ich do/z podstawek pomiarowych lub płytek drukowanych przy włączonym napięciu zasilającym, 360 7.6. UKŁADY CMOS urządzenia i prżyrządy stosowane przy manipulacji z układami CMOS (np. kolby lutownicze) muszą być dobrze uziemione. Diody zabezpieczające mogą ulec uszkodzeniu przy ich przeciążeniu, np. przy bezpośrednim łączeniu wejść układów CMOS z układami cyfrowymi o innych napięciach zasilających lub ze złączami krawędziowymi płytek druk owanych. W takich sytuacjach należy stosować dodatkowe zabezpieczenia zewnętrzne (rys. 7.77) lub specjalne bufory C MOS z innymi układami za. Złqc;ze R Oo wejieio k.rowędziowe )>--ll..---łc:::::Jł--- ukłoOU CMOS Y. Rys. 7.77 Zabezpieczające połączenie złącza krawęc!Vowego IOO kll płytce na drukowanej z wejściem układu C MOS bezpieczającymi. Rezystory o typowej wartości R, = I O k!l + I MO, włączane szeregowo z wejściami lrzeba tak.że stosować, gdy używamy uklady CMOS do kształtowania i generacji impulsów w oparciu o obwody RC, jeśli do tych wejść są pnylączone kondensatory o pojemności większej od ok. 500 pF lub jeśli na tych wejściach występują pnebiegi napięciowe przek raczające zakres dopuszczalny. Na pr-.tykład, dla rodziny HE4000B dopuszczalny zakres napięcia wejściowego wynosi (-1.5 V, U 00 +0.5 V). a dla rodziny HC wynosi (- 1.5 V, U 00 + 1.5 V). Odpowiednie maksymalne, dopuszczalne prądy wejściowe wynoszą ± 10 mA i ±20 mA. Na leży też pamiętać, że nawet ograniczone przewodzenie diod wejściowych może modyfik ować stale czasowe RC, użyte do formowania dlugości lub częstotliwości powtarzania impulsów. Ponadto, rezystor szeregowy R„ tworzy z pojemnością wej ściową C, układu stałą czasową R,C,, która zwiększa czas propagacji ukladu (typowo ok. 6 ns/k!l). Na pozostawionym swobodnie wejściu układu CMOS może się pojawić w czasie pracy potencjał o nieokreślonej wartości, który może zakłócić prawidłowe dzialanie ukladu. Dlatego generalną zasadą jest, aby w urządzeniu żadne wejście jakiegokolwiek układu CMOS nie pozostawało swobodne. Wejścia nie używane należy przyłączyć do masy lub napięcia zasilającego, stosownie do funkcji logicznej (np. nie używane wejścia bramek NOR należy polączyć z masą, a nie używane wejścia bramek NAND należy połączyć z U mil· Wyjścia układów CMOS są zabezpieczone diodami stowarzyszonym i z drenami tranzystorów wyjściowych (por. rys. 6.35b). Szybkość działania Podstawowe miary ukladów cyfrowych: czas propagacji pracy fmu byly omówione w p. 5.3.J, a ich w odniesieniu do układów CMOS zost.a.ły podane w tabl. 7.4. t, i maksymalna wartości szybkości działania 7 .5.1.2 361 częstolliwość 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKtAOOW SCALONYCH I T„ • •25°C ns t. 175 20 / 150 ....... Ucc '• S.OV r, =25°c ns t. 16 ·"'/ \)OO~__... 125 100 / ,,.,.... V- 75 \OV ~ / 8 1SV 50 ~ HC 12 ~ 4 ,,,. ~ F ~s AC\ 25 o 10 c, 20 30 40 SO 60 70 80 90 c, 100 pF o 20 40 60 80 100 pF Rys. 7.78. Typowa zależność czasu propagacji Rys. 7.79. Zależności czasu propagacji od bramki C04001B (RCA) od pojemności obciążenia i napiQCia zasilającego pojemności obcią7.enia dla szybkich rodzin 1, c. C MOS i ich odpowiedników TIL Dane te dotyczą określonych warunków testowania, co w szczególności dotyczy pojemności obciążenia Cv Ponieważ w typowych warunkach pracy rezystancja wejściowa jest pomijalnie duża (maksymalna wartość prądu wejściowego nie pro::kracza I µA), przy zwiększeniu obciążenia układu CMOS wejściami innych układów CMOS obserwuje się powiększenie czasu propagacji, wynikłe ze stalej czasowej R 0 CL, gdzie R 0 jest rezystancją wyjściową układu sterującego i CL reprezentuje sumę pojemności wejściowych z układów sterowanych. Rezystancja R0 jest jednak liniowa tylko w ograniczonym zakresie prądu wyjściowego, zarówno wpływającego jak i wypływającego. Określenia funkcji 1,(CJ można dokonać analitycznie na podstawie wzorów z p. 7.5.1.1 i znajomości charakterystyk wyjściowych układu (por. rys. 7.84) lub można wykorzystać dane firmowe. Na rys. 7.78 pokazano przykładową postać takiej charakterystyki dla bramki z serii 40006 firmy RCA. Przyjmując typową wartość C, = 5 pF można określić pogorszenie 1, wynikle ze zwiększenia znormalizowanego obciążenia N. Z powyższej charakterystyki można także określić prostą zależność 1,(CJ, która przy U 00 = + 5 V ma postać 1,[ns] ~ 75 + CL[pf] Podobne zależności dla szybkich rodzin CMOS i ich odpowiedników TTL (LS i F) przedstawiono na rys. 7.79. Czasy propagacji układów CM OS zwiększają się przy wzroście temperatury. Na przykład, w rodzinie HC współczynni k wzrostu ót,Jll Twynosi ok. 0.35%/K. 362 7.5. UKLAOY CM OS 7.5.1.3 Moc s trat Moc strat P układów CMOS jest, ogólnie biorąc, sumą dwóch składników: mocy statycznej (bez przełączania układu) i mocy dynamicznej (przy przełączaniu układu). Pierwszy składnik jest w układach CMOS znikomo mały (tabl. 7.4) i dlatego o mocy strat tych układów decyduje składnik drugi. Rozważmy przykład inwertera CMOS z rys. 7.70, zasilanego napięciem U 00. Przy pominię­ ciu mocy strat wywołanej stałym prądem upływu oraz impulsowym prądem skrośnym (płynącym chwilowo przez tranzystor pi n-kanałowy struktury CMOS przy wolnozmiennych zboczach impulsu wejściowego), można sform ułować model pokazany na rys. 7.80. W modelu tym przebieg prądu I 00 w obrębie jednego okresu T ~ '• +t 2 =!//zapisuje się w przybliżeniu jako a b u, c Rys. 7.80 Określenie ś redniej mocy strat dla inwertera CMOS: 11• pO~~nia układu. b) upr052Czony model, e) 1ypo•-e prubirgi czMOwe / 00(1)~ U 00 exp ( - - ' - ) R C,_R przy czym Rjest rezystancją przewodzącego kanału. Średnia moc strat wyraża się zależnością ui0 r o ( t ) P = Uoofoou ~ TR Jexp -C R dt /, i po wykonaniu całkowania przy założeniu, terystyczny wzór 363 że C,_R « Totrzymuje się charak- 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH U Kl.AOOW SCALONYCH P ~ UAoCLf Należy podkreślić, 1.c w tym przypadku wielkość P nie zależy od symetrii przebiegu wejściowego, gdyż ładowanie pojemności CL następuje tylko jeden raz w okresie T, a inne składowe mocy strat zostały pominięte. Dla układów CMOS powyższy wzór często stosuje się w postaci P = (CL +Cpo)UAof gdzie C„0 jest zastępczą, własną pojemnością obciążenia układu, wynikającą z istnienia wewnętrznych, pasożytniczych pojemności. Wartość C„ 0 można określić z powyższego wzoru, mierząc P przy CL= O i częstotliwości f wystarczająco wysokiej, aby można było pom inąć moc statyczną (op. f = I MHz). Wówczas Cro= P(f}/(Uiof) = lvof(U ooJ) Typowa wartość C„ 0 jest również podawana w danych firmowych. Na przykład dla bramek 74HCOO i 74ACOO podaje się C„ 0 = 20 pF. Zależności mocy strat od częstotliwości dla podstawowych bramek CMOS z różnych rodzin zostały pokazane wcześniej na rys. 5.3. Jak widać z tego rysunku, układy CMOS mają wyraźną przewagę nad układami TIL przy małych częstotliwościach. Jednak powyżej pewnej częstotliwości progowej ich moc strat staje się współmierna z moc;1 strat układów TTL z serii LS, ALS i F. Można jednak zauwa.ż.yć, że w złożonym układzie bądź urządzeniu CMOS zazwyczaj tylko niewielka procentowo liczba bramek ulega przełączaniu jednocześnie. Zysk mocy, wynikły ze stosowania układów CMOS w porównaniu z układami TIL, jest zatem z reguły bardzo duży. Od porność na zakłócenia 7 .5.1 .4 na zakłócen i a w układach cyfrowych jest napięciowy margines zakłóceń (p. 5.3.3). Jest on dla układów CMOS definiowany w ten sam sposób jak dla innych układów cyfrowych, wykorzystując oznaczenia z rys. 5.8. Minimalna wartość marginesu zakłóceń (p. 5.3.3) na poziomie L wynosi dla układów z rodziny CD4000B przy U00 = 5 V Ogólnie przyjętą miarą odporności M /;mln ~ u,Lmax- UOLmu= 1.5-0.05 = 1.45 V i na poziomie H M flonln - UOllmin - U/Hniln = 4.95 - 3.5 = 1.45 V Minimalna wartość marginesu zakłóceń w obydwu przypadkach jest zatem taka sama. Można zauważyć, że M „,,;u00 = 364 t.45/ 5 = 0.29 7.5. UKlADY CMOS czyli margines zaklóceń jest bliski 30% wartości U 00. Jest to znacznie lepszy wynik niż dla układów TTL, gdzie M m;„ = OJ-;-0.4 V, co odpowiada 6-;-8% napięcia U ce· Podobne wyniki otrzymuje się dla szybkich układów CMOS z rodzin HC i AC. Przy minimalnym napięciu zasilania U00 = 4.5 V MLm;n = 1.35 - 0.1 = 1.25 V Mum;n = 4.4-3.15 = 1.25 V co oznacza, że M m;n = 1.25 V oraz Mm;JUDD = 1.25/4.5 = 0.28 czyli margines zakłóceń jest niemal taki sam jak w rodzinie CD4000B. Tak malą wrażliwość na zaklócen.ia otrzymuje się m.in. dzięki niemal idealnej postaci charakterystyki przejściowej w tych układach oraz jej dużej stałości przy zmianach temperatury. Przedstawiono to na przykładzie z rys. 7.81. 5 .---,---.-~,..-,..."'~,----,--,~.--. I' V 4 u;;-- lloo ,I5,Q,„.1---14'tt'+--+~+--+---l--I : '' I I I I l---+---+~+--1-tl..+~+---+~l---t----i ,, Oo 2 Ui 3 4 v Rys. 7.81 ć Zależnoś charakterystyki przejściowej s bramki 74HCOO od temperatury (Motorola) Podane wyżej oszacowania dotyczą najgorszego przypadku, to znaczy skrajnie niekorzystnych warunków temperaturowych. W warunkach typowych (T. = + 25°C) otrzymuje się dla rodzin szybkich (HC, AC) przy Uvv = 4.5 V M,,P = 2.1 V oraz M,r.fUvv = 2.1/4.5 = 0.47 czyli bardzo blisko ideału (M,,P = 0.5 U 00). Dla porównania, typowa wartość marginesu zakłóceń w układach TIL .przy Ucc = 5.0 V wynosi l V. Aby dokonać bardziej miarodajnego porównania odporności zakłócenio­ wej układów CMOS i układów TIL, trzeba porównać nie tylko wartości ich napięciowych marginesów zakłóceń, ale również ich rezystancje wyjściowe R0 . Oddziaływanie zewnętrznych źródeł zakłóceń można w uproszczeniu modelować w sposób pokazany na rys. 7.82, gdzie Z oznacza zastępczą impedancję wyjściową źródła zakłócenia w odniesieniu do linii łączącej bramkę sterującą ze sterowaną. Wartość napięcia zakłóceń na tej lini i, którą możemy porównać 365 7. BUDOWA I CHARAKTERYSTYKI CYFłlOW'VCH UKt.AOOW SCALONYCH llk!od steru)qcy Uo l)i ~-~ ~K>--..----<H Uk ład sterowoiy Z -impedancjo sprzęgu Rys. 7.81 Uproszczony model oddziaływania zakłÓ<leó, uwzgl~niający n:zystnntję wyjściową ukladu sterującego z wartością marginesu zak.łóceń jest wprost proporcjonalna do stosunku R0 / Z. Przyjmując tę samą wartość Z dla porównywanych układów, porównanie wrażliwości na zakłócenia można zatem wyrazić stosunkiem zmodyfikowanych marginesów zakłóceń: M* CMosfM*TTL = (McMosfMTnHRoTTJRocMos) Porównując w ten sposób układy z rodziny CD4000B (przy U0 0 = Ucc = 5 V) z układami TIL, otrzymujemy w najgorszym przypadku około dziesięciokrotne pogorszenie M!1n(co•oooafM!io(TTL):::: (1.45/0.3)(100/ 1000) = 0.48 co oznacza, że układy CMOS z rodzi ny CD4000B są w istocie dwukrotnie bardziej podatne na zakłócenia niż układy TTL. Znacznie lepsze są pod tym względem układy CMOS z rodzin szybkich. Porównując rodzinę HC z rodziną LS TIL można obliczyć przy UcctCMOS> = = 4.5 V i Ucc<TTLI = 5 V M!tntHc/M!tn(LS)"" (1.25/0.3)(100/ 100) = 4.8 co oznacza, i.e układy HC są około pięciokrotnie mniej wrażliwe na zakłócenia od układów LS TTL. Podobne oszacowania otrzymuje się taki.e dla wa runków typowych. Analogicznie można porównać układy CMOS z rodziny AC z jej najbliższym odpowiednikiem z rodziny F TTL: M:.;n<„c/M!tn<FI = (1.25/0.3)(30/30) = 4.8 Podane oszacowania są oczywiście zgrubne, lecz ilustrują istotę problemu. Bardziej dokładne wyniki można otrzymać określając ściślej rezystancje wyjściowe porównywanych układów na podstawie odpowiednich charakterystyk wyjściowych oraz katalogowych wartości granicznych. Zgodn ość łączeniowa i o bc iążalność Najczęściej występuje potrzeba połączeń układów zapewnieniu wspólnego 366 napięcia zasilającego, 7 .5.1 .5 CMOS z układami TTL. Przy równego 5 V, połączenia takie 7.5. UKŁADY CMOS można wykonać wprost, pod warunkiem nieprzekroczenia dopuszczalnej oboraz przy ewentualnym dopasowaniu napięć progowych. Przy łączeniu CMOS -> TTL należy tylko uwzględnić odpowiednią wydajność prądową na poziomie L danego układu CMOS. Na przykład, układ CD4001B zapewnia U0 L ~ 0.4 V przy l 0 L ~ 0.44 mA w zakresie temperatury - 40.;- +85°C. Oznacza to, że do wyjścia takiego układu można przyłączyć tylko jedno wejście układu LS TTL, które ma Inm„= 0.4 mA (patrz tabl. 7.4). Przy łączeniu TTL -> CMOS problem obciążalności prądowej nie występuje, gdyż prąd wejściowy układów CMOS jest pomijalnie mały. Trzeba jednak podwyższyć napięcie poziomu H, gdyż przy TTL-owskim napięciu Uoumin = 2.4„.2.7 V standardowy układ CMOS pracuje w pobliżu swego napięcia progowego (rys. 7.81). Wynikiem tego jest niebezpieczne zmniejszenie marginesu zakłóceń (formalnie biorąc, M Hmin = 2.4 - 3.5 < O). Ponadto, jak widać na rys. 7.71, przy tak obniżonym napięciu wejściowym przez tranzystory inwertera wejściowego CMOS płynie prąd skrośny, zwiększając moc strat. Aby podwyższyć napięcie poziomu H należy zastosować dodatkowy rezystor (rys. 7.83). Można jednak uniknąć podwyższania poziomu H przez zastosowanie układu CMOS z TTL-owskim napięciem progowym, zazwyczaj oznaczanym literą T w zapisie typu (np. 74HCT245). Przykład takiego układu pokazano na rys. 7.75a. Nie należy stosować układów z serii HCTprzy sterowaniu ich przez ukJady CMOS, gdyż oznacza to znaczne zmniejszenie marginesu zakłóceń: MLm'• = 0.8-0.l = 0.7 V (zamiast 1.5-0.1 = 1.4 V przy łączeniu CMOS-+ CMOS i napięciu zasilania U 00 = 5.0 V). ciążalności 4.7kt! U oo TTl f---+----1 CMOS Rys. 7.JlJ Łącz.cnie wyjścia układu z wejściem układu ITL C MOS Przy stosowaniu układów niskonapięciowych CMOS (zasilanych napię­ ciem 3.3 V - p. tabl. 7.5) do sterowania układów TTL nie występują problemy dopasowania napięciowego. Podobnie jak poprzednio, należy tylko uwzględnić odpowiednią wydajność prądową na poziomie L układu CMOS sterującego układem (układami) TTL. Przy połączeniu odwrotnym (TTL -+ CMOS 3.3. V) 367 1. BUDOWA ł CHARAKTERYSTYXł CYFROWYCH U KŁAOOW SCALONYCH a mA 0.S 1.0 1.S 2.0 2.S 3.0 4.0 3.0 <.O 4.S V 3.S 3.0 2 .S 2.0 lS lO 0.S O.O V b 200 mA -200 [ .I / r., 150 J """ 'I '/ Uoo- 5.SV I 5.0 V .,.... 1-- - ISO Uoo= - 100 50 -50 u.._ 5./ (v / 4.SV 100 o o r•• mA I / / 1-L-- / ' / 4.5 V ~I o I I u... 7v6 s ' J 2 o Rys. 7.84. Charakterystyki wyjściowe ukladów CMOS a) charaktery~tyld ul:ladów łlC (AfQtQroła)r. b> lypo•-e cłl 1ual:lcf)'M,Yki 11kbd6w AC ( t\łoWQ/(I) przydatne są rezystory podciągające (podobn ie jak na rys. 7.83), przyłączone do napięcia 3.3 V, gdyż UoHmin(TfL) = 2.4 V. Układy CMOS ze wszystkich rodzin o wspólnym napięciu zasilającym mogą być ze sobą łączone bez żadnych ograniczeń związanych z wydajnością prądową wyjść. Główne ograniczenie wynika z obciążenia pojemnościowego, które zwiększa czas propagacji (por. rys. 7. 78, 7. 79). Układy niskonapięciowe CMOS mają zazwyczaj (oprócz układów z rodziny LV) wejścia przystosowane do sterowania przez układy pięciowołtowe CMOS. Aby zrealizować połączenie odwrotne (3.3 V - 5 V) należy zastosować układy pięciowoltowe z ITL-owskim napięciem progowym (rodzina HCT) w celu zwiększenia marginesu zakłóceń. Wówczas Mumi. = 2.8 - 2.0 = 0.8 V. 368 7.5. UKŁADY CMOS Natomiast połączenie wyjścia układu trzywoltowego z wejściem standardowego, pięciowoltowego układu spowodowałoby MHmln = 2.8 - 3.15 <O! Do oszacowania obciążalności prądowej układów CMOS potrzebna jest znajomość ich charakterystyk wyjściowych na poziomie L(prąd wpływający) i na poziomie H (prąd wypływający). W układach najszybszych (AC) umożliwia to m.in. określenie ich zdolności sterowania dopasowanymi liniami transmisyjnymi. Charakterystyki takie są pokazane na rys. 7.84. Inne układy o małym stopniu scalenia 7.5.2 Bramki transmisyjne CMOS Charakterystycznym dla techniki CMOS układem jest przełącznik bilateralny, w technice cyfrowej zwany zazwyczaj bramką transmis)yną. Przykład budowy takiego układu ( ! 4016B)jest pokazany na rys. 7.85a. Gdy e = H, czyli Gl = L i G2 = H, to przełącznik jest włączony (zwarty"), to znaczy że między końców­ kami A i B jest relatywnie mała rezystancja stałoprądowa R 0 " , umożliwiająca transmisję sygnałów w obu kierunkach (końcówki A i B są elektrycznie równoważne). Napięcie wejściowe U;, musi spełniać warunek Uss ~ U" ~ UDD· Przy e = L czyli Gl = H i G2 = L przełącznik jest wyłączony („otwarty") i rezystancja między końcówkami jest bardzo duża. Na schemacie logicznym w symbolice IEC z rys. 7.85b w bloku „styków" przełącznika jest użyta notacja zależności transmisyjnej (litera X). Przeciwnie skierowane strzałk i na końcówkach A i B wskazują na bilateralność przełącz­ nika, lecz nie są obowiązkowe. Jeżeli układ jest wykorzystany do transmisj i sygnałów analogowych, to nad tymi liniami mogą być umieszczone wskazujące na to znaki „ri". Typowe charakterystyki przełącznika 40!6B w stanie włączenia przedstawiono na rys. 7.85d. Gdy napięcie U;, zbliża się do U00, to małą rezystancję R0 N zapewnia tranzystor p-kanałowy. Natomiast gdy U1, zbliża się do Uss• to małą rezystancję R 0 N zapewnia tranzystor n-kanałowy. W tych warunkach tranzystory odpowiednio n- lub p-kanałowy nie przewodzą, gdyż ich napięcia U Gs są mniejsze od odpowiednich napięć progowych. Przy napięciu U" znajdującym się w środkowej części przedziału (U ss• U 00) słabo przewodzą obydwa tranzystory i wypadkowa rezystancja R 0 " jest mniejsza od rezystancji każdego z nich. Przy U00 = 5 V ta rezystancja osiąga wartość 8 kO. W stanic wyłączenia (e = L) maksymalny prąd upływu na końcówce A lub B wynosi 200 nA przy uDD = 15 V. 369 7. BUDOWA I CHARAKTERYSlYl<I CVFROWYCH U KŁADÓW SCALONYCH o B u•• ·{ G2 Gl Uss A b • 1--~n'--~B A,..___,_n,_, '----' d c ll. • \.. '-5' I... \ 200 \ I I I U--= 10V ' "\ A 100 Rys. 7.85 Pr7.ełąc•nik bilateralny CMOS (bramka transmisyjna) z układu 40168 (Philips) a) ~hem:i.1 eleklrycr.ny, b) schemat loglemy w symbolice rec. c) 9Chcmat logiczny w symbolice klaS)'ctl'lej, d) typowe zak1.no.ki rezystancji R"'' od napięcia U" / 7' " ~ >... ./ I./ '-' o o ISV ---u,, • 8 12 V 16 Mniejsze wartości rezystancj i R0 N zapewnia ulepszony układ przełącz­ nika o schemacie pokaz,anym na rys. 7.86a ( ~ 4066B). Dodatkowy układ trójtranzystorowy służy do wytworzenia odpowiedniego uapięcia podłoża tranzystora n-kanałowego w przełączniku. W rezultacie wzrost rezystancji tranzystora n-kanałowego przy wzroście U,_ , następuje wolniej niż w poprzednio opisanym układzie podstawowym i wypadkowa rezystancja R0 N jest znacznie mniejsza (rys. 7.86b). Jednakże, aby uniknąć przepływu prądu do źródła UDD z końcówki A gdy prąd przełącznika płynie w kierunku końcówki B, wartość spadku napięcia między końcówkami A i B nie może przekroczyć 0.4 V. 370 7.5. UKŁADY CMOS a B • A Ro• - 300 .... Uoo= SV 200 " 100 IOV 1sv>- ... ~ o o 'U· s I " 10 V 1S Rys. 7.86. Ulepszony przełącznik bilateralny CMOS z układu 40668 (Philips) a) &diem~•. b) 7-ak:iJ1QJt Ro,y (Uli) Opisane przełączniki bilateralne są wykorzystywane do kluczowanego zarówno sygnałów analogowych, jak i cyfrowych. W ostatnim przypadku należy zwrócić uwagę na dwie właściwości: jeśli rezystancja obciążenia na wyjściu układu jest bardzo duża (np. bramka tranzystora MOS), to może się zdarzyć, i.e stanie się ona porównywalna z rezystancją RoFF przełącznika w stanie wyłączenia. Na wyjściu układu pojawi się wtedy zbyt duża część napięcia wejściowego (pogorszenie efektu kluczowania); jakkolwiek przy obydwu ustalonych poziomach logicznych (H i L) przesyłanego sygnału CM OS rezystancja R0 N przełącznika jest minimalna, to jednak w procesie przejściowym jest ona znacznie większa (zwłaszcza przy Uvv = 5 V). Prowadzi to do wydłużenia przesyłanych zboczy sygnału, jeśli na wyjściu przełącznika są duże pojemności pasożyt­ nicze związane z obciążeniem. przesyłania 371 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKlA00W SCALONYCH Bramki transmisyjne NMOS - przełączniki CBT Do kluczowanej transmisji sygnałów można także wykorzystać proste, jednotranzystorowe bramki transmisyjne, stosowane między innymi w układach dynamicznych MOS (p. 7.4.2). Bramkę stanowi pojedynczy tranzystor NMOS, kluczowany napięciem na bramce. Oznacza to istotne uproszczenie budowy bramki transmisyjnej, zmniejszenie jej rozmiarów i związanych pojemności pasożytniczych. Są to cechy korzystne. Jeśli jednak sygnałem sterującym jest typowy sygnał cyfrowy CMOS o amplitudzie równej U DD• to oznacza, że maksymalny sygnał wyjściowy bramki transmisyjnej będzie ograniczony do wartości U00 - Un gdzie Ur jest napięciem progowym tranzystora transmisyjnego. Przy U00 = 5 V i Ur :::l 1.5 V maksymalne napięcie poziomu wysokiego będzie zatem ograniczone do wartości 3.5 V. Jeśli takie napięcie będzie podane na wejście typowego inwertwera CMOS, to jego tranzystor PMOS nie będzie odcięty i przez obydwa tranzystory inwertera będzie płynąć pewien prąd skrośny (por. rys. 7.71), co oznacza zwiększenie mocy strat. Ponadto margines zakłóceń zostanie istotnie zmniejszony. Dlatego przy stosowaniu takich jednotranzystorowych bramek transmisyjnych w układach CMOS stosuje się specjalne rozwiązania układowe w celu odtworzenia poziomu wysokiego o wartości bliskiej U00 na wyjściu bramki transmisyjnej. W nowoczesnych systemach cyfrowych jedną z istotnych operacji jest bardzo szybkie, ukierunkowane przesyłanie wielobitowych danych cyfrowych między różnymi blokami systemu. Mo:ie to być na przykład przesyłanie danych magistralą w systemie multiprocesorowym, przesyłanie danych do/z banków pamięci w trybie przeplotu, lub przesyłanie danych w centralach telekomunikacyjnych. Do takich zastosowań została opracowana przez firmę Texas Instruments specjalna rodzina wielobitowych (4-, 8-, 10-, 16-, 18- i 24-bitowycb) przełączników o nazwie CBT (CrossBar Technology) [11). Przełącznikiem jest jednotranzystorowa bramka transmisyjna, czyli tranzystor NMOS z krótkim kanałem, sterowany poprzez bufor sygnałem sterującym (rys. 7.87). Napięcie Rys. 7.87 Pojedynczy pnełącznik CBT progowe Ur tego tranzystora wynosi ok. 1 V, czyli napięcie wyjściowe jest ograniczone do wartości U 00 -1 V (rys. 7.88a). Nie wyróżnia się kierunku przesyłania informacji, czyli wejściem może być zarówno końcówka A (z wyjściem na B) jak i B (z wyjściem na A). Dzięki specjalnej technologii uzyskano bardzo małą rezystancję włączenia R0 N (rys. 7.88b). Ponieważ sygnał jest przesyłany przez tranzystor przełącznikowy w sposób bierny (bez wzmacniania), 372 7.5. U KŁADY CMOS 06 I I /lJc isN 74CBT 32441 5 V > Ucc c5V / > / t > UccslV / 1~ ·O •7V / / ...,. ~e -1 o > u ;,.5V I J V > t > :...----'" : o ' •UV 6 7 No.piecie wej.śc iowe I V ł lJa ;JV "> 5 4 J ' I ~,1v I J I / ~ .' .2. ~ / _.... . J 4 ' J ' ' 5 . 6 Nopifecie wejściowe I V J Rys. 7.88. Charakterystyki Instruments) przełączników CBT w układzie SN74CBT3244 (Texas a) iale-ń1oK n.1pi~a wyjKio„>ego pridtcmika od nil~ 111-ejklo\\-cgo i r.a.sil.ająoego. b) ~)e~()it rety~ancj i R.0 ,.. pr-.i:el-4ct"nika od n.;ipi~1:1 ""'ejściowcgo i la!iilaj 'ł(:ego zatem czas propagacji jest bardzo krótki (0.25 ns przy transmisji sygnału o amplitudzie 3 V i zasilaniu 5 V). Czas opóźnienia od wejścia sterującego wynosi ok. 6 ns. Na rysunku 7.89 przedstawiono przykład zastosowania układu 'CBT16233 do transmisji danych do/z banków pamięciowych z przeplotem [li]. Układ 'CBTl6233 (zawarty w 56-końcówk owej obudowie SSO) działa jako multiplekser grupowy 32 na 16 bitów i jako demultiplekser grupowy 16 na 32 bity. Gdy używamy układów pamięciowych o przykładowym czasie dostępu 60 ns, odczyt słowa danych z banku 1 następuje po czasie 60 ns, ale odczyt z banku 2 może nastąpić już po 6 ns (czas propagacji od wejścia sterującego układu 'CBT16233). W ten sposób łączny czas dostępu do pamięci został skrócony niemal dwukrotnie w porównaniu ze sekwencyjnym adresowaniem dwu banków. 373 7. BUDOWA I CHARAUERYSTYKI CYFROWYCH UKŁAOOW SCALONYCH Al . . An banki 'CBT 16233 Seł o Seł 1 bonk2 -.,__ _ __ _, 00„cns 1 Rys. 7.89. Przykład o zas1osowania przełączników CBT do realizacji przeplotu pamięci .lll--cm 11 12 .1---001 13 010 Oo wyjścia OOO 14 r-1-11----+-łt-- 011 100 15 16 101 17 Oo wyjścia 011 18 t11 b rJeden - - z-pieciu --- - --1 kanałów 1A1 1 ~-...-<"- 181 I I I I I I I I I _ ..__,l;...192 1A2 _ _ _ _JI L-- - ex---,,_+-_, BE - - - -'----' Rys. 7.9-0. Zastosowanie przch!czników CBT do wyboru drogi sygnałów w matrycy przełączającej a) pnyklado'<'-e sterowanie matr}-cy. b) budowa jednej z pi~ u komOcek prtielącując~h. w wartych w układzie 'CBT3}83 374 7.5. U KŁADY CMOS D rugi przykład, pokazany na rys. 7.90a, ilustruje sposób tworzenia drogi sygnału telekomunikacyjnego z użyciem układu 'CBT3383 [I I). Układ ten zawiera pięć dwubitowych komórek przesyłowych o schemacie pokazanym na rys. 7.90b. Sygnał zezwolenia BE = L umożliwia zwieranie przełączników za pomocą sygnału BX. Przy BX = H następuje zamiana torów: I AI -1 B2, 1A2-IBI. Przy BX = L zwarte są przełączniki w tych samych torach. Ciekawym zastosowaniem przełączników CBT jest zmniejszenie amplitudy sygnałów pochodzących z układów CMOS o zasilaniu 5 V, w celu sterowania układów o napięciu 3.3 V. Jak widać z rys. 7.88a, napięcie wyjściowe przełącznika jest ograniczone do wartości UDD- I V. Jeśli zatem zmniejszyć napięcie zasilania UDD do wartości 4.3 V, to ogran iczenie na wyjści u nastąpi na poziomie 3.3 V. W tym celu można wykorzystać diodę krzemową w sposób pokazany na rys. 7.91. Dziesięciobitowy przełącznik 'CBTD 3384 ma już wbudowaną tę diodę. 5.0 b o ,r---,,,,_:ł. Diodo krzemowo / V Uwc .u...,4.0 \ I F Uw, li ·'\\ li 2.0 o \ J 3.0 1.0 I ,-u.- \\ \ I li ,\ li u 2 3 4 Czos 5 6 '" 7ns & Rys. 7.91. O bni7.enie •.asilania układu CBT do konwersji sygnałów z układów CMOS o zasilaniu 5 V na sygnały sterujące układy o 1.asilaniu 3 V a) przytla.d pc>ląeień, b} prttbl'Sl cnsowt. NI ~jściu i wyjśiciu pntł:4C7.nilrn QS3l84 (Quality SnnicrnidwcttJr) F unkcja ogranicznika jest również przydatna do skutecznego wyskoków napięciowych sygnału, powstałych w wyniku zakłóceń. Układy z wyjścia mi tłumienia trójstanowymi W technice C MOS do kluczowanego przesyłania sygnałów cyfrowych często stosuje się układ inwertera t rójstanowego, o schemacie pokazanym na rys. 7.92. Przy e = H kluczujące tranzystory 77 i T4 przewodzą i układ zachowuje się jak zwykły inwerter, natomiast przy e = L tranzystory 77 i T4 są odcięte i wyjście układu znajduje się w stanie wielkiej impedancji. Układ ten zapewnia znacznie lepszą izolację między wejściem i wyjściem w stanie wyłączenia i nie dopuszcza do tłumienia sygnału wejściowego. Jeśli można przyjąć, że obciążeniem układu jest tylko pewna skupiona pojemność pasożytnicza C (tzn. składowa rezystancyjna 375 1 . BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKt.AOOW SCALONYCH b o • T1 1p) X oy I I TJ In t y X T2 l pl ..i... "T" c ...... I c 1 T4 lnl e • EN V y Uss c2 Mos Rys. 7.92. lnwcr1cr 1rójstanowy CMOS a) llCbem•t ekktryczny, b) !ICbcmat łogit:tft)', c• l)'mbol łosicl:ny obciążenia jest pomijalnie duża), to w fazie odcięcia WYJSC1a inwertera na C będzie pamiętany ten poziom napięcia, który został tam ustalony w fazie aktywnej. Oczywiście to pamiętanie jest w praktyce krótkotrwałe (rzędu milisekund), z uwagi na niezerowe prądy upływu, ale w porównaniu z szybkością procesów przełączeń (rzędu dziesiątek nanosekund) jest relatywnie długie. Właściwość ta jest wykorzystywana do realizacji układów dynamicznych CM OS (p. 7.5.3). Czterotranzystorowa struktura inwertera CMOS, kluczowanego komplementarnymi sygnałami <P, <P, nosi także nazwę dynamicznego zatrzasku CMOS, należącego do rodziny układów dynamicznych C2 MOS (C/ocked CMOS). Należy zaznaczyć, że zatrzask ten wprowadza inwersję sygnału pojemności wejściowego. zasilanych obniżonym napięciem zasilającym (U 00 = = 3.3 V) wyjścia trójstanowe muszą być tak skonstruowane, aby w stanie wielkiej impedancji umożliwić współpracę z szyną, na której mo7.e się pojawić typowe napięcie 5 V (na przykład z wyjścia innego układu C MOS, zasilanego napięciem 5 V). Nie nadaje się do tego klasyczny inwerter wyjściowy P5, N5 z rys. 7.93, ponieważ pasożytnicza dioda między drenem P5 a podłożem (połączonym z U 00, p. rys. 6.35) zwiera wtedy szynę do U 00 . Dlatego w układach niskonapięciowych CMOS z wyjściami trójstanowymi napięcie podłoża wyjściowego tranzystora PMOS jest w stanie wielkiej impedancji ustalane przez dodatkowy układ albo na poziomie U Dl>' albo na poziomie U0 (zależnie od tego, który jest większy). W układach 376 7.5. UKł.AOY CMOS o ~~~~...-~~~...-~~~~--~~~--~~~~---" Uoo Pl P2 P3 PS Nl N2 NJ e b .~ x~Y Rys. 7.93. Bufor trójstanowy CMOS (Philips) a) schemal ekklryCU1y, b) ł)'mboJ 1-0giC?J\f Przerzutniki Prosty przerzutnik SR CMOS (rys. 7.94a) można utworzyć jako małą modyfikację układu z rys. 7.65. Dwa inwertery Pl, NI i P2, N2 objęte są pętlą dodatniego sprzężenia zwrotnego, a tranzystory N 3 i N 4 służą do sterowania. Rezystancje kanałów tych tranzystorów muszą być wystarczająco małe, gdyż podczas sterowania tworzą się inwertery stosunkowe. Na przykład przy Q = H (gdy P2 przewodzi) i ustaleniu R = H (gdy N4 przewodzi) napięcie na końcówce Q powinno spaść poniżej progu przełączania inwertera P1, N 1. Oznacza to, że tranzystory N3 i N4 muszą mieć odpowiednio zwiększone rozmiary (szerokości kanałów). Wymagań takich nie ma w układzie przerzutnika SR z rys. 7.94b. Chwilowy stan S = H (przy R = H) powoduje nie tylko przewodzenie N3, lecz również odcięcie P2, czyli w rezultacie ustawienie przerzutnika w stan Q = H. Podobnie przy R = Li S = L otrzymuje się Q = L. Przy braku sterowania tranzystory P2 i NI przewodzą, a P3 i N3 nie przewodzą, czyli tranzystory Pl, N2 tworzą aktywny inwerter, zapewniający dodatnie sprzężenie zw rotne w pętli z inwerterem P4, N4. 377 7. 8U00WA I CHARAKTERYSTYKI CYFROWYCH UKŁAOOW SCALONYCH o l --l---+------00 P~---!-..L...1 b c o Rys. 7.94. Przykłady przerzulnikó w CMOS I) b) ą <><ra_.„...,. pnnmmilc SR.. .........,..„..., pnmvtDit SR, prac:rzutftik u1n.1.t.:owy O Opisana poprzednio struktura kluczowanego inwertera jest wykorzystywana do budowy przerzutników synchronicznych CMOS. Rys. 7.94c ilustruje przykładową budowę przerzutnika i.atr1..askowego D z asynchronicznym wejś­ ciem zerującym R. Zawiera on dwa takie inwertery (ITI i JT2), kluczowane na przemian przez komplementarne sygnały zegarowe. Przy C = H i C = L i.atrzask jest „przeźroczysty'', czyli zmiany stanu na wejściu D przenoszą si~ na 378 7.5. UKŁADY CMOS wyjście Q. Inwerter /Tl jest wtedy aktywny, a /7'2 nieaktywny. W momencie gdy sygnały i.egarowe zmieniają swoje stany na przeciwne, następuje zablokowanie inwertera ITI i odblokowanie IT2, który zamyka pętlę dodatniego sprzężenia zwrotnego z inwerterem wyjściowym. Zerowanie przerzutnika następuje przy R = L, niezależnie od stanu sygnałów i.egarowych. Typowym przykładem zastosowania opisanych poprzednio bramek transmisyjnych CMOS jest budowa przerzutnika JK typu 74HC76/ 74HCl 12, pokazana na rys. 7.95. Jest to przerzutnik wyzwalany zboczem opadającym impulsu sterującego C. Układ zawiera dwa składowe przerzutniki SR, zwyczajowo oznaczane jako sekcje M i S, przy czym w dowolnej chwili zamkniętą pętlę dodatniego sprzężenia zwrotnego ma tylko jeden z nich. Sześć składowych bramek transmisyjnych BJ + B6 jest sterowanych komplementarną parą sygnałów CL, CL, uzyskiwanych z pary dodatkowych inwerterów G1O i G11. o "<>--;:============r:=======~--~~~~----l' M s b Rys. 7.95. Przenutnik JK CMOS. wyzwalany ujemnym zboczem ('HC76fHCI 12) a) schemat łogicmy. b) symbol gra(w;i:ny Załóżmy, i.e początkowo Q = L i S = R = J = K = H. Zatem na wyjściach bramek G3, G4 i G7 jest poziom H, a na wyjściach GS i Gó jest poziom L, gdyż przerzutnik M jest aktywny, a przerzutnik S jest nieaktywny (rozwarta bramka B5). Przy zmianie poziomu sygnału C z L na H następuje zamknięcie bramek transmisyjnych poprzednio otwartych i otwarcie bramek poprzednio zamkniętych, czyli BI , B4 i B5 są zwarte, a B2, B3 i 86 są rozwarte. W rezultacie na wyjściu G4 ustala się poziom Li na wyjściu G5 poziom H. Stan przerzutnika nie uległ zmianie, gdyż jest podtrzymywany przez obecnie aktywny przerzutnik S, który został odcięty od M (rozwarta bramka Bó). W tym stanie tylko 379 7 BUDOWA I CHAAAKTERYSTYXł CYFROWYCH V KtAOOW SCALONYCH przerzutnik M może reagować na zmiany na wejściach informacyjnych J, K. Przy opadającym zboczu sygnału C na wyjściach Q i G6 następuje zmiana poziomu z L na H, a na Q i G7 zmiana z H na L. Wejścia asynchroniczne S i R są aktywne na poziomie L, niezależnie od stanu wejść C, J, K. Układy dynamiczne 7.5.3 Stosowanie opisanych powyżej podstawowych układów CMOS do realizacji układów LSI/VLSI umożliwia obniżenie mocy strat w porównaniu z techniką N MOS, lecz niestety kosztem zwiększenia powierzchni, zajmowanej przez układ na kostce krzemowej. Wynika to stąd, że: szerokość bramki tranzystora PMOS jest zazwyczaj 2 ~ 3-krotnie więk­ sza od szerokości bramki tranzystora NMOS (p. 7.5.1.1), bramki CMOS wymagają użycia większej liczby tranzystorów (przy n wejściach liczba tranzystorów w bramce CMOS wynosi 2n, a w bramce NMOS tylko n+ I; por. rys. 7.64 i 7.72). Aby zmniejszyć liczbę tranzystorów bramki CMOS, można zastosować układ pseudo-N MOS, w którym jako obciążenie układu NMOS (por. rys. 7.64) jest zastosowany tranzystor PMOS z bramką trwale połączoną z masą. Jest to uklad statyczny, który przy y = L pobiera stały prąd zasilania, czyli jego średnia moc strat jest znacznie większa niż w bramce CM OS. Ponadto, stały prąd tranzystora PMOS działa spowalniająco na przełączanie y = H/L. Aby jednocześnie uzyskać małą powierzchnię (złożoność) układu i małą moc strat, stosuje się rozwiązania układowe określane jako dynamiczne, analogicznie do układów MOS. Formalnie biorąc, są to układy sekwencyjne, gdyż ich stany „obecne" zależą również od stanów „poprzednich" (p. 4.2.ł). Faktycznie służą one jednak głównie do sekwencyjnej realizacji układów kombinacyjnych, czyli do sekwencyjnego określania wartości funkcji przełączających. Uk łady te można z grubsza podzielić na dwie kategorie: uklady asynchroniczne i synchroniczne. W obydwu przypadkach konieczne jest stosowanie dodatkowych sygnałów sterujących łub zegarowych (co najmniej jednego). Do budowy dynamicznych układów kombinacyjnych CMOS szeroko stosowana jest asynchroniczna technika domino [12]. Przykład bramki AND wykonanej w ten sposób jest pokazany na rys. 7.96a. Układ ma dwa charakterystyczne tryby działania. Zależnie od stanu sygnału sterującego c następuje albo ładowanie wstępne pojemności C (pr:z:y c - L) albo określenie wartości funkcji przełączającej (przy c = H). Podczas ładowania na wyjściu bramki ustala się poziom L, niezależnie od stanów wej ściowych , gdyż tranzystor T5 jest odcięty. W fazie określenia wartości funkcji na wyjściu może zostać podtrzymany poziom L (jeśli choćby jeden z sygnałów x 1 , x 2, x 3 ma poziom L) lub zostanie ustalony 380 7.5. UKŁAOY CMOS poziom H (gdy x 1 = x 2 = x 3 = H) w wyniku rozładowania pojemności C przez tranzystory T2 + T5. W ogólnym przypadku, komórkę domino otrzymuje się przez wprowadzenie kombinacyjnej, statycznej sieci logicznej, złożonej z tranzystorów n-kanałowych, między dreny tranzystorów sterowanych sygnałem c. Sposób połączenia takich komórek jest pokazany na rys. 7.96b. Wszystkie komórki są synchronizowane tym samym sygnałem sterującym c. Przy c = H następuje generacja szeregowych przeniesień między sąsiednimi komórkami, co nasuwa skojarzenie z popychaniem kolejnych kostek łańcucha w grze domino (stąd pochodzi nazwa tej metody). Ponieważ ładowanie następuje jednocześnie we wszystkich komórkach, a określenie funkcji następuje kolejno w poszczególnych przewodzące a N - CMOS Inwerter statyczny Co--...-- - < 1 b r------...-- - - ---.---oUoo y BL BL BL Rys. 7.96. Układ domino a) przykład 381 komórki rcali:zuj.ąocj funkcK AND. b) sposób pol.ączcó komórek domino (BL - blok logicmy Nt.łOS) 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKŁADÓW SCALONYCH komórkach, zatem czas trwania stanu c = H może być potrzebny znacznie dłuższy od czasu trwania stanu c = L. Jeśli sygnał c jest sygnałem zegarowym, to powinien on mieć postać odpowiednio niesymetrycznej fali prostokątnej. Układy domino są niewrażliwe na zjawisko wyścigu, które oznacza niepożądane rozładowanie pojemności uprzednio naładowanej wstępnie, w wyniku procesów przejściowych. Ogólnie biorąc, aby to osiągnąć, muszą być spełnione dwa warunki: w czasie fazy ładowania na wejściach logicznych komórki muszą być ustalone poziomy odcinające tranzystory wejściowe (w tym przypadku poziomy L), w czasie fazy określenia funkcji na każdym wejściu logicznym może wystąpić najwyżej jedna zmiana poziomów (w tym przypadku z L na H). Wadą techniki domino jest brak funkcji inwersji, co wymaga stosowania - do uzyskania wyprowadzeń zewnętrznych z inwersją - dodatkowych inwerterów statycznych. Inwertery nie mogą być jednak wtrącane szeregowo w łańcuch komórek domino. Ponieważ liczba tranzystorów komórki wynosi n+ 4, opłacal­ ność techniki domino staje się wyraźna dopiero przy większej liczbie wejść n. Inną wadą układów domino jest występowanie szkodliwego zjawiska redystrybucji ładunku z pasożytniczych pojemności w bloku logicznym NMOS do „właściwej" pojemności pamiętającej C. W pewnych okolicznościach może to spowodować mylne działanie układu. Funkcje przełączające mogą być również realizowane przez układy działające synchronicznie. Układ taki jest zbudowany również z łańcucha kolejno połączonych komórek, z tym że określenie wartości funkcji i jej przesunięcie do następnej komórki następuje nie asynchronicznie, jak w technjce domino, lecz synchronicznie, zgodnie z odpowiednimi sygnałami zegarowymi. Jeśli układ realizuje najprostszą funkcję y = x, to jego działanie sprowadza się do przesunięcia informacji wejściowej łańcucha w kierunku wyjścia z opóźnieniem równym mT,,, gdzie m jest liczbą komórek łańcucha i T,, jest okresem sygnału zegarowego. Układ taki stanowi dynamiczny rejestr przesuwający. Najprostszym koncepcyjnie układem dynamicznym CMOS tego typu jest opisany już poprzednio (rys. 7.92) inwerter trójstanowy, czyli odwracający zatrzask dynamiczny. Łącząc dwa takie zatrzaski kaskadowo w sposób pokazany na rys. 7.97a, otrzymuje się układ opóźniający synchronizowaną informację wejściową o jeden takt sygnału zegarowego. Układ taki zwany jest dynamicznym przerzutnikiem D lub jednobitową komórką dynamicznego rejestru przesuwającego. Przy <P = Li <P = H jest aktywny inwerter /2 a inwerter Il jest odcięty, natomiast przy <P = H i <P = L jest odwrotnie. Oznacza to, że w żadnej chwili układ nie jest "przezroczysty" od wejścia x do wyjścia y, co jest warunkiem poprawnego działania przerzutnika D. Pojemność pasożytnicza C na wyjściu każdego inwertera służy do przejściowego pamiętania poziomu napięcia istniejącego na wyjściu inwertera w momencie jego przejścia do stanu wielkiej impedancji. Wynika stąd 382 7.5. UKlADY CMOS a 11 C'MOS X<:>---!-- 12 C2 MO S z ... +---+---Oy b 11 IZ , - -:;;;..._ Aktywne i nwertery: 1 11 I 12 I 11 I 12 11 I P~mię~ani~ p~zio~u "? POJemnosc1 j--;-'-_i z 12 H Co I I I T0 No pojemności Cb ~.._~~r'~-+---~ I ~~~'J-~L..l._r--y f T0 l,_---~ Rys. 1.97. Dwufa1.owy pri.erzut nik dynamiczny D, zbudowany z dwu inwerterów trójstanowych CMOS a) sc~maL, b) pn.ebiegj C?-3$0„ 't dalsze ograniczenie cięstotliwości sygnałów <P i <P, które przyjmuje się o postaci symetryC20ej fali prostokątnej. Ponieważ układ wymaga dwóch komplementarnych sygnałów zegarowych, zatem określa się go jako dwufazowy. Pokazane na rysunku momenty zmian poziomów sygnału x są przywiązane ciasowo do opadających zboczy zegara <I!, aby symulować zmiany y takiego samego układu, użytego do sterowania pokazanego układu. Należy zaznaczyć, że do poprawnego działania układu jest niezbędne, aby zmiany sygnału x nie wyprzedzały zmian sygnałów <P i <P. Przy nawet niewielkim opóźnieniu fazy zegara w stosunku do x (w sposób pokazany strzałkami na rys. 7.97b), może nastąpić zniekształcenie 383 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH U Kt..AOOW SCAlONYCH prubiegów sygnałów z i y. To szkodliwe zjawisko określa się jako skos zegarowy (clock skew). Podobnie szkodliwe zniekształcenie sygnału wyjściowego występuje przy nieidealnej synchronizacji zboczy sygnałów <P i <P. Zjawisko to określa się mianem hazardu zegarowego. Prostszy,jednofazowy układ dynamicznego przerzutnika Dotrzymuje się przy nieco innym kluczowaniu inwerterów, jak pokazano na rys. 7.98. Obydwa inwertery są synchronizowane tym samym zegarem i realizuj ą następujące operacje: C1 MOS o C2 MOS ~--------.-----o z - IJoo - . --o Y :!:c .L b S kos zegarowy niebezpieczny / I I )( ł I 1 ŁW 1 z sl<Os I • zegorowyl b ezpieczny I I I I ' I I I I PAM I I 'Sto4 x : I "-t- ...:_;:.::::..._J I I'--'r-~1--------;--;-- I i I I 1$tany z I I 02tAO PM ŁW I I y I : I PAM1ROZŁA I ' PAM ŁW I P;!-M Słany y : I I I I I I PAM tW i PAM : I I I I Ran.AO PAM I ROZŁAO Rys. 7.98. Jednofazowy pnerzutnik dyoamicwy O CMOS a) schemat. b) prubiegi cr.a3owc przy x<P = przy x<P = przy x<P = poziomu - 384 LL - ładowanie wstępne (ŁW) pojemności pamiętającej C; HH - rozładowanie (ROZŁAD) pojemności C; LH lub HL - brak zmian na wyjściu inwertera (pamiętanie PAM). 7.5. UKt.AOY CMOS Nie występuje tu już zjawisko hazardu zegarowego, ale niebezpieczeń­ stwo skosu zegarowego istnieje nadal, jeśli ma miejsce opóźnienie fazy sygnału I/> względem x (pokazane strzałkami w prawo na rys. 7.98b). Przesuwając się natomiast z sygnałem x w prawo o 1/4 okresu zegara otrzymuje się bezpieczny r., ±ir.,. margines skoku zegarowego równy P róbkowanie stanów logicznych sygnałów x i y powinno następować przy <P = H. Jednostronnie bezpieczny skos zegarowy ma również dynamiczny odwracający przerzutnik D pokazany na rys. 7.99 [13). Łącząc wyjście y z wejściem x otrzymuje się dwójkę liczącą, czyli układ dzielący częstotliwość impulsów o C1- MOS N-C2MOS ~-----~---~~--"'Uoo z xo--+ .___ _„y V .... "T" I .J.. ...1. .J.. ..I.. "T" .J.. "T" b X p Ł Ł z R R I V p I I t y R I I t I P I p t I I ł. I I Ł I I p I I p I I I I I I p I IR Ł p I I I I I I I t I I I p I I I I p p I I R p Ł Ł I I I I I R p Ł ,t Rys. 7.99. Odwracający jednofazowy przerzu1nik dynamiczny D CMOS a) schtmi11, b) przebiegi cza3owc 385 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKt.AOOW SCALONYCH wyjściowych przez dwa. Zawiera on dziesięć tranzystorów, czyli o sześć mniej w porównaniu z analogicznym układem statycznym i jest potencjalnie bardzo szybki. Do realizacji funkcji przełączających w łańcuchu synchronizowanych zegarem komórek stosuje się różne techniki. Jedna z nich o nazwie NORA [14] stosuje dwufazowe, trójstopniowe sekcje, składające się z dynamicznego stopnia odwracającego N-CMOS, podobnego stopnia odwracającego P- CMOS i inwertera trójstanowego (rys. 7.100). Dodatkowo wprowadzane są - w razie potrzeby- dwa inwertery statyczne. Dwa pierwsze stopnie mogą być zamienione miejscami, a także można usunąć jeden z nich. N- CMOS P - CM OS -, .... I I I I X2 ł-+--1--d _ __ ' .,,y J... I I 0--1--1--- - l x, I ... T I ~„_.,,~J ...L T .... I I Rys. 7./00. Sekcja </J komórki NORA Przy <P = L i <P = H w obydwu pierwszych stopniach następuje ładowa­ nie wstępne, a inwerter trójstanowy jest odcięty. W tym stanie powinno też nastąpić ustalenie się poziomów na zewnętrznych wejściach logicznych sekcji. Przy <P = H i <P = L następuje określenie wartości funkcji przełączającej i ustalenie jej na wyjściu aktywnego inwertera trójstanowego. Pokazana sekcja nosi nazwę sekcji <P. Przy zamianie miejscami sygnałów <P i <P otrzymuje się sekcję <P. Łącząc kaskadowo takie dwie sekcje otrzymuje się komórkę logiczną NORA. Jak widać, sekcje tworzące komórkę realizują naprzemiennie operacje ładowania wstępnego/pamiętania i realizacji funkcji/przesuwu. Komórki układowe NORA są niewrażliwe na zjawisko wyścigu, gdyż spełniają 386 7.6 . UKl.ADY a;CMOS dwa warunki, wymienione uprLednio przy omawianiu układów domino. Układy NORA są także do pewnego stopnia odporne na zjawisko skosu zegarowego między sygnałami <I>, <I> i sygnałami wejściowymi. Zastosowania tej techniki obejmują układy bardziej złożone niż elementarne bramki, gdyż liczba tranzystorów komórki wyra7..a się przy trzech stopniach zależnością n + 9, a przy dwóch stopniach zależnością n+ 6. Na przykład, trójwejściowa bramka AND wymagała­ by użycia w dwóch stopniach 9 tranzystorów. Z drugiej strony, pełny jedno bitowy sumator można wykonać w komórce NORA zawierającej tylko 32 tranzystory. Technikę jednofazową pokaz.ano na rys. 7.101 [13]. Podstawowa komórka zawiera dwie sekcje: pierwsza składa się z dynamicznego stopnia odwracającego N- CMOS i półkluczowanego inwertera N-C 2 MOS, a druga z dynamicznego stopnia odwracającego P-CMOS i półkluczowanego inwertera P- C 2 MOS. Sekcje te działają podobnie jak w technice NORA, z tym że komórka jest synchronizowana jednofazowo. Łatwość synchronizacji jest okupiona większą złożonością układową (dwa tranzystory więcej niż w technice NORA), tak że łączna liczby tranzystorów komórki wynosi n+ 11. P- CMOS N• CMOS ---.., ,....-- -.., .. ...., ..._!_J I I I I •2o-H •1o-f-i '--- I LL,.,, I I I I I x+---4 I I I I I I I I '----- _,J I li"' ' I I I I I --'\--' Blok P MOS Blok HMOS <0-4-~~~~~~~-4-~~-'~~~~~~~~~ Rys. 7.101 . Przykład budowy komórki synchronizowanej jednofazowo UKŁADY BiCMOS 7.6 W nowoczesnych urządzeniach cyfrowych często występuje potrzeba przesyłania szybkich sygnałów cyfrowych przez wielobitową strukturę magistralową, przyłączoną do wielu wejść i wyjść stowarzyszonych układów. Oznacza to, że z każdą szyną (przewodem) magistrali związana jest dość duża pojemność 387 7. BUDOWA I CHARAKTERVSTVKI CVFRO\VVCH Ul<'.t.ADÓW SCAi.ONYCH pasożytnicza. Wejście trójstanowe, sterujące szyną, musi zatem w procesie warunki do szybkiego ładowania i rozładowania tej pojemności (por. rys. 7.26b). Im szybsze są te procesy, tym większa może być częstotliwość sygnałów transmitowanych magistralą i tym samym wydajność urządzenia. Oznacza to, że wyjście trójstanowe powinno mieć jak największą wydajność prądową i jak najmniejszą rezystancję wyjściową w obydwu stanach logicznych. Wymagania takie są zazwyczaj lepiej spełniane przez układy bipolarne niż alternatywne układy CMOS. Z drugiej strony mała moc strat układów CMOS predystynuje tę technikę do realizacji układów wejściowych i przetwarzających dane. Stąd powstały układy CMOS z bipolarnymi układami wyjściowymi określane nazwą BiCMOS. Układy BiCMOS wytwarza się niemal wyłącznie jako wspomniane wcześniej wielobitowe (8- i 16-bitowe) sterowniki magistratowe. Są one wytwarzane między innymi w pięciowoltowej rodzinie ABT (Advanced BiCMOS Technology) i nowszych, trzywoltowych rodzinach LVT i LVT16 przez firmy Philips i Texas lnstruments. Typowe czasy propagacji buforów '244 z tych rodzin wynoszą odpowiednio 2.9, 2.4 i 2.4 ns przy Ci = 50 pF. Schemat typowego inwertera BiCMOS pokazuje rys. 7.102. Przy x = L przewodzą tranzystory Pl , P2, N3 i Tl , pozostałe nie przewodzą, i na wyjści u jest y = H. Przy x = H jest odwrotnie. Ponieważ wyjściowe tranzystory bipolarne Tl, T2 są połączone równolegle z tranzystorami MOS (odpowiednio P2, N4), więc napięcie wyjściowe zmienia się w pełnym zakresie od OV (poziom L) do U DD (poziom H). Wadą układów BiCMOS jest znacznie bardziej skomplikowana technologia niż przy wytwarzaniu układów CMOS. Oznacza to również odpowiednio wyższą cenę. Dlatego do tych samych zastosowań opracowano również w „czystej" technologii CMOS 0.6 µm konkurencyjne układy trzywoltowe w rodzinach HLL i AL VC (Philips, Texas Instruments) o typowym c-asie propagacji 2.1 ns (przy CL = 50 pF). przełączania zapewnić ~----.----.---ouoo r - -t - - - l --Oy Rys. 7.102. Inwerter BiCMOS 388 7.7. UKŁADY GaAs UKŁADY GaAs 7.7 Wszystkie poprzednio opisane cyfrowe układy scalone wykorzystywały krzem jako materiał bazowy. Zastosowanie nowego materiału w postaci arsenku galu (GaAs) umożliwiło istotne polepszenie szybkości działania [15). W układach cyfrowych GaAs stosuje się n-kanałowe tranzystory polowe z bramką złączową. Najczęściej są to tranzystory ze złączem metal-półprzewod­ nik (Schottky'ego), oznaczane symbolem MESFET (Metal- Semiconductor Field- Ejfect Transistor). Są również stosowane tranzystory polowe ze złączem p-n, tradycyjnie określane jako złączowe (JFET - Ju11ctio11 FET). Wybór tych rodzajów tranzystorów wynika z porównania właściwości arsenku galu i krzemu [14). Zasadniczą zaletą arsenku galu jest znacznie (ok. 6-krotnie) większa ruchliwość elektronów (np. przy koncentracji domieszek N = 1017 cm - 3 dla GaAs otrzymuje się µ."' 5000 cm 2/Vs, natomiast dla Si ok. 800 cm 2/Vs). Wynikają stąd różnice parametrów tranzystorów o podobnych geometriach, a więc transkonduktancji Bm• która jest wprost proporcjonalna do µ, oraz częstotliwości granicznej fr, która jest wprost proporcjonalna do Bm· Przy typowo stosowanych w układach GaAs krótkich długościach bramki (L9 = 0.5 + I µm) należy również uwzględnić poprawkę wynikającą z nasycenia prędkości unoszenia (różnica na korzyść GaAs jest dwukrotna). Tranzystory polowe z bramką izolowaną (IGFET) są bardzo rzadko wykorzystywane w układach cyfrowych GaAs, z uwagi na niezadowalające parametry techniczne i trudności technologiczne. W szczególności, ładunek stanów powierzchniowych Q„ jest w tranzystorach GaAs o 2 do 3 rzędów wielkości większy niż w tranzystorach Si, co istotnie utrudnia realizację tranzystorów o stabilnych napięciach progowych. Bardzo trudne jest również wytwarzanie cienkich warstw dielektryka bramkowego o bardzo dobrej jakości. Tranzystory bipolarne GaAs analogiczne do krzemowych, tzn. homo· złączowe, nie mają sensu użytkowego, gdyż ruchliwość dziur w GaAs jest mniejsza niż w Si. Również znacznie krótszy jest czas życia nośników mniejszoś­ ciowych. Natomiast tranzystory bipolarne heterozłączowe GaAs mają możliwo­ ści o rząd lepsze od tranzystorów MESFET GaAs ifr = 100 + 200 GHz). Stwarza to dalsze perspektywy rozwoju układów cyfrowych GaAs. Zasadniczą przeszkodę stanowią jednak trudności technologiczne. Układy cyfrowe GaAs wykonuje się w podłożu półizolacyjnym (rezystywność 107 + 109 !km), nie domieszkowanym lub słabo domieszkowanym akceptorowo (zazwyc-z.aj stosuje się ind In). W ten sposób osiąga się bardzo dobrą izolację scalanych elementów, co jest kolejną zaletą GaAs. Poszczególne elementy są wytwarzane w takim podłożu przez lokalne, kilkakrotne domieszkowanie metodą implantacji jonów (zazwyczaj krzemu lub selenu), podobnie jak w typowym procesie planarnym (p. 6.2). Jako materiał warstw izolacyjnych stosuje się zazwyczaj azotek krzemu Si 3 N 4 , a także P-SiN i - w warstwach pośrednich - Si0 2 . 389 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKLADOW $CAl0 NYCH Podstawowa struktura tranzystora GaAs MESFET jest bardzo prosta (rys. 7.103). Obszar kanału jest tworzony przez cienką (100+ 200 nm) warstwę typu n (typowo N 4 "' 2 · 1017 cm - 3) , łączącą obszary 11 • drenu i źródła. Bramka metalowa o typowej długości L, = 0.6 + 1 µm jest wykonywana z różnych metali o b Oielekl ryk Półizolocyjne podłoże GoAs c Obszary i mplantowane Rys. 7.103. Trao~ystor GaAs MESFET a) pod$ta.,.,·owa $1ruktura, b)łymbol •nni ystora normalnie włączonego (D·1'.fESFEn. c) symbol 1ran%)'$lOrt nonnalnlt wylącio neg<> (E·M€Si:E1) (Ti/Pt/Au, WSi„ WN.), podobnie jak kontakty omowe (Au- Ge, Au-Ge/Ni). Przez technologiczny dobór grubości kanału i poziomu jego domieszkowania, można regulować wartość napięcia odcięcia UP i prądu I Dss = ID (U GS = O). W ten sposób można uzyskać nie tylko typowy tranzystor MESFET normalnie włączony (l Dss > O, U, < 0), czyli z kanałem zubożanym (D-MESFET, depletion mode), ale taki.e tranzystor MESFET normalnie wyłączony (IDss = O, UP > O), czyli z kanałem wzbogacanym (E- MESFET, e11hanceme11t mode). Przy stosowaniu tranzystorów D- MESFET można uzyskać większą amplitudę logiczną U = UG max- U czyli różnicę między maksymalnym dodatnim napięciem bramki UG...,. które nie powoduje jeszcze znaczącego przewodzenia złącza (typowo UG"'" = 0.6 + 0.8 V), a napięciem odcięcia UP < O (typowo U "' I V). Natomiast stosując tranzystory E- MESFET otrzymuje się mniejszą amplitudę logiczną U "' UG max i mniejszą moc strat, lec-.i: generalnie również mniejszą szybkość działania (dłuższy czas propagacji). Jak wspomniano, w układach cyfrowych GaAs stosuje się także klasyczne polowe tranzystory złączowe (JFET). Są one trudniejsze w produkcji od tranzystorów MESFET, ponieważ do wytworzenia tranzystora JFET jest wymagana dodatkowa implantacja ścieżki p + do wytworzenia bramkowego złącza p +-n. Konieczna jest przy tym precyzyjna kontrola głębokości tego złącza w celu ustalenia dokładnej wartości napięcia odcięcia. Zaletą tych tranzystorów jest większa dopuszczalna wartość UG max "' I. I V, co umożliwia zwiększenie amplitudy logicznej. Pierwsze układy cyfrowe GaAs były budowane przy wykorzystaniu tranzystorów D-MESFET i techniki BFL (Bu.ffered FET Logic). Schemat przykładowej bramki NOR BFL jest pokazany na rys. 7.104. Jest to układ „ 390 7.7. UKŁADY GaAs a lBFtl + Uoo H 01 T2 02 T3 x, x, y=x 1 x 2 vx1 X, TS IsoFLj b c lsLcF I + Uoo x, X, „ ., 01 +Uoo 02 03 DL os -u„ - Uss Rys. 7.104. Struktury logiczne GaAs z tranzystorami D-MESFET a) układ 8F4 b) układ SOFL. c) uklad SLCF dwustopniowy, składający się ze stopnia inwersyjnego i wtórnika źródłowego z diodami przesuwającymi poziomy napięcia wyjściowego. Tranzystor Tl stanowi obciążenie aktywne pierwszego stopnia, a T4 pełni funkcję źródła prądowego. Układy BFL są szybkie, lecz mają relatywnie dużą moc strat i wymagają dwóch napięć zasilających uak wszystkie układy z tranzystorami D- MESFET). Układy SDFL(Schottky Diode FETLogic) również wykorzystują tranzystory D-MESFET (rys. 7.104b). W tym przypadku pierwszy stopień realizuje klasycznie funkcję OR przy użyciu diod Schottky'ego (por. rys. 7.lb),a drugi stopień jest inwerterem. Do realizacji bardziej złożonych funkcji tranzystor T3 jest wykonywany jako dwubramkowy i wówczas drugi stopień realizuje funkcję NAND . Dioda D5 służy do przesunięcia poziomu napięcia, a źródło prądowe (Tl) do wymuszenia stałej wartości prądu płynącego przez tę diodę. 391 7. BUDOWA I CHARAKTERYSTYKI CYFROWYCH UKŁADÓW SCAlONYCH W technice SLCF (Schottky-diode Level-slrifter Capacitor-coupled FET Logic) zastosowano diody Schottky'ego o celowo zwiększonej pojemności, aby przyspieszyć przełączanie bramki (rys. 7.104). Wykorzystanie tranzystorów E- MESFET umożliwia budowę bardzo prostych struktur układowych, o jednym napięciu zasilającym i bardzo małej mocy strat. Ich wadami są natomiast mniejsza amplituda logiczna w porównaniu z układami D- MESFET (a więc mniejsza odporność na zakłócenia), oraz konieczność precyzyjnej kontroli napięcia odcięcia UP tranzystorów E- M ESFET, a także rozrzutu tego napięcia w tranzystorach jednocześnie wytwarzanych na płytce GaAs. Zapewnienie niewielkiego rozrzutu UP (rzędu 30 mV lub mniej) stanowi trudny problem technologiczny. Najprostsze układy z tranzystorami GaAs typu E- MESFET i E-J FET są wykonywane w technice DCFL (Direct-Coupled FET Logic), analogicznej do klasycznej techni ki DCTL w układach bipolarnych. Budowa bramki NOR DCFL jest pokazana na rys. 7.105a. Aby polepszyć jej możliwości sterowania obciążeń pojemnościowych, stosuje się dodatkowe bufory o postaci pokazanej na rys. 7.105b. Zmniejszenie wymagań odnośnie do precyzji wartości napięć odcięcia uzyskuje się przy wykorzystaniu tranzystorów niecalkowicie normalnie wy/ączo- o b R R c ILPFLl „ T2 x, " ~--4---+----<,__-ouo o "1 Ds T3 TL Tl x, x, R, Rys. 7./05. S1ruktury logiczne GaAs z tranzystorami E-M ESFET a) podstawo•·ai bramka NOR OCFL. b) bufor odwracając)' DCFL. c) uklad LPfL 392 T2 7.7. U KŁADY GłAI nych (quasi-E), o napięciu odcięcia w zakresie -0.4-;- +O.I V. Jedno ze stosowanych rozwiązań układowych LPFL (Low Power FET Logic) jest pokazane na rys. 7.105c. Układ umożliwia na wejściu realizację funkcji zwarciowej DOR, pod warunkiem, że każde wejście jest sterowane z oddzielnego wtórnika źródłowego (takiego jak T2, T3 i T4). Główna zaleta układów cyfrowych GaAs - duża szybkość działania - w wielu zastosowaniach jest porównywalna z wynikami uzyskiwanymi w zaawansowanych, subrnikronowych technologiach bipolarnych i CMOS. Układy GaAs są stosowane głównie jako układy specjalne (do zastosowań wojskowych, kosmicznych, telekomunikacyjnych), w których jest wymagana ekstremalnie duża szybkość działania. Typowymi przykładami są układy cyfrowe bardzo wielkiej częstotliwości, np. dzielniki częstotliwości. Bardzo duże koszty technologiczne i stosunkowo duża moc stra t ograniczają jednak użycie układów GaAs w szerszych zastosowaniach. LITERATURA I. Kalisz J.: Cyfrowu uklady scalone w iechnice sysiemowej, MON, Warszawa 1977 2. Pieńkos J., Turczyński J.: Uk/ady scalone TfL w systemach cyfrowych, WK L. Warszawa 1986 3. Muller H. H., Owens W. K., Verhofstadt P. W.J.: Fully compensaied emitm-coupltd logic: eliminating the drawbacks of con"'11tional ECL. IEEE J. Solid-State Circ., Vol. SC-8, No. 5, October 1973, 362 4. Dhaka V. A„ M uschinske LE„ Owens W. K.: Subna-.ind emiu.r-coupl..t logic gott cirCJ1it u.sing lsop/anar li. Ibid.. 386 5. Ta.maki Y. tt al.: AJuanced process deuice technology for 0.3-µm high-performance bipolar LS/'s. IEEE Trans. Elcctr. Dcv„ Vol. 39, No. 6, June 1992, 1387-1391 6. Cbuang C. T. tt al.: High-speed low-power ECL d rcuit with AC-coupled .<e/f·biased dy11wnic current source and actlve-pul/-down emi1ter{ollower s1<1ge, IEEE J. Solid-State Circ., Vol. 27, No. 8, August 1992, 1207- 1210 7. Pearson T.: F.CL clock distribution 1ech11iques. Motorola Application Note AN1405, 1996 8. Gajewski P„ Turczyński J.: C)frowe układy scalone CMOS, WKl., Warszawa 1990 9. Shoji M.: CMOS digital circuit technology, Prentie<>Hall International, 1988 10. Rabaey J. M.: Digital inugraud circuits, Pttntice-lfall, 1996 li. Forstner P.: Crossbar technology, Texas lnstruments Application Note, August 1995 12. Kra.mbeck R. li. et al.: High·SP<?td compa<t circuiu with CMOS, IEEE J. Solid-State Circuits, v. SC-17, 1982. No. 3. 6 14-619 13. Ji-Ren V. et al.: A trut single-phase-clock dynamie CMOS circuir uchniq11e. IEEE J. Solid-State Circuits, vol. SC-22, 1987, No. 5, 899-901 14. Goncalves N. F., De Man H.J.: NO RA: A racefree dynamie CMOS 1ech11it111e.for 11ipeli11ed logic s1ruc1ures, IEl!E J. Solid-State C ircuits, v. SC-18. 1983, No. 3, 26 1-266 IS. Long S. L, But ner S. E.: Gollium arsenidedigital integroted cirCJlit design, McGraw-Hill Publ. Co., New York 1990 8 CYFROWE BLOKI FUNKCJONALNE PODSTAWOWE DEFINICJE 8.1 W poprzednich rozdziałach opisano realizacje -zarówno logiczne, jak i fizyczne - podstawowych układów cyfrowych. W układach kombinacyjnych takimi elementami logicznymi są bramki, w układach sekwencyjnych - przerzutniki. Obecnie zajmiemy się bardziej zlożonymi układami zbudowanymi z takich elementów, realizującymi określone funkcje. Układ cyfrowy określa się jako blokfimkcjonalny, jeśli: składa się z pewnej liczby powiązanych ze sobą elementów logicznych (kombinacyjnych lub/i sekwencyjnych), realizuje jedną lub więcej funkcji, zależnie od stanu wejść sterujących, przy określonym stanie wejść sterujących realizuje tylko jedną określoną funkcję. Bloki funkcjonalne, realizujące typowe funkcje logiczne i arytmetyczne, są wytwarzane jako układy scalone MSI i LSI. Bloki te mogą służyć do tworzenia bardziej złożonych zespołów funkcjonalnyclr. x=oos Y=FoR X BF Rys. 8.1 Ogólny symbol bloku funkcjonalnego Ogólny symbol bloku funkcjonalnego BF jest pokazany na rys. 8.1. Binarne sygnały wejściowe X bloku dzielą się na wejściowe sygnały informacyjne D (dane podlegające przetworzeniu w BF) i sygnały sterujące S. Binarne sygnały wyjściowe Y bloku dzielą się na wyjściowe sygnały informacyjne F (uzyskane 394 8.1. PODSTAWOWE DEFINICJE w wyniku przetworzenia sygnałów D) oraz sygnały kontrolne R. Odpowiednio oznacza się wejścia i wyjścia. Podane oznaczenia D, S, Fi R dotyczą wektorów binarnych, np. D = (d 0, d 1 , •.. , d 7 ), z których po odrzuceniu nawiasów i przecinków można otrzymać ciągi znakowe (słowa), np. d0 d 1 •..d 1 . Słowa wejściowe X i wyjściowe Y stanowią złoi.enia odpowiednich słów składowych: X= D• Si Y = F• R. Jeśli układ nie ma wejść S, to D = X. Podobnie jeśli nie ma wyjść R, to F = Y Opis formatu słów jest podany w p. 2.1. Realizacja przy określonym stanie wejść sterujących tylko jednej okreś­ lonej funkcji oznacza wykonanie mikrooperacji, czyli określonej czynności logicznej łub arytmetycznej, która jest wykonywana przez blok przy pojedynczym stanie s, sygnałów sterujących. Stan ten można wyrazić słowem zerojedynkowym lub zapisać go w postaci równoważnego iloczynu literałów (np. 100101 lub s1 s1 s3 s,s5 s6 , p. 4. 1.2). W ostatnim przypadku stan ten nosi nazwę funkcji sterującej, która - ogólnie biorąc - moi.e mieć postać nie tylko pojedynczego iloczynu, lecz również bardziej złożonej formy boolowskiej. W przypadku bloku sekwencyjnego wykonanie mikrooperacji odpowiada takiej funkcji bloku, która jest wykonywana w czasie jednego taktu pracy bloku (w układach asynchronicznych takt jest określony przez odstęp czasowy między kolejnymi zmianami stanu pamięci układu, a w układach synchronicznych takt jest określony przc·z okres sygnału zegarowego). Zestaw wszystkich mikrooperacji, wykonywanych przez dany blok funkcjonalny, stanowi jego opis funkcyjny. Mikrooperację µ wykonywaną przez blok kombinacyjny moi.na zapisać w postaci funkcji µ: D .... Y i warunkującego jej realizację stanu sterowania S, w postaci s.: Y= µ(D) Zapis s.: jest równoważny wyrażeniu jeśli S = s. to (gdy s. wyraża się słowem zerojedynkowym) albo jeśli s. = I to (gdy s. wyraża się iloczynem literałów). Przy użyciu angielskich słów kluczowych stosuje się słowo if zamiast jeśli oraz then zamiast to. Relacja S = s. bądź s. = I stanowi predykat (p. 1.2), którego spełnienie warunkuje wykonanie mikrooperacji µ.Dlatego w praktyce predykat taki często nazywa się waru11kiem. Zależnie od przyjętego alfabetu rachunku zdań - zazwyczaj {O, I} lu b (true,false} - spełniony predykat staje się zdan iem o wartości I łub true, a niespełniony predykat zdaniem o wartości Olub fa/se . W dalszej części tego rozdziału stosowany będzie alfabet {O, I}. Wyjątkiem jest zapis w języku Pascal, w którym do tego celu jest przyjęty alfabet {rrue, fałse}, określany jako boolowski (boołean). 395 8 CYFROWE BLOKI FUNKCJONALNE Na przyklad, mikrooperację następnika, stanie S[I, 2] = Ol, można zapisać w postaci: S 1s2 realizowaną przykładowo przy =Ol:Y=D +I gdzie słowa Y i D w postaci są traktowane jako liczby. Najprostszy zapis otrzymuje się s,s2: Y= D+ I gdzie s1s2 interpretuje się już nic jako złożenie literałów, lecz jako iloczyn boolowski. Tę samą mikrooperację można także wyrazić w języku Pascal: if (si =O) and (s2 = I) then Y: = Succ(D) przez bardziej złożoną Na przykład, mikrooperację poprzednika, realizowaną przy stanie S = s,s2 v s3.S4 = I , można zapisać w postaci Stan sterowania może być również wyrażony postać funkcji sterującej. przykładowo s,sl V S3S4: y = D- 1 Mikrooperacja operacji porównania może być także wyrażana predykatem, np. w mikro- r = (y =z) Oznacza to, że sygnał kontrolny r przyjmuje wartość I tylko wtedy, gdy zmienne y i z mają te same wartości. Jeżeli stan sterowania opisuje się określonym słowem dwójkowym, złożonym z pewnej liczby bitów, to nazywa się go również mikrorozkazem, powodującym wykonanie określonej mikrooperacji. W zapisie mikrooperacji dla bloków sekwencyjnych zazwyczaj stosuje się znaki := lub +-. Po prawej stronie takiego znaku występuje zmienna w stanie poprzednim, a po lewej stronie tego znaku w stanie następnym. W najprostszej mikrooperacji przypisania 8 := A lub B+-A zapis ten oznacza, że zmienna 8 przyjmuje wartość A. Jeżeli słowa A i B są umieszczone w odpowiednich rejestrach, to zapis B +- A ooznacza „prześlij A do B" Gest to zasadnicza operacja języka przesiań rejestrowych, stosowanego do prostego opisu systemów cyfrowych). Opisywane poniżej bloki funkcjonalne będą przedstawione za pomocą symboli graficznych według zaleceń !EC. Symbole ogólne operują stanami zewnętrznymi równymi stanom wewnętrznym (p. 4.1.4). Natomiast symbole przykładowych ukladów scalonych wprowadzają odpowiednie rozróżnienia tam, gdzie użyte są wskaźniki poziomu. Oznaczenia typów układów scalonych podane w konwencji 'XXX (np. ' 151) odnoszą się do układów z popularnych klas TIL i HCMOS (np. 74151, 54LSl5ł , 74HC151). 396 8_2.. UKŁADY KOMBINACYJNE Do opisu mikrooperacji wykonywanych przez bloki jest zastosowany tak że język Turbo Pascal. Odpowiednie procedury wchodzą w skład symulatora komputerowego TLS, opisanego w p. 4.3. UKŁADY 8.2 KOMBINACYJNE 8.2.1 Multipleksery i demultipleksery Układy multiplekserów i demultiplekserów są określane jako bloki komutacyjne. multiplekserem umożliwia wybór i przesianie na wyjście y z N wejść informacyjnycli d•. Numer wejścia k E {O, I, ..., N - l } = N jest wyznaczany przez stan A wejść adresowyclt, określany krótko jako adres. MuJtiplekser realizuje zatem funkcję wielopolożeniowego przełącz­ nik a z cyfrowym wyborem pozycji. Przy powszechnie stosowanym do adresowania kodzie NB liczba N wejść informacyjnych jest związana z liczbą n wejść adresowych zależnością N = 2". Format slowa adresowego odpowiada n-bitowemu kodowi NB, to znaczy A [n - l : OJ, co np. przy n = 3 daje A (2: OJ i A = a2 a1 a0 • W często stosowanych oznaczeniach wejść adresowych w postaci liter A, 8, C, D litera A oznacza zawsze najmniej znac-4cy bit, a pozostale litery oznaczają bity na odpowiednio wyższych pozycjach. Zazwyczaj układy multiplekserów mają również dodatkowe wejścia sterujące zwane zezwalającymi (E lub EN, z ang. Enable). Słowo steruj ące Sjest wtedy złożeniem S = A • E, natomiast funkcja sterująca jest iloczynem logicznym: S = A· E, w którym słowa A i E są również traktowane jako iloczyny logiczne. Symbol graficzny multipleksera, którego słowo E jest jednobitowe (czyli E = e), jest pokazany na rys. 8.2a. Notacja zależnościowa G oznacza funkcję AND, to znaczy, że wewnętrzny stan wejść, uzależnionych od stanu G, pozostaje w relacji AND ze stanem G. Funkcję multipleksera Hl z Ntt można zatem opisać Układ zwany sygnału z jednego formą boolowską b o EN MUX -- ~ }G_q_ ' ''' - o o{ o.~ -- .' +1:: y N-I n -1 - 1 ~ N- 1 Rys. 8.1 Ogólny symbol graficzny a) nulllipleU<n, b) dmlu lupkk""' 397 'i ·l-t~ ~ EN ~ 1 -. o = ' ' ox o o }G..Q._ 1 N· 1 n-1 d N-1 Yo I' - y, ' •' I •• . .•• - 8. CYFROWE BlOKI FUNKCJONALN( 1'1-1 y= e V P,(A)d, t=O gdzie: k = L (A) P• - iloczyn pełny (minterm) zdefiniowany w p. 4.1.2. Funkcję tego multipleksera można Leż opisać związkiem i\'- I y =e V (L(A) = k)dk k• O gdzie wyrażenie L(A) = k stanowi predykat. Predykat ten, podobnie jak poprzednio iloczyn Pk(A), pelni runkcję przełącznika wybierającego tylko jedno wejście d, ze zbioru {d 0 , d1 , ••• , dN _1}, co odpowiada opisanej notacji zależnościowej G. Mikrooperację multipleksowania można zapisać w postaci (k e N) Demultiplekser spełnia funkcję odwrotną do multipleksowania. Umoż­ liwia to przesłanie sygnału z wejścia d na wybrane jedno z N wyjść Yt· odpowiednio do stanu A wejść adresowych. Działanie demultipleksera opisuje związek k = O, I, ..., N - ł lub Y• = e(L(A) = k)d, Mikrooperację k „ O, l, ..., N- I demultipleksowania zapiszemy w postaci eP,(A): y, = d, (k e N) Symbol ogólny demultipleksera przedstawia rys. 8.2b. Scalone uklady multiplekserów i demultiplekserów MSI są wytwarzane w wielu odmianach w klasach TTL, ECL i C MOS. Przykład multipleksera" ł z 8" typu '15 l z klasy TTL jest pokazany na rys. 8.3. W symulatorze TLS opisuje go procedura procedure KUX 151(A: r3; O : r8; e : B; vary, w: 8); bes i n if e • l tben y :• O elae y : • D[(A[2 ) ohl I or A[IJ) a hl w :• y xor l end; I or A[O ] ]; W celu zwiększenia liczby N, która w pojedynczym układzie scalonym nie przekracza 16, układy takie moina łączyć w większe zespoły, określane jako multipleksery piramidalne. Przyklad ukladu demultipleksera jest omówiony w p. 8.2.3.2. Rozszerzenie opisanych prostych bloków, służących do komutowania informacji jednobitowej, stanowią bloki komutujące słowa wielobitowe. Taki 398 8.2. U ICŁAOY KOMBINACYJNE multiplekser grupowy służy do wybierania jednego z wielu słów wejściowych (D 0 , D1, D2 , ••• ). Demu ltiplekser grupowy kieruje jedno slowo wejściowe D do jednego z wielu wyjść grupowych. Zespól połączeń między wyjściami mu ltipleksera grupowego i odpowiednimi wejściami demultipleksera grupowego stanowi magistralę. Funkcję wprowadzenia sygnałów na magistralę można również zrealizować za pomocą a 7 A{:oo, - 11 o, - 10 9 - 3 2 .,•••• o •• •• '1Sl MUX - EN o}G70 4 I IS •••• - " •• 13 12 2 5 -y 6 -- o 1 2 , ) 5 6 1 b -;- • •• 0 - •• 0 - o, 0 - - -I - ~ - -- - - ~ - ~ ~ - - - - l ... ,_ ..... - H - -- ----- :--i w=j i-J - ~ i-- -- -- -- "' ~ - >---- Rys. 8.J Mul1iplekser · 1s1 •) $)'ftlbol, b) 399 idwm.11 y 8. CYFROWE BLOKI FUNKCJONALNE zespołu układów z wyjściami trójstanowymi lub z otwartym kolektorem. polegam.in. na tym, że gdy używamy multipleksera, wówczas z każdym przewodem magistrali związana jest pojemność tylko jednego wyjścia, natomiast przy stosowaniu wyjść trójstanowych z każdym przewodem magistrali jest związanych N wyjść, czyli łączna pojemność jest N-krotnie większa. Ponadto w pierwszym przypadku stan wejść sterujących jest kodowany dwójkowo (kod NB), natomiast w drugim jest w kodzie „1 z N". Różnica Zastosowanie multiplekserów do syntezy układów kombinacyjnych 8.2.2 Ogólna postać kanonicznej formy sumacyjnej (p. 4.1.2) i formy boolowskiej, opisującej multiplekser są wyraźnie podobne. Dobierając takie wartości k, przy których d• = l, można określić dowolny zbiór T (p. 4.1.2). Oznacza to, że multiplekser o n wejściach adresowych może realizować dowolną funkcję przełączającą n zmiennych, przez ustalenie na odpowiednich wejściach d• stanu O lub I. Można jednak do tych wejść przyłączyć alternatywnie jedną zmienną (prostą lub zanegowaną), co oznacza, że multiplekser o n wejściach adresowych można wykorzystać do realizacji dowolnej funkcji przełączającej n+ I zmiennych, którą oznaczymy przez f(x 0 , x 1• „ .• x.). Zadanie syntezy polega na określeniu stanów poszczególnych wejść. Postępowanie I. 2. 3. 4. 5. przy syntezie jest następujące: Wybieramy multiplekser o liczbie n wejść adresowych mniejszej o I od liczby zmiennych zadanej funkcji przełączającej. Dla wygody oznaczamy zmienne x zgodnie z pozycjami (n+ 1)-bitowego kodu NB (np. X= x 3 x 2 x 1x 0 ) i podajemy zmienne x na wejścia a o tych samych indeksach (x 0 -+ a0 • . ..• x._ , -+ a. - 1). Przedstawiamy funkcję przełączającą taką formą sumacyjną f, której skladniki stanowią lub zawierają iloczyny pełne (mintermy) w odniesieniu do zmiennych x. _ 1, x. - 2 , .. „ x 0 . Składniki te mogą mieć zatem postać PHX) albo x.Pł(X) albo x.Pł(X). Wyznaczamy wejścia d., do których ma być przyłączony stan I. Numery k tych wejść są określone przez równoważniki dziesiętne tych składników formy f, które nie zawierają zmiennej x., czyli k = L(PZ). Wyznaczamy numery wejść dk, do których ma być przyłączona zmienna x•. Są one określone przez równoważniki dziesiętne k tych iloczynów PZ(X), które w danej formie są mnożone z x•. Do tych wejść, do których już poprzednio przyłączono stan I, nie przyłącza się zmiennej x•. gdyż X V I = I. 400 82. 6. 7. UKŁADY KOMBINACYJNE Podobnie określa się numery wejść d4 dla zmiennej x •• a na tych wejściach na których wyznaczono stany x. i ustala się stan I. Na pozostałych wejściach ustala się stan O. x.. Przykład. Określić połączenia y 1), 2) multipleksera realizującego funkcję przełączającą = XzX I VX1Xo V X2X1 Xo wybieramy multiplekser o dwóch wejściach adresowych H'153) i łączymy wejścia adresowe jak pokazano na rys. 8.4. ł '153 EN •• •• MUX O}G O 1 3 o t -- <>y 1 Rys. 8.4 2 Przykład wykorzys1ania multipleksera do n:aliucji runkcji pr?..Clączającej 3) 4) 5) 6) 7) y= x x x x x1x0 V x 1 x 1x0 i. 2 1x0 V 2 1 0 V wejście o stanie I jest wyznaczone przez trzeci składnik: L(Ol) = I; wejścia zmiennej x1 są wyznaczane przez pierwszy i drugi składnik: L(Ol) = I i L (OO) =O, przy czym wejście l zostało już przyłączone poprzednio do stanu I; wejście zmiennej x 2 jest wyznaczone przez czwarty składnik: L(IO) = 2; „nieobsadzone~ wejście 3 łączymy ze stanem O. Przy syntezie można również czasem wykorzystać wejście zezwolenia e. W niektórych przypadkach można również wyeliminować inwerter zm iennej x 0 , jeżeli dokona się innego przyporządkowania zmiennych wejściom adresowym (np. zamieniając x 1 z x.). Program M uxGen4 w języku Turbo Pascal [3) umożliwia automatyczną syntezę układu, realizującego dowolną, zupełną funkcję przełączającą czterech zmiennych z zastosowaniem typowego multipleksera scalonego '151. Danymi wejściowymi są elementy zbioru T4 , czyli te liczby kEN4 = {O, I, ... , 15}, dla których/(X 4) = I. Program umożliwia syntezę układu dla czterech przypadków, odpowiadających różnym przyporządkowaniom zmiennych x 0 , x„ x 1 , x 3 do wejść a0 , a„ a1 i d4 • Na przykład, dla zbioru T = {1,3, 7, 10, 15} w wersji 3 (a0 - x 2 ,a 1 - x 3 , a 1 - x 0) otrzymuje się d• =I, d 2 = d 5 = d 7 = x 1 i na pozostałych wejściach d stan O, co oznacza eliminację inwertera zmiennej x 1 . 401 8. CYFROWE BLOKI FUNKCJONALNE program MuxGen4: { Mu l tiplekserowy g enerator funkc j i czterech zmiennych uees Cr t ; var t , v set o f O . . 15 ; ~ string ( 2 ); m, n, I intege r; } begin Cl rScr; t :• GoToXY(3 , 8); () ; Wr ite l n( ' Wp i sz e lementy zbioru T z przedziału (O, 15 )' ); ( ko niec wp isywania: Enter ) ') ; Writel n(' repeat Read ln (u ) i Vał(u , ltl, n); if n = O then t u_n til n > O; := t + (m); ClrScr; TextCoJor(Black ) : TextBac kgro und(Wh ite); Write('Elcmenty zbi oru T : ') ; t or m: • O to 15 do if min t then Wr i te (m, ') : Writeln; Writeln ; for . I : = 1 to 4 do begin case 1 of 1: 2: 3: 4: Wr i te ln( • Wr ite ln (' Wri t e ln(' Wr ite ln( • Wersja 1: aO-xO, Wersja 2: a0- x3, Wersja 3: a0-x2, Wersja 4: ao- x 1, end; NormVide o: form :. O to 7 do I! ( m In t) and (m + 8 in a1 -x 1, a l - xO, al - x3, al - x2, a2-x2 ') : a2 - xl' ); a2 - x0'); a2 - x3'); t ) then Wri te(' d', m. • • 1 ') el se if min t then Write( 'd ', m, ,.. IN\'( x ', 4 - l, ') '); Wr i t e ln: for m :• 8 to 15 do if (m in t) and not(m - 6 i n t) then Write('d' , m - Wri tel n; Writetn('Na 8, • = x', 4 - pozostałych wejściach d 1, • u stal ić ') ; stan 0'): Writeln : V : • () j tor n :. O to 15 do i f n in t then if n < 6 then v :. v + (n shl 1) el&e v : = v + (( n shl 1) - l '); t := v; TextCotor(B l ack) ; TextBackground(White); end e nd . Analogiczny program umożliwia syntezę układu kombinacyjnego realizującego dowolną zupełną funkcję przełączającą pięciu zmiennych z zastosowaniem multipleksera „ 1 z 16" typu '1 50. Ponieważ ma on tylko jedno, zanegowane wyjście, syntezę układu należy prowadzić dla zbioru F 5 = N5 - JS = 15. W przypadku funkcji niezupełnych zbiór D zazwyczaj włącza się albo do zbioru T, albo do zbioru F, albo częściowo do zbioru Ti częściowo do zbioru F. W ten sposób można czasem uniknąć stosowania zmiennej x., czyli dodatkowego inwertera. 402 8.2 . U KŁADY KOMBINACYJNE Konwertery kod ów 8.2.3 Rodzaje kodów i sposoby ich konwersji były omow1one w rozdziale 2. Poniżej są omówione niektóre najczęściej stosowane konwertery kodów (KK). W tej grupie układów cyfrowych wyróżnia się specjalnymi nazwami kodery - X/ Y ''' ''' '' .' ~ ' '' ' ' Rys. 8.5 Ogólny symbol konwertera kodów i dekodery. Do najczęściej stosowanych konwerterów kodów należą również konwertery kod u NB na BCD i odwrotnie. Układy konwerterów są wytwarzane jako układy MSI, głównie w klasach TIL, ECL i CMOS. Ogólny symbol graficzny konwertera kodu jest pokazany na rys. 8.5, przy czym zamiast liter X , Ymogą być w konkretnym układzie wpisane oznaczenia identyfik ujące rodzaje kod u. Kod ery 8.2.3.1 Układy cyfrowe do przemiany słów kodu „1 z N" na odpowiadające im słowa w dowolnym innym kodzie noszą nazwę koderów. Przy stosowaniu kodów kontrolnych mianem kodera określa się także układ służący do konwersji słów informacji źródłowej (w określonym kodzie) na słowa w kodzie kontrolnym. Jeśli kodem słów wejściowych jest kod „ I z N'", to wejścia tik kodera numeruje się w ten sposób, aby było prawdziwe zdanie V L(F) = k « N gdzie N = {0, 1, ... ,N - l}. Przykład budowy logicznej kodera „ I z 10"/BCD 8421 jest pokazany na rys. 8.6, na którym X = D i Y = F . Poziomem aktywnym na wejściach i wyjściach jest poziom H. Jest to prym itywny układ stosowany w kodowaniu ręcznym, np. za pomocą dziesięciu przełączników klawiszowych. Dziesią ty klawisz służy tylko do zwalniania pozostałych, zapewniając tym samym na wszystkich dziewięciu wejściach x 1 •. . x 9 poziom L. Odpowiada to stanowi x.0 = H. Każde wejście x 1 „. x 9 musi byś połączone z masą przez odpowiedni rezystor, aby w stanie nieaktywnym wytworzyć poziom L. Sposób połączeń bramek układu wynika bezpośrednio z tablicy stosowanych kodów (por. tabl. 2.5). 403 8. CYFROWE BLOKI FUNKCJONALNE • 1 Kod z 10• c===========:: : : > .., •• ., .,•• •• . ••, . :. 1 ~1 I ___., - - Yo y, __.. Y2 ...... I - . „•• BCD Kod8421 L <>--- - . Rys. 8.6. Przykład budowy kodera . t i 1 10"/ BCD 8421 Układy konwerterów kodu w praktyce nie buduje się z elementów SSL, lecz stosuje się odpowiednie układy MSI. Przykładem scalonego kodera „ Iz 10"/BCD 8421 jest układ ' 147, którego symbol pokazano na rys. 8.7. Poziomem •• ., „ •• •• 12 13 1 2 . 3 ••., •• •• '14? „ 1 2 3 4 . 5 4 - 5 10 . 6 7 8 9 HPRl/BCO 1 2 '8 g ~ 7 6 14 Yo Y, Y1 y, Rys. 8.7 Symbol scalonego kodera • 147 aktywnym na wejściach i wyjściach układu jest poziom L. Układ ten jest nazywany jako priorytetowy, co oznacza, że przy jednoczesnej aktywacji kilku wejść układ realizuje kodowanie w odniesieniu do wejścia o najwyższym numerze. Jeśli na żądanym wejściu nie ma poziomu L, to jest kodowany stan O. Odpowiada temu oznaczenie „HPRI" (Highest Priority). Dekodery 8 .2.3.2 Układy konwerterów kodów, które zmieniają słowa w dowolnym kodzie na słowa w kodzie „! z N", określa się jako dekodery. Umożliwiają one określenie zbioru pojedynczych (jednobitowych) decyzji na podstawie wejściowego słowa 404 &2. UKŁADY KOMBINACYJNE informacyjnego. Najczęściej stosowane dekodery służą do konwersji N B/„I z N" i BCD/„ 1 z 10". Do sterowania cyfrowych wskaźnik ów 7-segmcntowych stosuje się również dekodery kodu BCD na kod wskaźnika ?-segmentowego. Mikrooperacje dekodowania można zapisać w odniesieniu do rys. 8.5 i przy F = Y jako S: Y• = P.(D) S: Y• = (L(D) = k) łub Gdy układ dekodera ma wyjście zezwolenia e, to jego działanie opisuje związek Yt = eP.(D) łub Yt = e(L(D) = k) Po formalnym przemianowaniu wejść danych D na wejścia adresowe A i wejścia zezwalającego e na wejście danych d łatwo można zauważyć, że dekoder spełnia funkcję demultipleksera. Dlatego często nazwy tych układów są łączone. Przykładowy układ dekodera/demultipleksera '138 pokazano na rys. 8.8. Symbole tego układu są różne i zależą od tego, czy układ spełnia funkcję dekodera, czy demultipleksera. Jako dekoder (rys. 8.8b) układ realizuje funkcję Yt = EP.(D), gdzie E = e1 e2 el i k =O, I, ... , 7. Jako demultiplekser (rys. 6.8c) realizuje funkcję Yt EP.(A)d, gdzie E = e2 el, d = e 1 i k =O, 1, ... , 7. Do sterowania ?-segmentowych wskaźników cyfrowych, zwłaszcza pół­ przewodnikowych, stosuje się dekodery realizujące konwersję kodu BCD 8421 na 7-bitowy kod wska.źnika ?-segmentowego. Sposób przedstawiania cyfr dziesiętnych z użyc.iem takiego wska.żnika pokazano na rys. 8.9. Cyfry tak tworzone we wskaźnikach półprzewodnikowych (z diodami elektroluminescencyjnymi) są zwykle nieco pochylone w prawo, co zapewne lepszą czytelność. Jednym z typowych dekoderów do sterowania takich ?-segmentowych wskaźników jest układ '47A. Ma on dość skomplikowany symbol graficzny IEC pokazany na rys. 8.10. Wyjścia dekodera są nazwane literami a...g, czyli zgodnie z typowymi symbolami segmentów wskaźnika, i są oznaczone wskaźnikami poziomu. Zapalenie segmentu następuje, gdy na danym wyjściu jest poziom L. Układ ma cztery wejścia kodu BCD 8421 i trzy wejścia funkcyj ne: wejście wygaszania, spełniające również funkcję wyjścia wygaszania zera - BI/ RBO (Bla11kfr1g fllput/R ipple Blanking Output), wejście wygaszani~ra - RB! (Ripple Blankiny lnput), wejście testowe - LT (Lamp Test). = --- 405 8. CYFROWE BLOKI FUNKCJONALNE a .,., ., do ~. 1 & EN V - 1 V & - - - - V Y, ~ - " ~ ~ ~ ~ Y1 ~ " V ~ - >- b c '138 1 do od, { V d, ., „., V ' 3 • ' B!N/OCT 1 2 ' '-- - & 5 - o 15 - 1 2 3 13 12 ' 11 y, 10 Ys 9 s EN 6 7 1L 7 V ~ Yo Y1 Y2 Y1 Yo Y7 'ł 38 DX 1 A ro o, - 23 a, .,., d =t , JG~ V V 6 L < V o 1 2 3 L . ~ s 6 7 1• 1' 13 12 11 V 10 - 97 V Rys. 8.8 Dckodcr/demultiplekser '138 a) bud°"• b) 1ymbol dek~ra, c:) symboł dnnuhiplclt:wn Poziom L na kolektorem) zapewnia wejściu BI (wyjście RBO jest wyjsc1em z otwartym wyłączenie wszystk ich wyjść, czyli wygaszenie całego od stanów na innych wejściach. Przy sta nie LT = H, RB/ = L i L(D) = O (oznacz.enie na symbolu CT = O) otrzymuje się również wygaszenie całego wskaźnika (w tym przypadku O), a ponadto na wyjściu RBO ustała się poziom L. Przy stanie BI = H i LT = L wszystkie wyjścia dekodera zostają włączone, powoduj ąc zapalenie siedmiu segmentów wskaźnika do celów testowych. Na symbolu układu litera Voznacza notację zależnościową O R, litera wskaźnika, niezależnie 406 8.2. UKŁADY KOMBINACYJNE 5 Il I -::I I U L 1 UIL-1 /_LI I n _uI 0 Rys. 8.9 Przedstawienie cyfr dzfosiętnych przy utyciu wskatników sicdmiosegroentowycb '47A BIN/7-SEG C> IT1 I RB! ~SL__t:.ł-&I G21 LT ()'1..- - - l 1--~~ CDVP31 R o{: o1'----1~ d, d, 4 8 o 20.21 Q P....U<:>-- - - - - -C~tte. D20,21 Q f:>-'~ - - - - - - -C:::lf4E!--ł c 20.21Q d 20.21 Q • 20.21 Q P--"O , 20.21 Q g 20.21 Q_.p.....;c:o- - - - - - - -C:::J+-IEI~ _____ ...._ T1 : r o 6 Rys. 8./0 Dekoder · 47A i sposób jego polączcnia ie wskatnikiem sicdmiosegmentowym G notację zależnościową AND i [Tł) oznacza odnośnik do tablicy wyjściowego, pokazanej obok. Jak widać tablica Tl obejmuje również kodu znaki generowane przez dekoder przy sianach wejść nie objętych kodem BCD 842 l. W niektórych 1.astosowaniach stosuje się również pełne dekodowanie czterobitowego kodu NB przy użyciu wskaźnika ?-segmentowego. Otrzymuje się wówczas litery kodu szesnastkowego o postaci A, b, C, d, E, F. 7-segmentowe wskaźniki półprzewodnikowe są wykonywane w dwóch zasadniczych odmianach konstru kcyjnych: ze wspólną katodą i ze wspólną anodą. Do wskaźników ze wspólną katodą należy stosować dekoder o wyjściach aktywnych na poziomie H, a do wskaźników ze wspólną anodą dekoder o wyjściach aktywnych na poziomie L. Innymi słowy, wskaźnik re wspólną katodą wymaga dekodera tworzącego źródło prądu wpływającego do wskaź­ nika, natomiast wskaźnik ze wspólną anodą wymaga dekodera umożl iwiającego spływ do masy prądu płynącego przez wskaźnik. 407 8. CYFROWE BLOKI FUNKCJONALNE Pokazany na rysunku 8.10 przykładowy wskaźnik ze wspólną anodą (CQVP31) współpracuje z opisanym dekoderem '47A. Wartość rezystorów R oblicza się jako R = (Ucc - Up-U0 J/IF gdzie UF jest napięciem przewodzenia na segmencie przy prądzie I F· Wartość tego napięcia zależy od materiału półprzewodnikowego, z którego wykonano diody luminescencyjne oraz od liczby diod tworzących jeden segment. Przy segmentach jednodiodowych: UF ~ 2.1 V dla fosforku galu (GAP) UF ::::: I.7 V dla fosforku arsenku galu (GaAsP) i odpowiednio przy segmentach dwudiodowych Ur ::::: 4.2 V (GaP) UF ::::: 3.4 V (GaAsP) W układzie z rys. 8.10 UF= 1.7 V i U 0L = 0.4 V, skąd przy Ucc = 5 V i IF = 20 mA otrzymujemy R = 145 n. Minimalna wartość R jest określona przez maksymalną wartość prądu, który może płynąć przez segment lub wpływać do wyjścia dekodera na poziomie L (w powyższym przypadku 100 O). R"" Konwertery kodu NB na kod BCD i odwrotnie 8.2.3.3 W kombinacyjnych blokach funkcjonalnych stosuje się dwie zasadnicze metody konwersji kodów NB/ BCD/ NB: tablicową i sumacyjną. Jednoczesne wykorzystanie obydwu tych metod określa się jako metodę iablicowo-sumacyjnq. Istnieją również inne metody, stosowane w blokach sekwencyjnych: metoda licznikowa i metoda Couleura (BIDEC), wykorzystująca tzw. algorytm dodawania trójki. Algorytm ten jest realizowany uk:ładowo wieloma sposobami, a także jest stosowany w procedurach komputerowych. Konwertery NB/BCD Metoda tablicowa wykorzystuje ogólny algorytm dzielenia liczby całkowitej Oub mnożenia liczby ułamkowej) w kodzie wejściowym przez podstawę kodu wyjściowego (w sposób przedstawiony w p. 2.2.2). Dla danej długości słowa kodu wejściowego można otrzymać w ten sposób tablicę zawierającą wszystkie różne słowa kodu wejściowego i odpowiadające im słowa kodu wyjściowego. Tablicę taką można fizycznie umieścić w scalonej pamięci stałej (ROM), stanowiącej wtedy blok funkcjonalny konwertera kodu. Pojemność takiej pamięci wykładniczo wzrasta z długością słowa przetwarzanego i dlatego przy dłuższych słowach stosuje się łączenie układów ROM o mniejszej pojemności w struktury iteracyjne. 408 8,2. UKŁADY KOMBINACYJNE Algorytm dzielenia przez dziesięć, stosowany pny konwersji liczby całkowitej B w kodzie NB na liczbę D w kodzie BCD 8421, polega na iteracyjnym dzieleniu przez dziesięć w kodzie NB i pamiętaniu kolejnych reszt Ti+1• Reszty te są tetradami spełniającymi warunek L(T,+ 1 < 1010): CiflO= C1+1 + T,+ 1/ 10, i=O, l, ... , m- 1 gdzie: C0 = B, liczba całkowita, m - wyznaczane z warunku C„ _ 1 <IO (wówczas T„ = c„_,) Wynik D stanowi słowo dwójkowe będące złożeniem tetrad T.,, T,,, _ 1 . .• T 1• L(C1+ 1) - Przykład. Wykonać konwersję 1. liczby 75 w kodzie NB (B = 1001011) na BCD. Wykonujemy dzielenie B/ 1010 metodą porównawczą 0111 = T2 1001011 -;- 1010 10110 10001 10110 01111 0110 0101 = T 1 C 1 = 111 2 = 7 10 < 10 10, dalsze dzielenie jest zbędne i uzyskuje się wynik D = T2 T, = 01110101. W klasie TTL są wytwanane układy konwerterów NB/BCD typu ' 185, stanowiące pamięci ROM i zawierające tablicę konwersji dla 5-bitowych slów w kodzie NB. Ponieważ najmniej znaczący bit jest wspólny dla obydwu kodów NB i BCD, więc tablica zawarta w pamięci nie obejmuje tego bitu. Symbol układu i sposób połączeń pokazano na rys. 8.11. Notacja zależnościowa V oznacza funkcję OR w odniesieniu do wyjść oznaczonych symbolem ex, czyli przy G = H 2. Ponieważ '185 (I) "& dn d, d2 10 11 V</: I 2« Q 4d. Q "' "'~ 2 ~ "' g MSB 12 d, 13 d, 14 2 8"' ta '8 10« Q 16 32 20„ Q 40cl..0. "l"Q " 1".Q l LSB BIN/BCO 15 Yo Yi 2 3 Y1 4 Y3 s y, 6 Ys } LSO ! jednoslki I o } MSO ( dziesio,1 k; I 7 --g - Rys. 8.11. Symbol koowerlcra scalonego '185 i sposób jego połączenia 409 i u 8. CYFROWE BLOKI FU NKCJONALNE na wyjściach tych też jest poziom H. Wszystkie wyjścia układu są wyjściami z otwartym kolektorem. Przy długości słów wejściowych większej od 5 układy te można łączyć w struktury iteracyjne. Procedura Con _ !85 opisuje działanie układu '185 w symulatorze T LS. procedore Con_185(D : r5; g : B; var Y : r6); var i, k : byte; begin i f g • 1 the n FillChar(Y, 6, 1) elee beg in FillCbar(Y, 6, O); k:• O; tor i : . 4 downto O do k =• k ahl 1 + D[i); i :• (k ob i 1) llOd 10; i f (i and 2) • 2 t hen Y(O] i f (i and 4 ) • 4 t hen Y(l] i f (I and 8) • 8 then Y[2] i : . (k ahl 1) d i v 10; Y [3) : • i ao d t; i f (i and 2) • 2 tben. Y(4) if (i and 4) • 4 t h e n Y(5) end :• l; : . l; : . l; : . li :. l end i Metoda sumacyjna polega na sumowaniu składników dziesiętnych, w wyniku rozkładu wag kolejnych cyfr liczby dwójkowej. Waga dowolnego bitu liczby w kodzie NB może być bowiem przedstawiona w postaci powstałych 2• '" d1I<Y =L J =O gdzie k =O, 1, 2 , ... i współczynniki d;e {O, I, ... , 9} są przedstawione jako tetrady BCD. Konwerter kombinacyjny wykonujący tę operację składa się z sumatorów dziesiętnych (BCD). Jest to rozwiązanie o relatywnie dużej złożoności układowej, gdyż sumatory dziesiętne nie są wytwarzane jako scalone bloki funkcjonalne. Metoda tablicowo-sumacyjna łączy metodę tablicową z sumowaniem BCD. Wejściowe słowo dwójkowe dzieli się na odpowiednią liczbę segmentów, podlegających z osobna konwersji na kod BCD metodą tablicową przy użyciu niewielkich pamięci stałych. Otrzymane wyniki częściowe dodaje się przy użyciu sumatorów BCD. Zaletą metody jest niewielka wymagana pojemność pamięci ROM, a wadą - konieczność stosowania specjalnie zaprogramowanych pamięci ROM i złożonych układowo sumatorów dziesiętnych. Konwerter y BCD/NB Konwertery BCD/ NB są budowane przy wykorzystaniu metod analogicznych do stosowanych w konwerterach NB/BCD. Algorytm konwersji polega na iteracyjnym mnożeniu przez dziesięć w kodzie NB kolejnych wyników W i dodawaniu do iloczynu kolejnych tetrad T z liczby BCD: W; = ""1+1 ·10+7;, gdzie W„ i = m-1, m- 2, ... ,0 = T„ (najbardziej znacząca tetrada). 410 8.2. UKŁADY KOMBINACYJN E Przykład: Wykonać konwersję liczby 75 10 = 011 10101 8co na liczbę w kodzie NB. X 0111 1010 1110 111 1000110 + 0101 (T0 ) 10010112 = 75 10 (W0 - wynik) Ten sam wynik otrzymuje się zastępując mnożenie przez dziesięć mnożeniem przez pięć i przesuwając dwójkowy wynik o jedno miejsce w lewo. Metoda tablicowa wykorzystująca ten algorytm, jest stosowana z użyciem układów scalonych '184, które mogą być łączone w struktury iteracyjne. Szczególnie prosta jest metoda sumacyjna, w której operacje konwersji są wykonywane przez proste sumatory dwójkowe, a nie sumatory BCD jak w konwersji N B/ BCD. Metoda tablicowo-sumacyjna jest układowo prostsza niż w konwersji NB/BCD, gdyż zamiast sumatorów BCD są stosowane wyłącznie sumatory dwójkowe, lecz nie jest prostsza od metody sumacyjnej. W metodzie sumacyjnej wykorzystuje się fakt, że każdą cyfrę dziesiętną zapisaną w kodzie BCD można przedstawić jako sumę liczb dwójkowych o postaci n H>12• = I a, 21 i=O gdzie: j = 0,1,2„„ k = 0,1,2,3 a1e{O,l}. W celu konwersji całego słowa BCD na kod dwójkowy należy zsumować odpowiednie rozkłady dwójkowe wszystkich cyfr w słowie BCD. Na przykład, trzycyfrową liczbę całkowitą A = S • D • .!,w której J oznacza tetradę jednostek: J = j 3 j 2 j 1 j 0 , D tetradę dziesiątek: D = d 3 d 2 d 1 d0 i S tetradę setek: S = s 3 s 2 s 1 s 0 , można przedstawić w postaci B= 100·S+ 10 ·D+J = (64+32+4)S+(8 + 2)D + J = (2 6 + 25 + 2 2)S+(2 3 +2 1)D+.T Mnożenie danej tetrady przez 2• realizuje się jako jej przesunięcie w lewo o k pozycji i w rezultacie pozostaje tylko sumowanie: 411 8. CYFROWE BLOIU FUNKCJONALNE Kod NB I 10 0-~ 1 ---o J ,, - -- -- ., - J, ·t - SO I °}Pr ii -i, - s, Kod BCD co Cl ]p I ~ ..s,Ls, - ··- . :lQ ·[ o - Cl s { s, - o - - _f co ~ }P I dod, d2 d,- ]Q o- Cl co I Rys. 8.12. Przykład konwersji kodu NB na kod BCD 8421 przy - tt: I - -- uźyciu LJo=- ]PL ]Q·[ o- Cl --0 --0 --0 --0 co - - 0 metody sumacyjnej )3 J2 J, Jo d 3 d 2 d 1 d0 S3S2 SlSO S3 d3d2 dt do S2 S1So S3S2S 1 So b9 b8 b7 b6 b5 b4 b3 b2 b 1 b0 Zapis ten można uprościć S3SzS1 So S3S2S1So do postaci o h Jz J, Jo o dJd2d1do S3S2S1So d3d2d1 do b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 której odpowiada układ pokazany na rys. 8.12. Układ ten składa się z pięciu czterobitowych sumatorów dwójkowych, opisanych w p. 8.1.5. W podobny sposób można budować konwertery BCD/ NB dla większych Liczb. Należy przy tym zwracać szczególną uwagę na właściwą generację i transmisję przeniesień (wyjścia CO, wejścia Cl). 412 82. UKtAOV KOMBI NACVJ NE W praktyce już się zazwyczaj nie używa opisanych rozwiązań układo­ wych. Konwersje kodów wykonuje się zazwyczaj programowo używając ogólnie dostępnych, tanich i wydajnych mikrokontrolerów lub mikroprocesorów scalonych wielkiej skali integracji. 8.2.4 Komparatory cyfrowe Układy zwane komparatorami służą do porównywania dwóch lub więcej liczb dwójkowych. W związku z tym zalicza się je do grupy układów arytmetycznych, których działanie funkcjonalne dotyczy danych wejściowych, traktowanych jako liczby. Budowę i działanie wewnętrzne tych układów opisuje się jednak w ten sam sposób jak układów logicznych, np. przez podanie odpowiednich form boolowskicb. Proste komparatory umożliwiają tylko określenie, r:z.y porównywane lir:z.by są sobie równe, czy nie. Układy bardziej rozbudowane umożliwiają również określenie, która z porównywanych liczb jest większa. Najprostszy komparator realizuje funkcję równości XNO R. określoną dla dwóch jednobitowych liczb p i q związkiem (p. 4.1. 1) e = p(f)q = pq v pij = (p = ą) Budowa i symbole graficzne tego elementu były pokazane na rys. 4.20. Jeśli P i Q stanowią liczby wielobitowe P = P. - 1 ... p1 Po i Q = ą. _ 1 ••• q 1 q0 , to określenie ich równości wykonuje się na podstawie komparacji par bitów na tych samych pozycjach. Oznaczając e1 = p1 qi, funkcję komparacji można zapisać w postaci iloczynu boolowskiego e Może być ona zrealizowana w jednym z układów pokazanych na rys. 8.14. Są to układy o strukturze równoległej. M ożna także zrealizować wolniejszy układ komparatora o strukturze szeregowej. Po 'Io-.., Pi '\, - .., I • Pn.I ql'I_' - • Pn„1 -,____J Rys. 8.IJ. Komparaior liczb wielobitowycb zbudowany z uiyciem bramek XNOR i bramki AND 413 'łn-1 - -,___J Rys. 8.14. Kompar.uor liczb wielobitowycb zbudowany z bramek XOR i bramki NOR 8. CYFROWE BLOKI FUNKCJONALNE Dla określenia równości trzech liczb jedno bitowych p, q, r należy określić funkcję e = (p EB ą) (p EB r) która dla n-bitowych liczb przyjmuje postać iloczynu boolowskiego • - I _ _ _ _ __ fl (p1 E0 ą1) (p1EB r 1) e= l=O Związek ten można rozszerzać na większą grupę liczb. Popularnym komparatorem scalonym jest układ '85, którego symbol pokazano na rys. 8.15. Jest to uniwersalny komparator czterobitowy, umoż­ liwiający porównanie dwóch liczb dwójkowych lub dziesiętnych {przedstawionych w kodzie BCD) P, Q i generujący trzy możliwe i wzajemnie wyłączające się wyniki porównania: '&5 ~ Il 12 10 ' ' 'I IL 11 9 O}PCOMP 3 p >Q > - P= Q < P< Q s 9 6 • 7 Ja fl.ys. 8.JS Symbol komparaiora scalonego ·ss e = H, jeśli P = Q, g = H,jeśli P > Q, I = H, jeśli P < Q. Uk lad opisują następujące g = (e1 V l1) równania logiczne 3 2 3 i=O J• O k. =j+ t J 2 n e,v V ii1q1 n e. v p3ą3 l=(e1v g 1)fle1v V P;ti; 1-=0 j• O J fl e. v p3 q3 ł-=J + I Układy te mogą być lączone szeregowo w odpowiednio większe zespoly w celu komparacji dluiszych słów. Wyjścia e, g, I układu porównującego mniej znaczące bity przyłącza się do odpowiednich wejść e1, g1> 11 układu porów- 414 8.2. U KŁADY KOM BINACYJNE nującego bardziej znaczące bity. Układ wykorzystany do porównania najniż­ szych bitów musi mieć na wejściu e1 poziom H, a na wejściach g 1 i 11 poziom L. Przy długich słowach krótszy czas komparacji uzyskuje się po zastosowaniu konfiguracji równoległej. Mikrooperację komparacji wykonywaną przez układ '85 można zapisać w postaci układu równań e=e1 · (P = Q) I= (P < Q)v l,·(P = Q) g = (P > Q) v g,·(P = Q) Procedura Comp _ 85 opisuje działanie układu '85 w symulatorze TLS. procedur• Comp_ 8!$(P, Q : r~; g i, ei, li : 8; vnr var a, b , i : byte; beain a :• O: b :• O; for ł : . 3 downto O do i• e, ) : B); be•łn a :. o •hl 1 or P(i ) ; b :. b Ibi I or Q(i) end; if a • b tben e :~ ei elae e :• O: if ( a < b) or ((li = l) and (o• b)) then 1 : • 1 elae I :. o: lf (o > b) or ((gi • I) and (o • b)) then g :. 1 elso g ' " o end; Sumatory 8.2.5 Sumatory są układami arytmetycznymi, służącymi do dodawania liczb dwójkowych (zasady dodawania liczb dwójkowych omówiono w rozdziale 3). Struktury sumatorów zależą od rodzaju kodu, w którym są przedstawione dodawane liczby wejściowe. W większości przypadków są to liczby w kodzie NB lub w kodzie BCD i stąd wyróżniamy sumatory dwójkowe i sumatory dziesiętne (BCD). Liczby wejściowe mogą być w ogólnym przypadku liczbami bez znaku lub ze znakiem, mogą być liczbami całkowitymi, ułamkowymi lub zawierającymi część całkowitą i ułamkową, wreszcie mogą być liczba mi zmiennoprzecinkowymi. Najpierw zajmiemy się sumatorami służącymi do dodawania liczb dwójkowych be? znaku, przedstawionych w kodzie N B. Układ zwany pólsumaiorem operuje na jednobitowych liczbach wejściowych p, q i generuje bit sumy fi bit przeniesienia c. Równanie arytmetyczne półsumatora można zapisać w postaci 2c+f = p +q gdzie cyfra 2 wskazuje na wyższą pozycję bitu c, czyli słowo wyniku jest złożeniem c 0 f Równania logiczne opisujące półsumator są następujące: 415 8. CYFROWE BLOKI FUNKCJONALNE Rys. 8.16 Budowa logiczna układu półsumatora ! = p<ł?lq c = pq Przykładowy schemat logiczny takiego półsumatora pokazano na rys. 8.16. W ogólnym przypadku dodawania liczb wielobitowych układ realizujący tę operację na danej pozycji i musi być wyposażony w dodatkowe wejście, umożliwiające wprowadzenie przeniesienia c, z poprzedniej pozycji (i - 1). Równanie arytmetyczne takiego układu zwanego sumatorem jednobitowym jest identyczne z podanym w p. 3.1: 2c1+ 1 + /; = p1 +ą 1 + c 1 Słowo wyjściowe sumatora jednobitowego jest zatem dwubitowe: f,. Mikrooperację dodawania jednopozycyjnego (na pozycji i) można Y = c1 + 1 • zatem opisać związkiem Równania logiczne opisujące działanie sumatora można określić na podstawie tabl. 3.1 w wielu postaciach. Na przykład, pomijając dla uproszczenia indeksy „i", na podstawie siatek Karnaugh (rys. 8. l 7a, b) można określić związki f = pqc v pijc v pijc v pqc c1 = pq v pc v qc = pą vc(p v ą) Powyższe formy boolowskie są samodualne, tzn. spełniają warunek ] (X)= f(fi) (por. wzór Shannona w p. 4.1.1). Można je również przedstawić w postaci != p<ł?Jq<ł?lc c1 = pqV c(p <ł?J q) Na rysunku 8. l 7c pokazano konstrukcję logiczną sumatora złożonego z dwóch półsumatorów. Ponieważ jest to układ szeregowy, zatem jego szybkość działania jest stosunkowo mała. Szybszy układ równoległy można otrzymać jako bezpośrednią realizację podanych wyżej związków, otrzymanych z siatek Karnaugh. 416 8.2. UKŁADY KOMBINACYJ NE Symbol graficzny sumatora jednobitowego pokazano na rys. 8. l 7d. Zgodnie z zaleceniami IEC wejście sygnału przeniesienia (c) oznacza się literami CI (Carry lnput), a wyjście sygnału przeniesienia (c 1) - literami CO (Carry Output). Identyfikatorem bloku jest znak !:. b Q pq, c pq, oo o o 01 11 10 1 o 1 1 o 1 o 1 c oo o o 1 o c d P~f ~~ c, c, Rys. 8./7 Sumator jednobi1owy a) określenie wyniku f b) ok:rdlenie przeniesienia r,. c) budO'A'a z pólsumatoró'A'. d) s)mbol ogO!ny Procedura Add opisuje sumator jednobitowy w symulatorze TLS. procedure Add(p, q, ci : B; var s, co : B); var . u : Bi begin u :• p xor q; s : • u xor ci: co :~ p and q or ci and u end; W celu dodawania liczb wicłobitowych, sumatory jednobitowe są łączone w większe zespoły. Na rys. 8. I 8a pokazano układ sumatora równoległego z przeniesieniami szeregowymi, do którego liczby P i Q doprowadza się równoległe, lecz w którym propagacja przeniesień następuje szeregowo. Podobnie były budowane pierwsze scalone sumatory czterobitowe w klasie TTL ('83). Jak łatwo zauważyć, przy takim rozwiązaniu moi.e być konieczna transmisja kolejnych przeniesień przez wszystkie sumatory składowe, co oznacza relatywnie długi czas wykonywania dodawania, zwłaszcza przy liczbach wiełobitowycb. Dlatego częściej są stosowane sumatory równoległe z przeniesieniami równoleglymi Gednoczesnymi, antycypowanymi, ang. look- ahead). Technika dodawania z przeniesieniami równoległymi polega na jednoczesnym wytworzeniu właściwych przeniesień na podstawie wyłącznie stanów wejściowych, czyli liczb Pi Q i przeniesienia wstępnego c0 . Przeniesienia te są następnie wykorzystywane przez jednobitowe sumatory składowe do 417 8 . CYFROWE BLOKI FUNKCJONALNE wytworzenia właściwych bitów sumy. Sumator z przeniesieniami równoległymi zawiera zatem dwa bloki logiczne: blok generacji przeniesień i blok sumujący (rys. 8.18b). Przeniesienie wprowadzone na pozycję (i+ l)(i = O, I, ..., n- I), może być określone w postaci: C;+t = P;ą; V c;(p; V ą;) a po wprowadzeniu oznaczeń gi = P;Q; = P; V ą; lt; jako a -- l: -- -'\, - Cl col - l: P, I Cl .' t, coil Rys. 8.18 Sumator równoległy l prttnłtsicniami s:eeregowymi, b) z pr.«11i~łeniami równołeglymi a) b p 11 I- . - . Q ~ -418 Blok Bl ok .. ge n~ro~J •, Sumujqcy przen1ts1en - ~ F 8.2. U KŁ.AOY KOMBINACYJ NE Zauważmy, że w wyrażeniu tym może być również wykorzystana funkcja XOR, tj. h1 = p1 $ q1• Umożliwia to wykorzystanie zwykłego pół­ sumatora do generacj i ą 1 i h1• Jednak łatwiejsza w realizacji jest oczywiście funkcja OR. Wprowadzając kolejne podstawienia dla i , i - I, i - 2, „„ ł , O otrzymujemy Przyjmując c0 = g _ 1 możemy c, + , = dla zewnętrznego przeniesienia to wyrażenie zapisać w postaci 1 ; /•- 1 lt. = j+I wstępnego c0 oznaczenie v u, n h. Jak widać, przeniesienie wnoszo ne na pozycję (i+ I) może być wytworzone na podstawie odpowiednich iloczynów g1 = p1 ą1 i sum h• = p1 v ą1 . Zadanie to jest wykonywane przez blok generacji przeniesień. Bit sumy na pozycji i może być określony w postaci Blok sumujący wytwarza wynik dodawania w postaci liczby dwójkowej F=f. - 1f. - 2.„f.„. fo Typowym sumatorem scalonym tego rodzaju jest uklad '283. Jest to sumator czterobitowy, którego schemat logiczny pokazano na rys. 8.19a, a symbol graficzny na rys. 8.19b. W układzie tym zarówno przeniesienia do kolejnych stopni sumatora, jak też wyjściowy sygnał przeniesie nia c4 są generowane równolegle. W ulepszonym ukladzie '83 (wytwa rzanym także pod oznaczeniem '83A), dla którego również obowiązuje symbol z rys. 8.19b, wstała utrzymana szeregowa propagacja pt7.eniesień między kolejnymi stopniami, lecz sygnał c4 jest generowany w sposób równoległy. W ten sposób przy połączeniu szeregowym takich układów uzyskuje się szybką propagację przeniesień między układami. Zwiększony, w stosunku do układu o równoległych przeniesieniach wewnętrznych, czas propagacji przeniesień w stopniach wewnętrznych każdego układu przestaje być istotny w porównaniu z łącznym czasem propagacji przeniesień międzyukładowych. W ogólnym przypadku, dla sumatora 11-pozycyjnego (np. '83, dla którego n = 4) mik rooperację dodawania można zapisać w postaci 419 8. CYFROWE BLOKI FUNKCJONALNE a 1 1 <o,_ l>--i rt -- -- ;. 1 r f-< & >- u ,- ,- - & 1 r L ,_ I-o - >1 w- I-o • ~>1 Lr ~ ~ P- ~ ---< ,___ ~ cą ,_ ;.1 r- 1 I-- & i-- b '28J Po J P, -:17",-P1 12 Pi 6 q. 2 q, l'S ct1 11 }' r O} Q '·----ą, 1 I ur I 3 10 co 9 ~ 1 3 Cl ' '• 13 '• ,,'• nb c. >1 « - Ry„. 8.19. Sumalo r '283 a) tKldowa logiczna.. b) ~:ytnbol gr11f11C1.ny Dalej przytoczona jest procedura Adder _ 83, opisująca sumator '83 w symulatorze TLS. Wykorzystuje ona podaną poprzednio procedurę Add. Są one zawarte we wspólnym mod ule ARIT (wraz z innymi proced urami opisujący­ mi arytmetyczne bloki funkcjonalne). 420 '• '· I-o ,, I-o ,, ~ ;.1 & =1 ~ i----t..- -- ' - -- P, L-J ,_ >1 ;. 1 ~ & 8.2. UKŁADY KOMBINACYJNE procedure Adder 83(P, Q var j byte; begin for j r4; Cl B; var S r4; var CO 8); :• O to 3 do begin Add(P[j), Q(j), CI, S[j), CO); CI : • CO end nd; Prosty program symulacyjny SymAdd4 jest użyteczny do celów dydaktycznych: program Syll'l.Add4; { Program symulacyjny sumatoro uaea Dec, Arit, Crt; var XP, XQ, YS r4; cO, c4 c~terobitowego ) B; begin InpAdd4(XP, XQ, cO); Adder_ 83(XP, XQ, cO, YS, c4); DispAdd4(YS, c4) end . Wykorzystane w tym programie dodatkowe procedury (zawarte w module ARJT) mają postać: procedure InpAdd4(var P, Q : r4; var var a, b i CI : B); 54; byte; begin ClrScr; GoToXY(18, 8)i Write('Wpisz czterobitow4 liczbe P • '); Readln(a); for i == 1 to 4 do P(i-1 ) :. Ord(a(5-i)) - 48; GoToXY(l8, 9); Write('Wplsz czterobitowa liczbe Q • '); Readln(b); for i : . I to 4 do Q[i- 1] :o Ord(b(5-i)) - 48; GoToXY( 18, 10); Write('Wpisz bit przeniesienia CI • '); Readln(CI) end; procedure DispAdd4(S r4; CO B)i begin GoToXY(47, 11); Writeln(' -~~·>; GoToXY(40 , 12); Writeln('Suma: ',CO, 8(3], 8 (2 ), 8(1), S(O]) end; Przy c0 = I i jednym z argumentów równym zeru sumator może służyć do realizacji funkcji następnika (inkrementera). Na przykład, przy Q = O c. • F = P+ I Aby otrzymać funkcję poprzednika (dekrementera) c. • F = P-1 należy dodać do P uzupełnienie jedynki przy c0 =O. 421 do dwóch, czyli Q = U2(00„. I) = 11...1 8. CYFROWE BLOKI FUNKCJONALNE Przedstawione powyżej zasady dodawania z przeniesieniami równoległymi mogą być rozciągnięte na zespoły wielobitowe. Przy zastosowaniu typowych czterobitowych sumatorów scalonych zazwyczaj naj racjonalniejszym rozwiązaniem jest jednak szeregowe łączenie tych układów, bez dodatkowych układów logicznych. Gdy jest wymagana bardzo duża szybkość dodawania, stosuje się scalone czterobitowe układy arytmetyczno-logiczne (ALU), do których są również wytwarzane scalone generatory przeniesień równoległych (p. 8.2.6). ' 83 p j: } r o - 1: k -- =1 '86 -- - - .._ - CI k : Q: k = 1: co --Oo. (do następnych sumo torów) F= P•Q F=P - O. Rys. 8.20 Wykorzystanie sumatora ' 83 lub '283 do sumowania i odejmowarua liczb dwójkowych Zgodnie z zasadami omówionymi w rozdz. 3, sumatory mogą być także użyte do realizacji odejmowania Aby odjąć od odjemnej P odjemnik Q, należy dodać do liczby P uzupełnienie liczby Q. Najprostszy i najszybszy układ otrzymuje się przy zastosowaniu uzupełnienia do 2. Przykład takiego układu pokazano na rys. 8.20, na którym P i Q są liczbami bitowymi be-z znaku. Układ '86 zawieraj ący 4 bramki XOR umożl iwia przy dodawaniu wprowadzenie do sumatora liczby Q bez żadnej zmiany lub, przy odejmowaniu, ze wszystkimi bitami zanegowanymi. Przy k = 1 następuje zatem uzupełnienie liczby Q do 2. Jak podano w rozdz. 3, przy zapisie U2 znak wyniku zależy od bitu przeniesienia z najwyższej pozycji (c4 = O oznacza wyni k ujemny, a c4 = l wynik dodatni). Pokazany u kład odejmujący może być rozszerzony na większą liczbę bitów, np. przez dod anie jednego sumatora '83 i jednego układu '86 na każde dodatkowe cztery bity. W pewnych zastosowaniach pożądane jest wykonanie operacji arytmetycznych na liczbach w kodzie BCD. Między innymi ma to miejsce w kalkulatorach i urządzeniach obrazujących, w których informacje liczbowe są 422 8.2 U KŁADY KOMBINACYJNE przeds1awiane w zapisie dziesiętnym i w których najczęściej należy unikać dodatkowych układów konwersji NB/ BCD. Najpopularniejszym kodem BCD jest kod 8421. Zgodnie z zasadami dodawania liczb BCD, podanymi w p. 3.3, przy dodawaniu dwóch jednocyfrowych liczb dziesiętnych w kodzie BCD otrzymana suma może zawierać się w granicach od Odo 19 (9 + 9 +I z przeniesienia), a ponieważ kod BCD obejmuje tylko liczby od Odo 9, za1em istnieje konieczność korekcji „niewłaściwych" sum (od 10 do 19). Korekcja polega na odjęciu liczby dziesięć (10 10) od sumy, jeśli jest ona większa lub równa dziesięciu, z jednoczesną generacją przeniesienia. Operacje te przedstawiono w tabl. 8. 1. Wymagane odjęcie liczby 10 10 może być zrealizowane przez dodanie uzupełnienia dwójkowego tej liczby w kodzie NB (10102). Uzupełnienie to jest równe 0110 2 , czyli liczbie dziesiętnej 6. Funkcję przeniesienia dziesiętnego można określić na podstawie tablicy 8.1 i siatki Karnaugh (rys. 8.21) w postaci: c'o = c. vf,/3 v/2/3 przy czym z siatki Karnaugb 01rzymuje się składniki / 1/ 3 i / 2/ 3 (dla liczb w zakresie od 10 do 15), a z tablicy 8.1 otrzymuje się składnik c4 (dla liczb w zakresie od 16 d o 19). 00DA\\'AKI! I KOREKCIA SUMY LICZB DZfESlefNYCll w KODZIE eco 1421 Tflbilc11 8. I Liczba Suma nie skoryaowo na Suma skorygowana dziesi~ina c•f.f,f,fo r'"f,f,J,fo o I 2 3 4 s 6 7 8 9 10 li 12 13 14 IS 16 17 18 19 423 ()()()()() 00001 00010 00011 00100 00101 00110 00111 01000 01001 OIOIO 0101 1 011 00 011 01 01110 011 11 10000 10001 10010 10011 ~ to samo (korekcjn zbyteczna) J 10000 10001 10010 10011 IO IOO IOIO I 10110 IOll I 11000 11001 8 CYFROWE BLOKI FUNKCJONALNE lI i0 '• oo ooo f' 01 11 10 01 o o o o o o o 11 1 1 1 1 10 o o 1 1 Oodojn p a{v ik{: Dodaj n Q c Rys. 8.21 Określ enie funkcji generującej przeniesienia w sunlntorzc dziesięrnym przy I0,0 .;; f, f, .f, f, .;; 15„ 1'JQ '.r rI r J Cl - co ~ o '--- rA Rys. 8 .22 Budowa logiczna sumatora dziesiętne go ( BCD) ' .___ J".r }Q 3 -- co CI - V ~1 ~ ~ c'• ~ ~ Schemat logiczny sumatora dziesiętnego realizującego powyższe operacje jest przedstawiony na rys. 8.22. W celu otrzymania sumatora wielodekadowego można takie układy łączyć szeregowo, podobnie jak sumatory jednobitowc na rys. 8. I 8a. Wejściu c w najniższej tetradzie należy wtedy przyporządk ować stan O. Tę samą operację można także wykonać dodając dwie liczby BCD w czterobitowym sumatorze dwójkowym i przetwarzając sumę (wraz z bitem przeniesienia) w konwerterze dwójkowo-dzicsiętnym, zrealizowanym np. w postaci pamięci stałej (por. rys. 8.12). Odejmowanie liczb dziesiętnych kodowanych dwójkowo rea lizuje się podobnie jak odejmowanie liczb dwójkowych, to znaczy prtcz dodawanie odpowiednich uzupełnień. Przy wybortc rodzaju uzupełnienia należy uwzględ­ nić trudności układowe jego wytworzenia, gdyż układ generacji uzupełnień występuje w danej dekadzie zwyk le dwukrotnie: przy formowaniu odjemni ka i przy konwersji otrzymanej różnicy tjeśli jest ona ujemna, a wynik trzeba otrzymać w tym samym kodzie co składniki wejściowe). Traktując liczby P i Q jako liczby dziesiętne, posługujemy się uzupełnieniami do 9 i do IO. Ponieważ jednak każdą tetradę kodu BCD 842ł można również traktować jako 424 8.2. UKLAOY KOMBINACYJNE należącą do kodu szesnastkowego, zatem mogą być stosowane uzupełnienia do dowolnej liczby w zakresie od 9 do 15. Szczególnie wygodnie jest uzupełnienie do 15. Polega ono na negacji wszystkich bitów liczby BCD będącej odjemni kiem, co odpowiada uzupełnieniu do I wszystkich jej tetrad, t rak towanych jako liczby w kodzie NB. U kłady 8.2.6 arytmetyczno- logiczne D o budowy systemów cyfrowych o uniwersalnym przeznaczeniu są przydatne układy cyfrowe, które umożliwiają wykonanie pewnego zestawu operacji arytmetycznych i logicznych na danych wejściowych. Rodzaj realizowanej operacji zależy od stanu wejść sterujących ta kiego układu, który nosi nazwę jednostki arytmetyczno-logicznej (ALU - Ari1h111etic-Logic Unit). Dane wejś· ciowe stanowią dwa słowa P, Q, które przy operacjach arytmetycznych są traktowane jako liczby, a przy operacjach logicznych jako zlożenia bitów. Układ ALU zazwyczaj współpracuje z zespołem rejes trów, służących do przechowywania danych wejści owych i wyjściowych. Przykladcm scalonego ukladu A LU jest układ 74F382, operujący na słowach czterobitowych i umożl i wiający realizację 8 mikrooperacji arytmetycznych, zależnie od stanu trzech wejść sterujących. Sym bol tego uk ladu jest pokazany na rys. 8.23, a zestaw mikrooperacji w tabl. 8.2 (mnożenie jest wyłącznie logiczne). Wszystkie operacje logiczne są wykonywane równolegle na wszystkich bitach argumentów, np. jeśli P = LLHH i Q - LHLH, to Pv Q = LHHH i PQ = LLLH . Tablica 8.2 F ur<KCJE UKLAOU AR YTM ETYC7.N().LOGIC'LNEGO 74>"81 Wejści a sterujące Wynik operacji s, So F L L H L H L H L S2 L L L L H H H H Wyjście L H "' L LLLL Q-P - l +r0 P-Q -l+r0 P + Q +t0 P Q) Q P VQ PQ H HHHH "'L H OVR (overflow) służy do wykrywania przepełnienia przy operacjach na liczbach w kodzie ZU2 i przyjmuje poziom H gdy 425 8. CYFROWE BLOICI FUNKCJONALNE 74F 382 5 So 6 s. Si O} 7 _ is_ć 3 11121 BI (IJ 3 Cl (1) „ 4 1 2 19 16 2 Q3 7 2 Co p3 OALU M- 17 16 R ys. 8.23. Symbol r e p a 1 p a 9 2 f' p a p a układu Io 4 BO/COr.1 BO/COL_ e (1 ,2) BO 3CO 11 13 :=r:,..__ 14 12 f3 arytmc1ycz.no-logiczncgo 74F382 Układ 74F382 jest bardzo szybki: czas propagacji przy realizacji dowolnej funkcji na argumentach wejściowych nie przekracza typowo 7 ns. Nadaje się on zatem do budowy szybkich, specjalizowanych procesorów arytmetyczno-logicznych o znacznie szybszym działaniu niż typowe mikrokontrolery scalone. U mieszczony jest w relatywnie niewielkiej, 20 końcówkowej obudowie dwurzędowej. M ulti pl ikatory Układy 8.2.7 multiplikatorów są przeznaczone do mnożenia liczb w zapisie dwójkowym. Wykonywane są one w dwu podstawowych wersjach, jako: równolegle, w których mnożone liczby są podawane jednocześnie na wejścia równoległe multiplikatora i operacja mnożenia jest wykonywana przez uk ład kombinacyjny, szeregowo-równolegle, w których jedna z mnożonych liczb jest podawana równolegle na wejścia multiplikatora, a druga szeregowo, czyli operacja mnożenia jest wykonywana przez układ sekwencyjny. Zajmiemy się multiplikatorami równoległymi, nie wymagającymi sterowania sekwencyjnego. Najprostszym koncepcyjnie multiplikatorem jest scalona tabliczka mnożenia, czyli tablica wartości iloczynów, która może być zreal izowana w postaci układu pamięci stałej (ROM). Pojemność pamięci jednak silnie wzrasta przy zwiększaniu liczby bitów mnożnej i mnożnika. Na przykład przy cztcrobitowych argumentach P, Q słowo wyjściowe F jest ośmiobitowe, czyli pojem426 82 UKŁADY KOMBINACYJNE ność pamięci wynosi M = 28 x 8 = 256 x 8 = 2048, co jest relatywnie małą liczbą, natomiast przy argumentach 8-bitowych otrzymujemy już M = 2 16 x 16 = = 1048576. Multiplikator taki moi.na na przykład zbudować z dwu równolegle adresowanych układów pamięci EPROM o pojemności 64K x 8, o typowym czasie propagacji poniżej IOO ns. Rozważmy realizację multiplikatora wykorzystującego klasyczne układy kombinacyj ne. Ograniczając się na razie do argumentów P, Qw postaci liczb bez znaku w kodzie NB, tj. „ - 1 P= L: p,2•, l=O iloczyn algebraiczny tych liczb otrzymuje się w postaci m- 1 F = PxQ = 11 - I L L p 1 ą1 2r+1 l=O J• O gdzie iloczyny algebraiczne Pr q/ mogą być również traktowane jako iloczyny boolowskie (p A ą), a czynnik 2 +J reprezentuje przesuw iloczynu Pr ą; o (i+JJ pozycji w lewo. Na przykład, przy mnożeniu liczb czterobitowych P = p 3p 2p 1p0 i Q = ą 3 ą 2 ą 1ą 0 otrzymujemy tablicę mnożenia w postaci fs Jo Aby otrzymać 8-bitowy wynik mnożenia F, należy określić 16 jednobitowych iloczynów p 1 ą1 za pomocą dwuwejściowych bramek AND i dokonać sumowania w odpowiednich kolumnach za pośrednictwem zbioru 12 sumatorów jedno bitowych, w sposób pokazany przykładowo na rys. 8.24. M ultipłikator mnożącym-bitową liczbę P przez n-bitową liczbę Q musiałby zawierać (m - J)n sumatorów i nm bramek AND. Na przykład, dla m = n = 8 oznaczałoby to 7 x 8 = 56 sumatorów i 8 x 8 = 64 bramki AND. Inny sposób polega na rozkładzie stów argumentów na mniejsze, wykonaniu mnożeń na mniejszych liczbach przy użyciu pamięci stałych (ROM) i następnie zsumowaniu iloczynów częściowych. Przy rozkładzie argumentów na dwie części, tzn. przedstawiając liczby P i Q w postaci 427 8 . CYFROWE BLOKI FUNKCJONALNE P3'10 P , j } - P, q,J q, o o<i< 3 P, Cl-o P,'lo o o O<j.; 3 Po'l1 f, Rys. 8.24 'Io Przykład fo budowy mulliplikatora kombinacyjnego 4 x 4 p = p J p 2 = p I 2' + p 2 Q = Q. • Qi= Q12' + Q2 0 otrzymujemy iloczyn F = p XQ = (P, 2' + P2HQ12'+Q2) = = P 1Q1 2.+'+ P 1Q2 2' + P 2 Q12' +P 2 Q2 Jeżeli iloczyny częściowe P;Q1 mogą być otrzymywane przy użyciu relatywnie niewielkich pamięci stałych, to stosując odpowiedni zestaw sumatorów można otrzymać wynik F. Na przykład, d la liczb 8-bitowych można określić rozbicie z r = s = 4: P1 ~ P2 .--A---., P = P1P6PsP40000+0000p3P2P1Po Q= ą,q6qsq• OOOO+OOOOą3q2q1qo Do wykonania mnożenia P x Q są potrzebne zatem 4 „małe" multiplikatory ROM 4 x 4. Sposób połączenia tych układów z sumatorami czterobitowymi pokazano na rys. 8.25. Identyfikatorem układów multiplikatorów jest znak „n". 428 8.2. UKU.OY K0 M81NACYJNE ""~ 11' Bity } 0-3 }~ o,c:::::> I: I: f' Bity 4· 7 r{ } 4-7 o, I: I: F p Bity 8-11 o, 8-11 I: o co Cl P, o o, Bity 12-15 Rys. 825 Budowa multiplikaloru kombinacyjnego 8 x 8 przy 12-IS użyciu metody tablicowo-sumucyjnej W analogiczny sposób można zbudować szybki mu ltiplikator 16 x 16. Na przyklad, wykorzystując pamięci EPROM 64K x 8 typu 7C285-75 (Cypress Semico11ductor) o czasie dostępu 75 as, o raz sumatory 74F283 (Texas fl!strumem s) o czasie propagacji 5 as (łącznic 18 ukladów scalonych), można zbudować taki multiplikator o cwsie propagacji poniżej 120 ns. Najprostsze multiplika tory scalone sta nowią moduly, umożliwiające realizację mnożenia liczb bez znaku w kodzie NB. Moduły takie łączy się w struktury iteracyjne, wykonujące jednobitowe mnożenia i dodawania, w sposób pokazany w przykładowej tablicy mnożenia na początku tego podrozdziału. Przyk ładowo, uklad MC14554B (z seri i C MOS 4000) stanowi multiplikato r 2-bitowy (2 x 2) realizujący fun kcję c oF = Px Q+K+M gdzie: P = p 1p0 i Q = q 1q0 - argumenty mnożenia, K = k, k 0 WCJSCia przcnies1en, M = m 2 m 1 1110 - wynik z poprzed nich modułów w strukturze, c - sygnał wyjści a przeniesienia. 429 a CYFROWE Bl09<1 FUNKCJONALNE o Po ko r1 I I c f L __ I b k ' q p Rys. 8.16 ko---r-~~;-ii--~--4~ Multiplikaror scalony 2 X 2 typ MC l4554 c l1Che11'1&1 oaótny, b) scMm.at loaiC:i:ny komórki uktld11 a) clemenl~rDCJ Schemat funkcjonalny układu przedstawiono na rys. 8.26. Łatwo można zauważyć jego zbieżność z podaną wcześniej tablicą mnożenia, na której liniami przerywanymi zaznaczono sposób łączenia takich modułów. Ogólnie, dla m-bitowej liczby P i n-bitowej liczby Q do budowy multiplikatora P x Q trzeba mn/4 takich modułów. BLOKI SEKWENCYJNE Rej estry Nazwą rejestru określa się blok złożony z 8 .3 8.3 .1 pewnej liczby 11 przerzutników, którego zawartość określa się jednym słowem 11-bitowym, przy czym wprowadzenie (wpisywanie) i wyprowadzenie (odczyt} tego słowa może następować równolegle lub szeregowo. W pierwszym przypadku jest to rejestr rów110/egly, a w drugim rejestr przesuwający (gdy choćby jedna z operacji wprowadzania i wyprowadzania jest wykonywana szeregowo). Jeśli informacja jest wprowadzana równolegle i wyprowadzana szeregowo, to rejestr nazywamy równoleglo-szeregowym. Analogiczn ie, gdy informacja jest wprowadzana szeregowo i wyprowadzana równolegle, to rejestr określa się jako szeregowo-rów110/egly. 430 8.3, BLOKI SEKWENCYJNE o b '75 6--110 1 -~ y o y Rys. 8.27 Symbole przykladowych n:jcstrów równolcglych a) układ ·1s, b) układ · 115 Rejestry równoległe określa się również jako rejestry buforowe. Jako scalone są one wytwarzane jako zespoły 4, 6 lub 8 przerzutników zatrzaskowych łub przenutników D wyzwalanych zboczem. Symbole przykładowych rejestrów tego rodzaju pokazano na rys. 8.27. Niektóre scalone rejestry równoległe mają trójstanowe wyjścia, co umożliwia bezpośrednie przyłączenie tych wyjść do magistrali systemowej. Mikrooperację wpisywania do rejestru z rys. 8.27a można zapisać w postaci: układy C1C2 : Y: - D Wpisywanie do rejestru z rys. 8.27b ma postać: er: Y: = D Jest w nim również możliwa asynchroniczna mikrooperacja zerowania: r: Y = o W symu latorze TLS rejestr '175 jest opisany analogiczną do modelu przerzutnika D. procedur• RSG 175( C, R : 8; o : r•i var Y, W var - i : bytei be1ln procedurą r4: var f REG _ l75 booleao): l t R •O tben PlllCber(Y, 4, O) elee l t (C • I) and f tben for I : . O to 3 do begin Y(i] W(l ] :a D(i ]; : • Y(i] zor I end: if (C • O) and (R • 1) tbeo f :. true elae f :• false ondi Rejestr przesuwający stanowi grupę przerzutników D, JK łub dynamicznych SR, połączonych kaskadowo w ten sposób, że synchronicznie z wejś­ ciowymi impulsami zegarowymi stan logiczny każdego przerzutnika zostaje przesunięty do następnego przenutnika w łańcuchu lub na zewnątrz układu. 431 8. CYFROWE BLOKI FUNKCJONALNE Przykład realizacj i rejestru przesuwającego jest pokazany na rys. 8.28a. Przykład szeregowego wprowadzania słowa 1001 do rejestru przedstawiono w tablicy z rys. 8.28b, gdzie zapisem „ + I" oznaczono kolejne impulsy zegarowe c. b c d o o o o o 1 - f- 1 '-o "o"o o- f- o" 1 " o'-o o- e- o"o'-1 "o 1 - e- 1"'o'o"1 +1 •1 •1 •1 Y i;yo~ Y2Y3 X Rys. 8.28 Przykład rejestru przesuwającego ;a) budowa, b) działanie '164 y Rys. 8 .29 Symbol scalonego rejestru przesuwającego Przykład • 164 scalonego rejestru przesuwającego '1 64 pokazano na rys. 8.29. Jest to rejestr 8-bitowy, z równoległymi wyjściami i wspólnym wejściem zerującym. Strzałka „-+" wskazuje na kierunek przesuwu w prawo, następujące­ go przy kolejnych impulsach zegarowych. Identyfikatorem rejestru przesuwają­ cego jest oznaczenie ,,S RG" (shift register) z następującą po nim liczbą wskazującą na pojemność („długość"), czyli liczbę bitów rejestru. Mikrooperacje realizowane przez rejestr '164 ilustruje procedura SRG _ t64. 432 8.3. BLOKI SEKWEN CYJNE B; var Y SRG 16'(C, dO.dl, R - 8; r 8i var t boolean); byte; becin if R •O tben Fil!Char(Y, 8 , O) elae if (C • l) end t t ben begin d :. dO and dli for I : a 7 do..,.to Y(O) : a d do Y(I) : a Yll - 1 ); end ; i f (C • 0) and (R • l) then t : = true e l ae t :• falae end; o c n-bitowy rejestr przesuwo,qcy - Cl/- -----„ 10 I -----I = - Uktod kombinacyj ' , ;> WyjŚCoQ szeregowe lub równ ol egłe ny XOR b L\:t Sygnał ze90rowy 250 k Hz '164 & '164 •1s4 10 1/4 4030 =1 Rys. 8.30 Rejestr liniowy a) usada budowy, b) pnyklad budo•'Y ttnetalora 433 ciągów pieudolosowycłl ~64 a. CYFROWE 8l.0JCI fUNKCJONAl.HE W klasie TIL rejestry przesuwające mają równoległe wejścia albo Ograniczenie liczby końcówek w t ypowej obudowie oznacza również ograniczenie pojemności tych rejestrów do ośmiu bitów. Rejestry o znacznie większej pojemności są wytwarzane w klasie M OS jako rejestry szeregowe. Są to rejestry dynamiczne, tzn. wykorzystujące dynamiczne komórki przesuwające, omówione w p. 7.4.2 i 7.4.3. Rejestry te są wykorzystywane m.in. jako cyfrowe linie opóźniające o opóźnieniu równym 11T0 • gdzie 11 jest liczbą bitów rejestru i T0 jest okresem sygnału zerowego. Ciekawym zastosowaniem rejestrów przesuwających jest generacja cią­ gów i liczb pseudolosowych. Dla rejestru przesuwającego o długości 11 można zbudować taki układ kombinacyjny XOR, generujący sygnał podawany na wejście szeregowe rejestru i sterowany sygnałami z niektórych wyjść równoległych, że długość cyklu takiego układu bQdzie równa 2"-1. Zawartość rejestru, którą można t raktować jako 11-bitową liczbę dwójkową, zmienia się w obrębie jednego cyklu w sposób losowy, podobnie jak w ciągach otrzymywanych na każ<lym wyjściu (rys. 8.30a). Układy takie określa się jako rejestry /i11iowe. Przy niektórych długościach rejestru z przedziału 2 ,;; 11 ,;; 31 jako układ kombinacyjny potrzebny do wytworzenia cyklu o dlugości 2• - 1 może być użyta pojedyncza bramka XOR. Prtykładowo, przy 11 - 31 jedno wejście bramki XOR należy przyłączyć do wyjścia szeregowego rejestru, a drugie do wyjścia ze stopnia 3, przy czym należy zapewnić, aby stan zerowy rejestru był wyk luczony, gdyż trwałby on stale (O (!:) O= 0). inny przykład pokazano na rys. 8.30b. Jest to wzorcowe źródlo szumu białego do testowania układów akustycznych HI-FT (4). Uklad zapewnia równomierność widma mocy nie gorszą niż ± 1 dB w zakresie częstotliwości od 25 Hz d o 20 kHz. Przelącznik P służy do wstępnego wprowadzenia choćby jednej jedynki (poziomu H)do rejestru przy inicjalizacji. W ( 4) podano obszerną tablicę innych podobnych układów z czasem trwania sekwencji do I 02 dni (przy częstotliwości zegarowej 250 kHz). Sposób łączenia generatorów ciągów pseudolosowych w jeden generator, o ekstrema lnie długim czasie powtarza nia sekwencji (ponad 91 3 lat przy IO MHz), opisano w [5]. równoległe wyjścia. Liczniki Układy 8.3.2 cyfrowe rejestrujące liczbę impulsów, podanych w określonym przedziale czasu na ich wejście, określa się jako licz11iki. Są to uk łady sekwencyjne zawierające pewną liczbę n ;i.. 1 przer.wtników synchronicznych, odpowiednio ze sobą połączonych. Elementarnym licznikiem może być zatem pojedynczy przerzutnik, pod warunkiem odpowiedniego dobran ia sygnałów wzbudzeń. Jest to przerzutnik T (p. rys. 4.49 i 4.50). W licznikach dwójkowych n stanowi liczbę bitów licznika, czyli liczbę znaków w liczbie dwójkowej, reprezentującej stan 434 8 .3, BLOKI SEKWENCYJNE (zawartość informacyjną) licznika. Np. stan licznika dwójkowego czterobitoweDCBA. Liczbę stanów licznika nazywa się długością cyklu m ~ 2". Ogólnie, jeśli licznik ma m różnych stanów, przez które przechodzi cyklicznie, to określa się go jako licznik modulo m. Kolejne stany numeruje się liczbami O, I, 2, ... , go można określić liczbą dwójkową m-1. Zgodnie z klasyczną teorią układów sekwencyjnych liczniki są układami Moore'a, w których stan pamięci A jest równy stanowi wyjść Y. Wszystkie liczniki stanowią synchroniczne układy sekwencyjne. Zazwyczaj liczniki nie mają wejść X (X = 0) czyli są to układy autonomiczne. Najpopularniejsze czynniki scalone to licznik i dwójkowe (NB ) z 11 = 4 i m = 24 = 16 oraz liczniki dziesięllle (BCD) z n = 4 i m = 10. Istnieją także liczniki pierścieniowe, wykorzystujące kod „I z n", liczniki Graya i inne. Liczniki dzieli się także na: liczące w przód („do góry"), jeśli ich zawartość wzrasta w trakcie liczenia kolejnych impulsów wejściowych, na liczące wstecz („w dół"), jeśli jest odwrotnie, oraz na rewersyjne, tzn. liczące w przód lub wstecz, zależnie od wybranego trybu pracy. Tradycyjnie przyjęło się dzielić liczniki na „synchroniczne" i „asynchroniczne". Do pierwszej grupy zal icza się te liczniki, w których zmiany stanu przerzutników następują jednocześnie, czyli wejścia zegarowe wszystkich przer.wtników składowych są połączone równolegle. Do drugiej grupy zalicza się liczniki, w których zmiany stanów przerzutników nie występują jednocześn ie, lecz kolejno, gdyż wejście zegarowe każdego przerzutnika jest połączone z wyjściem przerzutnika pop17.edzającego w uk ładzie licznika, tworząc strukturę szeregową. Ponieważ, jak podano wcześniej , wszystkie liczniki są synchronicznymi układami sekwencyjnymi, w niniejszym omówieniu powyższe dwa rodzaje liczników będą nazywane, aby uniknąć niejednoznaczności określeń, jako odpowiednio równolegle i szeregowe (ripple). Rozważmy przykład syntezy licznika równoległego z m = 8, liczącego w przód w kodzie NB (ryc 8.31). Licznik musi zawierać 3 przerzutniki (2 3 = 8) i ma zakodowaną tablicę przejść w postaci pokazanej na rys. 8.3la. Transformując ją do postaci pokazanej na rys. 8.31 b i stosując metodę opisaną w p. 4.2.5.4, można określić odpowiednie funkcje wzbudzeń. Przy zastosowaniu przerzu tników D otrzymujemy: Do = Qo, D1 = Q1Qo VQ1Qo, Dz= QiQo VQ2Q1 v Q2Q 1Qo Natomiast przy zastosowaniu przerzutników JK J 0 = K 0 = 1, J, = K 1 = Q0 , Prostszą strukturę J 2 = K 2 = Q,Q 0 liczników z przerzutnikami JK pokazano na rys. 8.3 lc. Wykonując w podobny sposób syntezę licznika 4-bitowego można otrzymać układ z rys. 8.32a. Sygnał przeniesienia, określający stan wzbudzeń 435 8. CYFROWE BLOKI FUNKCJONALNE o _4,o,a, ooo o o oo 1 o o o1 o o 1 1 o1 1 o o 1 oo 1 o 1 1 01 1 1 o 1 1 o 111 b oo I o, ooo 01 1 1 10 o o o1 ot o 1 oo o1 t 1 1 O I 1 I O ooo 1 1 1 1 o o o A: ~ olo~ d 0 Ci, Ci, 0'0 c o--.~ 1 J 1-+-- 1J H lJ C1 C1 1K C1 o, o, 1K K c o-.o------_._------~ d Zegor c Oo a, ---il o, -..-~1 _,_--i . _ I_ : I I I I 6 I 7 I Oi 1 I 2 13 I 4 I s I 6 I 7 I ! I I I ...-.Cy kl li czeni a --~ I ! I ! I _ I Io ! I I 1- I I Sta ny lici n iko modu lo 8 Rys. 8.31. Przykład syntezy lic-la ika równolcglcgo z m = 8 liczącego w kodzie NB a) iakodowal\D. tablica pn:ejSC. b) siatka Karnaugb, c) budowa logie7:na licm.ika. d) przykład OVo'C ptzcl>icgi. cusowe każdego przerzutnika, w ogólnym przypadku jest funkcją stanów wyjść wszystkich poprzedzających go przerzutników: Po = I, p, = Q0 , p2 = Q,Q 0 , p 3 = Q2 Q 1 Q0 itd. W ogólnym przypadku będzie Pt = J. = K, = Q, _1 „. Q1 Q0 . Pr.redstawiony przykład ilustruje budowę licznika równoległego z przeniesieniami równoległymi (jednoczesnymi). Wadą tego rozwiązania jest szybko zwiększająca się liczba wejść bramek AND generujących kolejne przeniesienia. Wady tej nie ma struktura licznika równoległego z przeniesieniami szeregowymi, pokazana na rys. 8.32b. Układ ten jest jednak wolniejszy od poprzedniego, gdyż 436 8.3. BLOKI SEKWENCYJN E kolejny impuls zegarowy może wystąpić dopiero wówczas, gdy do ostatniego stopnia dotrze ustabilizowany sygnał przeniesienia. O ile zatem w liczniku z przeniesieniami równoległymi minimalny okres zegara jest równy sumie czasu propagacji przerzutnika (t,) od wejścia C do wyjścia Q, czasu propagacji bramki AND (t,b) i czasu ustalenia (t,.,.) To m;n = t,(C -+ Q) + tpb + t,. to w liczniku n-bitowym z przeniesieniami szeregowymi o kres ten jest dłuższy: To m;n = t,(C-+ Q) +(n-2)tpb+t.,. Koncepcyjnie najprostszą strukturę licznika dwójkowego stanowi układ szeregowy, pokazany na rys. 8.32c. Każde ogniwo tego łańcucha stanowi przerzutnik T ze stanem T= I, czyli dwójka licząca, dzieląca częstotliwość o & ... - & L ~ Il u - bc1 '- 1K ' Oo Pz '-- 11 Il ~~ - '- 1K & ~ "3 '--- Il ~ L l>c 1 '--'- - - o, bc1 L 1K ._ ~ 1J L hK - o, I- bci a, " b 1l u -L 1>c1 1K e 1J L & & - 1K a, ..... - ~ ~ ~ L l -'- b-C1 Oo -& ~ ..... Il _,_ t>C1 L 1K 1J ~ C1 a, L 1K I- a, u c 10 e"-- - l-..c 1 10 t---1>c1 ł---b C1 L--hC1 Rys. 8.32. Struktury liczników dwójkowych a) licznik rówookgly 2. pmnies.i1mianli równolcifymi, b) licznik równoległy z pn:tnicsieniami szeregowymi, c) łianik szcrcgow)' 437 ._ 8, CYFROWE BI.OKI FUNl(CJ0NAlNE sygnału wejściowego przez dwa. Można ją otrzymać z przerzutnika JK łącząc = Q, albo z przerzutnika O łącząc D = Q. Maksymalna częstotliwość impulsów wejściowych jest wyznaczona przez pierwszy przerzutnik (T0 m;• = l/Jm,J, czyli z tego punktu widzenia jest to układ szybszy od licznika równoległego. Jednakże łatwo zauważyć, że ustalenie się stanu całego licznika jest w najgorszym przypadku sumą 11 czasów propagacji t 9 (C -+ Q), co w pewnych zastosowaniach może być niekorzystne. W czasie ustalania się stanu licznika występują stany pośrednie, różne od stanu początkowego i końcowego. Z tego względu odczyt ustalonego stanu licznika szeregowego wymaga odpowiedniego J = K = I lub J = Q, K opóźnienia. Licznik szeregowy, pokazany na rys. 8.32c, jest licznikiem liczącym w przód. Jeśli jednak połączyć kolejne przerzutniki wyjściami Q na wejścia C, to tak połączony licznik szeregowy będzie liczyć wstecz: ... 3, 2, I, O, 15, 14, 13, .... w przód można wykorzystać jako licznik liczący wstecz, negacje jego wyjść. Tak więc licznik z rys. 8.32c będzie liczyć wstecz, jeśli do odczytu jego stanu wykorzystamy wyjścia zanegowane Q przerzutników. Na rysunku 8.33a pokazano budowę scalonego 4-bitowego licznika Licznik liczący wykorzystując o 1J „ 1J Cl „ IJ „ „ IJ IK IK R R ~} 01 o, o 03 e, r, r, b & '93 RCTR4 CT•O (2 IZfl C I 4 I Z21 2C(6J "l 438 Rys. 8.33 Scalony licznik dwójkowy '93 11) bud().,.,11, b) $ym!)ol grafiCln)' 8.3. BLOKI SEKWENCYJ NE szeregowego '93, a na rys. 8.33b jego symbol graficzny. Identyfikatorem 11-bitowego licznika szeregowego jest oznaczenie „RCTRn" (z ang. Ripple Counter). Układ zawiera cztery przerzutniki, przy czym wyjście Q0 pierwszego z nich nie jest przyłączone do pozostałych trzech, które tworzą licznik szeregowy modulo 2 3 = 8. Aby funkcjonalnie utworzyć liczn ik czterobitowy, czyli modulo 24 = l6, należy połączyć zewnętrznie wyjście Q0 z wejściem c 2 . Wejścia oznaczone symbolami r 1, r 2 służą do asynchronicznego zerowania licznika, tzn. że przy r 1 = r 2 = H wymusza się stan Q = Q 3 Q 2 Q 1Q 0 = LLLL, czyli L(Q) = O, niezależnie od stanu sygnałów sterujących c1 i c2 . Funkcja zerowania jest oznaczona zapisem „CT = O" (z ang. Content - zawartość), co oznacza, że CT= L(Q). Procedura CTR_ 93 opisuje licznik '93 w symulatorze TLS. procedure CTR 93(cl, rl, r2 : B; var Q : r4 ; var F : br4); { Lictnik '93 z poleczeniem QO-c2 (modulo 16) } var R : O.. 1: begin R : . rl a.nd rl xor li FFT(cl, R, Q[O] , F[O)); FFT(Q[OJ, R, Q[I], F(l)) ; FFT(Q[l], R, Q(2), F (2 ]); FFT(Q[2), R, Q(J], F (3)) end; Została w nim wykorzystana procedura FFT opisująca przerzutnik T: procedure FFT(C, R : Bi vor Q : B: v o.r f : booleon ); { Przeriutnik T wyzwalany impu l sem, zerowany przy R = O } be&in lf R • O then Q :. O elae if (C • 0) and f then Q =• Q xor l i it C a.nd R = 1 then f :. t rue elae f := false end; Układ scalony '393 (wytwarzany w rodzinach LS, HC i LV) zawiera dwa podobne liczniki 4-bitowe, które połączone szeregowo tworzą licznik 8-bitowy (moduło 256). Mają one pojedyncze wejścia zerujące i trwałe połączone ze sobą dwa pierwsze przerzutniki. Scalone liczniki równoległe są zazwyczaj budowane z przeniesieniami równoległymi. Popularnymi licznikami 4-bitowymi tego rodzaju są liczniki '16lf'162. Są to liczniki programowalne, to znaczy mają również wejścia równolegle D (podobnie jak rejestr równoległy) i wpis danych z tych wejść jest realizowany synchronicznie z impulsem zegarowym. Licznik '162 ma również zerowanie synchroniczne, natomiast licznik '161 ma zerowanie asynchroniczne (podobnie jak opisany wcześniej licznik '93). Schemat logiczny i symbol licznika 74F163A (Texas Instrwnents) o maksymalnej częstotliwości zegarowej 120 MHz przedstawiono na rys. 8.34. Schemat ten reprezentuje wszystkie układy 'I 63A. Aby umożliwić liczenie, obydwa wejścia zezwalające (ENP, ENT) muszą mieć aktywny poziom H. Na przykładowych 439 8. CYFROWE BLOK.I FUNKCJONALNE ~ 1 I t 'j 10 .... _!_ I lNT CLX A H) 2 R CO! '-" '\ ~ ł i", • ,, •co o V • • c • rcc l ~ \ Q2 „ „ i , 2TIC3 1,lD '" I rcc -I ~ \ •• ::i • 12 Q2 l, 2TIC3 1,30 '" r<(_J Rys. 8.34. ,. i, tl/C3 1,30 G2 - o QI Q2 '" LOAO - I '" 1\ -< I „ Q2 " i , ZTC 1, >0 Równoległy "' licznik cztcrobitowy 74 Fl63A (7txas /nsiruments) Jl) ilC:hern.111 lopcz-ny licznik~ b) &ełw;nat lop:my jodncao 1 0 1crtieh pnerw1nilió'A' licznika. c-) symb<>I 1r1rtcmy I EC przebiegach czasowych (rys. 8.35) przedstawiono kolejno: synchroniczne zero· wanie, synchroniczny wpis danych (HH LL = I 2 1 0 ), liczenie i zakaz liC"tenia. Jak widać, zarówno funkcja zerowania ( CLR )jak i funkcja ładowania równoleglego (LOAD) są realizowane synchronicznie z narastającym zboczem impulsu zegarowego CLK. Podobnie jak przy wykorzystywaniu pojedynczych przerzutników (p. rys. 7.28), sygnały wejściowe licznika muszą spełniać określone katalogowo uwarunkowania czasowe. Na przykład, aktywny poziom L na wejściach CLR i LOAD musi się pojawić wcześniej niż impuls zegarowy o czas ustalenia 1„ (w liczniku 74F163A równy typowo 8.5 os). 440 8.3 BLOKI SEKWENCYJNE b c CTllOIVIO t • !NT ,„, CU< 10 . L T ·5 CT• ...'" o 3CT. 15 „ G3 RCO (l4 2 ._, CS/2,3,4 • 3 • • c • o • '· 50 I t 2 • I Możliwości r •„• 12 11 tworzenia licznik ów wielobitowych z układami '163A przedstawiono na rys. 8.36. Do tego celu wykorzystuje się wyjścia przeniesienia szeregowego RCO (Ripple Carry 0111p11t). Układ w pełni równoległy (rys. 8.36a) zapewnia jednoczesność zmian wszyst kich stanów wejściowych, natomiast uk ład równoleglo-szeregowy (rys. 8.36b) ma większą częstotliwość wejściową, gdyż nie występują w nim ograniczenia wynikające z szeregowej propagacji przeniesień między licznikami 4-bitowymi. Układy liczników dziesiętnych (BCD) zawierają cztery przerzutniki JK lub D, połączone w sposób umożliwiający otrzymanie kodu wyjściowego BCD 8421. Najczęściej są stosowane układy szeregowe o strukturze 2 5 (złożone z jednego przerzutnika dzielącego przez dwa i trzech tworzących licznik mod uIo 5) oraz równoległe z przeniesieniami równoległymi. Syntezę licznika równoległego mod ul o 5 pokazano na rys. 8.37. Z zakodowanej tablicy przejść otrzymuje się siatkę Kamaugh. Przy przyjęciu przerzutników JK, zgodnie z metodą opisaną w p. 4.2.5.4, otrzymuje się funkcje wzbudzeń: 441 8 . CYFROWE BLOl(t FUNKCJONALNE CLR LOAO A Wejścia danych [------------------------ ----;---.-~ B -~-'~~[~------------------------ c _J o _J [ [ _______________________ _ _______________________ _ CLK ENP ENT / o„ ---- ---Oe ------ac::::~ Oo ::::~,---------..___ ___.__ _ _ _ _ _ __ I I RCQ ___....___.1.___~_ I• 1 12 13 14 I __.r-1~---~l-------15 o 21 Liczenie - ---•""'~ZoKoz ticzt'nio - - . Synchr. wpis Synchr. zerowanie Rys. 8.35. PrzykJadowe przebiegi czasowe w liczniku 74F163A J 3 = Q2 Q1 , K 3 = 1, J 2 = K 2 = Q1 , J 1 = Q3 , K 1 = 1 Realizację układu przedstawiono na dziesiętnych rys. 8.37c. W popularnych licznikach ('90) stosuje się nieco inną konfigurację „szeregowo-równoległą", pokazano na rys. 8.38. Wejścia r 1 , r 2 służą do zerowania licznika, a wejścia ut> liz do ustawienia stanu Q = Q3 Q2 Q1Q0 = HLLH, czyli L(Q) = 9. Jeżeli wejścia te nie są używane, to należy je połączyć z masą, gdyż w przeciwnym przypadku licznik będzie trwale zatrzymany. Wyjście Q0 łączy się z wejściem c„ W pewnych zastosowaniach istotna jest t ylko funkcja podziału modulo 10 i to, aby sygnał wyjściowy miał symetryczny przebieg. Licznik '90 pracujący jako dzielnik częstotliwości w „normalnym" trybie pracy (2-5), dostarcza na wyjściu Q3 sygnał w postaci fali prostokątnej z poziomem H trwającym 2T0 i poziomem L trwającym 8T0 (przebieg o wypełnieniu równym 0.2). Jeżeli natomiast licznik połączymy w strukturze 5- 2, czyli sygnał wejściowy doprowadzimy do Cz i Q3 połączymy z c 1 , to na wyjściu Q0 otrzymamy 442 8.3. BLOKI $EKWENCVJNE co-+-~~~~~~~~---~~~~~~~~ bcrn Rys. 8.36. Struktury liczników wielobitowych z licznika mi czterobitowymi '163A a) licznik równolcgl)'. b} licznik r6.,.•nołcglo-s.uttgowy o a,o,o, ooo oo1 o1 o o1 1 1 oo o o o o o b ol o o o o o oo ' 1 oo 01 11 1 o o 0 0 1 o1 o 1 o o o1 1 1 ooo - - 0 3 Oi o~ c 1J 1---- C1 1K .-i1J C1 02 1K co-_.~~~~~~_.~~~~~~~~--' Rys. 8.37. Synteza licznika równol egłego modulo 5 a) zakodo11oua tablica przc-jlić, b) si.alla K.atnaugh, <:) budowa logie7.na 443 8. CYFAOWC BLOKI FUNKCJONALNE o .--~~~~..-~~~~~~~~~~-o o, c ,.o-~~~~~~~~-1-.--~~~--1~~~~~-1-~~~~~ 1 '90 RCTR 01V10 b T=O 1c I4 J C I6 I Rys. 8.38 U cznik dziesi ę t n y '90 a) budowa kigicin:., b} 1ymbol 1niriany o o, c, +5 1,n I; b c, ,, o,~~ o,_;,j w L_ T=\Olfi +5 -~~ ~ ~- Rys. 8.39. Zast osowanie licznika '90 jako dzielnika częstodiwości przez 10 a) 'l MC$)WCU)'aftyft!I pndliqiem 'fi)')łcio•Jm.. bł l S)'ftlCU)'TinJl'll pnitbiq;i.?1111 WFyj4aowyrD 444 8.3. BLOKI SEKWENCYJNE symetryczną falę prostokątną o wypełnieniu 0.5, lecz kod wyjściowy nie kodem BCD 8421, lecz kodem bikwinamym (8.39ab). Układ scalony '390 zawiera dwa podobne, szeregowe liczniki BCD, które połączone szeregowo tworzą licznik dwudekadowy (modulo 100). Popularne równolegle liczniki BCD to układy' 160(162 z wejściami równoległymi, podobne do liczników modulo 16 typu '16Jf l63. Liczniki mogą być również budowane z wykorzystaniem rejestrów przesuwających. Jeśli w rejestrze n-bitowym jest zawarta tylko jedna jedynka (lub tylko jedno zero), to po połączeniu wyjścia szeregowego Yn - i z wejściem szeregowym dotrzymuje się licznik pierścieniowy(ring counter). W takim rejestrze pozycja „krążącej jedynki" (lub zera) wskazuje na liczbę zliczonych impulsów zegarowych. Kodem wyjściowym jest kod „1 z n". Wadą tych liczników jest długość cyklu równa liczbie 11 przerzutników. Oznacza to ich nieefektywne wykorzystanie w porównaniu z licznikami o kodzie NB, w których długość cyklu jest równa 2". Pewną zaletą jest natomiast brak konieczności dekodowania stanu licznika. Liczniki pierścieniowe są bardzo rzadko stosowane z uwagi na dużą liczbę potrzebnych przerzutników oraz konieczność zapewnienia dla prawidłowej pracy licznika tylko jednej jedynki (lub zera) w rejestrze (co wiąże się z koniecznością wprowadzenia dodatkowych układów). Przykładowy program symulacyjny TLS RingCtr ilustruje działanie 8-bitowego licznika pierścieniowego z automatycznym ustalaniem pojedynczej krążącej jedynki, odpowiednio do schematu pokazanego na rys. 8.40. Sygnał il na wyjściu bramki NOR powoduje wpisanie jedynki (poziom H) tylko wówczas, gdy na wyjściach S[O] ... S[6] jest stan O (poziom L). będzie już program RingCtr: uses Dec, Gater, Reg, Cr t ; conet S r8 s ( 1, 1, l, O, 1, O, 1, 1 ); var T r8; c, d begin { Załotony stan poczatkowy } B: ClrScr; c : a t; T ( 7] == o: Writeln(' Stan S') ; Wri t e l n; for m :. 1 to 40 do begin c : . c xor 1 ; for n ==O to 6 do T[n) =• S[n); d : . NORr8(TJ; SRG_164(C, d, d, 1, $, f l ); if c • 1 then begin for n := 7 do.rnto O do Wr ite(S(n]); W ritełn end end end . Jeżeli wyjście z wejściem szeregowe rejestru przesuwającego zostanie połączone szeregowym poprzez inwerter, to otrzymamy układ licznika pseudo- 445 8 CYFROWE BLOKI FUNKCJONALNE 'He 154 c -- c ~ SRG8 c11R • ~ ' 10 IHC)4078 jlł1 sro1 T'n' Si l I Tl11 ~ Rys. 8.40 Przykład budowy piericieniowcgo modulo 8 z automatyczną korekcją ~p n iewlaściwych stanów pierście11iowego (Johnsona). Licznik ten ma większą długość cyklu niż licznik pierścieniowy, równą 211. Dekoder stanów wyjściowych licznika zawiera tylko jedną bramkę dwuwejściową na każde wyjście, czyli jest relatywnie prosty. · Scalony licznik dziesiętny tego rodzaju jest wytwarzany w klasie CMOS (40178). Ma on również wbudowany dekoder. Skróco11y licznik pseudopierście11iowy ma długość cyklu zm niejszoną o jeden, czyli równą 211-1. Sygnał podawany na wejście szeregowe d rejestru, czyli wejście D pierwszego przerzutnika, jest określony funkcją Dla dzielników modulo 3 i modulo 5 jest to rozwiązanie najprostsze, np. dla modulo 5 wypełnienie sygnału wyjściowego równe 0.4. Jednak uzyskany kod wyjściowy nie jest kodem NB. Układy takie stosuje się m.in. w scalonych dzielnikach dziesiętnych wielkiej częstotliwości . Do budowy dzielników dziesiętnych wielkiej częstotliwości, przy zastosowaniu przerzutników D z klasy ECL, jest stosowana także konfiguracja pokazana na rys. 8.41. Wyjściowy przebieg prostokątny ma wypełnienie równe 0.6, lecz kod wyjściowy nie jest kodem BCD 8421. zapewniające ;.1 - s.2v 10 10 47nF ~ 180Q Cl 62'2 Rys. 8.41. Dzielnik 446 Cl cz~totliwości modulo 10 z przerzutnikami ECL 8.3. BLOKI SEKWENCYJN E widać, liczniki mogą wykonywać różne mikrooperacje, zależnie od możliwości funkcjonalnych. Na przykład, licznik '90 w połączeniu 2- 5 może w obrębie każdego cyklu wykonywać: Jak mikrooperację liczenia w przód c(r1 r 2)(u 1 u:z.l : L(Q): = L(Q)+ l mikrooperację zerowania r 1r 2(u 1 u 2): L(Q): = O mikrooperację usta wiania dziewiątki (r 1r 2 )u 1 u2 : L(Q): = 9 Jeśli licznik jest zbudowany jako zwarta całość, np. jako układ scalony (lub blok złożony z układów scalonych), i występuje potrzeba skrócenia długości cyklu, to można to zrobić ogólnie bi orąc dwoma sposobami. W obydwu przypadkach wprowadza się odpowiednie sprzężenie zwrotne. Pierwszy sposób polega na wykryciu przez odpowiedni dekoder (najczęściej bramkę AND) stanu L(Q) = k, równego żądanej długości cyklu m, a następnie wprowadzenie impulsu wyjściowego z tego dekodera na wejście zerują.ce licznika. Pokazano to na przykładzie licznika modulo 6 z rys. 8.42. o -& - - --, b CTo O ,_ r c - RCTR 4 I 1I & co- I 21 Z11 ->- ZZ I 2C ( 8 l I 1C Rys. 8.42. 14 I Przykłady + s ->-R s krócenia d l ugoś<:i cyklu licznika a)""' ol: ładrit '93 modulo 6, b) w ljczniku wielobi to1~•ym bramka NAND związana z dwoma jest krótkotrwałe wystąpienie stanu L(Q) = 6 (przechodzącego w stan 0), co w pewnych zastosowaniach może być szkodliwe. Procedura CTR_93_mod_6 opisuje Laki licznik w symulatorze TLS. Dekoderem stanu 6 jest wewnętrzna wejściami zerującymi. Wadą 447 tego rozwiązania 8 CYFROWE BLOK.I FUN KCJONALNE pro~edu.re CTR 93 aod 6(c1 var R: 0 .. 1; - - 8; va r Q r4; var F br~) i betrin R : o Q(l) a nd Q[l) • or 1: FFT(cl, R, Q(O), F(O)); FFT(Q[O), R, Q(l), F(l)); PFT(Q[l), R, Q[l), F[l)); FFT(Q [l) , R, Q(3) , F[3)); if Q[l ) and Q(l) • l tben bel' in Fil!Char(, 4, O) ; FillChar(F, 4, fallO) end end; W większych blokach stosuje się wydlużenie impulsu zerującego do wartości 1„(c = H) przez zastosowanie dodatkowego przerzutnika statycznego SR (rys. 8.42b). W ten sposób unika się niecalkowitego wyzerowania liczni ka. Eliminację przejściowego stanu L(Q) = k można uzyskać, jeśli dany licznik scalony Oub blok) ma możność synchronicznego zerowania (np. opisany poprzednio 'I 63A). Wówczas wykrywa się dekoderem stan L(Q) = k -1 , który synchronicznie z k-tym impulsem zegarowym powoduje wyzerowanie licznika. W drugim sposobie wykorzystuje się wejścia równolegle D licznika. Jeśli na tych wejściach ustali się stan L(D) = O, a sygnał z dekodera stanu L(Q) = k licznika wprowadzi się na wejścia zezwalające wpisu równoleglego (przy wpisie synchronicznym wykrywa się stan k- I), to otrzymuje się dzialanie identyczne z opisanym poprzedn io. Jeśli nato miast na wejścia równoległe wprowadzi się stan L(D) #O i do zezwolenia wpisu wykorzysta się wyjściowy impuls przeniesienia, to zależn ie od stanu wejść D można latwo i bez dekodera stanu licznika otrzymać różne stosunki podzialu, jednak cykl licznika nie będzie się rozpoczynał od stanu O lecz od L(D), a kończy) na 2" - I (dla licznika dwójkowego) lub 9 (d la licznika dziesiętnego). Przy L(D) # O i dekodowaniu stanu L(Q) = k licznika do generacji asynchronicznego impulsu wpisującego otrzymuje się liczni k o cyklu rozpoczynającym się od L(D) i kończącym się na L(Q) - k - I. Ucc CLR '16JA e·~_.__,__D:.,,o"' C & o o, Rys. 8.43. Zastosowanie lianoka '163A do realizacji cyklu licicnia modulo 10 ze stanem 4 i końcowym 13 początkowym 448 8.4. BLOKI PAMIĘCIOWE Rysunek 8.43 ilustruje wyko rzystanie opisanego wcześniej licznika ' 163A do realizacji licznika modu Io I O, lecz ze stanem minimalnym równym 4 (wpisywanym na wejścia D) i stanem maksymalnym równym 13 (dekodowanym przez bramkę NAND). Kod wyj ściowy licznika stanowi podzbiór czterobitowego kodu NB. Wpis danych następuje synchronicznie z impulsem zegarowym, po ustaleniu stanu licznika równego 13. BLOKI PAMIĘCIOWE 8.4 Bloki pamięciowe służą do przejściowego lub trwałego przechowywania informacji cyfrowych. Układy scalone realizujące funkcję pamięci są wytwarzane w bardzo szerokim asortymencie. Najprostszymi układami pamięciowymi są zwykle przerzutniki, które stanowią pamięci jednobitowe, czyli podstawowe komórki pamięciowe. Zloione układy pamięciowe mogą zawierać dużą liczbę takich lub innych komórek, tworzących odpowiednio dużą pojemność pamięci. Pamięci cyfrowe są funkcjonalnie organizowane w ten sposób, aby zapamiętywać N słów odczytywanych z pamięci, przy czym każde slowo wyjściowe zawiera w bitów. Calkowita pojemność C pamięci wynosi zatem N x w bitów. Jeśli słowo wyjściowe jest ośmiobitowe, czyli ma postać bajtu, to pojemność pamięci wynosi N bajtów. Pojemności dużych pamięci wyraża się w kilobitach (K lub Kb), megabitach (M lub M b), kilobajtach (KB) i megabajtach (MB). Symbol K oznacza 2 10 = 1024, a symbo l M oznacza 220 = 1048576 (por. tabl. 2.2). Na przykład, przy N = 2 16 = 65536 i w - I otrzymuje się C =N= 64 Kb, a przy w = 8 mamy C = 0.5 Mb = 64 KB. Pamięci przeznaczone do typowych zastosowań mikrokomputerowych mają najczęściej w = 4, 8 lub 9. Scalone pamięci półprzewodnikowe wytwarzane są w dwu zasadniczych odmianach, jako pamięci 11/otne i nie11lotne. Zawartość informacyjna pamięci ulotnych jest bezpowrotnie tracona po wyłączeniu zasilania, natomiast zawartość pamięci nieulotnych jest trwale zapamiętana w ich strukturach półprzewod­ nikowych i nie zanika po wylączeniu zasilania. Pamięci RAM Najszerzej stosowanymi pamięciami ulotnymi są pamięci umożliwiające zarówno szybki zapis jak i szybki odczyt słowa danych do/z pamięci. Tradycyjnie pamięci te określa się jako pamięci o swobodnym dostępie - RAM (Random-Access Memory). Nie jest to nazwa najtrafniejsza, gdyż wyróżnia tylko cechę swobodnego, równouprawnionego dostępu do dowolnej komórki pamięci w danym czasie, w odróżnieniu od pamięci o szeregowym dos1ępie, na przyklad rejestrów przesuwających. Właściwszą nazwą bylaby "pamięć czytaj/pisz" (RWM - Read/l#ite Memory), a.le akronim „RAM" zos tal jui: przyjęty powszechnie do 449 8. CYFROWE BLOKI FUNKCJONALNE skrótowego nazewnictwa pamięci typu RWM i w tym znaczeniu będzie również stosowany w tej książce. Trzeba jednak podkreślić, że wszystkie wymienione dalej pamięci nieulotne są w istocie pamięciami o swobodnym dostępie. Pamięci RAM stanowią większość spośród wszystkich cyfrowych ukła­ dów scalonych, wytwarzanych na świecie w końcu XX wieku. Wyni ka to z eksplozji komputerowej na rynkach światowych. Postęp technologii mikroelektronicznych jest ukierunkowany głównie na wytwarzanie pamięci scalonych RAM o jak największej pojemności i szybkości działania. Pierwsze pamięci O-RAM, opracowane na początku lat siedemdziesiątych, miały pojemność zaledwie I K b. W roku 1997 pamięci D- RAM o pojemności 16 Mb i 64 Mb były wytwarzane seryjnie i pojawiły się pierwsze pamięci o pojemności I Gb. Pamięci ROM Pamięci nieulotne określa się jako stale. Podstawowym rodzajem pamięci stałej jest pamięć typu „tyl ko czytaj" - ROM (Read-only Memory). Zawartość informacyjna tych pamięci jest ustalana w czasie produkcji dzięki użyciu odpowiedniej maski w procesie planarnym (p. 6.2). Stąd pamięci te określa się również jako „programowane maską". Dane wprowadzone do tych pamięci w czasie produkcji nie mogą być już później zmieniane. Aby osiągnąć niski koszt, układy te musz11 być produkowane w dużych seriach, zazwyczaj do zastosowań masowych. Pamięci PROM Do pamięci nieulotnych zalicza si~ również programowane pamięci stałe - PROM (Programmable ROM). Te pamięci są fabrycznie wytwarzane jako „czyste", natomiast wprowadzenie zawartości informacyjnej do pamięci, czyli jej zaprogramowanie następuje u wytwórcy sprzętu, wykorzystującego te pamięci. Oznac-a to w istocie zapis, jednak7.c trwa on wielokrotnie d łużej niż odczyt. Ponadto programowanie pamięci PROM realizuje się przez umieszczen ie jej w odrębnym, specjal nym urządzeniu, zwanym programatorem pamięci scalych. Programator współpracuje z komputerem, skąd pobierane są dane do zapamię­ tania w układzie PROM. Po zaprogramowaniu, zawartość pamięci PROM nie może być zmienia11a (to znaczy, że nic może być ponownie programowana) podobnie jak w pamięci ROM. Pamięci PROM są zatem określane jako programowane jednorazowo u użytkownika. Pamięci EPROM Pamięci nieulotne EPROM (Erasable PROM)są również fabrycznie wytwarzane jako „czyste", lecz umożliwiają wielokrotne kasowanie i programowanie zawarto- 450 8.4. BLOKI PAM I ĘCI OWE ści. Kasowanie następuje w urządzeniu zwanym kasownikiem, a programowanie - tak jak dla pamięci PROM - w programatorze. Pamięci EEPROM Pamięci nieulotne EEPROM (Electrically Erasable and Programmable ROM) są także wytwarzane jako „czyste". Ich podstawową zaletą jest to, że ich zawartość może być modyfikowana bez potrzeby stosowania odrębnego kasownika i programatora. Wprowadzenie nowych danych może być zrealizowane w sprzę­ cie, bez potrzeby wyjmowania układu pamięciowego do kasownika i programatora, jak to ma miejsce w pamięciach EPROM. Taki zapis danych trwa jednak wielokrotnie dłużej niż odczyt. Pamięci błyskowe Odmianą pamięci - FLASH FLASH („błysk"). Umożliwiają one jednoczesne („błyskawiczne") elektryczne kasowanie całej pamięci w celu zaprogramowania nowej zawartości. Są one tańsze od klasycznych pamięci EEPROM i dlatego często stosowane w sprzęcie masowego użytku. Pamięci EEPROM są pamięci LIFO. FIFO i CAM Specyficznymi odmianami pamięci półprzewodnikowych są pamięci stosowe - LIFO (Last-ln-First.-Out), pamięci kolejkowe - (First- In-First-Out) oraz pamięci skojarzeniowe lub adresowane zawartością - CAM (Content-Addressable Memory, associative memory). Będą one omówione w dalszej ~ści niniejszego rozdziału. Klasyfikacja pamięci półprzewodnikowych jest przedstawiona w tablicy 8.3. Układy te, ogólnie biorąc, są wyk onywane w technologii bipolarnej R ODZAJE PAMIĘCI POLPRZĘWOON IK.OW YCH Pamięci Pamięci o dostępie swobodnym R AM Pami ęci ulotne Pamięci bez swobodnego dos1ępu -------+---------! • statyczne &-RAM • stosowe - LIFO • dynamiczne D-R AM • kolejkowe - FIFO • skojarzeniowe CAM • rejeSITy przesuwaj ące 451 Tablica 8.3 nieulotne • programowane maską - ROM • programowane jed norazo\vo - PROl\'1 • kaso\\•alne i programowalne wielokrotnie - EPROM • elektrycz.nie kasowalne i programowalne wielokrolnie - EEPROM • elekt rycznie kasowalne w ca łoSci i progra· mowalne wielokrotnie - FLASH • pamięci S-RAM z pod1nymującą baterią litową 8 cYFROWE BLOKI FUNKCJONALNE i unipolarnej. Wyłącznie w technologii MOS są wytwarzane pamięci D-RAM, EPROM, EEPROM i FLASH. Technologie MOS i CMOS są całkowicie dominujące w budowie pamięci RAM o najwyższych pojemnościach, gdyż zapewniają najmniejszą moc strat i najniższy koszt w przeliczen iu na bit. Szybkość dziala11ia pamięci pólprzewod nikowych określa się przez podanie czasów dostępu przy odczycie i zapisie oraz długości cyklu odczytu i zapisu. Parametry te są omówione dalej, w odniesieniu do pamięci RAM . Pamięc i Pamięci o swobodnym dostępie (RAM) 8.4.1 RAM umożliwiają zarówno szybki zapis, jak i odczyt danych. Dzielą się one na statyczne (S·RAM), w których komórkami pamięciowymi s11 tranzystorowe przerzutniki statyczne SR, oraz dynamiczne (O-RAM). wykonywane w technologii MOS, w których komórki pamięci mogą zawierać tylko jeden tranzystor. W tych ostatnich przechowywanie jednego bitu informacji polega na przechowywaniu ładunku w mikrokoodensatorze scalonym, stanowiącym komórkę pamięci. Z uwagi na ulotność tego ładunku, pamięci dynamiczne wymagają periodycznego odświeżania zawartości. Jest to jednak kompensowane przez bardzo małe rozmiary komórki, a tym samym znacz.nie mniejszą powierzchnię kostki pamięci dynamicznej w porównaniu z pamięcią statyczną o tej samej pojemności. Dlatego też koszty pamięci dynamicznych w przeliczeniu na bit są znacznie mniejsze. Zespól wszystkich komórek pamięciowych danego układu tworzy matrycę pamięciową, czyli strukturę prostokątną w postaci siatki, której każda klatka reprezentuje jedną komórkę (rys. 8.44). Poziome paski komórek nazywa się wierszami, a pionowe kolum11ami. Dostęp do wierszy realizuje się za pomocą linii slowa, a dostęp do kolumn za pomocą linii bitu. Ustalenie aktywnego stanu logicznego na jednej z istniejących linii słowa wybiera (adresuje) związany z nią wiersz komórek. Podobnie ustalenie aktywnego stan u logicznego na określonej linii bitu wybiera związaną z nią kolumnę. Każde przecięcie wiersza z kolumną wyznacza jedną komórkę pamięciową w danej matrycy. Aby umożliwić zapis i odczyt stanu z określonej komórki n ależy zatem zaadresować odpowiednią linię słowa i odpowiednią linię bitu. W najprostszym przypadku cały wiersz może stanowić słowo o długości słowa wyjściowego. Przy większych pojemnościach i małych długościach słowa prowadziłoby to jednak do budowy matrycy w postaci bardzo długiego paska, gdzie występowałyby bardzo duże pojemności pasożytnicze długich linii bitu oraz znaczne kłopoty topologiczne. Dlatego zazwyczaj matryca pamięciowa ma postać prostoką ta o stosunku boków nie pr1..ekraczającym I : 4. Adresowanie wierszy i kolumn w matrycy następuje w kodzie „ / z N". Aby zmniejszyć lic-.t:bę wej ść adresujących układ pam ięciowy, czyli liczbę bitów adresu pamięci, przedstawia się go w kodzie N 8. 452 8.4. BLOKI PAM IĘCIOWE li niesłCMO Kolumno Wyjścia donyc.h we/wy Wz mocnioc~ Odczytu Ukł ady Dekoder odresowy kolumn Wejścia L-.-J---L- -.--------1'< Ukłod Sterujący Rys. 8.44. Zasada budowy donych 1 w o~~ość słowo wejsciowego/wyjściowego układu pamięci półprzewodnikowej (RAM) Przy użyciu stowarzyszonych z matrycą dekoderów wybiera się okrewiersz i kolumnę (kolumny). Do realizacji zapisu dane z wejścia (wejść) danych pamięci wprowadza się do wybranej komórki (komórek) przy użyciu odpowiednich układów sterujących, scalonych wspólnie z matrycą pamięciową. Podobnie do odczytu danych z komórek matrycy służą odpowiednie układy zwane wzmacniaczami odczyt.u. Ponadto układ pamięci zawiera układy buforowe (związane ze wszystkimi wejściami i wyjściami) oraz główny układ sterujący, umożliwiający wybór trybu pracy (zapis/ odczyt) i aktywizację/dezaktywi­ zację układu pamięciowego na podstawie odpowiednich sygnałów wej- ślony ści owych . Pamięci statyczne (S-RAM) 8 .4 .1.1 W technologii MOS komórkę pamięci statycznej RAM można zrealizować w postaci pokazanej na rys. 8.45. Komórkę tworzy przerzutnik statyczny SR, gdzie jako obciążenia L mogą być wykorzystane tranzystory z kanałem zubożanym (p. rys. 7.62). Tranzystory T5 i T6 stanowią bilateralne bramki transmisyjne, sterowane linią słowa z dekodera adresu wierszy. Wybór kolumny następuje przez podanie poziomu H na wejście J.fybór bitu z dekodera adresu kolumn. Mniejsze rozmiary komórki i mniejszą moc strat uzyskuje się jednak gdy jako obciążenia L stosuje się wysokooporowe (10 10 -10' 2 il) rezystory z krzemu 453 8. CYFROWE BLOKI FUNKCJONALNE LS Komplementorno linio bitu Linio bitu -'--"----------"~-'- - - - - \YL 1 Wybór bi tu : : Linio 1 rL.~·~JT_B~~~!._~~T.....J Bl._j słowo wzmocnioa odczytu + W'lmocniocz zapisu A3 0 10 ) Rys. 8.45. Przykład y Wzmo cnłocz A2 zapisu 0 11) budowy komórki w statycznej pamięci MOS/RAM polikrystalicznego, słabo domieszkowanego z użyciem implantacji jonów. Dzięki umieszczeniu ich 11ad strukturami tranzystorów ·Tl i T3, powierzchnia komórki może być znacznie mniejsza od powierżehni komórki z obciążeniami ,,zubożonymi". Najmniejszą moc strat ma komórka CMOS o strukturze przerzutnika SR pokazanej wcześniej na rys. 7.94a (bez tranzystorów N3 i N4). Dostęp do komórki uzyskuje się przez uaktywnienie linii słowa, czyli wybranie wiersza (poziom H na tej linii powoduje przewodzenie tranzystorów transmisyjnych TS i T6) oraz uaktywnienie pary linii bitu, czyli wybranie kolumny (poziom H na wejściu „Wybór bit u" powoduje przewodzenie tranzystorów transmisyjnych kolumny, oznaczonych symbolami TB i TB). Po uzyskaniu dostępu do komórki można zrealizować operację zapisu lub odczytu. Zapis uzyskuje się przez wymuszenie na liniach bitu odpowiednich stanów komplementarnych przez układy sterujące zapisu. Odczyt realizuje się poprzez odpowiedni wzmacniacz odczytu, przy nieaktywnych wyjściach {stan wielkiej impedancji) wzmacniaczy zapisu. Przykład budowy małej, klasycznej pamięci statycznej CMOS RAM typu CY7C 148 (I K x 4) (firmy Cypress Semiconductor) pokazano na rys. 8.46a. Matryca pamięciowa zawiera 4096 komórek w strukturze 64 wierszy i 64 kolumn. Adresowanie czterobitowego słowa pamięci jest wykonywane przez dwa dekodery dziesięciobitowego adresu A, przy czym do wyboru jednego z 64 wierszy służy dekoder wiersza, a do wyboru jednej czwórki z 64 kolumn służy dekoder ko lumn. Przy zapisie czterobitową informację wejściową D należy 454 8.4. BLOKI PA MIĘCI OWE o X/Y OgO- (81N/"10F64'J Os O - o,o- . Oo O 0-A o, 0-- pomtęciowa . 64 włefsze o, 030- d1 64kolumny BIN/'10P16"1 "'0-- ~N O/Y do /vo J o, o ooo-- 1p , C> 17 fy, d,/y, Molryco 64 . łf64 ~N _... Uk tody we/wy _... do kolumn ~ d3/ 'tJ -...... <>v ...~ -~- . . ._ & Jzopisz twrite-l rl-J> . ~ ~ Odczytaj (reodl ~ b c o' 5 6 RAM1k•4 A, As 7 4 3 ?A 10~4 2 1 17 ••A3 16 ••A, Ao A1 A2 14 GNO 15 13 12 A1 I/Oo 1/0, 1/02 11 vo, 10 Wf 9. 1n Li:, C11READI C2 IWR ITE] „ 8 EN , r ,20 1L O/Y Ucc es 16 15 13 18 17 l._r;7A.1 L._ Rys. 8.46. Pamięć statyczna CMOS typu CY7Cl 48 (Cypress Semit-011d11ctor) L._ ;:i) bOOowa logi1.-l.na, b)$ymbol &r::afici11y IEC. 12 11 c) ()1.nac1enia ko1'1cówt k ukladu t.._ 8. CYFROWE BLOKI FUNKCJONALNE wprowadzić do jednej czwórki kolumn, co odpowiada użyciu czterech demultiplekserów „I na 16". Przy odczycie informację z jednej czwórki kolumn należy wyprowadzić na wyj ście Y, co reprezentuje funkcję czterech multiplekserów „16 na I". Układ ma czterobitowe wejścia i wyjścia danych na wspólnych końców­ kach. Wybór wejść i wyjść jest związany z operacją zapisu lub odczytu. Jest to wykonywane przez podanie odpowiedniego sygnału na wej ście WE (l#ite Enable), gdzie kreska negacji oznacza aktywny poziom L. Wyjścia danych są t rójstanowe, co umożliwia ich łączenie równoległe z wyjściami innych podobnych układów na wspólnej magistrali. W tym celu wykorzystuje się wejście selekcjonujące CS (Chip Select), które przy CS= L powoduje uaktywnienie układu i odblokowanie wejść lub wyjść danych. Przy CS = H układ przechodzi w stan obniżonej mocy poprzez wylączenie zasi lania dekoderów. Oznacza to istotną oszczędność: moc strat w stanie aktywnym wynosi 440 mW, natomiast w stanie obniżonej mocy tylko 82.5 mW. Symbol IEC układu CY7Cl48 pokazano na rys. 8.46b. Wlaściwości dynamiczne układów pamięci półprzewodnikowych są określane przez zespól parametrów czasowych (dynamicznych), które ilustrują zachowanie się tych układów podczas sterowania. Definicje tych parametrów są zazwyczaj podawane w postaci odpowiednich wykresów czasowych. Przykład określenia parametrów dynamicznych układu CY7C 148 pokazano na rys. 8.47. Najistotniejszym z nich jest czas dostępu, ogólnie definiowany jako maksymalny czas między momentem ustalenia się określonego, stabilnego stanu wejść adresowych lub sterujących, a momentem ustabilizowania się stanu wyjść danych (przy odczycie) lub stanu wejść danych (przy zapisie). Do oceny szybkości działania układów pamięciowych najczęściej jest stosowany czas dostępu od wejść adresowych (1,y). mierzony przy operacji odczytu (WE= H, CS= L) od momentu ustalenia stanu wejść adresowych do momentu ustalenia stanu wyjść danych, czyli gdy dane wyj ściowe są „ważne" i gotowe do dalszego wykorzystania. Uklady pamięciowe określonego typu są zazwyczaj segregowane na podtypy, zależn ie od maksymalnej wartości czasu t.AA· Na przyk ład, układy CY7C!48 są selekcjonowane na trzy grupy o maksymalnych czasach dostępu równych 25, 35 i 45 ns. Na rysunku 8.47 podano w nawiasach okrągłych odpowiednie liczby dla pamięci najszybszych (CY7Cl48-25). Czasy dostępu definiuje się także w odniesieniu do innych wejść niż adresowe, a więc odnośnie zmiany sygnału CS lub WE. Do parametrów dynamicznych za licza się także czasy cyklu. Ogólnie, czas cyklu jest deliniowany jako minimalny czas wykonywania operacji odczytu lub zapisu, po którym może nastąpić kolejna operacja. Wyróżnia się czas cyklu odczytu tRc oraz czas cyklu zapisu Lwc· Charakterystyczne dla pamięci sta tycznych jest to, że ich czas dostępu od wejść adresowych t AA jes1 równy czasowi cyk lu t Re· Odwrotność c-asu cyklu 456 8.4, BLOKI PAMIĘCI OWE a Poprzedni adres ' Adres IRC ~ ~ IoDane b .' Adres stabilny 'oHlOJ ~-=4 Paprzedrie dane wyj ściowe (25) 251 ~vv ~ Ważne dane I . - - - - - - - - - - twe (25) - - - - - - - - - ! Adres ' - - - - - - - - •cwl201 - - - - - - - i es Dane wejściowe ,.....,...j,~ .:..::.~~µ....._ _ _ _ __ r-'7777?7°*"7.,..,.,~ _ _ _ __ _ __..4"'"-""-"-'~'"'""~ - - - - ------../f'4---====--I---' lwzl8J-i towlOJ-l - - - - - - - - - - - - ' - -- - , )wysoko impedancjo 1(----w~jśeciowe Oone nieokreślone .. ., o Rys. 8.47. Definicje d ynamicznych parametrów CY7Cl48 (Cypress Semiconductor) pamięci s tatycznych RAM na przykładzie układu a) odczyt. b) zapis (1/ tRcl stanowi szybkość pracy pamięci i wyraża się w megahercach (MHz). Istotnym parametrem układu pamięci jest moc strat. Podaje się ją globalnie dla danego układu lub w przeliczeniu na bit (do celów porównawczych). Na przykład maksymalna moc st rat układu CY7Cl48 wynosi 440 mW, czyli 107 11W/bit. M inimalizację mocy strat pamięci można uzyskać wieloma sposobami. Jednym z pierwszych stosowanych sposobów było wprowadzanie układu pamięci w opisany wyżej stan spoczynkowy (obniżonej mocy strat, ang. power down, standby) w czasie gdy stan wejścia zezwalającego CS jest nieaktywny. Polega to na odcięciu lub ograniczeniu zasilania do bloków peryferyjnych matrycy pamięciowej (dekodery, wzmacniacze odczytu i zapisu) i ograniczeniu zasilania samej matrycy, tak aby przez przewodzące tranzystory komórek płynął tylko minimalny prąd podtrzymujący zawartość informacyjną. W nowszych pamięciach, aby zmniejszyć moc strat i skrócić czas dostępu od wejść adresowych, stosuje się specjalny układ detektora zmian stanu wejść adresowych (ATD -Address 1Tansition Detector). Po wykryciu takiej zmiany układ ATD powoduje przejście pamięci ze stanu spoczynkowego w stan aktywny na czas nieco większy od czasu trwania operacji odczytu (który generalnie jest dłuższy lub równy 457 8. CYFROWE BLOKI FUNKCJONALNE czasowi operacji zapisu), po czym układ znowu powraca do stanu spoczynkowego. W dużych pamięciach matryca pamięciowa jest dzielona na sekcje (np. matrycę IM dziel.i się na 16 lub 32 sekcje) przy użyciu podziału linii słowa, tak że w stanie aktywnym pamięci jest dostępna tylko jedna, wybrana adresem sekcja, natomiast pozostałe są w stanie spoczynkowym, łącznie z ich układami towarzyszącymi. Przy podziale na 16 sekcji, np. 64 kolumny x 1024 wiersze każda, linia słowa każdej sekcji steruje tylko 64 komórkami. Umożliwia to także znaczne skrócenie czasu dostępu w rezultacie zmniejszenia obcią:i.enia linii pojemnościami pasożytniczymi. Duże pam ięci S-RAM wymagają relatywnie dużej powierzchni kostki krzemowej (ok. I cm 2). Aby wyeliminować pojedyncze defekty i zwiększyć uzysk produkcyjny, producenci wprowadzają na kostkę dodatkowe, redundancyjne komórki (np. 8 zapasowych wierszy łub I zapasowy wiersz i I kolumna w każdej sekcji). Podczas testowania runkcjonałnego układu, w przypadku wykrycia pojedynczego derektu odcina się promieniem laserowym wadliwy wiersz (kolumnę) i na to miejsce przyłącza się zapasowy wiersz (kolumnę). Innym sposobem korekcji błędów jest zastosowanie dodatkowych układów detekcji i korekcji błędów, przy wykorzystaniu odpowiednich kodów kontrolnych. W celu skrócenia czasu testowania pamięci są wprowadzane także układy ułatwiające testowanie i nawet układy automaty<--znego testowania. Pamięci dynamiczne ( O- RAM) 8 .4 .1.2 W przeliczeniu na jeden bit informacji najmniejszą powierzchnię kostki krze- mowej, najmniejszą moc strat i najmniejszy koszt zapewniają pamięci dynamiczne. Projektowanie i wytwarzanie pamięci dynamicznych MOS RAM stanowi wiodącą w świecie dziedzinę mikroelektroniki. Dlatego też niektóre charakterystyczne problemy budowy tych pamięci zostaną omówione nieco szerzej. Komórka pamięci dynamicznej zawiera tylko dwa elementy: tranzystor MOS i mikrokondensator, jak pokazano na rys. 8.48a. Pojemność C, tego mikrokondensatora, o typowej wartości ok. 50 fF (50 x 10- lS F), stanowi w istocie sumę dwóch składowych: pojemności c. kondensatora MOS i pojemności złączowej C; między źródłem t ranzystora i podłożem (zazwyczaj C0 = (5.;- 10) C;). T ranzystor MOS stanowi przełącznik łączący lub odłączający kondensator C, od I.inii bitu, zależnie od stanu napięcia na bramce, czyli linii słowa. Pamiętanie bitu informacji wynika z dwóch stanów ładunku zmagazynowanego w kondensatorze C,: stanu neutralnego i stanu naładowania. Stany te umownie repreuntują stany dwójkowe odpowiednio Oi I. O ile stan Ojest stanem trwałym w czasie, o tyle stan ł jest stanem nietrwałym, gdyż kondensator C, ulega stopniowemu rozładowaniu wskutek nieuniknionych upływności. Aby nie dopuścić do rozladowania kondensatora i tym samym do przejścia stanu I w stan 458 8.4. BLOKI PAM IĘCIOWE O, ładunek istniejący w kondensatorze w stanie 1 musi być co jakiś czas (zazwyczaj co kilka milisekund) regenerowany w procesie zwanym odświeżaniem. Z tego właśnie względu komórkę taką określa się jako dynamiczną. Tak samo nazywa się pamięć wykorzystującą takie komórki. Istnieje wiele odmian budowy komórek dynamicznych. Najprostszą z nich (rys. 8.48) opisał odkrywca koncepcji komórek dynamicznych R. Dennard w 1968 r. W komórce tej są zastosowane metalowe elektrody bramki i górnej ok ładki kondensatora c•. Drugą okładkę stanowi część domieszkowanego obszaru n+, umieszczona bezpośrednio pod okładką zewnętrzną i scalona z obszarem n+ źródła tranzystora. Stan trwały (0) jest reprezentowany przez paczkę elektronów normalnie obecną w obszarze domieszkowanym donorowe (typu n). Natomiast stan nietrwały (1) otrzymuje się przez usunięcie ich odpowiednio dużej liczby poprzez tranzystor T. Napięcie U00 w tej komórce jest zazwyczaj równe zeru, czyli górna okładka kondensatora jest połączona z masą. Wtedy nietrwały stan l komórki, odpowiadający wysokiemu poziomowi H na a ; - linio I ~ 1 '-'Do zewnętrznej) G c, I ;DT s b 0 tar } C; C, rllsslNapięcie podtoio) ' l inio bitu D s.łOWO , ; fN-opoęcie okłodk> k f"',,.okladko am 0 ~ zewnętrzna C0 Ok lodka wewnętrzna Co Pod toże p R ys. 8.48 Dynamiczna komórka pamięciowa Podłoże p 459 a) skład clek1ryc:l.ny, b) struktura Dcnnarda, cl struktura K os.onocł:y'cgo 8. CYFROWE 8 LOKI FUNKCJONALNE okładce zespolonej ze źródłem tranzystora, jest równoważny z naladowa11iem kondensatora. W komórce Kosonocky'ego (rys. 8.48c) dolną okładkę kondensatora MOS stanowi warstwa inwersyjna. Jest ona tworzona przez przyłączenie górnej okładki do odpowiednio dużego napięcia dodatniego U 00, tzn. o wartości większej od napięcia progowego inwersji. W tej komórce stan nietrwały (ł= H) odpowiada zmniejsze11iu napięcia na kondensatorze, czyli zmniejszeniu jego ładunku . Na rysunku 8.49 pokazano przykład struktury prostej komórki z jednym poziomem polikrzemu i metalową linią bitu [8). Kontakt łączący linię bitu z obszarem 11 + służy do połączenia drenów dwóch komórek (po lewej stronie pokazanej komórki znajduje się druga, której przekrój jest zwierciadlanym odbiciem pierwszej). Struktura ta jest stosowana w pamięciach O-RAM o pojemności 4 + 64 Kb. Charakterystycznym zjawiskiem dla pamięci O-RAM jest występowanie przejściowych, „miękkich" błędów (soft. errors), powodowanych przez rozpad cząsteczek ix. Błędy te mają charakter losowy i mogą bardzo rzadko występować w zupełnie dobrze działających komórkach. Cząsteczki IX są emitowane w wyniku rozpadu radioaktywnego uranu i toru, których śladowe ilości znajdują się w typowo stosowanych materiałach obudów. Miękki błąd może powstać, gdy trajektoria przypadkowej cząsteczk i przecina strukturę kondensatora komórki w stanie I. Przy przelocie przez podłoże cząsteczki tworzą pary nośników elektron- dziura. W komórce Kosonocky'ego elektrony te są zbierane w obszarze zubożenia (dolna okładka kondensatora w stanie I), co zwiększa napięcie kondensatora i może doprowadzić do zmiany stanu komórki z ł na O. W celu zmniejszenia powierzchni kostki krzemowej w układach pamię­ ciowych o bardzo dużej pojemności (powyżej 4 Mb) generalnie stosuje się technologię o wymiarze charak terystycznym poniżej 0.7 µm. Również zamiast klasycznych kondensatorów pltmarnych stosuje się kondensatory wglęb11e, przez wytrawienie odpowiednio głębokich dołków (rowków) i wykorzystanie ich boków na okładki kondensatora. Istnieją dwie zasadnicze odmiany tych kondensatorów. W pierwszej z nich okładka kondenstora, która jest połączona z drenem tranzystora komórki, jest utworzona na zewnątrz dołka, natomiast druga okładka jest umieszc-.wna wewnątrz. Odpowiada to „zwinięci u w głąb" planarnego kondensatora sta;idardowej komórk i, tak że jego okładka górna staje się okładką wewnętrzną, a okładka dolna okładką zewnątrzną. Przykład realizacji takiej komórki, zastosowanej w konstrukcji pamięci o pojemności 4 Mb, pokazano na rys. 8.50 [9]. Można ją nazwać komórką rowkową (tre11ch cell). W podanym przykładzie komórki pamięciowe są umieszczane w płytk iej jamie p w celu zmniejszenia częstości „mięk kich" błędów, wywołanych c-.i;ąsteczk ami IX. 460 8.4. BLOKI PAM I ĘCIOWE Metalowo hnio bitu o n• Vlorstwo lnw~ rSyJn O Dren Podłoże p b ~--- - --- ' --- --- w wa -~ - - - . 1...-- --t-i r- ' ------ _J ,.... - - -- - - - I ' -----Por1krzemowo linio srowa ' I -1. _ - linio bitu X I ! ----- · t-i - L L Metolowa - -, ...J ~ 1-J Ok ła dko polikrzemowo Rys. 8.49. Komórka z jednym poziomem polikrzcmu i metalową linią bitu a) pntkrój strukluty, b) l'>PG1ntf1.11 komOrki Druga odmiana kondensatorów wgłębnych ma ok ładkę wewnętrzną z tranzystorem komórki, a okładka zewnętrzna stanowi otaczające, silnie domieszkowane podłoże p +. Przykład budowy takiej komórki, określanej skrótem BSE (Buried-Storage-Electrode), pokazano na rys. 8.51 [10). Zasadniczymi zaletami takiej konstrukcji w stosunku do poprzedniej są: połączoną tylko dwa poziomy połączeń (linie słowa i bitu), gdyż zewnętrzna okładka kondensatora jest związana z uziemionym podłożem p +, dodatkowo zapewniając dużą odporność na zakłócenia, znacznie zmniejszona podatność na zakłócenia przesłuchowe i przebicia między kondensatorami blisko sąsiadujących komórek, większa odporność na „miękkie" błędy wywołane cząsteczkami a, co wynika z umieszczenia aktywnej elektrody kondensatora w bardzo małym obszarze wewnątrz dołka. 461 a. CYFROWE 61.01(1 FUNKCJONALNE Konctensotor Linio stowo l 1n10 bi tu (polo-2) (pol1krzeme1<> ( pol o- 1) Linio słowo \ (Al) \ I I nI I I I I I I I '? ' I Jamo p ~ ' Podłoże p 1 1 L - - - - - - - - - ____ _ J Rys. 8.50 Struktura komó rki rowkowej [9) Najmniejszą powierzchnię zajmuje komórka stosowa (STC - Stacked-Capacitor Cell) (14]. W tej komórce kondensator jest 11alożo11y nad tranzystorem i linią bitu. Przy zastosowaniu technologii 0.4 11m otrzymano pojemność kondensatora równą ok. 25 ff i powierzchnię komórki ok. 1.7 µm 2. W pamięciach dynamicznych RAM najtrudniejszą w realizacji operacją jest odczyt. Należy bowiem wtedy wykryć na linii bitu niewielką zmianę napięcia, wywołaną przyłączeniem do tej linii jednej komórki (przez aktywizację linii słowa), przy czym stosunek pojemności pamiętającej C, do łącznej pojemności pasożytniczej linii bitu (C 8 ) jest zazwyczaj znacznie mn iejszy od jedności. Generalnie stosowaną zasadą przy projektowaniu wzmacniaczy odczytu jest ustalenie najpierw na linii bitu odpowiedniego napięcia równowagi, które następnie ulega pewnemu niewielkiemu odczyleniu (w dół lub w górę) w wyniku przyłączenia kondensatora komórki do linii bitu. Na rysunku 8.52a pokazano przykład budowy wzmacniacza odczytu stosowanego w pamięciach, wytwarzanych technologią CMOS. Aby zmniejszyć pojemność pasożytniczą linii bitu, powszechnie stosuje się podział linii bitu na mniejsze odcinki związane z sekcjami pamięciowymi, z których tylko jedna jest w danym czasie wybierana adresem. W pokazanym przykładzie sekcja ma dwie części, zawierające po 128 komórek pamięciowych. Do jednego wzmacniacza odc-qtu i wspólnych linii wejścia/wyjścia danych jest przyłączana w czasie zapisu i odczytu tylko jedna część (sygnały kluczujące SL i SM). W każdej części, poza 462 8.4. BLOKI PAM I ĘCI O\VE Linio słowo (polikrzemek) L1n10 bitu (Al) p p•·-----Aktyy,•no okł ad ko k.ondensotoro Dielektryk: k onc:l~otoro Pod łoze l)"•(okfodko kondensotoro) Rys. 8.51 Struktura komó rki BSE [ IO) właściwymi komórkami pamięciowym~ są zawarte także dwie ta kie same komórki referencyjne (C 0 = C,), na których ustala się napięcie referencyjne przed odczytem. Kolumna w sekcji jest tworzona przez dwie linie bitu BL i BL, biegnące fizycznie obok siebie i określane jako składane. Zapewnia to współbieżność sygnałów zakłócających na wejściach wzmacniacza odczytu, czyli zwiększenie odporności na zakłócenia. W celu zmniejszenia pola elektrycznego w cienkim dielektryku tych kondensatorów nieaktywne okładki kondensatorów komórek są przyłączone do napięcia UP równego połowie napięcia zasilającego (U cc/2). Przy odczycie najpierw wykonuje się ładowanie wstępne linii bitu BL i "Hr. W tym celu włącza się tranzystory kluczujące T0 , Ti„ TR 1 i TR 2 sygnałami SL i .PR (SM pozostaje nieaktywne) i wytwarza się sygnał <Pp, który włącz.a tranzystory Tp 1 , Tn, Tn i powoduje ustalenie na obydwu liniach BL i "HL napięcia UP· Jednocześnie wytwarza się sygnały DW0 i DW, , co powoduje ustalenie się napięcia UP również na a ktywnych ok.ładkach kondensatorów CD w komórkach referencyjnych. Następnie aktywizuje się wybraną dekoderem linię słowa, np. WL 1, oraz linię DW0 , związaną z komórką referencyj ną drugiej linii bitu. Przy odczycie stanu I ilustruje to rys. 8.52b, a przy odczycie stanu Orys. 8.52c. Kondensator C„ na którym było pamiętane napięcie U,- Ur = - U cc/2 lub U cc/2, czyli umowny stan 1 lub O, zostaje przyłączony do linii bitu BL. Ponieważ pojemność C, kondensatora pamiętającego jest znacznie mniejsza od pojemności pasożytniczej C8 na linii BL, więc zmiana napięcia na tej linii jest bardzo mała !l U =(U. - up)/(I + CB/ C,) i w praktyce wynosi ok. 200 mV. Ta niewielka różnica napięć na liniach BL i BL podlega wzmocnieniu we wzmacniaczu odczytu (tranzystory n-kanałowe T, 1 463 8.. CYFROWE 8 1.01(1 FUNKCJONALNE ~~ ~.o-j4" o SL b \lo\.1 , refereneyjnyc;.h wzmocniocz 'l/imocniOez odczytu odno'wla,q;y Linie Lldoo We/WY łodowonio wstępnegO c 0Wc ""-,O u,,.--~-- --- ,-------· Zdegenerowany l $10ń SM 13, '---' Rlro k!lmórek pom!ęciow'(Ch i' lll -' L 1l8 komórek :' 04iwieienit 1 !.kinu t U Lini e " ei B o I I I I l., 't cdC)w(Jl'fe li lwstfphe I I 1 .....,odc.zytu I I Wykrywani e 1 s~onu 1 I ' '„ I l~ytu 1 $tonu 1 1 I : 'NykfyW(Jl"lie I I L.-==-- : l.... .... "Himocnit~ '„ ~ wirnoenie,;it-, Regenerocjo ' i ' ... , stonu O : stCl:l"'lu 0 1 1 Rys. 8.52. Przykład sekcji pamięci CMOS DRAM zawierającej 256 komó rek pamięciowyc h, dzielonej na dwie połowy wykorzystujące wspólny wzmacniacz odczytu a) sichcmat. b) odczyt mnu I. c) odayt $t~nu O i T,2 ) po przyłączeniu masy narastającym zboczem sygnału <1>5 . Poziom wysoki na jednej z linii BL i BL (oraz poziom niski na drugiej) ustala się po włączeniu wzmacniacza odnawiającego (tranzystory p-kanałowe T1u i TR 2) opadającym zboczem sygnału <PR• który przyłącza napięcie zasilające Ucc do tego wzmacniacza. Ustalony w tym statycznym przerzutniku SR bit informacji zostaje przesłany w postaci dwu komplementarnych poziomów napięcia na linie We/Wy przez tranzystory przełączające 1Y1 i m. sterowane przez dekoder kolumn sygnałem <I>„ Odczytany stan komórki jest ustalany ponownie w tej komórce, czyli następuje odświeżenie jej zawartości. Sygnały WL i DW, sterujące dostępem 464 8.4. BLOKI PAM l ~CIOWE IWEI I ~----.i m Buf<>< danych J- Generator zegomwy2 wejściowych ~ A 2----t Wejścia ~!:::.~ . 0dr'esowe AS- - - l A&- --l A7 - -"i A6 - -"i Bvf0< danych 1 - --' wyjściowycłl . r - - --"1 odritSu Ukłod sterujQ-.. n kolumn '--~-~-' 1 r~lli!.!..= 01c-lcy odświeio - 14- I . niemilicznik ~-.,,, Bufory IOEI O.koder 1~ koC~um~n~1~ 10~1~n----"""i ;: I I I ł BufO<y Aa-A1- - - - t 000-0031 :4 1-'--'--"I adresu A9 ---t_~-:::-:::-:::::::-i ;t..:w:;~•r~ sm~ (1~0l_J Wzmocniocze odczytu uk<ody l/O 1-----· - 1024 • 4 f RAS - - - - --t ~nttotor :.___ zegarowy 1 Generator no pięcia poloryzujqcego Rys. 8.53. Schemat blokowy pamięci O-RAM I M x 4 typu MCM54400A (Motorola) do komórek pamiętających, muszą mieć amplitudę większą od sumy Ucc i napięcia progowego Ur tranzystorów w komórkach, aby przy odświeżaniu i zapisie poziomu wysokiego można było przenosić przez te tranzystory napięcie Uce· Dlatego sygnaly te są wytwa rzane na kostce przy użyciu podciąga11ia pojemnofriowego (bootstrapping). Jako przykład budowy pamięci O- RAM, rysunek 8.53 przedstawia schemat bloko wy pamięci MCM54400A (Motorola), wykonanej w technologii CMOS 0.7 µm, o pojemności I M x 4 czyli cztery megabity [ 11). Wejścia i wyjścia 4-bitowycb danych są na tych samych końcówkach DQO-DQ3. Wejścia sterujące są dwa: W- wejście zezwolenia zapisu (symbol równoważny do WE) oraz G - wejście sterujące wyjściowe bufory trójstanowe (symbol równoważny do OE). Matryca pamięciowa podzielona jest na cztery sekcje l024 x 1024. Pełny adres dla 1 M słów (dokładnie 1048576 = 2 20, p. tabl. 2.2) wymaga 20 bitów. Aby zmniejszyć rozmiary i liczbę końcówek obudowy, w pamięciach dynamicznych powszechnie stosuje się zasadę 11111/tipleksowania adresu. Polega ona na tym, że ad res jest wprowadzany na dwukrotnie m niejszą liczbę końcówek adresowych (w tym przypadku 10) w dwóch kolejnych fazach, synchronizowanych przez sygnały zegarowe odpowiednio RAS i CAS. 465 8. CYFROWE BlOICI FUNKCJONALNE o ... ----- ..... "~~-----· ___ __ i---- --•cs•- -,.,.. - --....,__.., ~- 'e.<s--~ ,---'--'--.1-- -- -- - - - DOD · OO>"°" - - - - - - ...,._, ---+---~ Uoi. (W)soka - r q a l b IUS U111 - - - -- ; . ~------ ' ""' - - - - - - - l 1 u, - en u„ Ull - Ad,.. U„ - 1 AAH "7''7'>7\~;:;:=--.l_ u.-D.C>f.:;t'~~!...Jf\l.V\;-.1!2!!!!:!!!-.Y'ID.D.J.~~l.Cl(.J.Ol.JL~ICID.J.Ol.JLY\ 'os~ 000 • 003 Vou - - - -U0t. - ·'0tt-j yl\,__ _ __ _ __ - - - - - Wolne Wl!l<IC'Weclone Rys. 8.)4. Przebiegi czasowe w - Hl(lH- l - - - - - pamięci MCM54400A (Mororola) Ił)~'"' odcl:,1u. b) cykl zapisu. c) odct'ył kol~ny..-h d11nych to1> '.t)łll 1m trybie stronicov1")'m iF~t P"llł' ,\todi: ł PAIJ Podstawowe operacje na pamięci O-RAM 10 odczyt, zapis i odświe:a11ie. Ka.7.da z nich jest wykonywana w ctasie odpowiedniego cyk/11. Przebieg cyklu odczytu w najprosiszym trybie swobod11y111 (ra11dom) pokazano na rys. 8.54a: 466 8 ..ł. &LOK.I OOO· DO>Uoot - - - PAMIĘCłOWE - - - - -<I UOl - najpierw na wejścia adresowe A0-A9 wprowadza się połowi;! adresu, czyli IO bitów, które muszą się ustabilizować w czasie 1.tSR; następnie opadające zbocze sygnału RAS (Row Address Sirobe) wpisuje połowę adresu do rejestru adresowego wierszy i aktywizuje wzmacniacze odczytu: jeden z 1024 wierszy w każdej sekcji matrycy zostaje wybrany i wszystkie 1024 bity z tego wiersza zostają odczytane przez 1024 wzmacniacze odczytu; dane na wejściach adresowych muszą być jeszcze podtrzymywane w czasie I R;1 11 ; na wejścia adresowe wprowadzana jest druga polowa adresu, która musi się ustabilizować w czasie I ;1s6 opadające zbocze sygnału 'C'AS (Colum11 Address St.robe) wpisuje tę połowę adresu do rejestru adresowego kolumn; w każdej sekcji następuje wybranie jednego z l 024 bitów i cztery wybrane w ten sposób bity są przesyłane do bufora wyjściowego; dane na wejściach adresowych muszą być podtrzymywane w czasie tc„ 11 ; opadające zbocze sygnału G otwiera trójstanowy bufor wyjściowy i po czasie tG„ na wyjściach DQO DQJ są ważne dane do wysłania z pamięci. Do oceny szybkości działania pamięci O-RAM najczęściej stosuje się czas dostępu IRAC (rys. 8.54a), zwany również latencją RAS. W omawianej pamięci wynosi on 60, 70 i 80 ns (zależnie od wersji). Czas cyk/11 t Re wynosi odpowiednio 110, 130 i 150 ns. Odwrotność czasu cyklu (l/tRc) stanowi szybkość pracy pamięci 467 8. CYFROWE BLOKI FUN l(CJONALNE i wyraża się w megahercach (MHz). Wartości pozostałych (jak widać, dość licznych) parametrów dynamicznych pamięci są ściśle określone w danych katalogowych jako wartości gwarantowane. Zależnie od parametru, może to być wartość maksymalna (op. !«.<o le.tel lub minimalna (np. lius, Lc„ 5 ). Rysunek 8.54b ilustruje przykład przebiegu cyklu zapisu. Początek jest podobny jak przy odczycie i polega na wprowadzeniu pierwszej części adresu. Sygnal zezwolenia zapisu Wmusi się pojawić przed aktywnym zboczem sygnału CAS o czas twcs• i podobnie dane do zapisu muszą być obecne przed tym zboczem o czas tos. Czas cyklu zapisu jest taki sam jak czas cyklu odczytu. W malych pamięciach O-RAM stosowany był tryb stronicowania (page mode). w którym adres wiersza (,,stronicy~) jest utrzymywany jako stały (RAS = L) przy kolejnych dostępach do kolumn podczas strobowania ujemnymi zboczami sygnałów CAS. Skraca to czas dostępu do kolejnych danych. Tryb stronicowania jest użyteczny w takich zastosowaniach, gdy wysokie jest prawdopodobieństwo kolejnych danych na tej samej stronie, na przykład w zastosowaniach graficznych. W nowoczesnych, dużych pamięciach O-RAM (również w omawianym tutaj przykladzie) powszechnie jest stosowany tryb szybkiego s1ronicowania (fast page mode). W tym trybie (rys. 8.54c) bufory adresowe kolumn są otwierane już przy opadającym zboczu sygnału RAS (który pozostaje na poziomie L) i działają jak przezroczyste zatrzaski gdy CAS = H, natomiast każde kolejne, opadające zbocze sygnalu CAS powoduje zablokowanie tych zatrzasków. Oznacza to, że adres kolumn w wierszu (w naszym przykładzie I 024-bitowym) może się już ustalać podczas gdy CAS = H, nie czekając na opadające zbocze tego sygnalu. Czas cyklu w tym trybie (t.-c)jest znacznie skrócony. W omawianym przykładzie (rys. 8.54c) wynosi on odpowiednio 45, 45 i 50 ns. Istotnym problemem przy stosowaniu pamięci dynamicznych jest konieczność periodycznego odświeżania ich zawartości. Polega to na kolejnym odświeżaniu wszystkich wierszy w matrycy pamięciowej. Należy zauważyć, że przy każdej operacji odczytu również następuje odświeżenie calcgo wybranego adresem wiersza. Maksymalny odstęp czasowy między dwoma kolejnymi odświeżeniami jednego wiersza stanowi cykl odświeżania TR. Olugość cyklu odświeżania zależy od architektury pamięci oraz użytej technologii i wynosi zazwyczaj 2 ms dla pamięci O-RAM o pojemności 16 K, 4 ms dla ukladów 256 K. 8 ms dla I M, 16 ms dla 4 M, i 32 ms dla 16 M. Odświeżanie może być realizowane w trybie całościowym (burst), gdy wszystkie wiersze matrycy są raz odświeżane jeden za drugim w każdym cyklu TR, lub w trybie rozlożonym (distributed), gdy odświeżanie kolejnych wierszy jest równomiernie rozlożone w obrębie każdego cyklu TR. Czas potrzebny na odświeżenie jednego wiersza jest równy czasowi cyklu IRc · Na przykład, w omawianej pamięci 54400A-60 o czasie dostępu IR.te = 60 os, cyklu odświeżania TR = 16 ms, i cyklu odczytu tRc = 110 ns, czas potrzebny 468 8.4. BLOKI PAM IĘCIOWE b HOIH - - - - - - - - -- - - - - (Wysoka impedancja) c u l!AS tł - __...,, - - - - - •..... - - - - < L---- --1>--- u, 'COP CISu„ - u, - 'ASA Ważne dane: '«yjśd ow e Rys. 8.55. Przebiegi czasowe przy operacji odświeżania w pamięci dynamicznej RAM na przykładzie MCM54400A (Motorola) a) cytl od.Swiciania metodą o·tk~ iUS Cs.tany na \\'Cjkłach Wi G5' oboXcnc.>. układu ra b)<:ykl odiwiciania mccodą pn:cd RA S ~any <:)cykl odłwieiłnia mcCodą ukrptq po odcef(ic 469 rui wejściach Wi A() - A9 q oboję1ne), 8. CYFROWE BLOKI FUNKCJONALNE na odświeżenie wszystkich I 024 wierszy (jednocześnie w czterech sekcjach matrycy) wynosi 1024 x O.I I µs = ll3 µs, czyli ok. 0.7% cyklu TR. Najprostsza koncepcyjnie metoda „t ylko RAS" polega na periodycznej aktywizacji sygnału RAS przy kolejno zmienianych adresach wierszy (rys. 8.55a). Wymaga to użycia zewnętrznego układu sterującego wraz z licznikiem do wytwarzania kolejnych adresów. Aby ułatwić realizację procesu odświeżania, w nowoczesnych pamięciach D-RAM (również w pamięci 54400A z rys. 8.53) umieszczony jest specjalny układ sterujący i licznik, który umożliwia odświeżanie bez potrzeby zewnętrznej generacji adresów. W tym celu stosuje się następujące dwie metody: metodę CAS przed RAS oraz metodę ukrytą. Metoda CAS przed.RAS (rys. 8.55b) wykorzystuje wewnętrzny licznik odświeżania (rys. 8.53) do wytworzenia adresu następnego wiersza do od świeżenia. Adres ten jest zwiększany o I przy każdej kolejnej sekwencji CAS przed RAS, która powoduje aktywizację licznika. W tym celu najpierw należy przełączyć sygnał CASz H na L przy RAS = H, a po czasie lcsR przełączyć sygnał RAS z H na L przy W = H. Sygnał CAS musi pozostawać potem na poziomie L przez czas lcnR· Odświeżanie metodą ukrytą (hidden) może być wykonywane w końcu cyklu odczytu lub zapisu (realizowanego przez sekwencję RAS - CAS) przez utrzymanie stanu CAS = L i wytworzenie po cz.asie l RAS dodatkowego impulsu RA S o długości tRP (rys. 8.55c). Przy odświeżaniu po odczycie dane na wyjściach pozostają wtedy ważne z poprzedniej operacji i mogą być przesłane do innego miejsca systemu, czyli odświeżanie przez wewnętrzny licznik następuje równolegle („w ukryciu"). Jest to w istocie odmiana metody poprzedniej, ale z ważnymi danymi na wyjściach. Pamięci dynamiczne o dużej pojemności, podobnie jak duże pamięci statyczne, zajmują relatywnie dużą powierzchnię kostki krzemowej . Skutkiem tego jest zwiększone prawdopodobieństwo niesprawnej pamięci w wyniku jednego lub kilku defektów w strukturze. Aby wykorzystać takie niesprawne kostki, umieszcza się na wszystkich kostkach zapasowe wiersze i kolumny (np. w pamięci I Mb 4 wiersze i 4 kolumny, a w pamięci 4 Mb 8 wierszy i 8 kolumn). Ta redundancja umożliwia zastąpienie uszkodzonej kolumny lub/ i wiersza przez spalanie laserowe lub elektryczne odpowiednich polączeń na kostce. Zatem kosztem kilkuprocentowego zwiększenia powierzchni kostki można otrzymać znaczne zwiększenie uzysku produkcyjnego. Moduły pamięci O-RAM Do typowych zastosowań komputerowych pamięci D-RAM są umieszczane w specjalnych modułach o postaci malych płytek drukowanych, które umieszcza się w odpowiednich gniazdach na płytach glównych komputerów. Wszystkie 470 8,•. BLOKI PAMIĘCIOWE układy pamięciowe modułu są adresowane równolegle, natomiast długość słowa danych modułu jest iloczynem liczby układów razy długość słowa pojedynczego układu. Często stosowanym modułem jest 72-stykowy moduł SIMM (Single-ln.fine J\1emory Module). Przykład takiego modułu MCM321 30 (Moiorola) o pojemności I Mx 32 bity ilustruje rys. 8.56. Zawiera on osiem wcześniej omówionych układów MCM54400AN w standardowych, 26-końcówkowych obudowach SOJ, oraz osiem kondensatorów blokujących o pojemności 0.22 pF, umieszczonych po jednym pod każdym układem pamięciowym. Moc strat modułu MCM32l30-60 (o czasie dostępu 60 os) wynosi w stanic aktywnym 5.28 W. Struktura logiczna modułu jest pokazana na rys. 8.56d. Do automa tycznego wykrycia obecności zainstalowanego modułu i jego czasu dostępu służą styki wykrywające (Presence Detect) PDl - PD4 (rys. 8.56e). Scalony sterownik pamięci, zawarty zazwyczaj w zestawie specjalizowanych układów scalonych (chipset) na płycie głównej komputera, odczytuje tę informację w celu ustalenia optymalnego trybu sterowania pamięcią. W modułach pamięciowych stosuje się od czterech do dziesięciu styków wykrywających PD. Do wykrywania cech bardziej złożonych modułów równoległy format styków PD jest jednak niewystarczający. W takich przypadkach stosuje się format szeregowy, wykorzystujący dodatkową pamięć EEP ROM (typowo układ 24C02 o pojemności 256 x 8) na module. Odczyt informacji z tej pamięci następuje na podstawie protokołu szeregowego l 2 C i pięciu styków: SCL, SDA i trzech bitów adresowych dla ośmiu modułów. Wykrywanie i usuwanie błędów Pamięci D-RAM podlegają różnego rodzaju zakłóceniom, w wyniku czego w przechowywanych danych mogą pojawić się błędy. Mogą to być omówione wcześniej błędy ,,miękkie", czyli przejściowe (powodowane przez cząsteczki ex) lub błędy „twarde", czyli powstałe w wyniku trwałego uszkodzenia pamięci. W celu ochrony pamiętanej informacji stosuje się różne metody. Jedną z nich jest wprowadzenie na kostkach pamięciowych dodatkowych układów do wykrywania błędów pojedynczych, przez zastosowan ie kodu parzystości. Inna polega na wprowadzeniu układów do wykrywania i korekcji błędów, na podstawie kodu Hamminga lub kodu parzystości blokowej (p. 2.4). Jednak koszt takich usprawnień jest na tyle duży, że w praktyce jest rzadko spotykany. Zazwyczaj ochrona danych przed błędami realizowana jest na poziomie mod ulów pamięcio· wych przez odpowiedni sterownik pamięci (np. sterownik w układzie 82439HX, wchodzący w skład zestawu (chipset) firmy Jn1el dla komputerów Pentium). Sterownik taki może być zaprogramowany (przez procedurę startową BIOS w komputerach PC) do stosowania określonej metody, pod warunkiem, że został użyty odpowiedni modul pamięciowy. 471 8. cYFROWE BLOKI FUNKCJONALNE o c Styl< Nazwo Styk Nazwa Styl< Nazwa Styk Nazwa Styt< I u„ 13 A1 25 0022 37 NC A2 26 27 007 38 NC 0023 39 u„ A7 40 ., CASO NC Ucc 2 ooo 14 3 0016 15 A3 4 16 17 18 M 5 8 001 0017 002 7 0018 19 8 9 003 0019 20 21 NC 004 IO Ucc 22 11 NC 12 NJ A5 A6 28 29 30 Nazw• Styk Nazwa 49 008 61 0013 50 51 0024 62 83 0030 0014 52 53 •2 CAS3 54 0025 0010 0026 64 CASZ 0031 0015 NC CAS1 RASO NC 55 56 57 0011 0027 87 NC 58 31 A6 A9 0020 005 32 33 34 RAS2 43 44 45 46 23 0021 ~ NC •7 w 24 008 36 NC 48 NC NC 009 65 66 POI P02 P03 0012 0028 88 69 70 P04 59 Ucc 11 NC 80 0029 n Uss pamięć O-RAM Rys. 8.56. Moduł pamięciowy SIMM MCM32130 (Motorola) 7.awierający o pojemności I M x 32 bity a) widok uwnłHtny, b) oum«a.cja k ołlcbwc:k (widok 2 góry), c) oznaczenia kor\c.\111--ek, d) ,slruktuna loticina, e) rio:i:iomy logiczoc na koi11;ów••eh •łut~yc,:b do automacyc-111cjtC> wy• rywania c:z.a.w d~lłf>U uiytyth ukladów 472 8.4. BLOKI PAMIĘCIOW E d CAS MS ~G I ~ w U2 w U3 w I w G w 006 009 0010 0011 l/01 0012 l/02 l/03 AO-A9 l/04 0013 0014 0015 0016 l/02 0017 l/03 AfJ-A9 l/04 0018 0019 w l ~ ~ G U7 w l/02 l/03 I U6 ~ G l/01 Nl-A9 l/04 I CAS ~ l/01 l/02 l/03 AO - A9 l/04 us ~ -r 007 I m ..,r;-- 006 ł/04 I U4 RAS G 004 005 l/01 ~ ~ ł/01 l/02 l/03 I I G 003 I l:AS l:AS -r 002 AfJ-A9 I m l/03 NJ - A9 l/04 U1 RAS RAS G 001 ' m * ooo l/02 UO w <! l/01 l/01 002 l/03 NJ-A9 004 I 001 l/02 003 NJ-A9 l/04 0024 0025 0026 0027 0028 0029 ~ 0031 I I NJU~ =----------------1r------- -1uo-u1 w A9 0.22 µF (MIN) Uss-~~~~~~~~~~~~~-+-~~~~~~-- e SM 60ns 70 "' PD1 P02 u„ u„ P03 NC u„ u„ u„ P04 NC NC 473 8. CYFROWE BLOKI FUNKCJONALNE Najczęściej stosowane 32-bitowe moduły pamięciowe nie są dostosowane do jakiej kolwiek ochrony przed błędami. Aby umożliwić najprostsze wykrywanie pojedynczego błędu w każdym bajcie, należy wprowadzić jeden dodatkowy bit parzystości dla każdego bajtu na module. Takie moduły mają zatem format 36-bitowy. Mogą one być stosowane w komputerach nie dostosowanych do kontroli parzystości (dziewiąty bit jest wtedy ignorowany), ale nie odwrotnie. Testowanie parzystości realizowane jest przez sterownik pamięci. Układ 82439HX generuje podczas zapisu jeden bit parzystości dla każdego bajtu w 64-bitowym formacie danych, co wymaga użycia przynajmniej jednej pary modułów 36-bitowych SIMM lub jednego modułu 72-bitowego DIMM. Sprawdzanie następuje podczas odczytu. Lepszą ochronę danych zapewnia użycie metody ECC (Error Checking and Correcting). W najprostszym, typowym przypadku stosowany jest kod Hamminga, który dla 64 bitów danych wymaga dodania 7 bitów kontrolnych (p. 2.4), czyli w praktyce jednego bajtu (razem 72 bity). W ten sposób można osiągnąć wykrycie i skorygowanie pojedynczych błędów oraz wykrycie błędów podwójnych w słowie 72-bitowym. Sterownik pamięci generuje bajt kon trolny przy zapisie i testuje 72-bitowe słowo przy odczycie. Przy wykryciu pojedynczego błędu jest on automatycznie korygowany, lecz zawartość pamięci pozostaje bez zmiany. Użycie metody ECC wymaga zastosowania odpowiedniego sterownika pamięci (układ 82439HX ma taką opcję, lecz wymagany jest również odpowiedni BIOS) oraz specjalnych modułów, np. 36- lub 72-bitowych ECC, o innym rozkładzie styków. Moduły SIMM 36-bitowe (72-stykowe) ECC mają w celu ich rozpoznania przez system styk (48) połączony z masą. Stosowane są również 40-bitowe (72-stykowe) moduły SIMM ECC, w których cztery bajty reprezentują dane i jeden bajt zawiera bity kontrolne. Zabezpieczenie przed błędami wymaga użycia kosztowniejszych modułów pamięciowych, a ponadto spowalnia pracę komputera, który musi mieć dodatkowy czas na generowanie i testowanie dodatkowych bajtów kontrolnych. Ponieważ nowoczesne układy pamięciowe mają bardzo niską stopę błędów przejściowych i wysoką niezawodność, więc dla większości zastosowań nie opłaca się wprowadzać dodatkowej ochrony przed błędami pamięci. Och ronę taką wprowadza się w komputerach do zastosowań profesjonalnych, na przykład w serwerach sieciowych, w komputerach bankowych i w systemach wojskowych. Ulepszone odmiany pamięci O-RAM Układy pamięci są masowo stosowane w komputerach, do tworzenia bloków pamięci głównej i w specjalizowanych kartach graficznych. Ich udział w światowym rynku scalonych układów pamięciowych sięga 70% [12). Przy tak 474 O-RAM 8.4 .1.3 8.4. BLOKI PAM I ĘCIOWE masowym zapotrzebowaniu olbrzymi wysiłek technologiczny jest kierowany na uzyskanie maksymalnej szybkości pamięci O-RAM przy ich minimalnym koszcie i mocy strat w przeliczeniu na bit. Najszybszymi pamięciami są pamięci statyczne (S-RAM), w których pojedynczą komórkę pamięciową stanowi jeden przerzutnik SR (p. 8.4.1.1). Komórka pamięci D- RAM jest jednak znacznie mniejsza, gdyż zawiera tylko jeden tranzystor i jeden mikrokondensator (p. 8.4.1.2). Wynika stąd znacznie niższy koszt pamięci dynamicznej w porównaniu z kosztem pamięci statycznej o tej samej pojemności. Ponadto maksymalna pojemność pamięci dynamicznych jest przy danym poziomie technologicznym około czterokrotnie większa niż pamięci statycznych. Dlatego pamięci O-RAM nie mają praktycznie innej alternatywy w typowych zastosowaniach komputerowych, mimo mniejszej szybkości działania niż pamięci S-RAM. Główne ograniczenia szybkości układów O-RAM są następujące: odc-Lyt stanu kondensatora w komórce O-RAM jest destrukcyjny, co wymaga czasu na powtórny zapis z odświeżeniem po odczycie, potrzebny jest czas na proces ładowania wstępnego linii bitu (p. rys. 8.52), adres w pamięciach D-RAM jest ustalany w czasie kolejno w dwu etapach przy typowym multipleksowaniu adresu, niezbędne, periodyczne odświeżanie zawartości całej matrycy pamięcio­ wej wymaga pewnego czasu. Zwiększenie szybkości pamięci O-RAM jest tym bardziej istotne, że od początku lat 90-tych szybkość nowych mikroprocesorów wzrasta znacznie szybciej (rys. 8.57). Większą szybkość pamięci dynamicznych osiąga się przez ulepszanie trybu dostępu do danych w klasycznych pamięci asynchronicznych O-RAM oraz przez opracowanie nowych pamięci synchronicznych SD-RAM. Większość układów pamięciowych, stosowanych w latach 1996, 1997 stanowiły asynchroniczne układy O-RAM pracujące w trybie swobodnego dostępu RANDOM (p. rys. 8.54ab) oraz szybkim trybie stronicowym FAST PAGE (FP - p. rys. 8.54c). Dalsze ulepszenia szybkiego trybu stronicowego w pamięciach asynchronicznych (rys. 8.58) uzyskano w układach o skrótowych nazwach angielskich EDO (Extended Data Out), BURST EDO (BEDO), PIPELINE BURST EDO (PBEDO). Następną generację pamięci O-RAM stanowią pamięci synchroniczne SD-RAM, o dostępie synchronizowanym zegarem systemowym. Specyficzną odmianę szybkich pamięci synchronicznych, pracujących równolegle na IO-bitowej magistrali, stanowią pamięci Rambus, stosowane głównie w urządzeniach graficznych. Budowa i protokoły transmisji bardzo szybkich bloków pamięcio­ wych zostały także ujęte w amerykańskich normach IEE 1596.4 (RamLink) i 1596.7 (SyncLink). 475 8. CYFROWE BLOKI FUNKCJONALNE 400 3SO i 300 - J - - PROCESORY 250 - - 0 - SD· RAM 200 - +-- FP/EDO O· RAM 100 - .Qo-- 150 O· RAM 50 oi o; !!! N ~ ,., "' !!! „ ~ §? g ~ ~ N I.oto szybkości działania Ry:1. 8.Jl. Poró wnanie wzrostu różnych mikroprocesorów i pami~ dynamicznych rypów ( 12] 70 PlPEllNE 8URST EDO (PBEOOI 60 BURST EDO !Bl:OOI FAST PAGE (FP) 10 RANDOM Odnwony po!Nęci o•~~ O·RAM Rys. 8.J8 Szybkość różnych odmian asynchroniczn)'Cb pami\'ci D· RAM (12] Pami ęci EDO O-RAM Pamięci „o wydłużonym czasie danych" (Extended Data Out), ok reślane również jako pamięci z trybem „hiperstronicowym" (H yperpage), umożliwiają istotne skrócenie cyklu strony lpc i jednocześnie wydłużenie czasu dostępu do danych (stanu DANE WAŻNE) w porównaniu z pamięciami pracującymi w trybie szybkiego stronicowania FP (por. rys. 8.54c). Niemn iej istotne jest to, że zalety te osiągane są bez żadnych dodatkowych kosztów (ta sama powierzchnia krzemu, te same obudowy i rozkład końcówek co w pamięciach FP). Jeśli porównać pamięci EDO i FP o tej samej szybkości trybu stronicowego, to pamięci EDO mają niższy koszt. 476 8.4. BLOKI PAMI ĘC I OWE Na rysunku 8.59 przedstawiono przykładowe przebiegi czasowe dla cykli odczytu stronicy w pamięciach FP i EDO o tym samym czasie dostępu tRAC = = 70 ns [13). Bufory wyjściowe w pamięci FP przyjmują stan wielkiej impedancji w momencie kończenia narastającego zbocza sygnału CAS, natomiast w pamię­ ciach EDO wprowadzone na wyjściach są zatrzaski, które przechowują dane wyjściowe dłużej, nawet po wpisaniu nowego adresu kolumn (przez czas Lcou). Oznacza to, że procesy ładowania wstępnego kolumn i zatrzaśnięcia nowego adresu są jakby ukryte i przebiegają w czasie, gdy na wyjściach są jeszcze dane z poprzedniego adresu kolumn (efekt zakładkowania). Parametr ton w pamięci EDO nie jest definiowany, natomiast definiuje się czas tcow W obydwu typach pamięci wierszy jest zatrzaskiwany opadającym zboczem sygnału RAS, kolumn jest zatrzaskiwany opadającym zboczem sygnału CAS, kolumn jest ustalany przy CAS = H. rys. 8.59b, w pamięci EDO możliwe jest zakładkowanie czasów dostępu tcPA.• dzięki czemu osiąga się skrócenie czasu cyklu t pc z 45 ns do 32 ns, czyli zwiększenie szybkości odczytu z 22 MHz do 31 MHz. Oznacza to, że pamięć EDO O-RAM o czasie dostępu 70 ns ma ten sam czas cyklu odczytu strony co pamięć F P O-RAM o czasie dostępu 40/50 ns. W pamięciach o czasie dostępu 60 ns osiąga się analogicznie skrócenie tpc z 35 ns do 25 ns, czyli zwiększenie szybkości z 28.6 MHz do 40 MHz. Ponadto osiąga się istotne wydłużenie czasu dostępu do danych: z 5 ns (rys. 8.59a) do 12 ns (rys. 8.59b), co ułatwia przesłanie danych do systemu. Opadające zbocze sygnału CAS może być wykorzystane do synchronizacji próbkowania danych z wyjść pamięci . Trzeba jednak zwrócić uwagę, że w pokazanym trybie odczytu pamięci EDO na jej wyjściach nie ma stanu wysokiej impedancji, co może utrudniać współpracę z innymi źródłami danych na tej samej magistrali. Stan ten można uzyskać przez użycie sygnału OE = H lub WE = L. W typowych komputerach przystosowanych do pamięci FP styk OE zazwyczaj trwale połączony z masą, a uzyskanie stanu wielkiej impedancji na wyjściach realizowane jest przez narastające zbocze sygnału CAS. Pamięci EDO nie są zatem całkiem kompatybilne z pamięciam i FP i wymagają użycia odpowiednich sterowników. Nawet jeśli użyty sterownik umożliwia użycie pamięci EDO, to jeszcze nie oznacza, że potrafi wykorzystać opisane wcześniej zalety tej pamięci. Do pełnego jej wykorzystania potrzebny jest zatem odpowiednio zbudowany i optymalnie skonfigurowany sterownik. W modułach EDO O-RAM (na przykład w typowych 72-stykowych modułach SIMM) czas dostępu kodowany jest, podobnie jak w modułach pamięci FP, przez stany na czterech stykach wykrywania obecności PD. Cecha wskazująca, że dany moduł ma pamięć FP lub EDO nie jest jednak kodowana stykowo. Wykrycie rodzaju pamięci zainstalowanej w komputerach PC jest realizowane przez system operacyjny BIOS (Basic Input/Output System), umieszadres adres adres Jak widać z 477 8. CYFROWE BLOKI FUNKCJONALNE a jest zołrzosk iwony opodoj qcym zboczem Ad ~s Jo;ołu m n m 20 5 Don<! 3 Drugi P ierwszy dostęp Trzec::i dos tęp dostęp Norosłojqce zbocze C AS odcino wyjŚCi o b Adres kolumn jest z olrzoskiwony m opodojqcym zboczem CAS U 1H • U 1L . ~-=~-=_,.,---==::=::::=>. ' 'I U IH • c;:s u,L - Adres A • 10 ' 8„ . KOL1 L • l PAo:40 WyjScio Q8~ :+Hi-Z­ Pi erwszy dostęp :' Trzeci Oone pozostojq ważne _ po noros tojqcym zbOczu CAS ~ Dowolne dane na wejśc ioch ~ NieokreŚIOl)f dane n o wyj Scioch Rys. 8.59 Porównanie działania [ 13) pamięci FP i EDO O-RAM przy odczycie w obrębie jednej stronicy a) odcz)·l w pami~ FP {r,._. • 45 n.s. dane • ·aine pruz S n11). bi odczyt w pam~i l!-1)0 (tPC - 32 n:s, dJine 11o·;t·Cne pń;CZ 12 os) czony w układzie pamięci ROM lub EEPROM Flash na płycie głównej komputera. Odpowiednie parametry, określające sposób sterowania użytej pamięci, są wprowadzane do rejestrów konfiguracyjnych sterowania pamięci D-RAM, umieszczonego w jednym z układów zestawu steruj ącego (chipset} komputera. Proces ten jest zazwyczaj realizowany au tomatycznie podczas startu 478 8.4. BLOKI PAM I ĘCI OWE systemu. Jeśli użyty BIOS oie Jest tak doskonały, lecz potrafi wykorzystać moduły pamięci EDO i FP po odpowiedniej deklaracji użytkownika (typowo w opcji CHIPSET SETUP w komputerach PC), to pozostaje metoda prób i błędów (Internet: http://sysdoc.pair.com/bios.html). Pamięci BURST EDO O-RAM Pamięci „seryjne" (burst) EDO umożliwiają dostęp do całej stronicy danych bez potrzeby dostarczania kolejnych adresów dla kolumn. Potrzebny jest najpierw adres wiersza wybierający stronicę, a następnie tylko jeden adres kolumny. Po odczycie danych z tego adresu seria następnych adresów kolumn jest generowana przez wewnętrzny licznik adresowy, czego wynikiem jest znacznie krótszy cykl odczytu. Pamięci takie są szczególnie użyteczne do zastosowa1i graficznych, wymagających często sekwencyjnego'odczytu całych kolejnych stronic z pamięci. Pamięci PlPELINE BURST EDO O- RAM Pamięci seryjne EDO z zakładkowaniem („potokowe" - pipeline) umożliwiają wewnętrzne adresowanie znacznie mniejszych serii niż cała strona, zazwyczaj ograniczonych do czterech lub ośmiu kolejnych adresów. W czasie generowania serii adresów może być wpisany adres początkowy następnej serii (efekt zakładkowania), co znacznie skraca czas dostępu do danych z tego adresu. Przy 64-bitowej magistrali osiągalna szybkość transmisji danych z tymi pamięciami wynosi ok. 500 MB/s [ 12]. Pamięci synchroniczne SD-RAM W typowych zastosowaniach komputerowych dostęp do pamięci jest realizowany asynchronicznie przez procesor lub sterownik pamięci z użyciem sygnałów RAS, CAS i odpowiednich adresów, w sposób pokazany na r ys. 8.59. Szybkość odczytu w trybach FP i EDO, wyrażana przez częstotliwość równą l/ tpc. jest ograniczona przez długość wykonywanych kolejno procesów ładowania wstęp­ nego, dekodowania adresów, odczytu danych i ich przesłania przez bufory wyjściowe. Uzyskiwana szybkość wynosi od ok. 20 MHz (FP) do 30 - 40 MHz (EDO). Ponieważ szybkość zegara procesora jest z reguły wyższa, zatem przy korzystaniu z pamięci musi on przystosować się do jej cyklu przez wprowadzenie „stanów oczekiwania" (waii state), czyli „pustych" cykli zegarowych, w czasie których nie wykonuje on żadnej pracy poza czekaniem. Oznacza to spowolnienie pracy całego urządzenia. Istotne przyspieszenie można uzyskać przez zastosowanie pamięci synchronicznych, czyli sterowanych synchronicznie przez zegar systemowy. Pamięć synchroniczna ma na swoich wejściach i wyjściach przerzutniki zatrzaskowe, do których wpis następuje zawsze synchronicznie z odpowiednim (zazwyczaj narastającym) zboczem zegara. Pracą pamięci steruje wewnętrzny sterow nik w postaci układu sekwencyjnego, zgodnie z poleceniami wpisywanymi syn- 479 8. CYFROWE BLOKI FUNKCJONALNE chronicznie z zewnątrz przez wejścia sterujące pamięci. Po wpisaniu odpowiedniego polecenia (np. odczytu) i adresu procesor może się zająć inną pracą, a po określonej liczbie cykli zegara może odczytać dane z buforów wyjściowych. Kolejne czynności wykonywane wewnątrz pamięci mogą być podzielone na etapy wykonywane zakladkowo (pipe/ining), co pozwala znacznie skrócić cykl odczytu w trybie seryjnym, który jest typowy dla pamięci synchronicznych. Jako przykład można przedstawić układ pamięci synchronicznej MT48LC2M8AlS-lO o pojemności 16 Mb (2M x 8) i minimalnym czasie cyklu równym 10 os, firmy Micron Tecl1110/ogy. Jest ona zorganizowana wewnętrznie w postaci dwu banków o 2048 wierszach i 512 kolumnach 8-bitowych. Pozwala to na przeplot operacji ładowania wstępnego i dostępu w tych bankach, co zwiększa szybkość pamięci. W czasie inicjalizacji pamięci poleceniem LOAD MODE REGISTER do jej Rejestru T rybu Pracy (MODE REGISTER) wpisywane są z 11 wejść adresowych dane ok reślające sposób działania pamięci, a w szczególności długość serii (l, 2, 4, 8 kolumn lub cała strona), typ serii (sekwencyjny lub z przeplotem), wielkość latencji CAS (I , 2 lub 3 cykle zegara). Latencja CAS (CAS latency) jest opóźnieniem wstępnym, mierzonym liczbą cykli zegarowych, od chwili wpisu polecenia odczytu (READ) do chwili otrzymania na wyjściach pierwszej porcji danych w serii. Jest ona ściśle związana z liczbą etapów zakladkowania wewnątrz pamięci. Przebiegi czasowe podczas operacji odczytu seryjnego stronicy przy latencji równej 2 pokazano na rys. 8.60. Dostęp seryjny rozpoczyna się od polecenia aktywizującego ACTI VE, które powoduje wpis adresu wiersza (stronicy) i wpis bitu BA do wyboru jednego z dwu banków. Po czasie Lxcv wytwarzane jest polecenie odczytu (READ), które wpisuje adres pierwszej kolumny w żądanej serii. Po upłynięciu czasu latencji na wyjściach DQ pojawiają się dane z tej kolumny. Dzięki wewnętrznemu licznikowi adresów i zakladkowaniu procesu adresowania dane z adresu kolumny zwiększonego o jeden pojawią się zaledwie jeden okres zegara później. Podobnie szybko pojawiają się kolejne dalsz.e dane. Po zakończeniu odczytu calej strony seria rozpoczyna się autonomicznie od nowa. Aby ją zakończyć (lub obciąć) należy wydać polecenie zakończenia serii BURST TERM I N A TE z wyprzedzeniem x = latencja - I. Przez podanie nowego polecenia READ z wyprzedzeniem x przed odczytem ostatniego słowa z bieżącej serii, można otrzymać ciągły potok danych, bez przerwy wprowadzanej przez latencję. Dotyczy to nie tylko odczytu kolejnych serii, lecz także odczytu pojedynczych bajtów o różnych (przypadkowych) adresach kolumn na tej samej stronicy, wpisywanych z kolejnymi poleceniami READ. W opisywanym układzie, przy latencji równej l, 2 i 3 otrzymuje się szybkość odczytu seryjnego równą odpowiednio 33, 66 i 100 M Hz. 480 8.4. 8L0KI PAM I ĘC I OWE Pttno ~rono ooc:y10N1 - ' Sttio e:cit~ $!roł'l'y n..t IUll'<l)' St-ł ':.lJl!'IO • !ąfOQ on'ff; Qd.tc"n'° 81JAST T(llfo!IN,,,_f( ~ o o..otrot ~ no ••Jkio cł\ ~ Nit0kfł'1CN: 0011<: nG "'fiłea«,h Rys. 8.60 Prl:ebieg odciytu stronicy w pamięci synchronicwej SD-RAM MT48LC2M8A IS (Micron Tech1wlogy) o pojemności 16 Mb (2 M ><8~ Przyjęto latencję równą 2. Sygnał CKE (ClocK Enable) służy do czasowego zablokowania zegara. Przy CKE = L następuje ,,zawieszenie" pracy pamięci: wszystkie pozostałe wejścia są nieaktywne, a wewnętrzny licznik adresów serii jest zatrzymany. Sygnał DQM (aktywny poziom L) służy do maskowania (blokowania) wejść przy zapisie i blokowania (stan wielkiej impedancj i) wyjść trójstanowych przy odczycie. Odświeżan ie zawartości pamięci jest realizowane w trybie AUTO REFRESH, analogicznym do metody „CAS przed RAS", stosowanej w konwencjonalnych pamięciach O-RAM. Polecenie AUTO REFRESH musi być przekazywane z~ sterownika zewnętrznego, lecz kolejne adresy wierszy są generowane przez wewnętrzny licznik. Cała matryca omawianej pamięci (4096 wierszy) musi być odświeżana co 64 ros. Jeśli w czasie wpisywania polecenia A UTO REFRESH jest CKE= L, to pamięć wchodzi w tryb SELF REFRESH, w którym cały proces odświeżania jest sterowany autonomicznie przez wewnętrzny sterownik. Osiem takich układów pamięci synchronicznych umieszczone jest na typowym, 168-stykowym module DI MM o pojemności 2 M >< 64 = 16 MB (Micron Tech110/ogy). Do wykrycia obecności modułu w systemie oraz odczytu 481 8. CYFROWE BLOKI FUNKCJONALNE jego parametrów służy dodatkowa pamięć EEPROM o pojemności 256 bajtów. Polowa tej pojemności jest zaprogramowana przez wytwórcę i może być odczytana przez system p rzy użyciu pięciu ko11cówek do transmisj i szeregowej, zgodnie z protokołem T2C. Jak widać z rys. 8.57, pamięci synchroniczne SD-RAM umożliwiają osiągnięcie znacznie większej szybkości niż konwencjonalne pamięci asynchroniczne FP/ EDO. Są one przewidziane do zastosowania na większą skalę w nowej generacji komputerów PC. Już w 1996 roku firma Intel dostarczała zestaw sterowników (chipset) 82437/ 8VX, który umożliwia wykorzystywanie pamięci synchronicznych. Na komputerowych płytach głównych z tym zestawem są w tym celu umieszczane specjalne gniazda do 168-stykowych modułów DIMM. Pamięci synchroniczne RAM BUS (RO-RAM) Dalsze zwiększenie szybkości pamięci synchronicznych osiągane jest przez układy opracowane przez japońską firmę Rambus (http://www.rambus.com). Układy te są przyłączane do sterownika pamięci za pośrednictwem jednej, wspólnej magistrali IO-bitowej, którą są przesyłane sygnały sterujące, adresy i dane (rys. 8.61) w sposób przypominający protokół H P-BUS. Ponadto wszystkie układy są synchronizowane zegarem o typowej częstotliwości 266 MHz. Ponieważ do transmisji adresu i danych wykorzystywane są obydwa zbocza zegara, więc efektywna, maksymalna szybkość transmisji wynosi 533 MB/s. Jedna magistrala ze sterownikiem tworzy pojedynczy ,,kanał". Przy dwu równoległych kanałach otrzymuje się szybkość 1066 MB/s. Szybkość 533 MB/s otrzymuje się taki;e przy wykorzystaniu „zwykłych" pamięci synchronicznych SD-RAM przy transmisji słów 64-bitowych i zegarze 66 MHz. Przy zastosowaniu pam ięci Rambus prostsza (i tańsza) jest jednak konstrukcja bloku pamięciowego, gdyż unika się kosztownej i kłopotliwej w projektowaniu sieci połączeń oraz dużych (zazwyczaj 168-stykowych) gniazd do modułów DIMM. Sterownik jednego kanału pamięci Rambus ma tylko 31 końcówek (dla dwu kanałów - 62 końcówki), podczas gdy sterownik pamięci SD-RAM o formacie 64-bitowym wymaga użycia 120 końcówek . Moduł pamięci Rambus umieszczany jest w niewielkim gnieździe 36-stykowym RSocket, podobnym do gniazd dla modułów SIMM. Ste rownik pemieci Rambus Rys. 8.61 Magistrala 482 łączeniowa pamięci Rambus 8.4. BLOKI PAMIĘCIOWE Ponieważ pamięci Rambus wykorzystują te same matryce pamięciowe oraz układy adresowania i odczytu co pamięci SD-RAM i pamięci EDO/FP, więc ich koszt jest zbliżony. Ich zalety sprawiają, że są one konkurencyjne w stosunku do pamięci SD RAM i ich stosowanie będzie się rozszerzać zarówno do budowy bloków pamięci głównej w komputerach, jak też do budowy pamięci w szybkich kartach graficznych, zwłaszcza do przetwarzania obrazów trójwymiarowych. Pamięci Rambus zostały z powodzeniem zastosowane m.in. w stacji roboczej Si/ico11 Graphics /ndigo, w kartach akceleratorów graficznych Creative Labs Grap/1ics B/aster M A334 PC i Cirrus Logic lag1111a oraz w urządzeniu do gier Ni11tendo 64. Rozwój t echno l ogii pamięci O-RAM Postęp technologiczny w zakresie rozwoju pamięci dynamicznych O -RAM ilustruje tablica 8.4. W uzupełnieniu pokazanych danych liczbowych należy dodać, że w miarę wzrostu pojem1_1ości pamięci maleje ich napięcie zasilania Wynika to z rosnących ograniczeń technologicznych (generacja gorących elektronów, zbyt duże natężenie pola elektrycznego w cienkich dielektrykach), jak również z potrzeby ograniczenia mocy strat. Często napięcie zasilania matrycy pamięciowej jest zmniejszane na kostce o 0.7 - 1.7 V w stosunku do napięcia zasilającego układ końcówkowo. Tablica 8.4 PARAMETI<Y PAMIĘCI DYNAMICZNYCH Z LAT 1990. 96 Poiemność parni~ Właściwości parni~ (Mb) 4 16 64 256 1024 (µm) 0.7 o.s 0.35 0.25 0.15 Powierzchnia (mm 2) 83 104 + 141 180+234 246 + 333 582+ 715 30+50 30 + 40 25+40 25 + 30 25 (Jun1) 4.7+9 3+ 4.1 l.S+ 1.8 0.55+ 0.72 0.29+0.33 Czas d05t~pu la.c (ns) 17+46 20+ 50 29+40 30 + 36 3 1+ 35 Rozdzielczość Pojemność technologii C, (fF) Powierzcbnia komórki Klasyczne napięcie zasilania równe 5 V (wewnątrz 3.3 V) jest stosowane tylko przy relatywnie niewielkich pamięciach (do 4 Mb). Pamięci o pojemnościach od 16 do 64 Mb są zazwyczaj zasilane napięciem 3.3 V (wewnątrz 2.5 - 2.6 V), a pamięci o wyższych pojemnościach napięciem 2.5 V (wewnątrz 1.8 V). 483 8. CYFROWE BLOKI FUNKCJONALN E Pamięci stałe 8.4.2 Pamięci określane jako stale umożliwiają szybki odczyt danych zapisanych trwale (nieulotnie) w odrębnym procesie zwanym programowaniem pamięci. Dane te są odczytywane w postaci słów ci liczbie bitów w praktyce nie mniejszej od czterech (typowe długości słów wyjściowych to 4, 5, 7 i 8). Do grupy pamięci stałych zalicza się następujące rodzaje pamięci: pamięci stałe programowane jednorazowo maską w czasie procesu technologicznego - ROM (Read-Only Memory), zarówno bipolarne, jak i MOS; pamięci stałe programowane jednorazowo przez użytkownika, o niekasowalnej zawartości - PROM (Programmable ROM), bipolarne; ponadto OTP EPROM (MOS); pamięci stałe programowane elektrycznie wielokrotnie z kasowaniem zawartości światłem nadfioletowym - EPROM (Erasable PROM), tylko MOS; pamięci stałe programowane elektrycznie wielokrotnie z elektrycznym kasowaniem :zawartości- EEPROM (Elect.rically Erasable PROM), oraz pamięci błyskowe (Flash), tylko MOS. Pa mięci Pamięci ROM 8.4.2.1 ROM stanowią najtańsze, w przeliczeniu na bit, nieulotne półprzewod­ nikowe nośniki informacji. Pamięci ROM o dużej pojemności są wytwarzane głównie jako układy CMOS, natomiast szybkie pamięci ROM o relatywn ie małej pojemności są wytwarzane jako układy bipolarne. Budowa komórek pamięci ROM jest bardzo prosta, ponieważ stany logiczne tych komórek są trwałe. Po zaadresowaniu komórki, czyli ustaleniu na linii słowa (M.) poziomu H (stanu I w logice dodatniej) stan komórki jest przenoszony na linię bitu (BL). Linie słowa są sterowane przez wyjścia dekodera adresu wierszy, a linie bitu są wybierane przez multiplekser sterowany adresem kolumn. Budowa typowych komórek pokazana jest na rys. 8.62. Komórka (a) zawiera pojedynczą diodę (stan I) lub nie (stan O). Wadą komórki jest mała szybkość, ponieważ przy zmianie poziomu na linii słowa z L na H wyjście dekodera musi ładować pojemności pasożytnicze CL we wszystkich liniach bitu, które w danym wierszu mają komórki jedynkowe. Komórka (b) jest znacznie szybsza, gdyż tranzystor działający jako wtórnik emiterowy szybko ładuje pojemność CL w linii bitu. Tranzystor w komórce (c) jest tak konstruowany, aby uzyskać małą rezystancję przewodzącego kanału. Wtedy uzyskuje się szybkie rozładowanie pojemności CL w celu uzyskania na linii bitu stanu O. Obciążeniem L jest :zazwyczaj 4 84 S.•. BLOKI PAMIECtOWf iBl o r----- Wt. ' Stan 1 '' L - - --,-- -s to ii WLA \. c b I I :.) o .... ______ J r -- Odczyt t c, ...... T Odczyt ___ ~ \I _ Odczyt Ra r-- -'c, ...... I ' ....... ' ..&... Rys. 8.61 Komórki ..)I pamięci ROM a) komórk• dKldowa, b) l:omórka t. trao1yitorcm bipolarnym.<:) kom6rk11 l u an1ystortm IBL I ' ~łOS tranzystor p-kanalowy z bramką uziemioną lub tranzystor 11-kanalowy z kanalem zubożanym. Komórki typu (a) i (b) tworzą na linii bitu wielowejściową bramkę logiczną OR (por. rys. 7.lb), a komórki (c) tworzą na linii bitu bramkę NOR (por. rys. 7.2a). Budowa i właściwości pamięci ROM będą omówione na przykładzie pamięci MOS. Ogólny schemat pamięci MOS ROM jest przedstawiony na rys. 8.63a. Pojemność C pamięci w p rzedstawionym ogólnym przypadku jest równa Nw, gdzie N = 2" jest liczbą słów i w jest liczbą bitów w słowie wyjściowym (zazwyczaj w ;l!: 4). Wybieranie określonych komórek pamięci następuje przez dwuwymiarowe adresowanie, przy użyciu oddzielnego dekodera do wyboru wierszy i ogólnie zes polu w multiplekserów do wyboru kolumn dla każdego bitu słowa wyjściowego. Organizacja taka umożliwia budowę symetryc-1:nej matrycy pamięciowej, co jest najbardziej pożądane 1..e względów konstrukcyjnych (najprostsza budowa dekoderów, śred nio najkrótsze linie sygnałowe). Taką samą organizację logiczną stosuje się przy budowie dużych pamięci bipolarnych ROM. Sygnał OE (Output E11able) słu:ly do sterowania trójst.anowych buforów wyjściowych, a sygnał CE (Chip Enable) przy poziomie H wprowadza układ w stan nieaktywny, w którym zasilanie wewnątrz pamięci jest odcięte i moc sirat pamięci jest bard zo mała. Programowanie pamięci następuje przez selektywne wytwa rzanie tranzystorów MOS w odpowiednich komórkach, czyli wytwarzanie bramek tranzystorów na cienkiej warstwie tlenkowej. Pokazano 10 na rys. 8.63b, na którym jest przedstawiony przekrój wykonanego w ten sposób tranzystora NMOS. Odpowiada to wytworzeniu i przyłączeniu bramki tranzystora do odpowiedniej linii wiersza w matrycy (rys. 8.63a). W tych miejscach, gdzie tranzystory nie powinny być wytworzone, nie jest wytrawiana gruba warstwa tlenku, co uniemożliwia akcję tranzystorową. W ten sposób, przy zaadresowaniu danego wiersza, 485 8. CYFROWE BLOKI FUNKCJ ONALN E o We)Scio WytXJr wierszo odr esowe Oo o, Dekoder k-bitowegJ kO<lu dwójkowego 2 no kOd F--l-t---1-1---1-l~---+­ „ , z 2k „ 2•-1 WyOOr kolurnrry <=i 2 o, o „ . , o-.,~---''-----~ On· 10"''----''-----~ 3 Zespbł w multiplekserOw odresowQ"lych In - kl „ bitowym kodem dwbjkowym 2 ----- ---- w CE o-- - .__-<l OEo-- - EN ZespOt w trÓj stonowyc.h buforÓw wyjSoowych --<I 2--------- - w VJyjŚCi o doiych V b Dyfuzje n • Cienko warstwo tten k.u (lronZystorJ Grubo wcr5'łwo łlenkv I brok tranzystora I o s;o,_ _ . ~ MetoUzocjo Rys. 8.63 Budowa pamięci MOS ROM a) ~LPd niety lldlema1. b) SHl.lklUta 486 WyjScio Podloże IYIJV p 8.A. BLOKI PAMIĘCIOWE wszystkie przyłączone do niego tranzystory wejdą w stan przewodzenia, czyli na odpowiednich kolumnach pojawi się poziom L. Wybór odpowiednich kolumn, repre-tentujących słowo w-bitowe, następuje w zespole w multiplekserów. Programowanie pamięci MOS ROM następuje zatem podczas procesu technologicznego przez wprowadzenie odpowic;c!nich masek, zgodnie z zawartoś­ cią informacyjną dostarczoną wraz z zamówieniem przez użytkownik a. Dlatego pamięci te określa się jako programowa11e maską. Programowanie maskowe stanowi oczywiście proces jednorazowy i nieodwracalny. W związku z tym konstruktorzy dość niechętnie st osują pamięci ROM, gdyż jakakolwiek modyfikacja zawartości pamięci po jej zaprogramowaniu jest wyk Iuczona. Ponadto opłacalność tych pamięci staje się wyraźna dopiero przy długich seriach produkcyjnych. Dodatkowym kłopotem jest koniec-lJloŚĆ odczekania przez użytkownika pewnego czasu po złożeniu zamówienia (zazwyczaj kilka - kilkanaście tygodni), zanim zostaną wytworzone układy pamięci ROM z określoną zawartością. Znaczną część stosowanych w praktyce pamięci ROM stanowią układy o pewnej typowej zawartości. Należą do nich między innymi ge11era1ory znaków, służące do konwersji kodów alfanumerycznych (np. 7-bitowego kodu ASCI I) na kod symboli mozaikowych , stosowanych przy wyświetlan iu inform acji w monitorach a lfanumerycznych . Ka7..da litera jest „składana" z punktów mozaiki, o przykładowych wymiarach 5 x 7, 7 x 9, 9 x 14, a nawet 13 x 16 punktów. Inne typowe zastosowania to konwertery kodów i (4 x 4) multiplikatory. Pamięci MOS ROM są również szeroko stosowane w urządzeniach mikroprocesorowych do trwałego pamiętania programów (np. do obsługi pralek, magnetowidów itp.). Typowe pojemności mieszczą się w zakresie 4Kb~ J6Mb, a czasy dostępu w zakresie 100~450 ns. Pamięć stała stanowi kombinacyjny układ cyfrowy. Przy 11 wejściach adresowych (A) i w-bitowym słowie wyjściowym Y, w odniesieniu do wyjścia y1 (0 ~i~ w-1) otrzymuje się formę boołowską y, = Y[i] 2"- l =eV P1 (A)G1 [t] e=CE·OE, gdzie: P1 - iloczyn pełny (mintcrm), zdefiniowany w p. 4.1.2, G, - słowo danych, zapamiętywane pod adresem A spełniającym waru nek P,(A) = !. Forma ta może reprezentować dowolną ruokcję przełączającą 11 zmiennych pod warunkiem odpowiedniego doboru wartości Gt [i] E {0,1 }. Oznacza to, że w celu wykorzystania pamięci stałej do realizacji („generacji") danej runkcji przełączają­ cej 11 zmiennych, należy po prostu wpisać do pamięci tablicę stanów tej Cunkcji w odniesieniu do wybranego wyjścia. Pamięć stała o w wyjściach danych może zatem służyć do prostej realizacji w funkcji przełączających 11 zmiennych. Zalet~ takiego postępowania jest prostota, gdyż jakiekolwiek czyn ności minimalizacyj- 487 8. CYFROWE BLOKI FUNKCJONALNE jest natomiast bardzo szybki wzrost pojemności pamięci przy zwiększaniu liczby zmiennych, gdyż zwiększenie tej liczby o jeden powoduje dwukrotny wzrost pojemności pamięci. Jeśli liczba 11, zmiennych implementowanej funkcj i jest większa od liczby n wejść adresowych w dostępnych układach pamięciowych, to w celu zwiększenia dlugości łącznego słowa adresowego trzeba użyć większą liczbę p, układów. Zgodnie z ogólnymi zasadami zwiększania bloków pamięciowych liczba ta jest równa. ne są zbędne. Isto tną wadą p, = 2·.-•, gdzie n, ~ n. Na przykład, przy n, -n = I otrzymuje się p, = 2. Dwa układy pamięciowe łączy równolegle wyjściami i wejściami adresowymi (wykorzystując n, - I zmiennych), a pozosta łą zmienną przyłącza się do wejścia zezwalającego jednej pamięci w postaci prostej i do wejścia zezwalającego drugiej pamięci w postaci za negowanej. Jeśli n,~ n, lecz liczba w1 realizowa nych funkcji przełączających jest większa od w, to trzeba rozszerzyć długość słowa wyjściowego i wówczas liczba potrzebnych układów jest równa się p1 = INT(w1/w+ I), gdz.ie w1 >w. Jeśli jednocześnie określa n, > 11 iloczyn i w1 > w, to liczbę p potrzebnych układów P = P,P, Mikrooperacja odczytu danych z eP.(A}: Y=G. Pamięci pamięci ROM może być zapisana w postaci ke N ={O, l, ...,N - 1} PROM Trudność stosowania pamięci 8.4.2 .2 ROM, wynikająca z konieczności indywidualnego wytwarzania na konkretne zamówienie oraz relatywnie długiego czasu realizacji za mówienia, powoduje, że stosowa nie pamięci stałych, programowanych maskowo jest uzasadnione tylko przy od powiednio dużym zapotrzebowaniu. Przy niewiel kich potrzebach ilościowych, zwłaszcza w fazie projektowan ia i konstrukcji systemu, bardziej wskazane jest stosowanie pamięci stałych programowanych elektrycznie(PRO M}. Układy PROM, które mogą być swobodnie programowane przez konstrukt ora systemu, są wytwarzane seryjnie jako „czyste", czyli pełne zer lub jedynek (za leżn ie od konstrukcji pamięci). Programowan ie polega na wprowadzeniu zmian w wybranych komórkach pamięci przez poddanie układu odpowiednim wymuszeniom elektrycznym w specjalnym przyrlądzie zwanym programatorem pamięci PROM. Programowanie pamięci bipolarnych PROM polega zazwyczaj na selektywnym przepalaniu, przez wymuszenie odpowiedn ich dużych i długich impul - 488 8.4. BLOKI PAMIĘC IOWE r - - - - - -----1 L\:c s •S ' I bił o lice I I I I I I I I bi 1 bit w-1 s A lice L_ _ ___ - __ __ J .' ' - -- -- -- -- -- -- -- -- _rov, , ~- o•. s .•'' s • 0 - - - - -- j t> Rys. 8.64 Zasadniczy schemat przykładowej bipolarnej pamięci PROM o małej pojemności sów prądowych, połączeń między emiterami tranzystorów matrycy a liniami bitowymi. Połączenia przepalane są wykonywane jako specjalnie przewężone . ścieżki z krzemu polikrystalicznego lub jako niewielkie rezystory nichromowe. Do programowania stosuje się także niszczenie odpowiednich złączy baza-emiter w procesie przebicia lawinowego. Uproszczony przykład budowy pamięci bipolarnej PROM o małej pojemności pokazano na rys. 8.64, na którym w emiterach tranzystorów matrycy zaznaczono wężykami połączen ia przepalane (S). Pokazana pam ięć ma wyjście z otwartym kolektorem (TJ) i w stanie nie zaprogramowanym (gdy wszystkie połączenia S istnieją) jest zapełniona zerami. W celu zaprogramowania okreś­ lonego słowa należy je wybrać adresem, podnieść napięcie zasi lające Ucc (typowo z 5 V do 12 V) i przyłożyć kolejno na wyjścia, na których ma nastąpić programowanie, impulsy napięciowe o amplitudzie typowo równej ok. IO V i czasie trwania ok. 500 11s. Przed przystąpieniem do programowania blokuje się układ przez ustalenie na wejściu zezwolenia pamięci stanu e = L, powoduj ąc odcięcie wszystkich tranzystorów wyjściowych TJ , które nie przewodzą podczas programowania. W pokazany sposób są realizowane pam ięci PROM o małej pojemności, up. 32 x 8 = 256 bitów. Do wytwarzania pamięci PROM o dużych pojemnoś­ ciach stosuje się odpowiednio duże matryce pamięciowe i zespoły multiplekserów wyjściowych, podobnie jak w poprz.ednio opisanych pamięciach ROM. 489 8, CYFROWE B ł.OKI FUNKCJONAl.NE Bipolarne pamięci PROM są w klasie lTL wykonywane najczęściej z tranzystorami Schottky'ego. Zapewnia to znacznie krótsze czasy dostępu niż w pamięciach MOS-ROM. Są również wykonywane szybkie pamięci PROM ECL. Ich typowe czasy dostępu wynoszą !0+ 50 ns, a pojemności od 256 (zazwyczaj 32 x 8) do 128 K (16 K x 8) bitów. Moc strat tych układów jest relatywnie duża i typowo wynosi 0.5 +0.65 W. W praktyce pamięci bipolarne PROM są stosowane bardzo rzadko. Zostały one niemal całkowicie wyparte przez pamięci MOS EPROM, omówione dalej. Tradycyjnie pamięci bipolarne uważane były za szybsze od pamięci MOS, jednak pamięci MOS opracowane w nowych technologiach są równie szybkie, a nawet szybsze niż ich odpowiedniki bipolarne. Pamięci Układy pamięci EPROM 8.4.2.3 EPROM są wykonywane w technologii MOS i umożliwiają wielokrotne programowanie i kasowanie zawartości. Komórkę pamięciową układu EPROM stanowi tranzystor, w którym wykorzystuje się zjawisko trwałego magazynowania ładunku w podbramkowej warstwie dielektrycznej, wprowadzonego praz wymuszenie napięciowe. Zjawisko takie występuje w strukturach z polaryzowalnym dielektrykiem, takim jak azotek krzemu (struktura MNOS) i tlenek aluminium (struktury MAS, MAOS). Trudności realizacyjne i niezawodnościowe związane z tymi strukturami sprawiły, że najszersze upowszechnienie zyskała opracowana w firmie Intel (15) struktura FAMOS (Floating gate Avalanche-injected MOS) zwana również strukturą swobodnej bramki (floating gate). Na postawie struktury FAMOS jest wytwarzanych wiele typów układów EPROM o organizacji dostosowanej do budowy systemów mikroprocesorowych, w których układy te są powszechnie stosowane. Przekrój struktury FAMOS pokazano na rys. 8.65a. Podana skala (I 11m) dotyczy popularnego układu 2716 o pojemności 16 K (2048 x 8). Struktura FAM OS przypomina zwykły tranzystor MOS z bramką krzemową. Struktura ta zawiera jednak dodatkową „swobodną" bramkę, wykonaną również z krzemu polikrystalicznego i zawieszoną w dwutlenku krzemu między bramką sterującą i obszarem kanału, bez żadnych wyprowadzeń zewnętrznych. Bramka ta służy do trwałego przechowywania ładunku, wprowadzonego do niej w trakcie programowania. Struktura taka stanowi jednobitową komórkę matrycy pamięciowej, jak pokazano na rys. 8.65b. Programowanie komórki (rys. 8.66a) następuje przy ustaleniu wystarczająco dużych napięć dodatnich na bramce sterującej i drenie. Wówczas elektrony w obszarze zubożonym są przyspieszane w kierunku największego natężenia pola, znajdującego się wokół drenu. Po osiągnięciu obszaru, w którym natężenie pola przekra~'V! ok. 105 V/cm, elektrony zyskują tak dużą energię, że nazywa się je „gorącymi" (hot). Elektrony te oznacza się 490 8.4. BLOKI PAM I ĘCIOW E elektronów, znajdujących się w obszarze ma wystarczająco dużą energię, do pokonania bariery energetycznej Si/Si02 (ok. 3.2 eV) między podłożem i cienkim (poniżej 100 nm) dielektrykiem pod swobodną bramką. Ponieważ na bramce sterującej jest ustalone odpowiednio duże napięcie dodatnie, wskutek sprzężeń pojemnoś­ ciowych bramka swobodna również przybiera potencjał dodatni, przyciągając i „łapiąc" te elektrony. Nie mogą j uż one opuścić swobodnej bramki, gdyż otaczający ją dwutlenek krzemu jest jednym z najlepszych znanych izolatorów. symbolem e- . Część „gorących" odcięcia kanału, a S!..L.I D G BrCl'Tlko sterująco Żródlo Otlszor ;mplontowony p Podłoże p b Linio b itu G Li nio stowo Rys. 8.65 Struktura FAMOS a) prl.Ckrój. b) $)'mboł e1d:1I)Uo)· W ten sposób swobodna bramka gromadzi ładunek ujemny. Efektem tego jest zwiększenie wartości napięcia progowego, związanego z bramką sterującą, o .dUr = -.dQFGfC, gdzie L!QFG stanowi przyrost ladun.ku swobodnej bramki i C jest pojemnością między bramką swobodną i bramką sterującą (rys. 8.66c). Przy odczycie wartość napięcia przykładanego do bramki sterującej jest większa od UT(I)> lecz mniejsza od U T(I > + .d Ur = Urto>· Umożliwia to wykrycie stanu komórki: O - stan nieprzewodzenia (po zaprogramowaniu) lub 1 - stan przewodzenia (po skasowaniu lub pamięci jeszcze nie używanej). 491 8 . CYFROWE 6LOKI FUNKCJONALNE .-15v o PROGRAMOWANIE •16V WOl'Słwo Obszar odciecio inwersyjna Obszor z<Jbo!Of'o/ kanału b ov KASOWANIE Pr0f'ńieni()NO:n1e yf uv p c Io Po skasowaniu (sto n 1) Po zoprogn:Jmowo niu ł sło n OI Odczyt '1 ' Odczyt ·o·L---rL---1---~----- Rys. 8.66 Programo,vanic i kasowanie za,va rtości struktury FAM OS Nopi ę-Gie a) programowanie, b) kasowanie. odczytu ~) <:h:·1r~k 1 er)'lłyl:i clekłT)-Clne Kasowanie zawartości komórki jest jednoznaczne z kasowaniem całej EPROM i polega na naświetleniu kostki układowej ze źródła promieniowania nadfioletowego (U V). Źródłem jest lampa rtęciowa ze szkłem kwarcowym, która wytwarza promieniowanie nadfioletowe o długości 2537 A(4.9 eV). Obudowa układu pamięci musi więc być wyposażona w okienko ze szkła kwarcowego, co w istotny sposób zwiększa jej koszt. Przy kasowaniu (rys. 8.66b) fotony są absorbowane przez elektrony w swobodnej bramce, zwiększają energię elektronów i powodują, że opuszczają one tę bramkę, wchodzą do otaczające30 tlenku i zostają wyciągnięte przez bramkę sterującą lub podłoże wskutek istnienia pół lokalnych (naładowana bramka swobod na ma potencjał ujemny, natomiast przy kasowaniu bramka, źródło, dren i podłoże mają w przybliżeniu pamięci 492 8 4 BLOKI PAMIĘCIOWE zerowy potencja!). Wzbudzenie elektronów następuje głównie z pasma walencyjnego, co wymaga energii co najmniej 4.3 eV, a częściowo także z pasma przewodnictwa, co wymaga tylko 3.2 eV. Do kasowania jest wymagana dawka promieniowania nadfioletowego o typowej wartości 15-25 Ws/cm 2 • Przy stosowaniu typowych kasowników UV wymagany czas naświetlania wynosi zwykłe ł5 + 45 minu t i z zasady nie powinien być przekraczany. Nadm iernie duża dawka wplywa szkodliwie na trwałość i niezawodność pamięci. Należy zaznaczyć, że światło słoneczne, nawet po filtracji atmosferycznej, zawiera fotony o energii sięgającej 4. ł eV. Również światło lamp jarzeniowych i żarowych ma składowe o minimalnej długości fali około 3000 A, co odpowiada energii 4.1 eV. Po wystawieniu zaprogramowanej pamięci EPROM na bezpośrednie działanie światła słonecznego lub sztucznego również następuje kasowanie jej zawartości, jakkolwiek znacznie wolniejsze niż w urządzeniu do kasowania, zawierającym odpowiednio silną lampę UV. Tym niemniej należy przyjąć zasadę, aby zaprogramowanych pamięci EPROM nie wystawiać na dłuższe działanie światła słonecznego lub zwykłego światła pokojowego. Normalne sztuc-we świ atło pokojowe z lamp jarzeniowych może spowodować skasowanie zawartości po l -;-3 latach, natomiast światło słoneczne może skasować pamięć już po ok. 7 dniach. Dlatego popularne jest zalepianie okienek w obudowach zaprogramowanych pamięci EP ROM paskiem nieprzezroczystego materiał u. Ulotność informacji pamiętanej w pamięci EPROM jest niezwykle mala. Badania niezawodnościowe układów 27ł6 firmy /111el doprowadziły do oszacowania 2 x 10- •% uszkodzeń wskutek ulotności w czasie JO lat. Pamięci EPROM są wytwarzane w dużym asortymencie, o pojemności od 16 Kb do 8 Mb i długości słowa wyjściowego 8 lub 16 bitów. Stosowana jest niemal wyłącznie technologia CMOS ze strukturami z jamą 11. Zmniejsza to niebezpieczeństwo powstania efektu zatrzaskiwania (p. rys. 6.37) podczas programowania, gdy z komórek NMOS do podłoża płynie relatywnie duży prąd. Schemat blokowy i rozkład komórek popularnego ukladu CMOS EPROM 27C64 firmy Microchip są pokazane na rys. 8.67ab. Bramki AND ilustrują działanie sygnałów: aktywizującego CE (Chip Enable), odblokowujące­ go wyjścia trójstanowe OE (Output Enable) i zezwalającego na programowanie PGM (Program). Układ 27C64 charakteryzuje się maksymalnym c-asem dostępu od wejść adresowych lub wej ść CE równym od 120 do 250 ns, zależnie od odmiany produkcyjnej. Odpowiednie przebiegi czasowe ilustruje rys. 8.68. Mak symalna moc strat w stanie aktywnym wynosi 100 mW, a w stanie spoczynkowym (przy CE~ H) zaledwie 0.5 mW. Początkowo, a takie po każdym kasowaniu, wszystkie bity pami~i są w stanie 1 (poziom H na wyjściach). Programowanie polega zatem na wpisaniu zer w żądane miejsca matrycy. Programowanie wykonuje się w specjalnym 493 8. CYFROW E 8L0t:.I FUNKCJONALN E o Arz I I I I I I Matryco • l56 • ·256x 65536bitów ' pom ięciOYto 8rruttipl•k...-ÓW ' 32no 1 • 8 dem<Ałiplekserów ' 1no32 I !___ • Bufory wyjŚĆ trójstonowyd'l i wejść progromowonio - Dekoder kolumn 1 z32 I Ao . Dekoder wierszy 1 z 256 1------1 a, Oo Wyjścia dorrych/ ~jścio Sion spoczynkowy(Q'.,H) progromowanio Pmgramo'NOnie PGM OE Stan aktywny CE b Ua: PGM NC AS A9 t:! n a> ~ A11 OE A10 CE 07 06 as Rys. 8.67 Pamięć CMOS EPROM 27C64 (Microchip Technolo(JY) 04 03 a) H Waz Adres A łc:bemat blokowy. b) rodd\WJ koócówek adres L H CE L H 'OE L Wyiścio H Hi h Z 00 ·07 l Woźne dane '••-;120ns Rys. 8.68 Przebieg) czasowe podczas odczyt u danych z pamięci EPROM 27C64A- I2 o czasie dostępu 120 ns (Microchip 494 TechnolQ{ly) 8.4 BlOKI PAMIĘCIOWE urządzeniu, zwanym programatorem pamięci EPROM, który współpracuje z komputerem. Większość programatorów jest wykonana jako urządzenia uniwersalne, umożliwiające programowanie różnych typów pamięci EPRO M. Typ i producent programowanej pamięci mogą być automatycznie identyfikowane przez programator, który odczytuje z pamięci dwa bajty identyfikacyjne. W szybkich pamięciach CMOS EPROM osiągane są bardzo krótkie czasy dostępu, nawet ponii.ej 50 ns. Na przykład, firma Cypress Semiconductor wytwarza pamięci CY7C266, kompatybilne z omówionym wcześniej typem 27C64, które mają czas dostępu od 20 do 45 ns, zależnie od wersji. Jednakże układy te mają znacznie większą moc strat: 660 mW w stanie aktywnym i 85 mW w stanie spoczynk owym. Istotnym użytkowo parametrem pam ięci EPROM jest ich wytrzymałość na wielokrotne programowa nie i kasowanie. J e~t ona rzadko specyfikowana przez producentów; w praktyce należy się liczyć z maksymalną liczbą cykli programowania/kasowania rzędu 102 -;-10 3 . Pamięci EPROM są również wytwarzane w tanich obudowach plastykowych, bez okienka kwarcowego. Pamięci takie nazywa się jako programowane jednorazowo (OTP - One-Time Programmable), lub po prostu PROM. łeb zaletą jest niższy koszt, co ma znaczen ie w takich zastosowaniach, gdzie nie jest potrzebna funkcja reprogramowania. Pewną wadą jest natomiast brak możliwości testowania u wytwórcy, co oznacza, że kilka procent sprzedanych układów może być wadliwych. Pamięci EEPROM Zasadniczą wadą pamięci 8 .4 .2.4 EPROM jest to, że operacja kasowania wymaga każdorazowo umieszczenia tych pamięci w kasowniku naświetlającym je promieniowaniem U V w czasie 15-;-45 minut. Kasowaniu podlega cała zawartość pamięci, nawet wówczas, gdy istnieje potrzeba modyfikacji choćby tylko jednego bitu. Ponadto jest wymagane użycie drogiej obudowy z okienkiem ze szkła kwarcowego. Wad tych nie mają pamięci EEPROM, które są kasowalne elektrycznie. Najszersze upowszechnienie zyskały struktury ze swobodną bramką, analogiczną do stosowanych w pamięciach EPROM. Struktura tranzystora pamiętającego ze swobodną bramką, opracowana w firmie l111el [16],jest pokazana na rys. 8.69a (pokazane połączenia elektryczne źródła, bramki sterującej i drenu przedstawiono wyłącznie ilustracyj nie, a nie strukturalnie). Struktura ta nosi nazwę firmową FLOTOX (Floating Gate Tunnel Oxide) i przypomina strukturę FA MOS, z wyjątkiem dodatkowej, bardzo cienkiej (ok. 10 nm) warstwy tlenkowej ponad drenem. Warstwa ta umożliwia przepływ elektronów w procesie tunelowym Fowlera-Nordheima z drenu do bramki swobodnej lub odwrotnie, zależnie od ich wzajemnej 495 8. CYFROWE 8 L0KI FUNKCJONALNE Bramka swobodna (poli k rzem pierw szego poziomu) Pod łoże p Bramko sterujoca łpoli krzem drug~iego poziomu I Tlenek broml<owy Rys. 8.69 Struktura FLOTOX stoso"•ana w pamięciach EEPROM polaryzacji. Przy UG > O i UD = O bramka swobodna jest pojemnosc1owo sprzężona z dodatnim potencjałem bramki sterującej i elektrony są do niej przyciągane z drenu. Z kolei przy UG = O i U 0 > O następuje rozładowanie swobodnej bramki. W pierwszym przypadku otrzymuje się zwiększenie napięcia progowego Ur tranzystora (w praktyce do ok. IO V). W drugim przypadku następuje zmniejszenie Ur poniżej zera (do ok. -2 V), tak że otrzymuje się tranzystor z kanałem zubożanym i odcięcie prądu drenu staje się niemożliwe przy użyciu typowego, nieujemnego napięcia dostarczanego przez dekoder adresu na linię słowa. Ponadto wartości napięć progowych zależą od długości procesów programowania i zmieniają się w czasie, zależnie od liczby cykli programowania. Dlatego jednobitową komórkę pamięci EEPROM tworzy się przez połączenie tranzystora FLOTOX z „normalnym" tranzystorem MOS w sposób pokazany na rys. 8.70. Zapis danych do wybranych adresem komórek pamięci musi być zawsze poprzedzony kasowaniem ich zawartości. Oznacza to wprowadzenie swobodnych bramek wszystkich tranzystorów FLOTOX tych komórek w stan naładowania (rys. 8.71a). Cenną zaletą pamięci EEPROM w porównaniu z pamięcią EPROM, jest możliwość kasowania elektrycznego poszczególnych bajtów. Sposób realizacji zapisu pokazano na rys. 8.71b. Ponieważ kasowanie wybranego bajtu jest niczym innym jak zapisem bajtu zawierającego same jedynki, cala operacja zmiany zawartości jednego bajtu wymaga dwóch kolejnych zapisów: najpierw zapisu bajtu jedynkowego, a następnie selektywnego wpisu zer. Odczyt danych następuje przy podaniu napięcia + 5 V na linię programowania i linię słowa. Komórka z naładowaną bramką swobodną pozostanie wtedy w stanie nieprzewodzenia, natomiast komórka rozładowana będzie przewodzić. Ważnym w praktyce parametrem jest wytnymałość pamięci EEPROM na wielokrotne kasowanie/ programowanie. Bardzo cienka warstwa tlenku 496 8.4. BLOKI PAM I ĘC I OWE Srom ko sterujqco (linio progra mowania l Sromka setekt:yj no ł lini o sta wo ) i:::::J~~@J~?J1t';~6~~~~Jltini o n '---'~-' bilu n• '-- - - ; p• Tl enek bramkowy I SO nm) Dielektryk tunelujocy (8 nml • Rys. 8.70 Przykładowa struktura komó rki o L i nło titu ov pamięci EEPROM b +18V(zopis zero! OV(utr zymonie jedynki) Kolumno 1 Kolumno 2 Tranzystor selekcyjny •20V - - -e--'1-1--- łinio słowo OV 18 V Tranzystor pomi~tajqcy ri ~H- FLOTOX •20V linia - --+----+-- pcogromowonła Roztodowonie swoboctnej bromki Rys. 8.71 Programowanie komórki a) Cl)'OnMć tunelującego pamięci pierwsza - kasov.'aoic (tłSl~lenie jedynek), b) B<ok zmiany todunku EEPROM 0;y nnośl: druga - ~lekt)'Wny u.pis zer podlega bowiem w czasie tych procesów bardzo dużemu natężeniu pola elektrycznego, w rezultacie czego następuje powolna degeneracja tej warstwy. Zazwyczaj po przekroczeniu ok. I 0 5 cykli kasowania/ programowania następuje powolna degeneracja napięć progowych tranzystora FLOTOX w stanach Oi 1, czyli napięcia te powoli zbliżają się do siebie. W rezultacie, zazwyczaj powyżej 106 cykli, napięcia te stają się na tyle bliskie sobie, że wzmacniacz odczytu nie może już poprawnie odczytać stanu komórki, czyli pamięć staje się niesprawna. Operacje odczytu nie pogarszają żywotności pamięci EEPROM, gdyż nie wymagają one stosowania wysokich napięć na końcówkach tranzystorów pamiętających. Aby wydłużyć „czas życia" pamięci EEPROM stosuje się różne środki. Przede wszystkim usprawnia się technologie, aby uzyskać wysokiej jakości warstwy tlenku tunelującego. Stosowane są również komórki z dwuwarst- 497 8 CYFROWE BŁOKI FUNKCJONALNE wowym, tlenkowo-azolkowym dielektrykiem tunelującym. Aby zmnieJszyć ryzyko błędu odczytu slanu l (po naładowaniu bramki swobodnej) stosuje się również podwójne komórki. Każda taka komórka zawiera dwie polówki, czyli opisane wcześniej komórki dwutranzystorowe, programowane identycznie, z wyjściami doprowadzonymi do wejść bramki OR. Na wyjściu bramki otrzymuje się poprawny odczy t poziomu H, dopóki przynajmniej jedna połówka jest nieuszkodzona. Prawdopodobieństwo uszkodzenia jednej komórki jest bardzo małe, natomiast prawdopodobieństwo jednoczesnego uszkodzenia oby· dwu polówek, będące iloczynem odpowiednich prawdopodobieństw, jest znacznie mniejsze. Układy pamięci EEPROM są wykonywane w dwu podstawowych wersjach, jako równolegle (czyli z klasycznym, równoleglym adresowaniem i równołeglym zapisem/odczytem danych) oraz jako szeregowe, w których połączenia z układem pamięci mogą być ograniczone do zaledwie dwu lub trzech przewodów. W tym przypadku sygnały sterujące, adres i dane są przesyłane szeregowo. Przykladem równoległej pamięci EEPROM jest układ 28C64A o struktu rze pokazanej na rys. 8.72 a. Jest to pamięć o zasilaniu + 5 V i pojemności 64Kb (8K x 8), kompatybilna końcówkowo z wcześniej opisaną pamięcią EPRO M 27C64 (rys. 8.67). Kasowanie, zapis i odczyt danych następuje w formacie bajtowym. Wejścia adresowe i bufory We/Wy są wyposaione w przerzu tniki zatrzaskowe. Dzięki temu podczas operacji zapisu bajlu adres i dane są Oo a o, b Ucc AOl'IBSY A12 Układ Bufory sterujQ<y W<l\Yy W( NC AB A9 AS N A11 n 15( " er a> Generała< nopięcio progromQWOnta Ao AZ - Sterowo.nie kolumn V ~ ~ o N Matryco Oekoder X An Rys. 8.72 ., tcłlnm.t Pamięć równoległa blok°"'}, b) roit·bd 498 pamięciowo 61.kb CMOS EEPROM 28C64A (Microchip Technology) „~ Al() )> 17 Dekoder :;: Ol 06 05 04 03 8.4. BLOKI PAMIĘCI OWE wpisywane błyskawicznie do zatrzasków, a zewnętrzna magistrala adresowa i danych jest zwolniona do innych celów. Proces zapisu danych z zatrzasków do komórek pamięci jest realizowany autonomicznie wewnątrz układu, który w tym czasie przechodzi w stan „zajętości" (busy). Stan ten jest sygnalizowany poziomem H na wyjściu RDY/ BSYz otwartym drenem, co umożliwia łączenie równoległe takich wyjść z kilku układów. Ponieważ zapis może być realizowany tylko przez zmianę stanów 1 na O (p. rys. 8.71), zatem adresowany bajt jest przed zapisem automatycznie kasowany. Czas cyk lu zapisu trwa najwyżej I ms lub 200 µs (w wersji 28C64AF), lecz typowe wartości tego czasu są o połowę mniejsze. Wykrycie zakończenia cyklu zapisu można zrealizować dwoma sposobami. Pierwszy polega na badaniu stanu wyjścia RDY/ BSY, a drugi na sprawdzaniu zapisu danych przez ich odczyt (Data Polling). Próba odczytu podczas trwania zapisu daje na końcówce Q? uzupełnienie bitu wpisywanego, natomiast na pozostałych końcówkach QO - Q6 stany są nieokreślone. Po zakończeniu zapisu można prawidłowo odczytać ostatnio wpisany bajt. Podwyższone napięcia, potrzebne do operacji kasowania i programowania adresowanych bajtów, wytwarzane są wewnątrz układu, który nie wymaga żadnych dodatkowych napięć zasilających poza jednym ( + 5 V). Zawartość całej pamięci może być skasowana (stan I we wszystkich komórkach) przez podanie na końcówkę OE napięcia + 12 V i ustalenie stanu lłE = CE = L na czas równy IO ms. Czas dostępu od wejść adresowych (t,ul w układzie 28C64A wynosi 150-250 ns, zależnie od wersji układu. Moc strat w stanie aktywnym wynosi 150 mW, a w stanie spoczynkowym 0.5 mW. Czas utrzymywania danych (retencja) jest szacowany na co najmniej 200 lat. Liczba cykli kasowania/ programowania pojedynczych bajtów wynosi co najmniej 105 . Istotne zalety - w porównaniu z pamięciami równoległymi - mają szeregowe pamięci EPROM. Wymagają one zaledwie dwóch lub trzech połączeń sygnałowych do adresowania, transmisji danych i sterowania. Oznacza to ponad 3-krotne zmniejszenie liczby końcówek obudowy (typowa obudowa pamięci szeregowej EEPROM ma zaledwie 8 końcówek) i około IO-krotne zmniejszenie powierzchni zajmowanej przez obudowę i połączenia drukowane. Mała liczba połączeń oznacza również dużą wygodę dla układów współpracuj ących (na przykład mikrokontrolera). Moc strat pamięci szeregowych jest około IO-krotnie mniejsza niż pamięci równoległych (przy tym samym napięciu zasilania). Pamięci szeregowe są wytwarzane również w odmianach o szerokim zakresie zmian napięcia zasilającego, na przykład od 1.8 V do 6 V. Użycie napięcia l.8 V zamiast typowego napięcia 5 V oznacza dalsze istotne obniżenie mocy strat, co ma zasadnicze znaczenie w miniaturowym sprzęcie przenośnym (na przykład w telefonach komórkowych). 499 8. CVFAOWE 61.0KI FUNKCJONAl.NE Zalety te powodują że szeregowe pamięci EEPROM są masowo stosowane w sprzęcie powszechnego użytku i w zastosowaniach profesjonalnych. Ich wadą jest tylko ograniczona szybkość działania, co wynika z komunikacji szeregowej. Najczęściej stosowane są następujące protokoły transmisji szeregowej: 2-przewodowy protokół 12 C (IIC - I nter Integrated Circuit), opracowany w firmie Philips, 3-przewodowy protokół SPI (Serial Peripheral Interface), opracowany w firmie Motorola, 3-przewodowy protokół Microwire, opracowany w firmie National Semiconductor. Wszystkie te protokoły są synchroniczne, to znaczy wykorzystują sygnał zegarowy do synchronizacji procesu przesyłania informacji cyfrowych. Popularny protokół 12 C stosuje się przy częstotliwości standardowej równej 100 kHz lub 400 kHz. Stosuje się również kompatybilny protokół SE2, o częstotliwości l MHz. Pozostałe dwa protokoły 3-przewodowe stosuje się przy c-~stotliwości 1- 3 MHz. Obszerne informacje aplikacyjne można znaleźć w literaturze firmowej, m.in. firmy Microchip (http://www.microchip.com) oraz firmy Philips [ 17]. Przykładem szeregowej pamięci EEPROM jest układ 24FC65 (Microchip) o pojemności 8 K x 8 = 64 Kb i protokole szeregowym SE2 (rys. 8.73). Część pamięci o postaci bloku 4 Kb jest wykonana z komórek o podwyższonej wytrzymałości na wielokrotne kasowanie i programowanie (gwarantowane IO mln cykli). To umożliwia jego wykorzystanie do przechowywania danych o większej częstości zmian niż dane w pozostałym bloku 60 Kb (gwarantowane 100 tys. cykli). Układ zawiera scalony generator podwyi.szonego napięcia do programowania oraz wejściową pamięć kieszeniową (cache) w postaci bufora pamięci FIFO (p. 8.4.3) o pojemności 8 stronic po 8 bajtów czyli 64 bajty. a Al) A1 b ~ Dekoder X SCL Układ sterujący SOA Oe koder V Al) Ucc S4kb A1 NC Zotrzo.ski A2 SCL Matryco pami~łOWO stronic Pomieć kieszeniowa Rys. 8.73 Pamięć szeregowa CMOS EE.PROM 24FC65 (Microchip Tech110/ogy) <') łehcmal błoł:<:>wy, b) rod::lad końcó'Aotk 500 Uss 8.4. BLOKI PAM IĘCIOWE Do sterowania, adresowania i dwukierunkowej transmisji danych do/z pamięci służą tylko dwie końcówki: SCL (Serial CLock) i SDA (Serial Data/Address). Są one przyłączone do dwuprzewodowej magistrali szeregowej 12 L, jak pokazano na przykładzie z rys. 8.74a. Impulsy sygnału SCL są wytwarzane przez sterownik (master), czyli układ sterujący i synchronizujący przesyłanie danych przez linię SDA (typowym sterownikiem jest mikroprocesor lub mikrokontroler). Końcówka SDA służy jako wejście lub wyjście danych, zależnie od trybu pracy układu przyłączonego do magistrali. Końcówki AO, A I i A2 służą do ustalenia adresu ukladowego w każdym układzie scerowanym (slave) USx, gdzie xe {O, 1„.. 7} jest rów noważnikiem dziesiętnym słowa adresowego A2A I AO. Do magistrali można zatem przyłączyć najwyżej osiem pamięci o różnych adresach. Końcówki SDA w każdym układzie współpracującym z magistralą są wewnątrz dołączone do wyjścia z otwartym drenem (i do wejścia odpowiedniego bufora), czyli do linii SDA trzeba przyłączyć zewnętrzny rezystor podciągający RL o typowej wartości ok. 1 kf.l. Do magistrali w ogólnym przypadku może być przyłączony więcej niż jeden sterownik, a le w danym czasie tylko jeden z nieb może zarządzać ruchem na magistrali. Postawowe operacje na magistrali ilustruje rys. 8.74b. Brak zajętości magistrali (A) ma miejsce przy SCL = SDA = H. Polecenie START (B) i STOP (C) jest wytwarzane przez sterownik odpowiednio na początku i końcu każdego polecenia zapisu i odczytu z pamięci. Są to odpowiednie zmiany stanu na linii SDA przy SCL = H. Poza tym stan na linii SDA może się zmieniać tylko przy SCL = L, a przy SCL = H stan linii SDA musi być stabilny (D). Po sygnale START sterownik wysyła baje sterujący, przedstawiony na rys. 8.74cd w zapisie zerojedynkowym. Najpierw przesyłany jest czterobitowy kod typu układu sterowanego (dla układu 24FC65 jest to 1010), a następnie trzy bitowy adres układowy jednego układu sterowanego na magistrali. Ostatnim bitem bajtu sterującego jest sygnał Rf W, który stanowi o odczycie (stan I) lub - w przykładzie z rys. 8.74d - o zapisie (stan O). Po przesłaniu całego bajtu sterującego zaadresowany układ potwierdza przyjęcie tego bajtu sygna/em potwierdzenia A (Acknowledge) czyli SDA = L w czasie dodatkowego impulsu SCL = H generowanego w tym celu przez sterownik. Z kolei sterownik przesyła do wybranej pam ięci 13-bi towy adres danych, o postaci dwu kolejnych bajtów. Najpierw przesyłany jest bardziej znaczący bajt z trzema zerami na najwyższych pozycjach, a następnie mniej znaczący bajt. Po przesianiu każdego bajtu pamięć potwierdza jego odebranie jak poprzednio, sygnałem A. Ostatnim bajtem przy operacji zapisu jest bajt danych, przesyłany z układu sterownika do przerzutników zatrzaskowych w układzie pamięci. Po wytworzeniu sygnału STOP pamięć przechodzi w stan wewnętrznego zapisu danych do matrycy pamięciowej, w czasie którego pamięć nie odpowiada sygnałem A po zaadresowaniu. 501 8. CYFROWE BLOKI FUNKCJONALNE Uoc a SCL SDA set SOA SCL SOA us~ Sterownik A2 A1 USS US7 AO Uoc b (A)1 ł~IAl (0) (8 ) SCL I I I I I SOA~ : : :"I I /i I I I f START i I 1 Ston I I I I I I I I I I I I : :! \ !/: !--.---!1 STOP stabilny Bajt steruJqcy Storl I c "- I 1 I ; I I Kod uklodu (24 FC 551 I I I I d ~ ~ Słowo Bajt stecujqcy odresu (1 J SDA~oEEFJo,olololol . us"'?';'{~ I T E Słowo ~ ~ Oone odresu IO) I I I I lol I I I I I I I lol I I I I I I I lo[?l '\ ~ A c K A c K t3 „ bitowy odres danyc:łl w pa mięci Rys. 8.74 Budowa i działanie magistrali I' C z użyciem pamięci szeregowej EEPROM 24FC65 (Microchip Technology) a) !ilrvktura ogólna magistrali 12C, b) pc>d~t<lwóweopc:racje na magisuali, c) fotma1baj1u $ltn.1~ocgo. ~) pmbicg na linii SDA priy ?.apisie błjlu do pami~ci o adtcsie układow)'ltl 11 I, ... 1 8.4. BLOKI PAM I ĘC I OWE Podczas odczytu sterownik nie wytwarza sygnału A po odczycie bajtu danych. Oprócz typowego zapisu i odczytu pojedynczego bajtu danych, pamięć 24FC65 umożliwia również inne tryby pracy. W trybie zapisu stronicowego (page write) możliwe jest przesłanie do pamięci kieszeniowej (cache) w układzie większej liczby bajtów jeden za drugim (najwyżej osiem stronic, czyli do 64 bajtów). W tym celu sterownik nie gener uje sygnału STOP po wysłaniu pierwszego bajtu danych, lecz wysyła drugi bajt, trzeci itd . Po przyjęciu każdego bajtu rejestr wskaźnika adresu jest automatycznie zwiększany o jeden. Dopiero po wysłaniu ostatniego bajtu generowany jest sygnał ST OP, który uruchamia proces zapisu danych z pamięci kieszeniowej do matrycy EEPROM. Czas cyklu i.apisu stronicy wynosi najwyżej 5 ms. Podobnie w trybie odczytu sekwencyjnego (sequentia/ ret1d), jeśli po odczycie jednego baj tu danych sterownik nie wytworzy sygnału STOP, lecz sygnał A, to pamięć 24FC65 wyśle na magistralę drugi bajt, później trzeci itd., dopóki sterownik nie wytworzy sygnału STOP. Wskaźnik adresu pamięci jest inkrementowany automatycznie, co pozwala odczytać nawet całą zawartość pamięci (nawet kilka razy) w jednej operacji, czyli po wpisaniu jednego adresu początkowego. Szeregowe pamięci EEPROM są stosowane w popularnych, „mądrych" kartach pamięciowych o nazwie angielskiej Smart Card (http://www.smartcardsys.com), stosowanych m.in. w telefonach komórkowych GSM jako karty identyfikacyjne użytkownika, a w Niemczech jako elektroniczne odpowiedniki książeczek ubezpieczeniowych (Krankenkassenkarte). Karty te są bardzo perspektywiczne: w przyszłości zastąpią dowody osobiste, karty kredytowe i telefoniczne oraz będą służyć jako polisy ubezpieczeniowe, elektroniczne portmonetki i środki płatnicze w komunikacji. Są one objęte przepisami normy ISO/ IEC 7816 (Identification Cards - Integrated Circuits with Comacts) i wytwarzane przez wiele firm, m.in. Philips(http://www-eu.philips.com/ pbs/ pbs_sc.html), Bull CPB (http://www.cp8.bull.net), Scl1lumberger (http:f/www.slb.com/et), ORGA (http://ww.orga.co.uk), Siemens-Nixdorf (http://www.smartcardsys.com/sni/ ·sni.html) i SCM Microsystems (http://www.scmmicro.com). Niektóre karty nie muszą być wkładane fizycznie do czytników, wystarczy zbliżenie do czytnika znajduj ącego się np. za ścianą lub za drzwiami. Zasilanie tych kart jest pobierane z czytnika drogą sprzężenia magnetycznego między anteną czytnika i anteną w karcie. Takie karty ustąpią przepustki i będą służyć jako klucze w zam kach elektronicznych. Waźne dane osobowe i finansowe są na kartach szyfrowane za pomocą kodu RSA (Philips). Nazwa polska dla karty Smart Card nie jest jeszcze ogólnie przyjęta w chwili pisania tego tekstu (czerwiec 97); być może będzie to po prostu „karta elektroniczna" lub krótko „elkarta", albo - na wzór niemiecki „chipkarta" (czipkarta)? Będzie ich prawdopodobnie kilka rodzajów, co dodatkowo utrudni nazewnictwo. 503 8. CYfROWl BLOKI FUNKCJONALNE Pami ęci błyskowe - Flash 8 .4.2.5 Specyfic-aią od mianę pamięci EEPROM stanowią pamięci kasowalne elektrycznie w całości lub w dużych blokach podczas szybkiej operacj i kasowania. Są to pamięci błyskowe, określane w j ęzyku angielskim jako Flas/1 EEPROM . N ie umożliwiają one kasowania pojedynczych bajtów. W od różnieniu od dwutranzystorowej struktury komórek pamięci EE PROM (rys. 8.70, 8.71), komórki pamięci błyskowych są jednotranzystorowe, a więc mniejsze. Oznacza to niższy koszt w przeliczeniu na bit. Pamięci błyskowe zastosowano najpierw w tych urządzen iach, gdzie zasadniczym trybem pracy tych pamięci był odczyt, a zmiana zawartości była wykonywana raczej rzad ko. Typowy przyk ład stanowią pamięci z podstawowym systemem operacyjnym BIOS na płytach głównych i na kartach graficznych komputerów. W miarę zwiększania pojemności i obniżania kosztów pamięci błysk owe zaczęły stanowić alternatywę dla klasycznych pamięci masowych o napędzie mechanicznym, takich jak dyski twarde i dyskietki. Pamięci blyskowe oferują znacznie mniejsze wymiary i wagę, lepszą niezawodność i przenośność, oraz niższą moc strat. Ich wadami są dość wysoki koszt i mniejsza pojemność w porównaniu do dysków twardych. Struktura przykładowej komórki pamięci błyskowej, wykonanej w technologii C MOS 0.6 1im firmy Ince/ i nazwanej jako ETOX IV (EPROM with Tunnel OXitle), pokazana jest na rys. 8.75 [ 18). Jest ona podobna do struktury FAM OS (rys. 8.65, 8.66), lecz grubość warstwy tlenku między bramką swobodną a obszarem kanału wynosi zaledwie 10 nm. Charakterystyczne dla komórek ETOX jest to, ie programowanie komórki (wpis zera - rys. 8.75a) jest realizowane przez wstrzykiwanie gorących elektronów, czyli tak jak w pamię­ ciach EPROM . Natomiast kasowanie komórki (wpis jedynki - rys. 8.75b) jest wykonywane w procesie tunelowym Fowłera-Nordheima, czyli ta k jak w pamię­ ciach EEPROM. W [18] omówiona jest również struktura komórek Triple-Poły, stosowanych przez firmę SanDisk. Istnieją dwa podstawowe rodzaje arch itektury pamięci błyskowych, które określa się skrótowo jako NOR i NA ND (rys. 8.76). \V stru kturze NOR, stosowanej przez firmę Intel, wiele tranzystorów komórek jest przyłączone drenami do wspólnych lin.ii bitu. Komórki ETOX są kasowane w sposób pokazany na rys. 8.75b, poprzez uziemienie bramki sterującej i przyłączenie żródła do podwyższonego napięcia dodatniego UPP (metoda HSE: Hig/1- voltage Source with grou11ded-ga1e Erase). Stosowane są również inne metody kasowania. Na przykład, firma AMD stosuje metodę NGSE (Negative Gate with posiiive Source Erase), w której źródło przyłącza się do niewielkiego napięcia dodatniego (ok. + 5 V), a na bramce ustała się podwyższone napięcie ujemne (ok. - 10 V). Napięcie progowe przy kasowaniu musi być ściśle kontrolowane: musi być ono dodatnie, aby przy zerowym napięciu bramki sterującej przez tranzystor 504 8.4. BLOKI a PAM I ĘCIOWE U - 12V '1 Bn:Jnko $W(IÓO(ll'IO IPROGRAMOWANIE I IBromko slerujgoo I U0 •Upp Źródło n• Podłoże _[ b Bramko steru· I0 Garark! swobodna I p Podłoże Rys. 8.75 Soruktura ko mórki pamięci błyskowej (Flaslo) o technologii ETOX IV (/111e/) (1 8) <a) proces progr~1m(>wl'lni :l, b) iuoces k11.~ow3ni:i komórki nie płynął prąd, ale nie może być zbyt duże, a by uzyskać możliwie duży zakres rozróżnialności stanów logicznych komórki. Odczyt w struk turze NOR jest bardzo prosty i polega na zaadresowaniu jednej linii słowa WL (napięcie dodatnie ok. + 5 V) przy uziemionych źródłach tranzystorów komórek oraz odczycie stanów na liniach bitu BL. Struktury NAND (rys. 8.76b) mają prostszą budowę, lecz ich czas dostępu w trybie odczytu jest znacznie dłuższy wskutek spowalniającego działania szeregowego łańcucha komórek. Podczas odczytu na jednej z linii słowa WL ustala się napięcie o wartości leżącej pomiędzy napięciem progowym po kasowaniu i napięciem progowym po zaprogramowanin (p. rys. 8.66c), natomiast na pozostałych liniach słowa ustala się napięcie wyższe niż napięcie progowe po zaprogramowaniu, tak że wszystk ie niezaadresowane komórki łańcucha są w stanie przewodzenia. Zarówno programowanie jak i kasowanie realizowane jest w procesie tunelowym Fowlera- Nordheima. W odróżnieniu od struktur NOR, po skasowaniu napięcie progowe w komórkach struktur NAND nie musi być ściśle kontrolowane, co stanowi zaletę. Struktury NAND są stosowane w pamięciach błyskowych m.in. firm Toshiba i Samsung. 505 8. CYFROWE BLOKJ FUN KCJONALNE: o BI.O 8U Bl2 BL b Rys. 8.76 Architeklury pami~-ci błyskowych: >) NOI\. b) NANO Na rysunku 8.77 przedstawiono symbol logiczny i rozkład końcówek w przykładowej pamięci błyskowej typu Am29FOIO (AMD), o pojemności 128 K x 8 b = I Mb. Matryca pami~i jest typu NOR i jest zorganizowana w postaci 8 sektorów po 16 KB, które mogą być niezależnie kasowa ne (wszystkie 506 8.4. BLOKI PAMIĘCIOWE a Am 29F010 AO-A16 000-007 ---1 CE(E) - - OE(G) - - - ' WE(W) -1 b -"' -'° <O 4 3 • A7 A6 6 AS A4 A3 A2 7 A1 AO DOO (.) z <( <( 8 Am29F010 9 10 11 12 13 28 27 26 25 24 23 22 21 A14 A13 AS A9 A11 OE (G) A10 CE (E) 007 Rys. 8.77 - "' oo oo Pamięć błyskowa Am29FOIO (AMD) Cl) Cl) ::> M v '° <O o o oo o o oo a) S)"'mbol logiciny, b) rozkbd koócówc-k w obudovo'ie PLCC bity w stan I). Nie jest wymagane do tego celu żadne inne napięcie poza standardowym napięciem zasilania +5 V. Standardowym trybem pracy pamięci, ustalanym automatycznie po włączeniu zasilania, jest tryb odczytu. Czas dostępu w tym trybie wynosi od 45 do 120 ns, zależnie od wersji układu. Uruchomienie pozostałych trybów pracy (zapis 507 8. CYFROWE BLOKI FUNKCJONAl.NE bajtu, kasowanie sektora lub kasowanie całej pamięci) wymaga dość złożonego sterowania. Aby uniemożliwić przypadkowe skasowanie zawartości pamięci, kasowanie sektora jest procesem wymagającym sześciu cykli sterowania, w czasie których podaje się kolejno na wejścia pamięci odpowiednie adresy i dane, zgodnie z przepisami wytwórcy. Zapis bajtu wymaga czterech cykli, przy czym oczywiście możliwa jest wyłącznie zmiana stanów bitów z 1 na O. Aby przywrócić stan 1 choćby jednego bitu w sektorze uprzedn io zaprogramowanym, trzeba skasować cały sektor. Czas zapisu bajtu wynosi minimum 14 JlS, a czas kasowania sektora minimum 2.2 s. W nowszych pamięciach błyskowych wprowadza się komórki o wielo· poziomowym programowaniu napięć progowych. W przykładowym układzie pamięci o pojemności 128 M b (16 MB) o st rukt urze NAND, wykonanym w firmie Samsung z użyciem technologii CMOS 0.4 µm (19), zastosowano trzy poziomy programowania i jeden poziom kasowania, czyli jedna komórka umożliwia przechowywanie dwu bitów (rys. 8.78a). Aby uzyskać wysoką precyzję rozkładu trzech dodatnich napięć progowych, wprowadzono przyrostowe programowanie impulsowe z bieżącą kontrolą. Matryca 64 M komórek jest utworzona w postaci 16 K wierszy i 4 K (plus dodatkowe 128) kolumn oraz dzieli się na 1024 bloki po 16 KB (rys. 8.78b). Każdy blok odpowiada jednemu wierszowi o 4 K łańcuchów NAN D po 16 komórek, c-.i;yli po 32 b. Każdy wiersz dziel i się na dwie stronice po 512 + 16 bajtów. Programowanie i odczyt realizuje się w jednostkach stron ic, natom iast kasowanie w blokach 16 KB. Typowy czas programowania stronicy wynosi 900 ~ts, czemu odpowiada szybk ość programowania ok. 0.5 MB/s. Maksymalna szybkość odczytu wynosi 14 MB/s. Moduły pamięci błyskowych - Flash 8 .4.2.6 Do zastosowań w komputerach przenośnych typu „informat ki" (1101ebook) oraz typu „informika" (palmto p), jak równ ież do wielu innych urządzeń przenośnych, takich jak na przykład cyfrowe aparaty fotograficzne i telefony komórkowe, wytwarlane są specjalne, miniaturowe moduły pamięci błyskowych (Flash). Najczęściej stanowią one funkcjonalne odpowiedniki dysków twardych bądź typowych dyskietek. Moduły te są wytwarzane w postaci kart lub kostek, których wymiary, sposób połączeń i programy obsługi są standaryzowane. Mają one liczne zalety w porównaniu z dyskami magnetycznymi: miniaturowe wymiary i wagę, mniejszy pobór energii, lepszą niezawodność i długowieczność, lepszą odporność na wstrząsy, szerszy zakres temperatury pracy, bezszmerowość pracy - nie wymagają stosowania napędów mechanicznych. 508 8.ł. BLOKI PAMIĘCIOWE a n; ' 2fJV I, 0.8V I I Q4V I II I I I ~ I - 2.0 0.4 ) I I I I I I I I I I I I I •I I I I I I I I Vr 2.8 1.6 V ·oo· · 01· ' 10" b I o 0.8V I Butor stronicy 1 ~k«>*ł' kcturM 110 o 110 , 1102 110 3 1104 110 5 1106 110 7 Blok O Blok 1 Molryco 64 M Blok I023 !Mor 110 ooo Rys. 8.78 001 • • • Pamięć błyskowa 006 001 128 Mb (Samsung) (19] a} roztlad napię(: programowan\J w dwutMIO'WłJ b) 1,11pros:vaon1 łehcmal tilalo..-y uklll.du ł.omórte pamięci. Pamięć błyskowa jest niewrażliwa na działanie pól magnetycznych, które mogą uszkodzić dane pamiętane na dyskietkach. Gniazda dla typowych kart są latwo dostępne od zewnątrz (zazwyczaj z boku) urządzeń je stosujących i nic wymagają ingerencji wewnątrz urządzenia uak przykładowo karty grałiczne PCI w komputerach). Wadami kart pamięci błyskowych w p0równaniu z nośnikami magnetycznymi jest ich wyższa cena w przeliczeniu na bajt oraz ograniczona p0jemność. W 1997 roku byly znane kowych: 509 następujące rodzaje modułów pamięci błys­ ł. CYFROWE BLOKI FUNKCJONALNE karty PC Card, często określane jako „karty PCMCIA", karty kompaktowe: Compact Flash (CF), karty miniaturowe: Miniature Card (MC), pólprzewodnikowe dyskietki: Solid State Floppy Disk Card (SSFDC). moduły SIMM: Flash Single-In- Line Memory Mod11/e. Pierwszym, szeroko stosowanym w praktyce standardem stał się standard P CM CIA. Akronim ten pochodzi od nazwy stowarzyszenia Personal Computer Memory Card Interna1io11Cll Associatio11, zorganizowanej w roku 1989 przez grupę firm zainteresowanych wytwarzaniem i upowszechnieniem takich standaryzowanych kart., które mogą zawierać pamięć nieulotną łub różne urządzenia wejścia/wyjścia (najczęściej modemy i karty sieciowe). Stowarzyszenie PCMCIA (www.pc-card.com) opracowało kilka wersji standardu takich kart, które noszą nazwę PC Card. Wersja o numerze 2.1 zostala wprowadzona w roku 1993, natomiast w roku I 995 zostało wprowadzone znaczne rozszerzenie tego standardu, obejmujące m.in. magistralę 32-bitową Card Bus, tryb DMA i zasilanie napięciem 3.3 V. Standard PCMCIA obejmuje trzy typy kart. Wszystkie mają tę samą długość (85.6 mm) i szerokość (54.0 mm), co odpowiada rozmiarom typowych kart kredytowych (rys. 8.79a). Typ I, Il i III mają grubość odpowiednio 3.3, 5.0 i 10.5 mm (rys. 8.79b). Z jednej strony karty umieszczone jest 68-stykowe gniazdo szpilkowe, o standardzie opracowanym przez japońskie stowarzyszen ie JEIDA (Japan Electronics llldustry Development Association). Cieńsza karta (np. typu I) może być umieszczona w kieszeni dla grubszej karty (op. typu II lub III), ale oczywiście nie odwrotnie. lstalacja karty PC Card jest równie prosta jak włożenie dyskietki: wystarczy ją wsunąć w odpowiedni otwór w urządzeniu tak, aby jej gniazdo trwałe połączyło się z wtykiem. Dużą zaletą kart PC Cart/ jest możliwość ich wkładania, wyjmowania i zamiany „na gorąco" (hot swapping), to znaczy bez potrzeby wyłączania urządzenia (komputera). Specjalne wydłużenie styków zasilania w złączu karty zapewnia, że przy wkładaniu najpierw włącza się zasilanie karty, a przy wyjmowaniu odwrotnie. Automatyczna konfiguracja przy wkładaniu karty następuje po odczytaniu przez komputer danych opisujących właściwości karty (CIS - Card lnformation Strucwre), zawartych w odrębnej pamięci na karcie. Do obsługi karty służy oprogramowanie Card ar1d Socket Services, które zazwyczaj stanowi część systemu operacyjnego komputera. Również BIOS komputera musi być odpowiednio przystosowany do zapewnienia właściwej konfiguracji karty. W pewnych przypadkach potrzebne są również aktualne sterowniki programowe (drivers). Istnieją dwa typy interfejsów kart PCMCIA: klasyczny i najbardziej rozpowszechniony, 16-bitowy PC Card (zbliżony do standardu ISA dla magistrali komputerowych) i nowszy, szybszy, 32-bi towy CardBus (zbliżo­ ny do standardu PCI), wprowadzony w roku 1995. Zasilanie kart z parnię510 8 4 BlOKI PAMI ĘCIOWE o ~--1-[68 -sty«owe 5'.0mm gnlo2do szpilkowe --~=~-- Rys. 8.19 Wymiary i typy ka rt PC MC IA (PC Card) ciami blyskowymi było początkowo zróżnicowane: + 5 V do odczytu i + 12 V do programowania i kasowania. Później upowszechni! się standard jednolitego zasilania + 5 V, a następnie zostal także wprowadzony jednolity standard + 3.3 V. Karty PCMCIA z pamięciami błyskowymi są wytwarzane w dwu głównych kategoriach: o adresowaniu liniowym, umoż.liwiającym dostęp do pojedynczvch bajtów lub 2/4 - bajtowych słów w sposób typowy dla pamięci półprzewod­ nikowych RAM, oraz o adresowaniu sektorowym, umożliwiających dostęp do pojedynczych sektorów pamięci (o typowej wielkości 5 12 bajtów) w sposób typowy dla obsługi plików w systemach operacyjnych. Karty o adresowaniu liniowym (Linear Flash Cards) umożliwiają bezpośrednie włączenie ich pamięci do zasobów pamięci komputera, w którym są stosowane. Umożliwia to bezpośrednie wykonywanie programów zapamiętanych na karcie (XIP - eX ecute-In- Place). W typowym komputerze, aby wykonać program pamiętany na dysku, trzeba go najpierw załadować (w całości lub części) do pamięci RAM. Gdy używa się karty o adresowaniu liniowym krok ten jest zbyteczny, a ponadto uzyskuje się oszczędność pamięci RAM . Jeśli natomiast 511 8. CYFROWE BlOKI FUNK.CJONAlNE karty w sposób typowy d la pamięci masowych, przez system operacyjny komputera (czyli przy użyciu standardowych sektorów logicznych i plików), to trzeba użyć dodatkowej warstwy oprogramowania translacyjnego. Stosuje się do tego celu dwa programy: FFS (Flash File System) - zazwyczaj w nowszej wersji FFS2 oraz FTL (Flash Translation Layer). Program FT L jest szybszy (zwłaszcza gdy używa się kart o większej pojemności). Istnieją wersje programu FTL dla różnych systemów operacyjnych, w tym DOS, Windows 3.1, Windows 95 i Windows CE. Programy te muszą być wykonywane przez procesor komputera. Działanie programu FTL przedstawia rys. 8.80. Program ten stanowi warstwę pośrednią między systemem plików (np. DOS) i oprogramowaniem Card and Socket Services. Program FTL dzieli odrębnie kasowalne bloki pamięci błyskowej na sektory Read/ l#ite (R/W) o tej samej wielkości co sektory DOS (512 bajtów). Jednak system DOS umożliwia modyfikację dowolnych sektorów w dowolnym czasie, natomiast zapis do sektora w pamięci błyskowej jest możliwy tylko po uprzednim skasowaniu całego bloku. Dlatego po otrzymaniu żądania zapisu z DOS program FTL skierowuje je do pierwszego wolnego (to znaczy jeszcze niezapisanego po skasowaniu bloku) sektora w pamięci błyskowej na karcie. Zawartość kolejnych sektorów DOS może być zatem umieszczona w różnych blokach i sektorach w pamięci błyskowej. Karty pamięci błyskowych o adresowaniu liniowym są wytwau.ane zazwyczaj jako karty typu I, z użyciem układów pamięci błyskowych o architekturze NOR. Do głównych wytwórców zalicza się firmy Int.el (www.intel.com), AMD (www.amd.com) i Simple Technology (www.simpletech.com/pccard). Na przykład, karty z serii D firmy AM D są wytwarzane o pojemności od 4 do 32 MB z użyciem układów pam ięci błyskowych Am29F016C (o pojemności 16 Mb i kasowalnych blokach 16 KB) i są zasilane wyłącznie napięciem + 5 V. trzeba wykorzystać pamięć obsługiwanych ,,...- ........ Sektory ~ ./ ' o "-.. z ~ ~ 1 2 3 6 7 8 / _ R/W l Sel<ł.12 fTL / .......... _;,, Pr~kłod : ź<iclo donycti OO 14 - 12 13 ../ 16 17 18 3- z sek toro 14fTLskierowuje żQdonie do bloku RJW21 Numer sektora f"unkcjo FTL 512 - - ---r-- .... ..... --...._ --...._ „RIW21 " Sektl4 > L--==--';..._~ Rys. 8.80 Zasada działa nia programu FTL RNl5 RIW6 RJW1 Skosowony Sekt.O f. ·, .......... 4 11 DOS ~ eł< l65 RNl2 RNl3 Sel<t.6 Sekt.19 Mopo lokocji fizycz nych w pomięci błysl<owej ogicznie Wolny lskosowony f1zyczniel 8_4. BLOKI PAM IE,CłOWE Maksymalny czas dostępu wynosi 150 ns, a czas kasowa nia jednego bloku wynosi typowo l s. Karty o adresowaniu sektorowym zawierają oprócz pamicci blyskowej specjalny mikrokontro ler, który do wspólpracy z kompu terem rea lizuje funkcję standardowego interfejsu ATA (AT At1aclm1e111). W ten sposób karta imituje twardy dysk i nie wymaga już stosowania dodatkowego oprogramowania translacyjnego, angażującego procesor komputera. Z drugiej strony karty te są droższe od poprzednich i mają większą moc strat (mikrokontroler) oraz nie umożliwiają realizacji funkcj i XIP. Karty te są wytwarzane zazwyczaj ja ko karty PCMCIA typu Il i zaw ierają układy pamięci błyskowych o architekturze NAND. Do głównych wytwórców tych kart należy lirma Sa11Disk (www.sandisk.com) i wspomniana poprzednio lirma Simple Tech11ology. Ka rty lirmy SanDisk z serii Flash Disk Type I I A TA są wytwarzane o pojemności od 2 do 85 M B, a grubsze karty Type 111 o pojemności od 110 do 220 MB (w roku 1997). Zasadniczą wadą tych kart jest ich relatywnie wysoki koszt, wynoszący w 1997 roku ok. 20$/M B. Złącza PCMCIA są standard owo wbudowane we wszystkich nowoczesnych komputerach przenośnych. Aby jednak użyć kartę PCM CIA w sta nda rdowym „biurkowym" komputerze PC, trzeba go wyposażyć w czytnik kart PCMCIA (PCMCI A card reader/writer). Czytniki takie są oferowane przez wiele lirm, np. Adtron, CN F, CSM i Data/O. Czytni k po zainstalowaniu jest zazwyczaj automatycznie wykrywany przez system operacyjny lłindows 95. Procedura dodania złącza PC MCIA jest również dostępna z menu Mój komputer/ Panel sterowania. Po włożeniu karty system ją natychmiast automatycznie wykrywa i przyporządkowuje kolejną literę napędu w menu Mój kompurer. Zgodnie z trendem miniaturyzacji przenośnego sprzętu elektronicznego został zaproponowany przez firmę Sa11Disk w roku 1994 nowy standard CF dla kart pamięci blyskowych, zwanych kompaktowymi (Compact F/aslr). Do promocji tego standardu zostało w roku 1995 utworzone stowarzyszen ie Compact Flash Associatio11 (www.compactflash .org), analogiczne do PCMClA. Ka rla CF stanowi w istocie zminiaturyzowaną odmianę karty PCMCIA typu I z adresowaniem sektorowym przez interfejs ATA (zawiera wbudowany mikrokontroler). Powierzchnia karty CF została istotnie zmniejszona, tak że jej wymiary są następujące: 43 x 36 x 3.3 mm. Oznacza to jedną czwartą obj~tości karty PCMCI A t ypu li. Złącze również zostalo zmniejszone i zawiera tylko 50 styków. W razie potrzeby, karta CF może być umieszczona w prostej , biernej karcie adapterowej PCMCIA typu II i pracować jak karta PC Card. Dzięki swym małym rozmiarom karty CF zostały z powodzeniem zastosowane w nowych, cyfrowych aparatach fotograficznych. Jedna karta CF o pojemności 2 MB może zapamiętać 20-24 cyfrowo skompresowanych zdjęć z 24-biiO\vą rozd.zielczością koloru. Po jej przeniesieniu do komputera 513 8. CYFROWE BLOKI FUNKCJONALNE b Słyk• l!051loniQ i do wykrywonio włottnio korty Obsodo ~lostykowo ł QCze elastomerowe Rys. 8.SI Karta miniaturowa (Miiliawre Card) a) W)'miary, b) zł;ic;tc dastomcrow~ z drukarką kolorową można otrzymać praktycznie natychmiast. Zawartość karty można przenieść na dysk komputera lub skasować. W ten sposób jedna karta może być używana ponad I OO lat do wykonania setek tysięcy zdjęć. Nie istnieje problem „naświetlenia filmu do końca", a wykonane zdjęcia można łatwo przesyłać pocztą elektroniczną i przechowywać. F otografowanie stanie się mniej kosztowne, gdyż nic trzeba będzie kupować ciągle nowych rolek filmu. Karty CF umożliwiają bardzo elastyczne, alternatywne zasilanie: + 5 V oraz + 3.3 V. Oznacza to, że karta CF pracuje przy każdym z tych dwu napięć usilających. Dostępne w roku 1997 karty CF miały pojemność 2, 4, IO i 15 MB. Mniejszymi odpowiednikami kart PCMCIA o adresowaniu liniowym są karty mi11iaturowe (Miniature Cart/). Standard MC został wprowadzony przez stowarzyszenie firm o nazwie Mi11iature Card lmpleme111ers Forum (www.mcif. .org). Są to karty w założeniu wielofunkcyjne, czyli oprócz pamięci błysko­ wych mogą zawierać pamięć RAM lub ROM. Rozm iary mają zbliżone do kart CF (rys. 8.8 1a), lee-.: mają inny typ złącza. Na „przedniej" (wsuwanej) krawędzi mają tylko trzy styki (masa, Ucc i styk C/NS do wykrywania wkładania karty). Główne 60-stykowe złącze znajduje się też z przodu, lecz pod spodem karty (rys. 8.81 b). Jest to złącze elastomerowe, wykonane z naprzemiennych warstw przewodzącego i nieprzewodzącego silik onu. Po włożeniu karty warstwy te 514 fotografie 8.4. BLOKI PAMI ĘCIOWE ulegają ściśnięciu i wtedy ich rezystancja znacznie maleje, tworząc dobre i niezawodne kontakty elektryczne. Karty te są również obsługiwane przez program FTL i mogą być umieszczane w złączach PC Card z użyciem odpowiednich adapterów. Pamięci błyskowe są również wytwarzane w postaci innych modułów. Niektóre z nich są wymienione niżej. Półprzewodnikowa dyskietka (Solid- State Floppy Disk - SSDFC) w postaci układu scalonego z pamięcią błyskową 2 MB. Do jej użycia potrzebny jest dodatkowy adapter do złącza PC Card z mikrokontrolerem AT A. Dysk błyskowy (Flaslt Drive) z interfejsem IDE, do wbudowania na stale wewnątrz urządzenia (SanDisk). Moduł błyskowy SIMM, głównie do zastosowań w drukarkach i urządze­ niach sieciowych. Inne rodzaje pamięci 8.4.2.7 Poniżej będą krótko omówione pamięci kolejkowe (FIFO), stosowe (LIFO) i skojarzeniowe (CAM). Pamięć kolejkowa stanowi odmianę pamięci szeregowej, charakteryzującej się następującymi cechami: wprowadzanie i wyprowadzanie danych następuje asynchronicznie lub synchronicznie na niezależnych wejściach i wyjściach pamięci, kolejność wyprowadzania danych jest narzucona przez kolejność wprowadzania, wprowadzane słowa danych są automatycznie zbierane w komórkach najbliższych do wyjść, dzięki czemu są one dostępne bezpośrednio po wprowadzeniu. Ten tryb pracy przyczynił się do powstania skróconej nazwy pamięci - FIFO (First- In, First- Out). Pracę pamięci FIFO obrazowo ilustrują przykłady, związane z obsługą konsumentów stojących w kolejce w celu zakupu np. lodów. Liczba osób w kolejce (zawartość pamięci) zależy od szybkości dochodzenia nowych klientów i szybkości ubywania klientów z kolejki w trakcie obsługi. Przyjmując dla uproszczenia, że przybywający klienci nie mają znajomych wśród osób stojących w kolejce, ani tzw. zarezerwowanych miejsc (,ja tu stałem"), tryb przesuwu osób w kolejce, od chwili przybycia do odejścia, może być określony przez wymienione wyżej trzy zasady. Głównymi parametrami pamięci FIFO są pojemność C (nazywana tutaj „głębokością") i czas przejścia t1 . Znaczenie C jest oczywiste, natomiast t 1 określa odstęp czasu potrzebny na przejście słowa danych po jego wprowadzeniu z wejść do wyjść pustej pamięci. Wartość t1 zależy w znacznej mierze od konstrukcji 515 8. CYFROWE BLOKI FUNKCJONA.LNE pamięci. Istotna jest również maksymalna szybkość wprowadzania i wyprowadzania danych. Istnieją dwie zasadnicze metody konstrukcji pamięci FIFO: w oparciu o rejestr przesuwający lub pamięć RAM. Pierwsza metoda umożliwia najprostszą budowę pamięci, która jednak ma relatywnie długi czas t . Druga metoda 1 umożliwia uzyskanie krótkiego czasu t 1 , lecz budowa pamięci jest bardziej skomplikowana. Zasadę stosowania pierwszej metody pokazano na rys. 8.82. Przykładowy trzybitowy układ zawiera rejestr danych (o si.eregowych wejściach i wyjściach) i związany z nim rejestr prowadzący o dwóch wejściach sterujących (wejście wprowadzenia SI, wejście wyprowadzenia SO) i dwóch wyjściach sygnalizacyjnych, zwanych również wskaźnikami stanu (I R - gotowość wejścia, OR - gotowość wyjścia). Działanie u kładu jest takie, aby przy wprowadzaniu kolejnych słów danych przesuwać je do najdalszych od wejścia nie zajętych komórek. Funkcję "przeprowadzania" słów danych między kolejnymi grupami przerzutników rejestru danych spełnia rejestr prowadzący, przy użyciu "wiodą­ cego" znacznik a (marker) o stanie logicznym równym l, przesuwanym asynchronicznie do najdalszego przerzutnika o stanie równym O. Jeśli przykładowo stan początkowy rejestru jest tak i, 'l.e Q, = Q2 = O i Q3 = I (tzn. dwie pierwsze komórki są wolne, a trzecia jest zajęta), to bramki BI , B2 i B4 są odblokowane, a bramka B3 jest zablokowana. Ponieważ IR= l, zatem można wprowadzić jedno słowo do rejestru danych, synchronicznie z sygnałem sterującym SI = I. Stan Q, = I stanowi znacznik (bl okujący BI), który się jednak natychmiast przesuwa do przerzutnika Pl, blokuj ąc bramkę B2 i odblokowuj ąc z powrotem 81. Chwilowy stan S2 = I powoduje również zmianę stanu przerzutnika Pl z powrotem do stanu Q, = O, który generuje znowu IR= I, sygnalizując gotowość do następnego wpisu. Przy odczycie Geśli OR= I, tzn. jeśli znacznik sygnalizuje obecność słowa danych na wyjściu), można odczytać informację z wyjścia rejestru danych, generując następnie sygnał SO= I, co powoduje skasowanie znacznika w P3, odblokowanie B3 i przesunięcie znaczników i prowadzonych pri.ez nie danych o jedną pozycję. Należy zauważyć, że sygnał wyjściowy l R na wyjściu bramki B7 oznacza nie tylko stan gotowości przerzutnika PI , lecz także właściwe ustawienie przerlutnika SR utworzonego z bramek B5- 86. Właściwe ustawienie począt­ kowe otrzymuje się w wyniku ch oćby chwilowego stanu SI = O, gdyż wprowadzanie kolejnych danych musi być synchronizowane dyskretnymi impulsami sterującymi (i.egarowymi). Podobne działanie ma układ sterowania odczytu (przerzutnik B8- B9, bramki 84, BIO). Czas przejścia c1 jest mierzony po wyzerowaniu rejestru prowadzącego (czyli w opróżnionej pamięci) od rosnącego zbocza sygnału SI, który ustala znacznik w pierwszym przerzutniku tego rejestru, do rosnącego zbocza sygnału OR, który sygnalizuje obecność znacznika w ostatnim przerzutniku. Podobnie 516 8.4. BLOKI PAM I ĘCIOWE Oo pozostofych bitów ~ o ~ ~ o 2 ;;; </) 15 M "'o o o Sł'Ów </) 15 15 Cl C1 R 1R _jł~~T.!!_ ~f'!YC.!! REJESTR o _ PROWADZĄCY P1 PJ s i-.- R R R B7 & --<S JR R ys. 8.82 Zasada budowy OR pamię<:i FIFO w oparciu o rejestr przesuwający przy pełnej pamięci, czas przejścia dotyczy „ruchu" braku znacznika z ostatniej komórki (co następuje przy odczycie) do pierwszej komórki. Podobne działanie ma miejsce przy odczycie. Ponieważ sygnał zerujący MR kasuje tylko wszystkie znaczniki w rejestrze prowadzącym, zatem na wyjściu danych utrzymuje się ustalone poprzednio (ostatnie) słowo, przy czym oczywiście OR = O. Taka sama sytuacja ma miejsce po opróżnieniu pam ięci w takt sygnału SO. Należy pamiętać, że stan OR = I sygnalizuje obecność tylko ważnych dan ych do odczytu, czyli przy stanie OR = O dane na wyjściach należy ignorować. Rysunek 8.83 ilustruje budowę i działanie synchronizowanej pamięci FIFO 256 x I, wykorzystującej dwuportową pamięć S-RAM. Dwie takie pamięci FIFO są zawarte w układzie SN74ACT2228 (Texas Instruments) (20). Wybór komórek przy zapisie kolejnych bitów i ich odczycie następuje za pomocą 517 8. CYFROWE BL01(1 FUNKCJONALNE a o + Synchroniczne sterowonie Odczyte m RDCLK ROEN Kom6rko 1 . - ~ Wskoinik ~ Komór ko 2 Odc.zyttJ f-,/ Owuportowo pomi ę ć 5 „RAM WRTCLK Synchr oniczne s te rowa nie zapise m WRTEN •• ·• - WskoŹnik ~ zapisu t-V 256.c 1 Komór ko 255 Komór ko 256 + Rejestr a • Generocja zerujqcy HF sta nu U kład '---- AF/AE flog ~ IR . OR b WRTCLK WRTEN I I I I I '* DM., @•2 ~ •• tAAI•• ą ·:·· ~ 81:29 ą ~·· ~ ~., RC>CLK ~~~J!l_ I I I I RDEN _--·----------'------r'----~'----~'----~'-~·~ AF/AE IR Rys. 8.83 Synchronizowana pa mięć FIFO 256 x I (1/2 SN74ACT2228, Texas fostr11menrs) a) budowa logiczna. b) pnebiegi ttl:l.$()\W'e przy t.'ip~ie. c} prubtcgi CU1.sowc przy odczycie dwu liczników adresowych: wskaźnika zapisu i wskaźnika odczytu. Czynności zapisu i odczytu są synchronizowane (clocked) w tym sensie, że kolejne dane z wejścia D są wpisywane narastającym zboczem zegara wpisuj ącego WR'ICLK, 518 8.4. BLOKI PAM IĘC I OWE ( Qlł'f ~--------------------------Hl WRTCUC ""'"-.---' OR AFIAE "' IR gdy na weJSC1u zezwolenia zapisu WR1EN i na WYJSC1u gotowosc1 zapisu IR są poziomy H. Analogicznie odczyt z pamięci na wyjście Q następuje synchronicznie z narastającym zboczem zegara czytającego RDCLK gdy na wejściu zezwolenia odczytu RDEN i na wyjściu gotowości odc-ątu OR są poziomy H. Sygnały zegarowe zapisu i odczytu mogą być wzajemnie asynchroniczne. Flaga IR jest synchronizowana wewnętrznie z zegarem zapisu WRJCLK, a flaga OR jest synchronizowana z zegarem odczytu RDCLK. Taka synchronizacja zapewnia poprawność dzialania pamięci przy asynchronicznym wpisie i odczycie danych. Ponadto uklad pamięci generuje flagę zapelnienia połowicznego HF (Half- Full) i nagę 'n iemal pelna/ niemal pusta' AF/AE (Almost- Full/Almost- Empty). Pierwsza jest ustawiana gdy liczba zapamiętanych bitów jest równa lub większa niż połowa glębokości pamięci FIFO. Druga jest ustawiana gdy pam ięć zawiera osiem lub mniej pustych komórek i gdy pamięć zawiera osiem lub mniej zapisanych komórek. Ilustrują to prtebiegi pokazane na rys. 8.83ab. Częstotliwość sygnalów zegarowych może sięgać 22 M Hz, a czas dostępu wynosi 20 ns. Firma Texas Instr11me11ts wytwarza uklady pamięci F IFO w bardzo dużym asortymencie i o różnych trybach synchronizacji (20). Pamięci F IFO mają liczne zastosowania. Najczęściej są one stosowane jako pamięci buforowe między systemami cyfrowymi o różniących się lub/i niesynchronizowanych szybkościach przetwarzania danych. Dane mogą być 519 ł CYFROWE 8LOICI ruNKCJONALNE wprowadzane i wyprowadzane z pamięci FI FO w sposób ciągły lub nieregular· ny, np. seriami o różnej długości i różnych wzajemnych odstępach czasowych. Podobne działanie do opisanych pamięci FIFO mają pamięci stosowe LIFO (LAsr- fo, First- 0111), w których kolejność wyprowadzania danych jest odwrotna do kolejności wprowadzania. Na.zwa pamięci stosowej pochodzi z typowej analogii np. stosu talerzy w kuchni, na wierzch którego kolejno kładzie się świeżo umyte talerze i z którego na bieżąco również zdejmuje się kolejne talerze w celu ich wykorzystania. Pamięci LI FO nie są jednak wytwarzane jako odrębne układy scalone. Zwane skrótowo jako ,,stosy" stanowią one typowe bloki składowe mikroprocesorów, gdzie służą m.in. do pamiętania adresów powrotnych przy realizacji podprogramów. W wielu praktycznych zastosowaniach poszukuje się określonych informacji w dużych zbiorach danych, przy czym adresy tych informacji nie są znane. Na przykład, w dużym zbiorze liczbowym wyników eksperymentu poszukuje się konkretnych liczb zawartych w określonym przedziale. Przy gromadzeni u tych danych w klasycznej pamięci RAM trzeba je kolejno odczytywać i ewent ualnie sortować zgodnie z określonym algorytmem. Jest to proces sekwencyjny, który może trwać relatywnie długo. W takich przypadkach znaczne przyspieszenie wyszukania żądanych informacji zapewnia użycie pamięci skojarzeniowych, zwanych również pamięciami adresowanymi zawarwścif1 (CAM - Coment Addressable Memory). Pam ięć CAM umożliwia szybkie, jednoczesne (a nie sekwencyj ne) badanie całego zbioru zawa rtych w niej słów danych oraz wykrycie jego podzbiorów spełniających określone relacje odnośnie danych. Proces ten polega na równoległym porównaniu wszystkich słów danych ze słowem wzorcowym podanym w tym czasie na wejście wzorcujące pamięci. Wynikiem porównania może byc brak skojarzenia bądż wykrycie jednego lub wielu skoja rzeń. Operacja porównania może być modyfikowana przez maskowanie (tzn. nieuwzględnianie przy porównywaniu) poszczególnych bitów we wszystkich słowach pamięci. Dzięki temu można wykrywać określone podzbiory danych. Można zauważyć, że skojaneniowy sposób wyszukiwania informacji jest charakterystyczny również dla mózgu ludzkiego, oczywiście w znacznie bardziej złożonej postaci. Prosty przykład struktury pamięci skojarzeniowej, stosowanej jako szybka kartoteka, pokazano na rys. 8.84. Z lewej strony jest pokazany blok słów jednocześnie porównywanych ze słowem wzorcowym, a z prawej strony blok słów poszukiwanych danych. Zakładając, że w bloku skojarzeniowym nie ma jednakowych słów, przy wystąpieniu zgodności między którymś z zawartych w nim słów i słowem wzorcowym następuje aktywizacja odpowiedniej linii adresowania liniowego pamięci danych i wyprowadzenie na wyjścia wyszukanego w ten sposób słowa danych . Można sobie wyobrazić, że prtyk ład ten reprezen tuje listę personalną z dwoma rubrykami, z których pierwsza zawiera nazwy różnych zawodów, a druga dane personalne osób 520 8.4, BLOKI PAM I ĘC I OWE S:rowo wzorcowe V\'ejŚC10 wzorc:ujqce abc.d e t Linie adresowania tin1owego f'-r'-r'-r'-r'-r'-1-_L~--r--r--r--r--r--r--rl o b e del gh ij klm o Blok Po mięć. skojarzeniowy donych gh 1 j k ł mn WyJ ŚCIO dOnyeh Rys. 8.84 Zasada działania pamięci skojarzeniowej (CA M) o tych zawodach. Jeśli chcemy szybko znaleźć odpowiedź na pytanie, czy wśród tych osób znajduje się inżynier, a jeśli tak, to ja kie są jego dane, wystarczy podać na wejście bloku skojarzeniowego słowo wzorcowe reprezentujące zawód inżyniera. Sygnał zgodności wskaże od razu właściwy adres w pamięci danych i na wyjściach pojawi się poszuk iwana informacja, np. Jan Kowalski, ur. 15.07.1956, zam. Warszawa, ul. Reja 56 m 6. Łatwo zauważyć, że postępowanie klasyczne (przy użyciu pam ięci RA M), czyli od· czytywanie i sprawdza nie kolejnych słów, było by procesem wielokrotnie d łu­ ższym, zwłaszcza przy dużych zbio rach danych. Można zauważyć, że struktura z rys. 8.84 może być reprezentowana jednym blokiem skojarzeniowym z zamaskowanymi bitami g, h , „„ m. Operację porównywania słowa wzorcowego ze słowem zawartym w pamięci CAM wykonuje się przez wykorzystanie funkcji XNOR (p. 4.1.1 , 8.2.4). Dla n-bitowych liczb P i Q określenia ich równości wykonuje się na podstawie iloczynu wyników porównania wszystkich par bitów na tych samych pozycjach: n - 1 _ __ e = n P1€f:> ą; J=O Sygnał zgodności e = I otnymuje się tylko przy całkowitej zgod ności nywanych słów. Natomias t sygnał niezgodności porów- n -1 e =V P1EI7ą; j=O czyli stan e = Ootrzymuje się przy niezgodności choćby tylko na jednej pozycji porównywanych słów. 521 8. CYFROWE BLOKI FUN KCJONALNE W pamięciach CAM operacja porównania może być maskowana, czyli okreW tym celu do komórki bitu} doprowadza się sygnał maskujący ci> który przy ci = I powoduje maskowanie, a przy ci= O umożliwia porównanie. Wówczas sygnał zgodności bit u j zapisuje się w pamięci ślone bity mogą być nie uwzględniane. o Linie bitu j '6I \ Linio stowa i (adres ł w, -+-l--1~--"""''----,----+--+-.------1Linio zgodności słowo i & e, --1--l--JL.-L..._L.______-1--1.-1-- - -..;.-1-& 85 o & & 82 & '---.,-/ Odczy1 Bit wzorcowy lub maskowanie l inie bitu j b bjo - -- -+-- - - - - -- -- -._JL.__ Linio stowo i w Uoo (od res ~ 1 Komórka c:iami ęciow S· RA M Sromki XNOR Linio e, - - --'--l-- -"-- - -- - -----JL.--z:9odn0Sci stowa I Rys. 8.85 Komórki pamięci CAM ;)) tKidow;i klasyQ;Dej komór);j CA„1. b) scłlemsl 10-ttan2.y$10rO.,.,'f!j komórti :>lo11owanej w pamięci CMOS CAM o pojemn<:>!ei 8 Kb ( 21) (z wyj,.tkiem dwóch trancys1orów PMOS wtt)'stkie ltan't)'łt()ry ~typu Nri.tOS) 522 8.4. BLOKI PAM I ĘCIOWE e, = p1 ®q1 V C1 Operacja porównywania jest zasadniczą, charak1eryslyczną operacją wykonywaną przez pamięci CAM. Poza tym umożliwiają one normalne operacje zapisu i odczytu. Przykład budowy klasycznej komórki pamięci CAM pokazano na rys. 8.85a. Jako właściwa komórka pamiętająca jest wykorzystany statyczny przerzutnik zatrzaskowy SR (bramki BI+ B4). Przy operacji zapisu dostęp do komórki jest otwierany adresem w, = I i bit informacji jest wprowadzany z komplementarnych linii zapisu z10 , z1 ,. Przy operacji odczytu ustala się stan z10 = z1, =O i następnie w, = I. W rezultacie stan p1 komórki z wyjścia 83 zoslaje przenoszony z negacją (85) na linię odczytu 61. Linia ta łączy się równolegle z otwartymi kolektorami bramek B5 we wszystkich komórkach na pozycji jw słowach pamięci. Przy operacji porównania ustala się stan z10 = z1, = O, na linie ą10 , ą1 , wprowadza się komplementarnie porównywany bit u słowa wzorcowego i adresuje się słowo i stanem w, = I. Ponieważ bramki z 01warlym kolektorem B6 i B7 łącznie z funkcją DAND na ich wyjściach realizują funkcję XNOR gdy ą10 = ij11 e;; = fP;; ą;,) (pij ą;ol = (Pi; V ii;1HP;; V ii1ol zatem na linii zgodności słowa i otrzymuje się stan I tylko przy wszystkich bitów tego słowa pamięci ze słowem wzorcowym: zgodności n- I e, = n e,} J=O Maskowanie bitu j otrzymuje się przez ustalenie stanu q10 = ą11 = O. Schemat bardzo małej komórki stosowanej w pamięci CMOS CAM o pojemności 8 Kb (256 x 32) pokazano na rys. 8.85b (21]. Ponieważ górna część komórki jest identyczna z komórką pamięci CMOS S- RAM, zatem operacje zapisu i odczytu wykonuje się tak samo jak w zwykłej pamięci statycznej RAM. \V celu wykonania operacji porównania linię zgodności słowa e, ładuje się wstępnie do poziomu H i przy w, = L wprowadza się komplementarnie na linie b10, b1 , bit wzorcowy. Przy wystąpieniu niezgodności jedna z par tranzystorów tworzących bramkę XNOR przewodzi, powodując rozładowanie Inii ei do poziomu L. Maskowanie bitu j następuje przy ustaleniu b;o = b;1 = L. Przy realizacji operacji porównania w praktyce często występują zgodności z więcej niż jednym słowem w pamięci CAM, zwlaszcza przy maskowaniu większej liczby bitów. Wówczas trzeba zapamiętać adresy wi skojarzonych słów, zazwyczaj do ich kolejnego odczytania. Do tego celu służy odrębny rejestr adresowy, stowarzyszony z koderem priorytetowym, wybierającym kolejne adresy przy odczycie. 523 8 CVFROW E BLOKI FUNKCJONALNE LITERATURA I. Molski M.: Modu/owe i mikroprogramow<1/11e uklady ryfowe, WKŁ, Wa rszawa 1986 2. Traczyk W.: Układy cyfro't'l·e. Podstcnvy leOr('tyC'ztte I u1e1ody syntezy, \VNT, Warszawa 1986 3. Kalin J.: Program sers up m11/1ip/e,<er CIS loglc clilp, EON, Septembcr 29, 1988, 195-196 4. Damashck M" Shift rtgisler „·i1hf„Jback generarts "·hii. noise, Elcctronics. May 27. 1976. 107- 109 5. Aodcl$0n L H.: U11I1ing munber genera1orsfor long bil pa11ern5.. Elcctronics, No•embcr 9. 1978, 134-136 6. Rabacy J. M.: Digi111I illlegroted d rcuils - A de>ign perspectfre, Prenticc Hall, 1996 7. Wakcrly J. F.: Digillll design - Principles ant/ prttrtit'es, Second Edition. Prcnticc Hall, 1994 8. Rideoul V. L.: Ont'-dt•vice cells for dynamie rtuu/0111 arce.u me111ories: a 1uroril1I. I EEE Trans. Electron Deviccs. v.ED-26, No.6, June 1979. 839- 852 9. Furuyama T. el. al.: A11 experimental 4-Mbit CMOS DRAM, IEEE J. Solid -State Circuits, v. SC-21, No. 5. Octobcr 1986, 605-6 10 10. Takada M . e1. al.: A 4„Wbit DRAM '"i1l1 lralf-Inrerna/-tV)ltage bi1-li11e predrarge, IEEE J. Solid-Stale Crrcuits. v.SC-21, No. 5. Octobcr 1986. 6 12- 616 11. Dynamie RAMs nad memory modules. Motorola Data Book DL 155/ 0 . Rcv. 2. 1996 12. Prince Il.: 11/gh pnformance mtnU>rits. J. Wilcy. 1996 13. Rtduce DRAM C)'r lf ri""'s wiih txi.11ded data-out , Technical Note TN-04-21, Rcv. 3/97. Micron Technology 14. Taguchi M. el. al.: A 40-ns 64 Mb DRAM wi1lr 64·1> para/le/ data bus arrl1itec111re, IEEE J. Solid-State Circuits, v. 26, No. li, No"ernbcr 1991, 1493- 1497 15. Frohman O.: F' AN/OS - A nelv se,uiconductor t lu1rt1e Slórfł(Jl' tle vice, Solid State Slcctronics, v. 17, 1974, 517 529 16. Johnson W. S. " ttl.: 16-K EE-PROM relies 011 11111nelin11 Jor byi.-.rasable program storage, Electronics, Fcbruary 28, 1980, 113- 117 17. The l:C·bus and how to use ir. Philips Data Handbook IC12 (l'C Periplreruls~ 1996 18. Bucbeckcr A. K.• Mitchcll Ili A. C.: EWX IV Fla.h memory technolog)'- Eng. Rept. E R· 33, Intel, No\'embcr 1994 19. Tae-Sung Jung et 111.: A I I 7-mnr1 3.J-V m•I)' 118-Mb m11l1ilnvl N AND j111sh memor)>for ma"s storage applic11tio11", IEEE J. Solid-State Circuits. '" 3 1, No. 11, No\'embcr 1996, 1575 20. High-perforuu111re FIFO 1neniories tlesig11('r's Juuulbook, Texas lnstrurncnls 1996, Lit. No. SCAA0 12A 2 I . Kadota Jol . et al.: A11 8kbit con1ent-addressuble t11ul ree111ra1111uemory, I EEE J. Solid-State Circuits. v.SC-20. No. 5, Octobcr 1985, 95 1-956 9 PROGRAMOWALNE I SPECJALIZOWANE UKŁADY CYFROWE Cyfrowe układy scalone są wytwarzane w trzech zasadniczych kategoriach, jako (rys. 9.1): układy standardowe - wytwarzane masowo układy nieprogramowalne, przeznaczone do wielu uniwersalnych zastosowań, bez sprecyzowania odbiorców; układy programowalne - wy twarzane ta k jak układy standardowe, lecz programowane indywidualnie do konkretnych zastosowań; układy specjalizowane (ASIC - Applicacion-Speciflc lnte{1rmet/ Circuits) - wytwarzane tylko do konkretnych zastosowań, na indywidualne zamówienia. CYFROWE UKlADY SCALONE I I I UKŁADY $TAl'l)AA00WE (NIEPROGRAMOWALNE, WYTWARZANE MASOWC) SSI, MSI, LSI, VLSI UKlAOV PAOGRAMOWALNE (WYTWARZANE MASOWC) 1.$1, \Il.SI ' I Progr<1mowalne Slruk1ury I I I Progromc>w#lne M&ll"/00 bramkowe GA Matiyce Ul<lady I PlO 11CPLD -1 EJ ' PROMI R)'-'· 9.1 K lasyfikacja cyfrowych 525 I ' PAL układów t.SJ, VL$ 1 I l I WYTWARZANE NA ZAMÓYłlEN!E) I matryce bf8mkowe FPGA logiczne UKlAOY SPECJALIZOWANE · A$łC (NEPROORAMOWALNE. scalonych - SC...„ ~idoolno FC 9. PROGRAMOWALNE I SPECJALIZOWANE UKł.AOY CYFROWE Układami standardowymi są omawiane w poprzednich rozdziałach nieprogramowalne układy z typowych rodzin (na przykład z rodzin 74XX TIL) o ściśle określonych funkcjach i ustalonych wewnętrznych konfiguracjach logicznych. Do tej kategorii zalicza się również uniwersalne układy wielkiej skali integracj i, takie jak mikroprocesory i pamięci. Budowa urządzeń elektronicznych z układami standardowymi polega na wykonaniu odpowiedniego projektu, wyborze typów układów standardowych i połączeniu ich na płytkach drukowanych. Jest to technologia klasyczna, w której budowane są urządzen ia relatywnie duże, drogie i pobierające dużo energii. Rozwój technologii w mikroelektronice stale zm ierza w kierunku zwię­ kszania funkcjonalności układów (a więc również ich złożoności logicznej) oraz ich szybkości działania, przy jednoczesnej minimalizacji ich mocy strat i rozmiarów, oraz przy możliwie najniższych kosztach . W wielu zastosowan iach optymalne rozwiązania uzyskuje się używaj ąc niestandardowych układów wielkiej skali integracji. Indywidualn ie zaprogramowany układ programowalny lub układ specjalizowany LSI umożl iwia zastąpienie pewnej grupy (kilku - kil kunastu, a nawet kilkudziesięciu) układów uniwersalnych SSI i MS!, a nawet zintegrowanie kilku układów LSI. W ten sposób można osiągnąć istotne zmniejszenie rozm iarów, wagi, mocy strat i kosztów urządzenia. Ponadto można uzyskać polepszenie niezawodności i zwiększenie szybkości działania wskutek eliminacji połączeń drukowanych między układami uniwersalnymi. Istotną zaletą układów programowalnych (po zaprogramowaniu) i specjalizowanych jest ich wewnętrzna „skrytość", gdyż projekt i struktura logiczna takiego układu jest znana tylko projektantowi i praktycznie jest niemożliwa do odtworzenia przez innych. W ten sposób producenci urządzeń mogą zabezpieczyć swoje wyroby przed naśladownictwem i kradzieżą oryginalnych rozwiązań technicznych. Układy programowalne dzieli się na dwie zasadnicze kategorie, którymi są: programowalne struk tury logiczne .(PLO - Programmable Logic Deuice) i złożone programowalne struktury logiczne (CPLD - Complex PLD), programowalne matryce bramkowe (FPGA - Field Programmable Gate Array). Układy PLO dzielą się dodatkowo na układy FPLA, PROM i PAL, które będą omówione dalej. Układy programowalne są wytwarzane masowo, tak jak układy standardowe. Każdy z nich zawiera pewną liczbę bramek i przerzutników, zazwyczaj zorganizowanych w postaci zbioru niepołączonych i nieskonfigurowanych wewnętrznie komórek łub bloków logicznych. Programowanie układu polega na wykonaniu odpowiednich połączeń elektrycznych wewnątrz i między tymi komórkami (blokami) w celu utworzenia żądanej konfiguracji logicznej układu. 526 9.1. UKŁADY PROGRAMOWALNE Zadanie to jest wykonywane przez projektantów Uf'żądzeń (użytkowni­ ków) z użyciem odpowiednich urządzeń (programatorów) i programów komputerowych. Układy specjalizowane (ASIC) dzieli się na następujące rodzaje: matryce bramkowe (GA - Gate Array), matryce komórkowe (SC - Standard Cell), układy indywidualne (FC - Full Cuscom). W odróżnieniu od układów programowalnych, te układy są w całości wytwarzane i konfigurowane logicznie w trakcie odpowiednich procesów technologicznych u producenta. W układach tych można osiągnąć lepsze parametry techniczne (zwłaszcza szybkość działania) i większą złożoność logiczną niż w układach programowalnych. Można na przykład wykonać na jednej kostce krzemowej specjalizowany układ z rozbudowaną częścią analogową, procesorem sygnałowym i pamięcią RAM i EEPROM. Koszt projektowania i wytwarzania tych układów jest jednak wysoki, tak że ich stosowanie jest opłacalne tylko przy dużej skali produkcji seryjnej. Mimo to zastosowania układów ASIC w nowoczesnych urządzeniach cyfrowych są powszechne. Typowymi układami ASTC są m.in. układy akceleratorów graficznych w kartach graficznych komputerów PC. UKŁADY Charakterystyczną PROGRAMOWALNE programowalnych są programowalne połączenia elektryczne wewnątrz struktury krzemowej. Zależnie od użytej technologii, połączenia te są realizowane za pomocą różnego rodzaju łącz­ ników. W technologii bipolarnej często stosowane są łączni k i typu „bezpiecznika" (fuse) o postaci ścieżek nichromowych (Ni-Cr) lub tytanowo-wolframowych (Ti-W), które są przepalane w wybranych miejscach. Oznacza to, że układ z łącznikami bezpiecznikowymi ma początkowo połączone wszystkie możliwe punkty. Innym rodzajem łączników są diody niszczone w procesie przebicia. Są to „antybezpieczniki" (aniifuse), które początkowo są wszystkie rozwarte. W układach FPGA realizowanych technologią CMOS stosuje się antybezpieczniki dielektryczne i polikrzemowe amorficzne. Wszystkie łączniki bezpiecznikowe i antybezpiecznikowe mogą być programowane tylko jednokrotnie. W układach programowalnych, wytwarzanych w technologii CMOS, najczęściej stosowane są łączniki w postaci tranzystorów NMOS, sterowanych przez stowarzyszone komórki pamięci nieulotnej typu EPROM, EEPROM lub FLASH. Stosowane są również odrębne pamięci S-RAM. Ten rodzaj łączników umożliwia wielokrotne programowanie układu, co jest szczególnie istotne w fazie projektowania lub przy wprowadzaniu ulepszeń projektowych. 527 cechą układów 9.1 9. PROGRAMOWALNE I SPECJALIZOWANE U KŁAOY CYFROWE Programowalne struktury logiczne (PLO) 9 .1.1 Najprostszymi i najtańszymi układami programowalnymi są programowalne struktury logiczne (PLD - Programmable Logic Device). Układy te są tak projek towane przez wytwórców, aby każdy typ pokrywał pewien obszar podobnych, potencjalnych zastosowań. Są one wytwarzane i sprzedawane tak samo jak układy standardowe. Natomiast użycie układu P LD do konkret nego zastosowania sprzętowego wymaga uprzedniego skonfigurowania jego połączeń wewnętrznych, co generalnie jest wykonywane przez klienta, czyli zazwyczaj u wytwórcy urządzeń wykorzystujących układy P LD. Układy PLD mogą być określone jako układy uniwersalne, które mogą być skonfigurowane do realizacji wielu różnych modułów funkcjonalnych. Ograniczeniem jest relatywnie niewielka złożoność logiczna układów PLD, wyrażana do celów porównawczych przez liczbę bramek logicznych w kostce, zazwyczaj nie przekra<..-zającą I OOO. Przy większych projektach stosuje się złożone układy PLD (CPLD - Complex PLD) o liczbie bramek od 1000 do 15000, a nawet więcej. Układy PLD są wytwarzane jako układy kombinacyjne (zawierające bramki AND i OR oraz programowalne inwertery) o raz jako układy sekwencyjne (uzupełnione na wyjściach o zestaw przerzutników D czyli rejestr). Charakterystyczną cechą układów PLD jest regularność struktur sieci bramkowych, wytwarzanych w postaci prostokątnych matryc. Analizując układy PLD/CPLD często operuje się nazwą „iloczynu (logicznego)" jako składnika sumy logicznej. Wygodn ie jest w tym znaczeniu używać krótszej nazwy „term" (z angielskiego product term), która również będzie stosowana w poniższym tekście (p. 4.1.2). Układy 9.1.1.1 FPLA Największe możliwości funkcjonalne zapewniają układy FPLA (Field- PrO(Jram- mab/e Logic Array), które mają programowalne dwie sieci bramek (AND i OR). Ilustruje to rys. 9.2, gdzie punkty na sieci oznaczają programowalne połączenia odpowiednich wejść bramek. Jeśli układ ma 11 wejść, to na wyjściu każdej bramki AND otrzymuje się iloczynowy implikant realizowanej funkcji (term), a na wyjściu każdej bramki OR sumę wybranych implikantów (termów). Jeśli układ ma m wyjść, to znaczy że może realizować m funkcji logicznych o 11 zmiennych. Zasadniczym ograniczeniem jest to, że liczba dostępnych bramek AND w ukła­ dzie FPLA jest znacznie mniejsza niż teoretyczna liczba maksymalna dla n zmiennych, równa 2". Stan O na wyjściu bramki AND otrzymuje się przez przyłączenie jej dwu wejść do dwu linii, na których jest postać prosta i zanegowana jednej zmiennej wejściowej, zgodnie z prawem Boole'a: xx = O. 528 9.1. UKŁAD Y PROGRAMOWALNE Połączenia punktowe na rysunku 9.2 nie oznaczają bynajmniej bezpozwierania elektrycznego. Bramki AND i OR są bowiem realizowane bezpośrednio w matrycy, jak ilustruje przykład bipolarnego układu FPLA, pokazany na rys. 9.3. Zastosowano tu łączniki bezpiecznikowe, połączone szeregowo z diodami, tworzącymi diodowe bramki AND (por. rys. 7.la). Aby, na przykład, na wejściu inwertera BI utworzyć iloczyn x 1x 2 x3 , to należy przepalić średniego Rys. 9.2 Zasada budowy układu FPLA u.., ~ ' ~ .~ > x, ~ x, ~ 8 1\ u " y, Yt y, Rys. 9.3 529 Prqkład bipolarnego ukladu FPLA z lącznikami bezpiecznikowymi 9 PflOGRAMOWALNE I SPECJALl'ZOWAN E U KŁAOV CVFflOWE wszystkie bezpieczniki dołączone do linii wejściowej inwertera BI , oprócz trzech zaznaczonych kółeczkami. Na wyjściach inwerterów z pierwszej matrycy otrzymuje się zatem funkcje NAND. Druga matryca jest realizowana identycznie jak pierwsza, z inwerterami na wyjściach, tworząc drugą matrycę NAND. Łączna struktura NAND- NAND jest równoważna strukturze AND-OR. Można zauważyć, że gdyby w tym przykładzie zastosowano antybezpieczniki (początkowo rozwarte), to na leżałoby je zewrzeć tylko w trzech zaznaczonych punktach. W układach PLO często stosuje się na wyjściach dodatkowe bramki XOR, które umożliwiają programowaną negację (lub nie) sygnałów wyjścio­ wych, zgodnie z wzorami (p. tabl. 4.3): X EB I = i . Xe o = x. Bufory wyjściowe są zazwyczaj trójstanowe (p. 7.2.3), z programowalnym wejściem zezwolenia/blokady. Przy zablokowanym wyjściu trójstanowym końcówka wyjściowa może być wykorzystana jako dodatkowe wejście, zwiększając możliwości logiczne układu. Uproszczoną budowę logiczną przykładowego bipolarnego układu FPLA typu PLHS153 (Philips) pokarano na rys. 9.4. Ma on 8 wejść / 0 .:,.. / 7 i 10 wyjść/wejść B0 .:,.. 8 9 . Kaida z 32 bramek AND umożliwia tworzenie termu Do o, o<>-;--CL:t====t===t==t 1 1,~-·==·········==·······-=t=·-==t=· ····-=1' ·--·· '§) ~~­ ~ ,, ' Xo R)'s. 9.4 Uproszczony schemat 530 ' >tll>f>-- - - --1-!-o Bo lołie>ny układu FPLA typu PLHSI S3 (Philips) 9.1. UKŁADY PROGRAMOWALNE o najwyżej 18 literałach (zmiennych logicznych w postaci prostej i zanegowanej). Analogicznie każda z I Obramek OR umożliwia sumowanie do 32 termów. Układ umożliwia również programowanie negacji sygnałów wyjściowych bramkami XOR i programowalne sterowanie wyjściowymi buforami trójstanowymi. Wprowadzenie do matrycy AN D sygnałów z końcówek wyjścia/wejścia umożliwia zwiększenie liczby aktywnych wejść kosztem liczby wyjść. Na przykład, wykorzystując tylko jedno wyjście, można zrealizować funkcję wyrażaną przez sumę do 32 termów o 8 + 9 = 17 literałach każdy. Zaletą układów FPLA jest możliwość wsp6ldzielenia tych samych termów między różne bram.ki OR. Złożonymi układami o architekturze FPLA są układy z seri.i GAL6000 firmy Lattice, wykonane w technologii CMOS z programowalnymi komórkami EEPROM [4). W praktyce struktury FPLA często wykorzystuje się do realizacji złożonych konwerterów kodu. W układach sterowników komputerowych struktura FPLA służy do przetwarzania stosunkowo krótkich słów operacyjnych na dłuższe słowa adresowe pamięci mikroprogramów. W mikroprocesorach stosuje się w tym celu struktury PLA, czyli struktury programowane maskowo przez wytwórcę a nie przez użytkowników. W praktyce układy scalone FPLA często określa się również jako układy PLA, pomijając literę F. Układy PROM 9.1.1.2 Jeśli w układzie FPLA matrycę AND wykonać jako nieprogramowalną, to układ FPLA przekształca się w układ pamięci nieulotnej (PROM, EPROM, EEPROM, FLASH), pod warunkiem że zbiór bramek AND obejmuje wszystkie możliwe min termy Gest ich 2" przy 11 zmiennych wejściowych - w tym przypadku z wejść adresowych) i wyjścia nie są używane jako wejścia. Przy zastosowaniu układów PROM jako uniwersalnych układów kombinacyjnych (p. 8.4.2.1), uzyskuje się łatwy wybór implikantów do realizacji dowolnej funkcji przełączają­ cej o liczbie zmiennych nie większej od liczby wejść adresowych. Wadą układów jest podwajanie pojemności pamięci przy każdorazowym wzroście liczby zmiennych o jeden. Ogranicza to takie zastosowania pamięci stałych do liczby zmiennych równej 10-14. Układy Jeśli w układzie PAL/ GAL FPLA matrycę 9.1 .1 .3 AND pozostawić jako programowalną, a matto otrzymuje się popularną strukturę logiczną PLD określaną jako PAL (Programmable Array Logic). Pierwsze układy PAL zostały opracowane w roku 1978 w firmie Monolitlric Memories, przejętej następnie przez firmę AMD. Układy PAL były pierwotnie wytwarzane rycę OR wykonać jako nieprogramowalną, 531 9. PROGRAMOWALNE I SPECJALIZOWANE UKŁAOY CYFROWE jako układy bipolarne, kompatybilne z układami TTL i programowalne jednokrotnie. Obecnie są stosowane niemal wyłącznie podobne układy wytwarzane w technologii CMOS, spopularyzowane w latach osiemdziesiątych przez firmę Lactice Semiconductor Corporation (adres w Internecie http://www.latticesemi.com) pod nazwą GAL(Generic Array Logic). Zapewniają one niższą moc strat, możliwość wielokrotnego programowania oraz stuprocentowe testowanie wytwarzanych układów. Tej ostatniej cechy nie mogą mieć układy programowalne jednokrotnie, w których zawsze występuje nieco ukła­ dów niesprawnych fabrycznie (zazwyczaj 2- 5%). Układy PAL/GAL nie mają wady układów PLO typu PROM, w których matryca AND musi pokrywać wszystkie możliwe mintermy dla danej liczby zmiennych wejściowych. Można wybrać i zaprogramować - podobnie jak w układach FPLA - tylko potrzebne termy. Ponadto można zastosować metody minimalizacyjne do dalszego ograniczenia Liczby termów. Ponieważ jednak matryca OR jest nieprogramowalna, więc tylko ograniczona l.iczba termów (typowo 8 lub IO} może być doprowadzona do wejść jednej bramki OR. Jeden term może być doprowadzony do wejścia tylko jednej bramki OR. Jeśli ten sam term jest potrzebny do wejść dwu lub więcej bramek OR, to trzeba go tworzyć z osobna dla każdej bramki OR. Można jednak ominąć to ograniczenie korzystając ze struktury dwupoziomowej (opisanej wcześniej na przykładzie układu PLHS153) przy jednoczesnym zwiększeniu liczby dostępnych termów. W technologii CMOS matrycę AND tworzy się w postaci struktur tranzystorowych EPROM, EEPROM lub FLASH. Spośród dwu ostatnich, u~ - Mikcje DANO Rys. 9.5 Zasada budowy programowalnej ma trycy AND z komórkami pamięci EEPROM (/ - wejścia logiczne, s - stany logiczne komó rek EEPROM, P - wejścia programowania) 532 9.1. UICt.ADV PROGRAMOWALNE kasowanych elektrycznie, mniejsze rozmiary komórki, lepszą niezawodność i większą liczbę cykJi kasowania/programowania zapewniają komórki pam ięci błyskowej FLASH (p. 8.4.2.5). Rysunek 9.5 ilustruje zastosowanie komórek EEPROM (por. rys. 8.71). Bramki AND są tworzone przez struktury zwarciowe DANO (por. rys. 7.23a). Tranzystor PMOS stanowi obciążenie aktywne dla otwartych drenów tranzystorów NMOS. Najprostszym układem GA L, wytwarzanym w technologii CMOS/ EEPROM, jest typ GALI 6V8 (Lattice) o uproszczonym schemacie funkcjonalnym pokazanym na rys. 9.6a. Zawiera on 8 dedykowanych wejść I , 8 końcówek o I/CU( 8 lf OtMC <( c ł~ 8 ~" ,! g (13. 18) 8 e ~ 12 OLMC Q. OOĘ 11 c b PLCC ' ' ' . . .• DIP """I , \9 GAL16V8 Widok z góty \.J „ ""' ''°° ,, ""' •.O.O ' °" ''°" •.O.O H u. I.O.O '' LO.O GAL16V8 tS I.O.O """ •.O.O .L. Rys. 9.6 Układ •• ""' u I.OE GALl6V8 (Latrice Semiconductor Cor/)Qratio11) a) uptM:ttz()ny sic::htma1fun k<:j<>nalny, J;) r()lkl:W k<>ńcó'A•tk w <>budowie Pl.CC.c) roU:lad lc<>ńcÓ'A'tk w <>bl.tdowi~ DIP 533 9. PROGRAMOWALNE I SPECJALIZOWANE współdzielonych CYFROWE Q - wyjście przerzutnika) i dwie dwufunkcyjne końcówki wejściowe: l / CLK (wejście/wejście zegara) i I/ OE (wejście/wejście zezwolenia buforów trójstanowych - Output Enable). Matryca programowalna zawiera 64 bramki AND o 32 wejściach. Układ zawiera 8 uniwersalnych makrokomórek OLMC (Output Logic Macrocel(), które umożliwiają zaprogramowanie układu w trzech trybach pracy: w dwu trybach kombinacyjnych - prostym i złożonym, oraz w trybie sekwencyjnym - rejestrowym. Każda makrokomórka zawiera 8-wejściową bramkę OR, bramkę XOR do programowalnej negacji sygnałów wyjściowych oraz przerzutnik D. Ponieważ wejścia zegarowe wszystkich 8 przerzutników są połączone razem z wejściem l / CLK, więc w układzie tym nie można realizować układów szeregowych („asynchronicznych"), w których wejścia zegarowe są łączone z wyjściami poprzedzającymi przerzutników w strukturze łańcuchowej. Oznaczenia końcówek układu w obudowach PLCC i DIP pokazane są na rys. 9.6bc. Warto zauważyć, że w obydwu obudowach wyprowadzenia układu są na końcówkach o tych samych numerach. Schemat logiczny układu GAL16V8 pracującego w trybie prostym przedstawiono na rys. 9.7a, a podstawowe możliwości konfiguracyjne makrokomórki wyjściowej pokazane są na rys. 9.7bcd. W tym trybie końcówki I i 11 są zaprogramowane jako wejścia do matrycy AND. Wejścia XOR w komórkach mogą być zaprogramowane dwojako: albo jako połączone z masą (stan O), albo połączone z Ucc (stan I), umożliwiając przesłanie sygnału wyjściowego z bramki OR bez negacji lub z negacją. Bufory trójstanowe na końcówkach pracujących jako wyjścia (O) są odblokowane (rys. 9.7b), a na końcówkach pracujących jako wejścia (I) są zablokowane (rys. 9.7d). W 8 istniejących makrokomórkach 6 końcówek może być zaprogramowane jako wejścia, to znaczy za wyjątkiem końcówek 15 i 16. Łączna liczba wejść może więc osiągnąć 16: 8 „normalnych" + 2 (końcówki I i li) +6(końcówki 1/0). Ponieważ bramki OR mają w tym trybie po 8 wejść, więc na wyjściach 15 i 16 można uzyskać realizację dwu funkcji przełączających o 8 iloczynach 16 zmiennych. Zwiększenie liczby termów można uzyskać wykorzystując kolejno sprzężenia zwrotne z 6 makrokomórek: z pierwszej 8, z pozostałych pięciu po 7 i z wyjściowej 7, czyli razem 50 ilo<..-zynów IO zmiennych na jednym lub obydwu wyjściach (15, 16). Oczywiście struktura wielopoziomowa pociąga za sobą proporcjonalne zwiększenie czasu propagacji układu. Trzeba podkreślić, że przedstawione możliwości programistyczne nie oznaczają, że projektant musi osobiście wyznaczać tryb pracy i punkty programowania ukladu. Czynności te są realizowane przez specjalistyczne oprogramowanie projektowe (kompilator logiczny PLO), na podstawie sformułowanego przez projektanta opisu funkcjonalnego układu cyfrowego (p. 9.1.3). Tryb prosty jest wybierany automatycznie, jeśli na wyjściach mają być realizowane fun kcje kombinacyjne i nie jest wymagane programowane lub zewnętrzne sterowanie buforami trójstanowymi. 534 (J - wejście, UKŁADY O- wyjście, 9. 1. UKŁADY PROGRAMOWALNE o I/O b c .-----------u--· I I >-::l)---!,--ł":>o-0110 I I I • XOR I I ~ -------- -----: --------------. ·pyllO I ~-------------· Rys. 9.7 Układ GAL16V8 (latrie< Semiconductor Corporation) skonfiguro\\'any w trybie prostym a) schema1 logicmy, b) koftcówka wyjjcto11o·a O a Spt?(:imicm rwrocnym (opróct k~-c,J; IS i 16\. c) kofto6.,.•ka wyjśc:io•'a O bez Sprtłten11 z.wrotnego (konicówk:i 15 i 16). d> końcó-wt'ka ""'CJŚaO"'·• I (wu.y~llde :i W)'J41l:icm l: ońa)wc.\: IS i 16) 535 9. PROGRAM OWALNE I SPECJALIZOWANE UKLA.OY CYFROWE o - l o --- • • 12 16 2IO :t< „ ""' ,_,. ------- - 2 --- OLMC h - 19 f:li ---- =: ------ tttlt!ttt OLMC n 18 3 -- ·-· ----- -· - : : : : ~:::: -~ ~ ~-........ ~ 9 b ........ t: >.... ""] 12 OLMC li r-- - - - - - - -- ---, I I >---f'--l >o-.-a '° XOR --------------' c ~-----! 1 XOR Cl-al/O : '----- - -- - -- - -_, Rys. 9.8 Uklad GAL16V8 (Lau.ice Semiconductor Corporation) skonfigurowany w lrybie złożo nym a) uproszczoa.y sc.:hcmat logia;ny. b) 12 i 19) 536 końcówka dwu1dcnmk.owa I/() (końcówki 13- 18).,c) k.ońo(>wk :111>·yjkiow11 O (1ylko 9.1. UKŁADY PROGRAMOWALNE Jeśli takie sterowanie jest potrzebne, to układ pracuje w trybie złożonym, zilustrowanym na rys. 9.8 i odpowiadającym popularnym układom PAL t6L8 i 16P8. K ońcówki I i Il są dedykowanymi wejściami (I), można wykorzystać najwyżej 6 końcówek jako I/ O (13 do 18), natomiast końcówki 12 i 19 są wyłącznie wyjściami (0). Jeśli projekt wymaga użycia przerzutników, to układ pracuje w trybie rejestrowym (rys. 9.9a}. Każda makrokomórka OLMC może wykorzystywać przerzutnik O w sposób pokazany na rys. 9.9b, przy czym wejście zegarowe i wejście zezwolenia buforów trójstanowych są wspólne dla wszystkich komórek (wydzielone końcówki I i Il), a bramka OR ma 8 wejść iloczynowych. Dowolna makrokomórka OLMC (nawet wszystkie 8) może też być zaprogramowana jako kombinacyjna z końcówką 1/ 0 (rys. 9.9c), przy czym bramka OR ma wtedy 7 wejść iloczynowych. Wszystkie przerzutniki są automatycznie ustawiane w stan O (Q = L) podczas włączania zasilania układu. Podczas programowania można wpisać do układu 64-bitowe słowo „elektronicznego podpisu użytkownika"' UES (User Electronic Sig11a1ure), które umożliwia zapis i odczyt informacji identyfikującej dany uklad lub system. Uklad zawiera również „komórkę bezpieczeństwa" (security cell) w celu zabezpieczenia przed odczytem i kradzież.1 zaprogramowanej konfiguracji układowej. Komórkę tę można ustawić programatorem w stan aktywny, po pomyślnym zaprogramowaniu i sprawdzeniu poprawności dzialania ukladu. Po tak im ustawieniu nie jest już możliwe odczytanie i weryfikacja zaprogramowanej konfiguracji połączeń w programatorze, ale można odczytać „podpis elektroniczny". Komórkę bezpieczeństwa można wyzerować tylko przez całkowite skasowanie zawartości układu. Układ GALl6V8 umożliwia emulację 21 typów układów PAL. Maksymalny czas propagacji wynosi, zależnie od odmiany, od 5 do 25 ns, a maksymalna moc strat od 275 mW (odmiana „ćwierć mocy" - Q1wrter Power) do 575 mW. Dla wszystkich układów GAL producent gwarantuje co najmniej 100 cykli programowania/kasowania i pamiętanie zaprogramowanej konfiguracji przez co najmniej 20 łat. Omawiany uklad GALl6V8 jest wytwarzany w kilku odmianach. Przykładowo, typ GALl6V8Z jest wyposażony na wejściach w układy detekcorów zboczy (ITD - lnput 11-ansicion Detection), które przy braku zmian stanów na wejściach automatycznie wprowadzają układ w stan spoczynkowy (standby mode), przy którym prąd zasilania jest ograniczony do zaledwie 100 µA. Stąd pochodzi nazwa tej odmiany: „zerowa moc'" (Zero Power). Czas czekania od ostatniego zbocza na wejściach do wprowadzenia stanu spoczynkowego wynosi od 60 do 150 ns. Przy pojawieniu się jakiejkolwiek zmiany na wejściach układ automatycznie przechodzi w tryb roboczy z opóźnieniem od 6 do 15 ns. 537 9. PROGRAMOWALNE I SPECJALIZOWANE UKŁADY CYFROWE o O ' ł l211:Z02•NPTO OLMC 19 1-C::.0,-<:> 19 OLMC 12 1-C>-,r<> 12 b CU( f--+1:>o--1:l 110 I I I I 3::1++;-~~~~~-' OE : ~- ------- ---- --- c fi-----idy· I I „ __ ___ - - - - - - - - · Rys. 9.9 Układ OALl6V8 (Lattice Semiconductor Corporation) skonfigurowany w trybie rejestrowym •} uprouczon.y khmut loak'zay, b) kOl\cówk• rtjełttowa O (kolkówti 12- 19). c) koftc:Owk.a ltombiMC'Jjalia I/O (ltołocóml2-19J Z innych układów GA L warto wymienić typy GAL20XV!O i GAL22V IO. Pierwszy z nich ma I O dedykowanych wejść I, IO końcówek trójfunkcyjnych 1/ 0 /Q i dwie końcówki wejściowe dwufunkcyjne, takie same jak w układzie GA LI 6V8. Jest on szczególnie przydatny d o budowy specjalizowanych liczników, dekoderów i układów arytmetycznych, dzięki wprowadzeniu do makro- 538 9.1. UKt.AOY PROGRAMOWALNE a OE r--------------„ I I I I , _ _____ _________ 1 !--+++-- - -----' • CLK b OE r--------------„ )----+f'>o-..-01i0 ,_______________, Rys. 9.10 Makrokomórka z Corporation) bramką XOR układu GAL20XVIO (Lattice Semiconductor a) koiioówka rej1:3trowa O, b) ko6cówta kombinacyjna I/O komórek bramki XOR o obydwu wejściach doprowadzonych do matrycy AND (rys. 9.10). Bramka XOR na wejściu przerzutnika D umożliwia przekształcenie go w przerzutnik T (por. rys. 4.5la). Bardzo popularnym „koniem roboczym" PLD jest uniwersalny układ GAL22VIO. Ma on zróżnicowaną liczbę wejść iloczynowych w bramkach OR makrokomórek OLMC. Odpowiednie pary makrokomórek mają po 8, 10, 12, 14 i 16 wejść. Schemat logiczny makrokomórki przedstawiono na rys. 9.11. Jak AA SP SO $ 1 $2 Rys. 9.1 J Uniwersalna makrokomórka O LMC układu GAL22VJO (Latrke Semironducror Corporarion) 539 9. PROGR.AMOWAlNE I SPECJ.AllZOWAHE VKlAOY CYFROWE widać, może być ona zaprogramowana w trybie kombinacyjnym lub rejestrowym. Tryb i polaryzacja sygnału wyjściowego jest ustalana przez multiplekser „4 na I", zależnie od zaprogramowanych wartości bitów SO i SI. Sygnał sprzężenia zwrotnego może być pobierany albo z wyjścia przerzutnika albo z końcówki wyjściowej, zależnie od stanu bitu S2. Przerzutnik D ma dwa dodatkowe wejścia do asynchronicznego zerowania (A R) i do synchronicznego ustawiania (SP). Wejścia te są połączone równoległe we wszystk ich IO przerzutnikach układu, umożliwiając jednoczesne zerowanie lub ustawianie całego rejestru wyjściowego. Odpowiednie dwie linie sterujące są wprowadzone do matrycy AND. Obydwa wymienione układy GAL20XVIO i GAL22VIO są umieszc-ane w 28-końcówkowej obudowie PLCC lub 24-końcówkowej obudowie DIP. Podobnie jak poprzednio opisane uklady GAL I 6V8, mają one możliwość zapisu i odczytu „podpisu elektronicznego" oraz są wyposażone w „komórkę bezpieczeństwa". Najszybsza odmiana układu GAL22VIO ma czas propagacji 5 ns i częstot liwość pracy sięgającą 200 MHz. Moc strat przy 15 MHz wynosi 450 mW (warto wspomnieć, że analogiczny układ P5Z22VIO firmy Philips z serii ZeroPower wymaga tylko 15 mW przy 15 MHz i zaledwie 140 mW przy 200 MHz). U kład GAL22L V10 o obniżonym napięciu zasilania (3.3 V) osi ąga 4 ns i 250 MHz. U kład GAL22V!Ojest również wytwarzany w wersji programowalnej „w systemie" (ISP - In-System Programmable) jako typ ispGAL22V IO, wylącznie w 28-końcówkowej obudowie PLCC. Cztery nie używane poprzednio końcówki tej obudowy są wykorzystane do czteroprzewodowej, szeregowej transmisji danych w celu programowania układu w docelowym urządzeniu, bez potrzeby wyjmowania programowanego ukladu i stosowania odrębnego programatora. Oznacza to dużą wygodę przy projektowaniu urządzenia i umożliwia obniżenie jego kosztów. Polepsza się również jego niezawodność, gdyż układ może być przylutowany na stałe w urządzeniu, czyli nie występują problemy niezawodnoś­ ciowe związane z połączeniami stykowymi w gniazdach stykowych. Istnieją dwa zasadnicze sposoby programowania układów ISP. Pierwszy z nich polega na użyciu specjalnego kabla, łączącego cztery końcówki programowanego układu (wyprowadzone na specjalne miniaturowe złącze stykowe na płytce drukowanej urządzenia) z portem równoleglym standardowego komputera PC, w którym wykonuje się odpowiedni program (rys. 9.12). Potrzebne do tego celu oprogramowanie użytkowe jest dostępne w firmie Lauice. Drugi sposób może być wykorzystany w urządzeniach, które już zawierają mikroprocesor. Przez dodanie odpowiednich procedur do programu mikroprocesora można go wykorzystać tak7,e do programowania układu (układów) ISP. Przykłady takich procedur w języku źródłowym (C) są również dostępne w firmie La11ice. 540 9.1 UKLAOY PAOGAAMOWALHE Program 1te1ujący olł)()AL Karta drukowana ........ ,...,... - u~enia użytkowego • •sutwhm Rys. 9.12 Programowanie układu .... .._ ispOAL pn.ez od rębny komputer (4) Do celów programowania można również łączyć kaskadowo układy ISP w sposób pokazany na rys. 9.13. W takiej konfiguracji potrzebne jest tyl ko jedno czteroprzewodowc łącze do procesora programującego. iłOGĄI.. Rys. 9.JJ Kaskadowe ispGAL ~'°"'' ' GM ispOAL do programowania (4) łączenie układów Do rodziny układów GAL firmy Latrice należą również bardziej złożone w szczególności układy z serii GAL6000. Są to układy o architekturze układy, FPLA. Złożone programowalne struktury logiczne (CPLD) układy CPLD mają większą złożoność od 1000 do 15000 bramek, a nawet więcej. Drugą charakterystyczną cechą układów CPLD jest inna architektura. W ogólnej budowie układu CP LD można wyróżnić pewną liczbę blokówfimkcjonalnych BF o strukturze podobnej do struktur PAL/ GAL, łączonych za pośred nictwem programowalnej matrycy połączeń PM P (rys. 9.14). Matryca ta ma zazwyczaj postać zespołu multiplekserów, których celem jest skierowanie sygnałów wejś­ ciowych na określone programowo wyjścia. Każdy blok BF zawiera pewną liczbę (zazwyczaj krotność liczby 16) programowa.lnych makrokomórek, które W porównaniu z układami 9.1.2 PLO, logiczną, gdyż zawierają przeciętnie 541 9. PROGRAMOWALNE I SPECJALIZOWANE UKLAOY CVFROWE Rys. 9.14 Zasada budowy ukladu CPLD [S] realizują funkcje logicroe układu. W niektórych układach są także wytwarzane makrokomórki zagrzebane, których wyjścia nie są dołączone do końcówek układu, lecz wprowadzone jako „sprzężenia zwrotne" do matrycy PMP. Bloki wejść/wyjść I/ O (lnput/Output) zawierają zespoły komórek wyjściowych (zawierających bufory trójstanowe) i buforów wejściowych oraz- w niektórych układach - programowalne magistrale wyjściowe, umożliwiające łatwe połączenie jego makrokomórek z różnymi końcówkami układu (w ograniczonym zakresie). Istnieje wiele odmian układów C PLD, wytwarzanych przez różnych producentów. Ograniczone rozmiary niniejszej książki nie pozwalają omówić ich szczegółowo. Można przykładowo wymienić układy z rodzin XC7300 i XC9500 (Xilinx), pLSI/ ispLSI 1000/2000/3000 (Lattice), Flash370i (Cypress), CoolRunner (X PLA) PZ3000/ PZ5000 (Philips), MACH (Vantis - AMD), MAX i FLEX (Altera), oraz ATF i ATV (Almei). Różnią się one architekturą, złożonością, technologią i parametrami elektrycznymi. W obrębie każdej rodziny układy są wykonywane w seriach różniących się szybkością działania (na przykład o czasie propagacji 5, I O i I 5 os), dopuszczalnymi temperaturami pracy i odpowiednio różnymi cenami. Układy CPLD są wytwar.tane niemal wyłącznie w technologii CMOS. Do programowania była początkowo stosowana technologia pamięci stałych EPROM. Obecnie stosuje się znacznie wygodniejsze technologie pamięci z reprogramowaniem elektrycznym, czyli pamięci EEPROM i pamięci błyskowe (Flash). W tej kategorii najwygodniejsze w praktyce są układy programowalne „w systemie", podobnie jak omówiony wcześniej układ ispGA L22V 10. Porównując różne rodziny układów CPLD trzeba zwracać uwagę na typowe parametry, takie jak szybkość działania i moc strat, a także na liczbę cykli rcprogramowania, jeśli układy mają być wielokrotnie programowalne. Pn;y porównywaniu architektur układów CPLD trzeba zwrócić szczególną uwagę na sposób reali1.acji sumy większej liczby termów w makrokomórkach oraz na to, jakie są możliwości wykorzystania tych samych termów w różnych makrokomórkach (współdzielenie sharing). 542 9.1. UKŁADY PROGRAMOWALNE Omówimy krótko układy z rodziny XC9500 (Xilinx, www.xilinx.com) [5, 6). Są to układy wytwarzane w technologii CMOS 0.6 µm, programowalne elektrycznie „w systemie" (ISP), o złożoności od 800 do 12800 bramek lub 36 do 576 makrokomórek. Do programowania zostały zastosowane komórki pamięci błyskowej (Flash), o maksymalnej liczbie cykli reprogramowania szacowanej na co najmniej 10000. Maksymalny czas propagacji między koócówkami wynosi, zależnie od typu układu, od 5 ns do 15 ns, a maksymalna częstotliwość pracy systemu wynosi odpowiednio od 125 do 95 MHz. Układy są zasilane napięciem + 5 V i, jeśli wymagane jest dopasowanie wyjść do standardu CMOS 3.3 V, dodatkowo napięciem +3.3 V. Sygnały wejściowe mogą być w standardzie TTL i CMOS 5 V i 3.3 V. Wyjścia układów umożliwiają wprowadzenie prądu obciążenia I OL o wartości sięgającej 24 mA. Architekturę układów CPLD z serii XC9500 ilustruje rys. 9.15 [5]. Każdy układ zawiera pewną liczbę 11 bloków funkcjonalnych (BF) i bloków wejś­ cia/wyjścia (BIO) oraz programowalną matrycę połączeń (PMP) o firmowej nazwie Fast CON N ECT Switch Matrix. Matryca PMP umożliwia różnorodne łączenie wyjść bloków BF i BIO z wejściami bloków BF. Pogrubione strzałki wskazują na bezpośrednie połączenia bloków BF z blokami BIO. Sterowni k JTAG służy do testowania układu, a sterownik ISP do programowania matrycy połączeń i bloków funkcjonalnych. Oprócz uniwersalnych końcówek wejś- ·~ [ 1 JTAG • 1 $1 ~'1"1ik l I/O I/O l o: "e, < ''""'' - I/O (610) I/O llO IJOJGTS i 1 ł• ~ ~ ~ I 2 lub4, l J Rys. 9./5 Architektura 543 36 • {i 3 układów - I 36 ~ ' ""'"' l/OIGCK tlOIGSR Sterownik ISP JTAG 38 ~ 61'1 Makrok.omórló 1 do 18 li I BFZ ~..a.krokom~i 1do 18 I li l BFn rr Makrokomórł<.i 1 dO 18 CPLD z serii 9500 (Xi/inx) rr 9. PROGRAMOWALNE I SPECJALIZOWANE UKŁADY CYFROWE cia/wyjścia (1/0) występują również końcówki trójfunkcyjne: 1/0/GCK (GCK - Global Clock- Globalny Zegar), 1/0 / GSR (GSR - Global Set/ Reset- Globalny Set/Reset) i I/O/GTS (GTS - Global 11tree-State Control - Globalne sterowanie wyjść trójstanowych). Ogólną budowę bloku funkcjonalnego BF przedstawiono na rys. 9.16. Do programowalnej matrycy AND doprowadzone jest 36 sygnałów wejściowych, czyli 72 sygnały w postaci prostej i zanegowanej. Termy zaprogramowane w matrycy można doprowadzić do 18 makrokomórek bloku BF. Ponieważ blok BF ma 36 wejść i 18 wyjść, więc nosi on również nazwę „PAL-owską": 36V 18. matryca AND . T 1 6 < Progt6mowa1na 18 Z matrycy PMP 36 r ~8 -µ.:::::: 18 Oo matrycy PMP OUT Oo bloków PTOE ) llO MakrokOmórn 1e f Globalny Semtsłt ;f Globalne $)'gnały zegarowe Rys. 9.16 Blok fun kcjonalny (BF) układów CPLO z serii 9500 (Xi/inx) Na rysunku 9.17 przedstawiono budowę logiczną makrokomórki. Głów­ ne wejścia to pięć bramek AND, które realizują pięć zaprogramowanych ter mów w matrycy AND. W jednym bloku BF można zatem wytworzyć do 90 (5 x 18) różnych termów. A lokator termów(AI) zawiera 8 programowalnych demultiplekserów DX i 3 bramki O R, które umożliwiają wykorzystanie pięciu „własnych" termów makrokomórki, przesianie ich do sąsiednich makrokomórek lub wykorzystanie termów wytworzonych w sąsiednich makrokomórkach. Przerzutnik makrokomórki może być skonfigurowany jako typ D lub T z użyciem bramki XOR (p. rys. 4.51). Można go również ominąć w zastosowaniach kombinacyjnych. Wybór żródel sygnałów zapewniają programowalne multipleksery MUX. Sygnały S i R są asynchroniczne i mogą być pobierane z matrycy AND jako „termowe" lub z szyny globalnej dla całego uk ładu. Sygnał zegarowy może być również wytwarany przez matrycę AND jako „termowy" (do realizacji układów szeregowych - „asynchronicznych") lub pobierany z jednej z trzech globalnych 544 9.1. UKŁADY PROGRAMOWALNE ..... Glob:llne -·~ :eg~rowt / Globalny SeuFłese1'- "lt. 3 MUX ox MUX do ""' Zogar "tormowy" Reset "tetn"IOWY' t zniuleJ makrokom6tł6 Oo ŃZSlElf makrokornónO Rys. 9.17 Budowa logi01.na makrokomórki układów CPLD z serii 9500 (Xili11x) szyn zegarowych. Podczas włączania zasilania stan przerzutnika jest wymuszany w sposób zdefiniowany przez użytkownika lub domyślnie jest ustalany jako O. Sygnał zezwolenia bufora trójstanowego może być wytwarzany w matrycy AND jako odpowiednio dobrany term (PTOE) lub można do tego celu wybrać w bloku BIO jeden z dostępnych sygnałów globalnych GTS. Alokator AT umożliwia dysponowanie zarówno „własnymi" termami, jak też termami „ukradzionymi" z sąsiednich makrokomórek. Ilustrują to przykłady alokacji termów pokazane na rys. 9.18. Jak widać, już powyżej pięciu termów trzeba ,,zubażać" sąsiednie makrokomórki. Ponadto szeregowa struktura sumy oznacza zwiększenie opóźnień propagacji termów dodawanych szeregowo. Oznacza to, że różne termy mogą mieć różne opóźnienia, co może tworzyć nawet niebezpieczeństwo wystąpienia hazardu (p. 4.1.6). Jeśli w różnych sumach trzeba wykorzystać ten sam term, to trzeba go tworzyć oddzielnie dla każdej sumy (brak możliwości współdzielenia termów). Podane cechy stanowią pewne wady omawianej architektury. Nie należy ich jednak wyolbrzymiać, gdyż w praktyce przypadki występowania więcej niż pięciu termów są rzadkie, a dodatkowe opóźnienie propagacji termów z sąsiedniej makrokomórki n ie przekracza 1.5- 2 ns. 545 9. PROGRAMOWALHE I SPECJALIZOWANE UIClAOY CYFROWE Rys. 9.18 Przyk.lad wykorzystania alokator6w termów (Al) do zwięksuoia liczby termów na wyjściu jednej makrokomó rki kosztem sąsiednich makrokomó rek w układach CPLO z serii 9500 (Xilinx) Sposób sterowania matrycą połączeń PMP ilustruje rys. 9.19. Wszystkie wyjścia bloków BIO (odpowiadające końcówkom wejściowym I) i wszystkie wyjścia bloków BF są doprowadzone do kolumn matrycy PM P. Każdy z tych sygnałów może być wybrany d o tworzenia odpowiednich termów w matrycach AND bloków BF, przy uwzględnieniu ograniczenia wynikającego z maksymalnej liczby 36 wejść matrycy AND w jednym bloku BF. Sygnały wewnętrzne, pochodzące z V'tyjść BF, mogą być w matrycy łączone do realizacji funkcji logicznej DAND, co zwiększa m ożliwości logiczne układu. Czynności te, podobnie jak wszystkie czynności związane z programowaniem połączeń układu, są wykonywane automatycznie przez oprogramowanie projektowe, bez konieczności zaangażowania projektanta w szczegóły łączeniowe i technologiczne. 546 9.1. UKŁADY PROGRAMOWALNE PMP 18 18 (36); (38): 1 '-----możliwe funkeje Rys. 9.19 DANO Współpraca wejścia/wyjścia matrycy połączeń (PMP) z blokami funkcjonalnymi (BF) i blokami (810) w ukladach CPLO z serii 95-00 (Xilinx) Czterokońcówkowy port JTAG i sterownik JT AG, zaznaczone na schemacie z rys. 9.15, umożliwiają wykonanie pełnego testowania układu po zaprogramowaniu, zgodnie z normą IEEE Boundary-Scan Standard 1149.1. SkrótJTAG pochodzi od nazwy grupy roboczej Joint Test Action Group w IEEE (illstitute of E/ectTica/ and E/ectronics Engineers w USA). Norma obejmuje specyfikacje elektryczne i zestaw instrukcji dla programów testujących. Dokład­ niejsze omówienie metod testowania układów z serii XC9500 na podstawie protokołu JTAG zawarte jest w notach aplikacyjnych [6]. Ten sam port JTAG służy do programowania układów. Sposób programowania „w systemie" jest praktycznie taki sam jak pokazany wcześniej na rys. 9.12. Można również programować układy w odrębnym programatorze i następnie montować je w urządzeniu docelowym. Trzecią możliwością jest użycie małego mikroprocesora łub scalonego mikrokontrolera w urządzeniu (na tej samej płycie drukowanej) do programowania układu CPLD. Taki mikroprocesor (mikrokontroler) może się komunikować z urządzeniami zewnętrznymi za pośrednictwem typowych łączy (np. RS232). Układy z serii XC9500 mogą być zabezpieczone programowo przeciw odczytowi mapy połączeń jak i przeciw niezamierzonemu programowaniu i kasowaniu. Wybrane łub wszystkie makrokomórki układu mogą być pro- 547 9. PROGRAMOWALNE I SPECJALIZOWANE UKŁADY CYFROWE gramowo usta wione w trybie obniżonej mocy, jeśli może być tolerowane czasów propagacj i w takich komórkach. Podobną architekturę makrokomórek mają układy CPLD z serii MAX7000 firmy Altera (www.altera.com). W matrycy AND mają one dodatkowo I 6 linii (kolumn), do których mogą być doprowadzone zanegowane termy z 16 makrokomórek w PBL (po jednym z każdej). Termy te są równolegle dostępne na wejściach AND wszystkich makrokomórek w PBL. Układy z serii MAX7000A są programowalne w systemie (ISP) i są zwiększenie a z matiycy PMP ...,..,...,.,. wejścia doPMP li:' i-i;;;51-o ~ :11--@l-o ·~ Matryca ANO 36 x20 łH•Vt-~ ----.n:---------· .--- ---------i Ml<2 i----1+1+~ MKI f----+H+. .--- I I ---Ts.---------' ----------: I MKO wspOldziel:;----rr--------_: termów I CR Rys. 9.20 Budowa logiczna układów CPLD z rodz.in pLSl/ispLSI 1000/2000/ 3000 (Larrice) a) budowa błoku runkcjonillDCgQ, b) magj111r3b wyjściowa w układ.ach i rodziny 2000 548 9.1. Ul(lAOY PROGRAMOWALNE szybkie (maksymalna częstotliwość liczników sięga 186 MHz), lecz mają dużą moc strat. Układy CPLD z rodzin pLSI/ispLSI 1000/ 2000/3000 (Lattice) charakteryzują się specyficzną budową bloków funkcjonalnych BF (rys. 9.20a). Matryca AND umożli wia zaprogramowanie 20 termów, które mogą być przyłączone do wejść 4 bramek OR i 4 bramek XOR w makrokomórkach. Wyjścia bramek OR są przyłączone do czterech kolumn małej matrycy, która umożliwia sumowanie termów z dwu lub więcej bramek OR. Oznacza to współdzielenie termów między komórkami. Jak pokazano na przykładzie z rys. 9.20a, do makrokomórki MKO jest doprowadzona suma 13 termów, do MK I - 4, do MK2 - 3 i do MK3 - 7. Największa liczba termów na wejściu jednej makrokomórki wynosi oczywiście 20, przy czym na wejściach pozostałych makrokomórek mogą być wtedy tylko podzbiory tych samych termów. Bramki XOR są w szczególności przydatne przy projektowaniu układów arytmetycznych i do zmiany rodzaju przerzutników z D na T (p. rys. 4.51). W innych zastosowaniach mogą być programowo pominięte i wtedy liczba wejść bramek OR zwiększa się o jeden. Osiem bloków BF tworzy „megablok". U kłady CPLD o większej złożoności zawierają odpowiednio większą, parzystą l iczbę megabloków. Wyjścia makrokomórek z poszczególnych blok ów mogą być w programowany sposób przyłączane do różnych szyn magistrali wyjściowej (Outp11t Ro11ting PooO. W układach z rodziny 2000 jedna taka magistrala jest przywiązana do każdych czterech bloków, czyli każdy megablok zawiera dwie magistrale (rys. 9.20b). Każda szyna magistrali jest trwale połączona z wejściem jednego bufora trójstanowego w komórce 1/0, czyli z określonym numerem końcówki w obudowie układu. Możliwe jest zatem elastyczne dowiązan ie wyjść makrokomórek do różnych końcówek I/ O w obrębie jednej magistrali. Można równ.ież połączyć wyjścia makrokomórek z końcówkami I/ O bezpośrednio, bez pośrednictwa magistrali. To zmniejsza opóźnienie propagacji, ale nie umożliwia swobodnej alokacji końcówek do makrokomórek. Każda końcówka 1/ 0 jest połączona z matrycą PMP, umożliwiając speln.ienie funkcję wejścia (przy zablokowanym buforze trójstanowym) lub sprzężenia zwrotnego (przy buforze odblokowanym). Układy CPLD firmy Lattice są wytwarzane o różnej złożoności (l iczbie megabloków), w technologii CMOS EEPROM. Układy ispLSI mogą być programowalne „w systemie". Gwarantowana liczba cykli reprogramowania wynosi 100 (pLSI) i 1000 (ispLSI). Inny sposób alokacji termów jest realizowany w układach CPLD z rodziny Flash370/ 370i firmy Cypress. Układy te zawierają bloki funkcjonalne o 16 makrokomórkach (rys. 9.21). Wejściowa matryca AND ma wymiar72 x 86, czyli umożliwia zaprogramowanie do 86 termów do 36 zmiennych. Wszystkie linie termów są doprowadzone do alokatora termów w postaci czterech minimatryc OR. Do każdej makrokomórki można przyłączyć bezpośrednio 549 9. PROGRAMOWALN E I SPECJALIZOWANE UK ŁADY CYFROWE p R Szyny :zegarowe Joe zPMP 2(4) M:ikrOkotnórt<.a (1 z t6 w 8F) 2 oe - ----- --- --- - - ---- ---- --------, r Komód<al/O -------1 ''' '' ' 12 6 ''' p 20 20 t--1--'' : '' ' 'O rI 20 ' '' ''' ''' ~ ~ ~ do PMP ~ ---- ~ 80 ' 20 • '~ I I doPMP ·-· c (clo m;,luQkomórlU 'r---- -.'' '"'20 '• C ........_ AlOka-~01 termów :: : --------J :zagn:oballt i> (4 trllnitn31iyoe OA) ' 1--- --· Rys. 9.21 Budowa logiczna bloku funkcjonalnego w układach CPLD z rodzfoy Flash370i (Cypress) sumę do 16 dowolnych termów z minimatrycy. Ponadto te same termy mogą być wspóldzielone między cztery sąsiednie makrokomórki przez odpowiednie zaprogramowanie polączeń w obrębie każdej minimatrycy. Warto również zauważyć, ie sprzężenia zwrotne do PMP są wykonywane przed komórkami I/O, a z końcówek I/ O są oddzielnie doprowadzone do PMP połączen ia wejściowe. Przerzutnik w makrokomórce może być zaprogramowany jako typ D, T lub typ zatrzaskowy. Wadami układów z rodziny 370i są niewielka liczba cykli reprogramowania (100) i relatywnie duża moc strat. Nowatorską architekturę bloków funkcjonalnych i znacznie obniżoną moc strat (w porównaniu z innymi ukladam i CPLD) mają układy z rodziny Coo/Rwmer PZ3000/ SOOO firmy Philips (www.coolpld.com), wytwarzane w technologii CMOS. 0.35 µm i 0.5 µm ze strukturam i EEPROM. Podstawowa struktura tych układów jest taka sama jak na rys. 9.14. Każdy blok funkcjonalny (rys. 9.22a) zawiera 16 makrokomórek i ma 36 wejść z matrycy PMP (nazywanej tu jako Z ero-Power Interconnect Array - ZIA). lstotną nowością jest użycie oprócz „PAL-owskiej" matrycy AND dwu dodatkowych matryc AN D i O R, które razem tworzą znaną strukturę PLA (por. rys. 9.2-9.4). Dlatego układy o tej architekturze noszą również firmową nazwę XP LA (eX tended Programmable Logic Array). Na wejściu każdej makrokomórk i (rys. 9.22b)jest bramka OR, do której można doprowadzić 5 termów z matrycy PAL oraz - w razie potrzeby - sumę do 32 termów ze struktury PLA. Termy doprowadzone do matrycy OR mogą być w niej współdzielone między różne makrokomórki. 550 9 .1. UKŁADY PROGRAMOWALNE a zPMP Matyca AND/OR 72x6 6 Sygnaly sterujące CTO • CTS Z~pól 16 MKO makrok.Omótek s Matryca ANO 72•00 16 I/O (PAL) 16 5 MK15 doPMP ------ ---Millrycti AND 72x32 32 Matryca OR 32 I( 16 16 doPMP PLA b do PMP (ZJ.A) ---~ I/O im CTO CT2 CT• CT3 • CTS o CT< o' Rys. 9.22 Architektura układów CPLD z rodziny XPLA PZ3000/5000 (Philips) a) budowa b111ku runkcjonalnego. b) 5e~mat łogiczny makrokomórki makrokomórki są doprowadzone 4 sygnały zegarowe i 6 sygnałów sterujących CTO-CT5. Sygnały CTO i CT! spełniają rolę sygnałów P i R w przerzutniku, a sygnały CT2- CT5 służą do selektywnego wyboru sterowania buforami trójstanowymi, co jest potrzebne w zastosowaniach z magistralą PCI. Dzięki wprowadzonej strukturze PLA, układy XPLA cechują się duią elastycznością projektową. Oznacza to, że wprowadzenie zmian w układzie o ustalonej alokacji sygnałów na końcówkach niemal na pewno (według firmy Philips na 99.998%) nie zmieni tej a lokacji, czyli w praktyce przykładowo nie trzeba będzie projektować nowej płyty z obwodami drukowanymi. Drugą istotną zaletą jest prostota modelu zachowania dynamicznego: opóźnienie Do 551 każdej 9. PROGRAMOWALNE I SPECJALIZOWANE U KŁADY CYFROWE propagacji i czas ustalenia w przerzutnikach mają tylko dwie wartości: z użyciem tylko mat rycy PAL i z użyciem matrycy PAL i PLA. Istotną zaletą układów XPLA jest równ ież bardzo mala moc strat, nowym rozwiązaniom układowym programowalnych matryc, wykorzystujących multipleksery CMOS. W układzie PZ5032 (32 makrokomórki, zasilanie 5 V} moc ta wynosi tylko 204 mW (typowo) przy 100 MHz, a w stanie statycznym zaledwie 0.25 mW. W ukladzie PZ3032, zasilanym obniżonym napięciem (3.3 V), otrzymuje się odpowiednio 73 mW i 0.03 mW. osiągnięta dzięki Układy XPLA są wytwarzane o złożoności od 32 do 128 makrokomórek (od 2 do 8 bloków funkcjonalnych) i o napięciu zasilania równym 5 V i 3.3 V. Gwarantowana liczba cykli programowania wynosi 1000. Układy te są dostępne w wersjach programowalnych zewnętrznie i „w systemie" (ISP). Tablica 9.1 zawiera porównawcze zestawienie kilku parametrów dla najprostszych odmian układów CPLD, omówionych wcześniej. Umożliwia ono PORÓWNANIE PODSTAWOWYCH PARAM€1'RÓW cznR ~CH PROSTYCH Tl1b/i(;(I 9.1. UKLAi)ÓIV CPLO Typ> (Firma) > XC9536 (X ili11x) 7032A (Alteró) 2032 (La11.ice) CY7C371i (Cypress) PZ5032 (Philips) Liczba makrokomórek 36 32 32 32 32 34 36 32 37 32 5- 15 5- 15 7.5-15 8.5- 15 6- 10 100-125 77- 178 80-137 66-143 64- 125 200 przy I MHz, 360 przy 100 MHz 450- 1100 przy I MHz 204 prą 100 MHz, 0,25 w Liczba końcówek 1/ 0 Czas propagacji (ns) Częstotliwość (MHz) Moc strat (mW) Liczba cykli i sposób programowania Technologia zgrubną ocenę 150 przy I MHz, 415 przy 100 MHz st. stat. 10000 In-System. tylko 5V >100 progr. zewn„ In-System 100 (pLSI) 1000 (ispLSI, tylko 5V) 100 In-System (dod. 12 V) 1000 progr. zewn., In-System 0.6 µm C MOS Flash C MOS EEPROM CMOS EE PROM CMOS Flash 0.35 11m i 0.5 µm CMOS EEPROM tych układów. Czas propagacji (wartość maksymalna) dotyczy drogi w strukturze kombinacyjnej od końcówek wejściowych do wyjściowych. Podana maksymalna częstotliwość dotyczy konfiguracji, w której wyjścia 552 9.1. Ul<lAOY PROGRAMOWALN E przerzutników są doprowadzane poprzez wewnętrzne sprzężenia zwrotne i wekombinacyjnego do wejść danych tych przerzutników (typowa konfiguracja licznikowa). wnętrzną strukturę układu Projektowanie z układami PLD/ CPLD 9.1.3 Proces projektowania można podzielić na trzy etapy, z których każdy zawiera określone sekwencje czynności (rys. 9.23). Pierwszym etapem jest wykonanie projektu funkcjonalnego. Najpierw należy określić cel projektu, a więc sformułować zalożenia projektowe, obejmujące ZAŁOZEf\IA PROJEKTOWE PROJEl<f FUNKCX>t.IAlNY [ SCKEMAT BLOKOWY. DEKOMPOZYCJA PLIK.I HC>t. SCHEMATY, TABLICE STANÓWJPAZEJŚĆ , GRAFY PRZEJŚĆ WEKTORY TESTOWE WYBÓR TYPtJ UKt.AOU PLO KOMPILACJA PROJEKT LOGICZNY f\łNIMAU ZACJALOGICZNA SYMULACJALOGłCZNA NIE PROJEKT POŁĄCZEŃ W UKŁADZIE PLO 008RZE? PROJEKT FIZVCZNY NIE TAK SYMULACJA CZASOWA (oPCJONALNIE) NIE PUKJEOEC Rys. 9.23 Cykl projektowania 553 układów PLO/CPLO 9. PROGRAMOWALNE I SPECJALIZOWANE UKŁADY CYFROWE funkcje i parametry techniczne projektowanego układu, oraz wykonać a11alizę kosztów projektu i jego realizacji. Projektowany układ przedstawia się w postaci schematu blokowego i przy większej złożoności dzieli się go na mniejsze bloki, czyli wykonuje się dekompozycję blokową. Dekompozycja jest celowa nawet przy relatywnie niewielkiej złożoności, gdyż łatwiej jest wykonać poprawne projekty logiczne małych bloków. Dekompozycja uszeregowuje mniejsze bloki hierarchicznie, zgodnie z zasadą projektowan ia „od góry w dół" (top-down design). Następnym etapem jest wykonanie projektu lor1icznego. Jeśli została wykonana dekompozycja, to wykonuje się projekty poszczególnych bloków, które następnie są łączone w całość podczas kompilacj i. Podstawowym narzę­ dziem projektanta jest oprogramowanie komputerowe. Począwszy od tego etapu, służy ono również do realizacji wszystkich następnych etapów projektowania. Pakiet programów potrzebnych do tego celu określa się jako system projektowy lub kompilator P LD. Najpierw należy opisać budowę i działanie projektowanego układu w sposób „zrozumiały" dla komputera. Krótki i łatwy do sformułowania opis zachowawczy (behawioralny) układów cyfrowych umożliwiają języki wysokiego poziomu. Są one określane jako języki opisu ukladów cyfrowych (HOL - Hardware Description Language) i służą do tworzenia odpowiedn ich pl ików źródło­ wych przez projektanta. Programy przetwarzające te pliki nazywa się kompilatorami HDL. Kompila tor HOL wchodzi w skład kompilatora PLO. Najczęściej stosowane języki HOL to ABEL (opracowany w firmie Data I/ O), VHDL(standardy IEEE 1076, 1164)i VERILOG(standard IEEE 1364). Do projektowan ia u kładów PLD stosuje się zazwyczaj język ABEL, natomiast do projektowania układów CPLD stosowane są również pozostałe języki. Projektowany układ można często opisać w języku HDL w bardzo prosty sposób przez zapis jego funkcji widzianych na końcówkach, bez wchodzenia w szczegóły rozwiązań logicznych wewnątrz. Jest to opis zachowawczy, przy którym zadanie tworzenia struktury logicznej układu w całości jest wykonywane przez kompilator HOL. Innym sposobem opisu jest opis strukturalny, który stanowi zapis struktury logicznej układu. Układy kombinacyjne opisuje się używając równml boolowskich lub/i tablic stanów, a układy sekwencyjne używając tablic przejść lub/ i tekstowy zapis grafów przej.Vć. Jeśli zastosowany kompilator PLD zawiera odpowiednie programy dodatkowe, to możliwe jest również wprowadzenie graficznego opisu układu w postaci schematu logicznego lub grafu przejJć. Ponadto oheśla się zbiór wektorów testowych w celu sprawdzenia poprawności działania projektowanego układu. Każdy wektor testowy zawiera określony stan wejść i odpowiadający mu „prawidłowy" stan wyjść. Kompilator symuluje działanie układu przy każdym zadanym stanie wejść i sprawdza czy odpowiedź układu pokrywa się z odpowiedzią podaną w wektorze testowym. Na tym etapie dokonuje się również próby wyboru docelowego typu układu PLD/ CPLD. Nie jest to potrzebne do realizacji projektu logicznego, ale 554 9. 1. UKLAOY l'AOGAAMOWALHE umożliwia wprowadzenie numeru typu i w szczególności przyporządkowanie i wyjściowym sygnałom logicznym numerów końcówek wybranego typu układu i rodzaju obudowy. Numery końcówek wprowadza s ię przez odpowiednie deklaracje w języku HOL lub przez odpowiednie oznaczenie końcówek na schemacie logicznym. Wykonane opisy bloków (w postaci plików HOL lub/i plików schematowych) stanowią dane wejściowe dla kompilatora logicznego. Po wykonaniu poprawnej kompi lacji następny program wykonuje minimalizację równań boolowskich lub/ i liczby stanów w układach sekwencyjnych. Na podstawie przygotowanych wcześniej wektorów testowych wykonywana jest symulacja logiczna układu. Jeśli wyniki sym ulacji nie są w pełni pozytywne, to trzeba wrócić do początku projektu logicznego, dokonać odpowiednich korekt i uruchomić kompilację od nowa. W praktyce może to oznaczać pewną liczbę powtórzeń kompilacji. Gdy projekt logiczny jest poprawny, wówczas odrębny program, wchodzą­ cy w skład kompilatora PLO, wykonuje projekt połączeń dla wybranego wcześniej typu układu PLO. Program ten „wpasowuje" projekt logiczny w sieć połączeń ukladu PLO i dlatego nosi nazwę angielską.fi11er (liter). Jeśli dla wybranego układu PLO lub wybranych numerów końcówek wejść i wyjść układu nic uzyskuje się poprawnego wyniku, to trzeba powtórzyć etapy projektowania logicznego i fizycznego dobierając nowy typ układu lub/i numery końcówek. Niektóre litery są wyposażone w opcję automatycznego wyboru docelowego typu układu PLO. Przy wyborze tej opcji wcześniej deklarowany typ i przyporządkowania końcówek są ignorowane i kompilator wybiera typ i rozkład końcówek samodzielnie. Jeśli projektant pragnie uzyskać określony rozkład końcówek w tak wybranym typie, 10 trzeba jeszcze raz wykonać caly poprzedni proces kompilacji, już z wybranym typem i zadeklarowanym rozkładem koń­ cówek. Opcjonalna symulacja czasowa umożliwia sprawdzenie dynamicznego zachowania się układu, a w szczególności sprawdzenia czasów opóźnie1i na różnych drogach sygnałów w układzie. Wynikiem projektu fizycznego jest plik J EO EC, który w standaryzowanej postaci zawiera dane potrzebne do zaprogramowania układu PLO, bądł używając odrębnego programatora, bądź z zastosowaniem programowania w systemie (p. rys. 9.12). Można zauważyć, że w podanym opisie realizacja projektu runkcjonalnego i logic-tnego jest w zasadzie niezależna od architektury, technologii i typu docelowego układu PLO. Oznacza to, że duia część kompilatora PLO ma charakter uniwersalny, wykonując prlCtwarzanie projektu układu wi rtualnego. Kompilator PLO można więc wykorzystać również do innych celów, czyli do projektowania innych układów logicznych (nie realizowanych jako PLO) oraz w dydaktyce. Kompletny kompilator PLO moi.aa zatem konfigurować w sposób wejściowym 555 9. PROGRAMOWALNE I SPECJALl20WANE UKlADY CYFBOWE elastyczny, dobierając tylko odpowiedni filer. W ten sposób są tworzone m.in. kompilatory firmy Data 110 (Synario). Jeśli jednak dany kompilator został opracowany przez producenta układów PLO tylko dla własnych ukladów. to wtedy jui takiej elastyczności nie ma i nie można takiego kompilatora wyposażyć w filer dla innych układów PLO. · Język 9.1.3.1 lat osiemdziesiątych, gdy w USA pojawiły się pierwsze uklady PLO, powstała potrzeba opracowania odpowiedniego oprogramowania do ich opisu komputerowego i projektowania. Zadanie to podjęła m.in. amerykańska firma Data 110, która w roku 1983 opracowała pierwszą wersję języka ABEL-HOL (Advanced Boolean Expression l.Anguage) oraz kompilator ABEL tego języka. Następnie produkty te były stopniowo udoskonalane i w roku 1997 była jut dostępna wersja 6.5 kompilatora ABEL finny Synario (należącej do Data 110). Zarówno język, jak i kompilator ABEL stały się popularnymi, choć nieformalnymi standardami do projektowania układów PLO. Poniżej są przedstawione podstawy języka ABEL-HDL, opracowane na podstawie podręcznika referencyjnego (7, 8). O.bszeme fragmenty opisu tego języka są również przytoczone w (3). Aby uzyskać lepsui zrozumiałość, podany opis jest uzupelniony kilkoma przykładami opracowanymi przez autora. Jednakże, aby w pełni wykorzystać duże możliwości i zalety tego języka, trzeba się zapoznać z kompletnym opisem jego semantyki i skladni (7. 8). Język ABEL umożliwia tworzenie opisu układów w postaci zachowawczej (behawioralnej) - poprzez opis funkcji realizowanych prL.ez układ lub w postaci strukturalnej - poprzez opis budowy ukladu z układów mniejszych lub nawet z elementarnych bramek. Opis zochowawczy jest z reguły prostszy i wtedy zadanie tworzenia struktury układowej spada na kompilator. Język ABEL wykorzystuje dane skalarne (jednobitowe) i zloto11e (wektorowe). Opis układu w języku ABEL-HOL tworzy się w postaci modułu tekstowego lub zestawu modułów. Każdy modul zawarty jest w pliku ASCII o indywidualnej nazwie z rozszerzeniem .ab!. Zasady składni języka są następujące. • Jeden wiersz może zawierać do 150 znaków, wyłącznie ASCII. • Słowa kluczowe, naiwy i liczby muszą być rozdzielone przez przynajmniej jedną spację. Wyjątkiem jest wyliczanie nazw lub liczb oddzielonych przecinkiem, gdzie nie trzeby używać spacji. Słowa kluczowe mogą być pisane zarówno małymi jak i dużymi literami. * Np. Equations, equations i EQUATIONS są równoważne. W nazwach wyróżnia si~ znaki małe i duie. Np. Wel, wel i WEl oznaczają * trzy różne sygnały. Nazwy mogą zawierać do 31 znaków: liter (małych i duiych). cyfr oraz * symboli tyldy (- ) podkreślenia U. leci. muszą zaczynać się od litery lub Na początku ABEL-HOL 556 9. 1 UKl.ADY PAOGRAMOWAA.J<E podkreślenia. W nazwie nie motna stosować spacji - zamiast spacji można stosować podkreślenie. * * • Bloki (np. zestawy wyrażeń) oznacza się nawiasami klamrowymi { }. Komentane rozpoczyna sie znakiem lub//. Ważność takiego oznaczenia kończy się na końcu linii, a także - w przypadku znaku cudzyslowu (") - gdy używamy drugi raz tego znaku w tej samej linii. Liczby zapisywane są w formacie 128-bitowym. Domyślnie liczby są interpretowane jako dziesiętne. Przy stosowaniu kodu dwójkowego lub szesnasikowego należy siosować przedrostek odpowiednio ' b lub 'h . Na N przykład, ·b11010011 = ' hD3. Łańcuchy znakowe obejmuje si~ symbolami apostrofu (' ). Stosuje się dwa zbiory symboli operatorów logicznych: domyślny i alternatywny, przedstawione dalej. Aby użyć zbiór alternatywny, należy w c~ci deklaracyjnej modułu wpisać dyrektywę @ ALTERNATE. Przy stosowaniu operatorów domyślnych można stosować również standardowe operatory arytmetycwe do zapisu działań arytmetycznych. * Zbiór Zbiór alternatywny domyślny NOT & AND # $ !$ OR XOR XNOR I (przedrostek, np. !A, /Q) • + :+: ·•· Symbole relacji stosowane w predykatach (1,definiowanych w p. 1.2) są nastepujące: równość != nierówność mniejszy niż < < = mniejszy lub równy większy ni:i > większy lub równy > = Na przykład, zapis Q = P $ ( R ! =S ) oznacza, te Q = P gdy R = s oraz Q = ! P gdy R !=S. Priorytet operacji w obliczaniu wyrażeń logicznych (od lewej do prawej strony w wyrażeniu) jest następujący: ! , & , #, $, ! $, = = , ! = , <, < =, >, > =. Szczególnie trzeba zwrócić uwage na operatory $ i !$ oraz operatory relacji: aby uniknąć błędów przy kompilacji należy te operacje stosować z utyciem nawiasów, np. A& !B # (C$D) # (E = =25). 557 9. PROGRAMOWALNE I SPECJAl.IZOWANE UKUDY CYFROWE Przy zapisie funkcji kombinacyjnych stosuje sie znak równości =, a przy funkcjach sekwencyjnych znak przypisania : = (stosuje się go tylko do opisu działania przerzutników D). W języku ABEL często stosuje sie „zbiory" (set), które w istocie nie są zbiorami w ~ensie teońi mnogości (p. 1.2), lecz tablicami jednowymiarowymi czyli wektorami o jednobitowych elementach (podobnie jak typ array w języku Pascal). Dlatego w dalszym ciągu będzie stosowana nazwa wektor zamiast „zbiór". Zawartość wektora zapisuje się przez wyliczenie elementów w nawiasach kwadratowych, np. A= [ QO, Ql, Q2, Q3 , Q4 J. Jeśli na początku symboli stosowany jest ten sam ciąg znaków i zastosowano numerację w postaci kolejnych liczb na ko1icu symboli, to można zapis wektora uprościć, np. A= [ QO . . Q4 I . Kolejność motna odwrócić, np. C = [ C7 . . co J • Elementy wektorów są indeksowane od lewej strony do prawej z liczeniem od zera, co umożliwia tworzenie subwektorów i operacje na bitach. Na przykład, D= [DO . . D1 5); E=D[6 .. 10); Aby "Elementy D6 .. DlO uzyskać reprezentację bitową, np. elementu DB, trzeba zastosować operację F=D[B] ==1; Operacje na wektorach mogą znacznie uprościć opis układu. Na przykład, Q = [ QO .. Q3 J, to definicję sygnału R = QO& ! Ql& ! Q2&Q3; można uprościć do postaci R = Q = = {l, O , O, l l ; lub jes?.Ci.e prościej R = Q = = 9 ; . Na wektorach można wykonywać operacje logiczne, arytmetyczne i relacyjne. Generalną zasadą jest wykonywanie oddzielnych operacji na elementach wektorów o tych samych pozycjach. Operacje na dwu wektorach są dopuszczalne tylko wówczas, gdy obydwa mają .ten sam wymiar (długość). Na przykład, jeśli Q= [QO .. Q3) iP= [PO . . P3).toQ&P= [QO&PO, Ql&Pl, Q2&P2, Q3&P3). jeśli Podstawowa struktura * • modułu obejmuje nagłówek modułu, zawierający słowa następujące sekcj e składowe: kluczowe MODULE [nazwa modułu] - obowiązkowe TITLE [• tytuł'] - opcjonalne deklaracje, poprzedzone słowem DECLARATIONS (opcjonalnym jeśli wystepują bezpośrednio po tytule) i zawierające: nazwę i typ docelowego układu PLO z użyciem słowa DEVICE (opcjonalnie), nazwy końcówek wejściowych i wyjściowych z utyciem słowa PIN oraz ich atrybutów z użyciem słowa ISTY PE, definicje wektorów, stałych, makr i bloków oraz interfejsów z innymi modułami, 558 9. 1 UK!.AOY PROGRAMOWAl>IE * * * równania - poprzedzone nagłówkiem EQUATIONS, tabl.ice stanów i tablice przejść - poprzedzone nagłówkiem TRUTH_ TABLE (format tablicy) i tekstowe :r.apisy gr afów przejść - poprzedzone nagłówkiem STATE_DIAGRAM (format zapisu sta116w) - służące do właściwego opisu układu, wektory testowe, poprzedzone nagłówkiem TEST_ VECTORS (fom1at wek1ara), zakończenie modułu słowem END. Zależnie od potrzeb, w module mogą być wprowadzane dyrektywy, do sterowania prz.etwar:r.aniem zawartości modułu. Oto niektóre z nich: słuUjce @ ALTERNATE - :r.astosowanie alternatywnego zbioru operatorów logicznych; @ CARRY wyrat.enie - liczba przeniesień w złożonych układach, stanowiąca liczbę bloków połącz.onych szeregowo (nj>. @ CARRY 2 przed opisem sumatora 8-bitowego będzie oznaczać jego podz.ial na dwa sumatory 4-bitowe z przeniesieniami równoległymi, połącz.one szeregowo); @ CONST nazwa = wyrażenie - deklaracja zmiennej pomocniczej, wykorzystywana w makrach i pętlach programowych; @ DCSET - niewypisane stany wyjść w tablicy stanów są deklarowane jako dowolne (Don 't Care) do lepszej optymalizacji wyrażeń opisujących funkcje niezupełne; dyrektywa stosowana wymiennie z atrybutem "DC"; @ DCSTATE - niewypisane stany tablicy przejść są deklarowane jako dowolne; @ I F predykat {blok} - jeśli wartość predykatu jest równa O. to blok tekstowy (np. zestaw równań) jest pomijany, i odwrotnie; @ INCLUDE 'nazwa_plik11 • - wpisanie do modułu treści pliku o podanej nazwie i ścieżce dost~pu, na przykład z biblioteki bloków; przy z.apisie ścieżki należy wpisywać podwójne znaki skośnika, np. @ I NCLUDE • \\bibl\\ suma . inc • . Podobną funkcję można zrealizować poleceniem LIBRARY '11azwa_plik11' z domyślnym rozszerzeniem pliku (. inc); @ ONSET - odwołuje wcześniejszą dyrektywę @ DCSET lub atrybut • OC' ; @ REPEAT liczba {blok } - powoduje wypisanie bloku liczba razy; stosowane do krótkiej definicji dużych tablic stanów i dużych zbiorów wektorów testowych; @ SETSIZE wektor - zwraca wymiar wektora; np. @ SETSIZE [ Q7 .. QO ) zwraca liczbę 8. W części deklaracyjnej moi.na oznaczenie w projekcie, np. US275 DEVICE wpisać planowany typ ukladu PLO i jego 'ispLSI 2032' ; co pozwala kompilatorowi rozpoznać układ i uwzględnić jego architekturę podczas kompilacji i optymalizacji. Przy braku tej definicji kompilator dokonuje syntezy i optymali:r.acji układu „wirtualnego", czyli o nie zdefiniowanej atchitek- 559 9. PROGRAMOWALNE I SPECJALIZOWANE UKŁADY CYFROWE turze. Istnieje zazwyczaj możliwość wybrania typu układu z odrębnego menu (listy dostępnych układów) w kompilatorze i wtedy deklaracja DEVICE jes1 nicpotnebna. Nazwy sygnałów na końcówkach wejściowych i wyjściowych (zazwyczaj w dwu odrębnych wierszach) wprowadza się pr1.ed słowem PIN. Po słowie PIN można wpisać deklarowane numery końcówek wybranego typu (i wybranej obudowy) układu, np. xl, x2, x3 PIN 18 , 19, 20; Numery te są uwzględniane przez filer w końcowym etapie projektowania. Ponadto w wierszu definiującym określone końcówki wyjściowe często wprowadza się ich atrybury po słowie I STY PE, np. Q7 .• QO PIN 1. .8 IS TYPE 'REG' i Atrybuty slużą do specyfikacji rodzajów wyjść, poirzebnej syncezie ukladu winualnego. Najczęściej stosuje się atrybuty: 'BUFFER' 'INVERT' 'XOR' 'COM' 'REG' 'REG_D' 'REG_T' 'OC' zwłaszcza pr.i:y brak inwenera na wyjściu układu inwerter na wyjściu układu bramka XOR na wyjściu układu wyjście układu kombinacyjnego wyjście przerzutnika synchronicznego wyjśc ie przerzutnika O wyjście przerzutnika T stan dowolny W części deklaracyjnej można również wprowadzić nazwy stalych i zmiennych, używanych w module. W języku ABEL istnieje zbi6r stałych specjalnych, którym można nadać własne nazwy w module. Najczęściej stosuje się stałe: .C. .o . .u . .P. .X. wejście zegarowe, wyzwalanie impulsem wejście zegarowe, wyzwalanie z.bocz.em opadającym wejście zegarowe, wyzwalanie zboczem narastającym wpis danych do rejestru stan dowolny bitu Do innych siosowanych deklaracji należą nazwy wektorów. Na przykład, Q [Ql. .Q8). W projek1owanych układach często występują wejściowe sygnały kontrolne, które mają charak1er „globalny". czyl i dotyczą na przyklad wszystkich przerzulników lub wszystkich wyjść. Należą do nich na przykład : sygnał zegarowy, sygnał zezwalający wyjść trójstanowych orai. sygnaly zerowania i ustawiania przerzutników. Aby wykorzystać ie sygnały w opisie projeklU, stosuje się nazwy z rozszerzeniami kropkowymi. Na przykład, jeśli wyjścia przerzutników D opisano 560 9.1 Ul<ł.AOY PROGRAMOWALNE wektorem Q, to wejście zegarowe CLK przerzutników zapisem układu wiąże się z wejściami zegarowymi Q . CLK=CLK; Jeśli do zapisu funkcji układu wykorzystuje się stany wewnętrzne przerzutników D, to stany te iapisuje się przez rozszerzenie kropkowe . FB (od feedback). Na przykład, działanie prostego licznika motna zapisać jako Q :=Q.FB+l; Pozwala to na usuniecie niejednoznaczności, która mogłaby wystąpić przy najprostszym zapisie Q : = Q+l. Wtedy bowiem stan Q po prawej stronie wyrażenia mo7..e się odnosić do końcówki wyjściowej Q układu, do wyjścia Q przerzutnika D. a nawet do jego wejścia D Geśli jest ono połączone z końcówką wyjściową popn..ez multiplekser w układzie). Inne, najczęściej stosowane rozszerzenia kropkowe, są następujące: .AR .AP .OE (.SR) (.SP) zerowanie asynchroniczne (synchroniczne) ustawianie asynchroniczne (synchroniczne) zezwolenie wyjścia trójstanowego Stosowanie rozszerzeń łcropkowych nie jest ograniczone do sygnałów globalnych. Mog<l być one stosowane w odniesieniu, na przykład, do pojedynczego przerzutnika lub jednego wyjścia trójstanowego. Są to jednak rzadsze zastosowania. Stosowanie opisanych podstawowych reguł języka ABEL jest zilustrowane kilkoma przykładami , zrealizowanymi za pomocą popularnego kompilatora PLO Latrice isp Synario System 3.0. Pierwszy przykład modułu "kombi l4" opisuje układ kombinacyjny o wejściach A, B, ... , H i wyjściach U, V, Y, Z. Wstępnie wybrany został typ układu GALI 6V8 i numery odpowiednich końcówek (po słowie PIN). Typ ten nie został zadeklarowany z użyciem słowa DEVICE, gdyż został wybrany w kompilatorze z menu programu zarządzającego (Navigator). Symbol X przyporząd­ kowany jest stanowi dowolnemu . X •. Dwa równania opisują funkcje przełączające na dwu wyjściach U i V. W drugim równaniu można zwrócić uwagc; na użycie nawiasów, gdyż funkcje XOR i XNOR mają nitszy pńorytet niż funkcja OR (wydruk na str. 562). Słowo TRUTH_TABLE poprzedza zdefiniowanie tablicy stanów, definiującej zależność wyjść Y i Z od wejść E, F, G, H. Taki zapis implikuje, że wszystkie niewymienione stany wejść generują na wyjściach stany O. Jeśli jednak - przy funkcjach niezupełnych - istnieją pewne stany wejść, które mogą generować na wyjściach siany dowolne, to nie należy ich wypisywać w tablicy, lecz zadeklarować ich wykorzystanie dyrektywą @ DCSET przed zdefiniowaniem tablicy (albo atrybutem ISTY PE 'OC' dla danego wyjścia). To mo:!c w istotny sposób uprościć równania logiczne po minimalizacji. Jednak w tym przypadku 561 9. PROGRAMOWALNE I SPECJALIZOWANE VKlADY CYFROWE TITLE ' Uk.lad kcmbinac:yjny 0271ł Jan ltowal•ki, Gi9ant ltcmput.r Sp. z o.o., 1997' D!:CLARATIONS A,B,C,D,B,F,G,B 0,V,Y,Z PIH PIH 2 .. 9; 12,14,16 ,18; " GAL16V8 X=.X.; EQOllTIONS U=! ( !A'11GD) ł U!CGD ł IA'11•C•ID; V•(B$C) I !(AIC) I (C!$D); TRtJTJl_T'ABLB ((&,I' ,G,B] -> (Y, Z]) (1,1,0,XJ->(1,0] ; (O , X, 1 ,0J -> [1, 1]; [0 , 1 , 1,1]->(0,1); [1 , 0 ,0 ,l] ->(X,1 ] ; [1,1 ,0,1]-> (l,l] ; T'2ST_VECTORS ([A,8,C,D,Z,F,G,B) - >[O,V,Y,Z)) [0,1,X,l,1,1,0,X]->(0,1,1,0]; (O,O,X,1,1,1,0,1)->(1,1,1,1]; [X,0,1,1,1,0,0,1) - >[1,1,X,1); trzeba wypisać wszystkie stany wejść, przy których na wyjściach jest stan O - w przeciwnym razie stanom tym zostaną przypisane stany wyjściowe X. Pnykładowe trzy wektory testowe umożliwiają wstępne sprawdzenie poprawnego działania układu. W ogólnym przypadku zbiór wektorów testowych powinien być na tyle duiy, aby sprawdzić działanie układu we wszystkich spodziewanych warunkach pracy. Kompilator wykonuje minimalizację form boolowskich dla czterech wyjść w dwu wariantach: bez negacji wyjść i z negacją. W pierwszym przypadku podstawą minimalizacji jest zbiór T, a w drugim zbiór F (p. 4.1.2, 4.1.3). Poszukuje się formy sumacyjnej o najmniejszej liczbie. termów. Jeśli taką formą jest wyrażenie z negacją, to na wyjściu układu wprowadza się inwersję. W opisanym przykładzie kompilator wykonał raport przedstawiony na wydruku pokazanym na str. 563. Jak widać, dla wyjść u i V formy minimalne uzyskuje się przy negacji (odpowiednio I i 2 termy), a dla wyjść Y i z bez negacji (odpowiednio 2 i 3 termy). Wybrane przez kompilator formy są pokazane na wydruku na str. 564 od góry. Następny przyk ład (moduł kombi15) ilustruje wykonystanie wektorów („zbiorów") i predykatów. Badany jest wektor A. traktowany jako liczba w kodzie NB, z domyślną reprezentacją dziesiętną. Celem jest opracowanie układu kom- 562 9.1 UKt.AOY PROGRAMOWALNE Synario 3 .00 Design kc.bi1 4 cr„ted Pri Sep 12 T i tleo Ti.tle : OO :OO:l ł 1997 Oltl.ad ltcmboi.nacyjny 02714 Jan Kowal.aki, Gi9ant ltomputer Sp. z o . o., 1997 P-Term..a ran-in Fan-out ------ --------------3/1 3 l 4/2 2/4 3/4 '44 l l l. 12/11 Type Pin P .l.n P .1.n P.l.n ·- (attri.but<oo) ----------------o V y z Be•t P- Tezm. Total: 8 Total Pina : 12 Total Rodea : O Avera9e P-Tera/Ou.tput: 2 &quationa : o - ( IB ł • A !D) ; V= (!A ' !B ł B ' !C • o ' c • IB ' !O) ; (! Z ' G ' !B y - • li ' z• (Z p ' !G) ; •• ' IG ' B !B ' G !Z' F '' G); IB ~verae-Polarity &quationa: !U• ( !A' B 'D); !V = (A ' ł B ' !Y !B & D & !C ! O & C); (! I: & H •• • !F & !G !E ' !G E & G); !Z = (!E & !F & B ł IG ' !B ł B &G ł IE ' ! G) ; paratora, który na wyjściu Yl ma stan I gdy A:>l OO (dziesiętnie), na wyjściu Y2 jest stan I gdy A:>200 i A>lOO, i na wyjściu Y3 jest stan I gdy A>200. Jak widać, zapis predykatowy jest niezwykle prosty (wydruk na str. 564 od dołu). 563 9. PROGRAMOWALNE I SPECJALIZOWANE UKŁADY CYFROWE Synario 3.00 - Oevice Utilization Chart Ul<lad kombinacyjny u2714 Jan Kowalaki, Gi9ant Ka.puter Sp. s o.o., 1997 Pl6V8AS Pr~r......i Loqic : -------------------------------------------------- u • V = I( y z • !( ( ( • • •• !A ' B ' D ) ; 8 • !O ' C A • !B ' D ' !G '- I' ' B !B ' G ' !Z B ' !C ) ; ) ; !G ' g !B ' G ' G ' F & IE !& ) ; l«lDULE kombil5 TITL!! 'Przyklad stosowania wektorow i predykatow w jezyku ABEL' ' i•pLSI 2032'; " Z~ia opcjonalny PIN 18 .. 22,25 .. 27 , 4 •. 6; 01455 DEVICE AD .. A7, Y1 . . Y3 As[A7 .. AO); BQUATIONS Y1 = A <= 100; Y2 z (A<= 200)•IY1 ; Y3 = A > 200; TBST_ VBCTORS ([AJ (100] - > ( 1,0, 0) ; [101 ) -> (0,1,0); (201) -> (0, 0, li; -> [Yl . . Y3)) " Wektor A wyrazany d.sieaietnie! Przykład syntezy układu sekwencyjnego ilustruje przykład modułu usekl2. Jest to licznik 8-biiowy w kodzie NB z wyjściami trójstanowymi, zrealizowany w układzie ispGAL22VlO. Licznik ma wejście zegarowe CLK, wejście zerujące R (stan aktywny I), wejście zezwalające liczenia· EN (stan aktywny O), wyjście zezwalające liczenia ENO (stan aktywny O) i wejście zezwalające buforów trójstanowych E (stan aktywny 0) (wydruk oa str. 565). W zapisie równania licznika zastosowano instrukcję o ogólnej postaci WHEN predykat THEN mikrooperacja; przy czym 564 mikrooperację - zależnie ELSE mikrooperacja; od rodzaju - można opisać równaniem 9.1 UKŁADY PROGRAMOWALNE TITL& 'Licsn.i.k 8-bitowy a b\t.f'oraai troj•t&Aowyai Marian Jtot, Bltologicsn• ltcmputery S.A., 1997' CIJt,R,Df,DO,E PI.lł Q7 .. QO Q . (Q7 .. QOJ; PDI CJt,X,Z • 2,4,6,26,11; 25 . . 23,21 .. 17 11 iapGAL22V10 PLCC ISTYPS 'R&G'; .C.,. X.,.Z.; BOUATIOHS " Rownanie licani ka 1lllBH !Dl TBDI Q :• Q . 111 + 1; !SHO • (Q.l'B - - 255),!R,!EN; g :• g.111; " lryj•ci• •••walajace licaenia " Syqnal a99arowy dla praerautnikow " SycJnal aerujaay dla praerautnikow " Sygn.al odblokowujaay wy3acia trojatanowe Q . CLlt • CLlt ; Q.AR • R; Q . OE • !&; TllS'l'_VSCTORS zf.sz ( [CLJt,R, Dl,Z] (X,1,X,O] -> (0,1); (X ,X,1,0) -> [0,1); [0,X, X,OJ -> [0,1); (Clt,O,O,O] -> (1,1); (Clt,0, 0 ,0] -> (2,1); (X ,1, X,OJ -> (0, 1 ); (Clt,0,0,0) -> (1,1); [Clt,O,O,OJ -> (2,1); [CJt,O,O,OJ -> [3,1]; (CJt,0,0,1] -> [Z,1]; (Clt,O,O,O] -> [5 ,1]; (CK,0,1,0] -> (5,1) ; (Clt,0,0,0) -> [6,1]; -> [Q,J:NO]) R.e•et "Licaenie aabronion• (ZN = 1) "Brak impulau aeqa.ra "Licaeni• " Lioaeni• "Zerowani• "Licaeni• "Licaenie "Liczeni• 11 Stan Bi-Z buforow troj•tanowych "Licaenie " Zatrzymanie liczenia "Liczenie " Generacja 248 wektorow teetowych 6; " Stala pceoonicsa @RlliPZA.T 248 (8CONST A• A+ 1; [CX,0 , 0,0] -> [A,1 ];) @COMST A s [CK,0,0,0 ] -> [255,0 ]; ( Clt,O,O,O] -> [0,1) ; [CK,0,0,0] -> [1,1]; " O•tatni •t&n cyklu, J:NO • O Poosatek noweqo cyklu (Q • 0) z symbolami = lub : =. Zastosowane zosłały objaśnione wcześniej nazwy z rozszerzeniami kropkowymi. Do generacji wektorów testowych zastosowano pętlę z dyrektywą @ REPEAT i stalą pomocniczą A. W powyższym przykładzie sygnał zerowania R (Reset) jest asynchroniczny. Można jednak wprowadzić zerowanie synchroniczne, potrzebne zwłaszcza w takich układach PLD, w których przerzutniki nie są wyposażone w odrębne, asynchroniczne wejścia zerujące (np. GAL I 6V8). Aby wykonać zerowanie synchroniczne trzeba wpisać sygnał R do równania licznika, na przykład w postaci WHEN !ENTHENQ : = (Q. FB+ l) &!R; ELSEQ :=Q.FB&!R; Działanie zerowania synchronicznego nie dwu wektorów testowych: 565 można sprawdzić przez wprowadze- 9. PROGRAMOWALNE I SPECJALIZOWANE Ul<l.AOY CYFROWE l«lDOL& uaelt7 TITL& 1 Prcyklad uk1adu ••kw.ncyjneqo a aapie„ 9rafu prsejac' Clt,R,&1,&2 Ql,Q2 PIH PIH PIH y 11 , 9,16,17; • tlklad pLSI2032 PLCC44 39,38 ISTYPS 'RZG'; xsnn •cac, 37 BUITER'; Z-[El,E2); Q=[Ql,Q2) ; X, C=. X . ,.C. ; Specjal,n e atale $1• [0, 0); 52•(0,1] ; S3=[1,l); Oe~inicje atanow Sh[l,0); STATE_DIAGRAM STATE Sl: STATE S2: STATE S3: STATE S4: Q " Graf przejac IP !El•E2 TllZN S2 BLSS Sl; IF !Zl.Z2 TBZN S3 BLSS Sl; IF El•!B2 TllZN SC BLSE Il' !E1'E2 TllZN S3 EI.SI! Sl ; Il' !Bl•E2 TllZN S2 ELSE Sl; EQ()ATIONS Q . CLl't=CI(; Q.~R; Y"(ll<IQ2; TEST_Vl!!CTORS ([CK,R , El,E2) -> [Ql,Q2,Y)) (X, 1 ,X,X) -> (0 , 0,0); [0,0, X,X) -> (0,0,0); [C,0 , 0 , 0) -> (0,0,0); [C, 0,0,1] -> (0, 1 , 0); [C ,0,1,1 ] -> [0,0 , 0J; [C,0,0,1) -> [0,1 , 0]; [C ,0 , 0,1) -> [1, 1 ,0); (C,0,0 , 1) -> (1,1 , 0); (C,0,1,0] -> [1,0 , 1); (C,0,1 , 1) -> (0,0 , 0); l!:llD [X, l,X,0] - > (0, 1 ]; "brak zerowania! [CK, l ,X, 0] - >[0, l ]; "zerowanie synchroniczne Użycie tekstowego zapisu grafu przejść do opisu przykładu układu sekwencyjnego z rys. 4.62 ilustruje wydruk modułu u s e k7 . W zapisie tablicy zastosowano przeznaczoną do tego celu instrukcję IF predykat THEN stan [ ELSE stan ] ; gdzie stan oznacza wyrażenie definiujące stan 566 następny, o przejściu uwarun- 9.1 UKŁADY PROGRAMOWALNE kowanym predykatem. Można zauważyć, że pokazany zapis tablicy ściśle odpowiada grafowi z rys. 4.62b (wydruk na stronie 566). Jeśli jakieś przejście jest bezwarunkowe, to opisuje się je w postaci STATE Si: GOTO Sj; . Do zapisu pn.ejść o wielu warunkach stosuje się instrukcję CASE predykat : stan; [predykat : stan; ] ENDCASE; Wynik symulacji statycznej, wykonanej przez kompilator, ilustruje rys. 9.24 (por. rys. 4.62a). Odzwierciedla on działanie układu przy zadanych wektorach testowych. o •OO 200 600 800 Cl< E1 E2 0 1 02 R V o 200 400 600 Rys. 9.24 Wynik statycznej symulacji dz.in.łania 800 układu opisanego prz02 modu! usek7 1_ 14 1_13 1_12 0--1---<T T c 1_ 16 a T c c c ,_. I. IO Ry.r. 9.25 Zastosowanie opisu schema1owego (4-bi1owy licznik Graya) do projektu poląezcń w ukladz.ie PLO (pLSU032-llOLT44) 567 9. PROGAAMOWAl.NE I SPECJALIZOWANE UKlAOY CYFROWE TI'l'L& ' •-bitowy licznik Graya - wektory testowe ' Clt,Jt 03, .QO C,X • .C., . I . ; O= (Q3 .. QOJ; TEST_VllC"rORS Plll PIN ( (CJt,RJ (X, 1,J -> O; (O,OJ -> O; (C, OJ -> 1 ; (C,OJ -> 3 ; (C , OJ -> 2; (C, OJ - > 6; (C, OJ -> 7 ; (C,OJ -> 5; (C, OJ -> 4; (C, OJ -> 12; (C, OJ -> 13; (C, OJ -> 15; (C, OJ - > 14; (C, OJ -> 10; (C,OJ -> 11; (C,OJ -> 9; (C,OJ - > 8; (C,OJ - > 8; (C,OJ -> 9; (C,OJ -> 11; (C,OJ -> 10; ISTYPll ' R.SG_T'; -> Q) " Tu si• zaczyna odbicie swierciadl.ane stanov Q END Użyty kompilator SYNARIO umożliwia również wprowadzenie opisu w postaci schematowej, z użyciem wygodnego edytora schematów. Symbole różnorodnych bramek i przerzutników są dostępne w bibliotece symboli i wywoły­ wane z wygodnego menu. Przykład pokazany na rys. 9.25 prLedstawia schemat logiczny 4-bitowego licznika Graya. Schemat został utworzony po analizie sekwencji kodu Graya z tabl. 2.6 (kolumna z prawej strony). W kwadracikach zostały umieszczone numery końcówek wybranego układu pLSl2032- l l OLT44. W module LGRAY4 umieszczono zapis wektorów testowych (wydruk na str. 568). W kompilatorze SYNARIO moduły opisywane w języku ABEL można definiować w postaci symboli graficznych dla edytora schematowego i lokować je w odrębnym katalogu bibliotecznym (9). W ten sposób można tworzyć własne biblioteki symboli różnych, bardziej złożonych bloków logicznych. Przy dekompozycji projektowanego układu na odrębnie opisywane w języ­ ku HOL bloki trzeba przestrzegać reguł hierarchii i wprowadzać w opisach modułów deklaracje INTERFACE i FUNCTIONAL _BLOCK (7, 8). Deklaracje te są wykorzystywane przez program łączący (!inker) podczas kompilacji. Deklaracje te nie są potrzebne przy łączeniu schematowym symboli graficznych. układu 568 9.1, UKŁADY PROGRAMOWAt.N E Bardziej zaawansowane kompilatory PLO umożliwiają również opis układów sekwencyjnych w postaci graficznej, przez zdefiniowanie grafu stanów. Umożliwia to program StateCAD (www.statecad.com), stanowiący także opcję pakietów SYNARIO PIC Design Solution i ABEL Design Software (od wersji 6). Języki VHDL i VERILOG 9 .1 .3.2 W pierwszej połowie lat osiemdziesiątych zostały utworzone, oprócz języka ABEL, dwa szeroko stosowane języki HOL o dużych możliwościach symulacji, syntezy i dokumentacji układów cyfrowych: VHOL i Verilog. Ponadto zostały opracowane dziesiątki języków o zasięgu akademickim, wzmiankowane w p. 4.3. O ile język ABEL był tworzony z myślą o opisie i symulacji układów PLO (na początku były to proste układy PAL), to języki VHDL i Verilog od początku miały znacznie bardziej wszechstronne cele i zostały ukierunkowane na opis i symulację układów i systemów cyfrowych o dużej złożoności. Języki te umożliwiają symulację opóźnień czasowych, wnoszonych przez symulowane układy, oraz konkurencyjno.ści wielu jednoczesnych procesów przejściowych. Opis układów i systemów może być realizowany jako zacltowawczy (behawioralny) - przez sprecyzowanie odpowiedn ich funkcji lub strukturalny - przez opis budowy. Budowę można opisywać na każdym poziomie złożoności: od poziomu bramek do poziomu skompli kowanych procesorów. Składnia tych języków jest dość złożona (zwłaszcza języka VHOL), obydwa mają po 97 słów kluczowych. Obydwa języki wykorzystują dane skalarne (jednobitowe) i złożone (głównie wektorowe). Pier wsza wersj a języka VHDL została opracowana w ramach programu badawczego amerykańskiego ministerstwa obrony (Department of Defe11ce) aby zapewnić kompletność i uniformizację dokumentacji układów i systemów cyfrowych, zamawianych na potrzeby armii amerykańskiej . Szybko się okazało, że język ten jest przydatny także w zastosowaniach niewojskowych. W związku z tym opiekę nad dalszym tworzeniem norm tego języka objął specjalny komi tet normalizacyj ny w ramach IEEE (Institute of Electrica/ and Electronics E11gi11eers) i ANSI (American National Standard Institute). W rok u 1987, a następnie 1993, zostały ogloszone kolejne wersje standardu IEEE Std 1076. Ponadto został opracowany pakiet biblioteczny I I 64. Formalny standard stal się dużym atutem języka (złośliwi twierdzą że jedynym), tak że niemal wszyscy wytwórcy układów CPLO i FPGA i wytwórcy powszechnie stosowanych programów projektowo-symulacyjnych zapewniają możliwości korzystania z tego języka. Język VHDL jest opisany w wielu książkach anglojęzycznych, na przykład [ 10-12). Dużo informacji można znaleźć w Internecie, na przykład 569 9. PROGRAMOWAUIE I SPECJALIZOWANE UKŁADY CYFROWE na stronie hnp: / /vhdl. vhdl.org, a także [ 13). Popularne są równiet poradniki t.łumacunia opisów w języku ABEL na język VHDL [ 14, 15]. Język Veriłog został opracowany w pierwszej wersji pruz jednego człowieka (Philip R. Moorby) w firmie Gateway Design Automarion (USA). Do I 990 roku był on stosowany w symulatorze tylko jednej firmy (Cadence) i nie podlegał normalizacji. Dopiero po wprowadzeniu inicjatywy języka „otwartego" i powołaniu grupy normalizacyjnej IEEE 1364, język Veriłog zyskał na popularności. Jest on wysoko ceniony przez projektantów złożonych układów cyfrowych LSI i VLSI z uwagi na lepszą przejrzys~ość, prostszą składnię i większą szybkośt symulacji niż VHDL. Język Veriłog jest jednak wacznie rzadziej stosowany do projektowania i symulacji układów PLD /CPLD nż VHDL. Język Veriłogjest opisany w [ 16). Prqkłady można znaleźć w Internecie pod adresem www.ece.cmu.edu I faculty / thomas . Język VH DL Język VHDL operuje na następujących rodzajach obiektów: stałe, zmienne, i pliki. W zapisie nie odróinia się liter małych od dużych i ich stosowanie jest zazwyczaj podyktowane dążeniem do lepsi.ej czytelności opisu. Podstawową formą opisu układów cyfrowych jest jednostka projektowa (ENTITY). Reprezentuje ona pewną część projektu o ści~łe zdefiniowanych wejściach i wyjściach (PORT) oraz architekturze (ARCHITECTURE). Jednostka może reprezentować cały system, blok systemowy, układ scalony, makrokomórkę, elementa