Home > Community > Forums > Custom IC Design > Not able to generate the antenna info for hard blocks

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 Not able to generate the antenna info for hard blocks 

Last post Fri, Feb 5 2010 11:56 AM by Quek. 13 replies.
Started by tswong 18 Jan 2010 10:12 AM. Topic has 13 replies and 3645 views
Page 1 of 1 (14 items)
Sort Posts:
  • Mon, Jan 18 2010 10:12 AM

    • tswong
    • Top 500 Contributor
    • Joined on Tue, Mar 17 2009
    • Posts 23
    • Points 445
    Not able to generate the antenna info for hard blocks Reply

    I've done the steps below to generate the antenna info on abstract generator, but it is fail so far..

    1) define the thickness and defaultantenna rule for electricalRules section on techfile.

    2) turn on the signal tab of Extract step

    3) define "drain" and "gate" for antenna calculation

    There is no error message during the generation, but it is still not able to find any antenna information at the exported LEF. I am not sure whether anything is missed. I wonder anyone could give me advise! 

    • Post Points: 20
  • Mon, Jan 18 2010 5:58 PM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,070
    • Points 16,280
    Re: Not able to generate the antenna info for hard blocks Reply
    Hi TS

    I think this is quite hard to debug without a testcase. It looks like you have already done the required steps. You can compare your setup against the tutorial setup as explained in this post. It should give you some hints on what went wrong. Maybe it would be good to submit a testcase to your local Cadence support.


    Best regards
    Quek
    • Post Points: 20
  • Tue, Jan 19 2010 5:20 AM

    • tswong
    • Top 500 Contributor
    • Joined on Tue, Mar 17 2009
    • Posts 23
    • Points 445
    Re: Not able to generate the antenna info for hard blocks Reply

     Quek,

    Actually I followed all the steps mentioned on the post for setup, but I have one thing that is not sure for defining the "drain" and 'gate" area for antenna calculation. The post mentioned that " The technology database or techfile should contain Poly and Diffusion layers" What is the actual meaning for this statement? By the way, I am running abstractor generation inside the DFII, is there any special thing need to do on the layer mapping?

    Regards, TS

    • Post Points: 20
  • Tue, Feb 2 2010 9:49 AM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,070
    • Points 16,280
    Re: Not able to generate the antenna info for hard blocks Reply

    Hi TS

    Sorry for the late reply. I think the recent forum technical issues caused some delays in quite a number of posts.

    No special layer mapping is needed. Check the layerRules section of your Virtuoso techfile. It should contain lines similar to the following:

    layerRules(

     functions(
     ;( layer                       function        [maskNumber])
     ;( -----                       --------        ------------)
      ( Poly                         "poly"          0            )
      ( Oxide                        "ndiff"         1            )
      ( Cont                         "cut"           2            )
      ( Metal1                       "metal"         3            )
    ...


    E.g. if your poly layer is named as "PC" and diffusion layer is named as "RX", then you need to define the following 2 lines in the antenna region box:

    PC and RX = gate
    RX andnot PC = drain

    If "Extract signal nets" is not enabled, please add the following lines to the box for "Layer assignment for antenna extraction":
    PC PC
    RX RX andnot PC
    yourContName yourContName

    If the above still do not work, please go to "File->Export->Options" and upload your options file as an attachment. Thanks.

    Best regards
    Quek

    • Post Points: 20
  • Tue, Feb 2 2010 12:42 PM

    • tswong
    • Top 500 Contributor
    • Joined on Tue, Mar 17 2009
    • Posts 23
    • Points 445
    Re: Not able to generate the antenna info for hard blocks Reply
    Quek,   I think I had already defined the function on the techfile you mentioned. Is it the same as yours? layerFunctions( ;( layer                       function        [maskNumber]) ;( -----                       --------        ------------)  ( POLY1                       "poly"       )  ( CONT                        "cut"        )  ( DIFF                        "ndiff"      )  ( NDIFF                       "ndiff"      )  ( PDIFF                       "pdiff"      )  ( METAL1                      "metal"      )  ( VIA12                       "cut"        )  ( METAL2                      "metal"      )  ( VIA23                       "cut"        )  ( METAL3                      "metal"      )  ( VIA34                       "cut"        )  ( METAL4                      "metal"      )  ( VIA45                       "cut"        )  ( METAL5                      "metal"      )  ( VIA56                       "cut"        )  ( METAL6                      "metal"      )  ( NWELL                       "nwell"      )  ( PWELL                       "pwell"      ) ) ;layerFunctions My options sets at abstract for antenna are as below: absSetBinOption( "Block" "ExtractAntennaHier"         "true")absSetBinOption( "Block" "ExtractAntennaSizeInput"    "true")absSetBinOption( "Block" "ExtractAntennaSizeOutput"   "true")absSetBinOption( "Block" "ExtractAntennaSizeInout"    "true")absSetBinOption( "Block" "ExtractAntennaMetalArea"    "false")absSetBinOption( "Block" "ExtractAntennaMetalSideArea" "false")absSetBinOption( "Block" "ExtractAntennaGate"         "(POLY1 (DIFF drawing and POLY1 drawing)) ")absSetBinOption( "Block" "ExtractAntennaDrain"        "(DIFF (DIFF drawing andnot POLY1 drawing)) (NDIFF (NDIFF drawing andnot POLY1 drawing)) (PDIFF (PDIFF drawing andnot POLY1 drawing)) ")absSetBinOption( "Block" "ExtractAntennaOxide"        "")absSetBinOption( "Block" "AbstractAntennaGSpecTable"  "")absSetBinOption( "Block" "ExtractDiffAntennaLayers"   "true")absSetBinOption( "Block" "ExtractAntennaLayers"       "METAL1 METAL2 METAL3 METAL4 METAL5 METAL6 CONT VIA12 VIA23 VIA34 VIA45 VIA56 POLY1 (NDIFF (NDIFF drawing andnot POLY1 drawing)) (PDIFF (PDIFF drawing andnot POLY1 drawing)) (DIFF (DIFF drawing andnot POLY1 drawing)) ")absSetBinOption( "Block" "ExtractAntennaGSpecTable"   "")absSetBinOption( "Block" "ExtractAntennaExcludeNets"  "") I also attached the chrarcterizationRules section, please check if there is anything missing for antenna generation.  characterizationRules( ;( rule                        layer1          layer2          value    ) ;( ----                        ------          ------          -----    )  ( sheetRes                    "POLY1"                 311      )  ( sheetRes                    "NIMP"                  59       )  ( sheetRes                    "PIMP"                  133      )  ( sheetRes                    "NWELL"                 927      )  ( sheetRes                    "METAL1"                        0.078    )  ( sheetRes                    "METAL2"                        0.078    )  ( sheetRes                    "METAL3"                        0.078    )  ( sheetRes                    "METAL4"                        0.078    )  ( sheetRes                    "METAL5"                        0.078    )  ( sheetRes                    "METAL6"                        0.0178   )  ( contactRes                  "NIMP"                  0.5324   )  ( contactRes                  "PIMP"                  0.484    )  ( contactRes                  "POLY1"                 0.37752  )  ( thickness                   "METAL1"                        0.53     )  ( defaultAntennaRule          "METAL1"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )  ( defaultAntennaRule          "VIA12"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )  ( thickness                   "METAL2"                        0.53     )  ( defaultAntennaRule          "METAL2"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )  ( defaultAntennaRule          "VIA23"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )  ( thickness                   "METAL3"                        0.53     )  ( defaultAntennaRule          "METAL3"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )  ( defaultAntennaRule          "VIA34"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )  ( thickness                   "METAL4"                        0.53     )  ( defaultAntennaRule          "METAL4"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )  ( defaultAntennaRule          "VIA45"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )  ( thickness                   "METAL5"                        0.53     )  ( defaultAntennaRule          "METAL5"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )  ( defaultAntennaRule          "VIA56"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )  ( thickness                   "METAL6"                        0.99     )  ( defaultAntennaRule          "METAL6"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 31624.0) (1 38000)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)     ) ) ;characterizationRules ) ;electricalRules I’ve done everything I knew…… 

    Regards, TS

    • Post Points: 20
  • Tue, Feb 2 2010 12:49 PM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,070
    • Points 16,280
    Re: Not able to generate the antenna info for hard blocks Reply

    Hi TS

    Thanks for the info. It is quite hard to read from your post because the sentences have all been joined up. Would you please upload your options file as an attachment?

    Thanks
    Quek

    • Post Points: 5
  • Tue, Feb 2 2010 12:52 PM

    • tswong
    • Top 500 Contributor
    • Joined on Tue, Mar 17 2009
    • Posts 23
    • Points 445
    Re: Not able to generate the antenna info for hard blocks Reply

    Not know what is happening to the text editor and all line spacing are gone. I resent the message again

     ============================================================

    Quek,

    Thanks for your reply!

    I think I had already defined the function on the techfile you mentioned. Is it the same as yours?

    layerFunctions(
     ;( layer                       function        [maskNumber])
     ;( -----                       --------        ------------)
      ( POLY1                       "poly"       )
      ( CONT                        "cut"        )
      ( DIFF                        "ndiff"      )
      ( NDIFF                       "ndiff"      )
      ( PDIFF                       "pdiff"      )
      ( METAL1                      "metal"      )
      ( VIA12                       "cut"        )
      ( METAL2                      "metal"      )
      ( VIA23                       "cut"        )
      ( METAL3                      "metal"      )
      ( VIA34                       "cut"        )
      ( METAL4                      "metal"      )
      ( VIA45                       "cut"        )
      ( METAL5                      "metal"      )
      ( VIA56                       "cut"        )
      ( METAL6                      "metal"      )
      ( NWELL                       "nwell"      )
      ( PWELL                       "pwell"      )
     ) ;layerFunctions

    My options sets at abstract for antenna are as below:

    absSetBinOption( "Block" "ExtractAntennaHier"         "true")
    absSetBinOption( "Block" "ExtractAntennaSizeInput"    "true")
    absSetBinOption( "Block" "ExtractAntennaSizeOutput"   "true")
    absSetBinOption( "Block" "ExtractAntennaSizeInout"    "true")
    absSetBinOption( "Block" "ExtractAntennaMetalArea"    "false")
    absSetBinOption( "Block" "ExtractAntennaMetalSideArea" "false")
    absSetBinOption( "Block" "ExtractAntennaGate"         "(POLY1 (DIFF drawing and POLY1 drawing)) ")
    absSetBinOption( "Block" "ExtractAntennaDrain"        "(DIFF (DIFF drawing andnot POLY1 drawing)) (NDIFF (NDIFF drawing andnot POLY1 drawing)) (PDIFF (PDIFF drawing andnot POLY1 drawing)) ")
    absSetBinOption( "Block" "ExtractAntennaOxide"        "")
    absSetBinOption( "Block" "AbstractAntennaGSpecTable"  "")
    absSetBinOption( "Block" "ExtractDiffAntennaLayers"   "true")
    absSetBinOption( "Block" "ExtractAntennaLayers"       "METAL1 METAL2 METAL3 METAL4 METAL5 METAL6 CONT VIA12 VIA23 VIA34 VIA45 VIA56 POLY1 (NDIFF (NDIFF drawing andnot POLY1 drawing)) (PDIFF (PDIFF drawing andnot POLY1 drawing)) (DIFF (DIFF drawing andnot POLY1 drawing)) ")
    absSetBinOption( "Block" "ExtractAntennaGSpecTable"   "")
    absSetBinOption( "Block" "ExtractAntennaExcludeNets"  "")

    I also attached the chrarcterizationRules section, please check if there is anything missing for antenna generation.

     characterizationRules(
     ;( rule                        layer1          layer2          value    )
     ;( ----                        ------          ------          -----    )
      ( sheetRes                    "POLY1"                 311      )
      ( sheetRes                    "NIMP"                  59       )
      ( sheetRes                    "PIMP"                  133      )
      ( sheetRes                    "NWELL"                 927      )
      ( sheetRes                    "METAL1"                        0.078    )
      ( sheetRes                    "METAL2"                        0.078    )
      ( sheetRes                    "METAL3"                        0.078    )
      ( sheetRes                    "METAL4"                        0.078    )
      ( sheetRes                    "METAL5"                        0.078    )
      ( sheetRes                    "METAL6"                        0.0178   )
      ( contactRes                  "NIMP"                  0.5324   )
      ( contactRes                  "PIMP"                  0.484    )
      ( contactRes                  "POLY1"                 0.37752  )
      ( thickness                   "METAL1"                        0.53     )
      ( defaultAntennaRule          "METAL1"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )
      ( defaultAntennaRule          "VIA12"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )
      ( thickness                   "METAL2"                        0.53     )
      ( defaultAntennaRule          "METAL2"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )
      ( defaultAntennaRule          "VIA23"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )
      ( thickness                   "METAL3"                        0.53     )
      ( defaultAntennaRule          "METAL3"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )
      ( defaultAntennaRule          "VIA34"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )
      ( thickness                   "METAL4"                        0.53     )
      ( defaultAntennaRule          "METAL4"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )
      ( defaultAntennaRule          "VIA45"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )
      ( thickness                   "METAL5"                        0.53     )
      ( defaultAntennaRule          "METAL5"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 2281.2) (1 2600)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)       )
      ( defaultAntennaRule          "VIA56"                 (20.0 _NA_ ((0 20) (0.202 20) (0.203 91.916) (1 158.33)) _NA_ _NA_ _NA_ _NA_ _NA_ NA_ _NA_)      )
      ( thickness                   "METAL6"                        0.99     )
      ( defaultAntennaRule          "METAL6"                        (_NA_ 400 _NA_ ((0 400) (0.202 400) (0.203 31624.0) (1 38000)) _NA_ _NA_ _NA_ _NA_ NA_ _NA_)     )
     ) ;characterizationRules

    ) ;electricalRules

    I’ve done everything I knew……

    Regards, TS

    • Post Points: 20
  • Tue, Feb 2 2010 12:54 PM

    • tswong
    • Top 500 Contributor
    • Joined on Tue, Mar 17 2009
    • Posts 23
    • Points 445
    Re: Not able to generate the antenna info for hard blocks Reply

    How to upload the file? I cannot find this function from the reply menu...

    • Post Points: 5
  • Tue, Feb 2 2010 12:57 PM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,070
    • Points 16,280
    Re: Not able to generate the antenna info for hard blocks Reply
    Hi TS

    This is the problem. Order of DIFF and POLY1 layers are reversed. It should be:

    absSetBinOption( "Block" "ExtractAntennaGate"         "(POLY1 (POLY1 drawing and DIFF drawing)) ")

    Please change it and see if it solves the problem. When you reply to a message, there are 4 tabs at the top ("Compose, Options, Related, Preview"). Click on "Options" and you will be able to upload the file.

    Best regards
    Quek


    • Post Points: 20
  • Tue, Feb 2 2010 1:09 PM

    • tswong
    • Top 500 Contributor
    • Joined on Tue, Mar 17 2009
    • Posts 23
    • Points 445
    Re: Not able to generate the antenna info for hard blocks Reply

    Quek,

    How to define the gate region if both pdiff and ndiff are existed?

    Regards, TS

    • Post Points: 20
  • Tue, Feb 2 2010 4:50 PM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,070
    • Points 16,280
    Re: Not able to generate the antenna info for hard blocks Reply
    Hi TS

    Use the "or" operator:

    POLY1 = POLY1 and (NDIFF or PDIFF)

    Remember to also add the following 2 lines in "Layer assignment for antenna extraction":

    NDIFF = NDIFF andnot POLY1
    PDIFF = PDIFF andnot POLY1

    Best regards
    Quek
    • Post Points: 5
  • Wed, Feb 3 2010 5:08 AM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,070
    • Points 16,280
    Re: Not able to generate the antenna info for hard blocks Reply
    Hi TS

    One correction:

    For "and" operation, the layer order does not matter. So this is also correct:

    POLY1 = DIFF and POLY1

    You have to also define connectivity in "General" tab of "Extract" step:

    (NDIFF METAL1 CONT)(PDIFF METAL1 CONT)(POLY1 METAL1 CONT)...

    Best regards
    Quek
    • Post Points: 20
  • Wed, Feb 3 2010 7:15 AM

    • tswong
    • Top 500 Contributor
    • Joined on Tue, Mar 17 2009
    • Posts 23
    • Points 445
    Re: Not able to generate the antenna info for hard blocks Reply

    Quek,

     I think we have moved a big step, some antenna info can be generated, But I am still confuse about the usage of "Layer Assignment for Antenna regions" and "Use different layer assignments for antenna calculations only" Could you explain more in details?

    For my case, 3 different type of diffusion are used, DIFF, NDIFF and PDIFF. should I define the gate and drain area as below:-

    "Layer Assignment for Antenna regions"

    POLY1 = POLY1 and (DIFF or (NDIFF or PDIFF)) -- GATE

    DIFF = DIFF andnot POLY1 -- DRAIN

    PDIFF = PDIFF andnot POLY1 -- DRAIN

    NDIFF = NDIFF andnot POLY1 -- DRAIN

    "Use different layer assignments for antenna calculations only"

    POLY1 POLY1

    NDIFF NDIFF andnot POLY1

    PDIFF PDIFF andnot POLY1

    DIFF DIFF andnot POLY1

    CONT CONT

    "Layer connectivity"

    (METAL1 METAL2 VIA12)(METAL2 METAL3 VIA23)(METAL3 METAL4 VIA34)(METAL4 METAL5 VIA45)(METAL5 METAL6 VIA56)(DIFF METAL1 CONT)(NDIFF METAL1 CONT)(PDIFF METAL1 CONT)(POLY1 METAL1 CONT)

    By the way, I notice antenna info for version 5.4 and version 5.5 are different. Do you know the details?

    Regards, TS

    • Post Points: 20
  • Fri, Feb 5 2010 11:56 AM

    • Quek
    • Top 10 Contributor
    • Joined on Wed, Oct 14 2009
    • Singapore, 00-SG
    • Posts 1,070
    • Points 16,280
    Re: Not able to generate the antenna info for hard blocks Reply
    Hi TS

    You need to define the layers that make up antenna regions "gate" and "drain" so that abstract generator can know the area of gates and diffusion. Otherwise, it would not be possible for it to give parameters such as "ANTENNAGATEAREA". : )  The antenna layers need to be assigned so that abstract generator knows the area and type of metals that are connecting to the gate and diffusion.

    I think your inputs for antenna regions and calculations looks ok. You should not have any problems now. There are indeed some changes in antenna info between lef5.4 and 5.5. I do not have all the details but if you look at $CDSHOME/doc/lefdefWN5.5/lefdefWN5.5.pdf, you will find that pg18 states that ANTENNASIZE section has been removed in lef5.5. This section used to contain ANTENNAINPUTGATEAREA, ANTENNAINOUTDIFFAREA and ANTENNAOUTPUTDIFFAREA parameters.

    Best regards
    Quek
    • Post Points: 5
Page 1 of 1 (14 items)
Sort Posts:
Started by tswong at 18 Jan 2010 10:12 AM. Topic has 13 replies.