EE 421L – Digital IC Design Lab - Lab 6

Authored by Chris Barr

Email: barrc1@unlv.nevada.edu

10/23/19

 

Zipped Lab6 folder:
lab6_cjb.zip

 

Lab Description:

Design, layout, and simulation of a CMOS NAND gate, XOR gate, and Full-Adder.

 

Prelab

Following Tutorial 4, I will be creating the NAND gate

This is the schematic created, using 2 PMOS’ and 2 NMOS’ in the construction of the NAND gate

 

To represent the design of the NAND gate, I drew out this symbol

 

Now to confirm the functionality of this constructed NAND gate, I will simulate it to check its results

 

The NAND gate is fully functional, we can continue to the layout design

 

To prove the designs completion, we’ll use DRC and LVS verification
DRC Verification

LVS Verification

 

This ends the tutorial 4. We achieved creating the NAND gate.

 

Note: At the end of the tutorial, we obtained an error of a “width mismatch”.
         The error was not received here because I had fixed the width in the layout. This can be seen in the above picture.

 

 

Lab

This lab will task us to create a Full-Adder, which we know uses 2 XOR gates, and 2 NAND gates. This can be seen below.

 

So, in order to achieve the Full-Adder, we’ll need to construct a NAND gate, and an XOR gate.
The NAND gate had already been created prior, due to the prelab (Tutorial 4). But here’s the details of the construction, in case you forgot.

 

We can move on to the construction of the XOR gate. This won’t be as simple as the previous construction, the NAND gate. We’ll need 6 PMOS’ and 6 NMOS’.
All the PMOS’ and NMOS’ will be the same size. Width = 6u, Length = 600n.

 

And to represent the XOR gate design

 

To prove that our schematic is functional, we’ll place it in a simulation. We’ll also add the simulations of a NOT gate and NAND gate next to our XOR gate.

 

The simulation shows glitches on all of the outputs. In digital design, we call these hazards. What we are witnessing are actually called Static Hazards.
Static Hazards take place when there’s a change in the input that causes the output to momentarily change before stabilizing it to the correct value.
It’s possible to fix these static hazards by introducing more logic gates to the circuit to create enough time (slack) for the output to stabilize the value.

 

Here are the truth tables for all three gates, that way it can be viewed side-by-side to the simulation to prove it’s correct.


NOT Gate

A

Ai

0

0

1

1

 

NAND Gate

B

A

AnandB

0

0

1

0

1

1

1

0

1

1

1

0

 

XOR Gate

B

A

AxorB

0

0

0

0

1

1

1

0

1

1

1

0


These are the input pulses settings
A on left, B on right

 

Now that we know the XOR gate functions properly, we can continue to the layout design.

 

To prove the layout was properly constructed, we’ll use DRC and LVS to verify.

DRC Verification

LVS Verification

 

Now that the two fundamental logic gates are designed, we can create the Full-Adder, as shown earlier. Here’s the schematic we’ll use (using the symbols created earlier of the two gates).

 

The symbol we’ll use to represent the Full-Adder:

 

And the layout design


 

 For proof that the Full-Adder was designed properly

DRC Verification

LVS Verification

 

Full-Adder Schematic and Simulation

 

Full-Adder Truth Table

Cin

B

A

Cout

S

0

0

0

0

0

0

0

1

0

1

0

1

0

0

1

0

1

1

1

0

1

0

0

0

1

1

0

1

1

0

1

1

0

1

0

1

1

1

1

1

 

I’ll be backing up my labs using Google Drive.

 

 

Return to my labs