Lab 6 - ECE 421L 

Authored by Gabriel Gabonia,

Email: gabonia@unlv.nevada.edu

October 7, 2020 

  

Lab description:

Prelab:

 

For the prelab we will be backing up our work and then going through cadence tutorial 4 which involves creating a NAND gate.

 

Lab:

Part 1: Drafting and Laying Out the NAND gate 

 

For the first part of the lab we will first be drafting the schematic of the NAND gate. The NAND gate will be a 2 input gate and the schematic will include the use of 4 terminal transistors. For this lab we will be using the mosfet sizes of 6u/0.6u for both the NMOS and PMOS mosfet.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/nand2_schematic.JPG

Figure 1 - NAND Gate Schematic

 

After checking the schematic for errors we will now create a symbol from the schematic.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/nand2_symbol.JPG

Figure 2 - NAND Gate Symbol

 

Now the next step is to layout the NAND gate using the mosfet sizing we used for the schematic.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/nand2_layout.JPG

Figure 3 - NAND Gate Layout

 

After the NAND gate has been laid out we need to DRC the schematic, extract and then LVS the extracted and schematic files to check if the net lists match.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/nand2_DRC.JPG

Figure 4 - NAND Gate DRC

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/nand2_extracted.JPG

Figure 5 - NAND Gate Extracted

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/nand2_LVS.JPG

Figure 6 - NAND Gate LVS

 

Part 2: Drafting and Laying Out the XOR Gate 

 

For the next part of the lab we will first be drafting the schematic of the XOR gate, again using the mosfet sizing of 6u/0.6u for both the PMOS and NMOS. The XOR gate will also be a 2 input XOR gate.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/xor_schematic.JPG

Figure 7 - XOR Gate Schematic

After drafting the XOR gate we will check the schematic and then create the symbol for the schematic.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/xor2_symbol.JPG

Figure 8 - XOR Gate Symbol

 

After the schematic and symbol are done its now time to layout the schematic for the XOR Gate. We will use Metal 1 to connect the pins into the circuit and use other material such as poly as well to connect gates of the mosfet together. 

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/xor2_layout.JPG

Figure 9 - XOR Gate Layout

 

After laying out the XOR gate we DRC, Extract and LVS the layout.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/xor2_DRC.JPG

Figure 10 - XOR Gate DRC

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/xor2_extracted.JPG

Figure 11 - XOR Gate Extracted

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/xor2_LVS.JPG

Figure 12 - XOR Gate LVS

 

Part 3: Testing the Gates 

 

The next part of the lab is to test the gates that we created. We will create a new schematic that implements all of the gates and then read the inputs and outputs of the gates.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/gatesimulation_schematic.JPG

Figure 13 - Gate Test Schematic

 

After Drafting the Schematic of the gates we will test using inputs in different period and compare the output results. The output results should match the outputs of standard XOR, NAND and Inverting gates.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/gatesimulation_graph.JPG

Figure 14 - Gate Output Graph

 

Using the tables of all the gates we can compare the inputs and outputs and see that the gates are working correctly.

 

INVERTER

AA'
01
10
 

NAND GATE

ABA NAND B
001
011
101
110

 

XOR GATE

ABA XOR B
000
011
101
110
 

We can also see in the graph some sudden spikes going up or down. On the graph these spikes occure at the rising or falling edges of the input and output. This glitches occur as the inputs and outputs briefly rise and fall and during that period of rising and falling the gates output those suddent spikes. These spikes could be fixed using a faster rising time and falling time which should reduce the intensity of the spikes. In this schematic the rising time for the input pulse was 1ns.

 

Part 3: Drafting and Laying Out Full Adder 

 

The next part of the lab is to draft the schematic of a full adder using the gates we designed and tested. 

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/fulladder_schematic.JPG

Figure 15 - Full Adder Schematic

 

After creating the schematic we will create a symbol for it as well.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/fulladder_symbol.JPG

Figure 16 - Full Adder Symbol

 

The next step is to layout the full adder, we can instantiate the layouts of the gates and then connect the inputs and outputs accordingly. For this layout, there will be 3 NAND gates and 2 XOR gates that will be instantiated onto the layout following the schematic.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/fulladder_layout.JPG

Figure 17 - Full Adder Layout

 

After the layout is created we DRC, Extract and LVS. It is important to double check the connections for a bigger layout like this. Constant DRC throughout the process was done in order to fix the errors before they all piled up.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/fulladder_DRC.JPG

Figure 18 - Full Adder DRC

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/fulladder_extracted.JPG

Figure 19 - Full Adder Extracted

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/fulladder_LVS.JPG

Figure 20 - Full Adder LVS

 

Part 4: Implementing and Testing Full Adder 

 

The final part of the lab is to implement the Full Adder and test it. We will create a schematic and test the inputs and outputs comparing it to the table of a full adder.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/fulladder_test.JPG

Figure 21 - Full Adder Test Schematic

 

After the full adder us implement we will use pulse inputs with varying periods on each of the inputs in order to get different inputs in the graph. We will then compare the inputs and outputs to the full adder table.

 

file:///C:/Users/GabrielGabonia/Desktop/lab6/fulladder_graph.JPG

Figure 22 -  Full Adder Graph

 

FULL ADDER

abcinscout
00000
00110
01010
01101
10010
10101
11001
11111

 

Using the table we can see that the graph of the full adder is correct.

 

lab6.zip

 

Return to EE421L