MOSIS NDA

This is an important step to obtain access to tsmc 0.18um pdk for the class

To access tsmc 0.18um pdk, mosis requires all the users to sign a Non-Disclosure Agreement (NDA). Please print a copy of the MOSIS NDA form, sign and submit to Prof. Moon to be added to the pdk user list.

LAYOUT AND VERIFICATION

Design Rule Checking (DRC)

At any time during your design, you can verify if any dimensions are being violated.
In the layout window, select:
drc_rules
Figure 1: DRC rules and Run Directory.
drc_inputs
Figure 2: DRC Inputs.

Layout Versus Schematic (LVS)

The LVS tool is used to compare the layout with the schematic, identifying any circuit related differences that might exist between these two views. It reports about circuit nodes and device sizes.

In the layout window, select:
lvs_inputs_layout lvs_inputs_netlist
Figure 6: LVS Inputs.
lvs_inputs_layout
Figure 7: LVS Options.
lvs_fail
Figure 8: Calibre RVE showing LVS failure.
Update the layout to fix the LVS errors. Click "Run LVS" tab to rerun LVS. If the layout is LVS clean, Calibre RVE dispalys a green smiley face.
lvs_pass
Figure 9: Calibre RVE showing LVS is clean.

Parasitic Extraction (PEX)

The PEX tool is used to extract the parasitic capacitors and resistors that result from routing in the layout.

In the layout window, select:
pex_inputs_layout pex_inputs_netlist
Figure 11: PEX Inputs.
pex_outputs
Figure 12: PEX Outputs.
pex_options_lvsoptions
Figure 13: LVS Options.
pex_options_pexoptions
Figure 14: PEX Options.
calview_setup calview
Figure 15: CalibreView Setup.
Note that LVS has to be clean for proper extraction of parasitics. Update the layout to fix the LVS errors if necessary. Click "Start RVE" tab to display PEX results. Calibre RVE displays both LVS results and the list of extracted parasitics.
caplist
Figure 16: Calibre RVE showing Parasitics list.

Post Layout Simulation:

To simulate the extracted netlist or cell in a given tesbench, you need to create a "config" view of the testbench schematic. Note that, to perform this step you should already have a testbech schematic with the symbol of the "inverter" cell.

In Library Manager:
config_newcell
Figure 17: New Config(Hierarchy Editor) Cellview.
config_template config_newconfig
Figure 18: Config Setup.
config_final
Figure 19: Hierarchy Editor.

Instantiating cells:

To make layout design more simple, it's possible to define blocks which are to be used several times in the same layout. The following example describes how to do this for a transistor.

Design or copy one of your transistors to a separate place. Select the whole transistor and choose: You will see the cell as a red outlined box. The contents of this box are now in a different hierarchy level, and can only be accessed with hierarchy commands.

This cell exists now in the library manager. To place more copies in your layout, select: You can also create arrays of cells, which can be used, for example, to make transistors in parallel. When creating an instance, the form gives you options to change the number of columns or rows, and the distance between the elements.

To return one of the cells to normal layout rectangles, select the cell and use:

Editing hierarchical designs:

When you want to edit a cell, you have to navigate between different hierarchy levels. This is done by selecting the desired cell and using: Of course, you can also edit the cell by opening it from the library manager.

To see all the hierarchy levels, you can use the shortcut key F. To see only the top level, use ^f. This information can be accessed from the menu Options->Display. In the dialog box, there is a field with the `Start' and `Stop' display levels.