Paweł Dobroń gr. 3P23 Projekt Bramki Cyfrowe
Podstawowymi bramkami cyfrowymi są bramki typu NAND i NOR. Każda z nich może pracować jako inwerter czyli bramka typu NOT. Na podstawie bramki NOT (stworzonej z bramki NAND lub NOR) najprościej można omówić główne parametry bramek cyfrowych: funkcję przejścia i odpowiedź na impuls przełączający. Zakładamy, że omawiane bramki NAND i NOR są układami dwuwejściowymi. Funkcję NOT można uzyskać z powyższych bramek poprzez zwarcie końcówek wejściowych i przez podanie na oba wejścia tego samego sygnału. Funkcja NOT charakteryzuje się tym, iż gdy na wejściu układu jest stan niski „L” to wyjście jest w stanie wysokim „H” i odwrotnie : gdy na wejściu jest stan „H” to na wyjściu jest stan „L”. Charakterystykę przejściową inwertera (układu realizującego funkcję NOT) przedstawiono na rys.1.
Rys.1
Punkt T zaznaczony na wykresie odzwierciedla sytuację, w której UIN=UOUT. Jest to punkt przejścia pomiędzy stanami logicznymi. Odległość punktu T od potencjałów „0” i „1” wyznacza odpowiednie marginesy zakłóceń. Maksymalne „0” na wejściu lub minimalne „1” na wejściu to takie, dla którego nachylenie odcinka charakterystyki przejściowej jest równe jeden. Przy przedstawianiu odpowiedzi inwertera na impuls wejściowy można zdefiniować pewne czasy, które będą wykorzystywane przy pomiarach bramki NAND i NOR.
Zaznaczone na rys.2 czasy oznaczają :
tr - czas narastanie impulsu wyjściowego
tf - czas opadania impulsu wyjściowego
tdHL - czas opóźnienia przy przejściu ze stanu „H” do stanu „L”
tdLH - czas opóźnienia przy przejściu ze stanu „L” do stanu „H”
Rys.2
Czasy opóźnień td mierzone są jako czasu pomiędzy połową zboczy impulsów wejściowego i wyjściowego.
Analiza bramki NAND \plik NAND.CIR\
Bramka NAND realizuje funkcję, której tabelkę przedstawiono na rys.3.
Rys.3
we1 |
we2 |
wy |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
a)
b)
Na rys.3b przedstawiono symbol graficzny bramki NAND (we1, we2 - wejścia bramki, wy - wyjście bramki). Za pomocą programu SPICE zbadano czasy narastania i opadania bramki NAND. Sygnały wejściowe (1), (2) oraz sygnał wyjściowy (3) zostały przedstawione na rys.4a. Pomiarów czasów narastania i opadania dokonano dla różnych wartości parametrów MNTYMXDLY (rodzaj wartości czasów opóźnień ; 1 - minimalne, 2 - typowe, 3 - maksymalne) oraz IO_LEVEL (modelowanie wejść i wyjść). Pomiaru czasów dokonywano od minimalnej wartości napięcia wyjściowego do maksymalnej wartości tego napięcia. Mierzone czasy zaznaczono na rys.4a (w załączeniu). Pomiary dokonane za pomocą programu SPICE :
1) MNTYMXDLY = 1 4) MNTYMXDLY = 1
IO_LEVEL = 1 IO_LEVEL = 2
tr = 6,17 [ns] tr = 5,61 [ns]
tf = 3,68 [ns] tf = 3,67 [ns]
2) MNTYMXDLY = 2 5) MNTYMXDLY = 2
IO_LEVEL = 1 IO_LEVEL = 2
tr = 5,89 [ns] tr = 5,67 [ns]
tf = 3,70 [ns] tf = 3,70 [ns]
3) MNTYMXDLY = 3 6) MNTYMXDLY = 3
IO_LEVEL = 1 IO_LEVEL = 2
tr = 5,67 [ns] tr = 5,67 [ns]
tf = 3,86 [ns] tf = 3,89 [ns]
Aby zmierzyć czasy propagacji przy przejściu ze stanu do stanu zmodyfikowano układ pomiarowy w celu uzyskania możliwości obserwacji analogowej sygnałów sterujących bramką. Na wejścia badanej bramki podano sygnał z wyjść bramek NAND pracujących jako inwertery. Na wejścia inwerterów podano sygnał z generatora. Rys.5
W nawiasach umieszczono oznaczenia potencjałów dla programu SPICE. Do sprawozdania dołączony został wydruk pliku wejściowego schematu przedstawionego na rys.5.
Badana bramka III zostaje przełączana ze stanu „L” do stanu „H” przez sygnał wyjściowy bramki I oznaczony cyfrą (3). Przedstawione to zostało na rys.6a (w załączeniu). Pomiar czasu tdLH dla różnych wartości parametru MNTYMXDLY (IO_LEVEL = 2) przedstawia się następująco :
MNTYMXDLY = 1 => tdLH = 5,16 [ns]
MNTYMXDLY = 2 => tdLH = 11,63 [ns]
MNTYMXDLY = 3 => tdLH = 22,75 [ns]
Ze stanu „H” do stanu „L” bramka III zostaje przełączana przez sygnał wyjściowy bramki II (sygnał oznaczony cyfrą (4). Sposób pomiaru czasu tdHL przedstawiono na rys.6a (w załączeniu). Pomiary czasu tdHL dla różnych wartości parametru MNTYMXDLY są następujące :
MNTYMXDLY = 1 => tdHL = 2,12 [ns]
MNTYMXDLY = 2 => tdHL = 6,30 [ns]
MNTYMXDLY = 3 => tdHL = 14,32 [ns]
Jak wynika z powyższych pomiarów czas przełączania bramki tdLH jest dłuższy niż czas tdHL. Wynika to z budowy bramki NAND TTL. Jest to spowodowane dłuższym czasem wyprowadzania tranzystora z nasycenia niż wprowadzania go w ten stan. Bramki I i II były opisane z wartościami MNTYMXDLY =1 i IO_LEVEL = 2. Oporniki były równej wartości (10 kΩ), aby zapewnić bramkom tę samą amplitudę sygnału wyjściowego.
Analiza bramki NOR \plik NOR.CIR\
Tabelkę funkcji realizowanej przez bramkę oraz jej symbol graficzny przedstawiono na rys.7 (we1, we2 i wy - tak jak w przypadku bramki NAND)
a)
we1 |
we2 |
wy |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
b)
Rys.7
Za pomocą programu SPICE zbadano czas narastania i opadania odpowiedzi bramki NOR. Sygnały wejściowe (1), (2) oraz wyjściowy (3) zostały przedstawione na rys.4b (w załączeniu). Na rys.4b zaznaczono również mierzone czasy. Podobnie jak dla bramki NAND pomiaru czasu tr i tf dokonano dla różnych wartościach parametrów MNTYMXDLY i IO_LEVEL. Wyniki pomiarów przedstawiają się następująco :
1) MNTYMXDLY = 1 4) MNTYMXDLY = 1
IO_LEVEL = 1 IO_LEVEL = 2
tr = 6,34 [ns] tr = 6,34 [ns]
tf = 3,70 [ns] tf = 3,70 [ns]
2) MNTYMXDLY = 2 5) MNTYMXDLY = 2
IO_LEVEL = 1 IO_LEVEL = 2
tr = 6,08 [ns] tr = 6,08 [ns]
tf = 3,64 [ns] tf = 3,64 [ns]
3) MNTYMXDLY = 3 6) MNTYMXDLY = 3
IO_LEVEL = 1 IO_LEVEL = 2
tr = 6,33 [ns] tr = 6,33 [ns]
tf = 3,70 [ns] tf = 3,70 [ns]
Do pomiarów czasów propagacji, przy przełączaniu ze stanu do stanu, bramki NOR zastosowano podobny schemat jak dla bramki NAND (z tego samego co dla bramki NAND powodu). Schemat przedstawiony jest na rys.8.
Rys.8
Cyfry w nawiasach oznaczają numery potencjałów dla programu SPICE. Plik wejściowy dla schematu z rys.8 dołączony został do sprawozdania. Badana bramka III przełączana jest ze stanu „L” do stanu „H” przez sygnał wyjściowy bramki II (sygnał (4)). Zobrazowane to zostało na rys.6b (w załączeniu). Pomiary czasu tdLH dla różnych wartości parametru MNTYMXDLY (przy IO_LEVEL = 2) przedstawiają się następująco:
MNTYMXDLY = 1 => tdLH = 5,53 [ns]
MNTYMXDLY = 2 => tdLH = 12,74 [ns]
MNTYMXDLY = 3 => tdLH = 22,75 [ns]
Ze stanu „H” do „L” bramka III przełączana jest przez sygnał wyjściowy bramki I (sygnał (3)). Całość została przedstawiona na rys. 6b (w załączeniu), a wyniki pomiarów podano poniżej (IO_LEVEL = 2) :
MNTYMXDLY = 1 => tdHL = 2,57 [ns]
MNTYMXDLY = 2 => tdHL = 7,35 [ns]
MNTYMXDLY = 3 => tdHL = 14,30 [ns]
Dla MNTYMXDLY = 3 nastąpiło tak duże opóźnienie sygnału na wyjściu w stosunku do wymuszającego go sygnału na wejściu, że stan „H” na wyjściu pojawił się w momencie, gdy na wejściu panowały już kolejne stany wymuszające z kolei stan „L” na wyjściu. Na wykresie napięć (3) i (5) wygląda to tak, że zbocza narastające obu sygnałów pokrywają się. Obrazuje to rys. 9 (w załączeniu). Oporniki R3, R4, R5 dobrano na tej samej zasadzie co dla bramki NAND. Obserwacja wyścigów
Wyścigi w układach cyfrowych zachodzą wtedy jeśli jedna bramka (zespół bramek) działa wolniej lub szybciej od drugiej (drugiego zespołu) i ta różnica szybkości działania ma wpływ na odpowiedź całego układu. Odpowiedź układu w takich przypadkach nie jest najczęściej zgodna z odpowiedzią oczekiwaną na podstawie teoretycznej funkcji realizowanej przez układ. Do badania wyścigów zastosowano układ jak na rys.10
Rys.10
Liczby w nawiasach oznaczają numery potencjałów dla programu SPICE. Jeśli wejście 1 (we1) oznaczymy przez a , wejście 2 (we2) przez b a wyjście układu będzie funkcją zmiennych a i b to da się ona zapisać w postaci . Po przeprowadzeniu minimalizacji funkcji : widać iż układ przedstawiona na rys.10 realizuje funkcję iloczynu logicznego AND. Jego tabelka stanów powinna więc wyglądać jak przedstawiono na rys.11a (symbol graficzny bramki AND przedstawiono na rys.11b)
Rys.11
we1 |
we2 |
wy |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
a)
b)
Schemat z rys 10 zrealizowany w pliku DIG.CIR niestety nie realizuje funkcji AND. Przebiegi wszystkich sygnałów cyfrowych wewnątrz układu zostały przedstawione na rys.12a (w załączeniu). Na rysunku tym również przedstawiono postać analogową sygnału wyjściowego, który znajduje się cały czas na poziomie „L”. Również na tym rysunku przedstawiono kolejne etapy przechodzenia sygnałów przez układ (sygnały z bramek I, II, III, IV). Pomierzono odpowiednie czasy propagacji tych bramek, ze stanu do stanu, (tdLH i tdHL) w identyczny sposób jak w przypadku bramek NAND i NOR. Sygnał (1) i (2) pochodzące z generatora przyjęto za idealne. Pomierzone czasy przejścia sygnału (1) do bramki V wynoszą (rys.12b):
tdHL I = 14,71 [ns]
tdLH II = 23,01 [ns]
tdHL III = 14,49 [ns]
Również na rys. 12a przedstawiono sygnał wyjściowy bramki IV i zaznaczono czasy opóźnienia bramki IV. Wynoszą one: tdHL IV = 6,72 [ns], tdLH IV = 11,55 [ns]. Zgodnie z teoretyczną funkcją układu pomiędzy 60 [ns] a 80 [ns] na wyjściu powinien pojawić się stan „H” jako, że na wejściach panują stany „H”. Aby na wyjściu pojawił się stan „H” na wejściu bramki V powinny pojawić się dwa stany „L”. Taka sytuacja jednak nigdy nie zachodzi. Zmiana sygnału na we1 dociera do bramki V dopiero po czasie to = tdHL I + tdLH II + tdHL III = 52,21 [ns]. By w ogóle na wyjściu pojawił się stan „H” sygnał z we1 powinien przyjść wcześniej o conajmniej czas t1 = 40 [ns] + to - 80 [ns] = 12,21 [ns]. Wtedy jednak układ też nie działałby poprawnie gdyż na wyjściu pojawiałby się stan „H” gdy na obu wejściach byłyby już inne stany niż „H”. Plik wejściowy schematu do pomiaru czasów opóźnień dołączono do sprawozdania.
Gdy w bramkach I, II ,III parametr MNTYMXDLY zamieniono na wartość 1 układ zaczął już działać prawie poprawnie. Występuje co prawda stan „H” na wyjściu gdy na obu wejściach panuje stan „H” jednak stan „H” na wyjściu trwa dłużej nawet wtedy gdy na wejściach nie panuje już jednocześnie stan „H”. Sytuacja taka wynika również z opóźnień bramek przy przełączaniu. Odpowiednie wykresy przedstawiono na rys. 13 (w załączeniu). Idealny układ przedstawiony na rys.10 powinien mieć charakterystyki przedstawione na rys.12b (w załączeniu). Są to przebiegi otrzymane po analizie pliku DIG2.CIR. Na rys.12b wyraźnie widać, iż idealny układ z rys.10 działa jak bramka AND.
Badanie własnego układu
Układ badany przedstawiony został na rys.20.
Rys.20
Jeśli we1 oznaczymy przez a, we2 przez b to funkcja wyjściowa ma postać :
Układ realizuje więc funkcję EX-OR. Tabelka takiej funkcji została przedstawiona na rys.21a, a symbol graficzny układy EX-OR na rys.21b.
we1 |
we2 |
wy |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Rys.21a
Rys.21b
Układ przedstawiony na rys.20 nie jest układem minimalnym. Zamiast bramek I, II można było zastosować bramkę OR, a zamiast bramek IV, V bramkę AND. Specjalnie zastosowano większą ilość bramek by poprzez wprowadzenie zmian parametrów opóźnienia uzyskać zjawisko wyścigów. Idealne przebiegi sygnałów dla układu z rys.20 przedstawiono na rys.22a i rys.22b (w załączeniu). Jeśli parametr MNTYMXDLY dla wszystkich bramek zastosowanych w układzie ustawimy na wartość 1, wtedy już układ przestaje działać jako idealny EX-OR. Istnieje jeszcze co prawda moment, że przez pewien czas bramka (układ) zachowuje się prawidłowo. Analogiczne przebiegi rys.22 dla wartości parametru MNTYMXDLY = 1 przedstawiono na rys.23 (w załączeniu). Gdy dla wszystkich bramek zostały ustawione typowe wartości parametru MNTYMXDLY (równe 2) układ zachowywał się tak jak na rys.24 (w załączeniu). Na rys.24c wyraźnie widać, iż stan „H” na wyjściu pojawia się w chwili gdy na wejściach panują już stany, które wymuszają naprawdę stan „L”.
Układ z rys.20 został dokładnie zbadany dla parametru MNTYMXDLY = 3 dla wszystkich bramek. Pomiaru czasów opóźnień dokonano tak samo jak w przypadku bramki NAND, NOR i układu z rys.14. Plik wejściowy dla pomiaru czasów opóźnień dołączono do sprawozdania. Przyjęto sygnały (1) i (2) za sygnały idealne. Przebieg sygnałów bramek o parametrze MNTYMXDLY = 3 pokazano na rys.25 (w załączeniu).
Zaznaczone na rys.25 czasy wynoszą odpowiednio :
tdHL I = 14,71 [ns] tdHL IV = 14,46 [ns]
tdHL II = 23,01 [ns] tdLH IV = 23,01 [ns]
tdHL III = 14,71 [ns] tdLH V = 22,92 [ns]
tdLH III = 22,60 [ns] tdHL V = 14,33 [ns]
t1 = 20 [ns]
Na rys.25c widać, iż układ nie działa już poprawnie. Czasy opóźnień wprowadzone przez bramki składowe układu są na tyle duże, iż układ nie wychwycił nawet pierwszej sekwencji wejściowej, która powinna wywołać stan „H” na wyjściu. Powodem tej sytuacji jest między innymi zablokowanie bramki I. Po przełączeniu ze stanu „H” na „L” w czasie tdHL I bramka nie wyszła już ze stanu „L” mimo, iż sygnały wejściowe powinny to spowodować. Chociażby w czasie t1 bramka I powinna przełączyć się na stan „H”. Nie zrobiła tego ponieważ jej czas przełączania tdLH był dłuższy niż czas, przez który na wejściach panowały stany dogodne do zmiany stanu z „L” na „H”. Poza tym kolejne duże opóźnienie wprowadziła bramka II. Bramka II pełni funkcję negatora podobnie jak bramka V, której opóźnienie ma wpływ na końcowy charakter sygnału wyjściowego. Pomijając bramkę V odpowiedź układu zależy od stanu wyjściowego bramki IV (bramka V pełni tylko rolę inwertera). Pierwsza sytuacja gdy na we1 jest „H” a na we2 jest „L” jest pomiędzy 40 [ns] a 60 [ns], wtedy też teoretycznie na wyjściu bramki IV powinien pojawić się stan „L”. Stan ten jednak pojawia się po czasie to=20 [ns] + tdLH III + tdHL IV = 57,32 [ns]. Po czasie to sygnały wejściowe osiągały już prawie wymagany stan po raz drugi. Dlatego też układ nie zareagował na stan we1 = „H” , we2 = „L” ani na stan we1 = „L” , we2 = „H”. Stan ostatni bowiem pojawił się też przed upływem czasu to.
Pomiarów wszystkich czasów opóźnień dokonywano tą samą techniką. Wszystkie sygnały analogowe miały stan „H” jako napięcia o wartości około 3,45 [V}, natomiast stan „L” jako napięcie o wartości około 90 [mV]. Poziom środkowy, na wysokości którego dokonywano pomiarów miał wartość 1,77 [V]. Próbny sygnał wraz z zaznaczonymi wartościami napięć przedstawiono na rys.26.