University of Southern California

Department of Electrical Engineering - Systems

EE 477 Laboratory #2

Latch/FF Design, Layout and SPECTRE Simulations

Due April 13, 2013, 4:59 PM


Vdd = 1.8 v.

A note about well and substrate contacts (ntap and ptap): Make sure your ohmic contacts meet the following requirement:

* Every cell should have a well and substrate contact.


* For larger cells, include at least two contacts per 50x50 lambda square, one for the p-substrate and the other for the n-well, assuming there are both NMOS and PMOS transistors in the space.


* Every separate block of n-well should have at least one ohmic contact.

* For all your contacts, you will get the best design if you use multiple minimum-size contacts for large contact areas and not large contacts. Cadence will do this automatically for you if you try to use large contacts.

Part 1: Lab 1 Cell Layout SPECTRE Simulations 30%


A. Simulate the cell layouts you designed in Lab 1 using SPECTRE (inverters, NANDs, transmission gate and compound gate),

* Your device sizes should be the same as you were instructed to attain in Lab 1. Do not adjust rise and fall times by changing transistor sizes here.


* Attach the smallest inverter cell layout as a "load" to the output of each cell. To do this, create a new cell that contains the cell you are testing and also the load (inverter) cell. Read the simulation output from the cell you are testing, not the load inverter.


* Insure when you create extracted view from the layout that you include all parasitic capacitances.


* For the simulation use the same inputs in the same order as you did for the schematic simulations, including your worst-case simulations.

* Use a rise and fall time for the inputs signals of .1 ns.


* Note the rise and fall times at the outputs of each cell.

B. Change the temperature of the smallest inverter layout (go to ADEL-->Setup-->Temperature) in the SPECTRE simulation to 100 degrees C and resimulate. Compare your simulation results.

Report Format: The report on this part of your lab should contain:

1. a title page (2%),

2. a list of all the cells you simulated (2%),

3. layout images (2%),

4. the SPECTRE simulation inputs and outputs in the form of waveforms (16%),

5. a comparison of the smallest inverter at the different temperatures (4%), and

6. a discussion of cell rise and fall times and a comparison to the simulation results you got for Lab 1 (4%).

All these parts should be in a single lab report file in pdf format. Tar this lab report with the SPECTRE netlist, and the lab report and files from Part 2, described below. The report should be typed, not handwritten, and should be in pdf format. Reports submitted in .doc, .docx or other formats will not be graded.

Part 2: LATCH and FLIP-FLOP DESIGN 70%

A. Use only the cells you have already constructed to design a latch, and use two latches to build a CMOS D flip-flop schematic in Cadence. Design the two latches as separate cells and then place them together to form the flip-flop. You can use one of the larger inverters one or more places in the flip flop if it gives you a faster design. You can assume that the flop-flop output will terminate in a load inverter just like you used in Lab 1.

Assume the flip-flop is clocked and can be synchronously reset.

clock, /clock, Data D, synchronous reset, synchronous load and synchronous /load are inputs to your design.

Load is active high.

When Load is low, the data will recirculate, regardless of the clock.

The flip-flop should be negative edge triggered.

The clock signal should not be gated (in other words, the clock signal should not pass through any logic gates before arriving at the flip-flop).

The transistors in the gates used in the flip-flop should be sized as they were sized for Lab 1. Do not use ratioed (pseudoNMOS) logic. Do not use dynamic logic or dynamic storage (not covered yet).

B. Simulate the flip-flop schematic you built in Cadence using SPECTRE, assuming the data D, clock, /clock, reset, load and /load signals are inputs to your design. Be sure to try all possible combinations of data inputs versus present state of the flip flop, including the waveforms shown below. Be sure you test reset. Start with clock low, D low and load high. For the simulations, attach your inverter schematic as a "load" to the flip-flop output. To do this, create a new cell that contains the cell you are testing and also the load (inverter) cell.

Adjust the timing of your clock to be as fast as possible and still have the circuit work properly. Make sure the inputs have settled a setup time before the clock edge. The waveforms shown below show the order of changes of inputs you are to use for the simulations. You might have to set initial conditions in the latch to get SPECTRE to converge. This will be explained in the discussions. Proper functioning includes having the low output be less than .1 Vdd and the high output being greater than .9 Vdd.


The clock and all input signals should have a rise and fall time of .1 ns.