Difference between revisions of "Running LVS"

From Vlsiwiki
Jump to: navigation, search
(LVS Options)
(LVS Options)
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
To run LVS, you must have a schematic and a DRC clean layout.  
 
To run LVS, you must have a schematic and a DRC clean layout.  
  
== Extract a schematic ==
+
== LVS Options ==
  
In your layout, first perform extraction by selecting Verify->Extract. Select "Join nets with same name." This command will analyze all the electrical connectivity of the different layers and create an "extracted" schematic view. This is what is compared to your schematic.
+
Similar to DRC, LVS in SCMOS is much easier than FreePDK45, because it uses Diva instead of Calibre. Select Verify -> Extract and then Verify->LVS and then fill in your schematic and extracted views. The LVS rules should be in the technology library already.
  
== Running LVS ==
+
For FreePDK45, if not done so already, Calibre->Setup->Layout Export. In the new window add the following path to the field '''User SKILL file''':
  
To open the LVS window, select Verify->LVS... In this window, you will need to select both your schematic and the recently generated extracted schematic. You can do this by browsing and selecting the appropriate cell views.
+
/projects/cmpe122/techfiles/FreePDK45/ncsu_basekit/techfile/FreePDK45.tf
  
== LVS Options ==
+
Then press OK and select Calibre->Run LVS. Like the DRC setup, select the LVS rules file:
  
There are several options when running LVS. If you go to NCSU->Modify LVS Rules, you will get this menu:
+
/projects/cmpe122/techfiles/FreePDK45/ncsu_basekit/techfile/calibre/calibreLVS.rul
 +
 
 +
In the Input section, make sure you are comparing layout and netlist. It should be hierarchical.
 +
 
 +
Under the "Layout" tab, make sure the correct layout is selected and "Export from layout viewer" is selected. Under the "Netlist" tab make sure the correct top cell is selected and select "Export from schematic viewer".
 +
[[Image:1-layout.jpg|center|400px]]
 +
 
 +
 
 +
To turn on the advanced options, select Setup->LVS Options. This will add another option on the left called "LVS Options." Click it. In LVS Options, under the Supply tab, select "Ignore Layout and Source Pins during comparison". For some reason, our layout extractor is not extracting pin names at all. It will, however, make sure all the nets and transistors match correctly.
 +
 
 +
[[Image:3-options.jpg|center|400px]]
 +
 
 +
== Running LVS ==
  
[[Image:modifylvsrules.jpg|center|300px]]
+
Click "Run LVS" to launch the job. It may warn you about overwriting files and such. That's ok. If things go well, you should match! You will see this:
  
Some parameters you may want to change:
+
                        #      ###################      _  _ 
 +
                        #        #                #      *  * 
 +
                  #  #        #    CORRECT    #        |   
 +
                    # #          #                #      \___/ 
 +
                    #          ###################             
  
If you don't have an ntap or ptap, you can add "Ignore FET body parameters".
 
  
To force matching of sizes (a good idea), select "Compare FET parameters".
 
  
 
== Debugging errors ==
 
== Debugging errors ==
  
 
There is a separate wiki page, [[Debugging LVS]],  on suggestions for debugging errors. This is a very difficult problem sometimes, but it is usually a simple swap of nets or pins.
 
There is a separate wiki page, [[Debugging LVS]],  on suggestions for debugging errors. This is a very difficult problem sometimes, but it is usually a simple swap of nets or pins.

Latest revision as of 18:27, 21 March 2014

To run LVS, you must have a schematic and a DRC clean layout.

LVS Options

Similar to DRC, LVS in SCMOS is much easier than FreePDK45, because it uses Diva instead of Calibre. Select Verify -> Extract and then Verify->LVS and then fill in your schematic and extracted views. The LVS rules should be in the technology library already.

For FreePDK45, if not done so already, Calibre->Setup->Layout Export. In the new window add the following path to the field User SKILL file:

/projects/cmpe122/techfiles/FreePDK45/ncsu_basekit/techfile/FreePDK45.tf

Then press OK and select Calibre->Run LVS. Like the DRC setup, select the LVS rules file:

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

In the Input section, make sure you are comparing layout and netlist. It should be hierarchical.

Under the "Layout" tab, make sure the correct layout is selected and "Export from layout viewer" is selected. Under the "Netlist" tab make sure the correct top cell is selected and select "Export from schematic viewer".

1-layout.jpg


To turn on the advanced options, select Setup->LVS Options. This will add another option on the left called "LVS Options." Click it. In LVS Options, under the Supply tab, select "Ignore Layout and Source Pins during comparison". For some reason, our layout extractor is not extracting pin names at all. It will, however, make sure all the nets and transistors match correctly.

3-options.jpg

Running LVS

Click "Run LVS" to launch the job. It may warn you about overwriting files and such. That's ok. If things go well, you should match! You will see this:

                        #       ###################       _   _   
                       #        #                 #       *   *   
                  #   #         #     CORRECT     #         |     
                   # #          #                 #       \___/  
                    #           ###################               


Debugging errors

There is a separate wiki page, Debugging LVS, on suggestions for debugging errors. This is a very difficult problem sometimes, but it is usually a simple swap of nets or pins.