PREPARATION
Before you begin
1. It is highly recommended that you go over the Cadence Virtuoso setup and tutorial pages as you work on this assignment to correctly setup your tool and access. Follow all steps given under Cadence Virtuoso setup. The documentation provided under the help menu in each cadence tool also contains detailed information on using the tools.
2. Go through the lecture that has covered the design of Complementary CMOS circuits and work on designing the circuit. This saves you time during the lab session and you have more time to work on your cadence implementation.
PART I
CMOS inverter design
Design a CMOS inverter in Cadence.
- PMOS width
- 240 nm
- NMOS width
- 120 nm
- Channel length · both
- 45 nm
For simulations, set the inverter input signal to have a rise time of 0.5ns, fall time of 0.5ns, pulse width of 2ns, period of 5ns. Use model file: /util-cse/cadence/local/gpdk045_v_6_0/gpdk045/../models/spectre/gpdk045.scs
1. Create the inverter schematic using Virtuoso Schematic XL
2. Simulate the inverter using spectre simulator in the Analog Design Environment (ADE) Explorer tool. Measure the propagation delay of the inverter in the waveform window
3. Create an inverter symbol using Virtuoso Symbol L
4. Layout the inverter in Virtuoso Layout XL.
5. Pass DRC & LVS checks
6. Extract the layout and simulate the extracted version.
7. Measure the propagation delay of the inverter in the waveform window
8. Is there a difference in the propagation delays between the circuit schematic and extracted layout? Why/Why not?

PART II
Basic logic gates
You will have to implement the schematic and layout for basic 2-input gates
Create symbols for each schematic.
Useful tips
1. Another important thing to note is to keep the width of the PMOS transistors double the width of the NMOS transistors. The width of the NMOS and PMOS transistors should be 120nm and 240nm, respectively. Their lengths can both be set to 45nm.
2. As you have to design 2-input gates, you should test your circuit for all possible combination of inputs. This can be done using two pulse inputs, one with twice the time period of the other. Another effective method to give stimuli is using bit inputs with 0.01ns rise and fall times.