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 –

Podobne dokumenty