<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Cadence Digital Implementation Blogs</title><link>http://www.cadence.com/Community/blogs/di/default.aspx</link><description>Visit the Digital Implementation blog to catch up on the latest technology, trends, opinion, and news.  Interact with authors and peers through blog commenting.  RSS feed is available.</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/cadence/community/blogs/di" /><feedburner:info uri="cadence/community/blogs/di" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Visit the Digital Implementation blog to catch up on the latest technology, trends, opinion, and news. Interact with authors and peers through blog commenting. RSS feed is available.</itunes:subtitle><itunes:summary>Visit the Digital Implementation blog to catch up on the latest technology, trends, opinion, and news. Interact with authors and peers through blog commenting. RSS feed is available.</itunes:summary><feedburner:emailServiceId>cadence/community/blogs/di</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2Fdi" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2Fdi" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2Fdi" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/cadence/community/blogs/di" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2Fdi" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2Fdi" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcadence%2Fcommunity%2Fblogs%2Fdi" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item><title>Answers to Top 10 Questions on Performing ECOs in EDI System </title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/MolVkMICVoY/answers-to-frequently-asked-questions-when-performing-ecos-in-edi-system.aspx</link><pubDate>Wed, 17 Apr 2013 19:23:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1322866</guid><dc:creator>wally1</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1322866</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2013/04/17/answers-to-frequently-asked-questions-when-performing-ecos-in-edi-system.aspx#comments</comments><description>&lt;p&gt;Applying ECOs to a design can be complex, stressful and error prone so it&amp;#39;s important to apply the right tools and flow to implement the changes successfully. EDI System provides multiple ECO flows to physically implement ECOs efficiently and accurately based on your design requirements. And adding a tool such as &lt;a href="http://www.cadence.com/products/ld/eco_designer/pages/default.aspx"&gt;Encounter Conformal ECO Designer&lt;/a&gt; or the &lt;a href="http://www.cadence.com/products/ld/ets/pages/default.aspx"&gt;Encounter Timing System&amp;#39;s MMMC Signoff ECO&lt;/a&gt; capability can lead to faster design closure with fewer iterations. &lt;br /&gt;&lt;br /&gt;I field many customer questions related to implementing physical ECOs with EDI System. In this blog I provide answers to 10 of the most common questions. Do you have any tips to share on performing ECOs with EDI System? If so, please post it as a comment below. &lt;/p&gt;&lt;p&gt;Thanks,&lt;/p&gt;&lt;p&gt;Brian &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;1. What&amp;#39;s the best place to find details on how to perform ECOs in EDI System?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The EDI System User Guide has a chapter dedicated to &lt;a href="http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=pubs;q=soceUG/soceUG11.3/ECOFlow.html"&gt;ECO Flows&lt;/a&gt; (&lt;a href="http://support.cadence.com"&gt;Cadence Online Support&lt;/a&gt; access required). It describes several flows depending on whether it is a pre-mask or post-mask ECO, whether the changes are coming from a new Verilog netlist, DEF or ECO file, and whether gate array cells are being used or not. If you are new to ECO flows in EDI System then the ECO Flows chapter is the place to start! &lt;/p&gt;&lt;p&gt;It&amp;#39;s worth mentioning here ECOs can be implemented using the super-command &lt;font face="courier new,courier"&gt;ecoDesign&lt;/font&gt; or by running each command individually (&lt;font face="courier new,courier"&gt;init_design, ecoDefin, ecoPlace, ...&lt;/font&gt;). Both methods are described in the User Guide.&lt;/p&gt;&lt;p&gt;&lt;b&gt;2. What&amp;#39;s the difference between a pre-mask and post-mask ECO flow?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A pre-mask ECO is when you are making changes to the design before any masks have been made. With a pre-mask ECO you are free to make changse to any layer thus providing you more freedom to implement the ECO.&lt;br /&gt;&lt;br /&gt;A post-mask ECO is when you are making changes to a design after masks have been made. Therefore, you want to limit the changes to specific layers so you do not need to re-make all the masks. In a post-mask ECO flow you can utilize existing spare cells which where placed in the design to avoid changes to layers Metal1 and below. You can also instruct the router to which layers it can use to perform ECO routing and which must remain frozen.&lt;/p&gt;&lt;p&gt;&lt;b&gt;3. How do I apply changes made in my RTL to the physical design through ECO?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cadence.com/products/ld/eco_designer/pages/default.aspx"&gt;Encounter Conformal ECO Designer&lt;/a&gt; is recommended for performing complex ECOs originating from RTL. It interfaces with RTL Compiler and EDI System to perform the logical and physical ECOs while leveraging Conformal&amp;#39;s logical equivalency abilities to ensure the ECO was successful for both the front-end and back-end signoff.&lt;/p&gt;&lt;p&gt;&lt;b&gt;4. How does EDI System identify spare cells in a post-mask ECO flow?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Spare cells should have a unique string in their instance name to identify them. Then the command &lt;font face="courier new,courier"&gt;specifySpareGate&lt;/font&gt; or &lt;font face="courier new,courier"&gt;ecoDesign -useSpareCells patternName&lt;/font&gt; is run to identify the spare instances. For example, if all spare cells have _spare_ in their name then they are identified using:&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;font face="courier new,courier"&gt;specifySpareGate -inst *_spare_*&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;font face="courier new,courier"&gt;ecoDesign -spareCells *_spare_* ...&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Note if you are making manual ECO changes to a netlist and converting a spare cell to a logical instance, it&amp;#39;s important to change the instance name. Otherwise, the instance may be identified as a spare cell if a future ECO is performed because it still has the spare cell instance name.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. How does EDI System identify the changes in the design?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;During the &lt;font face="courier new,courier"&gt;ecoDefin&lt;/font&gt; step the existing netlist (new netlist) is compared against the original placed and routed design. A summary of differences is output to the log file and a detailed report file is output to the local directory. You can review the report file to see a list of all the differences.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. How do I use spare cells or gate array cells during placement?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Spare cells are identified using &lt;font face="courier new,courier"&gt;specifySpareGate&lt;/font&gt;. Then use the &lt;font face="courier new,courier"&gt;-useSpareCells true&lt;/font&gt; option when running &lt;font face="courier new,courier"&gt;ecoPlace&lt;/font&gt; to instruct it to swap the unplaced cells with spare cells of the same cell type:&lt;br /&gt;&lt;br /&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp; specifySpareGate -inst *_spare_*&lt;br /&gt;&amp;nbsp; ecoPlace -useSpareCells true&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Gate array style filler cells can be programmed with metal layers so the poly/diffusion and lower layers are not changed, and only the metal and via layer masks need to be modified. If you are using gate array spare cells the flow depends on the SITE type used by the gate array cells.&lt;br /&gt;&lt;br /&gt;If your design has GA Cells which utilize a SITE type (i.e. GACORE) different from normal standard cells (i.e. CORE) then use:&lt;br /&gt;&lt;br /&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp; ecoPlace -useGACells GACORE &lt;/font&gt;&lt;br /&gt;&lt;br /&gt;If your design has GA cells which utilize the same SITE type as standard cells:&lt;font face="courier new,courier"&gt;&amp;nbsp; ecoPlace -useGAFillerCells {List of GAFillerCells}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Reference the User Guide for the complete flow.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Is &lt;font face="courier new,courier"&gt;ecoPlace -useSpareCells true&lt;/font&gt; timing driven?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face="courier new,courier"&gt;ecoPlace&lt;/font&gt; will choose the spare cells to minimize wire length but is not timing driven. After &lt;font face="courier new,courier"&gt;ecoPlace&lt;/font&gt; you can run &lt;font face="courier new,courier"&gt;ecoSwapSpareCell&lt;/font&gt; to relocate an instance to the location of another spare cell of the same type. Alternatively, you can run &lt;font face="courier new,courier"&gt;ecoRemap&lt;/font&gt; in place of &lt;font face="courier new,courier"&gt;ecoPlace&lt;/font&gt;. &lt;font face="courier new,courier"&gt;ecoRemap&lt;/font&gt; is timing driven and automatically analyzes the functionality of the newly added cells and remaps them to available spare cells. The software analyzes the logic and performs changes to improve timing and minimize DRVs.&lt;/p&gt;&lt;p&gt;&lt;b&gt;8. How do I freeze certain metal layers during routing?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In a post-mask ECO Flow run &lt;font face="courier new,courier"&gt;ecoRoute&lt;/font&gt; with the &lt;font face="courier new,courier"&gt;-modifyOnlyLayers&lt;/font&gt; option to specify which layers it is allowed to modify. For example, to route using only Metal1 through Metal3:&lt;br /&gt;&lt;br /&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp; ecoRoute -modifyOnlyLayers 1:3&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;9. How does ECO routing deal with metal fill?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;When performing a post-mask ECO flow, ecoRoute will ignore the metal fill while routing. This will likely cause DRC violations between the ECO routes and metal fill. To fix these violations, run &lt;font face="courier new,courier"&gt;verifyGeometry&lt;/font&gt; followed by the the &lt;font face="courier new,courier"&gt;trimMetalFill&lt;/font&gt; command. This will cut back the metal fill from the ECO routing to fix the violations. &lt;/p&gt;&lt;p&gt;&lt;b&gt;10. Does EDI System support interactive (maual) ECOs?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Yes, EDI System provides a number of interactive commands to both evaluate and commit ECO changes. See the &lt;a href="http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=pubs%20;q=soceUG/soceUG11.3/ECO.html"&gt;Interactive ECO chapter of the EDI System User Guide&lt;/a&gt; for details.&lt;br /&gt;&lt;br /&gt;When performing interactive ECOs make sure setEcoMode is set as desired. Here are some specific options to pay attention to and tips to speed up run time when implementing a series of ECOs:&lt;br /&gt;&lt;br /&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp; setEcoMode -updateTiming&lt;/font&gt; - Default is false allowing you to wait until all ECOs are performed to run timing analysis. If set to true, timing analysis is run after each ECO command. &lt;br /&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp; setEcoMode -honorDontTouch, -honorDontUse, -honorFixedStatus&lt;/font&gt; - The default for all of these is true. So if you find you cannot make a change, check if any of these apply.&lt;br /&gt;&lt;font face="courier new,courier"&gt;&amp;nbsp; setEcoMode -batchMode&lt;/font&gt; - Sets this to true to improve runtime if you are performing many ECOs. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1322866" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/MolVkMICVoY" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/ECO/default.aspx">ECO</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/LEC/default.aspx">LEC</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/synthesis/default.aspx">synthesis</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Encounter+digital+Implementation+system/default.aspx">Encounter digital Implementation system</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/MMMC/default.aspx">MMMC</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/tips+and+tricks/default.aspx">tips and tricks</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Cadence+EDI+System/default.aspx">Cadence EDI System</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2013/04/17/answers-to-frequently-asked-questions-when-performing-ecos-in-edi-system.aspx</feedburner:origLink></item><item><title>Five-Minute Tutorial: Set Flip-Chip Bumps as Voltage Sources in EPS/EDI Rail Analysis</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/tfBvA2Ubazg/five-minute-tutorial-set-flip-chip-bumps-as-voltage-sources-in-eps-edi-rail-analysis.aspx</link><pubDate>Tue, 26 Mar 2013 14:32:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1321860</guid><dc:creator>Kari</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1321860</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2013/03/26/five-minute-tutorial-set-flip-chip-bumps-as-voltage-sources-in-eps-edi-rail-analysis.aspx#comments</comments><description>&lt;p&gt;When running power and rail analysis for a flip chip, we used to have to spend some time creating the voltage sources. It wasn&amp;#39;t too terrible; usually we would output the bumps into a Cadence Encounter Digital Implementation (EDI) .io file, then use a perl script to filter out the pwr/gnd bumps and create the voltage source file format. The script would need a bit of editing from project to project, but nothing too complicated. We ended up with a voltage source file, with one point-source per bump. However, it is much easier these days to create voltage sources for a flip chip to be used&amp;nbsp;in the Cadence Encounter Power System (EPS) Rail Analysis (run either from EPS directly, or through EDI.) It is also more accurate, since the bumps get modeled with several points in a resistor network. (This will avoid false EM violations.)&lt;/p&gt;&lt;p&gt;The LEF file of your flip chip bump will be used as a reference. Bumps are usually octagonal, although sometimes are represented as squares. Here is an example bump LEF, which I will use to illustrate the process. (Note that a&amp;nbsp;polygon shape is used to create an octagonal bump, but the corresponding coordinates that would have been used for a square are commented out.)&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;VERSION 5.6 ;&lt;br /&gt;BUSBITCHARS &amp;quot;[]&amp;quot; ;&lt;br /&gt;DIVIDERCHAR &amp;quot;/&amp;quot; ;&lt;br /&gt;UNITS&lt;br /&gt;&amp;nbsp; DATABASE MICRONS 1000 ;&lt;br /&gt;END UNITS&lt;/p&gt;&lt;p&gt;MACRO BUMP&lt;br /&gt;&amp;nbsp;CLASS COVER BUMP ;&lt;br /&gt;&amp;nbsp;FOREIGN BUMP -49.45 -49.45 ;&lt;br /&gt;&amp;nbsp;ORIGIN 49.45 49.45 ;&lt;br /&gt;&amp;nbsp;SIZE 98.9 BY 98.9 ;&lt;br /&gt;&amp;nbsp;PIN PAD&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DIRECTION INOUT ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USE SIGNAL ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORT&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LAYER AP ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #RECT -49.45 -49.45 49.45 49.45 ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POLYGON -20.49 -49.45 20.49 -49.45 49.45 -20.49 49.45 20.49 20.49 49.45 -20.49 49.45 -49.45 20.49 -49.45 -20.49 ;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;br /&gt;&amp;nbsp; END PAD&lt;br /&gt;END BUMP&lt;/p&gt;&lt;p&gt;END LIBRARY&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;First, create a file called &lt;b&gt;bump.padfile&lt;/b&gt;. This file contains one line, the MACRO name of the bump from the LEF. It should look like this:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;BUMP&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Next, create a file called &lt;b&gt;bump.srcfile&lt;/b&gt;. It should look like this:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;CELL BUMP&lt;br /&gt;&amp;nbsp; NET PAD&lt;br /&gt;&amp;nbsp; PORT {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AP -49.45 -49.45 49.45 49.45&lt;br /&gt;&amp;nbsp; }&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Make sure the CELL and NET names match your bump LEF. The NET name is the PIN name from the LEF. The port layer name (AP here) is the same layer from the LEF. Remember the commented-out square coordinates that I mentioned in the LEF example above? Here is where that&amp;#39;s useful: the coordinates of the PORT shape should be a square that encloses the octagonal bump.&lt;/p&gt;&lt;p&gt;Now, create the bump powergrid view. Here is a sample script, called &lt;b&gt;create_bump_pwrgrid.ss0p81v.tcl&lt;/b&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;read_lib -lef tech.lef \&lt;br /&gt;&amp;nbsp;&amp;nbsp; BUMP.lef&lt;/p&gt;&lt;p&gt;set_power_library_mode \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -accuracy fast \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -celltype allcells \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -extraction_tech_file cworst.qrcTechFile \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -lef_layermap &lt;b&gt;lef_layer.map&lt;/b&gt; \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -generic_power_names {VDD 0.81} \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -generic_ground_names {VSS} \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -input_type pr_lef&lt;/p&gt;&lt;p&gt;characterize_power_library \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -celllist_file &lt;b&gt;bump.list&lt;/b&gt; \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -padvsrcfile bump.srcfile \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -libgen_command_file &lt;b&gt;libgen.inc&lt;/b&gt; \&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -output_directory fast_bump.ss_0p81v&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;A few notes about the files referenced in this script:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The &lt;b&gt;bump.list&lt;/b&gt; file just contains the bump name and is actually the same as the bump.padfile.&lt;/li&gt;&lt;li&gt;For an example of the &lt;b&gt;lef_layer.map&lt;/b&gt; file, see my last blog, &lt;a href="http://www.cadence.com/Community/blogs/di/archive/2013/02/22/five-minute-tutorial-create-eps-power-grid-views-for-standard-cells.aspx?postID=1320111"&gt;Five-Minute Tutorial: Create Encounter Power System (EPS) Power-Grid Views For Standard Cells.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The &lt;b&gt;libgen.inc&lt;/b&gt; file looks like this (again, the cell and net name should match the bump LEF):&lt;br /&gt;cell_common_supply_names cell BUMP nets {PAD}&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Finally, when running rail analysis, use the bump.padfile in your set_power_pads command. The same padfile can be used for any rail:&lt;/p&gt;&lt;p&gt;set_power_pads \&lt;br /&gt;&amp;nbsp; -net VDD \&lt;br /&gt;&amp;nbsp; -format padcell \&lt;br /&gt;&amp;nbsp; -file bump.padfile&lt;/p&gt;&lt;p&gt;set_power_pads \&lt;br /&gt;&amp;nbsp; -net VSS \&lt;br /&gt;&amp;nbsp; -format padcell \&lt;br /&gt;&amp;nbsp; -file bump.padfile&lt;/p&gt;&lt;p&gt;&lt;br /&gt;All bumps will then be recognized as voltage sources, with multiple points inside the bump shape. I hope this has helped simplify your rail analysis flow!&lt;/p&gt;&lt;p&gt;- Kari Summers&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1321860" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/tfBvA2Ubazg" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/power+analysis/default.aspx">power analysis</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EPS/default.aspx">EPS</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EDI/default.aspx">EDI</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/flip+chip/default.aspx">flip chip</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/rail+analysis/default.aspx">rail analysis</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Five-Minute+tutorial/default.aspx">Five-Minute tutorial</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/bump/default.aspx">bump</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2013/03/26/five-minute-tutorial-set-flip-chip-bumps-as-voltage-sources-in-eps-edi-rail-analysis.aspx</feedburner:origLink></item><item><title>CDNLive High-Performance Track: Do You Have What it Takes to Get Your High-Performance SoC to Market?</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/ah1shc8c9hQ/cdnlive-high-performance-track-do-you-have-what-it-takes-to-get-your-high-performance-soc-to-market.aspx</link><pubDate>Mon, 11 Mar 2013 04:58:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1321224</guid><dc:creator>Vasu Madabushi</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1321224</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2013/03/10/cdnlive-high-performance-track-do-you-have-what-it-takes-to-get-your-high-performance-soc-to-market.aspx#comments</comments><description>&lt;p&gt;Implementing SoCs with embedded processors at advanced nodes has become increasingly difficult. This is due to the complexity of the design functionality as well as the low power and increased performance requirements driven by a plethora of end-user applications in modern hand-held devices. Path-breaking trends in ARMv8 64-bit processor based microservers for power efficient cloud computing/data centers and high-end content generating superphones and tablets have thrown new curveballs at chip designers. As we&amp;#39;re aware, battery technology hasn&amp;#39;t kept pace with Moore&amp;#39;s Law and as a result some amazing recent advances in process technology (such as FinFET, double patterning, etc.) and EDA tools are helping offset the difficulties in designing power efficient yet high-performance SoCs.&lt;/p&gt;&lt;p&gt;I&amp;#39;m really pleased to see a lineup of exciting papers in the High-Performance Digital Implementation track at the upcoming &lt;a href="http://www.cadence.com/cdnlive/na/2013/pages/default.aspx?CMP=021513_cdnlive_reg_bb"&gt;CDNLive Silicon Valley&lt;/a&gt; in Santa Clara, March 12, from some of the heavy hitters in the industry. These presentations describe the implementation of SoCs for a multitude of designs such as ARM Cortex-A core-based applications processors with state-of-the-art GPUs for demanding high-end smartphones and tablets; the world&amp;#39;s first multi-Gigahertz ARMv8 64-bit processor architecture based server-on-chip for cloud computing/data centers; and complex networking ASICs, to name a few. &lt;/p&gt;&lt;p&gt;Rounding off the sessions are interesting papers from ARM on implementing their latest 64-bit Cortex-A57 processor based on the ARMv8 architecture and processor optimization pack (POP) IP development for ARM&amp;#39;s big.LITTLE&lt;sup&gt;TM&lt;/sup&gt; paradigm -- with Cortex-A15 and Cortex-A7 processors respectively -- with Cadence&amp;#39;s Encounter digital flows. These presentations exemplify the strong partnership and collaboration between ARM and Cadence in developing implementation reference methodologies (iRM) that ease designing ARM processors into leading-edge SoCs and accelerate time-to-market.&lt;/p&gt;&lt;p&gt;A common thread that the audience will hear is the significant power, performance &amp;nbsp;and area (PPA) improvements customers have been able to achieve with some of the key Cadence tools such as RTL Compiler-Physical (RCP) and Encounter Digital Implementation (EDI) System featuring the latest GigaOpt physical optimization and Clock Concurrent Optimization (CCOpt) technologies. RCP, GigaOpt and CCOpt form the three pillars of Cadence&amp;#39;s strong offering for implementing complex and high-performance designs in silicon. Some of the key advances include extending GigaOpt to the entire optimization flow (pre- and post-route) with full multi-CPU support, route-driven and layer-aware optimization at advanced nodes, and native integration of CCOpt in EDI, all leading to significant PPA improvements. Stop by the Cadence booth at the partner expo to learn more about the upcoming EDI release 13.1 highlights!&lt;/p&gt;&lt;p&gt;I&amp;#39;ve always been fascinated by our customers&amp;#39; end-products and verticals (going beyond just chip design and into adjacencies) where Cadence&amp;#39;s tools have been used for bleeding-edge designs. So when companies such as AppliedMicro, ARM, Avago and NVidia come to town to graciously share their design experiences, one can&amp;#39;t help but sit up and take notice! CDNLive gives a wonderful opportunity for attendees to understand the intricacies behind implementing these complex SoCs, including the challenges faced-from synthesis, design planning to final implementation, signoff and everything in between-and how they surmounted them. Key takeaways include lessons learned and best practices that the audience can readily deploy into their own designs and methodologies. That&amp;#39;s the beauty of CDNLive-it provides ample opportunities to learn from fellow designers while extending one&amp;#39;s professional network. What more can you ask for?&lt;/p&gt;&lt;p&gt;On Wednesday, March 13, the R&amp;amp;D luncheon offers a unique opportunity for our customers to sit down with our R&amp;amp;D and product engineers to discuss the chip-design problems of the day. We&amp;#39;ve set up thematic tables to cater to different areas of focus, including Advanced Node (28/20/16/14nm), Clock Concurrent Optimization, Implementing GHz+ ARM Cortex-A processor based designs, low-power, mixed-signal, signoff, and more! This offers an informal atmosphere for Cadence to also better understand our customers&amp;#39; requirements. &lt;/p&gt;&lt;p&gt;Here&amp;#39;s a sneak peek into the paper presentations in the high-performance track on March 12, 2013:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;In &lt;b&gt;Session HP105&lt;/b&gt; (4:45-5:35pm), Sumbal Rafiq of AppliedMicro will present &amp;quot;&lt;i&gt;X-Gene: Realizing a complex high-performance and power efficient 64-bit multicore ARMv8 based server-on-chip solution in silicon&amp;quot;&lt;/i&gt;. This revolutionary multi-gigahertz design targets the extremely demanding cloud-computing/datacenter market. With multi-core ARMv8 CPUs, network interface controller (NIC), high-speed interconnect fabric, memory and other peripherals, the design complexity has reached unprecedented levels, throwing several new challenges in chip integration and meeting stringent PPA metrics. AppliedMicro and Cadence have collaborated from an early stage of development to deploy an RTL-to-GDSII flow based on Cadence&amp;#39;s Encounter Digital tools to successfully implement and tape out the design. The proof&amp;#39;s in working silicon!&lt;/li&gt;&lt;li&gt;&lt;b&gt;Session HP 104&lt;/b&gt; (9:00-9:50am) titled&lt;i&gt; &amp;quot;High Performance/Low Power Implementation of ARM Cortex-A15 and Cortex-A7 with ARM POP IP for ARM big.LITTLE Systems and Applications&amp;quot;&lt;/i&gt; will be presented by Sathyanath Subramanian from ARM. Sathya will talk about ARM&amp;#39;s big.LITTLE heterogeneous processing concept and how the ARM POP IP optimized with Cadence&amp;#39;s flows at advanced nodes provides designers a head start and a PPA boost for implementing designs with Cortex-A15 and Cortex-A7 processors. &lt;/li&gt;&lt;li&gt;In &lt;b&gt;Session HP103&lt;/b&gt; (2:30-3:20pm), Brent McKanna of ARM will present &lt;i&gt;Targeting High Frequency and Power Efficient Implementations for ARM&amp;#39;s High Performance Cortex-A57 Processor. &lt;/i&gt;Cortex-A57 is ARM&amp;#39;s latest and highest performing ARMv8 64-bit processor targeting the enterprise server and high-end smartphone/tablet applications, where maintaining high power efficiencies at superior performance points are critical. ARM and Cadence have collaborated throughout the development of Cortex-A57 to create an RTL-to-signoff flow based on Cadence Encounter design tools. The paper describes the techniques used for handling the increased complexity of larger ARM cores and for closing designs on advanced nodes such as 28nm.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Session HP102&lt;/b&gt; (1:30-2:20pm) title&lt;i&gt;d Advanced Strategies for Timing Closure Utilizing New GigaOpt Features&lt;/i&gt; will be presented by Jack Benzel of Avago Technologies. Given the explosive growth in the number of large memory macros and the growing dominance of RC delays limiting long-haul wire performance at advanced nodes, new strategies are required to address low-latency architectures. Jack&amp;#39;s paper will cover several of EDI System&amp;#39;s new GigaOpt features including low-RC layer promotion, advanced re-buffering, TNS focus, path balancing, and path compaction. Get exposed to real-world 28nm examples demonstrating before/after QOR improvements. &lt;/li&gt;&lt;li&gt;In &lt;b&gt;Session HP101&lt;/b&gt; (3:45-4:35pm), Santosh Navale of NVidia will present &lt;i&gt;Implementing high performance GHz+ mobile applications processors and GPU with clock concurrent design techniques. &lt;/i&gt;Hear about how NVidia changed their clocking methodology to tackle several hundred complex generated and interacting clock signals, which form the back-bone of modern applications processors. Hear how they handled on-chip-variation, complex clock gating, multi-mode/multi-corner, and low-power requirements while improving chip performance with the Cadence clock concurrent optimization (CCOpt) technology on multi-Gigahertz ARM CPU based mobile applications and GeForce GPU processors.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Registration and program information for CDNLive Silicon Valley is available &lt;a href="http://www.cadence.com/cdnlive/na/2013/pages/default.aspx?CMP=021513_cdnlive_reg_bb"&gt;here.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Vasu Madabushi&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1321224" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/ah1shc8c9hQ" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Digital+Implementation/default.aspx">Digital Implementation</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Encounter+Digital+Implementation/default.aspx">Encounter Digital Implementation</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/low+power/default.aspx">low power</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EDI/default.aspx">EDI</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/SoC/default.aspx">SoC</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Avago/default.aspx">Avago</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/CDNLive/default.aspx">CDNLive</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/digital/default.aspx">digital</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/RC-Physical/default.aspx">RC-Physical</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/CDNLive_2100_+Cadence/default.aspx">CDNLive! Cadence</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Cortex-A15/default.aspx">Cortex-A15</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/ARM/default.aspx">ARM</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Cortex-A7/default.aspx">Cortex-A7</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/CCOpt/default.aspx">CCOpt</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/NVidia/default.aspx">NVidia</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/ARMv8/default.aspx">ARMv8</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/GigaOpt/default.aspx">GigaOpt</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Cortex-A57/default.aspx">Cortex-A57</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/CDNLive+Silicon+Valley/default.aspx">CDNLive Silicon Valley</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/high+performance/default.aspx">high performance</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/AppliedMicro/default.aspx">AppliedMicro</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2013/03/10/cdnlive-high-performance-track-do-you-have-what-it-takes-to-get-your-high-performance-soc-to-market.aspx</feedburner:origLink></item><item><title>Five-Minute Tutorial: Create Encounter Power System (EPS) Power-Grid Views For Standard Cells</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/EBtdJjGi9DE/five-minute-tutorial-create-eps-power-grid-views-for-standard-cells.aspx</link><pubDate>Fri, 22 Feb 2013 16:54:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1320111</guid><dc:creator>Kari</dc:creator><slash:comments>7</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1320111</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2013/02/22/five-minute-tutorial-create-eps-power-grid-views-for-standard-cells.aspx#comments</comments><description>&lt;div&gt;In today&amp;#39;s tutorial, I&amp;#39;m giving you a sample EPS (Encounter Power System) script that you can use to generate power-grid views for your standard cells. Power-grid views are used during rail analysis, with IR-Drop and EM (electromigration/current density) being the two most popular analysis types.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, the LEF information is read in. The technology LEF needs to be read in first, then the LEF files of your standard cell libraries:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;read_lib -lef tech.lef \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stdcell_hvt.lef \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stdcell_lvt.lef&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next, we tell EPS what kind of views we want to create. We&amp;#39;re creating accurate standard cell views using the LEF models. We also need to point to the QRC extraction tech file, list all of our power/ground names (you may or may not have bulk pwr/gnd - you can leave that out if not), and include a layer mapping file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;set_power_library_mode \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -accuracy accurate \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -celltype stdcells \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -extraction_tech_file tt_qrcTechFile \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -lef_layermap lef_layer.map \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -generic_power_names {VDD 0.90 VDD_SW 0.90 VDDG 0.90} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -generic_ground_names {VSS} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -generic_bulk_power_names {VNW 0.90} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -generic_bulk_ground_names {VPW} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -default_power_voltage 0.90 \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -input_type pr_lef&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Below is an example of the lef_layer.map file. The second column is what the metal and via layers are called in the QRC extraction tech file, and the fourth column is what the metal and via layers are called in the technology LEF. (The QRC techfile is not an&amp;nbsp;ASCII file, but you can find the names in the .ict text file that usually comes with the QRC techfile.) In this example, the names happened to be the same between the QRC tech file and the technology LEF, but many times the layer/via names differ, especially for the upper layers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;metal &amp;nbsp; M1 &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef M1&lt;/div&gt;&lt;div&gt;metal &amp;nbsp; M2 &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef M2&lt;/div&gt;&lt;div&gt;metal &amp;nbsp; M3 &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef M3&lt;/div&gt;&lt;div&gt;metal &amp;nbsp; M4 &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef M4&lt;/div&gt;&lt;div&gt;metal &amp;nbsp; M5 &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef M5&lt;/div&gt;&lt;div&gt;metal &amp;nbsp; M6 &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef M6&lt;/div&gt;&lt;div&gt;metal &amp;nbsp; M7 &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef M7&lt;/div&gt;&lt;div&gt;metal &amp;nbsp; M8 &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef M8&lt;/div&gt;&lt;div&gt;metal &amp;nbsp; AP &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef AP&lt;/div&gt;&lt;div&gt;via &amp;nbsp; &amp;nbsp; VIA1 &amp;nbsp; &amp;nbsp;lefdef VIA1&lt;/div&gt;&lt;div&gt;via &amp;nbsp; &amp;nbsp; VIA2 &amp;nbsp; &amp;nbsp;lefdef VIA2&lt;/div&gt;&lt;div&gt;via &amp;nbsp; &amp;nbsp; VIA3 &amp;nbsp; &amp;nbsp;lefdef VIA3&lt;/div&gt;&lt;div&gt;via &amp;nbsp; &amp;nbsp; VIA4 &amp;nbsp; &amp;nbsp;lefdef VIA4&lt;/div&gt;&lt;div&gt;via &amp;nbsp; &amp;nbsp; VIA5 &amp;nbsp; &amp;nbsp;lefdef VIA5&lt;/div&gt;&lt;div&gt;via &amp;nbsp; &amp;nbsp; VIA6 &amp;nbsp; &amp;nbsp;lefdef VIA6&lt;/div&gt;&lt;div&gt;via &amp;nbsp; &amp;nbsp; VIA7 &amp;nbsp; &amp;nbsp;lefdef VIA7&lt;/div&gt;&lt;div&gt;via &amp;nbsp; &amp;nbsp; RV &amp;nbsp; &amp;nbsp; &amp;nbsp;lefdef RV&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, we can issue the characterize_power_library command which is what creates the power-grid views. The filler cells and decap cells are specified, as well as any powergate cells. (If you&amp;#39;re not working on a power-shutoff design, you can leave out the detailed_powergate option.) We also provide the&amp;nbsp;SPICE model file from the foundry, the&amp;nbsp;SPICE subckt cells for our standard cells, and list the&amp;nbsp;SPICE sections that contain the devices in our standard cells. (That part involves some trial and error - the first time you run the script, you may get errors for devices that are undefined. Search for those devices in the spice model file, then include the section they are found in, such as &amp;quot;ttg_hvt&amp;quot;.) You&amp;#39;ll notice we reference a &amp;quot;stdcell.list&amp;quot; file - this is a simple text file with one std cell name per line.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;characterize_power_library \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -celllist_file stdcell.list \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -library_name accurate_std.tt_0p90v \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -filler_cells { FILL* }&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -decap_cells { DCAP* }&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -detailed_powergate { \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{HEADBUFx16 VDDG VDD} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{HEADBUFx32 VDDG VDD} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -spice_models cln28hpm_1d8_elk_v1d0_2p1.l \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -spice_corners {ttg ttg_lvt ttg_hvt TT TT_hvt TT_lvt Total Total_lvt Total_hvt} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -spice_subckts { \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;stdcell_hvt_typical_25c.spice \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;stdcell_lvt_typical_25c.spice \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To run the script (let&amp;#39;s call it create_stdcell_pgv.tt.tcl), just start EPS and type:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;/span&gt;source create_stdcell_pgv.tt.tcl&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The resulting power-grid library from this sample script can be used for power and rail analysis in the tt_0p90v corner. You&amp;#39;ll need to create a power-grid view library for each process/voltage you want to run power analysis in. So if you need to run IR-drop in the ss_0p81v corner, for example, make a copy of the script and edit it to refer to ss&amp;nbsp;SPICE models, the ss qrcTechFile, and change all the voltages to 0.81.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once the script completes successfully, check the .report file that was generated to make sure that your cells report PASS. If you&amp;#39;re using powergate cells, make sure they were recognized as such.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I hope this has provided a quick-start to getting your standard cell power-grid views created!&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;- Kari Summers&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here&amp;#39;s the whole script at once, so you can just cut and paste into a file, and start editing for your specific design.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;read_lib -lef tech.lef \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stdcell_hvt.lef \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stdcell_lvt.lef&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;set_power_library_mode \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -accuracy accurate \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -celltype stdcells \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -extraction_tech_file tt_qrcTechFile \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -lef_layermap lef_layer.map \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -generic_power_names {VDD 0.90 VDD_SW 0.90 VDDG 0.90} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -generic_ground_names {VSS} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -generic_bulk_power_names {VNW 0.90} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -generic_bulk_ground_names {VPW} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -default_power_voltage 0.90 \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -input_type pr_lef&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;characterize_power_library \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -celllist_file stdcell.list \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -library_name accurate_std.tt_0p90v \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -filler_cells { FILL* }&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -decap_cells { DCAP* }&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -detailed_powergate { \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{HEADBUFx16 VDDG VDD} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{HEADBUFx32 VDDG VDD} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -spice_models cln28hpm_1d8_elk_v1d0_2p1.l \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -spice_corners {ttg ttg_lvt ttg_hvt TT TT_hvt TT_lvt Total Total_lvt Total_hvt} \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; -spice_subckts { \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;stdcell_hvt_typical_25c.spice \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;stdcell_lvt_typical_25c.spice \&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;exit&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1320111" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/EBtdJjGi9DE" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Digital+Implementation/default.aspx">Digital Implementation</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/LEF/default.aspx">LEF</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/power+analysis/default.aspx">power analysis</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/low+power/default.aspx">low power</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/encounter+power+system/default.aspx">encounter power system</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EPS/default.aspx">EPS</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/power/default.aspx">power</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/IR+Drop/default.aspx">IR Drop</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/five+minute+tutorial/default.aspx">five minute tutorial</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EM/default.aspx">EM</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/rail+analysis/default.aspx">rail analysis</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/current+density/default.aspx">current density</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/standard+cells/default.aspx">standard cells</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/power-grid+views/default.aspx">power-grid views</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/QRC/default.aspx">QRC</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2013/02/22/five-minute-tutorial-create-eps-power-grid-views-for-standard-cells.aspx</feedburner:origLink></item><item><title>Quick Reference - 8 Ways to Optimize Power Using Encounter Digital Implementation (EDI) System</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/PNsSsq0WO_U/quick-reference-top-things-to-know-on-power-optimization-using-edi-system.aspx</link><pubDate>Tue, 12 Feb 2013 16:25:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1319713</guid><dc:creator>MJ Cad</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1319713</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2013/02/12/quick-reference-top-things-to-know-on-power-optimization-using-edi-system.aspx#comments</comments><description>&lt;font size="2"&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;p&gt;Everyone knows that the&amp;nbsp;increasing speed and complexity of today&amp;#39;s designs implies a significant increase in power consumption, which&amp;nbsp;demands&amp;nbsp;better optimization of your design for power. I am sure lot of us must be scratching our heads over how to achieve this, knowing that manual power optimization would be hopelessly slow and all too likely to contain errors.&lt;/p&gt;&lt;p&gt;Here are &lt;strong&gt;8&lt;/strong&gt; &lt;b&gt;Top Things&lt;/b&gt; you need to know to &lt;strong&gt;optimize your design for power&lt;/strong&gt; using the Encounter Digital Implementation (EDI) System.&lt;/p&gt;&lt;p&gt;Given the importance of power usage of ICs at lower&amp;nbsp;and lower technology nodes,&amp;nbsp;it is necessary to optimize power at various stages in the flow.&amp;nbsp;This blog post will focus on methods that can be used to reach an optimal solution using the EDI System in an automated&amp;nbsp;and clearly defined fashion. It will give clear&amp;nbsp;and concise details on what features are available within optimization, and how to use them to best reach the power goals of the design. &amp;nbsp;&lt;/p&gt;&lt;p&gt;Please read through all of the information below before making a decision on the right approach or strategy to take. It is highly dependent on the priority of low power and what timing, runtime, area and&amp;nbsp;signoff criteria were decided upon in your design. With the aid of some or all of the techniques described in this blog it is possible to, depending on the design, vastly reduce both the leakage&amp;nbsp;and dynamic power consumed by the design.&lt;/p&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:18pt;"&gt;Quick Reference - Top Things to Know&amp;nbsp;about Power Optimization&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:18pt;"&gt;&amp;nbsp;&lt;/span&gt; &lt;p&gt;All of the following items discussed here in brief are covered in greater detail in &lt;b&gt;&lt;a href="http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=wp;q=ApplicationNotes/Digital_IC_Design/EDI_PowerOptimization.pdf" title="Low Power Optimization in EDI System"&gt;Low Power Optimization in EDI System&lt;/a&gt;&lt;/b&gt; appnote posted on &lt;a href="http://support.cadence.com/"&gt;http://support.cadence.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This is a one stop quick reference&amp;nbsp;and not a substitute for reading the full document. &lt;/p&gt;&lt;p&gt;1) VT partition uses various heuristics to gather the cells into a particular partition. Depending on how the cells get placed in a particular bucket, the design leakage can vary a lot. The first thing is to ensure that the leakage power view is correctly specified using the &amp;quot;&lt;i&gt;set_power_analysis_mode -view&lt;/i&gt;&amp;quot; command. The &amp;quot;&lt;i&gt;reportVtInstCount -leakage&lt;/i&gt;&amp;quot; command is a useful check to see how the cells and libraries are partitioned. Always ensure correct partitioning of cells.&lt;/p&gt;&lt;p&gt;2) In several designs, manually controlling certain leakage libraries in the flow might give much better results than the automated partitioning of cells. If the VT partitioning is not satisfactory, or the optimization flow is found to use more LVT cells than targeted, selectively turn off cells of certain libraries particularly in initial part of the flow i.e. preRoute flow. The user should selectively set the LVT libraries to &amp;quot;don&amp;#39;t use&amp;quot; and run preCts/postCts optimization. Depending on final timing QOR, another incremental optimization with LVT cells enabled may be needed.&lt;/p&gt;&lt;p&gt;3) Depending on the importance of leakage/dynamic power in the flow, the leakage/dynamic power flow effort can be set to high or low. &lt;/p&gt;&lt;p&gt;&lt;em&gt;setOptMode -leakagePowerEffort {low|high}&lt;/em&gt;&lt;i&gt;&lt;br /&gt;&lt;em&gt;setOptMode -dynamicPowerEffort {low|high}&lt;/em&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;If timing is the first concern, but having somewhat better leakage/dynamic power is desired, then select low. If leakage/dynamic power is of utmost importance, use high.&lt;/p&gt;&lt;p&gt;4) PostRoute Optimization typically works with all LVT cells enabled. In case of large discrepancy between preRoute and postRoute timings or if SI timing is much worse than base timing, postRoute optimization may overuse LVT cells. So it may be worthwhile experimenting with a two pass optimization, once with LVT cells disabled, and then with LVT cells enabled.&amp;nbsp;&lt;/p&gt;&lt;p&gt;5) In order to do quick PostRoute timing optimization to clean up final violations without doing physical updates, use the following:&lt;/p&gt;&lt;p&gt;&lt;em&gt;setOptMode -allowOnlyCellSwapping true&lt;/em&gt;&lt;i&gt;&lt;br /&gt;&lt;em&gt;optDesign -postRoute&amp;nbsp;&lt;/em&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;This will only do cell swapping to improve timing, without doing physical updates. This is specifically for timing optimization and will worsen leakage.&lt;/p&gt;&lt;p&gt;6) Leakage flows typically have a larger area footprint than non-leakage flows. This is because EDI trades area with power, as it uses more HVT cells to fix timing to reduce leakage. This sometimes necessitates reclaiming any extra area during postRoute Opt to get better convergence in timing. EDI has an option to turn on area reclaim postRoute which is hold aware also and will not degrade hold timing.&lt;/p&gt;&lt;p&gt;&lt;i&gt;setOptMode -postRouteAreaReclaim holdAndSetupAware&lt;/i&gt;&lt;/p&gt;&lt;p&gt;7) Running standalone Leakage Optimization to do extra leakage reclamation:&lt;/p&gt;&lt;p&gt;&lt;i&gt;optLeakagePower&lt;/i&gt;&lt;/p&gt;&lt;p&gt;This may be needed if some of the settings have changed or if leakage flows are not being used.&lt;/p&gt;&lt;p&gt;8) PreRoute Optimization works with an extra DRC Margin of 0.2 in the flow. On some designs it is known to result in extra optimization causing more runtime and worse leakage. The option below is used to reset this extra margin in DRV fixing:&lt;/p&gt;&lt;p&gt;&lt;i&gt;setOptMode -drcMargin -0.2&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Remember to reset this margin for postRoute optimization to 0, as postRoute doesn&amp;#39;t work with this extra margin of 0.2.&amp;nbsp; Note that the extra drcMargin is sometimes useful in reducing the SI effects, so by removing the extra margin, more effort may be needed to fix SI later in the flow.&lt;/p&gt;&lt;p&gt;I hope these tips help you achieve your power goals of your designs!&lt;/p&gt;&lt;p&gt;-Mukesh Jaiswal&lt;/p&gt;&lt;/font&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1319713" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/PNsSsq0WO_U" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Encounter+Digital+Implementation/default.aspx">Encounter Digital Implementation</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EDI/default.aspx">EDI</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EDI+system/default.aspx">EDI system</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Encounter+digital+Implementation+system/default.aspx">Encounter digital Implementation system</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/leakage/default.aspx">leakage</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EDI+11/default.aspx">EDI 11</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EDI+11.1/default.aspx">EDI 11.1</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/optLeakagePower/default.aspx">optLeakagePower</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Leakage+Optimization/default.aspx">Leakage Optimization</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Power+Optimization/default.aspx">Power Optimization</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/dynamic+power/default.aspx">dynamic power</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Jaiswal/default.aspx">Jaiswal</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/8+ways/default.aspx">8 ways</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/low+power+tips/default.aspx">low power tips</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Vt+partition/default.aspx">Vt partition</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2013/02/12/quick-reference-top-things-to-know-on-power-optimization-using-edi-system.aspx</feedburner:origLink></item><item><title>Five-Minute Tutorial: Creating An EM Model File</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/alVV1svenLM/five-minute-tutorial-creating-an-em-model-file.aspx</link><pubDate>Mon, 14 Jan 2013 17:06:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1318670</guid><dc:creator>Kari</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1318670</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2013/01/14/five-minute-tutorial-creating-an-em-model-file.aspx#comments</comments><description>&lt;p&gt;One of the least-fun parts of running power and rail analysis has always been coming up with the electromigration (EM) model file. In the past, this involved cracking open the process design rule manual, finding the appropriate equations, and creating a spreadsheet to calculate all the numbers needed for the various metal width and via sizes. Then, this information had to be put in the format of the model file used by Encounter Digital Implementation System (EDI) and Encounter Power System (EPS). This approach was prone to errors and involved some user decisions about what exactly to model. Frustrating, but it worked for the most part. &lt;/p&gt;&lt;p&gt;Now there is an easier way to get this information into an automatically-created EM model file if you are using a TSMC process. You&amp;#39;ll need the iRCX file (also referred to as a unified tech file) from TSMC, and you&amp;#39;ll need to locate both your extraction installation and your EDI installation.&lt;/p&gt;&lt;p&gt;When you request the iRCX information from TSMC, it may come in a directory that needs to be unzipped and untarred. Ultimately, you&amp;#39;re looking for a file that&amp;#39;s named something like IRCX_28NM_8M_typical.ircx. Make sure you have the right file for your process, metal stack, and extraction corner.&lt;/p&gt;&lt;p&gt;To locate your extraction installation, type:&lt;/p&gt;&lt;p&gt;&amp;gt;which qrc&lt;br /&gt;/apps/PVE111/11.11.238/bin/qrc&lt;/p&gt;&lt;p&gt;To locate your EDI installation, type:&lt;/p&gt;&lt;p&gt;&amp;gt;which encounter&lt;br /&gt;/apps/EDI110/11.12.000/tools/bin/encounter&lt;/p&gt;&lt;p&gt;Now, you&amp;#39;ll run two translators. The first comes from the extraction installation and is called ircxtoict. This translates the iRCX file into the .ict format:&lt;/p&gt;&lt;p&gt;&amp;gt;/apps/PVE111/11.11.238/bin/ircxtoict -i IRCX_28NM_8M_typical.ict IRCX_28NM_8M_typical.ircx&lt;/p&gt;&lt;p&gt;Now that you have an .ict file, you can use the second translator, which comes from your EDI installation, to create the EM model file. But first, you&amp;#39;ll need to create a small text file called conductor.widths (or another name of your choice). It looks something like this, with the order of each line being &amp;lt;metal_layer&amp;gt; &amp;lt;min_width&amp;gt; &amp;lt;max_width&amp;gt;. The width values are in microns:&lt;/p&gt;&lt;p&gt;M1 0.05 4.5&lt;br /&gt;M2 0.05 4.5&lt;br /&gt;M3 0.05 4.5&lt;br /&gt;M4 0.05 4.5&lt;br /&gt;M5 0.05 4.5&lt;br /&gt;M6 0.05 4.5&lt;br /&gt;M7 0.40 12.0&lt;br /&gt;M8 0.40 12.0&lt;br /&gt;AP 2.00 35.0&lt;/p&gt;&lt;p&gt;The metal layer names come from the .ict file, and the min and max widths come from the tech LEF. (Note that the metal layer names may differ between the .ict file and your tech LEF.)&lt;/p&gt;&lt;p&gt;Now we&amp;#39;re ready for that second translator, called ict2emfiles. It converts the newly-created .ict file to the EDI/EPS EM model file format:&lt;/p&gt;&lt;p&gt;&amp;gt;/apps/EDI110/11.12.000/share/anls/gift/bin/ict2emfiles -eps -i IRCX_28NM_8M_typical.ict -w conductor.widths&lt;/p&gt;&lt;p&gt;This will result in a file called IRCX_28NM_8M_typical.ict.em_model, which you can then use during the RJ analysis in EDI/EPS.&lt;/p&gt;&lt;p&gt;This method saves a lot of time and removes potential sources of error. I was very happy to be able to create my EM model file this way, and I hope others will find this useful as well.&lt;/p&gt;&lt;p&gt;- Kari Summers&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1318670" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/alVV1svenLM" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/power+analysis/default.aspx">power analysis</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EPS/default.aspx">EPS</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EDI/default.aspx">EDI</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/five+minute+tutorial/default.aspx">five minute tutorial</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/rail+analysis/default.aspx">rail analysis</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/iRCX/default.aspx">iRCX</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/ict/default.aspx">ict</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EM+Model/default.aspx">EM Model</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/electromigration/default.aspx">electromigration</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2013/01/14/five-minute-tutorial-creating-an-em-model-file.aspx</feedburner:origLink></item><item><title>SPICE Correlation Made Easy by Encounter Timing System (ETS)</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/Ibhx4qD6llk/spice-correlation-made-easy-by-ets.aspx</link><pubDate>Mon, 10 Dec 2012 17:24:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1317460</guid><dc:creator>MJ Cad</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1317460</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2012/12/10/spice-correlation-made-easy-by-ets.aspx#comments</comments><description>Hello, and welcome to my first blog! &lt;p&gt;As an application engineer in customer support, I have received quite a few queries on how to do SPICE correlation of timing numbers. This blog is intended to help users understand the flow/methodology for doing SPICE correlation of static timing analysis (STA) timing results using Encounter Timing System (ETS).&lt;/p&gt;&lt;p&gt;As we know, users do correlation of the critical paths in timing analysis with path simulation, using SPICE to gain the signoff confidence of their design. ETS offers built-in critical path simulation for base delay and signal integrity (SI) correlation with SPICE.&lt;/p&gt;&lt;p&gt;This blog describes the flow/methodology available in ETS at a higher level to perform path simulations with SPICE and correlate&amp;nbsp;them with base delay timing.&lt;/p&gt;&lt;p&gt;&lt;b&gt;SPICE Deck Generation&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The &lt;b&gt;&lt;i&gt;&amp;lsquo;create_spice_deck&amp;rsquo; &lt;/i&gt;&lt;/b&gt;command is available in ETS to generate the SPICE trace for a path.&lt;span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The SPICE deck generated by &lt;b&gt;&amp;lsquo;create_spice_deck&amp;rsquo; &lt;/b&gt;includes: &lt;/p&gt;&lt;p&gt;-&amp;nbsp;All nets in the path and their instance connections &lt;/p&gt;- Standard cell gate information for the instances and their port connections - initial conditions and voltage sources &lt;p&gt;- Measure statements for slew and delay measurements &lt;/p&gt;&lt;p&gt;- RC parasitic network information&lt;/p&gt;&lt;p&gt;Various options of &lt;b&gt;&lt;i&gt;create_spice_deck&lt;/i&gt;&lt;/b&gt; command can be used to specify the path(s) of interest and other information required for SPICE deck.&lt;/p&gt;&lt;p&gt;For details on supported options to this command, visit &lt;a href="http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=pubs;q=landing/ets110/library.html"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;ETS documentation&lt;/span&gt;&lt;/a&gt; &lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;Examples for SPICE deck generation command&lt;/b&gt; &lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;p&gt;1) The following command without any options will generate a SPICE for worst path as seen by timing analysis &lt;/p&gt;&lt;p&gt;&lt;i&gt;create_spice_deck&lt;/i&gt;&lt;/p&gt;&lt;p&gt;2) The following command creates a SPICE deck for specified path with predriver waveform as input PWL and side path loading of 1 stage, and includes the path of specified SPICE subcircuit and model file in SPICE deck. &lt;/p&gt;&lt;p&gt;&lt;i&gt;create_spice_deck -report_timing {-retime path_slew_propagation -net -from_rise inst_flop1/q -though inst_buf/a -though inst_buf/y -to inst_flop2/d} -input_waveform predriver -subckt_file SPICE_subckt.sp -model_file models.sp -power {vdd vddw} -ground {vss vssw} -side_path_level 1 -outdir ETS_SPICE&lt;/i&gt;&lt;/p&gt;&lt;p&gt;3) The following command creates a SPICE deck and simulates it using the Spectre&lt;sup&gt;TM&lt;/sup&gt; simulator specified.&lt;/p&gt;&lt;p&gt;&lt;i&gt;create_spice_deck -run_path_simulation -Spectre /tools/Spectre &lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Running Path Simulation and Results Extraction&lt;/strong&gt; &lt;/p&gt;&lt;/span&gt;&lt;p&gt;Path simulation can be done in two ways: &lt;/p&gt;&lt;p&gt;&lt;span&gt;1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Spectre&amp;trade; path simulator available in ETS installation (&lt;i&gt;create_spice_deck -run_path_simulation&lt;/i&gt;) can be used to run path simulation &lt;/p&gt;&lt;p&gt;&lt;span&gt;2)&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:black;"&gt;SPICE deck can be generated in user-specified directory, and stand-alone (outside of ETS environment) path simulation can be run using Spectre&amp;trade; or any simulator that understands SPICE syntax.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.25in;"&gt;&lt;span style="color:black;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.25in;"&gt;&lt;span style="color:black;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.25in;"&gt;&lt;span style="line-height:150%;"&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.25in;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.25in;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.25in;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.25in;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="line-height:normal;text-indent:-0.25in;margin:0in 0in 0pt 0.25in;"&gt;&lt;strong&gt;Spectre&amp;trade; path simulator in ETS&lt;/strong&gt; &lt;/p&gt;&lt;span&gt;&lt;p&gt;&lt;em&gt;create_spice_deck -run_path_simulation&lt;/em&gt; option can be used to do on the fly path simulation in ETS. &lt;/p&gt;&lt;p&gt;&lt;em&gt;Note: For running simulation using -run_path_simulation, it is highly recommended to specify SPICE subckt and model file using -subckt_file and -model_file options respectively. If they are not specified, design must have cdB files loaded and software will get this in-formation from cdB file. However, it is mandatory to specify subckt and model files if AAE is being used.&lt;/em&gt;&lt;/p&gt;&lt;p class="Default" style="text-align:justify;"&gt;Besides writing a few files in the directory (specified using -&lt;i&gt;outdir &lt;/i&gt;option) it also reports a table of timing (as shown in below example) with slew/delay/arrival column from report_timing and path simulation for correlation comparison. It will report two separate tables for launch and capture paths if &lt;i&gt;report_timing &amp;ndash;path_type full_clock&lt;/i&gt; is used.&lt;/p&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/di/rpt.JPG"&gt;&lt;img height="337" width="580" src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/di/rpt.JPG" border="0" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Stand-alone Path Simulation&lt;span style="line-height:150%;font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:11pt;"&gt;&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;If &lt;i&gt;create_spice_deck &lt;/i&gt;command is run without &lt;i&gt;&amp;ndash;run_path_simulation &lt;/i&gt;option, it will save the SPICE deck of the path (path_1_setup.sp) specified path in the specified directory (specified using &amp;ndash;outdir option). By default, it will save the SPICE deck in ets_pathsim directory. &lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;The user can run standalone path simulation using Spectre&amp;trade; or any other simulator which understands SPICE syntax on the SPICE deck (path_1_setup.sp) saved by ETS. &lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;Upon successful completion of path simulation, path_1_setup.measure file will be generated which can be used to extract results. Below is an example snippet of path_1_setup.measure file, which shows slew and delay measurement of two stages.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;Slew/delay statements in spice deck have &amp;lsquo;slew&amp;rsquo; and &amp;lsquo;delay&amp;rsquo; words to identify the slew and delay numbers for the respective stages in timing path. This file can be easily post-processed to extract simulation results. For example, the sum of all &amp;lsquo;delay&amp;rsquo; stages will give path delay of the total path.&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;a href="https://www.cadence.com:443/Community/CSSharedFiles/blogs/di/rpt1.JPG"&gt;&lt;img height="207" width="506" src="https://www.cadence.com:443/Community/CSSharedFiles/blogs/di/rpt1.JPG" border="0" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;So, using any of two methods explained above you can easily correlate your design results using this ETS feature. There is an excellent appnote written on this topic which not only explains the correlation flow and methodology in detail, but at same time showcases an example SPICE&amp;nbsp;deck with reasonable descriptions of various important constructs. It also cleanly covers various debugging techniques that can be used to resolve the correlation issues encountered, if any.&lt;/p&gt;&lt;p&gt;Click to visit the appnote &lt;a href="http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=wp;q=ApplicationNotes/Digital_IC_Design/SpiceCorrelationInETS.pdf"&gt;Base delay SPICE correlation In ETS&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;&lt;span class="cadencecsblogdetailblogtext"&gt;Cadence Online Support website &lt;/span&gt;&lt;a href="http://support.cadence.com/"&gt;http://support.cadence.com/&lt;/a&gt;&lt;span class="cadencecsblogdetailblogtext"&gt;&amp;nbsp;is your 24/7 partner for getting help and resolving issues related to Cadence software. If you are signed up for e-mail notifications, you&amp;#39;ve likely to notice new solutions, Application Notes (Technical Papers), Videos, Manuals, etc.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Hope you find this information useful.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Thanks&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;-Mukesh &lt;/p&gt;&lt;p style="text-align:justify;margin-left:0.25in;"&gt;&lt;span style="font-family:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&amp;nbsp; &lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="text-align:justify;"&gt;&amp;nbsp;&lt;/p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1317460" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/Ibhx4qD6llk" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Encounter+Timing+System/default.aspx">Encounter Timing System</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/STA/default.aspx">STA</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/static+timing+analysis/default.aspx">static timing analysis</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Spectre/default.aspx">Spectre</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/ETS/default.aspx">ETS</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/ETS+create_5F00_spice_5F00_deck/default.aspx">ETS create_spice_deck</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/spice+correlation/default.aspx">spice correlation</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/mukesh/default.aspx">mukesh</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/app+note/default.aspx">app note</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/spice/default.aspx">spice</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2012/12/10/spice-correlation-made-easy-by-ets.aspx</feedburner:origLink></item><item><title>The Case for the Tiny Testcase</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/G4jp4P8oKsA/the-case-for-the-tiny-testcase.aspx</link><pubDate>Fri, 16 Nov 2012 14:56:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1316707</guid><dc:creator>BobD</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1316707</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2012/11/16/the-case-for-the-tiny-testcase.aspx#comments</comments><description>&lt;div&gt;I often joke with customers that, although I realize they have to work on large designs, I do my best work on designs with just 2 or 3 instances. That&amp;#39;s because I&amp;#39;m often trying to replicate an issue they&amp;#39;ve observed on their design and I&amp;#39;m attempting to reproduce that behavior in a smaller circuit.&amp;nbsp;I&amp;#39;ve found tiny testcases to be extremely efficient ways to gain quick clarity on tool behaviors which can then be more effectively applied to the real design. &lt;b&gt;But it&amp;#39;s not just &lt;i&gt;having&lt;/i&gt; a tiny testcase that&amp;#39;s most useful. It&amp;#39;s the act of &lt;i&gt;creating&lt;/i&gt; the small testcase where most insight is gained.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But it&amp;#39;s not always easy to create a tiny testcase. Do you know how to write a syntactically correct gate-level Verilog netlist from scratch with a text editor? Do you know how to contrive complicated timing scenarios? Do you know to modify .lib/LEFs to replicate the things likely present in a design in a smaller setting? These are non-trivial things for someone who works in many different aspects of a design flow as designers are tasked with understanding an ever-increasing breadth of tools.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I recall a quote from a colleague of mine, Thad McCracken (&lt;a href="http://www.cadence.com/community/blogs/di/archive/2008/10/15/an-interview-with-global-timing-debug-architect-thad-mccracken.aspx"&gt;interview here&lt;/a&gt;), a few years ago. We were working on a benchmark and were having a hard time reproducing some of the issues we were observing in a small testcase. He said &amp;quot;&lt;b&gt;If we can&amp;#39;t reproduce it in a small testcase it tells me we fundamentally don&amp;#39;t understand the problem well enough.&lt;/b&gt;&amp;quot;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Isn&amp;#39;t that the truth of it? With the exception of run-time/memory related issues, nearly every issue we run into can be replicated in a tiny representative testcase --&amp;nbsp;but doing so can be very difficult.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Customers often joke with me that the oldest tricks in the EDA Applications Engineering books are (1) to ask if you&amp;#39;re using the latest tool version and (2) ask for a testcase. Sure it&amp;#39;s easy to get a self-contained testcase with Encounter (see the link for saveTestcase at the end of this post). But a better question to ask is, &amp;quot;&lt;b&gt;Do you have any hunches on the likely circumstances causing the issue?&lt;/b&gt;&amp;quot;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tiny testcases can be powerful in the user community as well. &lt;b&gt;Some of the most disciplined and effective project teams and CAD groups I&amp;#39;ve worked with relentlessly stress the tool at the onset of a project in ways they&amp;#39;re going to need it to perform during crunch time.&lt;/b&gt;&amp;nbsp;Sure, some things only come to light in the context of real designs. But creating tiny testcases can efficiently flush out the gaps between project requirements and tool capabilities to give everyone a chance to find ways to get the software to do what it needs to do to meet project requirements.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;In our busy schedules we often feel like we don&amp;#39;t have time to create small testcases to triage a situation. And indeed, sometimes we just need to send a testcase in to R&amp;amp;D for resolution. But next time you run into an issue I&amp;#39;d encourage you to consider whether a tiny testcase might shed more light on the situation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To borrow a line from&amp;nbsp;&lt;a href="http://www.cadence.com/community/blogs/ii/archive/2011/08/07/q-amp-a-former-azuro-ceo-explains-clock-concurrent-optimization.aspx"&gt;Paul Cunningham&lt;/a&gt;:&amp;nbsp;&amp;quot;&lt;b&gt;Sometimes we need to slow down to speed up.&lt;/b&gt;&amp;quot;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;-Bob Dwyer&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Related Reading:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cadence.com/Community/blogs/di/archive/2008/07/13/the-case-for-robust-database-access.aspx"&gt;The Case for Robust Database Access&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cadence.com/Community/blogs/di/archive/2009/07/16/how-to-create-a-self-contained-testcase-in-encounter.aspx"&gt;Creating a testcase with Encounter&amp;#39;s &amp;quot;saveTestcase&amp;quot; command&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1316707" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/G4jp4P8oKsA" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Digital+Implementation/default.aspx">Digital Implementation</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/verification/default.aspx">verification</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/encounter/default.aspx">encounter</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/testcase/default.aspx">testcase</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/test/default.aspx">test</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/test+case/default.aspx">test case</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/debug/default.aspx">debug</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/tiny+testcase/default.aspx">tiny testcase</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/small+testcase/default.aspx">small testcase</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Bob+Dwyer/default.aspx">Bob Dwyer</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2012/11/16/the-case-for-the-tiny-testcase.aspx</feedburner:origLink></item><item><title>Transitioning Your LEF-Based EDI System Design Flow to OpenAccess</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/rjrk6Wrp45A/transitioning-your-lef-based-edi-system-design-flow-to-openaccess.aspx</link><pubDate>Mon, 12 Nov 2012 14:00:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1316527</guid><dc:creator>wally1</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1316527</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2012/11/12/transitioning-your-lef-based-edi-system-design-flow-to-openaccess.aspx#comments</comments><description>&lt;p&gt;The trend of combining analog and digital circuits on a single chip has been growing for several years. More recently I&amp;#39;m seeing more and more designers improve their productivity by transitioning their designs to Open Access (OA) and taking advantage of the interoperability between Virtuoso and the Encounter Digital Implementation (EDI) System. &amp;nbsp;Whether you&amp;#39;re performing floorplanning in Virtuoso (schematic-driven flow) or EDI System (netlist driven flow), OA allows you take advantage of interoperability features such as seamlessly defining and passing routing constraints. The &lt;a href="http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=pubs;q=dmsflow/dmsflow11.2/dmsflowTOC.html"&gt;Mixed Signal Interoperability Guide&lt;/a&gt; (Cadence Online Support account required) is the resource I turn to frequently when I have questions on the mixed-signal flow. Formal training is also available through the &lt;a target="_blank" href="http://www.cadence.com/Training/NA/Pages/coursedetails.aspx?componentID=ES_85035_IC%206.1.5"&gt;Analog-on-Top Mixed-Signal Implementation&lt;/a&gt; class.&lt;/p&gt;&lt;p&gt;In this blog I want to focus on data preparation and highlight the steps involved to create a common PDK to be used by Virtuoso and EDI System. This involves translating the LEF files to OA, then reconciling the differences between your base PDK and the OA database created from the LEF. Once these differences are resolved,&amp;nbsp; I explain how to load the design into EDI System references the OA libraries.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Converting LEF to OA&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The first step is to create a LEF-compatible PDK which Virtuoso and EDI System can use. This is typically defined in 1 of 2 ways:&lt;/p&gt;1. A single PDK containing the base PDK information plus the LEF rules and vias required for physical design. &lt;ul&gt;&lt;li&gt;A single PDK is not flexible. For example, if you have to add a custom via or routing constraint you must modify this main PDK which may cause problems for other users.&lt;/li&gt;&lt;/ul&gt;2. Define the LEF rules and vias in an Incremental Technology Database (ITDB) which references the base PDK. &lt;ul&gt;&lt;li&gt;An ITDB is more flexible because updates can be made directly to the ITDB without effecting the base PDK. You can also define multiple ITDBs which reference the same base PDK.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The ITDB is typically created by converting the technology LEF to OA using the lefin command found in the Virtuoso installation. To create an ITDB from tech.lef referencing the basePDKLib you would run:&lt;/p&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;lefin -lef tech.lef -lib techLib -refLib basePDKLib&lt;/font&gt;&lt;/p&gt;&lt;p&gt;The LEF files defining the standard cells, hard macros and IO cells are then converted to OA using lefin:&lt;/p&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;lefin -lef stdcells.lef -lib macroLib -refLib techLib&lt;br /&gt;lefin -lef memories.lef -lib macroLib&lt;br /&gt;lefin -lef io.lef -lib macroLib&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;After the LEF files are transferred to OA run verilogAnnotate to indicate the bit order for busses:&lt;/p&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;verilogAnnotate -refLibs macroLib -verilog macros.v -refViews layout&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Reconciling the ITDB with the Base PDK&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Often the LEF technology data and the base PDK are not consistent and you must reconcile their differences. For example, layer names, units or manufacturing grid may differ. For more details on creating a LEF-compatible PDK see the application note &lt;a href="http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:DocumentViewer;src=wp;q=ApplicationNotes/Digital_IC_Design/OARefLibImport.pdf"&gt;Open Access Reference Library Import&lt;/a&gt; &amp;nbsp;on &lt;a href="http://support.cadence.com/"&gt;Cadence Online Support&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Another useful way to debug differences is compare your original technology LEF to the LEF generated from the OA tech file you&amp;#39;ve created. You can use the write_lef_library command to compare these LEFs. write_lef_library&amp;nbsp; writes out LEF syntax in a consistent order for easy comparison using the diff command. Below is an example flow to compare the LEF files. See the next section for details on specifying the variables to import an OA based library. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Validation of LEF versus OA&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Generate a LEF based on your original tech LEF:&lt;/p&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;# setup Tcl variables for reading the LEF based design&lt;br /&gt;init_design&lt;br /&gt;write_lef_library from_lef.lef&lt;br /&gt;exit&lt;/font&gt; &lt;/p&gt;&lt;p&gt;Generate a LEF based on the OA technology file:&lt;/p&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;# setup Tcl variables for OA based library using the same Verilog&lt;br /&gt;# and timing libraries&lt;br /&gt;init_design&lt;br /&gt;write_lef_library from_oa.lef&lt;br /&gt;exit&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;Now run diff to compare the LEF files and investigate the differences:&lt;/p&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;diff from_lef.lef from_oa.lef&lt;/font&gt;&lt;/p&gt;&lt;p&gt;Look for things such as rules and vias defined in one file but not the other. Also, review rules which are the same but have different values specified. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Reading in the Design&lt;/b&gt;&lt;/p&gt;&lt;p&gt;After all the LEF libraries are converted you are ready to read in the design. This can be done by reading in the OA libraries + Verilog or read the libraries and design from OA. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Reading in OA Libraries and Verilog Netlist&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Following are the variables to set to read in a design using OA libraries and a Verilog netlist:&lt;/p&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;# Library variables:&lt;br /&gt;set init_oa_ref_lib {techLib macroLib}&lt;br /&gt;set init_layout_view {layout}&lt;br /&gt;set init_abstract_view {abstract}&lt;br /&gt;# Design variables:&lt;br /&gt;set init_verilog {netlist.v}&lt;br /&gt;set init_design_settop 0&lt;br /&gt;set init_top_cell {top}&lt;br /&gt;# Set other init_design variables for global vars, timing, etc.&lt;br /&gt;init_design&lt;br /&gt;# Save the design to OA using saveDesign {lib cell view}&lt;br /&gt;saveDesign -cellview {designLib top preplace}&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Reading in OA Libraries and OA Design&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Following are the variables to set to read in a design using OA libraries and OA design:&lt;/p&gt;&lt;p&gt;&lt;font face="courier new,courier"&gt;# Library variables:&lt;br /&gt;set init_oa_ref_lib {techLib macroLib}&lt;br /&gt;set init_layout_view {layout}&lt;br /&gt;set init_abstract_view {abstract}&lt;br /&gt;# Design variables:&lt;br /&gt;set init_design_netlisttype {OA}&lt;br /&gt;set init_oa_design_lib {designLib}&lt;br /&gt;set init_oa_design_cell {top}&lt;br /&gt;set init_oa_design_view {layout}&lt;br /&gt;# Set other init_design variables for global vars, timing, etc.&lt;br /&gt;init_design&lt;br /&gt;# Save the design to OA using saveDesign {lib cell view}&lt;br /&gt;saveDesign -cellview {designLib top preplace}&lt;/font&gt;&lt;/p&gt;&lt;p&gt;And there you go. I hope this overview helps you understand the data preparation steps involved creating a LEF-compatible PDK and encourages you to utilize OA to take advantage of Virtuoso and EDI System&amp;#39;s interoperability. Be sure to leverage the resources I reference above to help your transition go smoothly. &lt;/p&gt;&lt;p&gt;Thanks,&lt;br /&gt;Brian Wallace&lt;/p&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1316527" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/rjrk6Wrp45A" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Digital+Implementation/default.aspx">Digital Implementation</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/blog/default.aspx">blog</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Virtuoso/default.aspx">Virtuoso</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/encounter/default.aspx">encounter</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/LEF/default.aspx">LEF</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/mixed+signal/default.aspx">mixed signal</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EDI+system/default.aspx">EDI system</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/mixed-signal/default.aspx">mixed-signal</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Cadence+Online+Support/default.aspx">Cadence Online Support</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Brian+Wallace/default.aspx">Brian Wallace</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/OpenAccess/default.aspx">OpenAccess</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/PDK/default.aspx">PDK</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/OA/default.aspx">OA</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/LEF+to+OpenAccess/default.aspx">LEF to OpenAccess</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2012/11/12/transitioning-your-lef-based-edi-system-design-flow-to-openaccess.aspx</feedburner:origLink></item><item><title>Five-Minute Tutorial: Why You Should Be Running Early DRC</title><link>http://feedproxy.google.com/~r/cadence/community/blogs/di/~3/JjxtALOzQmU/five-minute-tutorial-why-you-should-be-running-early-drc.aspx</link><pubDate>Thu, 11 Oct 2012 19:42:00 GMT</pubDate><guid isPermaLink="false">75bcbcf9-38a3-4e2e-b84b-26c8c46a9500:1315691</guid><dc:creator>Kari</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://www.cadence.com/Community/blogs/di/rsscomments.aspx?PostID=1315691</wfw:commentRss><comments>http://www.cadence.com/Community/blogs/di/archive/2012/10/11/five-minute-tutorial-why-you-should-be-running-early-drc.aspx#comments</comments><description>&lt;div&gt;&lt;/div&gt;&lt;div&gt;Everyone knows you have to run signoff DRC before you tape out a design. Sometimes, DRC is left to exactly that moment - right before the tapeout. If major problems are found in the design at that point, the tapeout either has to be delayed, or there is a mad scramble to fix the issues. This is a situation no one wants to find themselves in.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Running DRC early and often is very much worth the effort. In addition to the general benefits of having the DRC deck and flow set up early so that it&amp;#39;s pushbutton later in the project (there are often switches for metal stack, RDL type, bump pitch, etc that need to be selected), I recommend running DRC at the following milestones:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Power grid in place, no cell placement or signal routing. Hard macros/IP may be placed.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;/span&gt;Running DRC here will make sure that your power grid is DRC clean. It can be very costly to have to fix power grid issues around signal routing late in the flow. Also, a majority of DRC issues can occur in power grid vias. Getting this clean early will put you ahead of the game. If your memories/IP/other macros are already placed, you&amp;#39;ll be verifying the power connections to them as well, and you&amp;#39;ll also make sure they are placed far enough apart from each other.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;All cells placed (including macros/IP and filler cells), but no signal routing.&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;/span&gt;Checking DRC at this point is critical. You need to make sure you have all required welltaps and/or endcaps, and that they are spaced appropriately. Having to fix this later in the flow will mean moving functional cells and affecting your timing. You also want to make sure that any IP or memory blocks have the appropriate spacing between each other and to standard cells. Alignment marker cells are required in many processes, so you&amp;#39;ll want to check that you&amp;#39;ve got that right as well. Don&amp;#39;t forget to add standard cell fillers before this run! If you leave out the fillers, you&amp;#39;ll have a ton of DRC violations to wade through! You also want to make sure your fill methodology follows any VT spacing rules, and the no-filler1 rule if that exists for your process. (For more info on that particular issue, see &lt;a href="http://www.cadence.com/Community/blogs/di/archive/2011/05/25/five-minute-tutorial-avoiding-the-use-of-fill1-cells.aspx"&gt;Five-Minute Tutorial: Avoiding The Use Of FILL1 Cells&lt;/a&gt;.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;As soon as you have the first cut of the design with all cells placed and all signal routing complete.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;/span&gt;This can be a big one too. If this is a new process, you may be vetting the LEF routing rules. In a tested process, the routing will usually be ok, but you may have routing access issues to memories or IP that may be using outdated blockage methods. I see a lot of this with memories where the blockage does not go to the edge of the block (the recommended method) so that NanoRoute can access the pins in a planar fashion. You may need to edit the macro blockages, and you&amp;#39;ll want to do this at the beginning of the project when you&amp;#39;re not in so much of a rush.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;After the first pass of metal fill.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;/span&gt;I often see DRC violations regarding metal fill spacing from the edge and corners of the design. If you&amp;#39;re using a signoff fill utility, you probably don&amp;#39;t need to worry about this. But most of the time, metal fill is done in Encounter Digital Implementation System (EDI) so that the timing effects can be seen easily. In that case, you may need to add some routing blockage or adjust your fill settings to get DRC-clean fill. It&amp;#39;s also important to make sure you&amp;#39;re hitting the metal density targets. A special note: be on the lookout for MAX density violations! It can and does happen, and it&amp;#39;s harder to fix than min density.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you&amp;#39;ve done all this, then you can continue intermediate DRC checks as you near tapeout and you shouldn&amp;#39;t have that much to fix in the final days of your design.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDI users will be familiar with the verifyGeometry command. I highly recommend running this before you start any of the DRC runs listed above! The verifyGeometry function is not a complete signoff check, but it will point out almost all of your metal DRC issues (and also shorts). Signoff DRC is still needed to check layers below M1 (since EDI uses LEF and not full layouts). But if you proceed to DRC without running verifyGeometry, you&amp;#39;re not saving yourself any time. Fix what you can in EDI with verifyGeometry first; then you&amp;#39;ll be in very good shape for early DRC!&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;You may also be interested in this post: &lt;a href="http://www.cadence.com/Community/blogs/di/archive/2012/09/10/simple-steps-to-debug-drc-violations-undetected-in-edi-system.aspx?postID=1314781"&gt;Simple Steps To Debug DRC Violations Undetected In EDI System&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Kari Summers&lt;/div&gt;&lt;img src="http://www.cadence.com/Community/aggbug.aspx?PostID=1315691" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/cadence/community/blogs/di/~4/JjxtALOzQmU" height="1" width="1"/&gt;</description><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/DRC/default.aspx">DRC</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/EDI/default.aspx">EDI</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Encounter+digital+Implementation+system/default.aspx">Encounter digital Implementation system</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/signoff/default.aspx">signoff</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/NanoRoute/default.aspx">NanoRoute</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/Verify+Geometry/default.aspx">Verify Geometry</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/metal+fill/default.aspx">metal fill</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/memories/default.aspx">memories</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/routing+access/default.aspx">routing access</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/macros/default.aspx">macros</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/power+grid/default.aspx">power grid</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/filler/default.aspx">filler</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/IP/default.aspx">IP</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/welltap/default.aspx">welltap</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/endcap/default.aspx">endcap</category><category domain="http://www.cadence.com/Community/blogs/di/archive/tags/early+DRC/default.aspx">early DRC</category><feedburner:origLink>http://www.cadence.com/Community/blogs/di/archive/2012/10/11/five-minute-tutorial-why-you-should-be-running-early-drc.aspx</feedburner:origLink></item><media:rating>nonadult</media:rating></channel></rss>
