• 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. A few questions about skill?

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 14840
  • 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

A few questions about skill?

Prabhu The ICL
Prabhu The ICL over 15 years ago

 Hi, All!
  I am using cadence IC514 version. Can someone suggest appropriate answers for the following questions...?

/*****************************

**********************************************************************************
1--> What is the best approach to traverse through layout hierarchy (which is having mosaics)
   including opening, modifying, saving and closing cellview ...?

   /*******************flatten pcells, convert paths to polygon and merge all shapes************************/
   procedure(size_traverse(@optional (cv deGetEditCellView()))
  FLATTEN_MPP(cv)  ;; consists rodGetNamedshapes() and rodUnNameShape() functions
  path2polygon(cv) ;; consists dbConvertPathToPolygon() function

  foreach(inst cv~>mosaics
      if(member(car(inst~>instanceList)~>libName list("tcbn65gplus" "tsmcN65")) then
          leFlattenInst(inst 31 t nil nil)
      else
      if(ddGetObj(car(inst~>instanceList)~>libName car(inst~>instanceList)~>cellName car(inst~>instanceList)~>viewName) then
          mas = dbOpenCellViewByType(car(inst~>instanceList)~>libName car(inst~>instanceList)~>cellName car(inst~>instanceList)~>viewName "" "a")
          size_traverse(mas)
          dbSave(mas)
          dbClose(mas)
      );if
      );if
  );foreach

  foreach(instp cv~>instances
      if(member(instp~>libName list("tcbn65gplus" "tsmcN65")) then
          leFlattenInst(instp 31 t nil nil)
      else
      if(ddGetObj(instp~>libName instp~>cellName instp~>viewName) then
          masp = dbOpenCellViewByType(instp~>libName instp~>cellName instp~>viewName "" "a")
          size_traverse(masp)
          dbSave(masp)
          dbClose(masp)
      );if
      );if
  );foreach
);size_traverse
   /*******************flatten pcells, convert paths to polygon and merge all shapes************************/

When I run this code by commenting dbSave() and dbClose() statements everything is going fine.
(And finally I am doing closedata by saving all to complete the desired task)
But when I include these statements I am getting the following error ...

*Error* dbSave: Invalid cellView - db:294651948

I am not able find out this invalid dbId that encountering dbSave() statement.

2--> Is file manipulation slow in SKILL compared to tcl/perl/shell ...?

3--> How to make 'SKILL' code faster (while dealling with files) ...? (A simple example please...!)

4--> In SKILL Can we create pulldown menu for a form which has created by hiCreateAppForm() (like File-->Open-->Close) ...?

5-->
hyper1 = hiCreateHypertextField(?name 'hyper1  ?value "<A>(10:0 10:20)</A>" ?callback "my_proc")
myForm= hiCreateAppForm(
          ?name 'myForm
          ?fields list(hyper1)
          ?formTitle "HyperText demo form..."
          ?callback ""
          ?buttonLayout 'OKCancelApply
          ?initialSize t
          )
hiDisplayForm(myForm)

How to add another hypertext value beside (10:0 10:20) ...?
In the above example my_proc is a simple pop-up menu. I need this pop-up displayed at the cursor. But this pop-up displaying at a different location.
I hope the problem is understandable. If not I will come up with some more information.

***************************************************************************************************************/

Thanks in Advance ...

Prabhakar. K --- The ICL Engineer
SoCtronics
  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 15 years ago

    Hi Prabhakar,

    Is it very likely that I would be able to solve the problem from your description? No.

    Almost certainly you'd be better off flattening using dbFlattenInst or leFlattenInst and then deleting anything on pin purpose (it would probably be more efficient).  Maybe it ran out of memory? 

    You should contact Customer Support for more assistance on this.

    Regards,

    Andrew.

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

    Hi Prabhakar,

    Is it very likely that I would be able to solve the problem from your description? No.

    Almost certainly you'd be better off flattening using dbFlattenInst or leFlattenInst and then deleting anything on pin purpose (it would probably be more efficient).  Maybe it ran out of memory? 

    You should contact Customer Support for more assistance on this.

    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