Home > Community > Blogs > Custom IC Design > Automated Digital Block Implementation Using Virtuoso
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more convenient.

Register | Membership benefits
Get email delivery of the Custom IC Design 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: *

Automated Digital Block Implementation Using Virtuoso

Comments(5)Filed under: Custom IC Design, Virtuoso, VSR, Virtuoso Custom Placer, VCPHave you ever found yourself laying out a digital block in Virtuoso where you have so many standard cells to place and route that you wish you could use an automated tool to place and route those cells? Maybe you even at one point considered using a Big-Digital P&R tool like Encounter Digital Implementation System (EDI System) to place and route this digital block, but then decided against it since you are not familiar with EDI System or since the block is small enough that you decide you can hand place and route it faster than figuring out how to use a different tool to do it.  For very large digital blocks, it may indeed be best to use a P&R tool like EDI System. But for smaller digital blocks, you may want to consider staying in Virtuoso and taking advantage of the automated placement and routing features available in Virtuoso Layout Suite-GXL through Virtuoso Custom Placer and Virtuoso Custom Router in IC6.1.3.

I have found that the combination of Virtuoso's placer and router is very powerful for implementing smaller digital standard cell blocks. The placer can be used to create rows and then place the standard cells within the rows along with filler cells, much like a Big-Digital P&R placement tool. After placement, the router can be used to route the digital block. I have developed a demo that shows how Cadence's placement and routing technology can be used to quickly place and route a small digital block that has about 200 standard cells within just a few minutes. I have been showing this flow to several customers in Asia and North America and the feedback has been very positive.  

The setup required for such a flow is straight forward. Assuming you already have a complete technology file with all required spacing rules for the technology node you are working on, there are only a few other things to make sure are setup:

  • Component Types (Std Cell component type must be defined for your standard cells and filler cells)

  • VirtuosoDefaultSetup constraint group must have the proper valid router layers and vias defined for routing

After that, you can use the Placement Planning utility to create the  power rails and rows that will be used to place your standard cells in. After the rows are created, you can used the Auto Placement GUI to run the custom digital placer. For my block with 5 rows and 200 standard cells, the placer ran in just under a minute. It is quite impressive to see how fast  the placer runs. After placement, you can use the router to route the design.  For this design, the router ran in about 5 minutes. I had a completely placed androuted digital block in under 10 minutes.

If you need to quickly place and route a small digital block, it would be worthwhile to look at Virtuoso's Custom Placer and Space-Based Router in IC6.1.3 to place and route the block.

-John Wilkosz


By Mariam Karim on March 27, 2009
The demo and flow you have suggested  would be very helpful for customers who do not care about timing and  has a small digital block to place and route...Thanks for sharing. Do you have the demo available so we can download it and get a better understanding of the tool. Best Regards,Mariam

By John Wilkosz on March 27, 2009
Hi Miriam,
Yes, that is true. The place and route flow within does not take timing into account.
So this flow would be great for customers that need to implement small digital blocks without timing. I need to write up the demo script before I distribute the demo. I will do that shortly and let you know when it is ready. Thanks for your interest.

By Mike Yi on August 5, 2009
Hi John,
Is such feature only available in IC6.1.3 platform ? I have used the VCAR/CCAR  in IC5141 platform to do the similar things, but i don't know what are the improvements this tool provides in IC6.1.3
Would you also share your demo to me after you complete the demo script ?
Thanks. Mike Yi

By John Wilkosz on August 5, 2009
Hi Mike,
Yes, you can do a similar flow in IC5141 using VCP and VCAR, although the IC5141 flow is less integrated than in IC613. That is, in the IC5141 flow, you will need to launch the router (VCAR) as a seperate tool outside of virtuoso (different GUI).  Where in the IC613 flow described above, you can perform the routing from the Virtuoso Layout GUI. Please also note that for 65nm (and smaller), you will need to use VSR as VCAR does not support 65nm (and smaller) rules. Hence, if you try to route a 65nm, or 45nm design with VCAR, you will be left with many DRC errors, where VSR does support 65nm (and smaller) rules.
I have a workshop available that goes over this flow. If your are interested, please send me an email: johnw@cadence.com.

By Tan.Tran on August 15, 2012
Hi John,   I'd like to download the training material for this workshop. Could you please send me the workshop material?   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.