Instrukcja do ćwiczenia 1
Transkrypt
Instrukcja do ćwiczenia 1
Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instrukcja do przedmiotu PODSTAWY MIKROELEKTRONIKI (LABORATORIUM) Ćwiczenia 1, 2, 3 Część 1: Projektowanie i symulacja układu elektrycznego prof. nzw. dr hab. inż. Witold Pleskacz mgr inż. Jacek Grądzki Instytut Mikroelektroniki i Optoelektroniki WARSZAWA, październik 2012 r. Spis treści 1. Informacje wstępne ....................................................................................................... 3 2. Wybrane informacje o programie SPICE ..................................................................... 3 2.1. Budowa pliku danych wejściowych ............................................................... 3 2.2. Zasady opisu schematu układu....................................................................... 4 2.3. Instrukcje sterujące przebiegiem symulacji ................................................... 5 2.3.1. Analiza punktu pracy ...................................................................... 5 2.3.2. Analiza stałoprądowa ...................................................................... 5 2.3.3. Analiza czasowa .............................................................................. 5 2.3.4. Określenie początkowego stanu układu .......................................... 6 2.3.5. Modele elementów .......................................................................... 6 2.3.6. Wydruk wyników ............................................................................ 7 2.3.7. Zmiana wartości parametru oraz rodzaju symulacji........................ 7 2.3.8. Definicja i użycie podukładów ........................................................ 8 2.4. Format opisu wybranych elementów ............................................................. 8 2.4.1. Rezystancja...................................................................................... 8 2.4.2. Pojemność ....................................................................................... 8 2.4.3. Źródło napięciowe stałoprądowe .................................................... 9 2.4.4. Źródło napięciowe impulsowe ........................................................ 9 2.4.5. Tranzystor MOS .............................................................................. 9 2.5. Model tranzystora MOS ............................................................................... 10 3. Przykład symulacji elektrycznej ................................................................................. 11 3.1. Tworzenie pliku danych ............................................................................... 12 3.2. Uruchomienie programu SPICE i analiza wyników .................................... 13 4. Przebieg ćwiczenia...................................................................................................... 14 5. Parametry tranzystorów w technologii CMOS1.0 µm................................................ 15 6. Zasady zaliczenia laboratoriów 1, 2, 3........................................................................ 16 6.1. Wymagania ogólne....................................................................................... 17 6.2. Informacje dotyczące sprawozdania elektronicznego .................................. 17 Data aktualizacji: 15.10.2012 Copyright © 2011 by Witold Pleskacz –2– 1. Informacje wstępne W procesie projektowania układu scalonego jednym z etapów jest przeprowadzenie symulacji elektrycznej całości bądź wybranych fragmentów układu. Umożliwia ona dokładne określenie wielu podstawowych parametrów takich jak: poziomy napięć, pobór prądu, czasy przełączania i opóźnień, charakterystyki częstotliwościowe układu itp. Na podstawie wyników symulacji można dokonać korekty schematu i wartości elementów tak, aby spełnić stawiane wymagania. Obecnie istnieje wiele systemów służących przeprowadzaniu symulacji elektrycznej m.in. programy Spice, Spectre, Eldo, SpectreDirect, HSpice, Smash, Saber, PSpice, ADSsim, SmartSpice, Optima, IMiOSpice. Niemniej ogólne zasady przeprowadzania symulacji pozostają podobne. Ćwiczenie będzie polegało na przeprowadzeniu symulacji elektrycznej fragmentu cyfrowego układu scalonego CMOS oraz na modyfikacji układu w taki sposób, aby uzyskać wymagane parametry elektryczne. Otrzymane wyniki stanowią część składową ćwiczeń następnych. Podczas ćwiczenia do przeprowadzenia symulacji elektrycznej będzie używany program SPICE - jeden z najbardziej rozpowszechnionych na świecie symulatorów układów elektronicznych, w wersji IMiOSpice na komputer Macintosh. Wyniki symulacji elektrycznej będzie można oglądać w postaci graficznej. Dodatkowo, podczas wykonywania ćwiczenia, studenci będą mieli możliwość zapoznania się ze środowiskiem programowym Mac OS X. W dalszej części instrukcji zamieszczono następujące informacje: • Opis standardu programu SPICE w zakresie niezbędnym do wykonania ćwiczenia. Osoby przygotowujące się do zajęć proszone są również o dokładne zapoznanie się z opisem programu “IMiOSpice – Circuit Simulator for Mac OS X” (Short User’s Guide) zamieszczonym na stronie internetowej przedmiotu. • Przykład symulacji elektrycznej. Przeanalizowanie tego przykładu może być pomocne w zrozumieniu zasad użytkowania programu. • Opis ćwiczenia. Informacje na temat zadania, które należy wykonać. • Zasady zaliczenia ćwiczeń 1, 2, 3. 2. Wybrane informacje o programie SPICE 2.1. Budowa pliku danych wejściowych Dane o układzie przeznaczonym do symulacji umieszcza się w pliku tekstowym. Nazwa pliku powinna być zakończona rozszerzeniem .CIR. Wyniki działania programu zostaną umieszczone w pliku o takiej samej nazwie z rozszerzeniem .OUT. Do utworzenia pliku można wykorzystywać dowolny edytor umożliwiający edycję tekstu ASCII np. TextWrangler itp. Plik danych zawiera następujące informacje: • opis schematu elektrycznego, • opis źródeł zasilania i źródeł wymuszających sygnały na wejściach, • opis modeli elementów półprzewodnikowych występujących w układzie, –3– • instrukcje sterujące przebiegiem symulacji oraz wyprowadzaniem wyników. Plik danych wejściowych składa się z wierszy. Pierwszy wiersz w pliku wejściowym jest zawsze traktowany jako tytułowy i może zawierać dowolny tekst (również pusty). Na końcu pliku musi znajdować się instrukcja .END zakończona znakiem zmiany wiersza. Kolejność pozostałych wierszy jest dowolna. Wiersz nie powinien zawierać więcej niż 72 znaki. Jeżeli pierwszym znakiem w wierszu jest znak +, to wiersz ten traktowany jest jako kontynuacja poprzedniego. Wiersze, w których pierwszym znakiem jest znak *, są traktowane jako komentarz. Wiersze składają się ze słów (ciągów znaków) oddzielonych co najmniej jednym znakiem spacji. Znak tabulacji nie jest traktowany jako separator i nie powinien być używany. Zasadniczo w opisie układu powinno korzystać się z dużych liter (taki jest pierwotny standard programu Spice). Używanie małych liter jest dopuszczalne w wierszu tytułowym i w komentarzach. Niektóre wersje programu Spice dopuszczają małe litery również w opisie. Wartości liczbowe występujące w pliku mogą być całkowite (np. numery węzłów schematu) lub rzeczywiste (np. wartości parametrów elementów układu). Liczby rzeczywiste mogą być zapisywane jako całkowite, z kropką dziesiętną (np. 12.345) lub w postaci wykładniczej (np. 1.2345E1). Możliwy jest również zapis w postaci całkowitej lub z kropką dziesiętną zakończony literą określającą mnożnik całej wartości. Dopuszczalne litery wymieniono w tabeli. Przykładowo zapisy: 1000, 1000.0, 10.00E2, 1K, 1.0K, 0.001MEG przedstawiają tę samą liczbę. T 1E12 K 1E3 N 1E-9 G 1E9 M 1E-3 P 1E-12 MEG 1E6 U 1E-6 F 1E-15 Litery występujące po literze określającej mnożnik, a przed najbliższym znakiem odstępu są pomijane. Przykładowo zapisy: 1000, 1KOHM, 1KV przedstawiają tę samą liczbę. Natomiast zapis: 1000OHM jest niepoprawny, zaś zapis 10FARAD jest równoważny 10F czyli 10E-15. 2.2. Zasady opisu schematu układu Jak już wspomniano wcześniej opis układu podzielony jest na wiersze – instrukcje. Każdy z tych wierszy opisuje pojedynczy element: jego rodzaj, miejsca podłączenia wyprowadzeń, wartości parametrów elementu itp. Elementy są identyfikowane przez nazwy. Pierwsza litera nazwy określa rodzaj elementu (np. R – rezystancja, C – pojemność, itp.). Pozostałe litery nazwy muszą jednoznacznie identyfikować element (tzn. nie może być dwóch elementów o tej samej nazwie). Nazwy elementów mogą być dowolnej długości, ale program używa tylko 8 pierwszych znaków. Węzły układu są numerowane nieujemnymi liczbami całkowitymi. Węzeł o numerze 0 jest zarezerwowany dla poziomu odniesienia układu (masy) i musi wystąpić w opisie. Wszystkie napięcia podawane w pliku –4– wyjściowym są odniesione do tego węzła. Każdy z węzłów użytych w opisie musi tam wystąpić co najmniej dwa razy (tzn. wszystkie wyprowadzenia elementów muszą być podłączone w układzie). Ponadto wszystkie węzły muszą posiadać połączenie poprzez układ z węzłem masy. Jeżeli którykolwiek z węzłów nie spełnia tych warunków, to symulacja jest przerywana i sygnalizowany jest błąd. 2.3. Instrukcje sterujące przebiegiem symulacji Program SPICE umożliwia przeprowadzanie kilku rodzajów symulacji elektrycznej. Poniżej zamieszczono informacje o instrukcjach programu sterujących wykonywaniem symulacji przeprowadzanych w laboratorium. 2.3.1. Analiza punktu pracy Format instrukcji: .OP Instrukcja ta powoduje wyznaczenie punktu pracy każdego elementu w układzie. W pliku wyjściowym umieszczane są wartości napięć poszczególnych węzłów, wartości prądów źródeł występujących w układzie, moc wydzielana w elementach itp. Przy wyznaczaniu parametrów pojemności są traktowane jako rozwarcie, a indukcyjności jako zwarcie. 2.3.2. Analiza stałoprądowa Format instrukcji: .DC źródło start stop krok Instrukcja służy do przeprowadzenia analizy stałoprądowej układu przy zmieniającej się wartości jednego ze źródeł. Nazwa źródła (prądowego lub napięciowego) podana jest jako parametr źródło. Parametry start, stop i krok określają początkową i końcową wartość parametru źródła oraz krok tego parametru. W trakcie analizy wyznaczane są napięcia we wszystkich węzłach oraz prądu płynące przez źródła. Obliczone wartości można umieszczać w pliku wyjściowym przy pomocy instrukcji .PRINT. Przykład wykorzystania: .DC V1 0 5 0.1 Instrukcja powoduje przeprowadzenie analizy stałoprądowej przy napięciu źródła V1 zmieniającym się od 0 V do 5 V z krokiem 0,1 V. 2.3.3. Analiza czasowa Format instrukcji: .TRAN krok stop [start [krokmax]] [UIC] Instrukcja służy do przeprowadzenia analizy czasowej układu. Analiza zawsze rozpoczyna się w chwili czasowej 0 i jest przeprowadzana z krokiem czasowym krok aż do osiągnięcia chwili czasowej stop. Przy pomocy parametru start można określić chwilę czasową pierwszego zestawu wyników umieszczanego w pliku wynikowym. Program SPICE wykonując analizę czasową automatycznie dobiera wewnętrzny krok czasowy na –5– podstawie zmienności przebiegów w układzie. Podanie parametru krokmax powoduje, że krok symulacji nie przekroczy zadanej wartości. Podanie parametru UIC (ang. use initial conditions) powoduje, że jako rozwiązanie początkowe w analizie czasowej przyjmuje się rozwiązanie otrzymane w wyniku działania instrukcji .IC (patrz punkt 2.3.4). Aby w pliku wyjściowym otrzymać wyniki analizy czasowej należy wykorzystać instrukcję .PRINT. Liczba punktów wyprowadzanych przy pomocy instrukcji .PRINT nie powinna przekraczać 200. Przykłady wykorzystania: .TRAN 20NS 10US Instrukcja powoduje przeprowadzenie analizy czasowej układu w przedziale od 0 s do 10 µs z krokiem 20 ns. .TRAN 10NS 10US 5US 10NS UIC Instrukcja powoduje przeprowadzenie analizy z krokiem 10 ns w przedziale czasu od 0 s do 10 µs. Na wydruku zamieszczone będą wyniki analizy począwszy od chwili 5 µs. Wewnętrzny krok symulacji nie będzie przekraczał 10 ns. Jako rozwiązanie początkowe zostaną wykorzystane wyniki wykonania instrukcji .IC. 2.3.4. Określenie początkowego stanu układu Format instrukcji: .IC V(N1)=wartość1 ... V(Nn)=wartośćn Instrukcja ta działa na dwa sposoby, zależnie od obecności parametru UIC w instrukcji .TRAN: a) Jeżeli UIC jest obecne, to wyznaczany jest stan całego układu, przy założeniu wartości określonych w instrukcji .IC. b) Jeżeli UIC nie jest użyte w instrukcji .TRAN, to przy wyznaczaniu rozwiązania początkowego analizy czasowej jako pierwsze przybliżenie używane są wartości podane w instrukcji .IC. Przykład wykorzystania: .IC V(2)=5V V(5)=1.3V Działanie, jak opisano powyżej, ale zakłada się wartość napięcia w węźle drugim 5 V, zaś w węźle piątym 1,3 V. 2.3.5. Modele elementów Format instrukcji: .MODEL nazwa typ [par1=wart1 ...] Instrukcja służy do definiowania nowych modeli elementów czynnych. Parametr nazwa jest nazwą nowego modelu, którą można używać przy definiowaniu elementów w układzie. Parametr typ określa rodzaj elementu czynnego. Może on przybierać tylko wartości podane w tabelce poniżej. D dioda NPN tranzystor bipolarny npn PNP tranzystor bipolarny pnp NJF tranzystor złączowy n-kanałowy PJF tranzystor złączowy p-kanałowy NMOS tranzystor MOS n-kanałowy PMOS tranzystor MOS p-kanałowy –6– Rodzaje i liczba parametrów zależy od typu elementu. W definicji modelu można podawać dowolną liczbę parametrów modelu. Przykład wykorzystania: .MODEL MOS1 NMOS LEVEL=2 VTO=1V KP=20U Instrukcja definiuje tranzystor o nazwie MOS1 jako tranzystor MOS z kanałem typu n. W analizie wykorzystany będzie drugi model tranzystora. Napięcie progowe tego tranzystora wynosi 1 V zaś parametr KP ma wartość 20 µA/V2. Pozostałe parametry modelu tranzystora przyjmują wartości domyślne. 2.3.6. Wydruk wyników Format instrukcji: .PRINT typ par1 [par2 ...] Instrukcja powoduje umieszczenie w pliku wynikowym wydruku wielkości wyszczególnionych w liście parametrów (par1, par2 itd.). W jednej instrukcji można umieścić do 8 wielkości. Parametr typ określa typ analizy, której wyniki mają być wypisane i może przyjmować wartości DC lub TRAN. Jako wielkości do wydruku można wyszczególnić napięcia w węzłach układu lub prądy płynące przez źródła napięciowe. Dlatego w celu wydrukowania wartości prądu w gałęzi w której nie ma źródła należy wprowadzić dodatkowe źródło napięciowe o zerowym napięciu. Parametry określające wielkości do wydruku zaczynają się na literę V (w przypadku napięcia) lub I (w przypadku prądu). Po literze identyfikującej wielkość należy umieścić w nawiasach: numer węzła w przypadku napięcia, lub nazwę źródła w przypadku prądu. Przykład wykorzystania: .PRINT DC V(3) I(V1) Instrukcja powoduje wydrukowanie wyników analizy stałoprądowej w postaci wartości napięcia w węźle 3 układu i wartości prądu płynącego przez źródło V1. 2.3.7. Zmiana wartości parametru oraz rodzaju symulacji Format instrukcji (w wersji zaimplementowanej w IMIOSpice) ma cztery warianty: ALTER instancja=war_par Instrukcja służy do zmiany wartości parametrów instancji (instancja), które są opisane jednym parametrem. Są to np. rezystory, kondensatory, jak również źródła prądowe itp. Nowa wartość parametru określona jest przez war_par. Przykład wykorzystania: ALTER R10=10K Instrukcja zmienia wartość rezystancji rezystora R10 na 10 kΩ. ALTER @nazwa_modelu[par_modelu]=war_par Instrukcja służy do zmiany wartości wskazanego parametru (par_modelu) danego modelu (nazwa_modelu). Nowa wartość parametru określona jest przez war_par. Przykład zastosowania: ALTER @QN[CJC]=2p Instrukcja służy do zmiany wartości parametru CJC modelu tranzystora bipolarnego o nazwie QN. Nowa –7– wartość tego parametru to 2 pF. ALTER @instancja[par_instancji]=war_par Instrukcja służy do zmiany wartości wskazanego parametru (par_instancji) danej instancji (instancja). Nowa wartość parametru określona jest przez war_par. Przykład zastosowania: ALTER @M1[W]=150N Instrukcja służy do zmiany wartości parametru W (szerokości kanału) tranzystora M1. Nowa wartość tego parametru to 150 nm. ALTER ANALYSIS Instrukcja służy do zmiany rodzaju przeprowadzanej analizy. 2.3.8. Definicja i użycie podukładów Format instrukcji: .SUBCKT nazwa n1 n2 … nN <opis podukładu> .ENDS Instrukcja powoduje zdefiniowanie podukładu o nazwie nazwa oraz wejściach/wyjściach od n1 do nN. Początek definicji zaczyna się od polecenia .SUBCKT a kończy poleceniem .ENDS. Aby użyć zdefiniowany podukład w innym układzie/podukładzie należy go wywołać w następujący sposób: Xyyyyyyy w1 w2 … wN nazwa Nazwa używanego podukładu może być dowolna, ale musi rozpoczynać się od X. w1 do wN to węzły, z którymi wyprowadzenia podukładu łączymy z naszym układem, natomiast nazwa to nazwa wykorzystywanego podukładu. Przykład wykorzystania .SUBCKT przedstawiony jest w p. 3.1. 2.4. Format opisu wybranych elementów 2.4.1. Rezystancja Format opisu: Rxxxxxxx w1 w2 wartość Opis definiuje idealną skupioną rezystancję w układzie. Parametr Rxxxxxxx jest nazwą rezystancji. Parametry w1, w2 to numery węzłów do których dołączona jest rezystancja. Parametr wartość to rezystancja podana w omach. Przykład wykorzystania: R1 2 10 12K Instrukcja definiuje rezystancję o nazwie R1 włączoną pomiędzy węzłami 2 i 10 o wartości 12 kΩ. 2.4.2. Pojemność –8– Format opisu: Cxxxxxxx w1 w2 wartość Opis definiuje idealną skupioną pojemność w układzie. Parametr Cxxxxxxx jest nazwą pojemności. Parametry w1, w2 to numery węzłów do których dołączona jest pojemność. Parametr wartość to pojemność podana w faradach. Przykład wykorzystania: C1 5 12 33N Instrukcja definiuje pojemność o nazwie C1 włączoną pomiędzy węzłami 5 i 12 o wartości 33 nF. 2.4.3. Źródło napięciowe stałoprądowe Format opisu: Vxxxxxxx w+ w- DC wartość Opis definiuje idealne źródło napięciowe. Parametr Vxxxxxxx to nazwa źródła. Parametry w+ i woznaczają numery węzłów układu do których dołączony jest odpowiednio dodatni i ujemny biegun źródła. Parametr wartość określa napięcie źródła w woltach. Przykład wykorzystania: V1 2 0 5 Instrukcja definiuje źródło napięciowe stałoprądowe o nazwie V1, podłączone pomiędzy węzeł 2 (dodatni biegun źródła) a węzeł 0 (ujemny biegun źródła) układu, o napięciu 5 V. 2.4.4. Źródło napięciowe impulsowe Format opisu: Vxxxxxxx w+ w- PULSE v1 v2 t0 tr tf szerokość okres Opis definiuje idealne źródło napięciowe o charakterze impulsowym. Źródło generuje przebieg prostokątny o parametrach zadanych w opisie. Parametr Vxxxxxxx to nazwa źródła. Parametry w+ i w- oznaczają numery węzłów układu do których dołączony jest odpowiednio dodatni i ujemny biegun źródła. Parametr v1 określa niski poziom napięcia fali prostokątnej, parametr v2 – poziom wysoki. Wartości napięć podaje się w woltach. Parametr t0 określa początkowe opóźnienie początku pierwszego zbocza od chwili zerowej symulacji. Parametr tr to czas trwania zbocza narastającego, zaś parametr tf to czas trwania zbocza opadającego. Parametry szerokość i okres to odpowiednio czas trwania impulsu i okres fali prostokątnej. Wszystkie czasy podaje się w sekundach. UWAGA: znaczenie określeń: niski i wysoki poziom napięcia, zbocze narastające i opadające zależy od stosunku napięć v1 i v2. Mają one dosłowne znaczenie gdy v1<v2. W przeciwnym przypadku znaczenie jest odwrotne. Przykład wykorzystania: VIN 4 6 PULSE 0 5 0N 10N 10N 40N 100N Instrukcja definiuje idealne źródło napięciowe fali prostokątnej o nazwie VIN podłączone pomiędzy węzły 4 (dodatni biegun źródła) i 6 (ujemny biegun źródła) układu. Niski poziom napięcia wynosi 0 V, wysoki 5 V. Źródło rozpoczyna pracę w zerowej chwili symulacji. Czasy narastania i opadania zboczy wynoszą 10 ns. Czas trwania wysokiego poziomu napięcia 40 ns, zaś okres fali 100 ns. Zatem jest to fala o współczynniku wypełnienia 0.5. 2.4.5. Tranzystor MOS –9– Format opisu: Mxxxxxxx wd wg ws wb model [l] [w] [ad] [as] Opis definiuje tranzystor MOS. Parametr Mxxxxxxx to nazwa tranzystora. Parametry wd wg ws wb to numery węzłów do których dołączono wyprowadzenia drenu, bramki, źródła i podłoża. Parametr model jest to nazwa modelu tranzystora. Model ten musi być zdefiniowany w odpowiedniej instrukcji .MODEL. Parametry l i w to odpowiednio długość i szerokość kanału tranzystora wyrażona w metrach. Wartość domyślna tych parametrów wynosi 100 µm. Parametry ad i as określają powierzchnię drenu i źródła w metrach kwadratowych. Wartość domyślna wynosi 0 m2. Pozostałe parametry tranzystora MOS należy określić przy pomocy instrukcji .MODEL. Przykład wykorzystania: M1 2 1 0 0 NMOS1 10U 5U 25E-12 25E-12 Instrukcja definiuje tranzystor MOS o nazwie M1. Wyprowadzenia są podłączone do następujących węzłów układu: dren do 2, bramka do 1, źródło i podłoże do 0. Tranzystor ma parametry określone w modelu o nazwie NMOS1. Wymiary tranzystora mają następujące wartości: długość 10 µm, szerokość 5 µm, powierzchnia drenu i źródła 25 µm2. 2.5. Model tranzystora MOS Program SPICE dysponuje trzema podstawowymi modelami tranzystora MOS oznaczonymi jako modele poziomu 1, 2 lub 3. Model poziomu 1 jest najprostszy, poziom 3 bardziej złożony. Natomiast w ćwiczeniu używany będzie tylko model BSIM3, oznaczany jako model poziomu 8. Model tranzystora MOS definiuje się przy pomocy instrukcji .MODEL (patrz punkt 2.3.5). Poniżej podano wybrane parametry modelu tranzystora MOS. Nazwa Jednostka Wartość Znaczenie domyślna LEVEL - 1 Poziom modelu (Model index) VTO V 0 Napięcie progowe (Zero bias threshold) KP A/V2 20E-6 Transkonduktancja (Transconductance) PHI V 0.6 Potencjał powierzchniowy (Surface potential) GAMMA V0.5 0 Współczynnik zależności napięcia progowego od napięcia polaryzacji podłoża (Bulk threshold parameter) LAMBDA V-1 0 Współczynnik modulacji długości kanału napięciem dren-źródło (Channel length modulation) XJ m 0 Głębokość metalurgiczna złącza dren (źródło) podłoże (Metallurgical junction depth) Nazwa Jednostka Wartość Znaczenie domyślna – 10 – LD m 0 Zasięg dyfuzji lateralnej obszarów źródła i drenu (Lateral diffusion) CJ F/m2 0 Pojemność części płaskiej złącza dren (źródło) podłoże dla zerowej polaryzacji (Zero bias bulk junction bottom capacitance) CGSO F/m 0 Pojemność nakładki bramki nad źródłem na jednostkę szerokości kanału (Gate-source overlap capacitance) CGDO F/m 0 Pojemność nakładki bramki nad drenem na jednostkę szerokości kanału (Gate-drain overlap capacitance) TOX m 100E-9 Grubość tlenku bramkowego (Oxide thickness) PB V 0.8 Napięcie dyfuzyjne złącza dren (źródło) - podłoże (Bulk junction potential) RSH Ω/ 0 Rezystancja na kwadrat obszarów drenu i źródła (Drain and source diffusion sheet resistance) MJ - 0.5 Wykładnik we wzorze opisującym zależność pojemności części płaskiej złącza dren (źródło) podłoże od napięcia (Bulk junction bottom grading coefficient) CJSW F/m 0 Pojemność części bocznej złącza dren (źródło) podłoże dla zerowej polaryzacji (Zero bias bulk junction sidewall capacitance) MJSW - 0.33 Wykładnik we wzorze opisującym zależność pojemności części bocznej złącza dren (źródło) podłoże od napięcia (Bulk junction sidewall grading coefficient) A/m2 JS 0 Prąd nasycenia złącza dren (źródło) - podłoże (Bulk junction saturation current density) NSUB cm-3 0 Koncentracja domieszki w podłożu (Substrate doping) NFS cm-2 0 Koncentracja szybkich stanów powierzchniowych (Fast surface state density) UO cm2/Vs 600 Ruchliwość nośników ładunku (Surface mobility) Nazwa Jednostka Wartość Znaczenie domyślna – 11 – na powierzchni UCRIT V/cm 1E4 Krytyczne natężenie pola elektrycznego w półprzewodniku przy którym występuje spadek ruchliwości nośników (Critical field for mobility degradation) UEXP - 0 Współczynnik zmiany ruchliwości nośników przy dużym natężeniu pola elektrycznego (Critical field exp. for mobility degradation) VMAX m/s 0 Maksymalna prędkość unoszenia nośników w polu elektrycznym (Maximum drift velocity) NEFF - 1 Współczynnik całkowitego ładunku w kanale (Total channel charge coefficient) DELTA - 0 Współczynnik zależności napięcia progowego od długości kanału (Width effect on threshold voltage) 3. Przykład symulacji elektrycznej W przykładzie zostanie opisane przeprowadzenie symulacji elektrycznej (analiza stałoprądowa i czasowa) inwertera CMOS z obciążeniem pojemnościowym przy użyciu programu IMiOSpice. 3.1. Tworzenie pliku danych W pierwszej kolejności należy stworzyć plik opisujący symulowany układ. Można wykorzystać do tego celu edytory umożliwiające edycję tekstu ASCII np. TextWrangler. Przykład prostego pliku opisującego inwerter: Inwerter CMOS * modele tranzystorow .MODEL N1 NMOS LEVEL=1 VTO=1 KP=50U .MODEL P1 PMOS LEVEL=1 VTO=-1.1 KP=40U * zrodla zasilajace VDD 3 0 DC 5.0V V1 1 0 DC 0V *V1 1 0 PULSE 0.0 5.0 0N 5N 5N 45N 100N * opis M1 2 1 M2 2 1 C1 2 0 ukladu 0 0 N1 L=2U W=2U 3 3 P1 L=2U W=2U 0.1P * symulacja .DC V1 0 5 0.1 *.TRAN 1N 100N * wykonanie programu i wydruk wynikow .CONTROL RUN PLOT V(1) V(2) – 12 – .ENDC .END Przykład zastosowania polecenia ALTER: Inwerter CMOS * modele tranzystorow .MODEL N1 NMOS LEVEL=1 VTO=1 KP=50U .MODEL P1 PMOS LEVEL=1 VTO=-1.1 KP=40U * zrodla zasilajace VDD 3 0 DC 5.0V V1 1 0 DC 0V *V1 1 0 PULSE 0.0 5.0 0N 5N 5N 45N 100N * opis M1 2 1 M2 2 1 C1 2 0 ukladu 0 0 N1 L=2U W=2U 3 3 P1 L=2U W=2U 0.1P * symulacja .DC V1 0 5 0.1 *.TRAN 1N 100N * wykonanie programu i wydruk wynikow .CONTROL RUN PLOT V(1) V(2) ALTER @M1[W]=2.5U RUN PLOT V(1) V(2) ALTER @M1[W]=3U RUN PLOT V(1) V(2) ALTER @M1[W]=3.5U RUN PLOT V(1) V(2) .ENDC .END Przykład zastosowania polecenia SUBCKT: Inwerter CMOS * modele tranzystorow .MODEL N1 NMOS LEVEL=1 VTO=1 KP=50U .MODEL P1 PMOS LEVEL=1 VTO=-1.1 KP=40U * zrodla zasilajace VDD 3 0 DC 5.0V V1 1 0 DC 0V *V1 1 0 PULSE 0.0 5.0 0N 5N 5N 45N 100N * opis podukladu .SUBCKT inwerter IN OUT VDD VSS M1 OUT IN VSS VSS N1 L=2U W=2U M2 OUT IN VDD VDD P1 L=2U W=2U .ENDS * opis ukladu X1 1 2 3 0 inwerter C1 2 0 0.1P – 13 – * symulacja .DC V1 0 5 0.1 *.TRAN 1N 100N * wykonanie programu i wydruk wynikow .CONTROL RUN PLOT V(1) V(2) .ENDC .END Plik należy zapisać pod nazwą INWERTER.CIR. Przy edycji pliku należy pamiętać o umieszczeniu wiersza tytułowego (pierwszy wiersz pliku), oraz o zakończeniu pliku instrukcją .END ze znakiem nowego wiersza. Brak instrukcji .END lub znaku końca wiersza powoduje, że plik nie może być poprawnie odczytany przez program. Proszę zwrócić uwagę na instrukcje dotyczące sterowania wykonaniem programu i wykreślenia wyników, które nie są typowe dla standardu programu SPICE. Zaczynają się one instrukcją .CONTROL i muszą się kończyć instrukcją .ENDC. 3.2. Uruchomienie programu SPICE i analiza wyników Podczas ćwiczenia do przeprowadzenia symulacji elektrycznej będzie używany program SPICE w wersji IMiOSpice na komputer Macintosh. Wyniki symulacji elektrycznej będzie można oglądać w postaci graficznej. W celu uruchomienia programu SPICE, przeprowadzenia symulacji i analizy wyników należy postępować zgodnie z informacjami zawartymi w instrukcji: “IMiOSpice – Circuit Simulator for Mac OS X” (Short User’s Guide). Powyżej zamieszczony plik dostosowany jest do symulacji stałoprądowej (badanie charakterystyki przejściowej inwertera). Instrukcje dotyczące analizy czasowej zostały w nim wykomentowane. Program IMiOSpice posiada możliwości wykonania dwóch (lub więcej) różnych analiz jednocześnie. W tym celu należy zastosować instrujcję ALTER ANALYSIS. 4. Przebieg ćwiczenia Początek ćwiczenia będzie przeznaczony na naukę posługiwania się programem IMiOSpice na komputerze Macintosh. W celu szybkiego opanowania sposobu użycia tego programu zaleca się uważne przeanalizowanie opisu przykładowego układu oraz zapoznanie się z instrukcją użytkownika programu. Następnie każda osoba otrzyma zadanie, którego rozwiązanie będzie warunkiem zaliczenia ćwiczenia. Będzie ono polegało na wykonaniu projektu schematu elektrycznego bramki logicznej oraz wykonaniu serii symulacji elektrycznych. Celem symulacji jest: • sprawdzenie czy realizowana jest zadana funkcja logiczna (utworzenie tzw. tablicy prawdy bramki); • dobór odpowiednich wymiarów tranzystorów tak, aby bramka posiadała symetryczną charakterystykę – 14 – przejściową; • określenie opóźnień wnoszonych przez bramkę. Podczas projektowania schematu elektrycznego należy określić wymiary tranzystorów wchodzących w skład bramki. Symulacje zaczynamy od minimalnych wymiarów tranzystorów: W=1.25E-06 L=1E-06. Bramka powinna składać się wyłącznie z tranzystorów (nie odwołujemy się w jej definicji do innych bramek). Przy określaniu tablicy prawdy bramki przyjąć następującą konwencję opisu sygnałów wejściowych dla bramki: <A,B,C,D>, gdzie A oznacza najbardziej znaczący bit. Wektory testowe należy podawać na wejście bramki według malejących wartości NKB, np. od <1111> do <0000> w przypadku bramki czterowejściowej. Opis źródła impulsowego podawanego na wejście z najmniej znaczącym bitem może mieć postać np. V1 w1 w0 PULSE 0.0 5.0 0N 1N 1N 19N 40N, dla analizy czasowej układu .TRAN 0.1N 320N. Podczas testowania bramki ze względu na wnoszone opóźnienie (pomiar czasu propagacji sygnału) kierujemy się następującymi zasadami. Dla badanej bramki, np. 2-wejściowej bramki kombinacyjnej NAND2, w testach określamy po 4 czasy dla obciążenia 1 inwerterem: - opóźnienie od wejścia A do wysokiego poziomu na wyjściu (toa), - opóźnienie od wejścia A do niskiego poziomu na wyjściu (tob), - opóźnienie od wejścia B do wysokiego poziomu na wyjściu (toa), - opóźnienie od wejścia B do niskiego poziomu na wyjściu (tob). Czasy mierzone są w konwencji od 50% zbocza do 50% zbocza. Rysunek 1. Przykładowe schematy do pomiaru czasów opóźnień oraz przebiegi z symulacji Podczas rozwiązywania zadania zaleca się następujący sposób postępowania: 1. Zapoznaj się z symulowanym układem, określ jakie spełnia funkcje i spróbuj ocenić jakościowo, jak będą wyglądały spodziewane wyniki symulacji. 2. Na rysunku schematu układu ponumeruj węzły i nadaj nazwy elementom. – 15 – 3. Sformułuj opis schematu symulowanego układu i zapisz go w pliku danych. W celu przyśpieszenia tej czynności można wykorzystać plik z przykładowym układem. 4. Określ parametry modeli elementów i wprowadź do pliku opisy modeli. 5. Określ napięcia zasilania i sygnały wejściowe i umieść ich opisy w pliku danych. 6. Wprowadź do pliku danych instrukcje określające rodzaje symulacji i format wydruku wyników. 7. Wykonaj symulację, obejrzyj i oceń wyniki. Czy są one zgodne z przewidywaniami? Czy realizowana jest założona funkcja logiczna? W razie potrzeby zmodyfikuj symulowany układ, wprowadź zmiany do pliku danych i powtórz symulację. Uwaga! Krok wszelkich symulacji powinien być na tyle mały, by przebieg napięcia wyjściowego przypominał linię ciągłą, nie łamaną. 8. Przygotuj do wydruku ostateczną postać pliku danych oraz wyniki – będą potrzebne do sprawozdania. 9. Przed przystąpieniem do ewentualnego drukowania wyników należy skonsultować się z prowadzącym ćwiczenie. 5. Parametry tranzystorów w technologii CMOS1.0 µm W ćwiczeniu będą wykorzystywane parametry tranzystorów wykonanych w technologii ECPD1.0. Wartości parametrów są udostępniane przez producenta w celu wykorzystania ich w procesie projektowania układów scalonych. Parametry tranzystora MOS zostały opisane w rozdziale 2.5. .MODEL NCHAN NMOS LEVEL=8 + MOBMOD=1 CAPMOD=2 + VTH0=0.7023 K1=0.2909 K2=0.01884 K3=0 + K3B=0 DVT0=13.5 DVT1=1 DVT2=0 + DVT0W=0 DVT1W=0 DVT2W=0 + NCH=5.955e+16 VOFF=-0.08 KETA=-0.025 VBM=5 + PSCBE1=2.7e+08 PSCBE2=9e-06 DSUB=0.5 NFACTOR=0.2 + ETA0=0.3694 ETAB=-0.2115 U0=705.5 + UA=3e-09 UB=6.5e-19 UC=5e-11 + EM=4.1e+07 PCLM=1.3 B0=0 B1=0 + PDIBLC1=0.1 PDIBLC2=0.001 PDIBLCB=0 + A0=1 A1=0 A2=1 DROUT=0.5 + PVAG=0 VSAT=1.2e+05 AGS=0.24 DELTA=0.01 + DLC=0 DWC=0 DWB=0 DWG=0 + W0=0 LL=0 LW=0 LWL=0 + LLN=1 LWN=1 WL=0 WW=0 + WWL=0 WLN=1 WWN=1 + CGDO=2.871e-10 CGSO=2.871e-10 CGBO=0 + CKAPPA=0.6 CGDL=0 CGSL=0 + ELM=5 XPART=1 CF=0 + CDSC=0.00024 CDSCB=0 CDSCD=0 CIT=0 + RDSW=0 WR=1 PRWB=0 PRWG=0 RSH=0 + AT=3.3e+04 UTE=-1.8 KT1=-0.3 KT2=0.022 + KT1L=0 UA1=0 UB1=0 UC1=0 + PRT=0 CLC=1e-15 CLE=0.6 + NOIA=1e+20 NOIB=5e+04 NOIC=-1.4e-12 + AF=1.4 KF=2e-27 EF=1 + ALPHA0=0 BETA0=30 JS=5.595e-06 + TOX=1.988e-08 NLX=0 XJ=2.97e-07 – 16 – + CJ=0.0002157 CJSW=1.007e-10 MJ=0.5 MJSW=0.33 + PB=0.7132 PBSW=0.5 LINT=0 WINT=4e-07 + TNOM=26.85 .MODEL PCHAN PMOS LEVEL=8 + MOBMOD=1 CAPMOD=2 + VTH0=-1.476 K1=0.5703 K2=0.02758 K3=0 + K3B=0 DVT0=0.5238 DVT1=1 DVT2=0 + DVT0W=0 DVT1W=0 DVT2W=0 + NCH=7.578e+15 VOFF=-0.08 KETA=0.0058 VBM=5 + PSCBE1=4e+08 PSCBE2=1e-06 DSUB=0.5 NFACTOR=0.2 + ETA0=0.02013 ETAB=-0.01237 U0=284.7 + UA=1.5e-09 UB=2e-18 UC=5e-11 + EM=4.1e+07 PCLM=1.3 B0=0 B1=0 + PDIBLC1=0.015 PDIBLC2=0.0013 PDIBLCB=0.4 + A0=1.3 A1=0 A2=1 DROUT=0.5 + PVAG=0 VSAT=9.8e+04 AGS=0.095 DELTA=0.01 + DLC=0 DWC=0 DWB=0 DWG=0 + W0=0 LL=0 LW=0 LWL=0 + LLN=1 LWN=1 WL=0 WW=0 + WWL=0 WLN=1 WWN=1 + CGDO=2.118e-10 CGSO=2.118e-10 CGBO=0 + CKAPPA=0.6 CGDL=0 CGSL=0 + ELM=5 XPART=1 CF=0 + CDSC=0.00024 CDSCB=0 CDSCD=0 CIT=0.0008 + RDSW=0 WR=1 PRWB=0 PRWG=0 RSH=0 + AT=3.3e+04 UTE=-1.75 KT1=-0.44 KT2=0.022 + KT1L=0 UA1=0 UB1=0 UC1=0 + PRT=0 CLC=1e-15 CLE=0.6 + NOIA=1e+20 NOIB=5e+04 NOIC=-1.4e-12 + AF=1.4 KF=3e-27 EF=1 + ALPHA0=0 BETA0=30 JS=2.268e-07 + TOX=1.988e-08 NLX=0 XJ=1.449e-07 + CJ=0.0007283 CJSW=1.658e-10 MJ=0.5 MJSW=0.33 + PB=0.8095 PBSW=0.5 LINT=0 WINT=4e-07 + TNOM=26.85 6. Zasady zaliczenia laboratoriów 1, 2, 3 6.1. Wymagania ogólne Ćwiczenie składa się z cyklu trzech laboratoriów. Obecność na laboratorium jest obowiązkowa. Student oddaje sprawozdanie po zrealizowaniu zadania wyznaczonego przez prowadzącego. Zaliczenie sprawozdania odbywa się w formie obrony projektu w terminie ustalonym z prowadzącym, nie później niż w ciągu jednego tygodnia po zakończeniu lab 3. Przekroczenie terminu może spowodować obniżenie oceny. Podczas obrony student powinien przedstawić prowadzącemu następujące dokumenty/pliki: - sprawozdanie papierowe (jedna kartka A4, na której znajduje się schemat elektryczny zaprojektowanej bramki z naniesionymi, w dwóch kolorach kontrastowych, numerami węzłów z pliku bramka.cir oraz z projekt_nom.cir); - sprawozdanie w formie elektronicznej sprawozdanie.rtfd (wykonane w programie TextEdit – ustawienie formatu rtfd); – 17 – - plik inwerter.cir (zawierający netlistę zaprojektowanego przez studenta inwertera); - plik bramka.cir (zawierający netlistę zaprojektowanej przez studenta bramki CMOS); - plik projekt (zawierający wykonaną przez studenta topografię bramki CMOS – w programie UNCLE); - plik projekt_DRC (zawierający raport DRC wykonanej topografii – uwaga, data modyfikacji tego pliku musi być późniejsza niż data modyfikacji pliku projekt!); - plik projekt.cif (zawierający wygenerowane w programie UNCLE maski układu wykorzystywane w dalszej części projektu); - plik projekt_nom.cir (zawierający netlistę układu po ekstrakcji nominalnej – w programie EXCESS); - plik projekt_pmk_set.cir (zawierający netlistę układu po ekstrakcji z wielkościami pasożytniczymi – w programie EXCESS). Jak otrzymać pliki przy użyciu programów UNCLE i EXCESS (projekt, projekt_DRC, projekt.cif, projekt_nom.cir, projekt_pmk_set.cir) student może się dowiedzieć z instrukcji do laboratorium 2 i 3. Wszystkie pliki (łącznie ze sprawozdaniem w formie elektronicznej) student powinien przegrać do katalogu, nazwanego swoim imieniem i nazwiskiem, a następnie spakować: imie_nazwisko.zip. 6.2. Informacje dotyczące sprawozdania elektronicznego W sprawozdaniu elektronicznym, z laboratorium 1, powinny się znaleźć: 1. dane studenta (imię, nazwisko, numer albumu, grupa dziekańska, specjalność, grupa laboratoryjna); 2. data i godzina rozpoczęcia zajęć laboratoryjnych; 3. treść zadania do zrealizowania w ramach laboratoriów; 4. wymiary tranzystorów w zaprojektowanym inwerterze; 5. charakterystyka przejściowa inwertera; 6. warości czasów opóźnień inwertera; 7. przebiegi czasowe inwertera, z których odczytano czasy opóźnień; 8. wymiary tranzystorów w zaprojektowanej bramce CMOS; 9. charakterystyki przejściowe dla każdego z wejść (wraz z podaniem wektorów testowych, przy których te charakterystyki były wyznaczane) bramki CMOS obciążonej zaprojektowanym wcześniej inwerterem; 10. wartości czasów opóźnień bramki CMOS obciążonej inwerterem; 11. przebiegi czasowe bramki CMOS, z których odczytano czasy opóźnień; 12. tablica prawdy bramki CMOS; 13. wykresy czasowe przedstawiające tablicę prawdy bramki CMOS obciążonej inwerterem. – 18 –