* Current Mode PWM Average Model
*
.Subckt PWM-CM nA nC nP nVCtrl nD Params: Lsw=100uH Fsw=100kHz DCMax=0.95 DCMin=0.05 RISense=1 Slope=100m
*
* Input Resistor on Control Pin
RVCtrl nVCtrl 0 1Meg
*
* ON Duty Cycle
EDuty nD 0 Value={V(nDPC)*V(nCx,nP)/(V(nA,nP)-V(nCx,nP)+1u)} ; EDuty
*
.EndS PWM-CM

** Includes
.include some_model.mod
.include models/test/BC550.mod


** Comments
* General SPICE.
; PSpice
$ ngspice
.param ... ; PSpice
.param ... $ ngspice

** Parameters
.param TESTPARAM = '2 * 1.5V'
.param TESTPARAM = "2 * 1.5V"
.param TESTPARAM = { 2 * 1.5V }
.param TESTPARAM = [ 2 * 1.5V ]
.param TESTPARAM = ( 2 * 1.5V )

.four 1Meg v(input)

Vinput input 0 SIN(500mV 1V 1k)
vinput input 0 sin(500mV 1V 1k)

* Input Sources
EXP(0 2V 1ms 2ms 3ms 1 2)
exp(0 2V 1ms 2ms 3ms 1 2)
* lx is also a function
Lx node1 node2 200mH

** Sub-Circuit
* Call
X1 inv ninv out v+ v- LM324
x1 inv ninv out v+ v- lm324

.end