updated test_mosgen.sch and mosgen examples
This commit is contained in:
parent
4b9f61612b
commit
5feb4539c7
|
|
@ -58,58 +58,6 @@ hide=true}
|
|||
T {tcleval(id=[to_eng [ngspice::get_node [subst -nocommand \{i(\\@m.$\{path\}@spiceprefix@name\\.msky130_fd_pr__@model\\[id])\}]]] )} 32.5 -30 0 0 0.15 0.15 {layer=15
|
||||
hide=true}
|
||||
}
|
||||
} elseif {$model eq {nfet_01v8}} {
|
||||
puts {v {xschem version=3.1.0 file_version=1.2 }
|
||||
G {}
|
||||
K {type=nmos
|
||||
lvs_format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W nf=@nf m=@mult"
|
||||
format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W
|
||||
+ nf=@nf ad=@ad as=@as pd=@pd ps=@ps
|
||||
+ nrd=@nrd nrs=@nrs sa=@sa sb=@sb sd=@sd
|
||||
+ mult=@mult m=@mult"
|
||||
template="name=M1
|
||||
L=0.15
|
||||
W=1
|
||||
nf=1
|
||||
mult=1
|
||||
ad=\\"'int((nf+1)/2) * W/nf * 0.29'\\"
|
||||
pd=\\"'2*int((nf+1)/2) * (W/nf + 0.29)'\\"
|
||||
as=\\"'int((nf+2)/2) * W/nf * 0.29'\\"
|
||||
ps=\\"'2*int((nf+2)/2) * (W/nf + 0.29)'\\"
|
||||
nrd=\\"'0.29 / W'\\" nrs=\\"'0.29 / W'\\"
|
||||
sa=0 sb=0 sd=0
|
||||
model=nfet_01v8
|
||||
spiceprefix=X
|
||||
"}
|
||||
V {}
|
||||
S {}
|
||||
E {}
|
||||
L 4 7.5 -22.5 7.5 22.5 {}
|
||||
L 4 -20 0 2.5 0 {}
|
||||
L 4 20 -30 20 -17.5 {}
|
||||
L 4 20 17.5 20 30 {}
|
||||
L 4 2.5 -15 2.5 15 {}
|
||||
L 4 7.5 -17.5 20 -17.5 {}
|
||||
L 4 7.5 17.5 15 17.5 {}
|
||||
B 5 17.5 -32.5 22.5 -27.5 {name=D dir=inout}
|
||||
B 5 -22.5 -2.5 -17.5 2.5 {name=G dir=in}
|
||||
B 5 17.5 27.5 22.5 32.5 {name=S dir=inout}
|
||||
B 5 19.921875 -0.078125 20.078125 0.078125 {name=B dir=in}
|
||||
P 4 4 15 15 20 17.5 15 20 15 15 {fill=true}
|
||||
P 5 4 20 -2.5 15 0 20 2.5 20 -2.5 {fill=true}
|
||||
T {@name} 5 -30 0 1 0.2 0.2 {}
|
||||
T {S} 22.5 17.5 0 0 0.15 0.15 {layer=7}
|
||||
T {D} 22.5 -17.5 2 1 0.15 0.15 {layer=7}
|
||||
T {B} 20 -10 0 0 0.15 0.15 {layer=7}
|
||||
T {G} -10 -10 0 1 0.15 0.15 {layer=7}
|
||||
T {@model} 30 -8.75 2 1 0.2 0.2 {}
|
||||
T {@mult x @W / @L} 31.25 13.75 0 0 0.2 0.2 { layer=13}
|
||||
T {nf=@nf} 31.25 1.25 0 0 0.2 0.2 { layer=13}
|
||||
T {tcleval(gm=[to_eng [ngspice::get_node [subst -nocommand \{\\@m.$\{path\}@spiceprefix@name\\.msky130_fd_pr__@model\\[gm]\}]]] )} 32.5 -8.75 0 0 0.15 0.15 {layer=15
|
||||
hide=true}
|
||||
T {tcleval(id=[to_eng [ngspice::get_node [subst -nocommand \{i(\\@m.$\{path\}@spiceprefix@name\\.msky130_fd_pr__@model\\[id])\}]]] )} 32.5 -30 0 0 0.15 0.15 {layer=15
|
||||
hide=true}
|
||||
}
|
||||
} elseif {$model eq {pfet_g5v0d10v5}} {
|
||||
puts {v {xschem version=3.1.0 file_version=1.2}
|
||||
G {}
|
||||
|
|
@ -216,18 +164,58 @@ hide=true}
|
|||
T {tcleval(id=[to_eng [ngspice::get_node [subst -nocommand \{i(\\@m.$\{path\}@spiceprefix@name\\.msky130_fd_pr__@model\\[id])\}]]] )} 32.5 -30 0 0 0.15 0.15 {layer=15
|
||||
hide=true}
|
||||
}
|
||||
} else {
|
||||
puts {
|
||||
G {type=missing
|
||||
format="* @name - @symname IS MISSING !!!!"
|
||||
template="name=x1"}
|
||||
L 8 -110 -25 -110 25 {}
|
||||
L 8 -110 -25 110 -25 {}
|
||||
L 8 110 -25 110 25 {}
|
||||
L 8 -110 25 110 25 {}
|
||||
T {@symname} -44.5 1.5 0 0 0.3 0.3 {}
|
||||
T {@name} 115 -37 0 0 0.2 0.2 {}
|
||||
T {---MISSING SYMBOL---} -89.5 -21 0 0 0.3 0.3 {}
|
||||
|
||||
|
||||
} else { ;# default: nfet_01v8
|
||||
puts {v {xschem version=3.1.0 file_version=1.2 }
|
||||
G {}
|
||||
K {type=nmos
|
||||
lvs_format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W nf=@nf m=@mult"
|
||||
format="@spiceprefix@name @pinlist sky130_fd_pr__@model L=@L W=@W
|
||||
+ nf=@nf ad=@ad as=@as pd=@pd ps=@ps
|
||||
+ nrd=@nrd nrs=@nrs sa=@sa sb=@sb sd=@sd
|
||||
+ mult=@mult m=@mult"
|
||||
template="name=M1
|
||||
L=0.15
|
||||
W=1
|
||||
nf=1
|
||||
mult=1
|
||||
ad=\\"'int((nf+1)/2) * W/nf * 0.29'\\"
|
||||
pd=\\"'2*int((nf+1)/2) * (W/nf + 0.29)'\\"
|
||||
as=\\"'int((nf+2)/2) * W/nf * 0.29'\\"
|
||||
ps=\\"'2*int((nf+2)/2) * (W/nf + 0.29)'\\"
|
||||
nrd=\\"'0.29 / W'\\" nrs=\\"'0.29 / W'\\"
|
||||
sa=0 sb=0 sd=0
|
||||
model=nfet_01v8
|
||||
spiceprefix=X
|
||||
"}
|
||||
V {}
|
||||
S {}
|
||||
E {}
|
||||
L 4 7.5 -22.5 7.5 22.5 {}
|
||||
L 4 -20 0 2.5 0 {}
|
||||
L 4 20 -30 20 -17.5 {}
|
||||
L 4 20 17.5 20 30 {}
|
||||
L 4 2.5 -15 2.5 15 {}
|
||||
L 4 7.5 -17.5 20 -17.5 {}
|
||||
L 4 7.5 17.5 15 17.5 {}
|
||||
B 5 17.5 -32.5 22.5 -27.5 {name=D dir=inout}
|
||||
B 5 -22.5 -2.5 -17.5 2.5 {name=G dir=in}
|
||||
B 5 17.5 27.5 22.5 32.5 {name=S dir=inout}
|
||||
B 5 19.921875 -0.078125 20.078125 0.078125 {name=B dir=in}
|
||||
P 4 4 15 15 20 17.5 15 20 15 15 {fill=true}
|
||||
P 5 4 20 -2.5 15 0 20 2.5 20 -2.5 {fill=true}
|
||||
T {@name} 5 -30 0 1 0.2 0.2 {}
|
||||
T {S} 22.5 17.5 0 0 0.15 0.15 {layer=7}
|
||||
T {D} 22.5 -17.5 2 1 0.15 0.15 {layer=7}
|
||||
T {B} 20 -10 0 0 0.15 0.15 {layer=7}
|
||||
T {G} -10 -10 0 1 0.15 0.15 {layer=7}
|
||||
T {@model} 30 -8.75 2 1 0.2 0.2 {}
|
||||
T {@mult x @W / @L} 31.25 13.75 0 0 0.2 0.2 { layer=13}
|
||||
T {nf=@nf} 31.25 1.25 0 0 0.2 0.2 { layer=13}
|
||||
T {tcleval(gm=[to_eng [ngspice::get_node [subst -nocommand \{\\@m.$\{path\}@spiceprefix@name\\.msky130_fd_pr__@model\\[gm]\}]]] )} 32.5 -8.75 0 0 0.15 0.15 {layer=15
|
||||
hide=true}
|
||||
T {tcleval(id=[to_eng [ngspice::get_node [subst -nocommand \{i(\\@m.$\{path\}@spiceprefix@name\\.msky130_fd_pr__@model\\[id])\}]]] )} 32.5 -30 0 0 0.15 0.15 {layer=15
|
||||
hide=true}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,11 +33,11 @@ N 500 -350 500 -290 {
|
|||
lab=#net13}
|
||||
N 790 -350 790 -290 {
|
||||
lab=#net14}
|
||||
C {mosgen( @model )} 480 -140 0 0 {name=x1
|
||||
C {mosgen(@model)} 480 -140 0 0 {name=x1
|
||||
model=nfet_01v8}
|
||||
C {mosgen( @model )} 770 -140 0 0 {name=x2
|
||||
C {mosgen(@model)} 770 -140 0 0 {name=x2
|
||||
model=nfet_g5v0d10v5}
|
||||
C {mosgen( @model )} 480 -260 0 0 {name=x3
|
||||
C {mosgen(@model)} 480 -260 0 0 {name=x3
|
||||
model=pfet_01v8}
|
||||
C {mosgen( @model )} 770 -260 0 0 {name=x4
|
||||
C {mosgen(@model)} 770 -260 0 0 {name=x4
|
||||
model=pfet_g5v0d10v5}
|
||||
|
|
|
|||
Loading…
Reference in New Issue