EE 421L Digital Integrated Circuit Design - Lab 6

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

 

Shadden Abdalla

Abdals1@unlv.nevada.edu

 

In this lab I will:

1.     Draft the schematics of a 2-input NAND gate (Fig. 12.1), and a 2-input XOR gate (Fig. 12.18) using 6u/0.6u MOSFETs (both NMOS and PMOS)

2.     Create layout and symbol views for these gates showing that the cells DRC and LVS without errors

3.     Use cell names that include your initials and the current year/semester, e.g. NAND_jb_f19 (if it were fall 2019)

4.     Using Spectre simulate the logical operation of the gates for all 4 possible inputs (00, 01, 10, and 11)  

 

 

Prelab:

 

Go through Cadence Tutorial 4. Below is the end of Tutorial 4.

 

 

 

ACTUAL LAB

*********************************************************************

1.    Schematics of a 2 input NAND gate and a 2 input XOR gate using using 6u/0.6u MOSFETs (both NMOS and PMOS)

 

NAND

 

Using personalized cell view with my initials and year, SA.

https://lh6.googleusercontent.com/DHCveqS2C0NfASQfVye5iXGxFMYafaswoitBgDbnBZdVn-YVTDZr9bABRhVf6dASScReHZZwZuqsqxEWQ4ivPg0e-Joa16GnqTe3xRqaR2LQtYVi6r4z3yV4wn9YsFT34oPCoN3u

Below is the NAND circuit using two PMOS’s and two NMOS’s. I used three pins, A and B input and AnandB output. The PMOSes are both tied to VDD and the NMOS on the bottom is tied to ground. The BASE of the PMOS is connected to VDD and the BASE of the NMOS is tied to ground, which is the general rule. I then created the symbol for the NAND that I created and put my initials in it.

 

https://lh4.googleusercontent.com/clOCKK_d0RZODujhXyLfBOMdlJqCIBdcsTioklqt9jr8z6mVosO05cO9Txo2kcPJjAtE3L1_O491gLygSDT7efKnNlJQwv0iuGNtqJpG7g_xL19Op6IvJNnIE9tHpxONUZ2tDt8n  https://lh6.googleusercontent.com/dSYEww2IY7KoC-zSRUuEZFuUUNUzSkIq9rZupR1UymXl8WCSvO9e3NKUR0mvKopePM3xPgwuL7xx3AWHD7L6mRiQzFItQzmUglxrkWpN7-VBb0OH6iBaWQ7YOwodL2RVfwyprRCs

I then created the layout for the NAND. I used two NMOS and two PMOS just like I did in the schematic. You can tell that I have two of each MOSFET because of how many POLY lines there are. In the top PMOS there are two lines of poly, thus there are two PMOSes there. The bottom NMOS also has two lines of poly which align with the top poly in the PMOS above. Two lines of poly on the NMOS shows that there are also two NMOSes. I made three pins using metal1, A and B as inputs and AnandB as an output pin. The A and B are on m1_poly and are connected to the poly because A and B are both tied to the gates of the MOSFETS. AnandB is connected to the Drain of the PMOS so that is where the pin is located. The top of the PMOS is connected to an ntap that is tied to vdd! Using the ! to show the global VDD. The bottom of the NMOS is connected to a ptap which is tied to global ground using the !. I then DRCed and extracted my layout. After the LVS, you can see that the netlists match.

 

https://lh4.googleusercontent.com/T5V03AdmfIfXKznpT_876qPY8F609QzmYYzuW5_CXXaPsCLYAxI62_udcaz2UG_aF4LH66Aem9QXWfOKLIeJjdS68xFKbYFuDJgLomdiU9zbx4gescUfJWCQz7EUoTj4PJM_ir7d  https://lh6.googleusercontent.com/-NQWSXM_yIADiiRNkgjLf1CA47G6Tsi7MCZxJzRIFW2LqL4AIFVwIsse2g3V_bg9oCzWACwFdhsqnj0GWuej_VknaP6K2GIWf8HtMjxA8hMHjsye94s5cgs4LuhK7Nr5bs_FOPUE 

 

The DRC of my NAND layout.

You can see below that I LVSed the schematic and extracted view and the netlists all matched.

https://lh3.googleusercontent.com/e0Q4glc9le-IabFjtPl8vVxh6mGdhkpd5d-69R0tEfdh9_PWSSitJQyN2_WHJvMRim7f6dYWxPWcnFa78nhmuNUOict0yftl7FcMk9vU2jtwVl2VETv5OAA9Y8gEgCNif7xfBoSG  https://lh3.googleusercontent.com/h9gAKD4DfOCZ-GITtqWnn4Q6qd4mYdM1YItAzHmWAAVrsn2ScHoUOw9uc0BxAwvEqmNhYx93t2F5yDccUT4nAfTdwYXKpALjSuhb-jRc4j--G7w22wYP7WV-hpYRpCbbrZlZyECe

 

 

SIMULATING THE NAND

Now, I simulated the NAND symbol that I created earlier using a pulsing voltage source from 0 to 5 volts connected to both NAND input terminals so that they can pulse through all 4 of the outputs asked of us. I tied the output to a 100fF capacitor. I used spectre to simulate the logical operation of all 4 possible inputs, 00, 01,10 and 11. I set the VDD value using the stimuli setting in the ADE. The transient response shows some glitches in the output when the inputs switch from zero to one or from one to zero.

 

   

  

 

 

XOR SCHEMATIC AND SYMBOL

 

I made the XOR schematic using two inverters on the left holding the values of A and B and put a noconn unit for the Ai and Bi outputs of the inverters in order to assign Ai and Bi as well as the original input pins of A and B into the actual XOR schematic. I used 4 PMOS devices and 4 NMOS devices. Each PMOS is still connected to VDD a at the source and the base and each NMOS is connected to gnd at the drain and the base. The inputs in the XOR are the actual inputs as well as the inverted inputs. Half of the MOSFETS are connected to the input pins and the other half are connected to the inverted input. Then I created the symbol for the XOR with my initials in it.

https://lh6.googleusercontent.com/UxWv9W6NCD7TC2q0RejHVams0a1lyAqd0Sve7RXpI5nYRtqBzPQxQrMjx23daCiF1b41qquN9TtPlNE2HW-ZIa82C8_sj9I9kg7G2aUweoQZfkI0oYUWilEpy80Gg9ihTK3Mzqsx   https://lh3.googleusercontent.com/H3jFPpn5nGUku19gqmyXqJqDAXzCe4FbJnmND2jCkHiqsaL7yJGRBeN3qqX7Nh4uqKRtLc7Iom01VOahuOyh1twFQPV6h241WfG4u5k6J2WwANS_THCGxcMwualfG76vK3mxHnZT

 

XOR LAYOUT

 

I laid out the XOR using a PMOS and NMOS with four fingers each which represents four mosfets each. Then there are two inverters on the side. The PMOS is connected to a ntap which has a metal1 pin connected to vdd! The NMOS is connected to a ptap that has a metal1 pin on it connected to gnd! The A pin is connected to the two gates of the inverter, the gate of the NMOS and the PMOS. The B pin is also connected to the gates of the second inverter (gates are on poly), the gates of the NMOS and PMOS. I also connected the PMOS and NMOSes in the inverter together using metal 1. The output pin, AxorB connects the NMOS drain and the PMOS drain.

 

Then I extracted the layout.

 

https://lh4.googleusercontent.com/cFQcWXLATsiai8H_R7n5to0H6yIMQiPCYwOPcYcQ6kBOaDDf7jk-59E_WZShqQv9axikOIAG3kaU0gM-oWfq0FYXpw-IUaLqPg4zLG-kW-qep6a3ol1VWVcB7YGx0FdwXm1zt4zO  https://lh6.googleusercontent.com/iDWhpWxgnPXzUPNKDdinxDaAWkBmJbylw__JrbdOty16_qf6FXZwir_1c8Aa1ffmL-N4K4P4SwrmVLF6uoEBc0ycBYCE7WMZlzUcaUeMR6CkiBTpIKVRIdLcbE6gi79SfIZ7qEpv  

 

I then DRCed the layout of the XOR.

 

Then I LVSed the schematic and extracted.

https://lh5.googleusercontent.com/uRZk4KJHtdeKxbNL6bZwLsoNbrqR2T1rM45scSeEgweRUKmDXgVncWtyOSbc46jNXLCP_AS72-Hbm6sPTOMBpr6NpyimDZVNUOgBzZkyG7xvK7p6egfAGZXRqHjLAqNxUqY0yIYn 

 

The netlists matched and the LVS job completed.

https://lh3.googleusercontent.com/79b804dn-e2d9IgSDJ-cxbrl_FNKrovMUVh-fPPYYCtp5ML1UNHBYJAaq9-AcQD73Z-6DDoIX9CbdkNTAdT8DHRYEtmcz3802Pl9yWnsVe788CJqVGefyHzfG81nqcy0dRox1iU7  https://lh5.googleusercontent.com/RnyxhgZXcb43io6i7HkuTZzcpoQvm3ySBEdbegXFvM2BKLRhh36sN6UeHs3xfY72MP3YYddm8dX65vUwIjs-B_PZMkskys4l5b5OoWCqmEs4MM0UjPBRSrS_J2aMvUggg4OZdypo 

 

USING THE SYMBOLS WE JUST MADE TO MAKE A FULL ADDER SCHEMATIC

 

I put together 3 NANDs and two XORs using 3 input pins and two output pins to make the full adder, then I created a symbol for it. I used input pins a,b, and cin. I used output pins cout and s.

To the right is the chart that gives us what the output and inputs should be for a full adder.

https://lh6.googleusercontent.com/5OEq3zVTNAdk4mQO49SxKHn-8C2B4IiOY9M7CBDv02AQTyZ-qmdCTMb5_gFLyStpZF28SqY11pXpWUp0RCRcPfNpv-RNnQmJaIDtqpZIC63gpMAGOJU4oqS0Opc_usGduJ5bq1wa  https://lh5.googleusercontent.com/wXMjMi9JddQaClwPEMOtuRF6PQH40pEDfhjC8fVywSCfgc6EJv7FG8FFOmDCrQ_QyZywOp46LlAUkn9nbA5GyFFvYkEMU3iJdTHACa7mpUZTXy-gTwaaPIQ1h3nLROIvzaOFI6MX  

 

SIMULATION

 

I simulated the symbol using the same method as before, three pulsing voltage sources to test out all three bits. The VDD is also set up using the stimuli setting in the ADE L.

https://lh5.googleusercontent.com/W2yWrVh3r-i5gJbE17QezG15tFCxK_RwRiYF-S3YGVw2MfmxOn1XXawRbqxLTPAhVITvzklMaErX-26-joWQaZSTrCr5Qy-xRdLfVrRunkZpta1BJJ8lVLLw4PQswytla7WIK6_i

 

The simulation showed the same results as the chart.

 

https://lh3.googleusercontent.com/e1kLmUwsyzLoGrqxb1UhLE-LGRuddcxd8j1zMSsATMcizUsFh1QH7ekfrTzrc3oeH9yOYcI46TX80_CVNz8DbAADOVMpS0IZpxqe_5BJHVdHbFihcj9QjQ2sb6UAcRVyFeHUMx7f  

 

FULL ADDER LAYOUT

 

I combined all of the previous layouts that I made to make the entire full adder. I alternated my placement of the NANDs and XORs. I used the same pins as in the schematic, a, b, cin, s and cout.

https://lh4.googleusercontent.com/qoKB_Zxe6P-VFSONiLztPVYuz7MVNUZ-y5N8u0inYNzi4cH_jTgxeVA_0GM5j0IN1P3WFtXt1mXud9AjT5zUwSdThzCoy_ub4419CVCeGVHZvt43CpMDR_Fz4Y3cRh7uiWiRMGRp

I then extracted the layout to prepare for LVS.

https://lh6.googleusercontent.com/97cSGtkwaSefxsZ5xhdj_rJDVwTX5nAZE1Y4Rf49HwAuoXfvqH_LWz8Meq6UNa-9dHy0YNXmZsazFKVNoL35_TBwV27p9egZpwmmVfK7WFEkdcgaXdpksBdIymcS3H_VkiEcrbFe

 

I DRCed the layout and there were no errors.

 

 

I LVSed the schematic and the extracted layout and saw that the netlists matched.

 

 

 

 

Return to Shadden’s labs