<@U016EM8L91B> <@U01819B63HP> I am currently attem...
# analog-design
j
@Tim Edwards @Stefan Schippers I am currently attempting to use both fingers and multipliers at the same time. For example, I would like to instantiate a MOSFET with a total width of 14u: a multiplier of two, 7 fingers per unit transistor (each finger would be 1um wide). In other words, I set W = 7, NF = 7, and M = 2. However, when I do this, Ngspice casts an error. Am I misunderstanding how the notation works for fingers and multipliers in Xschem? And am I supposed to set the W = 14, NF = 7, M = 2 in this case? Side note: I am just using the regular nfet_01v8 symbol. Final side note: is there no performance difference during simulation of multipliers and fingers? I ran tests on the two circuits, one using fingers, and the other using multipliers and there was no difference from what I could tell (I expected greater BW from my circuit with fingers). Do the models not account for the shared diffusions / reduced parasitic cap?
m
i faced the same issue. For nf more than 2 or 3 there will be an error. it also doesn't work with the certain sizing. for example there will be an error if you set w=0.84
s
@Jon Ho I tried
nfet_01v8.sym
and
nfet_01v8_lvt.sym
and both worked with
W=7 nf=7
and
mult=2
. Keep in mind that if using W=1, nf=5 the single finger will have width=0.2 and this is probably too small.
๐Ÿ‘ 1
The netlist:
XM1 net1 G1v8 S B sky130_fd_pr__nfet_01v8_lvt *L=0.15 W=7 nf=7* 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=2 *m=2*
XM2 net3 G1v8 S B sky130_fd_pr__nfet_01v8 *L=0.15 W=7 nf=7* 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=2 *m=2*
The I-V characteristic: (gate sweep from 0 to 1.8V, step 0.2V)
m
@Stefan Schippers i set w=0.36 and nf=2, ngspice works with width less than 0.2 for each finger but when i set w=1.05 or w=0.84 there is an error
Untitled1.png
however it works with nf=1 and w=0.84
s
your problem is the ngspice version is too old. My version is 39 yours is 26. Do not install ngspice from ubuntu repositories, get ngspice sources from sourceforge and build your ngspice. Remove the installed one (sudo apt purge ngspice). I have no problem simulating W-0.84 and nf=2
๐Ÿ‘ 1
j
@Stefan Schippers Thank you very much for the info! I believe I was mistaken: I was using the nf version of the 1.8V NMOS when this error occurred.
๐Ÿ‘ 1