• 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. OCEAN script that identifies max settings

Stats

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

OCEAN script that identifies max settings

Adrian P
Adrian P over 13 years ago
Hello,

I am a student new to OCEAN. I am trying to optimize the gain of a multi-stage differential amplifier by finding the best combination of transistor parameters and biasing voltages. So far I have been using the following two approaches:

1) a. Run a parametric analysis of multiple variables using ADE
b. Plot gain of all outputs on a single graph
c. Visually identify the best curve and look at what combination of parameters produced it.

2) a. Run an OCEAN script that does the same parametric analysis and writes the output to a text document
b. Take the text document and extract the data
c. Analyze the data in MATLAB to identify the best curve and the settings that produced it

Ideally, I would like my OCEAN script to identify the max gain, and more importantly the settings that produced it. I know that the max command could be used to determine the max gain, but I can't figure out how to get the settings that produced the max. Any suggestions?

Thanks!


Here is the script I am referring to in approach 2) :

simulator('spectre)
design("/home/po/pope0828/simulation/ocean_testing/spectre/schematic/netlist/netlist")
resultsDir("/home/po/pope0828/simulation/ocean_testing/spectre/schematic")
modelFile('("/home/mo/morris/g045/gpdk045/../models/spectre/gpdk045.scs" "mc"))

analysis('ac ?start "1M" ?stop "100M" )

desVar("width" 200n)
desVar("fingers" 1)
desVar("voltage_a" 1.1)
desVar("voltage_b" 1.1)

temp(27)

paramAnalysis("width" ?values '(1.5e-07 1.6e-07 1.7e-07 1.8e-07 1.9e-07 1e-06) paramAnalysis("fingers" ?values '(1 2 3 4 5 6 7 8 9 10) paramAnalysis("voltage_a" ?values '(0.6 0.7 0.8 0.9 1.0 1.1 1.2) paramAnalysis("voltage_b" ?values '(0.6 0.7 0.8 0.9 1.0 1.1 1.2)))))

paramRun()

ocnPrint( ?output "./myoutput.txt" db20(VF("/net08")/VF("/net7")) ?precision 16 ?numberNotation 'scientific ?from 1M ?to 100M ?step 1M )
  • Cancel
Parents
  • Adrian P
    Adrian P over 13 years ago

    Thank you Andrew.

     I will experiment with xmax over the weekend and report back.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Adrian P
    Adrian P over 13 years ago

    Thank you Andrew.

     I will experiment with xmax over the weekend and report back.

    • 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