• 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 SKILL
  3. Default (or script) ADE Stimuli

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 143
  • Views 16425
  • 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

Default (or script) ADE Stimuli

meland
meland over 12 years ago

Hello All,

I am wondering if there is a way to either alter the default ADE stimuli or change it through script. I would prefer if all of my stimuli would default to a 0v DC source which is enabled. 

I suspect that this is done in some way through the asi function calls in the ADE L Skill reference manual, but I'm not able to figure it out. I have some level of skill experience, but I have never skill scripted anything with the ADE.

I work in both cadence 5.1.41 and 6.1.5, but if there is not an easy method for cadence 5 that is fine.

Perhaps my overall approach is flawed though and there is a better way of doing what I want. My overall goal is to more easily set up and test at higher levels where there are potentially hundreds of stimuli. I haven't found a way which works well for doing this. Going through and editing one by one is quite tedious. I tried vector files, but I couldn't do anything bigger than a 4 bit bus . I had issues scripting a general stimuli file (An issue I had scripting the two of these was getting cadence to return the pins with the buses expanded and keeping reference to the pin direction). I could also do AMS, but I do not know an easy way to set up AMS and have never gone down that road. Note, I do not have an ncverilog license available

Some direction on how to go about this would be great.

Thanks,

-Matt

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Matt,

    There doesn't appear to be any public SKILL interface to set the graphical stimulus (assuming that's what you're talking about). There's an API to get the setup (asiGetStimulusInputs), but no public API to set it. You should contact customer support to request this.

    Alternatively you could programmatically create a schematic testbench which instantiated 0V voltage sources connected to all the input pins of your device under test?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • meland
    meland over 12 years ago

    Thanks Andrew, that is indeed what I was wondering.

     The knowledge of this is definitely helpful so I don't keep trying to find a command that doesn't exist. Seems to me like something that could/should. I have filed a request as recommended. 

    It's true, I could do something like that. There are obviously some downsides. I think I'll take another stab at scripting a stimuli file for now. 

     Thanks,

    -Matt

    P.S.

    I'd like to thank you for all of your contributions to this community. I've been using this site for the last several years and you have answered many questions of mine in that time.  I can tell you have a deep understanding of the innards of Cadence. So for all of the threads where OP was rude or never thanked you, I say thanks. 

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • meland
    meland over 12 years ago

     SOLVED:

     A solution has been provided for the above request by Amit Sanadhya  at Cadence under case# 45471469

    "

    Please try following:

     

    1. 1. Load below code in CIW.

     

    ;; ==== from below ====

     

    procedure(CCSStimuliOptions()

    let((formId)

        formId = hiGetCurrentForm()

        foreach(choice formId~>artStmBox~>choices

           formId->artStmBox->value = list(choice)

           formId->artStmEnabled->value = t

           formId->artStmTranType->value = "sin"

           formId->dc->value = "2"

           artStmChangeCB(formId)

        );foreach

    t

    ) ;let

    ) ;proc

     

    ;; ==== till above ====

     

    2.2.  Open the  “Setup Analog Stimuli” form (Setup->Stimuli…)

    3    3.  Enter following in CIW => CCSStimuliOptions()

    "

    This solution works exactly as I was hoping. (note the above creates a sine source with dc of 2v, but is easily modified for a dc source of 0v)

    Thanks to all,

     -Matt

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Matt,

    I'd not realised that you were OK with having something that worked with the form open - otherwise I might have suggested something similar myself. I thought that you were after something that did it automatically when ADE opened.

    That said, the code involves some private functions (and also some private form fields) - so there is a risk that the behaviour might change in future releases. So be warned...

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • meland
    meland over 12 years ago

     Hi Andrew,

     Sorry my first question was misleading. I'll try to be more clear in the future. I consider myself warned as far as using private functions.

     I have a follow up question. The code which I've provided works great for me when there are just a few input signals. However, it appears that this solution has some kind of memory leak issue. I tried running this on a block with 100 pins and the first few run fine, but each progressive setting of a stimuli takes slightly longer and longer. I noticed when it was approximately half way through the list it was taking ~6 seconds per stimuli. And it would just get longer to the point where the best thing to do is walk away for a little. 

     Is there some way around this that might not take as long? It seems the issue is with the line 'formId->artStmBox->value = list(choice)' but I'm not sure any other way of doing this. 

     Any idea what is going on here?

     Thanks,

    -Matt

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • meland
    meland over 12 years ago

     Slight update:

    I've tried several things to solve this to no avail. I tried moving everything in the foreach loop to a separate procedure hoping I could trick it into releasing whatever was holding it up. I tried using the function call  when I hit apply button ( _hiFormApplyCB(artStmStimuliFormXX) ) opposed to the artStmChangeCB function. And several other more desperate attempts not worth mentioning.

    Finally and surprisingly, after having waited 5-10 minutes for my stimuli to be set I got very annoyed with it and went to my CIW window and started bashing on CTRL-C. Tada!! I got many errors in my CIW stating  "*Error* parser: terminated by signal while reading input", but it then just quickly went through all of my stimuli changing them how I was wanting.

     This DOES work. However, it is obviously not clean at all. Seeing as how I was hoping to distribute this to colleagues I was wondering if there was a better way of doing this, or if I should try contacting customer support about this issue again.

     Thanks,

    -Matt

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Matt,

    I'd go back to customer support. I don't think the solution was particularly great as it relied on private functions anyway... (but there may be no alternative unless an enhancement CCR is filed and implemented).

    I would be rather cautious about everything being correct if you've interrupted it with control-C.

    Kind Regards,

    Andrew.

    • 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