• 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. Is there a way to add outputs/expressions into artist automatically...

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 145
  • Views 4065
  • 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

Is there a way to add outputs/expressions into artist automatically?

greatqs
greatqs over 14 years ago

I find adding many complex outputs/expressions manually would be
troublesome and not easy to maintain (i.e. I'm still using ic5141). I want to save all my
expressions (e.g. DC gain, phase margin ... ...) into a text file and
automatically update to artist session when they're modified.

 

thanks,
qs

  • Cancel
  • imagesensor123
    imagesensor123 over 14 years ago

     Hi,

       i am not very sure about your question, but if you want to add some expression or output signal into current session, you can refer to the analogArtist guide and user interface reference, there are some skill functions can meet your problem. or you can write some skill function to extracte these figure as you mentioned above during the simulation, mostly these functions will be OCEAN function.

    Regards,

    zfeng

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greatqs
    greatqs over 14 years ago

    imagesensor123 said:

     Hi,

       i am not very sure about your question, but if you want to add some expression or output signal into current session, you can refer to the analogArtist guide and user interface reference, there are some skill functions can meet your problem. or you can write some skill function to extracte these figure as you mentioned above during the simulation, mostly these functions will be OCEAN function.

    Regards,

    zfeng

     

    zfeng,

    Thanks for the reply. My problem is not how to add certain expressions into Artist and it is how to write skill code to let the Artist to automatically reload some existed expressions/functions store in a text file.

    I found edit complex expressions is more handy in a text file with syntax highlight instead of typing manually in Artist Output List Form and it is more easily to maintain.

    Besides, I'd like to have a central place to store favorite expressions/functions. So that I don't waste time on finding some used expressions by open different Artist sessions.

     

    Thanks,

    qs  

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

    This can't be done in IC5141 without private SKILL functions. In IC615 you can export the outputs to a CSV file and edit, and then re-load them. Or you have the expression editor in the calculator which you can use to remember a set of expressions. Or in ADE XL you can have an OCEAN measurement script attached which will do your calculations and then export one or more of them to the ADE XL outputs - so you can then have specifications associated with them.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • greatqs
    greatqs over 14 years ago

    Andrew Beckett said:

    This can't be done in IC5141 without private SKILL functions. In IC615 you can export the outputs to a CSV file and edit, and then re-load them. Or you have the expression editor in the calculator which you can use to remember a set of expressions. Or in ADE XL you can have an OCEAN measurement script attached which will do your calculations and then export one or more of them to the ADE XL outputs - so you can then have specifications associated with them.

    Regards,

    Andrew.

    Andrew,

    Thanks for your reply. In Skill Artist Manual, I found using "asiGetOutputList(asiGetCurrentSession())" can get skill structured objects for my saved expressions.

    However, I don't know how to write my private SKILL code to add/append this kind of objects.  Is there any detail on this kind of objects?

     

    Thanks,

    qs 

     

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

    The functions you need are private, as I said. Getting the outputs is public, but putting them back again is private.

    That's why I said it needed private (undocumented) SKILL functions.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • karis86
    karis86 over 9 years ago

    Hi Andrew,

    I have the same problem as mentioned above. I want to write a script that automatically adds the dc current of every dc supply in

    a testbench to the outputs in a ADE L session. So far I only found the "asiGetOutputList" function. Can you tell me the name of the private function and how it works to add stuff to the output list?

    Thanks

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

    No, because it wouldn't be private then! The whole point of functions remaining private is that if you start using them, there's some support implied, and then if we need to change something in the implementation, it might break.

    You could build a CSV file (as you get with Outputs->Export) and then you could do this (fairly yucky) way:

    /* abLoadADECSV.il
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date       May 12, 2016 
    Modified   
    By         
    
    Not a very pretty way of doing this, but there's no procedural
    interface, and hiEnqueueCmd/hiRegTimer don't seem to work because
    of the blocking nature of the dialog (I think).
    
    Example:
    
    abLoadADECSV(sevSession(hiGetCurrentWindow()) "." "dump.csv")
    
    ***************************************************
    
    SCCS Info: @(#) abLoadADECSV.il 05/12/16.09:51:05 1.1
    
    */
    
    procedure(abLoadADECSV(sevSess dirName fileName)
      let((tmpFile port)
        tmpFile=makeTempFileName(strcat(getTempDir() "/tempCSV"))
        port=outfile(tmpFile)
        fprintf(port "\\a sevImportOutputsFromFile('%s)\n" sevSess)
        fprintf(port "\\a hiFileDialogSetSelection(fileBrowser '(%L %L) 'done)\n"
          dirName fileName)
        fprintf(port "\\a hiFileDialogDone(fileBrowser t)\n")
        close(port)
        hiReplayFile(tmpFile)
        deleteFile(tempFile)
      )
    )
    

    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