-- File: [Thyme]<Thyme>Spice>Top>ThymeBasics.thy
-- Last edited:
-- SChen, 16-Feb-84 18:47:50
-- Barth, April 11, 1983 11:51 AM
Diode: circuit[anode, cathode | Imax← 1A, Io← 10nA, Temp← 25]
asserts[Imax>Io, Io>0, Temp>-100]= {
diodeModel: model← dcDiode[anode, cathode |
Io, 8.61707E-5*(Temp+273.16), \(Imax/Io)];
junction: current[anode, cathode]← diodeModel[0]
};
Diffusion: circuit[cathode, anode | a← 0, p← 0, Cj← 0, Cjm← 0,
Pb←0.866, TDegC← 25, Jmax← 1m, Jo← 30n]
asserts[a>=0, p>=0, Cj>=0, Cjm>=0, TDegC>-75, Jmax>Jo, Jo>0]= {
Dif: circuit[ | Vt] asserts[Pb>Vt]= {
DModel: model← acDiode[cathode, anode |
Cj*a+Cjm*p, -- zero-bias capacitance of diode
Pb, -- junction built-in voltage (v)
Vt, -- kT/q
Jo*a, -- Io
(Pb/Vt) MIN \(Jmax/Jo)
];
C: capacitor[cathode, anode] ← DModel[0];
-- voltage dependent capacitance
I: current[cathode, anode] ← DModel[1]
-- leakage current
};
dif: Dif[ | Vt← 8.61707E-5*(TDegC+273.16)]
};
Pulse: circuit[output | amplitude← 5V, offset← 0, period← 10ns,
width← 5ns, tRise← 2ns, tFall← 2ns, tDelay← 0]
asserts[width<period, tRise+tFall<width]= {
pg: voltage[output, Gnd]← PulseGen[
amplitude+offset, offset, period, width, tRise, tFall, tDelay]
};
RectWave: circuit[output | OnLevel← 5V, OffLevel← 0V, period← 20ns,
width← 10ns, tRise← 2ns, tFall← 2ns, tDelay← 0ns]
asserts[width<period, tRise+tFall<width]= {
pg: voltage[output, Gnd]← PulseGen[
OnLevel, OffLevel, period, width, tRise, tFall, tDelay]
};
OneShot: circuit[output | OnLevel← 5V, OffLevel← 0V, width← 10ns,
tRise← 2ns, tFall← 2ns, tDelay← 0ns]
asserts[tRise+tFall<width]= {
pg: voltage[output, Gnd]← OneShotGen[
OnLevel, OffLevel, width, tRise, tFall, tDelay]
};
Step: circuit[output | OnLevel← 5V, OffLevel← 0V, tRise← 5ns,
tDelay← 0ns]
asserts[tRise>0]= {
pg: voltage[output, Gnd]← StepGen[
OnLevel, OffLevel, tRise, tDelay]
};