Tutorial 7: More on Layout

This material is by Steven Levitan and Bo Zhao for the environment at the University of Pittsburgh, 2008/2009.

Here are some notes for using the NCSU/OSU 45nm PDK

 

1.    Generating Layout from Schematics

1. If you are going to extract your layout, you must give all the pins capital names when doing schematic and symbol, this is because the extractor will generate all the pin names to be capital in extracted view.

2. Don't use poly pin, it will not pass LVS.

When configuring physical hierarchy, select "NCSU_TechLib_FreePDK45" as Physical Library then find corresponding cell as Physical Cell, as shown in figure 1.

In "I/O Pins" section, select "metal1 dg" (other metal layers will also work) as Default Layer, and click "Apply". Select "Text Display" for "Pin Label Shape", then click "Pin Label Options...”  Select "Same as Pin" for "Layer Name", and change "Height" to 0.05, then click OK, as shown in figure 2.

The "Generate Layout" window should finally look like figure 3.

When transistors and pins are generated, you should find that the transistors are not properly sized according to the schematic. Select one transistor, click Q for its property, then select "Parameter". Note that the sizes are labeled incorrectly in "micro meter" in the layout, but are set correctly in "meter" in the property. Change width and length into micro meter values in property, as shown in figure 4, then click OK, you should see the change in layout.

2.    Running LVS

We are going to use Calibre for DRC, LVS and extraction. For DRC, find the menu button "Calibre" in the menu bar of layout window, click "Run DRC". In the DRC window, everything is already set, but I highly recommend you to create a separate directory for DRC, LVS and extraction, and set that as "Run Directory" in "Rules", rather than using the current directory. Otherwise, you are quite likely to be messed up by the many files generated after DRC, LVS and extraction. Click "Run DRC", then you will get the DRC result.

 

For LVS, click "Run LVS". In the "Netlist" tab in "Input", select "Export from schematic viewer", as shown in figure 5. Don't forget to change "Run Directory".

Click Setup -> LVS Options, in the "Connect" tab in "LVS Options", select "Connect all nets by name". Then click "Run LVS". Good luck.

 

If you get several LVS errors, don't try to solve them one by one. Browse all of them and think about which one(s) may be most important. Because errors may propagate, many errors will vanish when some "true" problems are solved.

 

For extraction, click "Run PEX". In the "Netlist" tab in "Input", select "Export from schematic viewer".

 

In the "Netlist" tab in "Output", select "CALIBREVIEW" as Format, as shown in figure 6.

Click Setup -> PEX Options, in the "Connect" tab in "LVS Options", select "Connect all nets by name". Then click "Run PEX".

 

After a short while, the "Calibre View Setup" window pops up. Select "schematic" for "Calibre View Type", and select "Arrayed" for "Device Placement", as shown in figure 7. Leave other options unchanged, click OK.

Then, you will have 4 "Map Calibre Device" windows. The first two are for nMOS and pMOS, it should already found the cell view for you, so just click "Auto Map Pins", make sure all the pins are mapped correctly (two same characters with different cases are mapped), click OK, as shown in figure 8.

When the window for capacitance (c) pops up, replace the original Library with "analogLib", then fill "cap" into the Cell blank, it will find two Terminals MINUS and PLUS, click "Auto Map Pins", and then OK, as shown in figure 9. For resistance, fill "res" into the Cell blank.