• 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 4066
  • 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
Parents
  • 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
Reply
  • 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
Children
No Data

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