CD4046 SPICE model

The CD4046 is an electronic component that belongs to the family of CMOS integrated circuits (Complementary Metal-Oxide-Semiconductor). It is a PLL (Phase-Locked Loop), which is a feedback control system with the capability to synchronize the phase of an output signal with that of a reference input signal. This component is primarily used in analog and digital electronic applications to generate, demodulate, synchronize, and modulate signals. After a brief overview of the component, the CD4046 SPICE model will be presented, offering comprehensive insights into its behavior and characteristics.

The CD4046 is primarily composed of three fundamental parts:

  1. VCO (Voltage-Controlled Oscillator): This section generates an oscillating signal whose frequency is controlled by the control voltage. The output frequency is directly proportional to the input voltage, making it useful for generating variable-frequency signals.
  2. Phase Detector: This part of the circuit compares the phase of the input signal with that of the feedback signal from the VCO output. Any phase difference between these two signals generates an error signal used to adjust the VCO frequency, ensuring that the phase of the output signal aligns with that of the input signal.
  3. Divider: This section includes division circuits that can be used to divide the frequency of the input signal or the feedback signal. This division can be useful for achieving desired frequency ratios in the synchronization process.

The main uses of the CD4046 include:

Frequency Demodulation:

The CD4046 can be used to demodulate frequency-modulated (FM) signals by converting them into voltage signals. This is useful in applications such as receiving FM radio signals.

Variable-Frequency Signal Generation:

Thanks to the VCO, the CD4046 can generate output signals with a variable frequency controlled by a voltage. This is useful in musical synthesizers, testing instruments, and other applications where generating variable-frequency signals is necessary.

Phase Detection:

The CD4046 can be used to detect phase differences between two signals. This is valuable in electronic control systems, optical alignment systems, and other applications where phase synchronization is important.

Frequency Tracking:

It can be used to monitor frequency variations in an input signal and generate an output signal proportional to these variations. This can be beneficial in frequency control applications.

Now let’s take a look at the CD4046 SPICE model:

.subckt CD4046 sigin phcmpii phcmpi phpls compin vcoin
+              r1 r2 ce1 ce2 vcoout demout inhibit zener vdd vss
+                   OPTIONAL: DPWR=$G_DPWR DGND=$G_DGND
+                   PARAMS: MNTYMXDLY=0 IO_LEVEL=0
+                   Rin=1Meg S1=1  S2=0.5 M1=0.5 M2=1.0 Vx=10
+                   Kb=1 Vfree=0.0 Kc=-0.1 Vt=1.2 Vxqr=10

* Rin  = VCO Input Resistace
* S1   = Voltage Limiter linear slope
* S2   = Voltage Limiter non-linear slope
* Vx   = Input threshold voltage (between S1 and S2)
* Kb   = Arbitrary constant to adjust the value of the conversion gain (transimpedance gain)
* Vfree= Frequency dependent constant in Emult
* Kc   = Negative inverse amplitude of the square wave
* Vt   = Trigger voltage of Schmitt trigger (not used)
* Vxqr = Amplitude of square wave (not used)
* M1   = Current mirror multiplier to adjust oscillator frequency
* M2   = Current mirror multiplier to adjust oscillator frequency

*The provided portion of the CD4046 SPICE model defines a subcircuit with the following parameters:

* r1, r2, ce1, ce2, vcoout, demout, inhibit, zener, vdd, vss are the subcircuit component nodes.

*Optional parameters are DPWR and DGND.

*Parameters are set with values: MNTYMXDLY=0, IO_LEVEL=0, Rin=1Meg, S1=1, S2=0.5, M1=0.5, M2=1.0, *Vx=10, Kb=1, Vfree=0.0, Kc=-0.1, Vt=1.2, Vxqr=10.

* Preliminary model still under development based on Natinal Semiconductor CD4046BM
* RAPerez 9/98

* Phase detector section

U1 INVA(4) DPWR DGND sigin compin isigin icompin
+                    isigin icompin clk1 clk2


U2 XOR DPWR DGND isigin icompin xorout

***tplhty=20n tphlty=20n

U3 NAND(2) DPWR DGND q1 q2 pclr

.MODEL NAND_TIMING UGATE (tplhty=1n tphlty=1n)

U4 DFF(1) DPWR DGND $D_HI clr clk1 $D_HI q1 qb1

.MODEL DFF1_TIMING UEFF tppcqlhty=4n tppcqhlty=4n tpclkqlhty=4n tpclkqhlty=4n

U5 DFF(1) DPWR DGND $D_HI clr clk2 $D_HI q2 qb2

.MODEL DFF2_TIMING UEFF tppcqlhty=5n tppcqhlty=5n tpclkqlhty=5n tpclkqhlty=5n

U7 BUFA(2) DPWR DGND fq1 fq2 s1 s2


ST2 vdd phcmpii s1 0 swt
SB2 phcmpii vss s2 0 swt

.model swt VSWITCH (ROFF=2G RON=10m VOFF=0.8 VON=3.0)

U6 AND(2) DPWR DGND pclr reset clr


Ureset STIM(1,1) DPWR DGND
+ reset
+   +0s 0
+   2ns 1
+   1s 1

U8 NOR(2) DPWR DGND fq1 fq2 norout


U9 ANDA(2,2) DPWR DGND q1 od1 q2 od2 fq1 fq2




U12 BUFA(3) DPWR DGND norout xorout vcosqr phpls phcmpi vcoout


* The above portion of CD4046 SPICE model represents various sections of the circuitry within the component:

*Phase Detector Section: This section encompasses multiple subcircuits and models to simulate the behavior of the phase detector *and related components. These include logic gates like NAND, XOR, D-type flip-flops, AND, BUFA, ANDA, DLYLINE, and BUFB. *Each subcircuit is configured with specific timings and parameters for accurate simulation.

*Logic Gates: Different logic gates are utilized to implement the functionality of the phase detector. These gates include NAND, *XOR, AND, BUFA, ANDA, etc., each having their specific timing and connectivity configurations.

*Switch Model: The model “swt” represents a voltage-controlled switch. It’s used to simulate the switching behavior in the circuit.

*Stimulus Source: A stimulus source named “Ureset” generates a reset signal for simulation purposes. It provides an initial value of *0, switches to 1 after 2 nanoseconds, and maintains 1 from that point onward.

*Timing Models: Various subcircuits (NAND_TIMING, DFF1_TIMING, DFF2_TIMING, BUFA_TIMING, etc.) are configured with *specific timing parameters to accurately replicate the behavior of the corresponding logic components.

*Model Parameters: The models are configured with parameters such as “MNTYMXDLY” and “IO_LEVEL” to adjust the simulation *behavior as needed.

* VCO Section

Rin vcoin vss {Rin}
Evlim vlim 0 value={if(v(vcoin,vss)<v(vdd,vss),
+                   S1*v(vcoin,vss),S2*(v(vcoin,vss)-v(vdd,vss))+v(vdd,vss))}
Rvlim vlim 0 1Meg
Emult mix 0 value={v(vlim)*Kb+Vfree}
*Hmult mix 0 poly(1) Vcm 1.44 0.586
Rmult mix 0 1

Edemout demout 0 table={ 200Meg*v(vcoin,demout)*v(off) } (-20,-20) (20,20)
Rdemout demout 0 1Meg
ER2 ir2 0 vdd ir2 200Meg
VR2 ir2 r2
ER1 ir1 0 mix ir1 200Meg
VR1 ir1 r1
Eosclg adj 0 table={abs((V(vdd)/I(VR2))/(V(mix)/I(VR1)))}
+ (0.5,1.43) (1,1.6) (10,1.04) (50,0.67) (100,0.84) (101,1)
+ (102,1) (1000,1)
Radj adj 0 1G
*GIM ce1 0 value={(M1*I(VR1)+M2*I(VR2))*Kc*V(sqrrc)}
GIM ce1 0 value={(M1*I(VR1)*V(adj)+M2*I(VR2))*Kc*V(sqrrc)}
*GIM ce1 0 value={(24*I(VR1)+3.067*I(VR2))}
Vcext ce2 0
Cstray ce1 ce2 6p
Rcext ce1 ce2 1T
Etrngl trngl 0 ce1 0 1
Rtrngl trngl 0 1Meg

Esqr sqr 0 value={-10Meg*V(trngl)+1.2Meg*V(sqrrc)}

Rsqr sqr sqrrc 0.1T
Csqr sqrrc 0 10f
Dsqr1 sqrrc 13 Diode
Vsqr1 13 0 {Vx}
Dsqr2 14 sqrrc Diode
.model Diode D (IS=10u N=0.1 CJO=80f RS=1m)
*.model Diode D (IS=10u N=0.001 CJO=80f)
Vsqr2 14 0 {-Vx}
Ipls 0 sqrrc pwl 0 0 10n 0 20n 0.01u 0.1u 0.01u 0.12u 0 1 0
Evcoout vcosqr 0 table={5.0*v(off)*(v(sqrrc)/Vx)} (0.1,0.1) (4.5,4.5)
*Rvcoout vcosqr vcosqr1 1

**Et 7 0 TABLE {-10k*V(trngl)+1.2k*V(sqrrc)} (-2,-10) (2,10)
*Ipls 0 sqrrc pwl 0 0 10n 0 20n 1u 0.1u 1u 0.12u 0 1 0
*Et 7 0 value={table({-10Meg*V(trngl)+1.2Meg*V(sqrrc)},-10,{-Vx},10,{Vx})}
*Ro 7 sqrrc 100
*Co sqrrc 0 100p

*Est sqrrc o VALUE={table({2000k*(V(st)-V(trngl))},-2,{-Vx},2,{Vx})}
*Rst1 sqrrc st 8.8k
*Rst2 st 0 1.2k
*Cst st 0 200p ic=-10

Rinhbt inhibit 0 1Meg
Eoff off 0 value={if(v(inhibit)<0.9,1.0,0.0)}
Roff off 0 1Meg

Dzener vss zener znr
Rzener vss zener 1G
.model znr D(Is=1.004f Rs=.5875 Ikf=0 N=1 Xti=3 Eg=1.11 Cjo=160p M=.5484
+  Vj=.75 Fc=.5 Isr=1.8n Nr=2 Bv=5.2 Ibv=27.721m Nbv=1.1779
+  Ibvl=1.1646m Nbvl=21.894 Tbv1=176.47u)


This portion of the CD4046 SPICE model describes the “VCO Section” of the circuit. It includes various components and their connections that are responsible for controlling the Voltage-Controlled Oscillator (VCO) behavior within the CD4046:

  • Rin and vcoin are connected to set the VCO input resistance.
  • The section involving Evlim calculates the voltage limit for the VCO input signal based on specified conditions.
  • Rvlim defines the resistance for voltage limiting.
  • Emult calculates the multiplication of the voltage limit and a constant, along with Rmult representing resistance for multiplication.
  • Edemout and Rdemout define components for generating the demodulated output signal.
  • Eosclg calculates a frequency dependent constant, utilizing the adjacent voltage.
  • Various components like Radj, GIM, Vcext, Cstray, Rcext, Etrngl, Rtrngl, Esqr, Rsqr, Csqr, Dsqr1, Vsqr1, Dsqr2, Vsqr2 further shape and process the VCO output signal.
  • Ipls generates a piece-wise linear current source.
  • Evcoout calculates the voltage of the VCO output signal.
  • The section involving Dzener and Rzener defines a diode and resistor for zener voltage regulation.
  • The .model znr part provides model parameters for the zener diode.

This portion of the SPICE model focuses on the detailed components and connections that constitute the VCO section of the CD4046, enabling simulation and analysis of its behavior in various scenarios.

You can find the datasheet of this component available for download Here.

SPICE modeling of Magnetic Core from Datasheet

Vittorio Carboni

Department of Electronics and Automatic, University of Ancona 1999/2000

SPICE simulations and analisys by Ing. Cristoforo Baldoni

1. Switching  power supply: Choice of ferrite

2. Simplified calculation of the transformer

3. Transformer for Flyback converter: Calculation example

4. Transformer for Forward converter :Calculation example

5. Windings: Supports, wires and insulation


On what


With what

Skin and proximity effects

6. Let’ s complete the design of the flyback transformer




7. Appendix

8. SPICE modeling of ETD49 N67 core from datasheet

9. Bibliography


1. Switching  power supply: Choice of ferrite

The first step in the design of the transformer is the choice of the ferrite as physical form,  type of material and dimensions. It’s a very important choice that characterizes the project as all subsequent calculations based on it. An error of assessment may lead, at the end of designing, to realize, for example, that the dimensions are not suitable: this means start again with considerable lost of time and resources.

The ferrites are characterized by very low losses at high frequencies, they are made with alloys of iron oxides and other metals such as zinc and manganese. The material is pulverized together with insulating oxides and then modeled using techniques typical of ceramics. This allows to make ferrites with a great variety of shapes and sizes and tolerances very restricted about magnetic and mechanically characteristics. They, also, can be machined with precision after the operation of the cooking.

The ferrites typically have a density of the saturation flux between 3 and 5 kGauss, also the presence of oxides increases its specific resistivity at very high levels thus allowing to reduce losses due to eddy currents. The available shapes include bars, toroids, EE EI and UI cores. The Curie temperature TC, namely the temperature at which the material loses its ferromagnetic properties, is between 100 and 300 ° C, depending on the type of material; the phenomenon is reversible, reducing the temperature to below the TC material regains its properties.

For low to medium power transformers E-Series is the best choice. As the acronym suggests, the magnetic core is composed of two elements in the shape of E. The two pieces forming the magnetic circuit, are slipped into the holder of the windings and locked in place with the clips and / or bonded with Araldite or other epoxy adhesives. The three contact surfaces of the half-cores are machined so as to reduce the roughness and therefore contain to negligible size the not intentional air gap . In some cases the air gap is desired, this can be obtained realizing the central column of the half-core shorter than outer ones.


Figure 1 – Example of assembling of a kit composed of the support for the windings, a pair of ferrites of ETD type and a pair of fastening clips. (FERRITES and Accessories, Siemens Matsushita Components)

It’s possible choose from a catalog of half-cores with air gap calibrated. For the ferrite type ETD49, for example, we can have 4 values of the air gap: 0.20 +- 0.02 mm, 0.50 +- 0.05 mm, 1.00 +- 0.05, 2.00 +- 0.05 mm.

Coupling a half-core with air gap with another without, or also with air gap, also of different value, it is possible to obtain numerous combinations.

The ferrites of series E and ETD are widely used, so are easy to find. The catalog Siemens Matsushita indicates that the materials available for the E-series are different and coded with the initials N27, N67, N87, N49, N30, T37. The choice of material to use is correlated with the switching frequency: the type N27 is suitable for power applications in a frequency band of switching up to 100KHz, N67 is suitable for similar application, but the frequency range is between 100KHz and the 300KHz. Table 1 shows the possible applications for different materials. The E series has the classical central square column, other families in the same series are available for special applications such as the best known:

ETD stands for Economic Transformer Design, with circular cross-section of the center column

EFD stands for Economic Flat Design transformer for applications with space vertical content.


Table 1 – Some parameters for the type ferrites ETD (FERRITES and Accessories, Siemens Matsushita Components).

Table 2 – Maximum permissible temperature rise for different materials (FERRITES and Accessories, Siemens Matsushita Components).

Table 3 – Thermal resistance for different types and sizes of ferrite (FERRITES and Accessories, Siemens Matsushita Components).

The most important parameters for a correct choice of the ferrite are:

1. Maximum power (Ptrans)

2. Type of converter (Forward, Flyback, Push-Pull)

3. Switching frequency and maximum permissible temperature

4. maximum volume

To make the choice you might consider that the manufacturer, as a rule, always indicates the limit values, so if it is not pressing the issue of costs, it is a good idea to choose on the table, the type immediately above the one that delivers the requested power. This will avoid,later in the phase of winding, to discover that the number of turns calculated, with the wire section calculated does not enter for lack of space in the throat of the support of the windings. This precaution is especially recommended if the transformer should be wrapped in accordance with the safety standards (minimum distances between the different layers of the windings, using wire with double insulation etc..).

It follows an example of calculation of a switching transformer in [1]; the approach to this type of  calculation is in many passages forcibly empirical, in many other simplified. On the other hand a completely theoretical discussion would result in a significant waste of resources without the benefits of improved performance.

SPICE modeling of a JFET from Datasheet

In this article we’ ll see how to find the parameters used to describe the mathematical behaviour of JFET (Junction Field Effect Transistors).The syntax for the N-channel model is:

model ModelName NJF( par1=a par2=b………parn=x)

while for the P-channel model is:

model ModelName PJF( par1=a par2=b………parn=x)

Where par1 par2… parn are the parameters that allow us to model the equations of the JFET transistor.

The main parameters for modeling the JFET are listed below in this table:


ParametersDescriptionUnitsDefault Value
AFFlicker noise exponentno unit dimension1.0
ALPHAIonization coefficient1/V1e-006
BETATransconductance coefficientA/V^20.0001
BETATCEBETA exponential temperature coefficient%/°C-0.5
CGDZero-bias gate-drain p-n capacitanceF1e-012
CGSZero-bias gate-source p-n capacitanceF1e-012
FCForward-bias depletion capacitance coefficientno unit dimension0.5
ISGate p-n saturation currentA1e-014
ISRGate p-n recombination current parameterA0
KFFlicker noise coefficientno unit dimension1e-018
LAMBDAChannel-length modulation1/V1e-006
MGate p-n grading coefficientno unit dimension0.5
NGate p-n emission coefficientno unit dimension1.0
NREmission coefficient for ISRno unit dimension2.0
PBGate p-n potentialV1.0
RDDrain ohmic resistanceOhm1.0
RSSource ohmic resistanceOhm1.0
VKIonization knee voltageV1.0
VTOThresold voltageV-2.0
VTOTCVTO temperature coefficientV/°C-0.0025
XTIIS temperature coefficientno unit dimension3.0

SPICE modeling of a BJT from Datasheet

BJT bipolar transistors require a certain number of parameters to get a good model.The syntax for this model is:

.model ModelNameNPN (par1=a par2=b………parn=x)

for PNP case:

.model ModelNamePNP (par1=a par2=b………parn=x)

where par1 par2…….parn are the parameters that allow to model equations of the BJT.

The main parameters for a reasonable modeling of the behavior of the component are summarized in the following table:

ParametersDescriptionUnitsDefault Value
ISTransport saturation currentA1e-16
XTIIS temperature effect exponentno unit dimension3.0
EGBandgap voltage (barrier height)eV1.11
VAFForward Early voltageVInfinite
BFIdeal maximum forward betano unit dimension100
ISEBase-emitter leakage saturation currentA0
NEBase-emitter leakage emission coefficientno unit dimension1.5
IKFCorner for forward-beta high-current roll-offAInfinite
NKHigh-current roll-off coefficientno unit dimension0.5
XTBForward and reverse beta temperature coefficientno unit dimension0
BRIdeal maximum reverse betano unit dimension1.0
ISCBase-collector leakage saturation currentA0
NCBase-collector leakage emission coefficientno unit dimension2.0
IKRCorner for reverse-beta high-current roll-offAInfinite
RCCollector ohmic resistanceOhm0
CJCBase-collector zero-bias p-n capacitanceF0
MJCBase-collector p-n grading factorno unit dimension0.33
FCForward-bias depletion capacitor coefficientno unit dimension0.5
CJEBase-emitter zero-bias p-n capacitanceF0
MJEBase-emitter p-n grading factorno unit dimension0.33
VJEBase-emitter built-in potentialV0.75
TRIdeal reverse transit timesec1e-8
TFIdeal forward transit timesec0
ITFTransit time dependency on IcA0
XTFTransit time bias dependence coefficientno unit dimension0
VTFTransit time dependency on VbcVInfinite
RBZero-bias (maximum) base resistanceOhm0

SPICE modeling of a Diode from Datasheet

Modeling in SPICE& a diode is not a trivial work. Although the operation of the diode is quite simple, extract a model from datasheet takes some time.Every component has its own syntax defined in SPICE , in the case of the diode:

.model ModelName D (par1=a par2=b………parn=x)

where par1 par2 …. parn are characteristic parameters of diode.

we can sum up the set of main parameters in the following table:

ParameterDescriptionUnitDefault value
BVReverse breakdown knee voltageVInfinite
CJOZero-bias p-n capacitanceF0
EGBandgap voltageeV1.11
FCForward-bias depletion capacitance coefficientno unit dimension0.5
IBLVLow-level reverse breakdown knee correntA0
IBVReverse breakdown knee correntA1e-10
IKFHigh-injection knee currentAInfinite
ISSaturation correntA1e-14
ISRRecombination current parameterA0
Mp-n grading coefficientno unit dimension0.5
NEmission coefficientno unit dimension1.0
NREmission coefficient for ISRno unit dimension2.0
RSParasitic resistanceOhm0
TTTransit timesec0
VJp-n potentialV1.0
XTIIS temperature exponentno unit dimension3.0

All these parameters are used by SPICE to describe the behavior of the diode in the different situations of signal, for example in direct polarization in DC that, forward current will be:

ID = IS*(e^(VD/(N*Vt))-1)

where VD is the forward voltage, Vt = k * T / q is the thermal voltage equal to 0.026 V at 27 degrees Celsius.

The so-called recombination current is instead calculated as

Irec = ISR*(e^(VD/(N*Vt))-1).

Other equations from the given parameters describing the capacitance of the junction, its evolution with temperature and more.

At this point we have to derive the various parameters from the datasheet of the component. Assume we want to model a silicon diode 1N4148. The extraction of the parameters of the table from the values reported in the datasheet, is not immediate for almost none of the parameters.look at the values of our interest in datasheet:


From the table we can get BV which is equal to VRM, in other cases reported as Vbr, or in the case of Zener diode Vz.


From this second table we see that the maximum leakage current at 25 degrees is Ir = 5 uA.We can take IBV as equal to 10 times Ir. Usually for this type of diodes the value of IBV is around 100uA. For Zener diodes Ir can be called Izk, or in other cases as Ibr.

CJO can be directly equal to the value specified in the datasheet as Cj or Ctot, in this case is 4pF.