• 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. Post layout simulation using Ocean Script

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 125
  • Views 15634
  • 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

Post layout simulation using Ocean Script

Ishant Anand
Ishant Anand over 7 years ago

Hello,

I want to run the post layout simulation using ocean script. But i am not able to find the keywords that i need to include in my ocean script to do post layout simulation.

I would be very thankful if you can help with this.

  • Cancel
  • Saloni Chhabra
    Saloni Chhabra over 7 years ago

    Hi Ishant,

    I assume you have a postlayout netlist ready and you are only looking to add Spectre/APS options like +postlayout to the run. Is that right?

    Regards,

    Saloni

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ishant Anand
    Ishant Anand over 7 years ago in reply to Saloni Chhabra

    Yes Ma'am,

    I have postlayout netlist which includes PEX- RC component, now I'm  looking for ocean command that allow me to do the postlayout simulation using script.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Saloni Chhabra
    Saloni Chhabra over 7 years ago in reply to Ishant Anand

    Hi Ishant,

    If you have an ADE-L state correctly setup to run a postlayout simulation, you can go to Session -> Save Ocean script and save Ocean script ( let's say you give it the name 'postl_run.ocn') . Then, you can run the same script on the command-line as:

    ocean < postl_run.ocn

    Are you looking to do anything more on the command-line? There is a document on Ocean command reference which you can refer to for more details, or ask us.

    Regards,

    Saloni

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ishant Anand
    Ishant Anand over 7 years ago in reply to Saloni Chhabra

    Ma'am,

    If anyone wants to do the postlayout simulation, then we need to go to Environment and Include Calibre there after that when we run it , it do the post layout simulation.

    I did it earlier what are you suggesting but it is creating normal ocean script without including command to do the post layout simulation. I saw the manual too but couldn't  be able to see such command that do this task.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ishant Anand
    Ishant Anand over 7 years ago in reply to Ishant Anand

    Ma'am, Got the solution thanks.

    Once you have included calibre in the environment and run the simulation for once in GUI it automatically includes RC(PEX) in netlist. We don't need to write any extra command in ocean script to do this task, it will automatically do the post layout simulation .

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Dimitra Papazoglou
    Dimitra Papazoglou over 7 years ago in reply to Ishant Anand

    Hi Ishant,

     It’s not very clear to me what you mean by saying ‘we need to go to Environment and Include Calibre there'. I’m assuming that you have an extracted view and you include it in the ‘Switch View List’ in Environment Options form (Setup->Environment in ADE-L). If so, with the way you follow -run simulation in ADE-L which generates the netlist and then create the ocean script-  then the ocean script has the following command e.g:
    design( "/home/dimitra/simulation/adc_sample_hold_sim/spectre/schematic/netlist/netlist")
    The above command points to the netlist that was created when you run the simulation. But What if the extracted view or anything else in the design is being modified? 
    To make sure that the netlist is always up to date then you need to replace the netlist and its directory inside the design() with the Library, Cell and View name of your testbench as shown below:
    design( LibName CellName ViewName) 
    With this way the run() command inside the ocean script runs first incremental netlisting and then starts running the simulation - like ‘Run' button in ADE does.
     
    Regards,
    Dimitra
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Ishant Anand
    Ishant Anand over 7 years ago in reply to Dimitra Papazoglou

    Hi Dimitra,

    Yes, I have included the extracted view and included it in the 'Switch View List' as you mentioned. As far as i have understood and verified till now is that when you include the extracted view and run the simulation, then it will include the Parasitic information( RC information related to layout) in the netlist itself. That means the netlist that has been generated after including the extracted view has not only the design information but also the Resistor and capacitor information associated with each node. So, for doing post layout simulation, we don't need to write any extra command in our ocean script,as netlist has already information about the parasitic.
    And When you run the simulation, netlist keep on modifying itself. Please correct me if i am wrong somewhere.

    As you have mentioned "design( LibName CellName ViewName) ".Yes i have used it too earlier to generate the netlist of design without opening the GUI view of design. I was wondering if there is any ocean command that generate the netlist after including the extracted view, without opening the GUI view??

    Regards,

    Ishant Anand

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Dimitra Papazoglou
    Dimitra Papazoglou over 7 years ago in reply to Ishant Anand
    By netlisting the extracted view then it creates the netlist with all RC information so yes you don’t need an extra command in your ocean script. 
    If I understand your question correctly, you can use the createNetlist() ocean command to generate the netlist. To make sure the extracted view is taken into account you need to use the ‘switchViewList arg inside envOption() and include the view there - like you do in ’Switch View List’ in ADE . An example is shown below:
    envSetVal("asimenv.startup" "projectDir" 'string "./mySpectreExtrNetlists")   ;; to set the location where you want the netlist to be created 
    simulator( 'spectre )
    design( "ether_adc45n_sim" "adc_sample_hold_sim" "schematic_diffGainAcGainBW")
    modelFile( 
        '("/sprt/scratch/dimitra/RAP_workshop_616/WORK/tech/GPDK045/gpdk045_v_3_5/gpdk045/../models/spectre/gpdk045.scs" "tt")
    )
    envOption(
    'switchViewList  list("spectre" "cmos_sch" "cmos.sch" "schematic" "av_extracted1" "veriloga") 
    )
    createNetlist()
    Regards,
    Dimitra
    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Ishant Anand
    Ishant Anand over 7 years ago in reply to Dimitra Papazoglou

    Hello Dimitra,

    Sorry for replying after so many days. Yes your solution worked. Thank you so much for your help.

    Regards,

    Ishant Anand

    • 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