Quick and Dirty
Grundlegende UNIX-Befehle:
Alle Optionen für die einzelnen Befehle können durch den "man <command>"-Befehl ermittelt werden.
| cd | Verzeichnis wechseln | ls | Verzeichnisinhalt zeigen |
| cp | kopieren | mv | File verschieben/umbenennen |
| rm | löschen von File(s) | rmdir | löschen von einem Verzeichnis |
| mkdir | erstellen eines Verzeichnis | cat | ausgeben einer Textdatei |
| man | Manual für alle UNIX-Befehle | xedit | Editor |
| gz | GZip-Programm | tar | Files sammeln zur Archivierung |
Hinweis: Unix ist case-sensitive! Groß- und Kleinschreibung beachten.
Design-Programme:
| magic | Layout-Editor auf Gatterebene mit Design-Rule-Checker, Extractor und Maskenschreib-Modul |
| spice3 | Spice-Simulator mit integrierten Signal-Viewer |
| ext2spice | Konverter für extrahierten Schaltkreis von Magic nach Spice |
| sigview | Separater Signalform-Viewer |
MAGIC
Befehl: magic -T <technology> <file>
Beispiel: 'magic DFF' lädt den File 'DFF.mag' und startet mit Standardtechnologie SCMOS
Der ganze Funktionsinhalt von Magic kann durch den Unix-Befehl: 'man magic' aufgerufen werden.
Wichtigsten Interpreter-Befehle nach dem starten von MAGIC:
Magic besteht aus 2 Fenstern: Layout-Fenster und Commando-Fenster. Um einen Befehl einzugeben, muß das Layout-Fenster aktiv sein. Mit ':' geht das Commando-Modul vom Makro-Modus in den Interpreter-Modus. In diesem Modus können folgende Befehle verwendet werden:
| :paint <layer> | Gewählte Layer wird auf gewählten Bereich gezeichnet. |
| :erase <layer> | Gewählte Layer unter dem gewählten Bereich wird gelöscht |
| :save <name> | Speichert aktive Zelle unter <name> |
| :write | Speichert alle geänderten Zellen des Layouts |
| :write all | Speichert alle Zellen des Layouts |
| :ext | extrahiert das aktive Zell-Layout zu einer Schlatkreis-Beschreibung |
| :ext help | Zeigt die Optionen für den ext-Befehl, u.a. setzen der Technologie |
| :cif write | Schreiben Aktiven Zelle und deren Töchter als Maskenlayout-File |
| :cif help | Zeigt die Optionen für den cif-Befehl, u.a. setzen der Technologie |
| :macro <key> <command> | Zuweisen eines bestimmten Interpreter-Komandos zu einer Taste |
| :drc on/off | Design-Rule-Checker an/aus |
| :help | Zeigt alle verfügbaren Befehle unter Magic an |
Wichtigsten Makro-Befehle nach dem starten von Magic
Auch im Makro-Modus muß das Layout-Fenster das aktive Fenster sein. Im Gegensatz zum Interpreter-Modus, wird durch Tastendruck eine bestimmtes Kommando ausgeführt. Diese Makros können benutzerspezifisch in der Datei '.magic' im Root-Verzeichnis des Users gesetzt werden. Es wird zwischen Groß- und Kleinschreibung unterschieden.
s |
selektieren eines bestimmten Layer |
S |
weitere verbundene Layer selektieren |
a |
selektieren eines beliebigen Bereichs mit allen Layern |
A |
weitere Bereiches selektieren |
c |
kopieren des selektierten Bereiches zur Cursor-Position |
g |
ein/ausschalten der Grid-Funktion (in l ) |
q/Q |
verschieben/ziehen um 1 l nach links |
r/R |
verschieben/ziehen um 1 l nach rechts |
w/W |
verschieben/ziehen um 1 l nach oben |
e/E |
verschieben/ziehen um 1 l nach unten |
o/O |
weiteres Layout-Fenster öffnen/schließen |
z |
Zoom auf gewählten Bereich |
Z |
Zoom out um Faktor 2 |
v |
view - Gesamtes Layout wird dargestellt |
u/U |
undo/redo |
, |
center - kann benutzt werden um sich durchs Layout zu bewegen |
<space> |
Funktionsbelegung der Maus durchschalten (box, wire, netlist, rsim) |
Verschiedene Funktionsbelegung der Maus
Durch drücken der <space>-Taste können die einzelnen Funktionsbelegungen der Maus durchgeschaltet werden.
Modus |
Cursor |
Maus 1 |
Maus 2 |
Maus 3 |
Box |
L-förmig |
Set |
Put Layer |
Set Corner |
Wire |
Pfeil |
Select |
Connect |
Wire |
Netlist |
Rechteck mit Punkt |
|||
Rsim |
Hand |
Wichtigsten Layer für SCMOS (NMOS-Prozess z.B. ORB20)
NMOS-Transistor (enhancement) |
ndc Via aktive Region und Metal1 |
ndiff oder green aktive Region |
nfet n-Transistor (automatisch definiert, wenn Poly1 ndiff kreuzt) |
pwc P-Well Kontakt |
PMOS-Transistor (depletion) |
pdc Via aktive Region und Metal1 |
pdiff oder brown aktive Region |
pfet p-Transistor (automatisch definiert, wenn Poly1 pdiff kreuzt) |
nwc N-Well Kontakt |
Layer und Vias: |
Poly oder red Poly1-Layer |
p2 Poly2-Layer |
m1 oder blue Metal1 |
m2 Metal2 |
pc Via Poly1-Metal1 |
p2c Via Poly2-Metal1 |
m2c Via Metal1-Metal2 |
glass Markieren von Bereichen ohne Silicat-Glass |
SPICE
Befehl: spice3 <name>, wobei <name> ein Spice-Netlist-File sein muß.
Beispiel: spice3 extDFF.spice
Interpreter Modus:
Nach der Befehlszeile befindet man sich im Spice-Interpreter. Hier können unterschiedlichste Analysearten auf den Schaltkreis angewandt werden, neue Schaltkreise geladen, editiert und die Ergebnisse grafisch dargestellt werden.
help |
ruft die eingebauten Help-Funktion auf. |
source <name> |
laden eines Spice-Netlist-Files |
load <name> |
laden von Plot-Daten |
edit |
aktiver File wird in emacs geöffnet |
save n1, n2, ... |
speichern von Plot-Daten |
Folgende Interpreter-Kommandos können auch in den Spice-Netlist-File eingefügt werden und das Spice-Modul kann in einen Batch-Mode betrieben werden. Der Unterschied zu den Interpreter-Kommandos liegt darin, daß die Befehle im Netlist-File mit einem '.' vor dem Kommando gekennzeichnet werden.
Four |
Fourieranalyse |
tran n m |
Zeitanalyse, n ist der maximale Zeitschritt, m die Simulationsdauer |
ac |
AC-Analyse |
dc |
DC-Analyse |
print <Analysetyp> node1 node2 ... |
Ausgabe von Node-Daten |
plot node node2 |
Graphische Ausgabe von den Analysedaten |
Spice-File Aufbau
| *************************** |
| * Christian Karl, BU 1998 * |
| *************************** |
| .MODEL nmos nmos LEVEL=3 PHI=0.700000 TOX=3.1400E-08 XJ=0.200000U TPG=1 |
| + VTO=0.6474 DELTA=1.6230E+00 LD=5.8150E-09 KP=8.0236E-05 |
| + UO=729.6 THETA=1.2540E-01 RSH=9.0910E-02 GAMMA=0.5999 |
| + NSUB=1.3110E+16 NFS=6.5000E+11 VMAX=2.1000E+05 ETA=9.9760E-02 |
| + KAPPA=1.5680E-01 CGDO=9.5924E-12 CGSO=9.5924E-12 |
| + CGBO=2.9552E-10 CJ=2.84E-04 MJ=0.517 CJSW=1.97E-10 |
| + MJSW=0.100 PB=0.99 |
| .MODEL pmos pmos LEVEL=3 PHI=0.700000 TOX=3.1400E-08 XJ=0.200000U TPG=-1 |
| + VTO=-0.8483 DELTA=1.8430E+00 LD=1.0280E-09 KP=1.9212E-05 |
| + UO=174.7 THETA=7.7780E-02 RSH=1.0500E-01 GAMMA=0.3635 |
| + NSUB=4.8130E+15 NFS=6.5000E+11 VMAX=4.0030E+05 ETA=1.3040E-01 |
| + KAPPA=9.9940E+00 CGDO=1.6958E-12 CGSO=1.6958E-12 |
| + CGBO=3.1527E-10 CJ=3.02E-04 MJ=0.497 CJSW=2.59E-10 |
| + MJSW=0.100 PB=0.99 |
| .SUBCKT CON IN OUT |
| R1 IN OUT 1 |
| .ENDS CON |
| .SUBCKT INV IN OUT |
| Vdd 1 0 DC 5 |
| M1 OUT IN 1 1 pmos W=3.6U L=1.2U |
| M2 OUT IN 0 0 nmos W=1.8U L=1.2U |
| .ENDS INV |
| M1 2 3 1 1 pmos W=3.6U L=1.2U AD=19.4P PD=13.8U AS=17.7P PS=10.1U |
| M2 4 5 6 1 pmos W=3.6U L=1.2U AD=13.0P PD=10.8U AS=13.0P PS=10.8U |
| M3 2 5 1 1 pmos W=3.6U L=1.2U AD=19.4P PD=13.8U AS=17.7P PS=10.1U |
| M4 0 5 4 0 nmos W=1.8U L=1.2U AD=9.8P PD=7.3U AS=6.8P PS=9.0U |
| M5 7 3 2 0 nmos W=1.8U L=1.2U AD=7.6P PD=7.5U AS=11.9P PS=12.6U |
| M6 3 2 1 1 pmos W=3.6U L=1.2U AD=19.4P PD=13.8U AS=17.7P PS=10.1U |
| M7 1 3 8 1 pmos W=3.6U L=1.2U AD=17.7P PD=10.1U AS=2.2P PS=1.2U |
| M8 8 9 10 1 pmos W=3.6U L=1.2U AD=2.2P PD=1.2U AS=13.0P PS=10.8U |
| M9 11 9 12 1 pmos W=3.6U L=1.2U AD=13.0P PD=10.8U AS=2.2P PS=1.2U |
| M10 12 2 1 1 pmos W=3.6U L=1.2U AD=2.2P PD=1.2U AS=17.7P PS=10.1U |
| M11 3 13 1 1 pmos W=3.6U L=1.2U AD=19.4P PD=13.8U AS=17.7P PS=10.1U |
| M12 6 13 1 1 pmos W=3.6U L=1.2U AD=13.0P PD=10.8U AS=17.7P PS=10.1U |
| M13 1 4 14 1 pmos W=13.8U L=1.2U AD=67.7P PD=38.9U AS=15.1P PS=1.8U |
| M14 1 15 9 1 pmos W=13.2U L=1.2U AD=64.7P PD=37.2U AS=13.0P PS=1.2U |
| M15 0 3 10 0 nmos W=1.8U L=1.2U AD=9.8P PD=7.3U AS=4.0P PS=4.2U |
| M16 7 2 3 0 nmos W=1.8U L=1.2U AD=7.6P PD=7.5U AS=6.8P PS=9.0U |
| M17 0 13 4 0 nmos W=1.8U L=1.2U AD=9.8P PD=7.3U AS=6.8P PS=9.0U |
| M18 0 5 7 0 nmos W=1.8U L=1.2U AD=9.8P PD=7.3U AS=7.6P PS=7.5U |
| M19 7 13 0 0 nmos W=1.8U L=1.2U AD=7.6P PD=7.5U AS=9.8P PS=7.3U |
| M20 10 9 11 0 nmos W=1.8U L=1.2U AD=4.0P PD=4.2U AS=4.0P PS=4.2U |
| M21 11 2 0 0 nmos W=1.8U L=1.2U AD=4.0P PD=4.2U AS=9.8P PS=7.3U |
| M22 0 4 14 0 nmos W=12.6U L=1.2U AD=68.7P PD=51.4U AS=12.6P PS=1.8U |
| M23 0 15 9 0 nmos W=13.2U L=1.2U AD=71.9P PD=53.9U AS=13.0P PS=1.2U |
| * Interlayer capacitors |
| C1 0 13 1.672FF |
| C2 4 1 5.328FF |
| C3 8 1 1.776FF |
| C4 10 1 5.328FF |
| C5 11 1 5.328FF |
| C6 6 1 10.656FF |
| C7 12 1 1.776FF |
| C8 0 4 1.232FF |
| C9 14 1 7.090FF |
| C10 3 1 15.984FF |
| C11 7 4 1.276FF |
| C12 9 1 5.328FF |
| C13 2 1 15.984FF |
| * Node capacitors to ground, node |
| C14 16 0 10.232FF |
| C15 15 0 1.044FF |
| C16 4 0 15.859FF |
| C17 6 0 7.067FF |
| C18 10 0 13.464FF |
| C19 11 0 13.986FF |
| C20 2 0 19.413FF |
| C21 14 0 7.265FF |
| C22 13 0 9.246FF |
| C23 5 0 6.569FF |
| C24 1 0 36.049FF |
| C25 17 0 9.304FF |
| C26 3 0 12.875FF |
| C27 9 0 10.262FF |
| *** I/V SET |
| VR1 13 0 PULSE(0V 5V 20ns 3ns 3ns 30ns 100ns) |
| VR2 5 0 PULSE(0V 5V 20ns 3ns 3ns 30ns 101ns) |
| xCON 14 15 CON |
| xINV1 OUT3 OUT1 INV |
| xINV2 OUT1 OUT2 INV |
| xINV3 OUT2 OUT3 INV |
| .options poweruplen=0.5n |
| .tran/powerup 2n 300n |
| .print tran v(13) v(5) v(10) v(11) |
| .print tran v(OUT3) |
| .end |
Subcircuit-Beispiele:
| .SUBCKT INV IN OUT |
| Vdd 1 0 DC 5 |
| M1 OUT IN 1 1 pmos W=6.0u L=2.0u |
| M2 OUT IN 0 0 nmos W=3.0u L=2.0u |
| .ENDS INV |
| .SUBCKT NAND IN1 IN2 OUT |
| Vdd 1 0 DC 5 |
| M1 OUT IN1 1 1 pmos W=6.0u L=2.0u |
| M2 OUT IN2 1 1 pmos W=6.0u L=2.0u |
| M3 OUT IN1 2 0 nmos W=3.0u L=2.0u |
| M4 2 IN2 0 0 nmos W=3.0u L=2.0u |
| .ENDS NAND |
| .SUBCKT NOR IN1 IN2 OUT |
| Vdd 1 0 DC 5 |
| M1 2 IN1 1 1 pmos W=6.0u L=2.0u |
| M2 OUT IN2 2 1 pmos W=6.0u L=2.0u |
| M3 OUT IN1 0 0 nmos W=3.0u L=2.0u |
| M4 OUT IN2 0 0 nmos W=3.0u L=2.0u |
| .ENDS NOR |
| .SUBCKT AND IN1 IN2 OUT |
| xNAND IN1 IN2 notOUT NAND |
| xINV notOUT OUT INV |
| .ENDS AND |
| .SUBCKT OR IN1 IN2 OUT |
| xNOR IN1 IN2 notOUT NOR |
| xINV notOUT OUT INV |
| .ENDS OR |
| .SUBCKT T L CLK R |
| *** Transmission-Gate transparent für CLK logisch 0 |
| Vdd 1 0 DC 5 |
| M1 L CLK R 1 pmos W=6.0u L=2.0u |
| M2 L notCLK R 0 nmos W=3.0u L=2.0u |
| xINV CLK notCLK INV |
| .ENDS T |
| .SUBCKT DLATCH IN CLK OUT |
| *** DLATCH transparent für CLK logisch 1 |
| xT1 IN notCLK 2 T |
| xINV1 2 3 INV |
| xINV2 3 OUT INV |
| xT2 OUT CLK 2 T |
| xINV3 CLK notCLK INV |
| .ENDS DLATCH |
| .SUBCKT SRFF1 R1 R2 Q1 Q2 |
| xNAND1 R1 Q2 Q1 NAND |
| xNAND2 R2 Q1 Q2 NAND |
| .ENDS SRFF1 |
| .SUBCKT SRFF2 R1 R2 Q1 Q2 |
| xNOR1 R1 Q2 Q1 NOR |
| xNOR2 R2 Q1 Q2 NOR |
| .ENDS SRFF2 |
Subcircuits finden Anwendung bei der Modellierung von Modellen => Design-Prozess
karl@vlsi.bu.edu ,11.09.98