New Fet parameter annotator is added in sky130. Sh...
# xschem
s
New Fet parameter annotator is added in sky130. Shows
gm, gds, vth, vdsat, cgg, cgdo, cgso
and
ft
, calculated as
ft = gm / [2π (Cgg + Cgdo + Cgso)]
All the necessary procedures are in the sky130
xschemrc
file, since all this is pdk-specific (plus the
sky130_fd_pr/annotate_fet_params.sym
symbol). Next step is to add similar functionality for the IHP PDK if there interest. @Harald Pretl I have verified thet the
ft
calculated with the above formula is correct (of course i was not questioning the formula but the ngspice
cg*
parameters), i have run an AC analysis and let ngspice show the point where unity current gain occurs. The frequency value matches with the formula as shown in the video.
🙌 4
b
This is great! I am a little surprised that his works, though. I complained a few months ago that the overlap caps are not written out by the model, was this fixed? Looks like I need to try again... https://open-source-silicon.slack.com/archives/C0750383B2M/p1721240399826509
h
@Stefan Schippers this is great, thanks for implementing this. Yes, there is great interest to have this in IHP as well 😀
m
@Boris Murmann, I had provided a patch for updating the BSIM4 parameter table:https://sourceforge.net/p/ngspice/patches/116/
I assume the Ngspice team added the patch to the latest 44 release
🙌 1
s
@Harald Pretl @Boris Murmann I was looking at the IHP pdk (updated my workspace to latest IHP-Open-PDK
dev
branch). The mos models are based on Verilog-A
pspnqs103va
model. (at least the 1st one I am looking at,
sg13_lv_nmos
). As such they are completely different from BSIM4 regarding the observable parameters. What are the equivalents for the common ones I need, like
id, gm, gds, vdsat, vth
and the gate (
cg*
)capacitances? in bsim4, adding
.options savecurrents
I get all the MOS [id] values, like:
i(@m.xm_bias.msky130_fd_pr__nfet_01v8_lvt[id])
and from this syntax it is easy to get all the other parameters by adding the
.save
lines.
I need to check on vdsat, but I think you can get all the correct names by running op + show.
👍 3
s
@Boris Murmann Thank you for the tip. The vdsat equivalent is
vdss
. There is also a parameter
vsat
which is
vds - vdss
, it tells you how far the transistor is in saturation region. BTW, the IHP parameters are much simpler than the long sky130 bsim4 equivalents.
👍 1
@Boris Murmann @Harald Pretl I have the mosfet parameter display working for IHP. (see image example). The task was much easier than in sky130 since the syntax conventions for device naming are consistent across the different transistor types. I will soon do a PR or any other kind of submit to implement the function. However while doing tests I noticed something very strange for the sg13_lv_nmos: The W=1u/L=1u transistors has higher current than the W=1u/L=0.13u. Am I missing something?
b
That's odd. I'll try to duplicate this.
I see now, I think it's fine. This is because the Vth of the short channel is much higher due to reverse short channel effect (halo doping). Your DC sweep goes to 0.5V and the Vth of the short channel is 0.45V, so it barely turns on. In your OP sim at VG=0.75 V, the short channel has a higher current than the long channel.
h
@Stefan Schippers @Boris Murmann yes, the Vth=f(L) is pretty strong in IHP.
s
Yes I thought the same yesterday night. At higher Vgs values the short channel has higher currents. Didn't realize the dc sweep was at low Vgs values.
t
Hi, how can I get those features, since Xschem V3.4.6 (get by
git clone <https://github.com/stefanschippers/xschem.git>
) does not have it?
s
@Toni Tejada The above additions are process specific so they are in the development branch of the IHP pdk: https://github.com/IHP-GmbH/IHP-Open-PDK/tree/dev
t
Thanks Stefan for the quick response. I mean that the PDK menu does not appear to me. I am running xschem from
/usr/local/share/pdk/sky130A/libs.tech/xschem
to load the pdk´s
xschemrc
file.
I install the PDK from
git clone <https://github.com/RTimothyEdwards/open_pdks>
. I just realize that the
tb_ft_test.sch
is very different from the shown in your video.
s
@Toni Tejada did you run
make update
in the open_pdks repository after git pull to update the imported repositories? If everything fails get the complete
sky130_tests/
and
sky130_fd_pr/
directories from here and replace your installed copy in
.../libs.tech/xschem/
t
Thank you very much @Stefan Schippers, now I got accessfully the PDK menu and the schematic examples are updated. What I did:
Copy code
cd ~/repos/open_pdks

make distclean
./configure --enable-sky130-pdk --enable-reram-sky130
make -j"$jobsize"
sudo make install
Doing
make distclean
the command
make update
return error because the complete cleaning of the previous command, and all the repositories were downloaded from the last version.
image.png
s
@Toni Tejada yes sometimes updates fail. If this happen I delete everything and start over again with a git clone. The
make update
should be issued after a
make veryclean
.
make distclean
clears too much
m
Hi every one, I am trying to simulate the behavior of nfet_03V3_nvt in sky130PDK. but its simulations are successful only if the L<0.6, for any value of L>0.6 simulation ends with error "could not fine device modelname" Can some one guide me here, @Stefan Schippers I tried to use the W/L combinations that you mentioned but cant get it worked beyond L>0.6. Actually I am looking for a positive VT to reduce leakage current while working with 3V supplies.