Low power Project 1,2,3
1
ELEG-548: Low Power VLSI Circuit Design, Spring 2018, Project #2:
Power Analysis of CMOS/Domino Full Adder
The purpose of this project is to analyze power consumption for different circuit structures using
PSPICE. In the following designs, the size of each NMOS transistor is W/L=3μm/2μm, the size of
each PMOS transistor is W/L=9μm/2μm. Power sources are: Vdd=5V, Gnd=0V. In PSPICE
Capture, you need to consider the connections of bulk terminal of each transistor. You already did
the schematic design for both CMOS and domino full adders in Project #1. This is a group project.
Please work with your partner in project #1, and submit a joint report with your partner. You can
reuse your designs in project #1 without redesigning them.
Part 1. Static CMOS implementation
Figure 1. Schematic of a CMOS full adder (28 transistors)
1). Based on your schematic design for CMOS full adder in Project #1, first you need to verify the
correct function of your circuit. We assume you already did this in Project #1 and got correct
output waveforms. However, if you didn’t get correct output waveform in Project #1, you must
debug your design to find out the mistakes and correct them.
2). Double check to ensure you put net alias of “Vdd” to all the Vdd nodes, and net alias of “Gnd”
to all the ground nodes. Also ensure you put net aliases “A, B, Ci, Co, Sum” (and “clk” for clock in
Domino circuit) to the corresponding nodes. Otherwise you may have node name inconsistency
errors in the following steps.
3). Once the circuit works properly, extract the netlist from your schematic design. Copy it to a text
file, and combine it with other auxiliary circuit to construct a .cir file in PSPICE AD for power
analysis. Delete all the voltage definition lines (lines starting with V_name for power rails and
primary inputs) from your netlist and redefine your power rails. Reapply the input pattern sequence
as:
2
ABCi = 100, 010, 110, 001, 101, 011, 111, 000, plus patterns corresponding to the last 2 digits of
your student ID.
Denote the input patterns ABCi=”000, 001, 010, 011, 100, 101, 110, 111” as pattern #0, 1, 2, 3, 4, 5,
6, 7 separately. Use the last 2 digits of your student ID as input pattern sequence appending to the
above pattern sequence, each number in your student ID stands for the corresponding input pattern
number. The number “8” and “9” in your student ID corresponds to pattern #0. For example, if the
last two digits of your student ID are “79”, then it translates to input pattern sequence: “#7, #0”,
which is: ABCi=111, 000. Thus you should apply your input pattern sequence as
ABCi = 100, 010, 110, 001, 101, 011, 111, 000, 111, 000.
That is, you will have 10 input patterns sequence, and each pattern lasts for 20ns. Assume the input
rising/falling ramps (0-100%) as 0.1ns, and set the simulation time as 200ns. For the power
analysis auxiliary circuit components, you can set Cp=100pF, Rp=100kΩ. Assume you want to
directly read the average power for t=[0, 160ns], you can calculate your K value for the
current-controlled-current-source as
003125.0 10160
101005 9
12
T
CV K dd
Use the SPICE codes to simulate the power consumption. Print out the waveforms for A, B, Ci, Co
and Sum signals. Also print out and submit the spice file (.cir file) you used for simulation.
4). In a separate page, print out the output voltage waveform of V(Pavg) for the Pavg node on the
auxiliary capacitance Cp. In the V(Pavg) waveform, use cursor measurement to read the average
power consumption for time period t=[0, 160ns].
5). Based on the V(Pavg) waveform, use cursor measurement and calculation to find out the average
power dissipation during time periods T1=[0, 80ns] and T2=[0, 200ns] separately.
6). Find out the switching activities of the nodes for the given input patterns. Fill in Table 1 in
appendix. Explain why some pattern changes lead to significant power dissipation, while others do
not.
7). Now add load capacitance of 200fF, 400fF separately to Co and Sum nodes in your spice file.
That is,
first case: Cload_sum=Cload_co=200fF
second case: Cload_sum=Cload_co=400fF
Apply the same pattern as the case when Cload_sum=Cload_co=0fF in step 3, find out the power
curve (the voltage waveform of Pavg node) and read the average power consumption for time
period t=[0, 160ns]. Based on these data and the date for Cload_sum=Cload_co=0fF in step 3, plot
a curve of average power Pavg versus Cload capacitance for Cload=0fF, 200fF and 400fF.
According to your result, if the load capacitance increases, is the power consumption increased or
decreased? Explain the reason.
Part 2. Domino circuit implementation
Please repeat all the steps 1~6 of Part1 (but skipping step 7 for load capacitance) using domino
circuit structure, as shown in Figure 2.
3
Figure 2. Full-adder design using Domino circuit
Part 3. Comparison of the power dissipation for two circuit structures
Based on the above analysis, for the same transistor sizing and same input patterns, which circuit
structure consumes more power? Why? Please explain clearly.
In your project report, make sure you answer all the above questions. Each question accounts for
certain points. You also need to have a brief explanation about the whole project.
Due day: 03/26/2018 Monday in class.
Note: In this project, you are asked to extract the netlist from Schematic design. You do NOT need
to design the layout for the circuits. However, some students expressed their interests to practice
the layout design skills. Thus if you wish to design the layout and extract netlists from the layout
instead of the schematic, that is even better because the layout contains all the parasitic effects and
it can accurately reflect the real power consumption of your circuit. If you choose to do so, you
may get a maximum bonus of 10’. If you choose to design layout in Mentor Graphics IC station
using AMI05 technology (λ=0.3μm), you can set the size of each NMOS transistor is W/L=10λ/7λ,
the size of each PMOS transistor is W/L=30λ/7λ. If you choose to go with the layout option, you
may either do it independently or as a group of 2 students (each student finishes part 1 and part 2
individually, but both will complete part 3 and write the report together). I leave it as your choice.
However, please be aware that layout design is very time-consuming. If you are not familiar with
layout design, you are NOT encouraged to do so.
Appendix: Table 1. Switching activities of CMOS full adder (example only, please input your own
patterns) Pattern A B Ci Co Co
Switch?
Sum Sum Switch?
Total switches (Sum and Co)
Expected Energy Consumption (zero, small or
Simulated energy consumption (zero, small or
0 0 1 0 0 1
4
large) large)
1 1 1 1 1 Yes 1 No 1 small small
2
3
4
5
6
7
8
9
10
Table 2. Switching activities of Domino full adder (example only, please input your own patterns)
(clk: clock input) Pattern A B Ci Co Co
Switch?
Sum Sum Switch?
Total switches (Sum and Co)
Expected Energy Consumption (zero, small or large)
Simulated energy consumption (zero, small or large)
0 (clk=0)
0 1 0 0 1
0(clk=1) 0 1 0 0 No 1 No 0 zero zero
1(clk=0) 1 1 1 0 No 1 No 0 zero zero
1(clk=1) 1 1 1 1 Yes 1 No 1 small zero
2(clk=0)
2(clk=1)
3(clk=0)
3(clk=1)
4(clk=0)
4(clk=1)
5(clk=0)
5(clk=1)
6(clk=0)
6(clk=1)
7(clk=0)
7(clk=1)
8(clk=0)
8(clk=1)
9(clk=0)
9(clk=1)
10(clk=0)
10(clk=1)