next up previous contents index
Next: Circuit 5: Transmission Line Up: Example Data Files Previous: Circuit 3: Simple RTL   Contents   Index

Circuit 4: Four-Bit Adder

The following file simulates a four-bit binary adder, using several subcircuits (now were getting really advanced) to describe various pieces of the overall circuit. Upper case is used throughout, just to prove that it works.

    ADDER - 4 BIT ALL-NAND-GATE BINARY ADDER
    *
    *** SUBCIRCUIT DEFINITIONS
    .SUBCKT NAND 1 2 3 4
    *NODES: INPUT(2), OUTPUT, VCC
    Q1 9 5 1 QMOD
    D1CLAMP 0 1 DMOD
    Q2 9 5 2 QMOD
    D2CLAMP 0 2 DMOD
    RB 4 5 4K
    R1 4 6 1.6K
    Q3 6 9 8 QMOD
    R2 8 0 1K
    RC 4 7 130
    Q4 7 6 10 QMOD
    DVBEDROP 10 3 DMOD
    Q5 3 8 0 QMOD
    .ENDS NAND
    .SUBCKT ONEBIT 1 2 3 4 5 6
    *NODES: INPUT(2), CARRY-IN, OUTPUT, CARRY-OUT, VCC
    X1 1 2 7 6 NAND
    X2 1 7 8 6 NAND
    X3 2 7 9 6 NAND
    X4 8 9 10 6 NAND
    X5 3 10 11 6 NAND
    X6 3 11 12 6 NAND
    X7 10 11 13 6 NAND
    X8 12 13 4 6 NAND
    X9 11 7 5 6 NAND
    .ENDS ONEBIT
    .SUBCKT TWOBIT 1 2 3 4 5 6 7 8 9
    *NODES: INPUT - BIT0(2) / BIT1(2), OUTPUT - BIT0 / BIT1,
    *       CARRY-IN, CARRY-OUT, VCC
    X1 1 2 7 5 10 9 ONEBIT
    X2 3 4 10 6 8 9 ONEBIT
    .ENDS TWOBIT
    *
    .SUBCKT FOURBIT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    *NODES: INPUT - BIT0(2) / BIT1(2) / BIT2(2) / BIT3(2),
    *       OUTPUT - BIT0 / BIT1 / BIT2 / BIT3, CARRY-IN, CARRY-OUT, VCC
    X1 1 2 3 4 9 10 13 16 15 TWOBIT
    X2 5 6 7 8 11 12 16 14 15 TWOBIT
    .ENDS FOURBIT
    *
    *** DEFINE NOMINAL CIRCUIT
    *
    .MODEL DMOD D
    .MODEL QMOD NPN(BF=75 RB=100 CJE=1PF CJC=3PF)
    VCC 99 0 DC 5V
    VIN1A 1 0 PULSE(0 3 0 10NS 10NS   10NS   50NS)
    VIN1B 2 0 PULSE(0 3 0 10NS 10NS   20NS  100NS)
    VIN2A 3 0 PULSE(0 3 0 10NS 10NS   40NS  200NS)
    VIN2B 4 0 PULSE(0 3 0 10NS 10NS   80NS  400NS)
    VIN3A 5 0 PULSE(0 3 0 10NS 10NS  160NS  800NS)
    VIN3B 6 0 PULSE(0 3 0 10NS 10NS  320NS 1600NS)
    VIN4A 7 0 PULSE(0 3 0 10NS 10NS  640NS 3200NS)
    VIN4B 8 0 PULSE(0 3 0 10NS 10NS 1280NS 6400NS)
    X1 1 2 3 4 5 6 7 8 9 10 11 12 0 13 99 FOURBIT
    RBIT0 9 0 1K
    RBIT1 10 0 1K
    RBIT2 11 0 1K
    RBIT3 12 0 1K
    RCOUT 13 0 1K
    *
    *** (FOR THOSE WITH MONEY (AND MEMORY) TO BURN)
    * Ah, the good olde days...
    .TRAN 1NS 6400NS
    .END



Stephen R. Whiteley 2006-10-23