Home > Community > Blogs > Digital Implementation > createpgpin to the rescue getting the power pins you want in your block lef
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more conveniennt.

Register | Membership benefits
Get email delivery of the Digital Implementation blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

createPGPin to the rescue: getting the power pins you want in your block LEF

Comments(7)Filed under: SoC-Encounter, LEF, createPGPin, lefOut followpins

Hi Everyone!

Welcome to my first blog post! My plan for this space is to share with you various tips and tricks in SoC-Encounter as well as new things I learn along the way. I use Encounter every day as part of my job in Cadence Design Services. Knowledge is a two-way street, so I'm hoping that we'll have some good comments revealing how you, the customers, are using Encounter as well. Now, on to business!

My team had a situation this week where the followpins (the metal1 std cell rails) did not extend all the way to the edge of a hierarchical block. Depending on your design methodology, this may or may not be a real problem, but for us it was. Of course, we could regenerate the power grid from scratch, but that solution did not appeal to us. It's fairly easy to grab all the metal1 rails and just drag the ends to the edge of the block, so we did that. However, not all of the metal1 rails were showing up in the LEF. Here is the lefOut command we use, so that all power stripes appear as pins:

    lefOut block.lef -noCutObs -stripePin -pgPinLayers 1 2 3 4 5 6 7 8 9

For some reason, only one of our VDD nets (we have two) was being recognized as a power net, so we had VSS pins and VDD pins, but no A_VDD pins. I remembered a script I wrote long ago to read in the power stripes and create square pins on each end of the stripe. I was not relishing having to dig that out and hack it to work for this project. Luckily, createPGPin came to the rescue! At first I thought it would be as tedious as hacking my old script, having to give coordinates for each pin. But a physical pin shape on each power stripe was not necessary. All that was needed was a logical pin in the database, so that lefOut would recognize the stripes as pgPins and create them in the LEF:

    createPGPin -net A_VDD A_VDD

After doing this, our LEF contained all the pins we wanted and we were back on track. The createPGPin command added a line to the PGPin section of the block.fp file declaring a pin called A_VDD connected to the power net A_VDD. I suppose you could add this line by hand, but using createPGPin is easier, especially if you are scripting up a bunch of changes like this.

If you have some creative uses for createPGpin, let's hear about it in the comments. Is it part of your normal flow? Is it a new command to you, but you can think of ways to use it in your designs? Or maybe you have a different solution to the same kind of problem we had. I look forward to some discussion!


By Valerie on October 28, 2008
Hi Kari.  Thanks for the entry!  We're currently debugging some issues with Encounter dropping connections to the global power net (even though they're initially defined with globalNetConnect).  I'll give this a try and see if it makes a difference.  Speaking of 'createPGPin', I have a somewhat related question for you.  This command works great for adding extra physical ports for a given logical power net.  We also need an option to remove these ports.  Unfortunately, I haven't been able to locate such a command.  Do you know of a way to do this?

By Kari on October 31, 2008
Hi Valerie, thanks for commenting! I couldn't find an easy way to remove physical ports. What I would do is edit the DEF, but I know not everyone likes to do that. I'd like to suggest you post the question on the forum - maybe someone else will have an idea.

By jgentry on November 13, 2008
I'm trying to use createPGPin to create a new power pin at a specified location on the specified layer.  For example:
createPGPin -geom 7 1700.15 10427.48 1700.25 10428.0 -net VDD VDD
However, nothing seems to be happening.  No pin is created.  No warnings, errors or informationals are printed to the screen either.  Any ideas what I might be doing wrong?  Should I be able to see these pins in my floorplan?

By Kari on November 14, 2008
Hi Jason (I recognize you from your interview with BobD), I just tried this in one of my designs and it works. I see the pin right at the coords I gave and on the layer I specified. I can select it and it's called a Physical Pin. This is in 7.1 USR3. Make sure Special Nets are turned on as well as layer 7, and that VDD is in fact the name of your power net. (I know these are obvious things you've probably already checked, but I can't think of any other reasons why it's not working for you.) Let me know if you get it working!

By jgentry on November 14, 2008
Thanks for the reply Kari.  Looks like my metal7 pins were not visible.  Rookie mistake!  :)

By vimal on November 17, 2012
hi kari

i need to place physical pins for all ports in a design using multiple layers of metals (2 3 4 5).

so that i can acess them with any metal

can you plz suggest an idea for this


By Kari on November 19, 2012
Hi Vimal, I'm not sure if you're talking about signal pins or pwr/gnd pins... could you please post your question with more details to the Digital Implementation Forum? Thanks!

Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
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.