Calibre Calibre nmDRC Recon: Simplifying your Early-Stage SoC Verification

IC Verification & Signoff


Calibre nmDRC Recon provides an automated solution to capture and analyze the common systematic violations at the early phases of the design stage and mitigate the impact of incomplete blocks. In this Calibre webinar, we will explore how to set up and run Calibre nmDRC Recon mode and use it to improve the SoC verification flow.


Screenshot 2023-10-19 085421.png


1. Thank you for all the questions during the webinar! Below are the answers.
2. If more support is needed for any of the issues you are facing, please open a support case at

Q) From the webinar, I understand that Recon is not technology-dependent and works with foundries, but are there some statistics that show that for some technologies it works better than others? 
A) Calibre nmDRC RECON is design agnostic and it works consistently regardless of any node, or foundry deck. Also, the setup is very straightforward for all of them and is done similarly for all foundries and nodes.  

Q) Based on your experience what are the commonly used technologies for Recon? For ex. I think the 40nm design is probably not big enough or complex enough to use Recon. 
A) As technology is rapidly developing and becoming more complex from node to node, users are usually starting to use RECON more with advanced nodes like 10, 5, and 3nm but this doesn't mean that you cannot run it with other nodes as well. 

Q) What is the difference between DRC UNSELECT CHECK and DRC RECON REMOVE CHECK? Why do I need the DRC RECON REMOVE CHECK if I have the UNSELECT CHECK command? 
A) You can use the UNSELECT CHECK statement to remove a check from the list of checks, that will be later used for a Recon run. Afterward, on the same list of checks, RECON ADD CHECK and RECON REMOVE CHECK will be applied. In the case of running Recon Inverse, this list will be converted, and you can also use the pre-defined Recon categories. Recon can be used to select or unselect predefined categories and it doesn’t require knowing the check names. 

Q) How to debug Calibre nmDRC Recon results, are there any special techniques? 
A) The results from a Calibre Recon run are similar to a normal run, so you can follow the same debugging and fixing flow that you use in your established verification process. 

Q) During the demo and the presentation, the main accent was on the DRC Recon, I am interested if there is a possibility to also run Recon with LVS. 
A) Sure, the Recon can also be used with Calibre nmLVS runs. Calibre nmLVS Recon runs can be performed using a regular LVS circuit extraction rule file or on data in an existing Mask SVDB Directory. Also, for nmLVS Recon single- and multi-threaded run modes are supported.  
This is the webinar link for nmLVS recon: Calibre nmLVS Recon: Your Guide to Short Isolation ( 

Q) Is it meaningful to run DRC recon in very late design phases as well? 
A) If after modifying the design you don't want to go over all checks and execute a full DRC run, but you want to be sure that your modifications don't cause any issues with the basic checks, you can run RECON, instead of full DRC, as it is vital first to make sure that your change doesn't cause any problems with the basic checks and, after that, if everything is OK, then you can move to the full sign-off run. 
Most of our users are using Recon in the very early phases where the design is very dirty, but some users are just running it at late phases of the development, after any modifications to make sure that there are no problems caused by them. 

Q) Can DRC Recon be used for a flat mode as well? 
A) The DRC Recon engine is intended to be usedwith hierarchical DRC mode only. So, you cannot use it for the flat runs.  

Q) What if I use DRC UNSELECT CHECK and DRC RECON REMOVE CHECK for the same check? 
A) If you use the DRC UNSELECT CHECK and DRC RECON REMOVE CHECK for the same check, you will get a compilation error. The message will tell that the check specified with DRC RECON REMOVE CHECK is not a rule check. 
This is because if the check is unselected with the DRC UNSELECT CHECK statement, it is removed from the DRC check’s list, so it can’t be used afterward in any Recon command. 

Q) What if I write the same group with DRC RECON ADD CHECK and DRC RECON REMOVE CHECK? 
A) All of the ADD statements are processed first by the tool, and then the remove statements are executed, so it is possible for a remove statement to disable a check that is enabled by an ADD statement. 

Q) You mentioned that it is possible to select only part of the checks for recon run. How this can be done? For example, if I have 100 checks but only want to run 50 them? 
A) As we’ve mentioned during the presentation Calibre engine turns off rules that are known to run slowly and which provide results that are not helpful in identifying systemic issues. 
These rules generally fall into three categories. 
  • Rules that require significant scope. For example, the antenna issues. 
  • Rules requiring connectivity checks. 
  • Or other checks, such as multi-patterning, and coloring checks.  
  • Also, the ones that tend to flatten the design and slow down the run. 
When you are running the Recon without making any modifications, the tool is running the job in the DEFAULT mode, and turning off the above-mentioned checks, reducing the total number of the rule checks executed.  
If you want to remove specific checks from the processing, you can use the DRC RECON REMOVE CHECK with its additional keywords, allowing you to filter checks by group, layer, etc.  

Q) Can we use runsets for the DRC Recon run, in a similar fashion to the full DRC run? 
A) Sure, you can use the runset files similarly for the recon runs, as you are doing it for the DRC runs, both from the batch mode and from the Calibre Interactive.  

Q) Do we need a specific rule file for running the RECON on our design?  
A) Calibre nmDRC Recon automatically executes a subset of rule checks in a rule file. The  
Prerequisites for running nmDRC Recon are layout design, a rule file, and a sufficient number of licenses.   

Q) If I run a recon with version 2022.1.1, and then run Recon inverse with 2023.1.1, for example, would there be a potential issue that a rule can be missing or duplicated? 
A) If you are running the Recon and Recon inverse with 2 different versions, there will not be any conflicts between these 2 runs, however, we recommend running with the version that is indicated by the foundry as the qualification and signoff version. 

Q) Are the default recon select rules always consistent with different Calibre release versions? 
A) There are certain sets of checks that are being executed during the default Recon run. From Calibre version to version, the Recon engine improves, however, the default rule checks are staying consistent, as they are designed to exclude checks requiring a global scope, connectivity, or other checks (such as multi-patterning, pattern-matching, etc.).  

Q) Recon requires additional licenses, correct? 
A) Calibre nmDRC Recon requires a Calibre RealTime Digital license and sufficient Calibre nmDRC/Calibre nmDRC-H license pairs for the run configuration. Also, for running Calibre nmLVS Recon in addition to the usual licenses used for LVS, a Calibre nmLVS Recon license is required. 

Q) After modifying the set of checks using DCR RECON ADD.... is it possible to report the checks that are active and which ones are inactive? 
A) You can find information about all the checks executed in the transcript file, which will give you information about what checks were executed, and which ones were skipped.  

Q) Hi, there are no dependencies on how the Foundry Calibre deck file is written, thanks.  
A) Yes, you can use Recon with any foundry/node, and it doesn’t require any additional setup or rule file modifications.  

Q) Maybe I missed it, as I joined later. But why the number of -recon inverse results is different from the normal DRC run? 
A) We can think about the Recon run, as a DRC run divided into 2 parts: RECON and RECON Inverse.  Recon executes only those checks, that are meaningful for the early stage of verification and skips the rest of the checks, giving you the advantage to reduce the runtime and memory consumption, and making the debugging easy. However, to guarantee the full coverage of your design with DRC checks, once you are satisfied with the RECON run results, you will perform a Recon Inverse run, which will execute all those checks that were excluded from the Recon run.  

Q) Who defines which rules to check? 
A) The Recon’s smart engine automatically selects checks that are meaningful to execute at the early stage of your verification, skipping those checks that are global in scope, require connectivity, and others, such as multi-patterning, pattern-matching, etc. However, if you are interested in the specific check or group of checks you can add or remove them by using DRC RECON ADD or DRC RECON REMOVE CHECK statements, with the appropriate keyword.  

Q) If I disable a layer check does that disable all checks with the disabled layer in the rule? 
A) If you are excluding checks with DRC Recon Remove Check BY Layer, all those checks that are associated with the specified layer will not be executed during your Recon run. Also, please note that the REMOVE statements are processed after the ADD statements, so even if you have checks associated with the same layer in the ADD statements, they will be excluded from the run.  

Q) If you do not have many CPUs is the speed-up still as good?  We do not have many licenses.  
A) As during the RECON run, almost half of the checks are being excluded from the run, even if you don’t have many licenses, the difference in runtime and memory consumption will be significant. But it will definitely achieve better performance compared to a standard nmDRC run.

KB Article ID# KB000129453_EN_US



Associated Components

Calibre nmDRC Recon