Projektowanie Układów ASIC

Laboratorium

 

 

 

Ćwiczenie nr 3. Szeregowy algorytmiczny przetwornik analogowo – cyfrowy.

1. Wstęp.

            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.

2. Przygotowanie do laboratorium.

            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.

3. Przetwornik analogowo – cyfrowy.

            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).

4. Instrukcja wykonania ćwiczenia.

            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.

5. Lista czynności do wykonania w ramach ćwiczenia:

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.

 

 

6. Literatura:

[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.

 

Dodatek A – lista połączeń badanego przetwornika.

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

 

Dodatek B – wzór protokołu. Zawartość umieszczoną poniżej należy skopiować do osobnego dokumentu i po wypełnieniu wysłać na adres wskazany przez prowadzącego zajęcia.

 

Ć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.

 

 



Gdańsk, sierpień 2005, Ćwiczenie opracował Bogdan Pankiewicz