Εξοµοίωση CMOS VLSI κυκλωµάτων µε IRSIM και HSPICE Επιµέλεια διαφανειών:. Μπακάλης Πριν την εξοµοίωση Σχεδίαση Εξοµοίωση CMOS VLSI κυκλωµάτων 2
IRSIM Βήµα 1ο: Σχεδίαση layout µε τη βοήθεια του Magic > extract file.ext Βήµα 2ο: Εξαγωγή του αρχείου εξοµοίωσης > ext2sim file.ext file.sim Βήµα 3ο: ηµιουργία του αρχείου εντολών > cat < file.cmd file.cmd Βήµα 4ο: Εκτέλεση του IRSIM > irsim parameter_file file.sim file.cmd Βήµα 5ο: Παρατήρηση των αποτελεσµάτων Εξοµοίωση CMOS VLSI κυκλωµάτων 3 Εντολές IRSIM > l node θέτει τον κόµβο node στο λογικό 0 > h node θέτει τον κόµβο node στο λογικό 1 > s εκτελεί ένα βήµα της λογικής εξοµοίωσης > ana n1 n2 γραφική απεικόνιση των τιµών των κόµβων n1, n2, > vector x n1 n2 δηµιουργεί ένα διάνυσµα µε όνοµα x το οποίοαποτελείταιαπότουςκόµβους n1, n2, > clock x v1 v2 δίνει τιµές v1, v2, στους κόµβους του διανύσµατος x > c εκτελεί εξοµοίωση για όλες τις τιµές του διανύσµατος Εξοµοίωση CMOS VLSI κυκλωµάτων 4
1: Αντιστροφέας > ext2sim inv.ext > cat < inv.cmd > irsim scmos100.prm inv.sim inv.cmd l in s h in s ana in out Εξοµοίωση CMOS VLSI κυκλωµάτων 5 2: Πύλη NAND 2 εισόδων > ext2sim nand2.ext > cat < nand2.cmd > irsim cmos.prm nand2.sim nand2.cmd h Vdd! l GND! vector in a b clock in 00 01 10 11 c ana a b out Εξοµοίωση CMOS VLSI κυκλωµάτων 6
HSPICE Βήµα 1ο: Σχεδίαση layout µε τη βοήθεια του Magic > extract file.ext Βήµα 2ο: Εξαγωγή της SPICE περιγραφής του κυκλώµατος > ext2spice file.ext file.spice Βήµα 3ο: ηµιουργία του αρχείου εξοµοίωσης > cat < file.sp file.sp Βήµα 4ο: Εκτέλεση του HSPICE > hspui Βήµα 5ο: Παρατήρηση των αποτελεσµάτων Εξοµοίωση CMOS VLSI κυκλωµάτων 7 Αρχείο εξοµοίωσης * Παράµετροι και µοντέλα MOS στοιχειών * SPICE περιγραφή κυκλώµατος Εξοµοίωση CMOS VLSI κυκλωµάτων 8
Αρχείο εξοµοίωσης Παράµετροι και µοντέλα * Παράµετροι και µοντέλα MOS στοιχειών.include modelfile Ενσωµατώνουµε το αρχείο των παραµέτρων των n-mos και p-mos.option scale=0.3u probe POST = 1 Καθοδηγούµε το πρόγραµµα να αποθηκεύσει τα αποτελέσµατα της εξοµοίωσης σε αρχείο για απεικόνισή τους µε γραφικό εργαλείο Εξοµοίωση CMOS VLSI κυκλωµάτων 9 Αρχείο εξοµοίωσης Περιγραφή κυκλώµατος * SPICE περιγραφή κυκλώµατος Mname drain gate source body type W=<width> L=<length> + AS=<area> PS=<length> AD=<area> PD=<length> όνοµα MOS υποδοχή πύλη πηγή υπόστρωµα τύπος πλάτος µήκος Εξοµοίωση CMOS VLSI κυκλωµάτων 10
Αρχείο εξοµοίωσης Περιγραφή κυκλώµατος * SPICE περιγραφή κυκλώµατος Mname drain gate source body type W=<width> L=<length> + AS=<area> PS=<length> AD=<area> PD=<length> περιοχή πηγής περιφέρεια πηγής περιοχή υποδοχής περιφέρεια υποδοχής m1000 Vdd in out Vdd pfet w=12 l=6 + ad=164 pd=52 as=134 ps=50 Εξοµοίωση CMOS VLSI κυκλωµάτων 11 Αρχείο εξοµοίωσης Περιγραφή κυκλώµατος * SPICE περιγραφή κυκλώµατος Cname node1 node2 value όνοµα χωρητικότητας όνοµα κόµβου1 όνοµα κόµβου2 C2 in gnd 37.1fF Εξοµοίωση CMOS VLSI κυκλωµάτων 12
Αρχείο εξοµοίωσης Κυµατοµορφές και εντολές Vname node gnd value όνοµα τάσης όνοµα κόµβου Vdd Vdd gnd 5 Εξοµοίωση CMOS VLSI κυκλωµάτων 13 Αρχείο εξοµοίωσης Κυµατοµορφές και εντολές Vname node gnd PWL t1 v1 t2 v2 Vin in gnd pwl 0ps 0 100ps 0 150ps 1.8 800ps 1.8 όνοµα τάσης όνοµα κόµβου χρόνος 1 τάση 1 χρόνος 2 τάση 2 Εξοµοίωση CMOS VLSI κυκλωµάτων 14
Αρχείο εξοµοίωσης Κυµατοµορφές και εντολές Vname node gnd PULSE(v1 v2 dt rt ft pw per) Vin in gnd pulse(0 5 0n 1n 1n 9n 20n) όνοµα τάσης όνοµα κόµβου αρχική τάση τελική τάση χρόνος καθυστέρησης χρόνος ανόδου χρόνος καθόδου εύρος παλµού περίοδος Εξοµοίωση CMOS VLSI κυκλωµάτων 15 Αρχείο εξοµοίωσης Κυµατοµορφές και εντολές.measure tran name TRIG node VAL=value FALL/RISE=value +TARG node VAL=value FALL/RISE=value.measure tran tpd_rise TRIG v(in) VAL=2.5 FALL=1 +TARG V(out) VAL=2.5 RISE=1 όνοµα κόµβος1 κάθοδος/άνοδος κόµβος2 κάθοδος/άνοδος Εξοµοίωση CMOS VLSI κυκλωµάτων 16
Αρχείο εξοµοίωσης Κυµατοµορφές και εντολές.tran step time.tran 0.1n 20n εξοµοίωση του κυκλώµατος για χρόνο time µε βήµα εξοµοίωσης step.print node1 node2 εξαγωγή αποτελεσµάτων για τους κόµβους 1, 2,.print V(in) V(out) Εξοµοίωση CMOS VLSI κυκλωµάτων 17 Αρχείο εξοµοίωσης Κυµατοµορφές και εντολές.end τερµατισµός της εξοµοίωσης Εξοµοίωση CMOS VLSI κυκλωµάτων 18
1: Αντιστροφέας > ext2spice inv.ext > cat < inv.sp > hspui * --- inv.sp ---.option scale=0.3u probe POST = 1.include cmos0.5um-hspice m1000 Vdd in out Vdd pfet w=12 l=6 + ad=164 pd=52 as=134 ps=50 m1001 out in GND Gnd nfet w=12 l=6 + ad=165 pd=54 as=152 ps=50 C0 GND GND 17.7fF C1 out GND 8.6fF C2 in GND 37.1fF C3 Vdd GND 17.7fF Vdd Vdd gnd 5 Vgnd GND gnd 0 Vin in gnd pulse(0 5 0 1n 1n 9n 20n).tran 0.1n 20n.print V(in) V(out).measure tran tpd_rise TRIG v(in) VAL=2.5 FALL=1 +TARG V(out) VAL=2.5 RISE=1.end Εξοµοίωση CMOS VLSI κυκλωµάτων 19 1: Αντιστροφέας > ext2spice inv.ext > cat < inv.sp > hspui tpd_rise = 0.547ns Εξοµοίωση CMOS VLSI κυκλωµάτων 20
2: Πύλη NAND 2 εισόδων * --- nand2.sp ---.option scale=0.3u probe POST = 1.include cmos0.5um-hspice > ext2spice nand2.ext > cat < nand2.sp > hspui m1000 Vdd a out Vdd pfet w=3 l=2 + ad=22 pd=20 as=38 ps=36 m1001 out b Vdd Vdd pfet w=3 l=2 + ad=0 pd=0 as=0 ps=0 m1002 a_5_n6 a GND Gnd nfet w=3 l=2 + ad=18 pd=18 as=19 ps=18 m1003 out b a_5_n6 Gnd nfet w=3 l=2 + ad=19 pd=18 as=0 ps=0 C0 out GND 2.7fF VVdd Vdd gnd 5.0v VGND GND gnd 0.0v VA A gnd DC PULSE(0 5 0 1n 1n 9n 20n) VB B gnd DC PULSE(0 5 0 1n 1n 4n 10n).tran 0.1ns 20ns.print V(A) V(B) V(out).end Εξοµοίωση CMOS VLSI κυκλωµάτων 21 2: Πύλη NAND 2 εισόδων > ext2spice nand2.ext > cat < nand2.sp > hspui Εξοµοίωση CMOS VLSI κυκλωµάτων 22