Documente Academic
Documente Profesional
Documente Cultură
PROIECT: TEMA_NR_13
ANUL: III
STUDENT: Prepeliag Laura-Florina
GRUPA: 5309
An scolar 2021-2022
Partea I – Proiectarea şi analiza dinamică în SPICE a circuitului DFFNS
1. Să se dimensioneze tranzistoarele MOS corespunzător tehnologiei date şi să se scrie
netlist-ul SPICE al circuitului. (Netlist-ul se va scrie ierarhic folosind subcircuite).
2. Să se efectueze analiza tranzitorie a circuitului pentru a pune în evidenţă funcţionarea
sa. La fiecare ieşire a circuitului se va considera cîte o capacitate de sarcină. Valorile
pentru tensiunea de alimentare VDD, timpii de tranziţie TR ai formelor de undă de la
intrări şi, respectiv, capacităţile de sarcină CL se vor adopta în funcţie de tehnologia
impusă conform tabelului următor:
Partea II – VHDL
A. i) Să se implementeze în VHDL un model comportamental pentru circuitul
proiectat şi analizat dinamic în Partea I. În cadrul modelului se vor defini si utiliza
constante generice pentru parametrii dinamici determinaţi prin simulare (timpi de
propagare clock→ieşire, setup_time şi hold_time).
ii) Să se implementeze o entitate de test şi să se simuleze modelul de la punctul i)
B. Denumirea circuitului: decodor binar
Cerinţe:
• modelarea comportamentală în VHDL a circuitului, considerând width ca parametru
generic.
• în cadrul modelului se va lua în consideraţie şi un parametru generic de
constrângere clk_pmin referitor la intrarea CLK. Astfel, dacă durata palierului
semnalului de clock din faţa sau după frontul pozitiv este mai mică decât
clk_pmin, atunci circuitul rămâne în starea anterioară.
• realizarea unui program de test pentru width=4 şi clk_pmin = 5 ns.
Partea I
1. Schema la nivel de poartă logica pentru circuitul DFFNS conţine porţi logice de 3
tipuri : NAND cu 2 intrări,,inversoare şi inversoare comandate. Aceste circuite pot fi
descrise la rândul lor la nivel de tranzistor după scheme cunoscute. Tranzistoarele MOS
din componenţa porţilor logice se vor dimensiona conform tehnologiei de 0.25 microni
pentru L si respectiv 0.75 microni pentru W.
Schema circuitului DFFNS este:
Poarta NAND2:
*descriere subcircut poarta nand2
*terminalele se conecteaza in ordinea in1,in2,out,vdd
.subckt pnand2 1 2 5 4
MN1 5 2 3 0 CMOSN L=0.25u W=0.75u
MN2 3 1 0 0 CMOSN L=0.25u W=0.75u
MP1 5 1 4 4 CMOSP L=0.25u W=0.9375u
MP2 5 2 4 4 CMOSP L=0.25u W=0.9375u
.ends
Inversor comandat:
*inversoare comandate
XINVC1 1 17 16 7 6 invcom
XINVC2 8 16 17 9 6 invcom
XINVC3 8 16 17 7 6 invcom
XINVC4 10 17 16 9 6 invcom
*porti nand2
XNAND11 7 2 8 6 nand2
XNAND22 9 2 10 6 nand2
.ends
testare circuit
.param tr=0.2n
.param VDD=2.5
.param CL=0.08p
Vdd 6 0 {VDD}
.lib D:\pacsad\CMOS_IBM_025_T51M.txt
.inc D:\pacsad\subcircuite.cir
.probe
.end
SEL>>
0V
V(2)
4.0V
0V
-4.0V
V(4)
4.0V
0V
-4.0V
0s 10ns 20ns 30ns 40ns 50ns 60ns 70ns
V(5)
Time
tpHL(1, 2) = x2-x1
{
1| search forward leve(50%,p) !1;
2| search forward leve(50%,n) !2;
}
tpLH(1,2) =x2-x1
{
1| Search forward level (50%,n) !1;
2| Search forward level (50%,p) !2;
}
a) Pt variatia lui TR :
10.1n
10.0n
9.9n
9.8n
100p 120p 140p 160p 180p 200p 220p 240p 260p 280p
tpHL(V(3), V(4))
tr
14.54n
14.52n
14.50n
14.48n
100p 120p 140p 160p 180p 200p 220p 240p 260p 280p
tpLH(V(3), V(4))
tr
17.8n
17.7n
17.6n
100p 120p 140p 160p 180p 200p 220p 240p 260p 280p
tpHL(V(3), V(5))
tr
6.70n
6.69n
6.68n
6.67n
100p 120p 140p 160p 180p 200p 220p 240p 260p 280p
tpLH(V(3), V(5))
tr
10.0n
9.9n
9.8n
40f 50f 60f 70f 80f 90f 100f 110f 120f
tpHL(V(3), V(4))
CL
14.6n
14.5n
14.4n
14.3n
40f 50f 60f 70f 80f 90f 100f 110f 120f
tpLH(V(3), V(4))
CL
17.8n
17.7n
17.6n
17.5n
40f 50f 60f 70f 80f 90f 100f 110f 120f
tpHL(V(3), V(5))
CL
6.8n
6.7n
6.6n
6.5n
40f 50f 60f 70f 80f 90f 100f 110f 120f
tpLH(V(3), V(5))
CL
2.0V
(9.2996n,1.2552)
(10.047n,1.2552)
1.0V
0V
-1.0V
6.03ns 7.00ns 8.00ns 9.00ns 10.00ns 11.00ns 12.00ns 13.00ns 14.00ns 15.00ns 16.18ns
V(3) V(4)
Time
tpHLtotal(CK,Q)=10,047-9,2996=0,7474ns ;
3.0V
2.0V
(63.300n,1.2543)
(64.019n,1.2543)
1.0V
0V
59.31ns 60.00ns 61.00ns 62.00ns 63.00ns 64.00ns 65.00ns 66.00ns 66.79ns
V(3) V(4)
Time
tpLHtotal(CK,Q)=64,019n-63,300n=0,719ns ;
2.99V
2.00V
(9.2993n,1.2585) (9.987n,1.2585)
1.00V
0V
6ns 8ns 10ns 12ns 14ns 16ns
V(3) V(5)
Time
tpLHtotal(CK,Qnegat)=9,987n-9,2993n=0,6877ns ;
3.0V
2.0V
(64.045n,1.2552)
(63.300n,1.2552)
1.0V
0V
-1.0V
60.0ns 61.0ns 62.0ns 63.0ns 64.0ns 65.0ns 66.0ns 67.0ns
V(3) V(5)
Time
tpHLtotal(CK,Qnegat)=64,045n-63,300n=0,745ns ;
Pentru determinarea timpilor intrinseci vom folosi urmatoarele grafice :
-----pentru CL=0p
2.98V
2.00V
(9.2997n,1.2543)
(9.799n,1.2543)
1.00V
0V
-1.00V
6.1ns 8.0ns 10.0ns 12.0ns 14.0ns 16.0ns
V(3) V(4)
Time
tpHLintrinsec(CK,Q)=9,799n-9,2997n=0,4993ns
2.96V
2.00V
(63.300n,1.2532)
(63.819n,1.2532)
1.00V
0V
-1.00V
58.93ns 60.00ns 62.00ns 64.00ns 66.00ns 68.00ns 69.01ns
V(3) V(4)
Time
tpLHintrinsec(CK,Q)=63,819n-63,300n=0,519n ;
2.98V
2.00V
(9.2997n,1.2543)
(9.710n,1.2543)
1.00V
0V
-1.00V
6.03ns 7.00ns 8.00ns 9.00ns 10.00ns 11.00ns 12.00ns 13.00ns 14.00ns
V(3) V(5)
Time
tpLHintrinsec(CK,Qnegat)=9,710n-9,2997n=0,4103ns ;
2.97V
2.00V
(63.300n,1.2528)
(63.722n,1.2528)
1.00V
0V
-0.99V
60.00ns 62.00ns 64.00ns 66.00ns 68.00ns 69.31ns
V(3) V(5)
Time
.lib D:\pacsad\CMOS_IBM_025_T51M.txt
.inc D:\pacsad\subcircuite.cir
0V
-4.0V
V(4)
4.0V
2.0V
0V
V(1)
4.0V
2.0V
SEL>>
0V
5.0ns 5.5ns 6.0ns 6.5ns 7.0ns 7.5ns 8.0ns
V(3)
Time
2.0V
0V
-2.0V
-4.0V
V(4)
4.0V
(6.0052n,1.2653)
2.0V
SEL>>
0V
V(1)
4.0V
(6.0146n,1.2840)
2.0V
0V
5.700ns 5.800ns 5.900ns 6.000ns 6.100ns 6.200ns 6.300ns
V(3)
Time
SETUP_TIME_LH->CKN: 6.0146n-6,0052n=0.094ns;
Variez Td al intrarii D de la 5.9n la 6n(5.9n 5.91n 5.96n 5.99n 6n) si observ ca iesirea Q
se modifica pentru td-=6n.
4.0V
0V
-4.0V
V(4)
4.0V
2.0V
0V
V(1)
4.0V
2.0V
SEL>>
0V
6ns 7ns 8ns 9ns 10ns 11ns 12ns 13ns
V(3)
Time
2.0V
0V
SEL>>
-4.0V
V(4)
4.0V
(8.5348n,1.2653)
2.0V
0V
V(1)
4.0V
(8.0146n,1.2840)
2.0V
0V
7.886ns 8.000ns 8.200ns 8.400ns 8.600ns 8.800ns 9.000ns 9.200ns
V(3)
Time
SETUP_TIME_HL->CKN: 8,5348n-8,0146n=0,5202ns;
4.2DeterminareaHOLD_TIME_LHCKNsi
HOLD_TIME_HLCKN
Timpul minim de dupa frontul activ de ceas in care este obligatoriu ca semnalul de
intrare sa fie stabil se numeste hold_time.Pentru determinarea acestui timp se va face o
analiza parametrica tot asupra componentei td a semnalului pulse de pe intrarea
D.Valorile lui td vor fi momente de timp de dupa frontul activ, apropiate de acesta.
Circuitul care descrie aceasta analiza este :
.lib D:\pacsad\CMOS_IBM_025_T51M.txt
.inc D:\pacsad\subcircuite.cir
0V
-4.0V
V(4)
4.0V
2.0V
(6.0152n,1.2653)
SEL>>
0V
V(1)
4.0V
(6.0148n,1.2653)
2.0V
0V
5.0ns 5.5ns 6.0ns 6.5ns 7.0ns 7.5ns 8.0ns
V(3)
Time
HOLD_TIME_LH=6.0152ns-6.0148ns=0.0004ns
2.0V
0V
-2.0V
-4.0V
V(4)
4.0V
(18.035n,1.2653)
2.0V
SEL>>
0V
V(1)
4.0V
(18.015n,1.2840)
2.0V
0V
15.5ns 16.0ns 16.5ns 17.0ns 17.5ns 18.0ns 18.5ns 19.0ns
V(3)
Time
HOLD_TIME_HL->CKN:18,035n-18,015n=0,02ns;
Vdd 6 0 {VDD}
.lib D:\pacsad\CMOS_IBM_025_T51M.txt
.inc D:\pacsad\subcircuite.cir
0V
-4.0V
V(4)
4.0V
2.0V
SEL>>
0V
V(1)
4.0V
2.0V
0V
0s 2ns 4ns 6ns 8ns 10ns 12ns 14ns 16ns
V(3)
Time
Vdd 6 0 {VDD}
.lib D:\pacsad\CMOS_IBM_025_T51M.txt
.inc D:\pacsad\subcircuite.cir
0V
-4.0V
V(4)
4.0V
2.0V
0V
V(1)
4.0V
2.0V
SEL>>
0V
0s 5ns 10ns 15ns 20ns 25ns 30ns
V(3)
Time