5 Replies Latest reply on Jun 14, 2018 12:51 PM by chris_balcom

    How to get Calibre DRC to write out a GDS file


      I have a SKILL and DIVA DRC deck combination that automatically deletes DRC dirty fill pattern for metal only revisions.  Unfortunately it no longer works after IC6.1.5, so I am trying to "update" the flow to use Calibre DRC instead of DIVA.  I tried to follow the Calibre documentation, but I found it a bit on the confusing side.  Instead, I looked into the FILL generator Calibre DRC deck in an attempt to see how it is done.  This is a sample of what I came up with:





      DRC SUMMARY REPORT "FixFill.sum"



      LAYER M1_real 521 // Metal1 layer (drawing metal)

      LAYER MAP 31 DATATYPE 0 521          // Mapping (31;0) to 521 for M1i

      LAYER DM1_O       781 

      LAYER MAP 31 DATATYPE 7 781          // Mapping (DM1_O, 31;7) to 781 for OPC_M1i, OPC dummy metal

      LAYER DUM1 541 // dummy Metal1

      LAYER MAP 31 DATATYPE 1  541 // Mapping (31;1) to 541 for DUM1

      M1_keepout = SIZE M1_real BY .3

      M1_goodDU = OUTSIDE DUM1 M1_keepout

      M1_goodOD = OUTSIDE DM1_O M1_keepout

      Good_M1_Dummy {

      merge M1_goodDU


      DRC CHECK MAP Good_M1_Dummy 31 1 AUTOREF

      GOOD_M1_O_Dummy {

      merge M1_goodOD




      When I submit the job, I get the following error:


      ERROR: Error DCM8 on line 35 of /home/mlewis/bin/calibre/FixFill.drc - type of unspecified results database must match global type in this DRC CHECK MAP specification statement: Good_M1_Dummy.


      The line number corresponds to the first DRC CHECK MAP line.  I do not know what I am doing wrong, or not doing.  Please help me understand what this error is trying to tell me, and how do fix the problem.


      Thank you



        • 1. Re: How to get Calibre DRC to write out a GDS file

          This does seem odd. Indeed your DRC CHECK MAP does not specify the results database type but the default is GDSII which does match the type you specified in your global results database statement.


          Just in case it helps, you might try adding the keyword GDSII immediately before the layer and datatype numbers in your check map statement, then drop the AUTOREF keyword just to simplify the experiment. Just for the sake of morbid curiosity I might change only the first check map statement, the one on line 35, then run a quick test to see if the error shifts to the next check map line or goes away.


          Again, it doesn't seem to me that you should have to do either of these things but stranger things have happened and it just may help.


          • 2. Re: How to get Calibre DRC to write out a GDS file

            I changed the line to:


            DRC CHECK MAP Good_M1_Dummy GDSII 31 1


            I get the same error message.

            • 3. Re: How to get Calibre DRC to write out a GDS file

              Still seems very odd. A quick next step you could try is to simply add a filename such as test.gds to the end of your check map line. Then there should be no interaction at all with the global results database statement. Let's see how that goes.

              • 4. Re: How to get Calibre DRC to write out a GDS file

                That actually worked, and it progressed to the second line that I didn't change.  I have now changed both DRC CHECK MAP lines so they say:


                     DRC CHECK MAP Good_M1_Dummy GDSII 31 1 FixFill.gds

                     DRC CHECK MAP GOOD_M1_O_Dummy GDSII 31 7 FixFill.gds


                This creates the file FixFill.gds.  I noticed it does not make the "FixFill.sum" summary report though, I don't know if this matters.


                Since this seems to be odd behavior, should I investigate further, or leave it alone because it works? 


                Thank you very much


                • 5. Re: How to get Calibre DRC to write out a GDS file

                  Hi Michael,


                  Are you using Calibre Interactive GUI, possibly from the layout editor? If yes then that explains what you're seeing. The Interactive GUI starts from the rule file you wrote but it adds several basic statements (including the results database for instance) to create an _rules_ control file that is ultimately used  and those defaults aren't necessarily going to match what you have in your original rule file.


                  One way to account for that is to hit the "load" button in the GUI while the "Rules" tab is active and this will load your specific rule file settings into the GUI, overriding the GUI defaults that were causing the problem.


                  Another way to accommodate this is to be completely explicit with your check map statements (as in your last experiment) then the default GUI global results database statement won't matter.


                  With these things in mind the same explanations should help with the FixFill.sum issue you noticed.


                  Best regards,