Home > Community > Blogs > Digital Implementation > get on board with bus guides
 
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).
 

Email

* 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: *

Get on Board With Bus Guides

Comments(8)Filed under: Digital Implementation, encounter, 8.1, Bus Guides

One of the coolest new things in Encounter 8.1 is Bus Guides. I know many of you out there have probably looked at the results of a routing job and thought, "Why didn't it route this bus all together? It's all over the place!" Well, with bus guides, you can get your busses routed exactly the way you want. Here's how to do it:

First, you need to create a net group.

    createNetGroup myNetGroup -net {DTMF_INST/rom_data*}

Encounter will report back something like:

    Added [16] net(s) in the net-group [myNetGroup]

Next, you create the bus guide for that net group. You can use the createBusGuide command, but the GUI is much more fun here.

Click the Bus Guide icon:

   

Then hit F3 to bring up the Bus Guide form:

   

In the form, you can select the net group you created earlier and pick the horizontal and vertical layers for the guide. Click the "Calculate Width" button for both vertical and horizontal, and then you can close the form.

Now we get to draw the guide! It's very similar to a hand-route. Click where you want the guide to start, click to change direction, and double-click to end the guide. If I was to make a guide between two modules (which will become partitions), it would look something like this:

   

Now, when you go on to create your partitions and assign partition pins, the pins associated with the bus guide you just created will be placed where you put the guide and in the layers that you specified on the Bus Guide form. And the best part is that when you route, the routes will follow the guide you just made. No more messy bus wires all over the place!

Here's another cool thing you can do: let's say you have a whole bunch of bus guides. It could be hard to tell from a glance which one is which. It can be very helpful to make each bus guide a different color. This is done with the command:

    setBusGuideMultiColors

Here's an example, but with only two bus guides:

   

(If you want to get rid of the colors, no problem. Just use the command resetBusGuideMultiColors.)

Finally, here's a little bonus: if you are the logic designer, then you are probably very familiar with which nets or busses go between each module. But if someone else designed the netlist and you are doing the physical work, then it may not be obvious. So, how can you quickly find what the nets between two modules are? Here is one way:

set mod1nets [dbget -u -p2 top.nets.allTerms.name top/mod1/* ]
set commonNets [dbget -u -p2 $mod1nets.allTerms.name top/mod2/* ]

dbGet $commonNets.name

Have you used bus guides yet? Do you think you will use them on your next design? Let me know in the comments.

Comments(8)

By eminemshow on March 27, 2009
Hi, Kari, feel great to see your post again, I like the bonus part, another great example for dbGet. In the past, I have to use the dbForEachHInstHTerm command to get all the HTerm, then use dbHTermNet  to get the real flattened level net. Then get the AND set of nets for those 2 hier instances, now you use dbGet, just 2 commands, kool thing! BTW, I have added you on my friend list.

By Kari on April 1, 2009
Hi eminemshow, glad you found the dbGet bonus useful! Thanks for being such a loyal reader - I've added you to my friends list too. :-)

By lisiang on April 16, 2009
HI Kari, two questions.  1) can you insert ground shield in the bus every 3-4 nets? 2) can optDesign insert repeater to fix max trans. violation and still follow the bus guide?
Thanks.

By Kari on April 17, 2009
Hi Lisiang, when optDesign adds buffers along the bus net, it should add them right along the guide, so yes - the guide will still be followed. Shielding is handled on a per-net basis: please see the section called "Performing Shielded Routing" in the Nanoroute chapter of the Encounter User guide.

By K.VISWANADH BABU on September 22, 2009
Hi kari,
Your demonstration is appreciated . Its like a spoon feeding for me.
I had followed your process and succeeded

By Kari on September 23, 2009
Hi KVB, that's wonderful to hear! We love it when our customers are successful. :-)

By enoorsal on May 29, 2011
Hi Kari,

I have tried to use this bus guide for bus routing. But i noticed after optDesign or after CTS, the wires goes out of the bus guide since some of the buffers are output of the busguide. How can i make all the wires and the CTS buffer inside the bus guide with no error in DRV?


By Kari on June 7, 2011
Hi Enoorsal,
It's hard to tell without seeing your design, but it sounds like you may be using bus guides for something other than point-to-point nets. CTS shouldn't figure in (there should be no flops in the path). For just buffering up the nets, optDesign should have placed any buffers along the path of the bus guide, so if you're seeing that part alone not working, you may want to file a service request or post a picture/question in the forums.

Leave a Comment


Name
E-mail (will not be published)
Comment
 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.