-- NandDecoder.thy
-- Last Edited by: Monier, June 6, 1985 10:39:20 am PDT
The standard Nand decoder used in the Dragon EU, worst case of 8 serie transistors.
CIRCUIT[Lambda ← 1, Temp ← 25] = {
in, out, Vdd, n1, n2, n3, n4, n5, n6, n7, drIn, pc: node;
! ThymeBasics
! CMOS2.0u25C
powerSupply: voltage[Vdd, Gnd] = 5.0;
-- NETran: circuit[gate, source, drain, bulk | l ← 2, w ← 8]
-- The pull-down chain
?: NETran[in, Gnd, n1, Gnd | l ← 2, w ← 7];
?: NETran[in, n1, n2, Gnd | l ← 2, w ← 7];
?: NETran[in, n2, n3, Gnd | l ← 2, w ← 7];
?: NETran[in, n3, n4, Gnd | l ← 2, w ← 7];
?: NETran[in, n4, n5, Gnd | l ← 2, w ← 7];
?: NETran[in, n5, n6, Gnd | l ← 2, w ← 7];
?: NETran[in, n6, n7, Gnd | l ← 2, w ← 7];
?: NETran[in, n7, drIn, Gnd | l ← 2, w ← 7];
-- Precharge
?: PETran[pc, Vdd, drIn, Vdd | l ← 2, w ← 4];
-- The driver
?: PETran[drIn, Vdd, out, Vdd | l ← 2, w ← 30];
?: NETran[drIn, Gnd, out, Gnd | l ← 2, w ← 12];
-- Maximum load on a select line
?: capacitor[out, Gnd] = 2pF;
-- Precharge and input
?: RectWave[pc | period ← 100ns, width ← 60ns, tRise ← 5ns, tFall ← 5ns, tDelay ← 45ns];
?: RectWave[in | period ← 100ns, width ← 50ns, tRise ← 5ns, tFall ← 5ns, tDelay ← 55ns];
};
PRINT[in, out];
PLOT["Nand decoder (2 microns, 25 C)", :1ns, -1, 6, powerSupply^: -1mA, in, pc, drIn, out];
RUN[tMax ← 120ns];