• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Parameters Sweep in ADE-XL results in "netl err"

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 125
  • Views 8540
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Parameters Sweep in ADE-XL results in "netl err"

akak
akak over 7 years ago

I'm trying to use ADE-XL to sweep "length" for a resistor pcell.  I clicked "Parameters" in the "Data View" pane and I select a parameter to sweep in the schematic 

ADE-XL works correctly if:

  1. I don't set any Parameters
  2. Set a single value in the Parameters

ADE-XL results in "netl err" if:

  1. I set any type of specification for the parameter.
  2. The specific error in the log is: 

*Error* eval: unbound variable - ATS_CB_VALUES
\o ERROR (ADE-6029): Netlisting failed because of errors in callback 'ats130resCB('l)' associated with param 'l'
\o of the lib 'temp' cell 'temp3' view 'schematic' inst 'R0'.
\o To complete netlisting, ensure that all the errors are corrected.
\o End netlisting Jan 10 00:32:26 2018
\o ERROR (OSSHNL-514): Netlist generation failed because of the errors reported above. The netlist might not have been generated at all, or the generated netlist could be corrupt. Fix the reported errors and regenerate the netlist.
\o ...unsuccessful.
\e *Error* Error during netlisting of design for the point ID (16 1).
\e ("error" 3 t nil ("*Error* "))
\e
\e
\o
\o *Error* Error ID = 5012
\o *Error* Error Msg = Failed to create netlist.

Is there a way to get around this?

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    This is almost certainly a specific initialisation problem with the PDK you're using. It might be that the formInitProc is not being called and it needs to be for the callback to work. 

    I would suggest you contact customer support so that we can investigate further to confirm that is the case - I believe there is a way around this (I don't know the details off the top of my head - I'm checking though).

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to Andrew Beckett

    There is indeed a way of doing this (if it's the formInitProc issue that I think it is) but for various reasons the mechanism to fix it isn't documented (probably we want to be aware of anyone who needs it in case there are issues). So please contact customer support as I mentioned, and suggest to the application engineer that they consult internal article 11831138 for more details. If that's not clear, they can contact me internally.

    Thanks,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • akak
    akak over 7 years ago in reply to Andrew Beckett

    Thank you, Andrew. I will follow-up with Customer Support as you suggested.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • akak
    akak over 7 years ago in reply to Andrew Beckett

    Hi Andrew,

    Perhaps you are already in the loop on this, but according to Customer Support (case# 46233633), ADE-XL does not support pcell instance parameter sweeps.

    Did you have a work-around to allow ADE-XL to the pcell instance parameter sweep (that can be shared)?

    Or, is there a way to "fix" the pcell code to allow sweeps of pcell instance parameters?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to akak

    No, I wasn't in the loop. I just had a look at the case, but nowhere does it say you're using a pcell other than in the original description from you. Are you sure it's a pcell? The error to me looks as if it's just the formInitProc that isn't being called - not that the component is a PCell. A PCell is a specific kind of device where there is a schematic view (or symbol view) where the connectivity changes based on a parameter; in this case I think you have a normal component, probably - unless you know for certain otherwise.

    Rather than going back and forth to support any more, please can you try putting this in your .cdsinit :

    defun(nlBeforeInstanceCallbackRun (instid cdfgData cdfgForm)
      when(cdfgData->formInitProc
        funcall(concat(cdfgData->formInitProc) cdfgData)
      )
    )

    Then restart virtuoso and try doing the parameter sweep.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • akak
    akak over 7 years ago in reply to Andrew Beckett

    Thank you! Much appreciated. ADE-XL now completes the parameter sweep correctly.

    To answer your question: Yes, the resistor is a schematic pcell (I guess with callbacks, since pcell instance parameters change based on other parameters).

    Would you be able to explain your answer for my knowledge?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • akak
    akak over 7 years ago in reply to Andrew Beckett

    Thank you! Much appreciated. ADE-XL now completes the parameter sweep correctly.

    To answer your question: Yes, the resistor is a schematic pcell (I guess with callbacks, since pcell instance parameters change based on other parameters).

    Would you be able to explain your answer for my knowledge?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to akak

    The CCR that was filed for you was related to sweeping parameters on pcells which affect the structure of the underlying schematic pcell. If you have a schematic pcell, then each pcell parameter produces a different subckt in the netlist - this is for parameters that affect the connectivity - so for a resistor, it might be the number of segments in a series connected resistor. Other parameters might just get passed into the subckt and not affect the connectivity - and hence may work fine. 

    Because ADE creates the netlist once and then changes the parameter values for each point in the sweep, anything that requires a new subckt to be generated won't work - that's what the CCR is related to. Presumably you're not trying to sweep any parameter that requires it to netlist a different subckt - if you were, it wouldn't work.

    In your case it was failing because the CDF callback gets called for each point in the sweep, and it looks as if the CDF callback needs some additional data to be initialised in the formInitProc - this is something that normally gets called when you bring up the edit properties form on the component, and then the callbacks get called as each parameter is changed. The callback mechanism in ADE XL doesn't call the formInitProc, and so the code I provided is a special trigger that is called before the callback, and I've defined it so that it checks to see if there's a formInitProc and if so, it invokes it - hence providing the initialisation that was otherwise missing.

    Hope that helps.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • akak
    akak over 7 years ago in reply to Andrew Beckett

    Yes, definitely helps.Thanks!

    Sorry about the misunderstanding with the CCR - my issue was simpler. However, it would be nice to keep this CCR as it's possible I (or my fellow engineers) may sweep a parameter, such as "segments", that may affect the subcircuit netlist structure.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information