Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

automate pad location coordinate using cadence

Status
Not open for further replies.

pbs681

Full Member level 3
Full Member level 3
Joined
Aug 19, 2004
Messages
173
Helped
15
Reputation
30
Reaction score
3
Trophy points
1,298
Activity points
1,278
caar cadar caadr cadadr cadence

Hi,
Is there any automated method to get the pad coordinate (center location).
Thanks
 

The pad coordinates can be calculated by skill program.
 

Thanks Hughes,
Do you have any reference or maybe give me some hint becoz I am still new to this field.
 

Hi pbs681,

It is not so easy to discuss how to write a skill program to get the pad location of a hierarchy layout. But we can do it in different way:

First we can create a new cell to put PAD shapes. Open the original layout view and set only PAD layer visible. Copy the PAD shape from the original layout view to the new cell view using yank and paste (do not use copy function). Now we will get a FLAT cell view only containing PAD shape data. Move the origin to keep the PAD shapes in the same positions as the original layout view.

Then we can write a skill program to get the pad location. For example:
foreach(shape cv~>shapes
bBox=shape~>bBox
printf("%10.2f %10.2f\n" (caar(bBox)+caadr(bBox))/2 (cadar(bBox)+cadadr(bBox))/2)
)
 

Hi pbs681,

you can also use perl/awk/sed scripting for getting the pad coordinates. dump the pads file and go on adding or reducing the pad coordinates depending the side.

-sudhir
 

I often look at the ~/CDS.log to write skill pgm.
 

CDS.log provides many clues for SKILL programming, sometimes a SKILL program can be constructed just by copy and paste from CDS.log.
But SKILL programs written in this way can only access cadence interactive function calls.
 

Hi Hughes,
I try your SKILL code. I found that line "printf("%10.2f %10.2f\n" (caar(bBox)+caadr(bBox))/2 (cadar(bBox)+cadadr(bBox))/2) " got a prob. I suspected caused by "caar" command. Need your advise
 

Hi pbs681,

Please change the statement:
Code:
printf("%10.2f %10.2f\n" (caar(bBox)+caadr(bBox))/2 (cadar(bBox)+cadadr(bBox))/2)

To:
Code:
x1=caar(bBox)
x2=caadr(bBox)
y1=cadar(bBox)
y2=cadadr(bBox)
xc=(x1+x2)/2
yc=(y1+y2)/2
printf("%10.2f %10.2f\n" xc yc)

You may enter the statements line by line. If any problem exists, please post the error message here.
 

Another method if you don't like skill is to save your GDS as a text.
Use PERL or any language to find the pad layer opening, then, with some text processing your can get the pad location.
If your GDS-text only include the pad opening layer, it is even easier.

OkGuy
 

Hi Hughes and okguy,
thanks for your reply. I've tried the SKILL code that you gave, everything looks fine, but I can't view the output. I tried to use redirect command, but it doesn't work. Need your help.
Now I am working on suggestion that made by okguy.
thanks again
 

Hi pbs681,

You may open CDS.log to find out the outputs of the above posted codes. Replacing printf with fprintf will output the results to a file.

Code:
fp=outfile("PADLOC.txt")
foreach(shape cv~>shapes 
  bBox=shape~>bBox 
  x1=caar(bBox) 
  x2=caadr(bBox) 
  y1=cadar(bBox) 
  y2=cadadr(bBox) 
  xc=(x1+x2)/2 
  yc=(y1+y2)/2 
  fprintf(fp "%10.2f %10.2f\n" xc yc)
)
fclose(fp)
 

Hughes,
There is nothing inside the file.
Thanks.
 

pbs681 said:
Hughes,
There is nothing inside the file.
Thanks.
Hi pbs681,

I have tested the codes in my system, there ARE pad locations in the file. Before running these codes, cv should be set to the dbId of the cellview which contains rectangle shapes of PAD layers.
 

Hei pbs681, my guess is what you need is pad location for some bomding, isn'it :?:
So, in any solution, you need to flatten your GDS before any processing or consider cells location and add coordinates ... good luck 8)
 

pbs681 said:
Hi,
Is there any automated method to get the pad coordinate (center location).
Thanks

Another method: Flatten the design; select all PAD shapes; the select menu 'Window/Show Selected Set'. A window is poped up to show the informations for all selected shapes, which contain bounding boxes information. Save the window contains to a file and use other tools such awk, perl and C to process the data to get the center locations.
 

Hi Hughes and OkGuy,
Your suggestion help me solve my prob. Found that method 'Window/Show Selected Set' plus the awk/sed/perl suit me. May be I not good enough in SKILL coding(this is first time I use SKILL). Again, thanks.

Shahrul
 

Not hard, but RISKY :arrow:
... when the number of pads exceed 100 :twisted:
 

Agree with okguy....
It is not hard to do it manually but to be on the safe side, better use the script or even better use both.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top