Przetworniki analogowo – cyfrowe oraz cyfrowo – analogowe stanowią niezmiernie istotne elementy współczesnych systemów mikroelektronicznych. W ramach niniejszego ćwiczenia wykonywane są badania symulacyjne szeregowego algorytmicznego przetwornika analogow0 - cyfrowego.
Przed przystąpieniem do wykonania ćwiczenia należy odświeżyć wiadomości dotyczące budowy i działania przetworników CA i AC jak również należy zapoznać się z obsługą symulatora PSPICE. Na końcu niniejszego opracowania podana jest niezbędna literatura.
Schemat blokowy badanego przetwornika przedstawiony jest na rys. 1. Lista połączeń łącznie z parametrami modeli (0.18um nwell CMOS) do programu PSPICE umieszczona jest w załączniku A. Nazwy węzłów oznaczone są kursywą. Napięcie zasilające klucze i inwertery kluczy przyjąć równe 3.3V. Klucze S1-S4 należy zrealizować zgodnie ze schematem na rys. 1(e). Napięcie sterujące klucze powinno wynosić odpowiednio 3.3V oraz 0V. Wartość napięcia odniesienia VREF należy przyjąć równą 512mV. Symulacje należy wykonać w 2 wariantach a mianowicie dla idealizowanych kluczy sygnałowych i wzmacniaczy operacyjnych oraz dla rzeczywistych kluczy sygnałowych i wzmacniaczy operacyjnych. W drugim przypadku jako wzmacniacze operacyjne należy użyć wzmacniaczy jak w ćwiczeniu nr 1 z następującymi zmianami: jako masę sygnałową należy przyjąć pozom 0V, należy zastosować symetryczne napięcie zasilające ±3.3V oraz ze zmienionymi wymiarami tranzystorów M7 i M10 (jak w załączonym pliku). Załączona lista połączeń umożliwia symulację zarówno idealizowanego modelu przetwornika jak i rzeczywistego. Aby wykonać symulację modelu idealizowanego należy jako nazwy podukładów kluczy sygnałowych wpisać wyrażenie Sideal a nazwy podukładów wzmacniaczy operacyjnych OAi. W przypadku symulacji układu rzeczywistego należy podać odpowiednio Sreal oraz OA. W celu ułatwienia znalezienia punktu startowego należy stosować polecenia .savebias oraz .inc symulatora PSPICE. W przygotowanej liście połączeń tak ustawiono czasy załączania kluczy aby wykonać przetworzenie 16-to bitowe. Należy zwrócić uwagę jaki jest punkt startowy analizy .tran. Jeśli któreś z napięć sygnałowych analogowych jest ujemne wówczas należy wykonać ponownie analizę z podaniem dodatniej wartości startowej takiego napięcia poprzez polecenie .nodeset. Wartość wyjściowego ciągu binarnego jest to ciąg kolejnych poziomów napięcia w węźle (3b) podczas kolejnych stanów wysokich zegara (shn) przy jednoczesnym spełnieniu warunku, że stan napięcia klucza (sh1) jest niski.
(a)
(b)
(c)
(d)
(e)
Rys. 1. Schemat blokowy badanego przetwornika analogowo – cyfrowego (a), realizacja bloku mnożącego (b) sumatora (c), układu próbkująco-pamiętającego (d) oraz kluczy sygnałowych CMOS (e).
W ramach ćwiczenia należy wykonać badania symulacyjne przetwornika wg zamieszczonej poniżej listy. Wyniki symulacji jak również wyniki wykonania pozostałych poleceń należy umieścić w protokole, którego wzór znajduje się w załączniku B. Załącznik ten, po wypełnieniu, należy przesłać pocztą elektroniczną na adres wskazany przez prowadzącego zajęcia.
A) Opisz krótko (ok. 10 zdań) sposób załączania kluczy zapewniający poprawną pracę przetwornika z rys. 1. Ile cykli zegara (i jakiego zegara) potrzeba na przetworzenie słowa cyfrowego na postać analogową.
B) Przetwornik idealizowany. Wykonaj symulację przetworzenia następujących wartości napięć wejściowych: 3mV, 7mV, 15mV, 30mV, 60mV, 125mV, 250mV, 500mV. Ile wynosi wartość wyjściowa kodu dwójkowego i ile wynoszą błędy przetworzenia poszczególnych napięć wejściowych?
C) Przetwornik rzeczywisty. Wykonaj symulację przetworzenia następujących wartości napięć wejściowych: 3mV, 7mV, 15mV, 30mV, 60mV, 125mV, 250mV, 500mV. Ile wynosi wartość wyjściowa kodu dwójkowego i ile wynoszą błędy przetworzenia poszczególnych napięć wejściowych?
D) Bazując na powyższych symulacjach oszacuj maksymalne osiągane rozdzielczości dla przetwornika idealizowanego oraz rzeczywistego.
E) Wykonaj szczegółową symulację przetwornika rzeczywistego dla napięcia wejściowego dającego największy błąd. Należy dokładnie prześledzić zmiany napięcia w węzłach (1), (2), (Va), (5) oraz (4) w trakcie przetwarzania sygnału wejściowego w czasie generowania pierwszych 6 bitów słowa wyjściowego. Napięcia w węzłach (1), (4), oraz (5) należy mierzyć w końcowej fazie włączenia klucza sh natomiast napięcia w węzłach (2) i (Va) należy mierzyć w końcowej fazie klucza shn. Jakie bloki powodują powstawanie istotnych błędów przetwarzania i jak można by je wyeliminować?
F) Jaką maksymalną częstotliwość przełączania kluczy można zastosować w badanym przetworniku AC? Odpowiedź uzasadnij wykonując odpowiednie symulacje. W tym celu należy w kolejnych symulacjach, dla wartości napięcia wejściowego dającej największy błąd przetworzenia, dwukrotnie zmniejszać okres zegara (poprzez zmianę parametru coef) oraz czas analizy. Jako wartość graniczną należy przyjąć taki okres zegara dla którego błąd przetwarzania zwiększył się ok. 2 krotnie.
G) Należy podać wnioski końcowe (skomentować uzyskane wyniki oraz zaproponować możliwe modyfikacje przetwornika) oraz uwagi co do zakresu ćwiczenia.
[1] Z. Staszak., J. Glinianowicz, D. Czarnecki, skrypt pt. „Układy elektroniczne liniowe”.
[2] A. Guziński, „Liniowe elektroniczne układy analogowe”, WNT 1992.
[3] J. Izydorczyk, „PSpice komputerowa symulacja układów elektronicznych”, Helion, 1993.
[4] B. Pankiewicz, materiały pomocnicze do przedmiotu „ Projektowanie Układów ASIC”, Gdańsk 2005.
PROJEKTOWANIE UKLADOW ASIC Cw nr 3: "Szeregowy
algorytmiczny przetwornik analogowo - cyfrowy".
* Zasilanie
Vdd vdd 0 3.3V
Vpp vpp 0 -3.3V
* Napiecie odniesienia
Vref vref 0 512mV
*Vref2 vref2 0 0.5V
* Napiecie wejsciowe
Vin vin 0 250.0mV
.param coef=1 ; zmiana okresu pracy przetwornika
*Sterowanie kluczmi S1 i S2 oraz kluczami ukadu
probkujaco-pamietajacego
Vs1
s1 0 pulse 0V 3.3V
{coef*5us} {coef*10ns} {coef*10ns}
{coef*10us} {coef*320us}
Vs2
s2 0 pulse 0V 3.3V {coef*16us}
{coef*10ns} {coef*10ns} {coef*308us} {coef*320us}
Vs_sh
sh 0 pulse 0V 3.3V
{coef*6us} {coef*10ns} {coef*10ns}
{coef*8us} {coef*20us}
Vs_shn shn 0 pulse 0V 3.3V {coef*16us} {coef*10ns}
{coef*10ns} {coef*8us} {coef*20us}
**** Przetwornik algorytmiczny A/C
*Klucze przetwornika
X_S1 vin
1 s1 Vdd Vpp Sreal ; Sideal albo
Sreal
X_S2 5
1 s2 Vdd Vpp Sreal ; Sideal
albo Sreal
X_S3 4
0 3a Vdd Vpp Sreal ; Sideal
albo Sreal
X_S4 4
vref 3b Vdd Vpp Sreal ; Sideal albo Sreal
*Sumator
X_sum Va 4 5 Vdd Vpp
SUM
*S/H
X_sh 1 2 sh shn Vdd
Vpp SH
*x2
X_X2 2 Va Vdd Vpp x2
*Komparator
X_komp Va Vref 3 Vdd
Vpp OA ; OAi albo OA
*Inwertery sterujace kluczami S3 i S4
X_inv1 3 3a Vdd INV
X_inv2 3a 3b Vdd INV
**** Koniec przetwornika
**** Definicje uzytych podukadów ****
* INV
.subckt INV in out
Vdd
M1 out in 0 0 nfet
W=0.54u L=0.18u
M2 out in Vdd Vdd pfet W=0.54u L=0.18u
.ends
*mult x2
.subckt x2 in out Vdd
Vpp
R1 1 0 100k
R2 1 out 100k
X1 in 1 out Vdd Vpp
OA ; OAi albo OA
.ends
*SUM
.subckt SUM inp inm
out Vdd Vpp
R1 inp 1 100k
R2 inm 2 100k
R3 1 0 100k
R4 2 out 100k
Xoa 1 2 out Vdd Vpp
OA ; OAi albo OA
.ends
*S/H
.subckt SH in out sh
shn Vdd Vpp
X_S1 in 1 sh Vdd Vpp
Sreal ; Sideal albo Sreal
X_S2 2 3 shn Vdd Vpp
Sreal ; Sideal albo Sreal
X_OA1 1 2 2 Vdd Vpp
OA ; OAi albo OA
X_OA2 3 out out Vdd
Vpp OA ; OAi albo OA
C1 1 0 10pF
C2 3 0 10pF
.ends
*Wzmacniacz operacyjny
.subckt OA inp inm out
Vdd Vpp
* Lista polaczen
M1 1 inm 3
vpp nfet W=1.44u L=0.54u
M2 2 inp 3
vpp nfet W=1.44u L=0.54u
M3 1 1 vdd
vdd pfet W=1.62u L=0.54u
M4 2 1 vdd
vdd pfet W=1.62u L=0.54u
M5 4 2 vdd
vdd pfet W=48.6u L=1.62u
M6 4 4 5
vpp nfet W=0.54u L=0.9u
M7 5 6 vpp
vpp nfet W=33.6u L=3.24u
M8 vdd 4
out vpp nfet W=64.8u L=1.08u
M9 vpp 5
out vdd pfet W=194.4u L=1.08u
M10 6 6 vdd
vdd pfet W=0.54u L=57.6u
M11 6 6 vpp
vpp nfet W=2.16u L=1.08u
M12 3 6 vpp
vpp nfet W=2.16u L=1.08u
Cc out 2 .1pF ;0.1pF
.ends
*Wzmacniacz operacyjny idealny (prawie)
.subckt OAi inp inm out Vdd Vpp
Eoa out_p 0 inp inm
1e8
R_p out_p out 100
D1 out Vdd diode
D2 0 out diode
.ends
*Klucz rzeczywisty
.subckt Sreal 1 2 3a
vdd vpp
M1 1 3c 2 vpp
nfet W=0.54u L=0.18u
M2 1 3b 2 vdd
pfet W=0.54u L=0.18u
M3 3b 3a 0 vpp
nfet W=0.54u L=0.18u
M4 3b 3a vdd vdd pfet W=0.54u L=0.18u
M5 3c 3b 0 vpp
nfet W=0.54u L=0.18u
M6 3c 3b vdd vdd pfet W=0.54u L=0.18u
.ends
*Model klucza idealizowanego
.subckt Sideal 1 2 3
vdd Vpp
S1 1 2 3 0 switch
.model switch Vswitch (Ron=100 Roff=1000g Von=3.3
Voff=0)
.ends
* Analizy - tu nalezy podac niezbedne do wykonania
rodzaje analiz PSPICE
.param
tstop=340us*coef
.tran 1u 340us ;
340us
*.dc Vin -2u 2u 0.01u
*.savebias
bias500real tran
.inc bias250real
.probe
.options trtol=1
itl4=10000 itl1=10000 itl5=0
*.nodeset v(x_sh.1)=1
v(x_sh.3)=1
* Modele
.model diode d
* T49P SPICE BSIM3
VERSION 3.1 PARAMETERS
*SPICE 3f5 Level 8,
Star-HSPICE Level 49, UTMOST Level 8
* DATE: Dec 1/04
* LOT: T49P WAF: 3011
*
Temperature_parameters=Default
.MODEL nfet NMOS
(
LEVEL = 7
+VERSION = 3.1 TNOM = 27
TOX = 4.1E-9 dev=0.5%
+XJ = 1E-7 NCH =
2.3549E17 VTH0 = 0.3631313 dev=0.5%
+K1 = 0.5920712 K2 =
3.261973E-3 K3 = 1E-3
+K3B = 2.9061018 W0 = 1E-7 NLX = 1.840449E-7
+DVT0W =
0 DVT1W = 0 DVT2W = 0
+DVT0 = 1.4767146 DVT1 =
0.4177419 DVT2 = 8.829889E-3
+U0 = 255.1380803 UA =
-1.597788E-9 UB = 2.53505E-18
+UC = 4.766568E-11 VSAT = 1.010331E5 A0
= 1.80776
+AGS = 0.3951935 B0 =
2.536033E-7 B1 = 5E-6
+KETA = -5.061981E-3 A1 =
5.396345E-4 A2 = 0.8936768
+RDSW = 111.58989 PRWG = 0.5 PRWB = -0.2
+WR = 1 WINT =
0 LINT = 1.840173E-8
+XL =
0 XW = -1E-8 DWG = -5.605289E-9
+DWB = 1.137609E-8 VOFF =
-0.0871468 NFACTOR = 2.3018187
+CIT = 0 CDSC =
2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 =
3.127659E-3 ETAB = 9.485027E-6
+DSUB =
0.018202 PCLM = 0.7464953 PDIBLC1 = 0.2263045
+PDIBLC2 =
2.358517E-3 PDIBLCB = -0.1 DROUT = 0.8266278
+PSCBE1 = 4.915846E10 PSCBE2 =
2.831646E-9 PVAG = 0.010936
+DELTA = 0.01 RSH =
6.6 MOBMOD = 1
+PRT = 0 UTE =
-1.5 KT1 = -0.11
+KT1L = 0 KT2 =
0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 =
-5.6E-11 AT = 3.3E4
+WL =
0 WLN = 1 WW = 0
+WWN = 1 WWL =
0 LL = 0
+LLN = 1 LW =
0 LWN = 1
+LWL = 0 CAPMOD =
2 XPART = 0.5
+CGDO = 8.4E-10 CGSO =
8.4E-10 CGBO = 1E-12
+CJ = 9.619152E-4 PB = 0.8 MJ = 0.3787773
+CJSW = 2.61908E-10 PBSW = 0.8 MJSW = 0.157929
+CJSWG = 3.3E-10 PBSWG = 0.8 MJSWG = 0.157929
+CF = 0 PVTH0 =
-6.300783E-5 PRDSW = -2.1729835
+PK2 = 9.978988E-4 WKETA =
8.888859E-5 LKETA = -6.31897E-3
+PU0 = 4.3665601 PUA =
9.428511E-14 PUB = 0
+PVSAT = 1.356405E3 PETA0 = 1.003159E-4 PKETA
= -1.583628E-3 )
*
.MODEL pfet PMOS
(
LEVEL = 7
+VERSION = 3.1 TNOM = 27
TOX = 4.1E-9 dev=0.5%
+XJ = 1E-7 NCH =
4.1589E17 VTH0 = -0.3706453 dev=0.5%
+K1 =
0.5740728 K2 = 0.0277093 K3 = 0
+K3B = 7.9502396 W0 = 1E-6 NLX = 1.195464E-7
+DVT0W =
0 DVT1W = 0 DVT2W = 0
+DVT0 = 0.6525814 DVT1 =
0.2558611 DVT2 = 0.1
+U0 = 103.6542095 UA =
1.044279E-9 UB = 1E-21
+UC = -1E-10 VSAT =
1.528072E5 A0 = 1.6482476
+AGS = 0.3296056 B0 =
3.334823E-7 B1 = 1.106095E-6
+KETA = 0.0261026 A1 = 0.5575286 A2
= 0.4098665
+RDSW = 304.2182406 PRWG = 0.5 PRWB = 0.5
+WR = 1 WINT =
0 LINT = 3.397866E-8
+XL = 0 XW =
-1E-8 DWG = -2.581645E-8
+DWB = 4.944839E-9 VOFF =
-0.0842496 NFACTOR = 1.9148145
+CIT = 0 CDSC =
2.4E-4 CDSCD = 0
+CDSCB = 0 ETA0 =
0.0744062 ETAB = -0.056221
+DSUB = 0.77235 PCLM =
2.099528 PDIBLC1 = 8.859692E-4
+PDIBLC2 = 0.021643 PDIBLCB = -1E-3 DROUT = 0
+PSCBE1 = 3.210588E9 PSCBE2 =
9.291482E-10 PVAG = 14.895735
+DELTA = 0.01 RSH =
7.5 MOBMOD = 1
+PRT = 0 UTE =
-1.5 KT1 = -0.11
+KT1L = 0 KT2 =
0.022 UA1 = 4.31E-9
+UB1 = -7.61E-18 UC1 =
-5.6E-11 AT = 3.3E4
+WL =
0 WLN = 1 WW = 0
+WWN = 1 WWL = 0 LL = 0
+LLN = 1 LW =
0 LWN = 1
+LWL = 0 CAPMOD =
2 XPART = 0.5
+CGDO = 6.45E-10 CGSO =
6.45E-10 CGBO = 1E-12
+CJ = 1.148706E-3 PB = 0.8422946 MJ
= 0.408913
+CJSW = 2.18625E-10 PBSW = 0.8 MJSW = 0.3448738
+CJSWG = 4.22E-10 PBSWG = 0.8 MJSWG = 0.3448738
+CF = 0 PVTH0 =
1.374126E-3 PRDSW = 0.9646861
+PK2 =
1.205583E-3 WKETA = 0.0277979 LKETA = 2.778855E-3
+PU0 = -0.656906 PUA =
-3.48783E-11 PUB = 1E-21
+PVSAT = -50.1579558 PETA0 =
1.003159E-4 PKETA = -3.130573E-3 )
.end
Ćwiczenie nr 3.
Szeregowy algorytmiczny przetwornik analogowo – cyfrowy.
Lp. |
Nazwa |
Wartość |
||||||||||
1 |
Data wykonania ćwiczenia. |
|
||||||||||
2 |
Osoby wykonujące ćwiczenie. |
|
||||||||||
3 |
5.A. Opis sposobu załączania kluczy (ok. 10
zdań). |
|
||||||||||
4 |
5.B. Przetwornik idealizowany. Symulacja
przetworzenia kilku napięć wejściowych w postać cyfrową |
Napięcie
wejściowe [mV] |
Wartość teoretyczna [dec] |
Wartość uzyskana [dec] |
Błąd przet. [dec] |
Błąd przet. [%] |
||||||
3 |
3 |
|
|
|
||||||||
7 |
7 |
|
|
|
||||||||
15 |
15 |
|
|
|
||||||||
30 |
30 |
|
|
|
||||||||
60 |
60 |
|
|
|
||||||||
125 |
125 |
|
|
|
||||||||
250 |
250 |
|
|
|
||||||||
500 |
500 |
|
|
|
||||||||
5 |
5.C. Przetwornik rzeczywisty. Symulacja
przetworzenia kilku napięć wejściowych w postać cyfrową. |
Napięcie
wejściowe [mV] |
Wartość teoretyczna [dec] |
Wartość uzyskana [dec] |
Błąd przet. [dec] |
Błąd przet. [%] |
||||||
3 |
3 |
|
|
|
||||||||
7 |
7 |
|
|
|
||||||||
15 |
15 |
|
|
|
||||||||
30 |
30 |
|
|
|
||||||||
60 |
60 |
|
|
|
||||||||
125 |
125 |
|
|
|
||||||||
250 |
250 |
|
|
|
||||||||
500 |
500 |
|
|
|
||||||||
6 |
5.D. Szacowanie rozdzielczości przetwornika
wraz z uzasadnieniem. |
Rozdzielczość
przetwornika idealizowanego [bitów] |
Rozdzielczość przetwornika rzeczywistego [bitów] |
|||||||||
|
|
|||||||||||
7 |
5.E. Należy dokładnie prześledzić zmiany
napięcia w węzłach (1), (2), (Va), (5)
oraz (4) w trakcie przetwarzania sygnału wejściowego. Jakie
bloki przetwornika rzeczywistego powodują powstawanie błędów przetwarzania i
jak można by je wyeliminować? |
Krok |
1 |
2 |
3 |
4 |
5 |
6 |
||||
V(1)
winno być |
|
|
|
|
|
|
||||||
V(1)
jest |
|
|
|
|
|
|
||||||
V(2)
winno być |
|
|
|
|
|
|
||||||
V(2)
jest |
|
|
|
|
|
|
||||||
V(Va)
winno być |
|
|
|
|
|
|
||||||
V(Va)
jest |
|
|
|
|
|
|
||||||
V(5)
winno być |
|
|
|
|
|
|
||||||
V(5)
jest |
|
|
|
|
|
|
||||||
V(4)
winno być |
|
|
|
|
|
|
||||||
V(4)
jest |
|
|
|
|
|
|
||||||
|
||||||||||||
8 |
5.F. Jaką maksymalną częstotliwość
przełączania kluczy można zastosować w badanym przetworniku AC? |
|
||||||||||
9 |
5.G. Należy podać wnioski końcowe
(skomentować uzyskane wyniki oraz zaproponować możliwe modyfikacje
przetwornika) oraz uwagi co do zakresu ćwiczenia. |
|
||||||||||