• 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. Integrating Perl with Ocean

Stats

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

Integrating Perl with Ocean

Inas Mohammed
Inas Mohammed over 8 years ago

Hello,

Please i need help with the following questions.

First i need to explain what i want to do: 

I have a Perl script which will generate a file contains variable values which will be used in the netlist to simulated. Then this netlist will be simulated using an Ocean script which will put the outputs in an output file. This output file generated by Ocean will be passed again to the Perl script to do some calculations on these values.

So my questions are:

1) Can we integrate Perl with Ocean in the mentioned sequence of operations?

if yes, then how?

If no, then what is the other way to  achieve the same goal.

2) How to pass files between perl and ocean?

3) Instead of passing the outputs from ocean again to perl to do some calulations, can we make it directly inside ocean then make the final output file of ocean contains the final needed values. I mean the normal testbench outputs are some currents, then i calculate the difference between the values before and after the layout. So can i make ocean do this calculation dierctly instead passing again to perl?

Your help is highly appreciated 

Thanks

Regards,

Inas

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

    I thought you already had this .txt file included in the netlist? If so, how? The file wouldn't be in the format you are suggesting here - it would presumably be a spectre "parameters" statement (see "spectre -h parameters") and you'd not include it with includeFile() in OCEAN because that's not supported with spectre.

    Normally when ADE or OCEAN starts spectre it (by default) runs in "interactive" mode. The idea being that if you run a simulation, then change a parameter (by calling desVar() again with different values) and then run() again, spectre does not need to exit, restart, re-read the netlist, re-checkout the license and then run; instead ADE/OCEAN sends the new variable/parameter value to the simulator in memory and it can re-run directly which is faster.

    However, if the existing spectre invocation is dependent upon some file which was included for which the contents have now changed, it won't see those contents (since everything is already in memory) - by forcing spectre to run in batch mode, each simulation starts the simulator from scratch and reads the files off disk again.

    Whether this makes sense or not depends on what you're doing - and your last reply suggests to me that you're not doing what you earlier said you were doing - so I think you need to clarify things.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    I thought you already had this .txt file included in the netlist? If so, how? The file wouldn't be in the format you are suggesting here - it would presumably be a spectre "parameters" statement (see "spectre -h parameters") and you'd not include it with includeFile() in OCEAN because that's not supported with spectre.

    Normally when ADE or OCEAN starts spectre it (by default) runs in "interactive" mode. The idea being that if you run a simulation, then change a parameter (by calling desVar() again with different values) and then run() again, spectre does not need to exit, restart, re-read the netlist, re-checkout the license and then run; instead ADE/OCEAN sends the new variable/parameter value to the simulator in memory and it can re-run directly which is faster.

    However, if the existing spectre invocation is dependent upon some file which was included for which the contents have now changed, it won't see those contents (since everything is already in memory) - by forcing spectre to run in batch mode, each simulation starts the simulator from scratch and reads the files off disk again.

    Whether this makes sense or not depends on what you're doing - and your last reply suggests to me that you're not doing what you earlier said you were doing - so I think you need to clarify things.

    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