Dan Fritchman
09/07/2023, 11:11 PMThomas Pluck
09/07/2023, 11:21 PMSave
- how does it work, why does it break in Xyce, etc.Thomas Pluck
09/07/2023, 11:22 PMsimattr
would be great, I think there's also stuff that is "unsupported" in vlsirtools that is supported and how you use something like "AC" is non-obvious.Thomas Pluck
09/07/2023, 11:23 PMThomas Pluck
09/09/2023, 7:05 PMh.sim.LinearSweep
intended to function?
@h.sim.sim
class DeviceSim:
@h.module
class Tb:
# Set up our ports
VSS = h.Port()
VDD = h.Signal()
# Define our voltages
x = h.Param(dtype=h.Prefixed,desc='my voltage')
vdd = h.DcVoltageSource(dc=x)(p=VDD, n=VSS)
# Instantiate our device
DUT = device(d=VDD, g=vdd.p, s=VSS, b=VSS)
dc = h.sim.Dc(var=x,sweep=h.sim.LinearSweep(start=0, stop=0.9, step=0.1))
inc = s.install.include(h.pdk.Corner.TYP)
return DeviceSim
Thomas Pluck
09/10/2023, 9:55 AMThomas Pluck
09/12/2023, 6:28 PM.dc
I guess any kind of patch would have to expose a magic DC port on the testbench and voltage source which can be controlled by the .dc
command.Thomas Pluck
09/12/2023, 6:29 PMThomas Pluck
09/12/2023, 7:44 PM.dc {param}
sweep over a linear range with 3 numbers, where {param}
has to be v.xtop.vvdd
(for your voltage source, etc.). Ngspice actually overloads .dc
so it can be used to linearly sweep temperature temp
, any current source, voltage source or resistor... sooo... what can we do?
1. Tell users how to hack the automated netlists to get the components that they actually want to manipulate
2. Expand VLSIR, create a good system of Enums to handle all the cases that ngspice calls .dc
sweep analysis
3. Let users think they're controlling a sweep
analysis when behind the scenes they're manipulating .dc
commandsThomas Pluck
09/12/2023, 7:53 PM