• 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. saving designs in virtual memory to disk

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 17198
  • 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

saving designs in virtual memory to disk

harishgurram
harishgurram over 10 years ago

hi,

I am opening a cell view with dbOpenCellViewByType() command in read mode, and copying this view to some other view with the dbCopyCellView(...x...) command. 

 Now I am opening the copied view in append mode and making some edits on this layout view, and saving the same with dbSave(), and closing the view with dbClose() command. and also closing the view that is opened in read mode.

Now I am facing two problems,

The opened views are still existing in the virtual memory, they are not saving into the disk. how to write it into disk, and free virtual memory.

And I am getting a warning *Attempt to save read only design*...  (why this warning, i am not saving the read mode opened design.)

Is There  any commands to save the design in virtual memory to disk...Please help me

Thanks

Harish 

  • Cancel
  • skillUser
    skillUser over 10 years ago

    Hi Harish,

    Without seeing the code I can't be more certain, but you might have a cellview open in VM more than one time, this results in multiple pointers to the memory, rather than multiple copies of the data - you can use dbClose() multiple times until it returns nil to close off all the references to the cellview in memory.  You might have the read-only celview open graphically, and if so, some of your SKILL might be operating on this inadvertently, rather than the editable cellview, hence making edits in a read-only cellview? There is a dbPurge() command also, but this reverts to the disk copy of the cellview, not saving any changes.  Make sure that you have separate variables for the original and new cellviews and that you don't open either design more than once (either graphically, or in the code), or at least try to identify if this could happen and code around such circumstances.

    Hopefully this might help, but if not, you might need to paste your code, or portions of it, so that it can be viewed in the forum...

    Regards,

    Lawrence.

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

    Here's a transcript showing what I just tried (in IC616), which shows everything working fine. Which just shows the importance of what Lawrence mentioned - seeing your code. It may be you've made a mistake in the code which we might be able to spot if we can see it.

    cv=dbOpenCellViewByType("opamp090" "adc_sample_hold" "layoutTry")
    db:0x1ac01192
    cv~>mode
    "r"
    new=dbCopyCellView(cv "opamp090" "adc_sample_hold" "layoutTryCopy")
    db:0x1ac00492
    new~>mode
    "a"
    cv~>mode
    "r"
    new~>someNewProp="hello"
    "hello"
    dbSave(new)
    t
    dbClose(new)
    t
    dbClose(cv)
    t
    dbGetOpenCellViews()
    (db:0x1dd0f512 db:0x1dd0e892 db:0x1dd0e392 db:0x1dd0df12)
    dbGetOpenCellViews()~>cellName
    ("inv_2x_hv" "nmos2v" "pmos2v" "pmoscap2v")

    So as you can see, the original and copy are no longer in memory. It definitely saved it too:

    tryCopy=dbOpenCellViewByType("opamp090" "adc_sample_hold" "layoutTryCopy")
    db:0x1ac01192
    tryCopy~>someNewProp
    "hello"

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • harishgurram
    harishgurram over 10 years ago

     Hi,

    I am using ICADV 12.1 version

    Below is my code

     source=dbOpenCellViewByType("my_lib" "my_cell" "my_view")

    target = dbCopyCellView(source "target_lib" "target_cell" "target_view")

    dbClose(source)

    dbSave(target)

    dbClose(target)

    open =  dbOpenCellViewByType("target_lib" "target_cell" "target_view" "masklayout" "a")

    dbCreateInstByMasterName(open "*******************" ) ;Creating a instance in the opened cell view

    dbSave(open)

    dbClose(open)

    I am getting the following warning

    dbSave Attempt to save readonly design

     

    Thanks

    Harish

     

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

    Harish,

    Which of the two dbSave calls is generating the message? If you look at target~>mode and open~>mode do they show that it is actually in "a" mode?

    Which virtuoso version are you using (type getVersion(t) in the CIW).

    Regards,

    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