Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

m parameter in lv_mos models of Xyce in the current dev-branch dont work #350

Open
olisnr opened this issue Feb 6, 2025 · 2 comments
Open

Comments

@olisnr
Copy link

olisnr commented Feb 6, 2025

to demonstrate it, i added two transistors to the ihp-sg13g2/libs.tech/xschem/sg13g2_tests_xyce/ac_lv_nmosrf.sch. one with m=10 and the other with w=10u (standard is 1u).

i would expect similar results, but the m=10 device looks exactly like the m=1 device with the same w...

ac_lv_nmosrf_mult_Xyce.sch.zip

Image

my simulation command is Xyce -plugin $env(PDK_ROOT)/$env(PDK)/libs.tech/xyce/plugins/Xyce_Plugin_PSP103_VA.so "$N"

@dwarning
Copy link
Contributor

dwarning commented Feb 9, 2025

I can confirm that multiplier didn't work with Xyce. It seems that Xyce can not change parameter "m" in subckt call.
Changing this parameter name to "mult" or something else will work as in following script:

`psp103 nch transfer

vd d 0 dc 0.1
vg g 0 dc 0.0
vb b 0 dc 0.0
XPSP103_VA d g 0 b psp_sub w=10u l=1u mult=2

.subckt psp_sub d g s b w=10u l=1u mult=1
YPSP103_VA m1 d g s b nch l='l' w='w' mult='mult'
.ends

.option temp=21
.step vb -3 0 0.5
.dc vg 0 1.5 0.02
.print dc format=gnuplot v(g) i(vd)

.model nch psp103_va type=1

.end
`

@dwarning
Copy link
Contributor

Xyce team has agreed that the parser has a bug.
Change parameter name to mult instead m for symbols and subckt definitions for xyce and ngspice lib's is preferable. Positive side effect is that the meaning for the user is unique.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants