3 Replies Latest reply on Mar 30, 2018 2:21 PM by samantha_lizak

    Any body knows how to translate this extractDevice from Assura LVS to Calibre SVRF??

    aghany85

      Hi,

       

      I need to translate the following code from Assura LVS to Calibre SVRF:

       

      extractDevice("xnmos"
      _ngate_nmos6_swap nplus_term("d") poly_connect("g") nplus_term("s")
      ptub_connect("b") epi("ew") psub2("sub") _physical_
      _bulkLayers_(ptub_connect epi psub2)  _cellView_("xnmos
      ivpcell spt7")  _flagMalformed_)
      
      term1area=measureParameter(area (nplus_term))
      term1perimeter=measureParameter(perimeter (nplus_term))
      ads=calculateParameter(term1area*0.0000000000001)
      attachParameter(ads ("as" "s") ("ad" "d") _ngate_nmos6_swap shared)
      pds=calculateParameter(term1perimeter*0.0000001)
      
      attachParameter(pds
      ("ps" "s") ("pd" "d") _ngate_nmos6_swap shared)
      
      saveProperty( _ngate_nmos6_swap "dtype" "mn6" )
      saveProperty( _ngate_nmos6_swap "m" 1 )
      saveRecognition( _ngate_nmos6_swap ( "frame" "drawing" ) )
      
      mn6_wa =
      measureParameter( length (_ngate_nmos6_swap butting nsource_drain)  0.5)
      mn6_a = measureParameter( area (_ngate_nmos6_swap))
      mn6_l = calculateParameter(( mn6_a / mn6_wa ) * 0.000001)
      mn6_w = calculateParameter( mn6_wa * 0.000001)
      
      attachParameter( mn6_w "w" _ngate_nmos6_swap )
      attachParameter( mn6_l "l" _ngate_nmos6_swap )
      
      saveProperty( geomOverlap( _ngate_nmos6_swap frame_match )
      "matching" "on" )
      saveProperty( geomAvoiding( _ngate_nmos6_swap frame_match )
      "matching" "off" 
      

       

       

      Few particular questions:

      1. Is there a Calibre SVRF translation for cellView() together with

      saveRecognition()

      used above ? If not, so how should I treat them?

      2. It seems from pin names and device name that it's a MOSFET,

      but there're differences between it and the normal MOS, so should it be

      translated as DEVICE

      M(xnmos) or any other name but not 'M' ?

      3. How can I identify auxiliary layers (if any) in general,

      and in the above piece of code particularly as an example to other

      cases in the deck?

      4. What are the corresponding DEVICE operation

      equivalent secondary keywords corresponding to Assura: physical, bulkLayers, and flagMalformed ?

      5 In some other devices, they used something like: nameParameter(width "w"),

      how to map to SVRF?

       

      Another question about the translation of: geomButting(A B keep limit)

       

      If I translated it without keep limit,  I would translate it as follows: WITH EDGE A (COIN OUT EDGE A B)

      With keep limit specified, I tried to add the constraint to WITH EDGE as is, but the output is polygons having number of edges falls within the specified range, whereas it must be number of polygons not edges...

       

      So how should it be translated?

       

      The same scenario for geomOverlap(A B keep limit )

      I've translated it (without keep limit) as: A NOT OUTSIDE B

       

      I don't know how can it be translated if keep limit exists?

       

      Thanks a lot an best regards,

        • 1. Re: Any body knows how to translate this extractDevice from Assura LVS to Calibre SVRF??
          banderson

           

          I may be able to shed some light as I am in the process of doing assura to calibre conversions as well.

           

           

           

           

           

          Try the utility called  assura_cvt, it is located in a path such as

           

           

          /tools/calibre/2008.2/ixl_cal_2008.2_11.12/shared/pkgs/icv.ixl/tools/misc

           

           

           

           

           

          usage is  assura_cvt -r assura_extract.rul -o calibre_lvs.rule

           

           

           

           

           

          It is not great, but it is s start.

           

           

           

           

           

          Since your device is a mos, why not use  extractMOS in Assura rather than extract device for generics?

           

           

           

           

           

          Let me give you an example:

           

           

           

           

           

            extractMOS( "N" NL_RVT gate tndif PWELL cellView( "your path to pcell library" ) flagMalformed )

            area_N = measureParameter( area (NL_RVT)  1e-12  )

            width_N = measureParameter( length (NL_RVT butting tndif) 0.5e-6  )

            nameParameter( width_N "w" )

            length_N = calculateParameter( area_N/width_N )

            nameParameter( length_N "l" )

           

           

          The equivalent in Calibre is

           

           

           

           

           

          DEVICE MN(N) NL_RVT poly(G) tndif(S) tndif(D) PWELL(B) [

             property W,L

             W=(perimeter_coincide(NL_RVT, tndif ) + perimeter_inside(NL_RVT, tndif)) / 2

             L=area(NL_RVT) / W

          ]

          TRACE PROPERTY MN(N)    L L 1.2

          TRACE PROPERTY MN(N)    W W 2.3

           

           

          1.2 is the 1.2 tolerance mismatch for L in lvs, and so on

           

           

           

           

           

          If you have to run many calculations in the extract device, then generically, it looks like

           

           

          DEVICE M(xnmos) layer1operation layer2operation layer3operation and so on [ property A, W, L and so on

           

           

          A = area(layer1operation)

           

           

          W =  (perimeter_coincide(layer1operation, layer2operation) + perimter_inside(layer1operation, layer2operation)) / 2

           

           

          L = A / W

           

           

          and then add more operations and caluculations here as long as any variable used here is defined above on the property line such as

           

           

          you don't have to use the calculate parameter or anything- just A = B * C / 2 and so on

           

           

          ]

           

           

          TRACE PROPERTY M(xnmos) L L 1.5 and so on for any property that you want compared with a tolerance

           

           

           

           

           

          all of your auxiliary layers are defined before you go into the DEVICE block. Things like malformed and cellview are not needed.

           

           

          I don't know about using limits yet. For  geomButtOrOver, I use INTERACT. When in doubt, you have to create another layer operation.

           

           

           

           

           

          In your travels, if you know how to convert VDD! and GND! from Virtuoso into cdl netlist for use with calibre to act as variable for

           

           

          multiple power supplies, please let me know. Thanks.  Best regards, Brien

           

           

           

           

           

          1 of 1 people found this helpful
          • 2. Re: Any body knows how to translate this extractDevice from Assura LVS to Calibre SVRF??
            tan.tran

            Hi Anderson,

              I'm looking for this assura_cvt in my calibre installation directory and I have 2018 version but could not find it....Could you guy help me to find it?

             

            Thanks

            Tan

            • 3. Re: Any body knows how to translate this extractDevice from Assura LVS to Calibre SVRF??
              samantha_lizak

              Hi Tan-

               

              I checked Support Center, and it appears that the converters were withdrawn because of laws regarding IP.  (There used to also be ones for Hercules and Dracula conversion.)

               

              The official recommendation now is that your foundry's PDK should have equivalent rule files for Mentor products.

               

              Sorry I couldn't be more helpful-

               

              Sam.