Homework_3 -- Designing an 8-bit Adder Datapath

Revised 09/06/2010 by D. Bouldin

View (but do not execute) the USC Cadence Tutorial (html) or (pdf) to draw schematics and symbols
to implement a full adder as a single-bit slice.

Develop your own full adder circuit schematic like the one below
(generate symbols or combine fet-level schematics from the OSU_FreePDK library):

Copy the layouts of these same std-cells from the OSU_FreePDK library and
edit them into a single-bit adder that adheres to the datapath library rules.

A possible topology is shown below:

     Vdd   GND    Vdd    GND    Vdd
     |      |      |      |      |
     | XOR  | NAND | XOR  | NAND |
     | p-n  | n-p  | p-n  | n-p  |
     | p-n  | n-p  | p-n  | n-p  |
     | p-n  |      | p-n  |      |
     | p-n  | n-p  | p-n  | n-p  |
     | p-n  | n-p  | p-n  | n-p  |
     | p-n  | NOR  | p-n  | NAND |
     |      |      |      |      |
     |      |      |      | INV  |
     |      |      |      | n-p  |
     Vdd   GND    Vdd    GND    Vdd

Your layout may be similar to this one which was performed from scratch.
Include rulers in your layout.

A second example layout (2.44 H x 11.07 W) is here.

For the I/O, let Ai and Bi enter from the left on poly and SUMi exit
on the right on metal-2. The carry signals should align perfectly in
the vertical dimension as well as the Vdd and GND buses. You should have
room to also let the Carry-in enter each bit-slice on the left in poly and
the Carry-out exit on the right in metal-2. Only the LSB Carry-in and the
MSB Carry-out need to be connected externally when you simulate the 8-bit adder.

Array the single-bit adder into an 8-bit datapath (both schematic and layout).
Include rulers in your layout.

Simulate the design for the single-bit and 8-bit implementations using HSPICE
(both pre-layout and post-layout) with the following inputs:

Set all eight A inputs to 1 and all eight B inputs to 0.
Then, apply the same type input as in hw2 to the Carry-in input on the LSB:

pwl wave=[0n 0 1n 0 1.5n 1.1 3n 1.1 3.5n 0 6n 0]

Run the simulation until the SUM and Carry-out outputs settle (20 ns or more):
tran1 tran start=0 stop=20n step=0.05n errpreset=moderate

Measure the delay between the mid-point on the LSB Carry-in input
to the mid-point on the MSB Carry-out output.

Post your results for both the single-bit and the 8-bit simulations.

Link your results to your web home page.
Update hw.html