SPICE3 TUTORIAL

 

 

ΠΕΡΙΕΧΟΜΕΝΑ

Εισαγωγή

Διόρθωση του SPICE πηγαίου κώδικα

Starting SPICE3

Αποθήκευση των αποτελεσμάτων της ανάλυσης

Χρησιμοποίηση των αποτελεσμάτων από μια προηγούμενη ανάλυση

Printing and Plotting

 

 

1. Εισαγωγή

Σ αυτό το tutorial, θα εξηγήσουμε την χρήση του εξομοιωτή (simulator) με ένα CMOS αναστροφέα, όπως φαίνεται στη Figure 1.

 

Figure 1. CMOS inverter transistors schematic

 

 

2. Διόρθωση του SPICE πηγαίου κώδικα (Editing SPICE source code)

1. Χρησιμοποιήστε οποιοδήποτε text editor για να εισάγετε ή να διορθώσετε το παράδειγμα του SPICE πηγαίου κώδικα αρχείου που καταγράφεται παρακάτω (DC Sweep ανάλυση):

Σημείωση: η πρώτη γραμμή του SPICE πηγαίου κώδικα είναι γραμμή τίτλου και θα αναγνωρισθεί από τον Spice compiler, οπότε είτε την αφήνετε κενή ή της δίνετε ένα όνομα.

Σημείωση: γραμμή που αρχίζει με space letter, θα συμπεριφέρεται σαν σχόλιο.

 

* CMOS Inverter Voltage Transfer Characteristic

*

M1 3 2 1 1 PCH W=3.6U L=1.2U AD=12.96P AS=12.96P PD=14.4U PS=14.4U

M2 3 2 0 0 NCH W=3.6U L=1.2U AD=12.96P AS=12.96P PD=14.4U PS=14.4U

C3 3 0 10P

*

VCC 1 0 DC=5.0

* The following two line are for DC analysis

VIN 2 0

. DC VIN 0 5 0.1

*

. OPTIONS TEMP=25 METHOD =GEAR

. MODEL PCH PMOS (level=3 VTO=-0.7 KP=6.896 RD=0.05577 RS=0.1461 CBD=5.099E-10 IS=1F PB=1)

. MODEL NCH NMOS (level=3 VTO=-0.7 KP=3.291 RD=0.0979 RS=0.0595 CBD=1.02E-09 IS=1F PB=1)

. END

 

Η Time transient ανάλυση είναι επίσης διαθέσιμη αντικαθιστώντας το VIN 2 0 και .DC VIN 0 5 0.1 με τις παρακάτω δο εντολές :

 

Vin 2 0 PWL (0 4N 0 4.1N 3 8N 3 8.1N 0)

. TRAN 0.1N 12N

 

2. Αποθηκεύσετε αυτό το παράδειγμα SPICE πηγαίου κώδικα ως “example.cir”.

 

 

3. Starting SPICE3

1. Για να αρχίσετε το πρόγραμμα και να φορτώσετε το SPICE πηγαίο κώδικα, πληκτρολογήστε spice3 filename στο prompt $.

Για παράδειγμα, τυπώστε

$spice3 example.cir

για να αρχίσετε το SPICE3 και να φορτώσετε το παράδειγμα που διορθώσατε.

2. Στην οθόνη θα εμφανιστεί :

Spice 1 ->

το οποίο υποδεικνει ότι είστε μέσα στο SPICE interactive περιβάλλον.

3. Τυπώστε listing για να δείτε το SPICE πηγαίο κώδικα που φορτώσατε.

4. Τυπώστε run για να εξομοιώσετε το κκλωμα που περιγράφεται από τον SPICE πηγαίο κώδικα.

5. Αν υπάρχει κάποιο λάθος, τυπώστε edit για να καλέσετε το TEXT EDITOR ώστε να διορθώσετε αυτόν το SPICE κώδικα. Αφο διορθώσετε όλα τα λάθη, μην ξεχάσετε να το αποθηκεσετε. Αφο βγείτε από το TEXT EDITOR, θα εμφανιστεί ένα μήνυμα :

running circuit ? -- θα απαντήσετε με y ή n.

6. Τυπώστε plot v(node1) vs v(node2) για τη σχεδίαση (plot) της DC ανάλυσης.

Σ αυτό το παράδειγμα τυπώστε :

plot v(3) vs v(2)

και θα πάρετε τη γραφική παράσταση όπως φαίνεται στη Figure 2.

 

Figure 2. Plot for DC analysis

 

7. Για διάγραμμα ρεματος vs. τάσης εισόδου, τυπώστε:

plot i(VCC) vs v(2)

και θα πάρετε τη γραφική παράσταση όπως φαίνεται στη Figure 2a.

 

Figure 2a. IV curve for inverter

 

8. Για ανάλυση time transient, τυπώστε plot v(node1), v(node2)… για να σχεδιαστεί(plot) το διάγραμμα τάσης κόμβου προς χρόνο.

Σ αυτό το παράδειγμα τυπώστε :

plot v(3)

και θα χαραχθεί το διάγραμμα Voltage προς Time του κόμβου 3 στην οθόνη, όπως φαίνεται παρακάτω.

 

Figure 3. Plot for time transient analysis

 

ενώ αν τυπώστε :

plot v(3), v(2)

α χαραχθεί το διάγραμμα Voltage προς Time των κόμβων 3 και 2 στην ίδια γραφική παράσταση, όπως φαίνεται παρακάτω.

 

Figure 4. Command using plot v(3), v(2)

 

9. Για ανάλυση ισχύς, τυπώστε :

plot v(3)*abs(i(vcc))

 

Figure 4a. Power analysis

 

 

4. Αποθήκευση των αποτελεσμάτων της ανάλυσης

Όταν θα έχετε πραγματοποιήσει την ανάλυσή σας, θα θέλετε να αποθηκεσετε όλα ή κάποια από τα αποτελέσματα σ ένα αρχείο, ώστε να μπορείτε να τα εκτυπώσετε ή να τα παραστήσετε γραφικά (plot), ή να πραγματοποιήσετε κάποια καινούργια ανάλυση. Υπάρχουν δο τύποι δεδομένων όπου μπορούν να αποθηκευτούν, ο ένας είναι αριθμητικά δεδομένα και ο άλλος είναι plot δεδομένα.

1. Για να αποθηκεύσουμε τα αριθμητικά δεδομένα, πρέπει αρχικά να κάνουμε τα δεδομένα εξόδου format τυπώνοντας :

set filetype=ascii

Συνεπώς, όλα τα αριθμητικά δεδομένα θα αποθηκευτούν σε ASCII format. Μετά τυπώστε :

write filename expression

για να αποθηκευτούν τα αριθμητικά δεδομένα (ΜΗΝ ΧΡΗΣΙΜΟΠΟΙΗΤΕ ΤΟ ΙΔΙΟ ΟΝΟΜΑ ΟΠΩΣ ΤΟΥ SPICE ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ ΑΡΧΕΙΟΥ, ΑΛΛΟΙΩΣ ΘΑ ΥΠΕΡΕΓΓΡΑΦΕΙ). Το expression καθορίζει την μεταβλητή που θέλετε να αποθηκεύσετε. Αν το παραλείψετε θα αποθηκευτούν όλες οι μεταβλητές.

Για παράδειγμα, αν θέλετε να αποθηκεύσετε την ανάλυση του κόμβου 3 σ' ένα αρχείο node3.result, τυπώστε:

write node3.result v(3)

Αν θέλετε να αποθηκεύσετε όλες τις αναλύσεις όλων των κόμβων σ' ένα αρχείο node_all.result, τυπώστε:

write node_all.result

2. Για να αποθηκεύσετε τα plot γραφικά δεδομένα, πρέπει αρχικά να ελέξετε τον τύπο του printer σας (αλλοιώς αργότερα ο printer δεν θα μπορεί να τυπώσει τη γραφική παράσταση), θα πρέπει πρώτα να θέσετε το format του αρχείου εξόδου σε postscript (για HP laser jet printer):

set hcopydevtype=postscript

μετά αποθηκεύσετε τη γραφική παράσταση:

hardcopy filename

hardcopy filename

μετά από αυτό θα πάρετε το μήνυμα:

which variable ?

τυπώστε τη μεταβλητή που θέλετε το plot να αποθηκευτεί (π.χ. v(3), vdb(3), vp(1)).

Για περισσότερες μεταβλητές στην ίδια γραφική παράσταση, ας πούμε v(3) και v(2), τυπώστε :

hardcopy all.plot v(3) v(2)

Οι γραφικές των v(3) και v(2) θα αποθηκευτούν σ ένα αρχείο που καλείται all.plot.

 

 

5. Χρήση των αποτελεσμάτων από μια προηγούμενη ανάλυση

Για να χρησιμοποιήσετε τα αποτελέσματα από προηγούμενη ανάλυση, αυτό που έχετε να κάνετε είναι να φορτώσετε το αρχείο που περιέχει τα αποθηκευμένα αποτελέσματα :

load filename

Για παράδειγμα, αν θέλετε να φορτώσετε τα αποτελέσματα που έχουν αποθηκευτεί στο αρχείο node3.result, τυπώστε :

load node3.result

και το αποτέλεσμα θα φορτωθεί. Μπορείτε να χρησιμοποιήστε plot v(3) για να δείτε τη γραφική παράσταση.

 

 

6. Printing and Plotting

Η εκτύπωση εκτελείται μέσω της Open Spool facility. Πρέπει να βγείτε από το SPICE χρησιμοποιώντας την εντολή quit και επιστρέψτε σε περιβάλλον UNIX για να εκτυπώσετε και plot (ΜΗΝ ΞΕΧΑΣΕΤΕ ΝΑ ΑΠΟΘΗΚΕΥΣΕΤΕ ΤΑ ΑΠΟΤΕΛΕΣΜΑΤΑ ΣΑΣ ΠΡΙΝ ΑΠΟ ΑΥΤΟ, ΑΛΛΙΩΣ ΔΕΝ ΘΑ ΜΠΟΡΕΙΤΕ ΝΑ ΤΑ PRINT / PLOT).

1. Για να εκτυπώσετε τα αριθμητικά σας αποτελέσματα από το αρχείο που έχουν αποθηκευτεί, πρέπει να βεβαιωθείτε πρώτα ότι το αρχείο είναι σε ASCII format, (αλλοιώς η εκτύπωση θα είναι τελείως ακατάστατη. Ανατρέξτε στο 5. Αποθήκευση των αποτελεσμάτων μιας ανάλυσης για να δείτε πως αποθηκεύεται σε ASCII format), και μετά τυπώστε τα ακόλουθα :

np -q dm1 filename

np -q dm2 filename

Σ αυτό το παράδειγμα, μπορείτε να τυπώσετε τα ακόλουθα για να εκτυπώσετε τα αριθμητικά σας αποτελέσματα.

np -q dm1 node3.result

ή

np -q dm2 node3.result

2. Για plotting τα προηγομενα αποθηκευμένα γραφικά, πρέπει πρώτα να βεβαιωθείτε ότι το graphic αρχείο είναι σε postscript format, αλλοιώς ο printer δεν θα μπορεί να εκτυπώσει, (Ανατρέξτε στο 5. Αποθήκευση των αποτελεσμάτων μιας ανάλυσης για να δείτε πως αποθηκεύεται σε postscript format), και μετά τυπώστε :

np -q laser filename

Σ αυτό το παράδειγμα, μπορείτε να τυπώσετε :

np -q laser node3.plot

 

 

Eπιστροφή στο The Spice Page