<@U016EM8L91B> I think we must remove all '`m=1`' ...
# sky130
s
@User I think we must remove all '`m=1`' parameters on
.subckt
lines. Ngspice gives the following warning about it:
Warning: m=xx on .subckt line will override multiplier m hierarchy!
That means if I instantiate a subcircuit with
m=10
and the
.subckt
has
m=1
specified it will override instance multiplicity. In general the '`m`' parameter is somewhat special and need not be declared in
.subckt
. Following netlist behaves as if a 1k resistor is instantiated, although a m=10 is used on instance line. Removing m=1 on .subckt fixes the issue.
Copy code
** test m multiplicator factor **

.subckt sub1 pp mm m=1
r1 pp mm 1k m=1
.ends

vvcc vcc 0 1
x1 vcc 0 sub1 m=10

.control
op
print vvcc#branch
listing
listing expand
quit
.endc

.end
As far as i have been able to inspect the following subcircuits have the unnecessary m=1 parameter:
Copy code
sky130_fd_pr__nfet_20v0_iso
sky130_fd_pr__nfet_20v0_nvt_iso
sky130_fd_pr__nfet_20v0_nvt
sky130_fd_pr__nfet_20v0_reverse_iso
sky130_fd_pr__nfet_20v0
sky130_fd_pr__nfet_20v0_zvt
sky130_fd_pr__nfet_g5v0d16v0
sky130_fd_pr__pfet_20v0
sky130_fd_pr__pfet_g5v0d16v0
sky130_fd_pr__nfet_20v0_zvt
sky130_fd_pr__nfet_20v0
sky130_fd_pr__nfet_20v0_nvt
sky130_fd_pr__nfet_20v0_reverse_iso
sky130_fd_pr__pfet_20v0
sky130_fd_pr__pfet_g5v0d16v0
sky130_fd_pr__nfet_20v0_iso
sky130_fd_pr__nfet_20v0_nvt_iso
sky130_fd_pr__nfet_g5v0d16v0
t
Thanks for the heads-up, and thanks for enumerating all of the places it occurs. That will make it reasonably easy for me to make a patch file for it.
👍 1
If I don't mention it again in this thread within a few days, please send me a reminder.
s
ok! Thank you for your work