• 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. IC614 netlist and openaccess

Stats

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

IC614 netlist and openaccess

wighou
wighou over 14 years ago

 Hello,

Could explain what is the relation between the netlist and openaccess. Using IC614, I have two files sch.oa and verilog.ams in the folder of my cellview. Is it possible to read and modificate the sch.oa with a tool of database gestion. Is this file used to generate the schematic ? The verilog.ams is generated during the netlisting ?

 Thanks in advance

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago

    The verilog.ams netlist is produced by the cell-based AMS netlister, and can be enabled (via Tools->AMS->Options in the CIW) to netlist at check-and-save time. It can also be produced when using other tools in the AMS flow. It is a netlist of the design in that specific schematic. The "sch.oa" file is the OpenAccess database storing the schematic - the physical information and connectivity in the schematic.

    I don't know what "a tool of database gestion" means.

    Andrew.

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

    Sorry for "tool of database gestion" :). I meant a database administrator tools, a tool other than the schematic editor that edit the sch.oa. Because, after parasitic extraction for example, the schematic editor is very difficult to work with, because of the high number of components.

    Thanks Andrew

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

    You could use SKILL functions to edit the database?

    Andrew.

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

     SKILL function is a scripting language, isn't it ? It will not allow me to see the sch.oa as a list of component interconnected and modify one of them if I need. 

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

     Yes (it's actually a full featured programming language). It will allow you to access all the components, how they are interconnected, and change one if you need. Of course, you have to have some knowledge of the language, but there is lots of documentation on SKILL and many examples on Cadence Online Support - http://support.cadence.com

    And many examples in this forum (this forum is the Cadence IC SKILL forum after all)

    Regards,

    Andrew.

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

     Hi Andrew,

    Could you explain me how to change the resistance value of all the resistors (analogLib) of a schematic to a unique value x please ? I have to use Skill Development Environment to make this ?

    Regards

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

    Hi

    I progressed in my skill study.

    I used the following procedure that I encountered on the web and tried to modify it to change all "p_res" in my schematic to 1e-6 ohm :

    procedure(cb(lib cell)
    ;let will allow you to access the cv and newlabel variables outside
    ;of this procedure
    let((cv newLabel)
    ;open the cellview as a database object and assign it to cv
    cv = dbOpenCellViewByType(lib cell "schematic" "" "a")
    ;for loop to go through all instances in this cellview
    foreach(instance cv~>instances
    ;open the property window -- this will display the window!
    geSelectObjectNoFilter(instance)
    ;check the cellname and change the bulk node (bn) property
    if(schObjPropForm->cellName->value == "p_res"
    then
    schObjPropForm->r->value = "1e-6"
    )
    ;close the form
    hiFormDone(schObjPropForm)
    geDeselectAll()
    );end foreach
    );end of let
    );end procedure

     But I obtain the error :

     ...

    db:0x160809cf db:0x160809cd db:0x160809cc db:0x160809cb db:0x160809c8

    db:0x160809c7 db:0x160809c5 db:0x160809c4 db:0x160809c2 db:0x160809c1

    db:0x160809bf db:0x160809be db:0x160809bc db:0x160809ba db:0x160809b8

    db:0x160809b7 db:0x160809b5 db:0x160809b4 db:0x160809b2 db:0x160809b1

    ...

     

    )

    What does it mean please ? What is the problem ?

    Thanks

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

    That's not an error, it's simply the return value of the foreach - which will return the list of database objects passed in. 

    That said, doing it via having the edit properties form open is not exactly very clean.

    Simpler would be to do:

    foreach(instance cv~>instances
      when(instance~>cellName=="p_res"
        instance~>r="1e-6"  ; I assume you do not really want to set it to 1uOhm (that's not good for the simulator to have it so low)
      )
    )

    This gets rather more complicated if the component has CDF Callbacks which need to be triggered to compute derived parameters - for that you would want to use How to call CDF Callbacks procedurally from SKILL?

    Regards,

    Andrew.

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

    OK, thank you very much Andrew

    Your method is really faster to do the work. For resistor value, I want to short-circuit all of them. So I use this very little value. But, it is true that it might cause numeric problems. Any suggestion ?

    Regards,

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

    Set the value to 0 rather than 1u. 0 ohm resistors are OK (in spectre at least).

    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