Difference between revisions of "Running LVS"

From Vlsiwiki
Jump to: navigation, search
(LVS Options)
 
(15 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
== LVS Options ==
 
== LVS Options ==
  
To run LVS, select Calibre->Run LVS. Like the DRC setup, select the LVS rules file:
+
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.
  
/mada/software/techfiles/FreePDK45/ncsu_basekit/techfiles/calibre/calibreLVS.rul
+
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''':
  
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. Under the "Netlist" tab, select "Export from schematic viewer".
+
/projects/cmpe122/techfiles/FreePDK45/ncsu_basekit/techfile/FreePDK45.tf
  
There are several options when running LVS. If you go to NCSU->Modify LVS Rules, you will get this menu:
+
Then press OK and select Calibre->Run LVS. Like the DRC setup, select the LVS rules file:
  
[[Image:modifylvsrules.jpg|center|500px]]
+
/projects/cmpe122/techfiles/FreePDK45/ncsu_basekit/techfile/calibre/calibreLVS.rul
  
Some parameters you may want to change:
+
In the Input section, make sure you are comparing layout and netlist. It should be hierarchical.
  
If you don't have an ntap or ptap, you can add "Ignore FET body terminal".
+
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 force matching of sizes (a good idea), select "Compare FET parameters".
 
  
== Extract a schematic ==
+
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.
  
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.
+
[[Image:3-options.jpg|center|400px]]
  
 
== Running LVS ==
 
== Running LVS ==
  
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 as shown here:
+
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:
  
[[Image:lvsform.jpg|center|250px]]
+
                        #      ###################      _  _ 
 +
                        #        #                #      *  * 
 +
                  #  #        #    CORRECT    #        |    
 +
                    # #          #                #      \___/ 
 +
                    #          ###################             
  
After you run it, Virtuoso will return with a message that it has "successfully completed." This does not mean it passed, it means that it RAN! If it also displays "The net-lists match." like this:
 
  
[[Image:lvsmatch.jpg|center|250px]]
 
 
If it doesn't, you must check the log by clicking the "Output" button.
 
  
 
== 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.