python-schdoc/altium_crap/Circuit Sim/Phase Lock Loop/PLL100k.ckt

72 lines
2.2 KiB
Plaintext

* 100kHz Phase-Lock_Loop
* Internal nodes start at 50.
* Internal nodes for a/d and d/a are the node number + 100.
*
* PLL Subcircuit VCO Parameters
* Fc = Center frequency
* Fr = Frequency range (center +/- Fr)
* Rs = Dem and Vout series resistance
*
*SPICE code of PLL macromodel
*Connections:
* Signal In
* | Compare In
* | | VCO Out
* | | | VSS
* | | | | Demodulated Out
* | | | | | VCO In
* | | | | | | Phase Compare
* | | | | | | | VDD
* | | | | | | | |
.SUBCKT PLL100k 14 3 4 8 10 9 2 16 PARAMS: Fc=100k Fr=50k Rs=100
*Pin order in SimCode:
*INPUTS VCC, GND, SigIn, CompIn;
*OUTPUTS PhCompI;
*ADC and DAC node bridges
A1 [102][2] dac_mod
A2 [16 8 14 3][116 108 114 103] adc_mod
.model dac_mod xdac
.model adc_mod xadc
*Self biasing input amplifier consists of two equal resistors (one from SigIn to VDD,
*The other from SigIn to ground) and a SimCode buffer with vil at 49.05% and voh at 50.05%.
RIN1 14 16 1.5E6
RIN2 14 8 1.5E6
AU4A [116 108 114][154] Apllinbuf
.MODEL Apllinbuf xsimcode(file="{MODEL_PATH}pllinbuf.scb" func=pllinbuf)
AU1 [116 108 154 103][102] Apllpc1
.MODEL Apllpc1 xsimcode(file="{MODEL_PATH}pllpc1.scb" func=pllpc1)
* Scale VCOin to be between 0 and 1 for the XSPICE VCO model.
* 1E+15 added to denominator to avoid divide by zero.
BNLVs2 53 8 V=( V(9,8)/(V(16,8)+1E-15) )
* Resistor to aid convergance.
RCONV1 53 8 100E6
AV1 %vd(53,8) 52 ASQRVCO
*SQRVCO Voltage controlled square wave oscillator - alias:ASQRVCO
.MODEL ASQRVCO square(cntl_array=[0 1]
+ freq_array=[{(Fc - Fr)} {(Fc + Fr)}] out_low=0
+ out_high=1 duty_cycle=0.5 rise_time=1E-9 fall_time=1E-9)
BNLVs4 56 8 V=(V(52) * V(16,8)) + V(8)
* Series resistor at NLVs output so that there is not infinite drive.
RS1 56 4 {Rs}
* Resistor to aid convergance.
RCONV2 4 8 100E6
* Demod is isolated from VCOin by a source follower. In this implementation
* a NLVs is used instead of a source follower.
BNLVs5 55 8 V=V(9)
* Series resistor at NLVs output so that there is not infinite drive.
RS2 55 10 {Rs}
* Resistor to aid convergance.
RCONV3 10 8 100E6
.ENDS PLL100k