Difference between revisions of "Running DRC"

From Vlsiwiki
Jump to: navigation, search
(Running DRC)
(Running DRC)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
<div style="float:left" align=left>[[INV_Layout_Tutorial |<--4. INV Layout Tutorial]]</div><div style="float:right" align=right>[[Running_LVS|6. Running LVS-->]]</div>
 +
 +
 
== Running DRC ==
 
== Running DRC ==
  
In the layout window, select Verify->DRC from the top menus. This will open a new window for DRC. The only option you will want to change is to "Join nets with the same name". Press OK. The results are printed in the CIW. If it ends with this:
+
For SCMOS, running DRC just requires you to select "Verify->DRC".
  
*********  Summary of rule violations for cell "inv layout"  *********
+
For FreePDK45, however, it uses Calibre.
    Total errors found: 0
+
Select Calibre->Run DRC from the top menus. This will open two new windows for DRC as shown here:
  
then you are done! If not, you need to fix the errors!
+
 
 +
[[Image:1-load_runset.jpg|center|300px]]
 +
[[Image:2-calibre_interactive.jpg|center|300px]]
 +
 
 +
Press "Cancel" on the runset window -- we won't use this. Click the "Rules" button on the interactive window and navigate to the Calibre rules file here:
 +
 
 +
/projects/cmpe122/techfiles/FreePDK45/ncsu_basekit/techfile/calibre/calibreDRC.rul
 +
 
 +
Click on the "Run DRC" button and you will get two more windows. The first one shows a summary of all the shapes and rules checked:
 +
[[Image:3-drc_summary.jpg|center|300px]]
  
 
== Viewing errors ==
 
== Viewing errors ==
  
If you had errors, your summary will look something like this:
+
The second window summarizes the errors:
 +
[[Image:4-error_summary.jpg|center|300px]]
  
*********  Summary of rule violations for cell "inv layout"  *********
 
# errors  Violated Rules
 
        2  (SCMOS Rule 7.1) metal1 width: 0.27 um
 
        1  (SCMOS Rule 7.2) metal1 spacing: 0.27 um
 
        3  Total errors found
 
  
It may be obvious once you see the error where the problem is, but sometimes you need to investigate a little bit. If you go back to the layout window, some new shapes in white have been added to annotate where the errors are. Typically, these will show that two shapes are too close, too narrow, or something similar. The errors even refer to the SCMOS rule that is violated. If you don't understand, look it up on the [http://www.mosis.com/Technical/Designrules/scmos/scmos-main.html SCMOS design rule guide].
+
It may be obvious once you see the error where the problem is, but sometimes you need to investigate a little bit. If you click on a rule and expand it, it will show the associated errors. If you click the error, it will be highlighted in your layout window.
 +
 
 +
Typically, these will show that two shapes are too close, too narrow, or something similar. The errors even refer to the SCMOS rule that is violated. If you don't understand, look it up on the [http://www.eda.ncsu.edu/wiki/FreePDK45:Contents#User_Guide FreePDK45 design rule guide]. Now, fix all of the errors so it is DRC clean!
  
 
== Common errors ==
 
== Common errors ==
  
 
A common problem with DRC is when you instantiate cells. If there is not enough space from a shape inside a cell to a shape inside another cell, you will get an error. In other words, DRC is done flat. If you remove all hierarchy, you must pass DRC. Think about this when you make your cells by leaving at least 1/2 of a spacing rule between a shape and the edges of a cell. The edges of a cell are the bounding box of all shapes.
 
A common problem with DRC is when you instantiate cells. If there is not enough space from a shape inside a cell to a shape inside another cell, you will get an error. In other words, DRC is done flat. If you remove all hierarchy, you must pass DRC. Think about this when you make your cells by leaving at least 1/2 of a spacing rule between a shape and the edges of a cell. The edges of a cell are the bounding box of all shapes.
 +
 +
Another common problem is the contact overlap parameter in the PMOS/NMOS PCell. Make sure that diffContactLeftCov and diffContactRightCov are set to 0 otherwise you will get a poly-diffusion spacing error for small transistors.
 +
 +
Another common problem is with n- and p-wells. Often you will have many shapes abuting in complex ways. To avoid DRC issues, it is common to put a big rectangle of nwell or pwell over the whole area to simplify it. Overlapping shapes just results in a single opening in the mask that is a union of all shapes and is not a problem.
 +
 +
The pdcont and ndcont don't seem to make the active area big enough. In order to fix this, you need to expand the active to 90nm in all dimensions.
 +
 +
A correct layout (with the wrong sizes and heights for your homework!) and summary will look something like this:
 +
 +
[[Image:5-correct_rve.jpg|center|300px]]
 +
[[Image:6-correct_layout.jpg|center|400px]]
 +
 +
 +
<div style="float:left" align=left>[[INV_Layout_Tutorial |<--4. INV Layout Tutorial]]</div><div style="float:right" align=right>[[Running_LVS|6. Running LVS-->]]</div>

Latest revision as of 18:23, 21 March 2014


Running DRC

For SCMOS, running DRC just requires you to select "Verify->DRC".

For FreePDK45, however, it uses Calibre. Select Calibre->Run DRC from the top menus. This will open two new windows for DRC as shown here:


1-load runset.jpg
2-calibre interactive.jpg

Press "Cancel" on the runset window -- we won't use this. Click the "Rules" button on the interactive window and navigate to the Calibre rules file here:

/projects/cmpe122/techfiles/FreePDK45/ncsu_basekit/techfile/calibre/calibreDRC.rul

Click on the "Run DRC" button and you will get two more windows. The first one shows a summary of all the shapes and rules checked:

3-drc summary.jpg

Viewing errors

The second window summarizes the errors:

4-error summary.jpg


It may be obvious once you see the error where the problem is, but sometimes you need to investigate a little bit. If you click on a rule and expand it, it will show the associated errors. If you click the error, it will be highlighted in your layout window.

Typically, these will show that two shapes are too close, too narrow, or something similar. The errors even refer to the SCMOS rule that is violated. If you don't understand, look it up on the FreePDK45 design rule guide. Now, fix all of the errors so it is DRC clean!

Common errors

A common problem with DRC is when you instantiate cells. If there is not enough space from a shape inside a cell to a shape inside another cell, you will get an error. In other words, DRC is done flat. If you remove all hierarchy, you must pass DRC. Think about this when you make your cells by leaving at least 1/2 of a spacing rule between a shape and the edges of a cell. The edges of a cell are the bounding box of all shapes.

Another common problem is the contact overlap parameter in the PMOS/NMOS PCell. Make sure that diffContactLeftCov and diffContactRightCov are set to 0 otherwise you will get a poly-diffusion spacing error for small transistors.

Another common problem is with n- and p-wells. Often you will have many shapes abuting in complex ways. To avoid DRC issues, it is common to put a big rectangle of nwell or pwell over the whole area to simplify it. Overlapping shapes just results in a single opening in the mask that is a union of all shapes and is not a problem.

The pdcont and ndcont don't seem to make the active area big enough. In order to fix this, you need to expand the active to 90nm in all dimensions.

A correct layout (with the wrong sizes and heights for your homework!) and summary will look something like this:

5-correct rve.jpg
6-correct layout.jpg