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

  


Home Tutorial             Back to Magic

karl@vlsi.bu.edu ,11.09.98