<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7322165189661791421</id><updated>2011-04-21T14:04:51.806-07:00</updated><category term='Python'/><category term='Tcl'/><category term='Perl'/><category term='vlsi'/><category term='physical design'/><category term='Scheme'/><category term='Encounter'/><category term='Astro'/><title type='text'>EDA code snippets</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://edacodesnippets.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322165189661791421/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://edacodesnippets.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sini</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7322165189661791421.post-2043634886089283188</id><published>2008-06-21T05:37:00.000-07:00</published><updated>2008-06-21T05:45:46.145-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Encounter'/><category scheme='http://www.blogger.com/atom/ns#' term='physical design'/><category scheme='http://www.blogger.com/atom/ns#' term='Tcl'/><category scheme='http://www.blogger.com/atom/ns#' term='vlsi'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Astro'/><title type='text'>Scripting for Physical Design</title><content type='html'>There are a lot of commercially available tools for the physical design of integrated circuits. However, knowledge of a bit of programming comes handy to the physical design engineer, as most of these tools provide some kind of programming interface. For example, In Synopsys' Astro, you can use scheme or Tcl/Tk programs to create new utilities, or automate your flow/commands. In Cadence' Virtuoso platform, you can take advantage of the skill language provided for creating pCells and automating the flow. Similarly, for Encounter and Magma tools, TCL can be used.&lt;br /&gt;&lt;br /&gt;I have been talking about the languages which can be used in the tool itself. Perl and Python are two languages extensively used by design engineers or CAD engineers for processing of data, and enhancing the existing features of the commercially available tools. Perl in particular is extensively used in the processing of various reports. &lt;br /&gt;&lt;br /&gt;In this blog, I will be uploading small codes which come in handy for a CAD/Design engineer. Most of these will be in Tcl, Scheme and Perl.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322165189661791421-2043634886089283188?l=edacodesnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edacodesnippets.blogspot.com/feeds/2043634886089283188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7322165189661791421&amp;postID=2043634886089283188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322165189661791421/posts/default/2043634886089283188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322165189661791421/posts/default/2043634886089283188'/><link rel='alternate' type='text/html' href='http://edacodesnippets.blogspot.com/2008/06/scripting-for-physical-design.html' title='Scripting for Physical Design'/><author><name>Sini</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322165189661791421.post-3131633691558365479</id><published>2008-02-21T01:47:00.000-08:00</published><updated>2008-06-21T05:36:57.444-07:00</updated><title type='text'>list_attributes</title><content type='html'>I always seem to forget the list_attributes syntax. Thought I will put it down here.&lt;br /&gt;&lt;br /&gt;list_attributes -application -class pin&lt;br /&gt;list_attributes -application&lt;br /&gt;&lt;br /&gt;get_attribute [get_ports a[0] ] center&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322165189661791421-3131633691558365479?l=edacodesnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edacodesnippets.blogspot.com/feeds/3131633691558365479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7322165189661791421&amp;postID=3131633691558365479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322165189661791421/posts/default/3131633691558365479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322165189661791421/posts/default/3131633691558365479'/><link rel='alternate' type='text/html' href='http://edacodesnippets.blogspot.com/2008/02/listattributes.html' title='list_attributes'/><author><name>Sini</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322165189661791421.post-1424917698051841774</id><published>2007-11-30T00:21:00.000-08:00</published><updated>2008-06-21T05:36:17.223-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scheme'/><title type='text'>Power and Grounds of Current cell</title><content type='html'>The following scheme code in Astro gives you the list of Power and Ground nets in your design. It also gives you the list of all nets associated with your ports, even though I am not displaying it as an output. Manioulating these codes will let you filter the nets using any of the object fields available.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;(db-foreach (geGetEditCell) '() "Port" portId&lt;br /&gt;(begin&lt;br /&gt;        (define netId (dbFetchObjectField (geGetEditCell) portId "netid"))&lt;br /&gt;        (define powerId (dbFetchObjectField (geGetEditCell) netId "type"))&lt;br /&gt;        (define netName (dbFetchObjectField (geGetEditCell) netId "name"))&lt;br /&gt;    (if (eq? powerId 2)&lt;br /&gt;    (begin&lt;br /&gt;        (display "Power :")&lt;br /&gt;        (display netName)&lt;br /&gt;              (newline)&lt;br /&gt;    ))&lt;br /&gt;    (if (eq? powerId 4)&lt;br /&gt;    (begin&lt;br /&gt;        (display "Ground :")&lt;br /&gt;        (display netName)&lt;br /&gt;        (newline)&lt;br /&gt;    ))&lt;br /&gt;#t) )&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322165189661791421-1424917698051841774?l=edacodesnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edacodesnippets.blogspot.com/feeds/1424917698051841774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7322165189661791421&amp;postID=1424917698051841774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322165189661791421/posts/default/1424917698051841774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322165189661791421/posts/default/1424917698051841774'/><link rel='alternate' type='text/html' href='http://edacodesnippets.blogspot.com/2007/11/power-and-grounds-of-current-cell.html' title='Power and Grounds of Current cell'/><author><name>Sini</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7322165189661791421.post-7298147015587724445</id><published>2007-11-29T23:49:00.000-08:00</published><updated>2008-06-21T05:33:57.193-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scheme'/><title type='text'>Display the top-level ports</title><content type='html'>This is a code to be used in Astro, to get all the top level ports of your design. This code shows the db-foreach loop and the dbFetchObjectField command. &lt;br /&gt;&lt;br /&gt;(db-foreach (geGetEditCell) '() "Port" portId&lt;br /&gt; (begin&lt;br /&gt;(display (dbFetchObjectField (geGetEditCell) portId "name"))&lt;br /&gt;        (newline)&lt;br /&gt;#t) )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7322165189661791421-7298147015587724445?l=edacodesnippets.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edacodesnippets.blogspot.com/feeds/7298147015587724445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7322165189661791421&amp;postID=7298147015587724445' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7322165189661791421/posts/default/7298147015587724445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7322165189661791421/posts/default/7298147015587724445'/><link rel='alternate' type='text/html' href='http://edacodesnippets.blogspot.com/2007/11/display-top-level-ports.html' title='Display the top-level ports'/><author><name>Sini</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
