In Xschem when using such a symbol (the 'nf' one) ...
# xschem
t
In Xschem when using such a symbol (the 'nf' one) and then having
W=12 L=0.5 nf=3
The W is the total width right ? Or the per-finger one ? I was pretty sure it was the total one given you have stuff like
ad="'int((nf+1)/2) * W / nf * 0.29'"
in the param box ( the
W/nf
being the clue ).
s
@tnt the *_nf.sym mosfets take the single finger width as the W parameter. If you have a
nfet_01v8_nf.sym
device instantiated with: W=2 nf=3 L=0.15 you get the following netlist:
Copy code
XM1 net1 net2 net3 net4 sky130_fd_pr__nfet_01v8 L=0.15 W='2 * 3 ' nf=3 ad='int((nf+1)/2) * W / nf * 0.29' as='int((nf+2)/2) * W / nf * 0.29'
+ pd='2*int((nf+1)/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 mult=1
+ m=1
you see the expression
W='2 * 3'
, total width is calculated as product of finger width * nf The expressions for ad, as, pd, ps use this calculated W value. The only reason for the *nf.sym symbols was user request. Some users asked to have devices where the finger width is specified in transistor attributes, instead of the total width, as default in xschem_sky130
1
t
Damn, I wasn't aware of that, I though the
nf
thing was just cosmetic.
s
@tnt a W=2 L=0.15 transistor drawn as a single gate is very similar but not identical to a 2 finger device with dual gate W=1 L=0.15. Hopefully model files take account for the specified number of fingers and refurn the correct I/V characteristic. *_nf.sym and no _nf symbols in xschem are identical, only the W value has a different meaning. When netlisting the *nf.sym devices the W is immediately evaluated as total width (fingerW * nf), this is what spice model files expect for transistor W
1
t
Yeah, I had in memeory that W was the total length and set the params like that in xschem and when doing the sims. But when doing the layout I used that as the total W ... so in my layout my transistor are 4 to 7 times too small vs what I had designed in the schematic ...
s
the *_nf.sym symbols can generate confusion (I was not very happy for adding them, but there was some pressure from more than 1 users). Do not mix *_nf.sym and and normal fet symbols. I have added notes in the top intro schematic and also graphically these symbols look different to try to minimize confusion.
1
🙌 1