I'm trying to use optimize to get the length of line-line coupling required to cause a 500mV glitch on the output of an inverter load.
My control file:
* optimized parameter, start,low,high
.PARAM prc_length=OPTsl(200,1,100000) $ prc_length is the parameter for coupling length
*
[!netlist] $ inv drivers, rc network, inv load
* victim waveform
VAS AS 0 GND
* aggressor waveforms, one aggressor on each side of the victim
.param tra=1n
.param tfa=1n
.param pwa=10n
.param dutyca=20
.param ppa='100/dutyca*(pwa + (tra + tfa)/2)'
VAU AU 0 PU(GND VCC '2*pwa' tra tfa pwa ppa)
VAD AD 0 PU(GND VCC '2*pwa' tra tfa pwa ppa)
.measure tran sl FIND par('prc_length') WHEN v(BS)=400mV RISE=1 td=1n
.model prc_length opt
.TRAN 0.2ns 100ns sweep optimize=OPTsl results=sl model=prc_length
.INC "model.env" $ mos models
.END
Unfortunately, this give the following output, leaving prc_length at the initial condition:
optimization completed
relin, relout, grad tolerances not met
measure failures may have occurred, check limits
************************
termination condition:
the maximum number of iterations ( 20)was
exceeded. however, results might be accurate.
************************
**** optimized parameters optsl
* %norm-sen %change
.param prc_length = 200.2000 $ 0. 0.
I haven't ever used the optimize command before. Any pointers would be great.
Thanks,
Brady Cannon
My control file:
* optimized parameter, start,low,high
.PARAM prc_length=OPTsl(200,1,100000) $ prc_length is the parameter for coupling length
*
[!netlist] $ inv drivers, rc network, inv load
* victim waveform
VAS AS 0 GND
* aggressor waveforms, one aggressor on each side of the victim
.param tra=1n
.param tfa=1n
.param pwa=10n
.param dutyca=20
.param ppa='100/dutyca*(pwa + (tra + tfa)/2)'
VAU AU 0 PU(GND VCC '2*pwa' tra tfa pwa ppa)
VAD AD 0 PU(GND VCC '2*pwa' tra tfa pwa ppa)
.measure tran sl FIND par('prc_length') WHEN v(BS)=400mV RISE=1 td=1n
.model prc_length opt
.TRAN 0.2ns 100ns sweep optimize=OPTsl results=sl model=prc_length
.INC "model.env" $ mos models
.END
Unfortunately, this give the following output, leaving prc_length at the initial condition:
optimization completed
relin, relout, grad tolerances not met
measure failures may have occurred, check limits
************************
termination condition:
the maximum number of iterations ( 20)was
exceeded. however, results might be accurate.
************************
**** optimized parameters optsl
* %norm-sen %change
.param prc_length = 200.2000 $ 0. 0.
I haven't ever used the optimize command before. Any pointers would be great.
Thanks,
Brady Cannon