I have only heard of this form recently .. and i think this idea of sharing is awsome.. i am not good at skill.. i would like to
learn in coming future and would love to share some scripts with others.. However..
I Do have a urgent requirement and this i could not find through out the form
(This is a damn common and important requirement for every layouter)
Here it goes :
First the script has to go to a schematic window (which is a padring schematic and schematic has the order of pads on 4 sides and the most difficult part is )
to read the instance names of IO cells and their position and order from schematic (probably store it in a file like IOXXX1 upper Left 01 \n padXXX2 upperright 02 ..... IOXXX100 top left 100)
Then it should go to layout and check if the pads are placed in the right order and then report (or even swap if possible) any errors in pad placement. (with the help of the co-ordinates and orientation..
and then place the pins of toplevel on the on the pin of pad (for ex powerdown pin on toplevel will be placed on the PAD pin of the instance IOXXXpwrdwn [just an example]
What does this save :
A lot of donkey work from layouter to manually check and so on... and fatal pin errors that will show up after tapeout..
Would Be a great help if you can do this..
Your request is complex but you may be able to find something on line which is close to what you want. Otherwise, because of its complexity, I recommend you engage a consultant, either from Cadence's Services group or an independ SKILL consultant.
Here are the steps you have to do:
1. Open each cellView:
cvId = (dbOpenCellViewByType...)
2. Find all the instances of interest (Find by instHeaders):
ih = setof( ih cvId~>instHeaders member( ih~>cellName list(all your IO cells ))
3. Determine the side and order of the cells found. This can be done by sorting the bounding boxes of the instances.
4. Match between the layout and schematic.
This is a good example to use to learn SKILL if you want to do so.
, you have to get the data from the two cellViews