-- 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] };