ECE471/571 Energy Ecient VLSI Design Project 2 Cadence Setup and Creation of an Inverter Due Date 11:30pm on Friday, January 30th 2015 Introduction This project will rst walk you through the setup for use of the 0.25µm process with Cadence Design Framework II. Then you will create the schematic, symbol, and layout of an inverter. Much of the information in this lab manual was taken from Dr. Moon's Design Framework Tutorial. For more information you can refer to his page at: http://web.engr.oregonstate.edu/~moon/ece423/cadence/ Setup Following these steps will help you setup the Cadence Design Framework. 1. To run Cadence, you just need to have /usr/local/apps/bin in your path (this is valid both for the ECE and for the ENGR machines). To check this go to your home directory and look at the .cshrc PATH variable inside of your le. 2. To setup Cadence you must create a directory inside of your ECE471 folder named cadence in which you can save your Cadence projects. Change your current directory to cadence. Once you have changed your current directory to your Cadence project directory, run the Cadence setup script by typing the following command at the terminal: /nfs/guille/u1/c/cdsmgr/cdsmgr/process/CDK1.4/tsmc025/setup This sets your directory to work with the TSMC 0.25µm process and copies 3. Next you will need to edit your .cshrc le. the appropriate les to that directory. This le is found in you home directory, and it is a hidden le (it starts with a '.'). If you're using a graphical le browser, simply specify that hidden les should be displayed. If you use a terminal window, you can nd the le by typing .cshrc setenv setenv setenv setenv ls -all or many other commands. Once you've found the le, open it in a text editor and append the following commands to the end of the le: CDS_SITE /nfs/guille/u1/c/cdsmgr/cdsmgr/pdk/CDK1.4/local SKIP_CDS_DIALOG 0 USE_NCSU_CDK 0 CDS_Netlisting_Mode Analog 4. You must also replace one of the cadence initialization les. The script above creates some basic init les. Unfortunately, the layout tool will not work unless you replace the .cdsinit le that was placed in your cadence directory. .cdsinit. Remember, this is Simply save the cdsinit le from the lab webpage in your cadence directory as a hidden le, so you won't be able to see it unless you specify that you want to view hidden les. 5. Now you'll need to change a location in one le. Open cds.lib and change any line with /nfs/guille/u1/c/cdsmgr/ This can be done with a simple sed if you prefer: sed "s/~cdsmgr/\/nfs\/guille\/u1\/c\/cdsmgr\/cdsmgr/g" cds.lib ~cdsmgr/ to 6. Next you must add the local cadence icfb shortcut le. Download this le below and copy it into your newly created cadence folder. Then change the permissions to ensure its executable (either chmod u+x icfb le in your le browser, right click, go to the permissions tab and select the executable box). 7. You can now start DFII by typing ./icfb from that directory. 1 or browse to the Creating a layout This section will walk you through the process of creating a design and layout. In this case, we will make an inverter. Create a library for your new design From the library manager window go to: F ile → N ew → Library Type a new name, such as ECE471. Under the heading Technology File, choose Compile a new techle. Then from the drop-down menu choose TSMC 0.24u CMOS025/DEEP (5M, HV FET) . Click OK. Create a new cell, where you will design the inverter In Library Manager, highlight your new library (ECE471 if that is what you chose). Go to: F ile → N ew → Cellview Choose library ECE471, cell name inverter, view name schematic, and Tool Composer- Schematic. Click OK. Design your circuit The next step is to create the schematic for your circuit. Placing components For this inverter, you will need a nmos transistor, a pmos transistor, and power and ground nodes. • From Schematic window: Add → Instance The Add Instance and Component Browser windows will open. Make sure the Library in the Component Browser is set to • NCSU_Analog_Parts. Use the Component Browser window ('i' is hot key for Component browser instantiate) and single click then select nmos4 N_Transistors, pmos4) Esc and place it. Place the component. Do the same for a pmos (P_Transistors and hot key helps you to escape. • Also, from the NCSU_Analog_Parts, get the symbols for vdd and gnd from Supply_Nets (they dene the net names for the power and ground nodes). • Create input and output pins by pressing 'p'. Give each pin an appropriate name and select the proper direction (input or output). • To size the transistors properly rst highlight the NMOS transistor and press 'q', then change the width to 480nm. Next change the PMOS width to 960nm. Be sure to include the 'nm' postx. • Use wires to connect the parts accordingly (Be sure that the PMOS bulk is connected to is connected to • Go to: gnd). Design → Check and Save vdd, and the NMOS bulk to save the design and check for any errors. If there are errors, they will show up in the icfb log window. Some other hot keys are 'f' for re-centering screen and 'w' for placing wires. Generating HSPICE netlist from schematic T ools → Analog Environment → Simulation → N etlist → Create F inal. To save the F ile → Save As and type in the full path to where you want it saved. (For example, mine would be save location: ~/ECE471/Lab2/netlist.spi) To create a netlist, go to netlist go to in the 2 Creating a symbol Creating a symbol for your circuit is useful for integration into a larger design. If you are creating a circuit that uses inverters, it is handy to view the inverters in a schematic as the inverter symbol, rather than just seeing it at transistor level. • In your schematic window go to: View Name Design → Create Cell view → F rom Cell view. To View Name eld is symbol. Press OK. Make sure that the From eld is schematic, and the Figure 1: Schematic symbol of an inverter. • We want the our symbol to simply look like this inverter symbol seen in gure 1. To do this, go to Add → Shape and add the necessary shapes (use polygon to create a triangle). Your nal symbol should match gure 2. Figure 2: Final symbol of an inverter. Creating the layout • To start a new inverter layout, go back to the library manager window, highlight your ECE471 library and go to: F ile → N ew →→ Cell view. In the View Name eld put layout, and in the Tool eld select Virtuoso. Press OK. • To add new parts, once again press 'i'. Choose Browse, and highlight: layout. N CSU T echLib → tsmc03d → nmos → Change the width to 480nm, then go ahead and place the NMOS on the grid. Repeat this process with the PMOS (changing the width to 960nm), and place it above the NMOS, and then press Shift+f keys. Your screen should look similar to gure 3. 3 Figure 3: Layout with NMOS and PMOS mosfets. • Now we want to connect the drains of the transistors. To do this, go to the LSW window and highlight the box, press 'r', and draw metal1 metal1 connecting both drains to each other similar to gure 4. Figure 4: Metal connecting mosfets. • Now we need to connect the gates, select the poly drw to gure 5. 4 box in the LSW window, and connect the gates similar Figure 5: Gates connected. • Next we will place the ntap and ptap. For the ntap press 'i', then select browse and highlight: tsmc03d → ntap → layout N CSU → techLib → and place it as shown in gure 6, then add the ptap in a similar manner. Figure 6: Mosfets with taps. • Using M1 (metal1), connect the source of the NMOS to 5 gnd and PMOS to vdd as shown in gure 7. Figure 7: Connecting to supply rails. • We want for our in pin to connect on to use vias. Press 'i', and highlight: metal1, and our out pin to connect on metal3. To do this we will have N CSU T echLib tsmc03d → M 1 − P oly → layout, and place the connector as shown in gure 8 for the input. For the output, compound an M1-M2 connector with a M2-M3 connector as shown in gure 8. We will also take both M1 and M3 and extend the input and output. Figure 8: Input and output pins. • Next we want to place the pins. Go to: input. Change Pin type to metal1. Create → P in, change the terminal name to in and set the I/O type to Display Pin and change layer to metal1-dg. Repeat this process Click on for the out pin, making all the necessary changes. Make sure the pins are placed on the appropriate spots (on the appropriate metal layers). 6 • Finally, we want to add vdd and gnd. These will be added using pins, but this time, the I/O type will be set to Input/Output. Set the metal layer properly and place the pins on the correct locations. Running DRC/Parasitic Extraction • Go to V erif y → DRC and press OK. If your design has any errors they will show up in your icfb Log window. If you have errors take a look at them and see if you can x them. • To do parasitic extraction go to: V erif y → Extract, in that window select: Set Switches → Extract P arasitics Caps and press OK. ICFB should show you no errors. There will be a new cell called extracted in your Cadence Library Manager, open this up. • In this window go to: T ools → Analog Environment → Simulations → N etlist → Create F inal. This will create the new netlist containing your extracted view. What to turn in Turn in a PDF to TEACH by Friday, January 30th by 11:30pm with the following things: • Screenshots of your completed, error free schematic and HSPICE schematic netlist. • A screenshot of your completed symbol. • Screenshots of your completed, DRC clean layout, and your extracted HSPICE netlist. • An explanation of any problems you may have had. • Answer to the following question: Why is it important to simulate your circuit both after schematic and post-layout? (after parasitic extraction) 7