FullAdderInput.thy
The following library models/functions are included by default.
There will be no harm if you still specify them.
library[mosmodels];
library[stdfunctions];
Last Edited by: Serlet, April 6, 1985 4:21:04 pm PST
CIRCUIT[Lambda ← 1, Temp ← 25, N ← 1] = {
Vdd: node;
! ThymeBasics
! CMOS2.0u25C
! FullAdder
powerSupply: voltage[Vdd, Gnd] = 5.0;
?: Stray[Vdd| aM2�, pM2�];
inputa: node; ?: Stray[inputa| aP�, pP�];
$~inputa$: node; ?: Stray[$~inputa$| aP�, pP�];
inputb: node; ?: Stray[inputb| aP�, pP�];
$~inputb$: node; ?: Stray[$~inputb$| aP�, pP�];
inputc: node; ?: Stray[inputc| aP�, pP�];
$~inputc$: node; ?: Stray[$~inputc$| aP�, pP�];
Sum: node; ?: Stray[Sum| aM�, pM�];
$~Sum$: node; ?: Stray[$~Sum$| aM�, pM�];
Carry: node; ?: Stray[Carry| aM�, pM�];
$~Carry$: node; ?: Stray[$~Carry$| aM�, pM�];
C: FullAdderCore[Gnd, Gnd, Gnd, Gnd, Gnd, Gnd, Gnd, $~inputa$, inputa, $~inputb$, inputb, inputc, $~inputc$, $~Carry$, $~Sum$, Sum, Carry, Vdd, Gnd| N←N];
?: capacitor[Sum, Gnd] = 0.001pF;
?: capacitor[$~Sum$, Gnd] = 0.001pF;
?: capacitor[Carry, Gnd] = 0.001pF;
?: capacitor[$~Carry$, Gnd] = 0.001pF;
?: RectWave[inputa | width ← 12ns, tRise ← 4ns, tFall ← 4ns, tDelay ← 10ns];
?: RectWave[$~inputa$ | OnLevel ← 0.0, OffLevel ← 5.0, width ← 12ns, tRise ← 4ns, tFall ← 4ns, tDelay ← 10ns];
?: RectWave[inputb | width ← 12ns, tRise ← 4ns, tFall ← 4ns, tDelay ← 10ns];
?: RectWave[$~inputb$ | OnLevel ← 0.0, OffLevel ← 5.0, width ← 12ns, tRise ← 4ns, tFall ← 4ns, tDelay ← 10ns];
?: RectWave[inputc | width ← 12ns, tRise ← 4ns, tFall ← 4ns, tDelay ← 10ns];
?: RectWave[$~inputc$ | OnLevel ← 0.0, OffLevel ← 5.0, width ← 12ns, tRise ← 4ns, tFall ← 4ns, tDelay ← 10ns];
};
PRINT[inputa, $~inputa$, inputb, $~inputb$, inputc, $~inputc$, Sum, $~Sum$, Carry, $~Carry$];
PLOT["CMOS Cascode FullAdder (nTrans: 8 lambda, pTrans: 4 lambda)", :1ns, -1, 6, powerSupply^: -1mA, inputa, $~inputa$, Carry, $~Carry$, Sum, $~Sum$];
RUN[tMax ← 50ns];