• 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. ADEL check model files and paths

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 125
  • Views 14610
  • 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

ADEL check model files and paths

acook
acook over 12 years ago

Hello,

I would like to create a trigger that checks my model libraries and paths when I run a simulation. It would check the model paths as well as the model files. If they are not set to the EDA defaults, I would like a dialog box to come up warning me that I am simulating with a non-standard set of models.

The trigger would occur when I hit the run button in ADE. If that is not possible, it would run when I load an ADE state.

I've had time where I used my own models for weeks unknowningly because I had needed to make a change to the models at one point for one reason or another.

I am running CDS6

 Thank you,

Aaron

  • Cancel
  • acook
    acook over 12 years ago

    Let me rephrase into smaller peices:

    1. How do I create a trigger that will execture immediatly after I hit "run" in ADE?
    2. How do I get the information of which model files I have loaded from ADE into SKILL?
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    You'd need to insert a preFunc or postFunc to an existing "flowchart" step (or you could add another flowchart step, but probably easiest to do it something like the below). And use (say) asiGetModelLibSelectionList(session) (where session is what is passed into the trigger) to get the model files.

     

    /* abPostNetlistTrigger.il
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date       Sep 09, 2009 
    Modified   
    By         
    
    Example of defining a trigger to be invoked after netlisting.
    Works by adding a postFunc to the asiComposeSimInput flowchart step.
    
    for example:
    
    abDefinePostNetlistTrigger('spectre)
    abDefinePostNetlistTrigger('hspiceD)
    
    Could use similar code to define a preFunc trigger for the asiNetlist
    step - this would allow you to trigger before the netlisting.
    
    ***************************************************
    
    SCCS Info: @(#) abPostNetlistTrigger.il 09/09/09.14:38:50 1.2
    
    */
    
    procedure(abPostNetlistTrigger(session)
      let((simulator existingPostFunc)
        simulator=asiGetSimName(session)
        printf("TRIGGER: netlist Directory is %L\n" asiGetNetlistDir(session))
        printf("TRIGGER: psf Directory is %L\n" asiGetPsfDir(session))
        existingPostFunc=concat('abPostNetlistTrigger_ simulator)
        if(getd(existingPostFunc) then
          funcall(existingPostFunc session)
        else
          t
        ) ; if
      ) ; let
    ) ; procedure abPostNetlistTrigger
    
    procedure(abDefinePostNetlistTrigger(simulator)
      let((flow postFunc step)
        flow=asiGetFlowchart(asiGetTool(simulator))
        step=asiGetFlowchartStep(flow 'asiComposeSimInput)
        postFunc=step->postFunc
        ;--------------------------------------------------------------------
        ; Doesn't seem to be a postFunc for this step, but just in case,
        ; future proof it...
        ;--------------------------------------------------------------------
        when(postFunc && neq(postFunc 'abPostNetlistTrigger)
          putd(concat('abPostNetlistTrigger_ simulator) getd(postFunc))
        ) ; when
        asiChangeFlowchartStep(flow ?name 
          'asiComposeSimInput ?postFunc 'abPostNetlistTrigger
        )
      ) ; let
    ) ; procedure abDefinePostNetlistTrigger 
    

     

    • 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