<@U035Y438MQC> if you set a transistor, say `nfet_...
# xschem
s
@User if you set a transistor, say
nfet_1v8
with
W=1000
,
L=0.15
and
nf=100
you are creating a transistor with 100 fingers, 10um long each, for a total W=1000, and aspect ratio is 1000/0.15 so >> 1000. There is a limit in the sky130 models for maximum width, so that's the reason nf is used. Xschem_sky130 provides also a set of transistors (pfet_01v8_lvt`_nf`.sym, pfet_01v8_lvt`_nf`.sym, nfet_01v8`_nf`.sym, and so on , see the
_nf
suffix), where the W parameter is the single finger width, so if you specify W=10 and nf=100 the total width will be 10 * 100 = 1000. Different users have different preferences, use the transistor type that you like more. Regarding the '`mult`' parameter this just specifies the number of parallel devices you want. Setting
mult=10
is equivalent to placing 10 transistors in parallel. Simulation will be faster since ngspice needs to evaluate only one transistor instance and multiply current / capacitances / charges by
mult
.
h
@User that’s a good hint about using the
mult
factor for simulation speedup. so far my go-to method is using iterated instances. BTW, never tried this in
xschem
so far, would it work?
s
@User sure it works, if the iterated transistors are truly in parallel you can place one instance with appropriate 'mult' attribute.
2
h
In a major commercial tool you can use
M12<1:3>
to place 3 devices in parallel. Would this work in
xschem
?
s
@User yes in xschem you have the same syntax, with square brackets
M12[1:3]
, it will translate to 3 insances in spice netlist:
M12[1], M12[2], M12[3]
. Details of instance / net arrays are documented here.
h
@User super helpful, thanks!