// CIRCUIT adder - Wed Apr 19 18:05:13 2000 // ********************************************* // CIRCUIT adder // ********************************************* module adder(sum, carry, c, b, a); output sum; output carry; input c; input b; input a; supply0 gnd; supply1 vdd; `switch resistive up_nmos tranif1 (* const real width=10.00, lenght=1.00; *) I1 (sum, gnd, ww7); tranif1 (* const real width=10.00, lenght=1.00; *) I2 (ww7, ww12, ww1); tranif1 (* const real width=10.00, lenght=1.00; *) I3 (ww11, ww7, c); tranif1 (* const real width=10.00, lenght=1.00; *) I4 (ww1, ww9, c); tranif1 (* const real width=10.00, lenght=1.00; *) I5 (ww8, ww1, b); tranif1 (* const real width=10.00, lenght=1.00; *) I6 (carry, gnd, ww1); `switch resistive low_nmos tranif1 (* const real width=10.00, lenght=1.00; *) I7 (ww12, gnd, a); tranif1 (* const real width=10.00, lenght=1.00; *) I8 (ww12, gnd, b); tranif1 (* const real width=10.00, lenght=1.00; *) I9 (ww12, gnd, c); tranif1 (* const real width=10.00, lenght=1.00; *) I10 (ww10, ww11, b); tranif1 (* const real width=10.00, lenght=1.50; *) I11 (ww10, gnd, a); tranif1 (* const real width=10.00, lenght=1.00; *) I12 (ww9, gnd, a); tranif1 (* const real width=10.00, lenght=1.00; *) I13 (ww9, gnd, b); tranif1 (* const real width=10.00, lenght=1.00; *) I14 (ww8, gnd, a); `switch resistive up_pmos tranif0 (* const real width=10.00, lenght=1.00; *) I15 (sum, vdd, ww7); tranif0 (* const real width=8.00, lenght=1.00; *) I16 (ww7, ww4, ww1); tranif0 (* const real width=10.00, lenght=1.00; *) I17 (ww6, ww7, c); tranif0 (* const real width=10.00, lenght=1.00; *) I18 (ww1, ww3, b); tranif0 (* const real width=10.00, lenght=1.00; *) I19 (ww2, ww1, c); tranif0 (* const real width=10.00, lenght=1.00; *) I20 (carry, vdd, ww1); `switch resistive low_pmos tranif0 (* const real width=10.00, lenght=1.00; *) I21 (ww4, vdd, a); tranif0 (* const real width=10.00, lenght=1.00; *) I22 (ww4, vdd, b); tranif0 (* const real width=10.00, lenght=1.00; *) I23 (ww4, vdd, c); tranif0 (* const real width=10.00, lenght=1.00; *) I24 (ww5, ww6, b); tranif0 (* const real width=10.00, lenght=1.00; *) I25 (ww4, ww5, a); tranif0 (* const real width=10.00, lenght=1.00; *) I26 (ww3, ww2, a); tranif0 (* const real width=10.00, lenght=1.00; *) I27 (ww2, vdd, b); tranif0 (* const real width=10.00, lenght=1.00; *) I28 (ww2, vdd, a); endmodule // ********************************************* // CIRCUIT adder // ********************************************* module adder(sum, carry, c, b, a); output sum; output carry; input c; input b; input a; supply0 gnd; supply1 vdd; adder X1(sum, carry, c, b, a); endmodule