<?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/opensearch/1.1/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' gd:etag='W/&quot;Dk4CQHw9eSp7ImA9WhFTFk0.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019</id><updated>2013-06-07T04:36:01.261-07:00</updated><category term='power gating'/><category term='STA'/><title>VLSI DESIGN</title><subtitle type='html'>Solutions for VLSI</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;CU8BR3o9fSp7ImA9WhFTFk0.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-3377368611041945259</id><published>2013-06-07T04:17:00.002-07:00</published><updated>2013-06-07T04:17:36.465-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2013-06-07T04:17:36.465-07:00</app:edited><title></title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;script src="https://cdn.widgetserver.com/syndication/subscriber/InsertWidget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;if (WIDGETBOX) WIDGETBOX.renderWidget('6df1ca6f-b166-4f01-955a-95a3715ff201');&lt;/script&gt;
&lt;noscript&gt;Get the &lt;a href="https://www.widgetbox.com/widget/fpgaseek"&gt;FPGA Seek: Exclusive FPGA Search&lt;/a&gt; widget and many other &lt;a href="https://www.widgetbox.com/"&gt;great free widgets&lt;/a&gt; at &lt;a href="https://www.widgetbox.com"&gt;Widgetbox&lt;/a&gt;! Not seeing a widget? (&lt;a href="http://support.widgetbox.com/"&gt;More info&lt;/a&gt;)&lt;/noscript&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/3377368611041945259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2013/06/if-widgetbox-widgetbox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/3377368611041945259?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/3377368611041945259?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2013/06/if-widgetbox-widgetbox.html' title=''/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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 gd:etag='W/&quot;C0cCQH4zfSp7ImA9WhdbFEw.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-4940721422941107391</id><published>2011-10-12T02:17:00.005-07:00</published><updated>2011-10-12T02:17:41.085-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-10-12T02:17:41.085-07:00</app:edited><title></title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h2&gt; &lt;a href="http://bitsbyta.blogspot.com/2011/05/verilog-code-for-83-priority-encoder_02.html"&gt;Verilog Code For 8:3 Priority Encoder using "casex" | Verilog Example   Codes&lt;/a&gt; &lt;/h2&gt;&lt;span class="meta"&gt; &lt;/span&gt;    &lt;div dir="ltr" style="text-align: left;"&gt; &lt;div style="text-align: justify;"&gt; Priority encoder is a special type of encoder in which multiple bits at  the input can be asserted. The response at the output is however defined  by the priority &lt;span class="IL_AD" id="IL_AD4"&gt;rule&lt;/span&gt;, defined  previously. Priority encoders have vast application in different  client-server systems. In client-server systems decision is made to  grant a &lt;span class="IL_AD" id="IL_AD6"&gt;service&lt;/span&gt; based on the priority of any specific client.&lt;/div&gt;&lt;div style="text-align: justify;"&gt; Here is a verilog code for an 8:3 priority encoder. It grants the  highest priority to the "most left sided bit in the input word". &lt;span class="IL_AD" id="IL_AD2"&gt;For example&lt;/span&gt; in data word "00010101" the highest priority is carried by the most left sided one, appearing at the fourth (&lt;span class="IL_AD" id="IL_AD3"&gt;counting&lt;/span&gt;  from left side). So all the other bits that come next to it will be  discarded or in other words will not be taken into account. Verilog  implementation has been done using "casex" statement.&lt;br /&gt;
&lt;a href="" name="more"&gt;&lt;/a&gt;&lt;/div&gt;&lt;blockquote&gt; module priority_encoder (code, valid_data, data);&lt;br /&gt;
output [2:0] code;&lt;br /&gt;
output&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; valid data;&lt;br /&gt;
input&amp;nbsp; [7:0] data;&lt;br /&gt;
reg&amp;nbsp;&amp;nbsp;&amp;nbsp; [2:0] code;&lt;br /&gt;
&lt;br /&gt;
assign valid_data= |data; // Use of "&lt;span class="IL_AD" id="IL_AD1"&gt;reduction&lt;/span&gt; or" operator&lt;br /&gt;
always @ (data)&lt;br /&gt;
begin&lt;br /&gt;
casex (data)&lt;br /&gt;
8'b1xxxxxxx : code=7;&lt;br /&gt;
8'b01xxxxxx : code=6;&lt;br /&gt;
8'b001xxxxx : code=5&lt;br /&gt;
8'b0001xxxx : code=4;&lt;br /&gt;
8'b00001xxx : code=3;&lt;br /&gt;
8'b000001xx : code=2;&lt;br /&gt;
8'b0000001x : code=1;&lt;br /&gt;
8'b00000001 : code=0;&lt;br /&gt;
dafault&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : code=3'bx;&lt;br /&gt;
&lt;br /&gt;
endcase&lt;br /&gt;
&amp;nbsp;endmodule&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/4940721422941107391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/10/verilog-code-for-83-priority-encoder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/4940721422941107391?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/4940721422941107391?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/10/verilog-code-for-83-priority-encoder.html' title=''/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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 gd:etag='W/&quot;A0UCR3k7eyp7ImA9WhdXF0s.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-8757899305721651771</id><published>2011-08-30T22:40:00.000-07:00</published><updated>2011-08-30T22:41:06.703-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T22:41:06.703-07:00</app:edited><title>Clock Gating</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://vlsidesigncentger.blogspot.com/"&gt;&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;span style="color: black; font-family: times new roman; font-size: 100%;"&gt;Clock tree consume more than 50 % of dynamic power. The components of this power are: &lt;/span&gt;&lt;br /&gt;
&lt;div style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;span style="color: black; font-family: times new roman; font-size: 100%;"&gt;1) Power consumed by combinatorial logic whose values are changing on each clock edge&lt;/span&gt;&lt;span style="color: black; font-family: times new roman; font-size: 100%;"&gt; &lt;br /&gt;
2) Power consumed by flip-flops and&lt;/span&gt;&lt;span style="color: black; font-family: times new roman; font-size: 100%;"&gt; &lt;br /&gt;
3) The power consumed by the clock buffer tree in the design. &lt;/span&gt;&lt;br /&gt;
&lt;div style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;span style="color: black; font-size: 100%;"&gt;It  is good design idea to turn off the clock when it is not needed.  Automatic clock gating is supported by modern EDA tools. They identify  the circuits where clock gating can be inserted.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;span style="color: black; font-size: 100%;"&gt;RTL  clock gating works by identifying groups of flip-flops which share a  common enable control signal. Traditional methodologies use this enable  term to control the select on a multiplexer connected to the D port of  the flip-flop or to control the clock enable pin on a flip-flop with  clock enable capabilities. RTL clock gating uses this enable signal to  control a clock gating circuit which is connected to the clock ports of  all of the flip-flops with the common enable term. Therefore, if a bank  of flip-flops which share a common enable term have RTL clock gating  implemented, the flip-flops will consume zero dynamic power as long as  this enable signal is false.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;span style="color: black; font-size: 100%;"&gt;There are two types of clock gating styles available. They are:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;span style="color: black; font-size: 100%;"&gt;1) Latch-based clock gating &lt;br /&gt;
2) Latch-free clock gating.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;span style="color: black; font-size: 100%;"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;span style="color: black; font-size: 130%;"&gt;&lt;b&gt;Latch free clock gating&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div face="times new roman" style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 100%;"&gt;The  latch-free clock gating style uses a simple AND or OR gate (depending  on the edge on which flip-flops are triggered). Here if enable signal  goes inactive  in between the clock pulse or if it multiple times then  gated clock output either can terminate prematurely or generate multiple  clock pulses. This restriction makes the latch-free clock gating style  inappropriate for our single-clock flip-flop based design.&lt;/span&gt; &lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Se0VANaI9uM/SAbOzKBXwVI/AAAAAAAAATU/XFaTeFp0f84/s1600-h/latch_free_clock_gating.jpeg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5190062998849831250" src="http://4.bp.blogspot.com/_Se0VANaI9uM/SAbOzKBXwVI/AAAAAAAAATU/XFaTeFp0f84/s400/latch_free_clock_gating.jpeg" style="cursor: pointer;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div lang="en-GB" style="line-height: 150%; margin-top: 0.08in; text-align: center;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 100%;"&gt;&lt;b&gt;Latch free clock gating&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;b&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-family: TimesNewRoman,serif;"&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;&lt;span style="color: black;"&gt;Latch based clock gating&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div face="times new roman" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="color: black;"&gt;The  latch-based clock gating style adds a level-sensitive latch to the  design to hold the enable signal from the active edge of the clock until  the inactive edge of the clock. Since the latch captures the state of  the enable signal and holds it until the complete clock pulse has been  generated, the enable signal need only be stable around the rising edge  of the clock, just as in the traditional ungated design style.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Se0VANaI9uM/SAbOZaBXwUI/AAAAAAAAATM/BF529kmvOXk/s1600-h/latch_based_clock_gating.jpeg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5190062556468199746" src="http://1.bp.blogspot.com/_Se0VANaI9uM/SAbOZaBXwUI/AAAAAAAAATM/BF529kmvOXk/s400/latch_based_clock_gating.jpeg" style="cursor: pointer;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div lang="en-GB" style="line-height: 150%; margin-top: 0.08in; text-align: center;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 100%;"&gt;&lt;b&gt;    Latch based clock gating&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: times new roman; margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: black; font-size: 100%;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: black; font-size: 100%;"&gt;Specific  clock gating cells are required in library to be utilized by the  synthesis tools. Availability of clock gating cells and automatic  insertion by the EDA tools makes it simpler method of low power  technique. Advantage of this method is that clock gating does not  require modifications to RTL description.&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/8757899305721651771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/clock-gating.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/8757899305721651771?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/8757899305721651771?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/clock-gating.html' title='Clock Gating'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Se0VANaI9uM/SAbOzKBXwVI/AAAAAAAAATU/XFaTeFp0f84/s72-c/latch_free_clock_gating.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;Ak4ARX47eyp7ImA9WhdXF0s.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-7659344534042287677</id><published>2011-08-30T22:35:00.001-07:00</published><updated>2011-08-30T22:35:44.003-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T22:35:44.003-07:00</app:edited><title>Backend (Physical Design) Interview Questions and Answers</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/03/backend-physical-design-interview.html"&gt;&lt;br /&gt;
&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;  &lt;/div&gt;&lt;div class="post-body entry-content"&gt; &lt;ul&gt;&lt;li&gt;Below are the sequence of questions asked for a physical design engineer. &lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;
&lt;br /&gt;
In which field are you interested?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Answer to this question depends on your interest, expertise and to the requirement for which you have been interviewed.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Well..the candidate gave answer: Low power design&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Can you talk about low power techniques?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How low power and latest 90nm/65nm technologies are related?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Refer &lt;a href="http://asic-soc.blogspot.com/"&gt;here&lt;/a&gt; and browse for different low power techniques. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Do you know about input vector controlled method of leakage reduction?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Leakage  current of a gate is dependant on its inputs also. Hence find the set  of inputs which gives least leakage. By applyig this minimum leakage  vector to a circuit it is possible to decrease the leakage current of  the circuit when it is in the standby mode. This method is known as  input vector controlled method of leakage reduction.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How can you reduce dynamic power?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-Reduce switching activity by designing good RTL&lt;/li&gt;
&lt;li&gt;-Clock gating&lt;/li&gt;
&lt;li&gt;-Architectural improvements&lt;/li&gt;
&lt;li&gt;-Reduce supply voltage&lt;/li&gt;
&lt;li&gt;-Use multiple voltage domains-Multi vdd&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;What are the vectors of dynamic power?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Voltage and Current&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How will you do power planning?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Refer &lt;a href="http://asic-soc.blogspot.com/2007/10/power-planning.html"&gt;here&lt;/a&gt; for power planning. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;If you have both IR drop and congestion how will you fix it?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-Spread macros&lt;/li&gt;
&lt;li&gt;-Spread standard cells&lt;/li&gt;
&lt;li&gt;-Increase strap width&lt;/li&gt;
&lt;li&gt;-Increase number of straps&lt;/li&gt;
&lt;li&gt;-Use proper blockage&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Is increasing power line width and providing more number of straps are the only solution to IR drop?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-Spread macros&lt;/li&gt;
&lt;li&gt;-Spread standard cells&lt;/li&gt;
&lt;li&gt;-Use proper blockage&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;In a reg to reg path if you have setup problem where will you insert buffer-near to launching flop or capture flop? Why?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;(buffers  are inserted for fixing fanout voilations and hence they reduce setup  voilation; otherwise we try to fix setup voilation with the sizing of  cells; now just assume that you must insert buffer !)&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Near to capture path.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Because  there may be other paths passing through or originating from the flop  nearer to lauch flop. Hence buffer insertion may affect other paths  also. It may improve all those paths or degarde. If all those paths have  voilation then you may insert buffer nearer to launch flop provided it  improves slack.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How will you decide best floorplan?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Refer &lt;a href="http://asic-soc.blogspot.com/2007/10/floor-planning.html"&gt;here&lt;/a&gt;  for floor planning. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;What is the most challenging task you handled?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;What is the most challenging job in P&amp;amp;R flow?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-It may be power planning- because you found more IR drop&lt;/li&gt;
&lt;li&gt;-It may be low power target-because you had more dynamic and leakage power&lt;/li&gt;
&lt;li&gt;-It may be macro placement-because it had more connection with standard cells or macros&lt;/li&gt;
&lt;li&gt;-It may be CTS-because you needed to handle multiple clocks and clock domain crossings&lt;/li&gt;
&lt;li&gt;-It may be timing-because sizing cells in ECO flow is not meeting timing&lt;/li&gt;
&lt;li&gt;-It may be library preparation-because you found some inconsistancy in libraries.  &lt;/li&gt;
&lt;li&gt;-It may be DRC-because you faced thousands of voilations&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How will you synthesize clock tree?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-Single clock-normal synthesis and optimization&lt;/li&gt;
&lt;li&gt;-Multiple clocks-Synthesis each clock seperately&lt;/li&gt;
&lt;li&gt;-Multiple clocks with domain crossing-Synthesis each clock seperately and balance the skew&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How many clocks were there in this project?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-It is specific to your project&lt;/li&gt;
&lt;li&gt;-More the clocks more challenging !&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How did you handle all those clocks?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-Multiple clocks--&amp;gt;synthesize seperately--&amp;gt;balance the skew--&amp;gt;optimize the clock tree &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Are they come from seperate external resources or PLL?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-If  it is from seperate clock sources (i.e.asynchronous; from different  pads or pins) then balancing skew between these clock sources becomes  challenging.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;-If it is from PLL (i.e.synchronous) then skew balancing is comparatively easy.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Why buffers are used in clock tree?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;To balance skew (i.e. flop to flop delay)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;What is cross talk?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Switching  of the signal in one net can interfere neigbouring net due to cross  coupling capacitance.This affect is known as cros talk. Cross talk may  lead setup or hold voilation. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How can you avoid cross talk?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-Double spacing=&amp;gt;more spacing=&amp;gt;less capacitance=&amp;gt;less cross talk&lt;/li&gt;
&lt;li&gt;-Multiple vias=&amp;gt;less resistance=&amp;gt;less RC delay&lt;/li&gt;
&lt;li&gt;-Shielding=&amp;gt; constant cross coupling capacitance =&amp;gt;known value of crosstalk&lt;/li&gt;
&lt;li&gt;-Buffer insertion=&amp;gt;boost the victim strength&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How shielding avoids crosstalk problem? What exactly happens there?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;-High frequency noise (or glitch)is coupled to VSS (or VDD) since shilded layers are connected to either VDD or VSS.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Coupling capacitance remains constant with VDD or VSS. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How spacing helps in reducing crosstalk noise?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;width is more=&amp;gt;more spacing between two conductors=&amp;gt;cross coupling capacitance is less=&amp;gt;less cross talk&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Why double spacing and multiple vias are used related to clock?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Why  clock?-- because it is the one signal which chages it state regularly  and more compared to any other signal. If any other signal switches fast  then also we can use double space.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Double spacing=&amp;gt;width is more=&amp;gt;capacitance is less=&amp;gt;less cross talk&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Multiple vias=&amp;gt;resistance in parellel=&amp;gt;less resistance=&amp;gt;less RC delay&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;How buffer can be used in victim to avoid crosstalk?&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Buffer  increase victims signal strength; buffers break the net  length=&amp;gt;victims are more tolerant to coupled signal from aggressor.&lt;/li&gt;
&lt;/ul&gt;&lt;div id="lws_3"&gt;&lt;div class="linkwithin_outer" style="border: 0; clear: both; margin: 0; padding: 0;"&gt; &lt;div class="linkwithin_inner" style="border: 0; margin: 0; padding: 0;"&gt;     &lt;div class="linkwithin_text" id="linkwithin_text_3" style="border: 0; font-weight: bold; margin: 0; padding: 20px 0 5px; text-align: left;"&gt;         You might also like:     &lt;/div&gt;&lt;div class="linkwithin_posts" style="border: 0; margin: 0; padding: 0;"&gt;              &lt;ul class="linkwithin_textlist" style="margin: 0 0 0 15px; padding: 0;"&gt;&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/07/companywise-asicvlsi-interview.html"&gt;Companywise ASIC/VLSI Interview Questions&lt;/a&gt; &lt;/li&gt;
&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/02/physical-design-questions-and-answers.html"&gt;Physical Design Questions and Answers&lt;/a&gt; &lt;/li&gt;
&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2007/10/physical-design-interview-questions.html"&gt;Physical Design Interview Questions&lt;/a&gt; &lt;/li&gt;
&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2007/10/synthesis-interview-questions.html"&gt;Synthesis Interview Questions&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div id="linkwithin_logo_3" style="border: 0; clear: both; margin: 0 0 20px 0; padding: 5px 6px 0 0; text-align: right;"&gt;         &lt;a href="http://www.linkwithin.com/learn?ref=widget" id="linkwithin_logolink_3" style="border-bottom: none; color: #bbbbbb; font: 10px arial; text-decoration: none;" target="_blank"&gt;&lt;b&gt;LinkWithin&lt;/b&gt;&lt;/a&gt;     &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="post-footer"&gt; &lt;div class="post-footer-line post-footer-line-1"&gt;&lt;span class="post-comment-link"&gt; &lt;a class="comment-link" href="http://asic-soc.blogspot.com/2008/03/backend-physical-design-interview.html#comments"&gt;0 comments&lt;/a&gt; &lt;/span&gt; &lt;span class="post-icons"&gt; &lt;span class="item-action"&gt; &lt;a href="http://www.blogger.com/email-post.g?blogID=2516717450266481889&amp;amp;postID=2384851967523413135" title="Email Post"&gt; &lt;img alt="" class="icon-action" height="13" src="http://img1.blogblog.com/img/icon18_email.gif" width="18" /&gt; &lt;/a&gt; &lt;/span&gt; &lt;/span&gt; &lt;span class="post-labels"&gt; Tags: &lt;a href="http://asic-soc.blogspot.com/search/label/Physical%20Design" rel="tag"&gt;Physical Design&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/Synthesis" rel="tag"&gt;Synthesis&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/Timing%20Analysis" rel="tag"&gt;Timing Analysis&lt;/a&gt; &lt;/span&gt; &lt;/div&gt;&lt;div class="post-footer-line post-footer-line-3"&gt;&lt;span class="reaction-buttons"&gt; &lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td class="reactions-label-cell" nowrap="nowrap" valign="top" width="1%"&gt; &lt;span class="reactions-label"&gt; Reactions:&lt;/span&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;h2 class="date-header"&gt;&lt;span&gt;16 February 2008&lt;/span&gt;&lt;/h2&gt;&lt;a href="" name="3605214236668358106"&gt;&lt;/a&gt; &lt;h3 class="post-title entry-title"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/02/physical-design-questions-and-answers.html"&gt;Physical Design Questions and Answers&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;  &lt;/div&gt;&lt;ul&gt;&lt;li&gt;I am getting several emails requesting answers to the  questions posted in this blog. But it is very difficult to provide  detailed answer to all questions in my available spare time. Hence i  decided to give "short and sweet" one line answers to the questions so  that readers can immediately benefited. Detailed answers will be posted  in later stage.I have given answers to some of the physical design  questions here. Enjoy !&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;What parameters (or aspects) differentiate Chip Design and Block level design?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Chip design has I/O pads; block design has pins.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Chip design uses all metal layes available; block design may not use all metal layers.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Chip is generally rectangular in shape; blocks can be rectangular, rectilinear.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Chip design requires several packaging; block design ends in a macro.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   How do you place macros in a full chip design?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     First check flylines i.e. check net connections from macro to macro and macro to standard cells.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; If there is more connection from macro to macro place those macros nearer to each other preferably nearer to core boundaries.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    If input pin is connected to macro better to place nearer to that pin or pad.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    If macro has more connection to standard cells spread the macros inside core.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Avoid criscross placement of macros.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Use soft or hard blockages to guide placement engine.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   Differentiate between a Hierarchical Design and flat design?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Hierarchial design has blocks, subblocks in an hierarchy; Flattened design has no subblocks and it has only leaf cells.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Hierarchical design takes more run time; Flattened design takes less run time.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   Which is more complicated when u have a 48 MHz and 500 MHz clock design?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     500 MHz; because it is more constrained (i.e.lesser clock period) than 48 MHz design.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   Name few tools which you used for physical verification?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Herculis from Synopsys, Caliber from Mentor Graphics.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What are the input files will you give for primetime correlation?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Netlist, Technology library, Constraints, SPEF or SDF file.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;      If the routing congestion exists between two macros, then what will you do?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Provide soft or hard blockage&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   How will you decide the die size?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     By checking the total area of the design you can decide die size.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   If lengthy metal layer is connected to diffusion and poly, then which one will affect by antenna problem?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Poly&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   If the full chip design is routed by 7 layer metal, why macros are designed using 5LM instead of using 7LM?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;  Because top two metal layers are required for global routing in chip  design. If top metal layers are also used in block level it will create  routing blockage.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   In your project what is die size, number of metal layers, technology, foundry, number of clocks?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Die size: tell in mm eg. 1mm x 1mm ; remeber 1mm=1000micron which is a big size !!&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Metal layers: See your tech file. generally for 90nm it is 7 to 9.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Technology: Again look into tech files.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Foundry:Again look into tech files; eg. TSMC, IBM, ARTISAN etc&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Clocks: Look into your design and SDC file !&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   How many macros in your design?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     You know it well as you have designed it ! A SoC (System On Chip) design may have 100 macros also !!!!&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is each macro size and number of standard cell count?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Depends on your design.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;     What are the input needs for your design?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     For synthesis: RTL, Technology library, Standard cell library, Constraints&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    For Physical design: Netlist, Technology library, Constraints, Standard cell library&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is SDC constraint file contains?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Clock definitions&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Timing exception-multicycle path, false path&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Input and Output delays&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   How did you do power planning?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;     How to calculate core ring width, macro ring width and strap or trunk width?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;     How to find number of power pad and IO power pads?&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;     How the width of metal and number of straps calculated for power and ground?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;  Get the total core power consumption; get the metal layer current  density value from the tech file; Divide total power by number sides of  the chip; Divide the obtained value from the current density to get core  power ring width. Then calculate number of straps using some more  equations. Will be explained in detail later.&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;     How to find total chip power?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Total chip power=standard cell power consumption,Macro power consumption pad power consumption.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What are the problems faced related to timing?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Prelayout: Setup, Max transition, max capacitance&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Post layout: Hold&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   How did you resolve the setup and hold problem?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Setup: upsize the cells&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Hold: insert buffers&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;    In which layer do you prefer for clock routing and why?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Next lower layer to the top two metal layers(global routing layers). Because it has less resistance hence less RC delay.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   If in your design has reset pin, then it’ll affect input pin or output pin or both?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Output pin.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   During power analysis, if you are facing IR drop problem, then how did you avoid?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Increase power metal layer width.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Go for higher metal layer.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Spread macros or standard cells.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Provide more straps.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   Define antenna problem and how did you resolve these problem?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;  Increased net length can accumulate more charges while manufacturing of  the device due to ionisation process. If this net is connected to gate  of the MOSFET it can damage dielectric property of the gate and gate may  conduct causing damage to the MOSFET. This is antenna problem.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Decrease the length of the net by providing more vias and layer jumping.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;     Insert antenna diode.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   How delays vary with different PVT conditions? Show the graph.&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     P increase-&amp;gt;dealy increase&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    P decrease-&amp;gt;delay decrease&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;    V increase-&amp;gt;delay decrease&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    V decrease-&amp;gt;delay increase&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;    T increase-&amp;gt;delay increase&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    T decrease-&amp;gt;delay decrease&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   Explain the flow of physical design and inputs and outputs for each step in flow.&lt;/span&gt;     &lt;ul&gt;&lt;li&gt;&lt;a href="http://asic-soc.blogspot.com/2007/10/physical-design-flow.html"&gt; Click here&lt;/a&gt; to  see the flow diagram&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is cell delay and net delay?&lt;/span&gt;&lt;br /&gt;
&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Gate delay&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Transistors  within a gate take a finite time to switch. This means that a change on  the input of a gate takes a finite time to cause a change on the  output.[Magma]&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Gate delay =function of(i/p transition time, Cnet+Cpin).&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Cell delay is also same as Gate delay.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Cell delay&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;For any gate it is measured between 50% of input transition to the corresponding 50% of output transition.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Intrinsic delay&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Intrinsic delay is the delay internal to the gate. Input pin of the cell to output pin of the cell.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;It  is defined as the delay between an input and output pair of a cell,  when a near zero slew is applied to the input pin and the output does  not see any load condition.It is predominantly caused by the internal  capacitance associated with its transistor.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;This  delay is largely independent of the size of the transistors forming the  gate because increasing size of transistors increase internal  capacitors.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Net Delay (or wire delay)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The  difference between the time a signal is first applied to the net and  the time it reaches other devices connected to that net.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;It is due to the finite resistance and capacitance of the net.It is also known as wire delay.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Wire delay =fn(Rnet , Cnet+Cpin)   &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What are delay models and what is the difference between them?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Linear Delay Model (LDM)&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Non Linear Delay Model (NLDM)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is wire load model?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Wire load model is NLDM which has estimated R and C of the net.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   Why higher metal layers are preferred for Vdd and Vss?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Because it has less resistance and hence leads to less IR drop.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is logic optimization and give some methods of logic optimization.&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Upsizing&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Downsizing&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Buffer insertion&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Buffer relocation&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Dummy buffer placement&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is the significance of negative slack?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     negative slack==&amp;gt; there is setup voilation==&amp;gt; deisgn can fail&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is signal integrity? How it affects Timing?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     IR drop, Electro Migration (EM), Crosstalk, Ground bounce are signal integrity issues.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    If Idrop is more==&amp;gt;delay increases.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    crosstalk==&amp;gt;there can be setup as well as hold voilation.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is IR drop? How to avoid? How it affects timing?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     There is a resistance associated with each metal layer. This resistance consumes power causing voltage drop i.e.IR drop. &lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    If IR drop is more==&amp;gt;delay increases.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is EM and it effects?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;  Due to high current flow in the metal atoms of the metal can displaced  from its origial place. When it happens in larger amount the metal can  open or bulging of metal layer can happen. This effect is known as  Electro Migration.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;    Affects: Either short or open of the signal line or power line.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What are types of routing?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Global Routing&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Track Assignment&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Detail Routing&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;        What is latency? Give the types?&lt;/span&gt; &lt;ul style="font-weight: bold;"&gt;&lt;li&gt; Source Latency&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;It  is known as source latency also. It is defined as "the delay from the  clock origin point to the clock definition point in the design".&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Delay from clock source to beginning of clock tree (i.e. clock definition point).&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The time a clock signal takes to propagate from its ideal waveform origin point to the clock definition point in the design.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Network latency&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;It  is also known as Insertion delay or Network latency. It is defined as  "the delay from the clock definition point to the clock pin of the  register".&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The time clock signal (rise or fall) takes to propagate from the clock definition point to a register clock pin.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is track assignment?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Second stage of the routing wherein particular metal tracks (or layers) are assigned to the signal nets.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;       What is congestion?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     If the number of routing tracks available for routing is less than the required tracks then it is known as congestion.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   Whether congestion is related to placement or routing?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Routing&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What are clock trees?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Distribution of clock from the clock source to the sync pin of the registers.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What are clock tree types?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     H tree, Balanced tree, X tree, Clustering tree, Fish bone&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;   What is cloning and buffering?&lt;/span&gt; &lt;ul&gt;&lt;li&gt;     Cloning is a method of optimization that decreases the load of a heavily loaded cell by replicating the cell.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;    Buffering is a method of optimization that is used to insert beffers in high fanout nets to decrease the dealy.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/7659344534042287677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/backend-physical-design-interview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/7659344534042287677?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/7659344534042287677?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/backend-physical-design-interview.html' title='Backend (Physical Design) Interview Questions and Answers'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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 gd:etag='W/&quot;Ak8MSHgyeip7ImA9WhdXF0s.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-2830430649707947954</id><published>2011-08-30T22:34:00.001-07:00</published><updated>2011-08-30T22:34:49.692-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T22:34:49.692-07:00</app:edited><title>Companywise ASIC/VLSI Interview Questions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;  &lt;/h3&gt;&lt;div class="post-header"&gt;  &lt;/div&gt;&lt;div class="post-body entry-content"&gt;    	 	 	 	 	 	 	 	  &lt;div style="margin-bottom: 0in;"&gt;Below interview  questions are contributed by ASIC_diehard (Thanks a lot !). Below  questions are asked for senior position in Physical Design domain. The  questions are also related to Static Timing Analysis and Synthesis.  Answers to some questions are given as link. Remaining questions will be  answered in coming blogs.&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;b&gt;Common introductory questions every interviewer asks are:&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Discuss about the projects worked 	in the previous company.&lt;/li&gt;
&lt;li&gt;What are physical design flows, 	various activities you are involved?&lt;/li&gt;
&lt;li&gt;Design complexity, capacity, 	frequency, process technologies, block size you handled.&lt;/li&gt;
&lt;/ul&gt;&lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;Intel&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Why power stripes routed in the top metal layers?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;The  resistivity of top metal layers are less and hence less IR drop is seen  in power distribution network. If power stripes are routed in lower  metal layers this will use good amount of lower routing resources and  therefore it can create routing congestion.&lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Why do you use alternate routing approach HVH/VHV (Horizontal-Vertical-Horizontal/ Vertical-Horizontal-Vertical)?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="color: black; font-weight: bold; margin-bottom: 0in;"&gt;Answer:&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;This approach allows routability of the design and better usage of routing resources.&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;What are several factors to improve propagation delay of standard cell?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;Improve the input transition to the cell under consideration by up sizing the driver.&lt;br /&gt;
&lt;br /&gt;
Reduce the load seen by the cell under consideration, either by placement refinement or buffering.&lt;span style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(255, 255, 0) none repeat scroll 0% 50%;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
If allowed increase the drive strength or replace with LVT (low threshold voltage) cell.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;How do you compute net delay (interconnect delay) / decode RC values present in tech file?&lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;What are various ways of timing optimization in synthesis tools?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="color: black; font-weight: bold; margin-bottom: 0in;"&gt;Answer:&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;Logic optimization: buffer sizing, cell sizing, level adjustment, dummy buffering etc.&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;Less number of logics between Flip Flops speedup the design.&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;Optimize drive strength of the cell , so it is capable of driving more load and hence reducing the cell delay.&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;Better selection of design ware component (select timing optimized design ware components).  &lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;	Use LVT (Low threshold voltage) and SVT (standard threshold voltage) cells if allowed.&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;What would you do in order to not use certain cells from the library?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="color: black; font-weight: bold; margin-bottom: 0in;"&gt;Answer:&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;Set don’t use attribute on those library cells.&lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;How delays are characterized using WLM (Wire Load Model)?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black;"&gt;For a given wireload model the delay are estimated based on the number of fanout of the cell driving the net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fanout vs net length is tabulated in WLMs.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: black;"&gt;Values of unit resistance R and unit capacitance C are given in technology file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;Net length varies based on the fanout number.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span style="color: black;"&gt;Once the net length is known &lt;/span&gt;&lt;span style="color: black;"&gt;delay can be calculated; Sometimes it is again tabulated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt; &lt;ul style="font-weight: bold;"&gt;&lt;li&gt;What are various techniques to resolve congestion/noise?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="color: black; font-weight: bold; margin-bottom: 0in;"&gt;Answer:&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;Routing  and placement congestion all depend upon the connectivity in the  netlist , a better floor plan can reduce the congestion.&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;	Noise can be reduced by optimizing the overlap of nets in the design.&lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;  Let’s say there enough routing resources available, timing is fine, can  you increase clock buffers in clock network? If so will there be any  impact on other parameters?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="font-weight: bold; margin-bottom: 0in;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: black;"&gt;Answer:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: black;"&gt;No.  You should not increase clock buffers in the clock network. Increase in  clock buffers cause more area , more power. When everything is fine why  you want to touch clock tree??&lt;/span&gt; &lt;/span&gt; &lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt; How do you optimize skew/insertion delays in CTS (Clock Tree Synthesis)?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="color: black; font-weight: bold; margin-bottom: 0in;"&gt;Answer:&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;Better skew targets and insertion delay values provided while building the clocks.&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;Choose appropriate tree structure – either based on clock buffers or clock inverters or mix of clock buffers or clock inverters.&lt;/div&gt;&lt;div style="color: black; margin-bottom: 0in;"&gt;For  multi clock domain, group the clocks while building the clock tree so  that skew is balanced across the clocks. (Inter clock skew analysis).&lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;What are pros/cons of latch/FF (Flip Flop)?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt; &lt;a href="http://vlsifaq.blogspot.com/2008/01/what-is-difference-between-latch-and.html"&gt;Pros and cons of latch and flip flop&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;How you go about fixing timing violations for latch- latch paths?    &lt;/li&gt;
&lt;li&gt;As  an engineer, let’s say your manager comes to you and asks for next  project die size estimation/projection, giving data on RTL size,  performance requirements. How do you go about the figuring out and come  up with die size considering physical aspects?&lt;/li&gt;
&lt;li&gt;How will you  design inserting voltage island scheme between macro pins crossing core  and are at different power wells? What is the optimal resource solution?&lt;/li&gt;
&lt;li&gt;What are various formal verification issues you faced and how did you resolve?&lt;/li&gt;
&lt;li&gt;How do you calculate maximum frequency given setup, hold, clock and clock skew?&lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;What are effects of metastability?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt; Answer:&lt;/span&gt; &lt;a href="http://vlsifaq.blogspot.com/2008/05/metastability-reset.html"&gt;Metastability&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Consider  a timing path crossing from fast clock domain to slow clock domain. How  do you design synchronizer circuit without knowing the source clock  frequency? &lt;/li&gt;
&lt;li&gt;How to solve cross clock timing path?&lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;How to determine the depth of FIFO/ size of the FIFO?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt; Answer:&lt;/span&gt; &lt;a href="http://asic-soc.blogspot.com/2007/11/fifo-pointers.html"&gt;FIFO Depth&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;STmicroelectronics&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;What are the challenges you faced in place and route, FV (Formal Verification), ECO (Engineering Change Order) areas?&lt;/li&gt;
&lt;li&gt;How long the design cycle for your designs?&lt;/li&gt;
&lt;li&gt;What part are your areas of interest in physical design?&lt;/li&gt;
&lt;li&gt;Explain ECO (Engineering Change Order) methodology.&lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;Explain CTS (Clock Tree Synthesis) flow.&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt; &lt;a href="http://asic-soc.blogspot.com/2007/10/clock-tree-synthesis-cts.html"&gt;Clock Tree Synthesis&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;What kind of routing issues you faced?&lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;How  does STA (Static Timing Analysis) in OCV (On Chip Variation) conditions  done? How do you set OCV (On Chip Variation) in IC compiler? How is  timing correlation done before and after place and route?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt; &lt;a href="http://asic-soc.blogspot.com/2008/03/process-variations-and-static-timing.html"&gt;Process-Voltage-Temperature (PVT) Variations and Static Timing Analysis (STA)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;If  there are too many pins of the logic cells in one place within core,  what kind of issues would you face and how will you resolve?&lt;/li&gt;
&lt;li&gt;Define hash/ @array in perl.&lt;/li&gt;
&lt;li&gt;Using TCL (Tool Command Language, Tickle) how do you set variables?&lt;/li&gt;
&lt;li&gt;What is ICC (IC Compiler) command for setting derate factor/ command to perform physical synthesis?&lt;/li&gt;
&lt;li&gt;What are nanoroute options for search and repair?&lt;/li&gt;
&lt;li&gt;What were your design skew/insertion delay targets?&lt;/li&gt;
&lt;li&gt;How is IR drop analysis done? What are various statistics available in reports?&lt;/li&gt;
&lt;li&gt;Explain pin density/ cell density issues, hotspots?&lt;/li&gt;
&lt;li&gt;How will you relate routing grid with manufacturing grid and judge if the routing grid is set correctly?&lt;/li&gt;
&lt;li&gt;What is the command for setting multi cycle path?&lt;/li&gt;
&lt;li&gt;If hold violation exists in design, is it OK to sign off design? If not, why?&lt;/li&gt;
&lt;/ul&gt;&lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;b&gt;&lt;span style="font-size: 130%;"&gt;&lt;br /&gt;
&lt;br /&gt;
Texas Instruments (TI)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;How are timing constraints developed?&lt;/li&gt;
&lt;li&gt;Explain timing closure flow/methodology/issues/fixes.&lt;/li&gt;
&lt;li&gt;Explain SDF (Standard Delay Format) back annotation/ SPEF (Standard Parasitic Exchange Format) timing correlation flow.&lt;/li&gt;
&lt;li&gt;Given  a timing path in multi-mode multi-corner, how is STA (Static Timing  Analysis) performed in order to meet timing in both modes and corners,  how are PVT (Process-Voltage-Temperature)/derate factors decided and set  in the Primetime flow? &lt;/li&gt;
&lt;li&gt;With respect to clock gate, what are various issues you faced at various stages in the physical design flow?&lt;/li&gt;
&lt;li&gt;What are synthesis strategies to optimize timing?&lt;/li&gt;
&lt;li&gt;Explain  ECO (Engineering Change Order) implementation flow. Given post routed  database and functional fixes, how will you take it to implement ECO  (Engineering Change Order) and what physical and functional checks you  need to perform?&lt;/li&gt;
&lt;/ul&gt;&lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
Qualcomm&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;In building the timing constraints, do you need to constrain all IO (Input-Output) ports?&lt;/li&gt;
&lt;li&gt;Can a single port have multi-clocked? How do you set delays for such ports?&lt;/li&gt;
&lt;li&gt;How is scan DEF (Design Exchange Format) generated?&lt;/li&gt;
&lt;li&gt;What is purpose of lockup latch in scan chain?&lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;Explain short circuit current.&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer: &lt;/span&gt;&lt;a href="http://asic-soc.blogspot.com/2008/04/short-circuit-power.html"&gt;Short Circuit Power&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;What are pros/cons of using low Vt, high Vt cells?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2008/04/multi-threshold-mvt-technique.html"&gt;Multi Threshold Voltage Technique&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2008/04/issues-with-multi-height-cell-placement.html"&gt;Issues With Multi Height Cell Placement in Multi Vt Flow&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;How do you set inter clock uncertainty?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="font-weight: bold; margin-bottom: 0in;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: black;"&gt;Answer:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: black;"&gt;set_clock_uncertainty –from &lt;/span&gt;&lt;span style="color: black;"&gt;clock1 -to clock2&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;In DC (Design Compiler), how do you constrain clocks, IO (Input-Output) ports, maxcap, max tran?&lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;What are differences in clock constraints from pre CTS (Clock Tree Synthesis) to post CTS (Clock Tree Synthesis)?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer: &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: black;"&gt;Difference in clock uncertainty values; Clocks are propagated in post CTS.&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: black;"&gt;	In post CTS clock latency constraint is modified to model clock jitter.&lt;/span&gt; &lt;/span&gt; &lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;How is clock gating done?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt; &lt;a href="http://asic-soc.blogspot.com/2008/04/clock-gating.html"&gt;Clock Gating&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;What constraints you add in CTS (Clock Tree Synthesis) for clock gates?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: black;"&gt;Answer:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: red;"&gt;&lt;span style="color: black;"&gt;Make the clock gating cells as through pins.&lt;/span&gt; &lt;/span&gt; &lt;/div&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;What is trade off between dynamic power (current) and leakage power (current)?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2008/03/leakage-power-trends.html"&gt;Leakage Power Trends&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2008/04/dynamic-and-internal-power.html"&gt;Dynamic Power&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;How do you reduce standby (leakage) power?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt; &lt;a href="http://asic-soc.blogspot.com/2008/04/low-power-design-techniques.html"&gt;Low Power Design Techniques&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Explain top level pin placement flow? What are parameters to decide?&lt;/li&gt;
&lt;li&gt;Given  block level netlists, timing constraints, libraries, macro LEFs (Layout  Exchange Format/Library Exchange Format), how will you start floor  planning?&lt;/li&gt;
&lt;li&gt;With net length of 1000um how will you compute RC values, using equations/tech file info?&lt;/li&gt;
&lt;li&gt;What do noise reports represent?&lt;/li&gt;
&lt;li&gt;What does glitch reports contain?&lt;/li&gt;
&lt;li&gt;What are CTS (Clock Tree Synthesis) steps in IC compiler?&lt;/li&gt;
&lt;li&gt;What do clock constraints file contain?&lt;/li&gt;
&lt;li&gt;How to analyze clock tree reports?&lt;/li&gt;
&lt;li&gt;What do IR drop Voltagestorm reports represent?&lt;/li&gt;
&lt;li&gt;Where /when do you use DCAP (Decoupling Capacitor) cells?&lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;What are various power reduction techniques?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt; Answer:&lt;/span&gt; &lt;a href="http://asic-soc.blogspot.com/2008/04/low-power-design-techniques.html"&gt;Low Power Design Techniques&lt;/a&gt;                          &lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
Hughes Networks&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;What is setup/hold? What are setup and hold time impacts on timing? How will you fix setup and hold violations?&lt;/li&gt;
&lt;li&gt;Explain function of Muxed FF (Multiplexed Flip Flop) /scan FF (Scal Flip Flop).&lt;/li&gt;
&lt;li&gt;What are tested in DFT (Design for Testability)?&lt;/li&gt;
&lt;li&gt;In equivalence checking, how do you handle scanen signal?&lt;/li&gt;
&lt;li&gt;In terms of CMOS (Complimentary Metal Oxide Semiconductor), explain physical parameters that affect the propagation delay?    &lt;/li&gt;
&lt;li style="font-weight: bold;"&gt;What are power dissipation components? How do you reduce them?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2008/04/short-circuit-power.html"&gt;Short Circuit Power&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2008/03/leakage-power-trends.html"&gt;Leakage Power Trends&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2008/04/dynamic-and-internal-power.html"&gt;Dynamic Power &lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;a href="http://asic-soc.blogspot.com/2008/04/low-power-design-techniques.html"&gt;Low Power Design Techniques&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;How delay affected by PVT (Process-Voltage-Temperature)?&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Answer:&lt;/span&gt; &lt;a href="http://asic-soc.blogspot.com/2008/03/process-variations-and-static-timing.html"&gt;Process-Voltage-Temperature (PVT) Variations and Static Timing Analysis (STA)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Why is power signal routed in top metal layers?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;b&gt;&lt;span style="font-size: 130%;"&gt;Avago Technologies (former HP group)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;How do you minimize clock skew/ balance clock tree?&lt;/li&gt;
&lt;li&gt;Given 11 minterms and asked to derive the logic function.&lt;/li&gt;
&lt;li&gt;Given  C1= 10pf, C2=1pf connected in series with a switch in between, at t=0  switch is open and one end having 5v and other end zero voltage; compute  the voltage across C2 when the switch is closed? &lt;/li&gt;
&lt;li&gt;Explain  the modes of operation of CMOS (Complimentary Metal Oxide Semiconductor)  inverter? Show IO (Input-Output) characteristics curve.&lt;/li&gt;
&lt;li&gt;Implement a ring oscillator.&lt;/li&gt;
&lt;li&gt;How to slow down ring oscillator?&lt;/li&gt;
&lt;/ul&gt;&lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="center" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;Hynix Semiconductor&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;How do you optimize power at various stages in the physical design flow?&lt;/li&gt;
&lt;li&gt;What timing optimization strategies you employ in pre-layout /post-layout stages?&lt;/li&gt;
&lt;li&gt;What are process technology challenges in physical design?&lt;/li&gt;
&lt;li&gt;Design divide by 2, divide by 3, and divide by 1.5 counters. Draw timing diagrams.&lt;/li&gt;
&lt;li&gt;What are multi-cycle paths, false paths? How to resolve multi-cycle and false paths?&lt;/li&gt;
&lt;li&gt;Given  a flop to flop path with combo delay in between and output of the  second flop fed back to combo logic. Which path is fastest path to have  hold violation and how will you resolve?&lt;/li&gt;
&lt;li&gt;What are RTL (Register Transfer Level) coding styles to adapt to yield optimal backend design?&lt;/li&gt;
&lt;li&gt;Draw timing diagrams to represent the propagation delay, set up, hold, recovery, removal, minimum pulse width.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
About Contributor&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;ASIC_diehard  has more than 5 years of experience in physical design, timing, netlist  to GDS flows of Integrated Circuit development. ASIC_diehard's fields  of interest are backend design, place and route, timing closure, process  technologies.&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Readers  are encouraged to discuss answers to these questions. Just click on the  'post a comment' option below and put your comments there.  Alternatively you can send your answers/discussions to my mail id:  shavakmm@gmail.com&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div id="lws_0"&gt;&lt;div class="linkwithin_outer" style="border: 0; clear: both; margin: 0; padding: 0;"&gt; &lt;div class="linkwithin_inner" style="border: 0; margin: 0; padding: 0;"&gt;     &lt;div class="linkwithin_text" id="linkwithin_text_0" style="border: 0; font-weight: bold; margin: 0; padding: 20px 0 5px; text-align: left;"&gt;         You might also like:     &lt;/div&gt;&lt;div class="linkwithin_posts" style="border: 0; margin: 0; padding: 0;"&gt;              &lt;ul class="linkwithin_textlist" style="margin: 0 0 0 15px; padding: 0;"&gt;&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2007/10/synthesis-interview-questions.html"&gt;Synthesis Interview Questions&lt;/a&gt; &lt;/li&gt;
&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/02/physical-design-questions-and-answers.html"&gt;Physical Design Questions and Answers&lt;/a&gt; &lt;/li&gt;
&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2007/10/physical-design-interview-questions.html"&gt;Physical Design Interview Questions&lt;/a&gt; &lt;/li&gt;
&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/03/process-variations-and-static-timing.html"&gt;Process-Voltage-Temperature (PVT) Variations and Static Timing Analysis&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div id="linkwithin_logo_0" style="border: 0; clear: both; margin: 0 0 20px 0; padding: 5px 6px 0 0; text-align: right;"&gt;         &lt;a href="http://www.linkwithin.com/learn?ref=widget" id="linkwithin_logolink_0" style="border-bottom: none; color: #bbbbbb; font: 10px arial; text-decoration: none;" target="_blank"&gt;&lt;b&gt;LinkWithin&lt;/b&gt;&lt;/a&gt;     &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="post-footer"&gt; &lt;div class="post-footer-line post-footer-line-1"&gt;&lt;span class="post-comment-link"&gt; &lt;a class="comment-link" href="http://asic-soc.blogspot.com/2008/07/companywise-asicvlsi-interview.html#comments"&gt;2 comments&lt;/a&gt; &lt;/span&gt; &lt;span class="post-icons"&gt; &lt;span class="item-action"&gt; &lt;a href="http://www.blogger.com/email-post.g?blogID=2516717450266481889&amp;amp;postID=2255446356192833581" title="Email Post"&gt; &lt;img alt="" class="icon-action" height="13" src="http://img1.blogblog.com/img/icon18_email.gif" width="18" /&gt; &lt;/a&gt; &lt;/span&gt; &lt;/span&gt; &lt;span class="post-labels"&gt; Tags: &lt;a href="http://asic-soc.blogspot.com/search/label/ASIC" rel="tag"&gt;ASIC&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/Physical%20Design" rel="tag"&gt;Physical Design&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/Static%20Timing%20Analysis%20%28STA%29" rel="tag"&gt;Static Timing Analysis (STA)&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/Synthesis" rel="tag"&gt;Synthesis&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/Timing%20Analysis" rel="tag"&gt;Timing Analysis&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/VLSI" rel="tag"&gt;VLSI&lt;/a&gt; &lt;/span&gt; &lt;/div&gt;&lt;div class="post-footer-line post-footer-line-3"&gt;&lt;span class="reaction-buttons"&gt; &lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td class="reactions-label-cell" nowrap="nowrap" valign="top" width="1%"&gt; &lt;span class="reactions-label"&gt; Reactions:&lt;/span&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="date-outer"&gt;          &lt;h2 class="date-header"&gt;&lt;span&gt;17 April 2008&lt;/span&gt;&lt;/h2&gt;&lt;div class="date-posts"&gt;          &lt;div class="post-outer"&gt; &lt;div class="post hentry"&gt; &lt;a href="" name="9055391806776046221"&gt;&lt;/a&gt; &lt;h3 class="post-title entry-title"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/04/issues-with-multi-height-cell-placement.html"&gt;Issues with Multi Height Cell Placement in Multi Vt Flow&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;  &lt;/div&gt;&lt;div class="post-body entry-content"&gt;    	 	 	 	 	 	 	 	&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;Creating the reference libraries&lt;/span&gt;&lt;/span&gt;  &lt;div style="line-height: 150%; margin-bottom: 0in;"&gt;There  are two reference libraries required. One is low Vt cell library and  another is high Vt cell library. These libraries have two different  height cells. Reference libraries are created as per the standard  synopsys flow. Library creation flow is given in Figure 1. Read_lib  command is used for this purpose. As TF and LEF files are available  TF+LEF option is chosen for library creation.&lt;span style="color: black;"&gt; After the completion of the physical library preparation steps, logical libraries are prepared.&lt;/span&gt;&lt;/div&gt;&lt;span class="fullpost"&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Se0VANaI9uM/SAb5nqBXwbI/AAAAAAAAAUE/Qnao6u9sXXo/s1600-h/lib_prep.jpeg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5190110080281330098" src="http://2.bp.blogspot.com/_Se0VANaI9uM/SAb5nqBXwbI/AAAAAAAAAUE/Qnao6u9sXXo/s400/lib_prep.jpeg" style="cursor: pointer;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 85%;"&gt;&lt;b&gt;&lt;span style="font-size: 100%;"&gt;Figure 1 Library preparation command window&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 align="left" class="western" lang="en-GB"&gt; &lt;/h3&gt;&lt;h3 align="left" class="western" lang="en-GB"&gt;Different Unit Tile Creation&lt;/h3&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt;The unit tile height of lvt cells is 2.52 &lt;span style="font-family: Arial,sans-serif;"&gt;µ&lt;/span&gt; and hvt cells are 1.96 &lt;span style="font-family: Arial,sans-serif;"&gt;µ&lt;/span&gt;.  Hence two separate unit tiles have to be created and should be added in  the technology file.  Hvt reference library is created with the unit  tile name “unit” and lvt reference library is created with unit tile  name “lvt_unit”. By default “unit” tile is defined in technology file  and the other unit tile “lvt_unit” is also added to the technology file.   &lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Se0VANaI9uM/SAb5WKBXwaI/AAAAAAAAAT8/3NF-KDhlLl8/s1600-h/tile_height_spec.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5190109779633619362" src="http://4.bp.blogspot.com/_Se0VANaI9uM/SAb5WKBXwaI/AAAAAAAAAT8/3NF-KDhlLl8/s400/tile_height_spec.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div lang="en-GB" style="line-height: 150%; margin-top: 0.08in; text-align: center;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 85%;"&gt;&lt;b&gt;&lt;span style="font-size: 100%;"&gt;Figure 2. Tile height specifications in library preparation&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 align="left" class="western" lang="en-GB"&gt; &lt;/h3&gt;&lt;h3 align="left" class="western" lang="en-GB"&gt;Floor Planning&lt;/h3&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt;70%  of the core utilization is provided. Aspect ratio is kept at 1. Rows  are flipped, double backed and made channel less. No Top Design Format  (TDF) file is selected as default placement of the IO pins are  considered. Since we have multi height cells in the reference library  separate placement rows have to be provided for two different unit  tiles. The core area is divided into two separate unit tile section  providing larger area for Hvt unit tile as shown in the Figure 3.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Se0VANaI9uM/SAb5GqBXwZI/AAAAAAAAAT0/N-NTOsH7qPI/s1600-h/different_unit_tile_placement.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5190109513345646994" src="http://2.bp.blogspot.com/_Se0VANaI9uM/SAb5GqBXwZI/AAAAAAAAAT0/N-NTOsH7qPI/s400/different_unit_tile_placement.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;/div&gt;&lt;div lang="en-GB" style="line-height: 150%; margin-top: 0.08in; text-align: center;"&gt; &lt;span style="color: black;"&gt;&lt;span style="font-size: 85%;"&gt;&lt;b&gt;&lt;span style="font-size: 100%;"&gt;Figure 3. Different unit tile placement&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt;First  as per the default floor planning flow rows are constructed with unit  tile. Later rows are deleted from the part of the core area and new rows  are inserted with the tile “lvt_unit”. Improper allotment of area can  give rise to congestion. Some iteration of trial and error experiments  were conducted to find best suitable area for two different unit tiles.  The “unit” tile covers 44.36% of core area while “lvt_unit” 65.53% of  the core area. PR summary report of the design after the floor planning  stage is provided below.&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 85%;"&gt;PR Summary: &lt;/span&gt; &lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 85%;"&gt;Number of Module Cells:        70449&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Number of Pins:                368936&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Number of IO Pins:             298&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Number of Nets:                70858&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Average Pins Per Net (Signal): 3.20281&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 85%;"&gt;Chip Utilization:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Total Standard Cell Area:      559367.77&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Core Size:     width 949.76, height 947.80; area 900182.53&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Chip Size:     width 999.76, height 998.64; area 998400.33&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Cell/Core Ratio:               62.1394%&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Cell/Chip Ratio:               56.0264%&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;Number of Cell Rows:            392&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;h3 align="left" class="western" lang="en-GB"&gt;Placement Issues with Different Tile Rows&lt;/h3&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt;Legal  placement of the standard cells is automatically taken care by Astro  tool as two separate placement area is defined for multi heighten cells.   Corresponding tile utilization summary is provided below.&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 85%;"&gt;PR Summary:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;  &lt;span style="font-size: 85%;"&gt;[Tile Utilization]&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;	  &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;============================================================&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;unit	           257792           114353        44.36%&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;lvt_unit	          1071872           702425        65.53%&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;============================================================&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt;But  this method of placement generates unacceptable congestion around the  junction area of two separate unit tile sections. The congestion map is  shown in Figure 4.&lt;/div&gt;&lt;div align="justify" lang="" style="margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Se0VANaI9uM/SAb4o6BXwYI/AAAAAAAAATs/NdUPhlAmiAM/s1600-h/congestion.jpg"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5190109002244538754" src="http://3.bp.blogspot.com/_Se0VANaI9uM/SAb4o6BXwYI/AAAAAAAAATs/NdUPhlAmiAM/s400/congestion.jpg" style="cursor: pointer;" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div lang="en-GB" style="line-height: 150%; margin-top: 0.08in; text-align: center;"&gt; &lt;span style="color: black;"&gt;&lt;span style="font-size: 85%;"&gt;&lt;b&gt;&lt;span style="font-size: 100%;"&gt;Figure 4. Congestion&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt;There  are two congestion maps. One is related to the floor planning with  aspect ratio 1 and core utilization of 70%. This shows horizontal  congestion over the limited value of one all over the core area meaning  that design can’t be routed at all. Hence core area has to be increased  by specifying height and width. The other congestion map is generated  with the floor plan wherein core area is set to 950 µm. Here we can  observe although congestion has reduced over the core area it is still a  concern over the area wherein two different unit tiles merge as marked  by the circle. But design can be routable and can be carried to next  stages of place and route flow provided timing is met in subsequent  implementation steps.&lt;/div&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt;Tighter  timing constraints and more interrelated connections of standard cells  around the junction area of different unit tiles have lead to more  congestion. It is observed that increasing the area isn't a solution to  congestion. In addition to congestion, situation verses with the timing  optimization effort by the tool. Timing target is not able to meet.  Optimization process inserts several buffers around the junction area  and some of them are placed illegally due to the lack of placement area.&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;Corresponding timing summary is provided below:&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span style="font-size: 85%;"&gt;Timing/Optimization Information:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;  &lt;span style="font-size: 85%;"&gt;[TIMING]&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;                    &lt;span style="font-size: 85%;"&gt;Setup                        Hold      Num   Num&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;      &lt;span style="font-size: 85%;"&gt;Type   Slack   Num    Total Target    Slack    Num  Trans MaxCap   Time&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;========================================================&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;   &lt;span style="font-size: 85%;"&gt;A.PRE   -3.491   3293  -3353.9  0.100 10000.000      0   8461    426 00:02:26&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;   &lt;span style="font-size: 85%;"&gt;A.IPO   -0.487    928   -271.5  0.100 10000.000      0   1301     29 00:01:02&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;   &lt;span style="font-size: 85%;"&gt;A.IPO   -0.454   1383   -312.8  0.100 10000.000      0   1765     36 00:01:57&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;   &lt;span style="font-size: 85%;"&gt;A.PPO   -1.405   1607   -590.9  0.100 10000.000      0   2325     32 00:00:58&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;   &lt;span style="font-size: 85%;"&gt;A.SETUP   -1.405   1517   -466.4  0.100   -0.168   6550   2221     31 00:04:10&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;    &lt;span style="font-size: 85%;"&gt;========================================================&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;div style="line-height: 150%; margin-bottom: 0in;"&gt;Since the  timing is not possible to meet design has to be abandoned from  subsequent steps. Hence in a multi vt design flow cell library with  multi heights are not preferred.&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;div align="justify" style="line-height: 150%; margin-bottom: 0in;"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;References&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;[1] Astro, User Guide, Version X-2005.09, September 2005&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt; &lt;/div&gt;&lt;/span&gt;  &lt;div id="lws_1"&gt;&lt;div class="linkwithin_outer" style="border: 0; clear: both; margin: 0; padding: 0;"&gt; &lt;div class="linkwithin_inner" style="border: 0; margin: 0; padding: 0;"&gt;     &lt;div class="linkwithin_text" id="linkwithin_text_1" style="border: 0; font-weight: bold; margin: 0; padding: 20px 0 5px; text-align: left;"&gt;         You might also like:     &lt;/div&gt;&lt;div class="linkwithin_posts" style="border: 0; margin: 0; padding: 0;"&gt;              &lt;ul class="linkwithin_textlist" style="margin: 0 0 0 15px; padding: 0;"&gt;&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/04/multi-threshold-mvt-technique.html"&gt;Multi Threshold (MVT) Voltage Technique&lt;/a&gt; &lt;/li&gt;
&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/02/physical-design-questions-and-answers.html"&gt;Physical Design Questions and Answers&lt;/a&gt; &lt;/li&gt;
&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2007/10/placement.html"&gt;Placement&lt;/a&gt; &lt;/li&gt;
&lt;li style="background: none; line-height: 1.2em; list-style: disc outside none; margin: 0; padding: 0; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/04/multi-vdd-voltage.html"&gt;Multi Vdd (Voltage)&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div id="linkwithin_logo_1" style="border: 0; clear: both; margin: 0 0 20px 0; padding: 5px 6px 0 0; text-align: right;"&gt;         &lt;a href="http://www.linkwithin.com/learn?ref=widget" id="linkwithin_logolink_1" style="border-bottom: none; color: #bbbbbb; font: 10px arial; text-decoration: none;" target="_blank"&gt;&lt;b&gt;LinkWithin&lt;/b&gt;&lt;/a&gt;     &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="post-footer"&gt; &lt;div class="post-footer-line post-footer-line-1"&gt;&lt;span class="post-comment-link"&gt; &lt;a class="comment-link" href="http://asic-soc.blogspot.com/2008/04/issues-with-multi-height-cell-placement.html#comments"&gt;5 comments&lt;/a&gt; &lt;/span&gt; &lt;span class="post-icons"&gt; &lt;span class="item-action"&gt; &lt;a href="http://www.blogger.com/email-post.g?blogID=2516717450266481889&amp;amp;postID=9055391806776046221" title="Email Post"&gt; &lt;img alt="" class="icon-action" height="13" src="http://img1.blogblog.com/img/icon18_email.gif" width="18" /&gt; &lt;/a&gt; &lt;/span&gt; &lt;/span&gt; &lt;span class="post-labels"&gt; Tags: &lt;a href="http://asic-soc.blogspot.com/search/label/Congestion" rel="tag"&gt;Congestion&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/Multi%20Vt" rel="tag"&gt;Multi Vt&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/Physical%20Design" rel="tag"&gt;Physical Design&lt;/a&gt;, &lt;a href="http://asic-soc.blogspot.com/search/label/Placement" rel="tag"&gt;Placement&lt;/a&gt; &lt;/span&gt; &lt;/div&gt;&lt;div class="post-footer-line post-footer-line-3"&gt;&lt;span class="reaction-buttons"&gt; &lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td class="reactions-label-cell" nowrap="nowrap" valign="top" width="1%"&gt; &lt;span class="reactions-label"&gt; Reactions:&lt;/span&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2 class="date-header"&gt;&lt;span&gt;08 April 2008&lt;/span&gt;&lt;/h2&gt;&lt;a href="" name="7312867654139963772"&gt;&lt;/a&gt; &lt;h3 class="post-title entry-title"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/04/physical-design-objective-type-of.html"&gt;Physical Design Objective Type of Questions and Answers&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;  &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;1) Chip utilization depends on ___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Only on standard cells&lt;br /&gt;
b. Standard cells and macros&lt;br /&gt;
c. Only on macros&lt;br /&gt;
d.  Standard cells macros and IO pads&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;
&lt;/span&gt; &lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;2) In Soft blockages ____ cells are placed. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Only sequential cells&lt;br /&gt;
b. No cells&lt;br /&gt;
c. Only Buffers and Inverters&lt;br /&gt;
d. Any cells&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;3) Why we have to remove scan chains before placement? &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Because scan chains are group of flip flop&lt;br /&gt;
b. It does not have timing critical path&lt;br /&gt;
c. It is series of flip flop connected in FIFO&lt;br /&gt;
d. None&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;4) &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Delay&lt;/span&gt; between shortest path and longest path in the clock is called ____. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Useful skew&lt;br /&gt;
b. Local skew&lt;br /&gt;
c. Global skew&lt;br /&gt;
d. Slack&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;5) Cross talk can be avoided by ___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Decreasing the spacing between the metal layers&lt;br /&gt;
b. Shielding the nets&lt;br /&gt;
c.  Using lower metal &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;layers&lt;/span&gt;&lt;br /&gt;
d. Using long nets&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;6) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Prerouting&lt;/span&gt; means &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;routing&lt;/span&gt; of _____.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Clock nets&lt;br /&gt;
b. Signal nets&lt;br /&gt;
c. IO nets&lt;br /&gt;
d. PG nets&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;7) Which of the following metal layer has Maximum resistance? &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Metal1&lt;br /&gt;
b. Metal2&lt;br /&gt;
c. Metal3&lt;br /&gt;
d.  Metal4&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;8) What is the goal of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;CTS&lt;/span&gt;? &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Minimum IR Drop&lt;br /&gt;
b. Minimum EM&lt;br /&gt;
c. Minimum Skew&lt;br /&gt;
d. Minimum Slack&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;9) Usually Hold is fixed ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Before Placement&lt;br /&gt;
b. After Placement&lt;br /&gt;
c. Before &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;CTS&lt;/span&gt;&lt;br /&gt;
d. After &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;CTS&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;10) To &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;achieve&lt;/span&gt; better timing ____ cells are placed in the critical path.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;HVT&lt;/span&gt;&lt;br /&gt;
b. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;LVT&lt;/span&gt;&lt;br /&gt;
c. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;RVT&lt;/span&gt;&lt;br /&gt;
d. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SVT&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;11) Leakage power is inversely &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;proportional&lt;/span&gt; to ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Frequency&lt;br /&gt;
b. Load Capacitance&lt;br /&gt;
c. Supply voltage&lt;br /&gt;
d. Threshold Voltage&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;12) Filler cells are added ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Before Placement of std cells&lt;br /&gt;
b. After Placement of Std Cells&lt;br /&gt;
c. Before &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;Floor planning&lt;/span&gt;&lt;br /&gt;
d. Before &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;Detail&lt;/span&gt; Routing&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;13) Search and Repair is used for ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Reducing IR Drop&lt;br /&gt;
b. Reducing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;DRC&lt;/span&gt;&lt;br /&gt;
c. Reducing EM &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;violations&lt;/span&gt;&lt;br /&gt;
d. None&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;14) Maximum current density of a metal is available in ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. .lib&lt;br /&gt;
b. .v&lt;br /&gt;
c. .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;tf&lt;/span&gt;&lt;br /&gt;
d. .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;sdc&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;15) More IR drop is due to ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Increase in metal width&lt;br /&gt;
b. Increase in metal length&lt;br /&gt;
c. Decrease in metal length&lt;br /&gt;
d. Lot of metal layers&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;16) The minimum height and width a cell can occupy in the design is called as ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Unit Tile cell&lt;br /&gt;
b. Multi &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;heighten&lt;/span&gt; cell&lt;br /&gt;
c. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;LVT&lt;/span&gt; cell&lt;br /&gt;
d. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;HVT&lt;/span&gt; cell&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;17) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;CRPR&lt;/span&gt; stands for ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Cell Convergence Pessimism Removal&lt;br /&gt;
b. Cell Convergence Preset Removal&lt;br /&gt;
c. Clock Convergence Pessimism Removal&lt;br /&gt;
d. Clock Convergence Preset Removal&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;18) In &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;OCV&lt;/span&gt; timing check, for setup time, ___.  &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Max delay is used for launch path and Min &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_24"&gt;delay&lt;/span&gt; for capture path&lt;br /&gt;
b. Min delay is used for launch path and Max &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_25"&gt;delay&lt;/span&gt; for capture path&lt;br /&gt;
c. Both  Max &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_26"&gt;delay&lt;/span&gt; is used for launch and Capture path&lt;br /&gt;
d. Both Min &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_27"&gt;delay&lt;/span&gt; is used for both Capture and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Launch&lt;/span&gt; paths&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;19) "Total metal area and(or) perimeter of conducting layer / gate to gate area"  is called ___.  &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Utilization&lt;br /&gt;
b. Aspect Ratio&lt;br /&gt;
c. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;OCV&lt;/span&gt;&lt;br /&gt;
d. Antenna Ratio&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;20) The Solution for Antenna effect is ___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Diode insertion&lt;br /&gt;
b. Shielding&lt;br /&gt;
c. Buffer insertion&lt;br /&gt;
d. Double spacing&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;21) To avoid cross talk, the shielded net is usually connected to ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;VDD&lt;/span&gt;&lt;br /&gt;
b. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;VSS&lt;/span&gt;&lt;br /&gt;
c. Both &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;VDD&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;VSS&lt;/span&gt;&lt;br /&gt;
d. Clock&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;22) If the data is faster than the clock in Reg to Reg path ___ violation may come.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Setup&lt;br /&gt;
b. Hold&lt;br /&gt;
c. Both&lt;br /&gt;
d. None&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;23) Hold violations are &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_34"&gt;preferred&lt;/span&gt; to fix ___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_35"&gt;Before&lt;/span&gt; placement&lt;br /&gt;
b. After placement&lt;br /&gt;
c. Before &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;CTS&lt;/span&gt;&lt;br /&gt;
d. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;After CTS&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;24) Which  of the following is not present in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;SDC&lt;/span&gt; ___?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Max &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;tran&lt;/span&gt;&lt;br /&gt;
b. Max cap&lt;br /&gt;
c. Max &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;fanout&lt;/span&gt;&lt;br /&gt;
d. Max current density&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;25) Timing sanity check means (with respect to PD)___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Checking timing of routed design with out net delays&lt;br /&gt;
b. Checking  Timing  of placed design with net delays&lt;br /&gt;
c. Checking Timing of unplaced design without net delays&lt;br /&gt;
d. Checking Timing of routed design with net delays&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;26) Which of the following is having highest priority at final stage (post routed) of the design ___?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Setup violation&lt;br /&gt;
b. Hold violation&lt;br /&gt;
c. Skew&lt;br /&gt;
d. None&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;27) Which of the following is best suited for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;CTS&lt;/span&gt;?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;CLKBUF&lt;/span&gt;&lt;br /&gt;
b. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;BUF&lt;/span&gt;&lt;br /&gt;
c. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;INV&lt;/span&gt;&lt;br /&gt;
d. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;CLKINV&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;28) Max voltage drop  will be there at(with out macros) ___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Left and Right sides&lt;br /&gt;
b. Bottom and Top sides&lt;br /&gt;
c. Middle&lt;br /&gt;
d. None&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;29) Which of the following is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_46"&gt;preferred&lt;/span&gt; while placing macros ___?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Macros placed center of the die&lt;br /&gt;
b. Macros placed left and right side of die&lt;br /&gt;
c. Macros placed bottom and top sides of die&lt;br /&gt;
d. Macros placed based on &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_47"&gt;connectivity&lt;/span&gt; of the I/O&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;30) Routing congestion can be avoided by ___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. placing cells closer&lt;br /&gt;
b. Placing cells at corners&lt;br /&gt;
c. Distributing cells&lt;br /&gt;
d. None&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;31) Pitch of the wire  is ___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Min width&lt;br /&gt;
b. Min spacing&lt;br /&gt;
c. Min width - min spacing&lt;br /&gt;
d. Min width + min spacing&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;32) In Physical Design following step is  not there ___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;Floorplaning&lt;/span&gt;&lt;br /&gt;
b. Placement&lt;br /&gt;
c. Design Synthesis&lt;br /&gt;
d. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;CTS&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;33) In technology file if 7 metals are there then which metals you will use for power?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Metal1 and metal2&lt;br /&gt;
b. Metal3 and metal4&lt;br /&gt;
c. Metal5 and metal6&lt;br /&gt;
d. Metal6 and metal7&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;34) If metal6 and metal7 are used for the power in 7 metal layer process design then which metals you will use for clock ?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Metal1 and metal2&lt;br /&gt;
b. Metal3 and metal4&lt;br /&gt;
c. Metal4 and metal5&lt;br /&gt;
d. Metal6 and metal7&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;35) In a reg to reg timing path &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;Tclocktoq&lt;/span&gt; delay is 0.5&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;ns&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;TCombo&lt;/span&gt; delay is 5&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;ns&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;Tsetup&lt;/span&gt; is 0.5&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;ns&lt;/span&gt; then the clock period &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;should&lt;/span&gt; be ___.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. 1&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;ns&lt;/span&gt;&lt;br /&gt;
b. 3&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;ns&lt;/span&gt;&lt;br /&gt;
c. 5&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;ns&lt;/span&gt;&lt;br /&gt;
d. 6&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;ns&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;36) Difference between Clock buff/inverters and normal buff/inverters is __.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Clock buff/inverters are faster than normal buff/inverters&lt;br /&gt;
b. Clock buff/inverters are slower than normal buff/inverters&lt;br /&gt;
c. Clock buff/inverters are having equal rise and fall times with high drive strengths compare to normal buff/inverters&lt;br /&gt;
d. Normal buff/inverters are having equal rise and fall times with high drive strengths compare to Clock buff/inverters.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;37) Which configuration is more &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_61"&gt;preferred&lt;/span&gt; during &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;floorplaning&lt;/span&gt; ?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Double back with flipped rows&lt;br /&gt;
b. Double back with non flipped rows&lt;br /&gt;
c. With channel spacing between rows and no double back&lt;br /&gt;
d. With channel spacing between rows and double back&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;38) What is the effect of high drive strength buffer when added in long net ?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Delay on the net increases&lt;br /&gt;
b. Capacitance on the net increases&lt;br /&gt;
c. Delay on the net decreases&lt;br /&gt;
d. Resistance on the net increases.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;39) Delay of a cell depends on which factors ?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Output transition and input load&lt;br /&gt;
b. Input transition and Output load&lt;br /&gt;
c. Input &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_63"&gt;transition&lt;/span&gt; and Output &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_64"&gt;transition&lt;/span&gt;&lt;br /&gt;
d. Input load and Output Load.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;40) After the final routing the violations in the design ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. There can be no setup, no hold violations&lt;br /&gt;
b. There can be only setup violation but no hold&lt;br /&gt;
c. There can be only hold violation not Setup violation&lt;br /&gt;
d. There can be both violations.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;41) Utilisation of the chip after placement optimisation will be ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Constant&lt;br /&gt;
b. Decrease&lt;br /&gt;
c. Increase&lt;br /&gt;
d. None of the above&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;42) What is routing congestion in the design? &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Ratio of required routing tracks to available routing tracks&lt;br /&gt;
b. Ratio of available routing tracks to required routing tracks&lt;br /&gt;
c. Depends on the routing layers available&lt;br /&gt;
d. None of the above&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;43) What are &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_65"&gt;preroutes&lt;/span&gt; in your design? &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Power routing&lt;br /&gt;
b. Signal routing&lt;br /&gt;
c. Power and Signal routing&lt;br /&gt;
d. None of the above.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;44) Clock tree doesn't contain following cell ___. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;a. Clock buffer&lt;br /&gt;
b. Clock Inverter&lt;br /&gt;
c. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_66"&gt;AOI&lt;/span&gt; cell&lt;br /&gt;
d. None of the above&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Answers:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;1)b&lt;br /&gt;
2)c&lt;br /&gt;
3)b&lt;br /&gt;
4)c&lt;br /&gt;
5)b&lt;br /&gt;
6)d&lt;br /&gt;
7)a&lt;br /&gt;
8)c&lt;br /&gt;
9)d&lt;br /&gt;
10)b&lt;br /&gt;
11)d&lt;br /&gt;
12)d&lt;br /&gt;
13)b&lt;br /&gt;
14)c&lt;br /&gt;
15)b&lt;br /&gt;
16)a&lt;br /&gt;
17)c&lt;br /&gt;
18)a&lt;br /&gt;
19)d&lt;br /&gt;
20)a&lt;br /&gt;
21)b&lt;br /&gt;
22)b&lt;br /&gt;
23)d&lt;br /&gt;
24)d&lt;br /&gt;
25)c&lt;br /&gt;
26)b&lt;br /&gt;
27)a&lt;br /&gt;
28)c&lt;br /&gt;
29)d&lt;br /&gt;
30)c&lt;br /&gt;
31)d&lt;br /&gt;
32)c&lt;br /&gt;
33)d&lt;br /&gt;
34)c&lt;br /&gt;
35)d&lt;br /&gt;
36)c&lt;br /&gt;
37)a&lt;br /&gt;
38)c&lt;br /&gt;
39)b&lt;br /&gt;
40)d&lt;br /&gt;
41)c&lt;br /&gt;
42)a&lt;br /&gt;
43)a&lt;br /&gt;
44)c &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/2830430649707947954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/companywise-asicvlsi-interview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/2830430649707947954?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/2830430649707947954?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/companywise-asicvlsi-interview.html' title='Companywise ASIC/VLSI Interview Questions'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Se0VANaI9uM/SAb5nqBXwbI/AAAAAAAAAUE/Qnao6u9sXXo/s72-c/lib_prep.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkYCRH0_fip7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-6173394444482726845</id><published>2011-08-29T06:38:00.000-07:00</published><updated>2011-08-30T09:02:45.346-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:02:45.346-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='STA'/><title>Delay - Timing path Delay" : Static Timing Analysis (STA)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;/h3&gt;&lt;h3 class="post-title entry-title"&gt;Now in a circuit there are 2 major type of Delay.  &lt;/h3&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;div&gt;CELL DELAY&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div&gt;Timing Delay between an input pin and an output pin of a cell.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Cell delay information is contained in the library of the cell. e.g- .lef file&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;div&gt;NET DELAY.&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div&gt;Interconnect delay between a driver pin and a load pin.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;To calculate the NET delay generally you require 3 most important information.&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div&gt;Characteristics of the Driver cell (which is driving the particular net)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Load characteristic of the receiver cell. (which is driven by the net)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;RC (resistance capacitance) value of the net. (It depends on several factor- which we will discuss later)&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;div&gt;&lt;div&gt;Both the delay can be&amp;nbsp;calculated by multiple&amp;nbsp;ways. It depends at what stage you require this information with in the design. e.g During pre layout or Post layout or during Signoff timing. As per the stage you are using this, you can use different ways to calculate these Delay. Sometime you require accurate numbers and sometime approximate numbers are also sufficient.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Now lets discuss this with previous background and then we will discuss few new concepts.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Wf3xwzzhoow/TjaGHZl7DoI/AAAAAAAAAEA/HSIK3wSaEMY/s1600/delay1.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="70" src="http://3.bp.blogspot.com/-Wf3xwzzhoow/TjaGHZl7DoI/AAAAAAAAAEA/HSIK3wSaEMY/s400/delay1.bmp" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Now in the above fig- If I will ask you to calculate the delay of the circuit, then the delay will be&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Delay=0.5+0.04+0.62+0.21+0.83+0.15+1.01+0.12+0.57=4.05ns (if all the delay in ns)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Now lets add few more value in this. As we know that every gate and net has max and min value, so in that case we can find out the max delay and min delay. (on what basis these max delay and min delay we are calculating .. we will discuss after that)&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-06KNkBGeTxc/TjaIp1vVVOI/AAAAAAAAAEE/Ur6_S1_o83o/s1600/delay2.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="70" src="http://3.bp.blogspot.com/-06KNkBGeTxc/TjaIp1vVVOI/AAAAAAAAAEE/Ur6_S1_o83o/s400/delay2.bmp" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;So in the above example, first value is max value and 2nd value is min value. So &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Delay(max)=&lt;/b&gt; &lt;b&gt;0.5+0.04+0.62+0.21+0.83+0.15+1.01+0.12+0.57=4.05ns &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Delay(min)= 0.4+0.03+0.6+0.18+0.8+0.1+0.8+0.1+0.5=3.51ns&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Till now every one know the concept. Now lets see what's the meaning of min and max delay.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The delay of a cell or net depends on various parameters. Few of them are listed below. &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Library setup time&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Library delay model&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;External delay&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;&lt;div&gt;Cell load characteristic&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Cell drive characteristic&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Operating condition (PVT)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;&lt;div&gt;Wire load model&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Effective Cell output load&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Input skew&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div&gt;Back annotated Delay&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;If any of these parameter vary , the delay vary accordingly. Few of them are&amp;nbsp;mutually exclusive. and In that case we have to consider the effect of only one parameter at a time. If that's the case , then for STA, we calculated the delay in both the condition and then categorize&amp;nbsp;them in worst (max delay) condition or the best condition (min delay). E.g- if a cell has different delay for rise edge and fall edge. Then we are sure that in delay calculation we have to use only one value. So as per their value , we can categorize fall and rise delay of all the cell in the max and min bucket. And finally we come up with max Delay and min delay.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-zQ7oMbBXPsY/TjoBs6EswNI/AAAAAAAAAEI/G5oJZYOMICw/s1600/delay3.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="251" src="http://2.bp.blogspot.com/-zQ7oMbBXPsY/TjoBs6EswNI/AAAAAAAAAEI/G5oJZYOMICw/s400/delay3.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Information used in Cell and net delay calculation (Picture Source -&amp;nbsp;Synopsys)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;The way delay is calculated also depends which tool are you using for STA or delay calculation. Cadence may have different algorithm from Synopsys and same is the case of other vendor tools like mentor,magma and all. But in general the basic or say concepts always remain same. &lt;/div&gt;&lt;div&gt;I will explain about all these parameter in detail in next of few blogs, but right now just one example which can help you to understand the situation when you have a lot of information about the circuit and you want to calculate the delay.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-U882UTuFmiY/TjoHZNupmNI/AAAAAAAAAEM/iSfGEykHCSQ/s1600/delay4.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://1.bp.blogspot.com/-U882UTuFmiY/TjoHZNupmNI/AAAAAAAAAEM/iSfGEykHCSQ/s400/delay4.bmp" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;In the above diagram, you have 2 paths between UFF1 and UFF3. So when ever you are doing setup and hold analysis, these path will be the part of launch path (arrival time). So lets assume you want to calculate the max and min value of delay between UFF1 and UFF2.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Information1:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: medium none;"&gt;&lt;tbody&gt;
&lt;tr style="height: 14.5pt;"&gt;&lt;td style="background-color: transparent; border: 1pt solid windowtext; height: 14.5pt; padding: 0in 5.4pt; width: 53.2pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 37.6pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UOR4&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 48.35pt;" valign="top" width="64"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UNAND6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 48.35pt;" valign="top" width="64"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UNAND0&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 39.3pt;" valign="top" width="52"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UBUF2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 37.6pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UOR2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 14.5pt;"&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 14.5pt; padding: 0in 5.4pt; width: 53.2pt;" valign="top" width="71"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;DELAY(ns)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 37.6pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 48.35pt;" valign="top" width="64"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 48.35pt;" valign="top" width="64"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 39.3pt;" valign="top" width="52"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 14.5pt; padding: 0in 5.4pt; width: 37.6pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Calculation:&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Delay in Path1 :&amp;nbsp;5+6=11ns,&amp;nbsp;&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 class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Delay in Path2:&amp;nbsp;&amp;nbsp;6+2+5+6=19ns,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;So &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Max Delay = 19ns - Path2 - Longest Path - Worst Path&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Min Delay = 11ns&amp;nbsp;- Path1 - Smallest Path - Best Path&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;Information2:&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: medium none;"&gt;&lt;tbody&gt;
&lt;tr style="height: 15.6pt;"&gt;&lt;td style="background-color: transparent; border: 1pt solid windowtext; height: 15.6pt; padding: 0in 5.4pt; width: 77.75pt;" valign="top" width="104"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 37.25pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UOR4&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UNAND6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UNAND0&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 42.5pt;" valign="top" width="57"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UBUF2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 40.65pt;" valign="top" width="54"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UOR2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 15.6pt;"&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 15.6pt; padding: 0in 5.4pt; width: 77.75pt;" valign="top" width="104"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Rise Delay (ns)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 37.25pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;4&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 42.5pt;" valign="top" width="57"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 40.65pt;" valign="top" width="54"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 15.6pt;"&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 15.6pt; padding: 0in 5.4pt; width: 77.75pt;" valign="top" width="104"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Fall Delay (ns)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 37.25pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;7&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;3&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 42.5pt;" valign="top" width="57"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 40.65pt;" valign="top" width="54"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Calculation:&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Delay in Path1 :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rise Delay : 5+6=11ns,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fall Delay: 6+7=13ns&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Delay in Path2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rise Delay : 4+1+1+6=12ns,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fall Delay: 3+1+1+7=12ns&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;So &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Max Delay = 13ns -Path1 (Fall Delay) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Min Delay = 11ns - Path1 (Rise Delay) &lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;Note:&lt;/u&gt; here there are lot of more concepts which can impact the delay calculation sequence, like unate. We are not considering all those right now. I will explain later.&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;Information3:&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: medium none;"&gt;&lt;tbody&gt;
&lt;tr style="height: 15.6pt;"&gt;&lt;td style="background-color: transparent; border: 1pt solid windowtext; height: 15.6pt; padding: 0in 5.4pt; width: 41.75pt;" valign="top" width="56"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Library&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 77.75pt;" valign="top" width="104"&gt;&lt;div align="center" class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;"&gt;&lt;span style="font-family: Calibri;"&gt;Delay&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 37.25pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UOR4&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UNAND6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UNAND0&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 42.5pt;" valign="top" width="57"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UBUF2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 40.65pt;" valign="top" width="54"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;UOR2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 15.6pt;"&gt;&lt;td rowspan="2" style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 15.6pt; padding: 0in 5.4pt; width: 41.75pt;" width="56"&gt;&lt;div align="center" class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;"&gt;&lt;span style="font-family: Calibri;"&gt;Min&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 77.75pt;" valign="top" width="104"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Rise Delay (ns)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 37.25pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;4&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 42.5pt;" valign="top" width="57"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 40.65pt;" valign="top" width="54"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 15.6pt;"&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 77.75pt;" valign="top" width="104"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Fall Delay (ns)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 37.25pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;6&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;7&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;3&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 42.5pt;" valign="top" width="57"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 40.65pt;" valign="top" width="54"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 15.6pt;"&gt;&lt;td rowspan="2" style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 15.6pt; padding: 0in 5.4pt; width: 41.75pt;" width="56"&gt;&lt;div align="center" class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;"&gt;&lt;span style="font-family: Calibri;"&gt;Max&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 77.75pt;" valign="top" width="104"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Rise Delay (ns)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 37.25pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;5.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;6.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;4.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 42.5pt;" valign="top" width="57"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 40.65pt;" valign="top" width="54"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;1.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="height: 15.6pt;"&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 77.75pt;" valign="top" width="104"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;Fall Delay (ns)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 37.25pt;" valign="top" width="50"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;5.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;6.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 52.25pt;" valign="top" width="70"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;2.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 42.5pt;" valign="top" width="57"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;0.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 15.6pt; padding: 0in 5.4pt; width: 40.65pt;" valign="top" width="54"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: Calibri;"&gt;0.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
Calculation:&lt;br /&gt;
For Min Library:&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Delay in Path1 :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rise Delay : 5+6=11ns,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fall Delay: 6+7=13ns&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Delay in Path2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rise Delay : 4+1+1+6=12ns,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fall Delay: 3+1+1+7=12ns&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;For Max Library:&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Delay in Path1 :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rise Delay : 5.5+6.5=12ns,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fall Delay: 5.5+6.5=14ns&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Delay in Path2:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Rise Delay : 4.5+1.5+1.5+6.5=14ns,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fall Delay: 2.5+0.5+0.5+6.5=10ns&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;So&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Max Delay = 14ns- Path1(Fall Delay)/Path2(Rise Delay)&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Min Delay = 10ns - Path2(Fall Delay)&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;As we have calculated above, STA tool also uses similar approach for finding the Max delay and Min Delay. Once Max and Min delay is calculated then during setup and hold calculation, we use corresponding value.&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Once again I am mentioning that all these values are picked randomly. So it may be possible that practically the type/amount of variation in value is not possible.&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;In next part we will discuss these parameter in detail one by one.&lt;/div&gt;&lt;h3 class="post-title entry-title"&gt;&amp;nbsp;&lt;/h3&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/6173394444482726845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/delay-timing-path-delay-static-timing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/6173394444482726845?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/6173394444482726845?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/delay-timing-path-delay-static-timing.html' title='Delay - Timing path Delay&quot; : Static Timing Analysis (STA)'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Wf3xwzzhoow/TjaGHZl7DoI/AAAAAAAAAEA/HSIK3wSaEMY/s72-c/delay1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkUFRn46fyp7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-8979307355068037439</id><published>2011-08-29T06:34:00.000-07:00</published><updated>2011-08-30T09:03:37.017-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:03:37.017-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='STA'/><title>"Setup and Hold Time Violation" : Static Timing Analysis (STA)caluculation</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;br /&gt;
&lt;/h3&gt;&lt;div style="text-align: justify;"&gt;Here we will discuss how to calculate the Setup and Hold Violation for a design.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Till now we have discussed setup and hold violation with respect to the single flipflop, now lets extend this to 2 flip flop. In the following fig there are 2 flipflops (FF1 and FF2). &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;﻿&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-0ZaBq_XnDAY/TZ28vKSws1I/AAAAAAAAADY/crVbiEOE39Q/s1600/Setup+and+Hold+3.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="301" src="http://4.bp.blogspot.com/-0ZaBq_XnDAY/TZ28vKSws1I/AAAAAAAAADY/crVbiEOE39Q/s400/Setup+and+Hold+3.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Single-Cycle Setup and Hold For Flip-Flops&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;﻿&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Few important things&lt;/u&gt; to note down here-&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Data is&amp;nbsp;launching from FF1/D to FF1/Q at the positive clock edge at FF1/C.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;At&amp;nbsp;FF2/D , input data is coming from FF1/Q through a combinational logic.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Data is capturing at FF2/D, at the positive clock edge at FF2/C.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;So I can say that Launching Flip-Flop is FF1 and Capturing Flip-Flop is FF2.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;So Data path is FF1/C --&amp;gt; FF1/Q --&amp;gt; FF2/D&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;For a single cycle circuit- Signal has to be propagate through Data path in one clock cycle. Means if data is launched at&amp;nbsp;time=0ns&amp;nbsp;from FF1 then it should be captured at&amp;nbsp;time=10ns by FF2.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;So for &lt;b&gt;Setup analysis at FF2&lt;/b&gt;, Data should be stable "Ts" time before the positive edge at FF2/C. Where "Ts" is the Setup time of FF2.&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;If Ts=0ns, then , data launched from FF1 at time=0ns should arrive at D of FF2 before or at time=10ns. If data takes too long ( greater then 10ns)&amp;nbsp;to arrive (means it is not stable before clock edge at FF2)&amp;nbsp;, it is reported as Setup Violation.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;If Ts=1ns, then, data launched from FF1 at time=0ns should arrive at D of FF2 before or at&amp;nbsp;time=(10ns-1ns)=9ns. If data takes too long (greater then 9ns)&amp;nbsp;to arrive (means it is not stable before 1ns of clock edge at FF2), it is reported as Setup Violation.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;For &lt;b&gt;Hold Analysis at FF2&lt;/b&gt;, Data should be stable "Th" time after the positive edge at FF2/C. Where "Th" is the Hold time of FF2. Means there should not be any change in the Input data at FF2/D between positive edge of clock at FF2 at Time=10ns and Time=10ns+Th.&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;To satisfy the Hold Condition at FF2 for the Data launched by FF1 at 0ns,&amp;nbsp;the data launched by FF1 at 10ns should not reach at FF2/D before 10ns+Th time.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;If Th=0.5ns,&amp;nbsp;then&amp;nbsp;we can say that the data launched from FF1 at time 10ns does not get propagated so soon that it reaches&amp;nbsp;at FF2 before&amp;nbsp;time (10+0.5)=10.5ns ( Or say it should reach from FF1 to FF2 with in 0.5ns). If data arrive so soon (means with in 0.5ns from FF1 to FF2, data can't be stable at FF2&amp;nbsp;for time=0.5ns after the clock edge at FF2), its reported Hold violation.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;With the above explanation I can say &lt;u&gt;2 important points&lt;/u&gt;:&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;Setup is checked at next clock edge.&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;Hold is checked at same clock edge.&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Setup Check timing can be more clear&lt;/u&gt; for the above Flip-flop combination with the help of following explanation.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ohCcz6lNzFs/TZ4Ah8i5sPI/AAAAAAAAADc/yjJa5D8JCqg/s1600/Setup+time.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="301" src="http://1.bp.blogspot.com/-ohCcz6lNzFs/TZ4Ah8i5sPI/AAAAAAAAADc/yjJa5D8JCqg/s400/Setup+time.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Setup Check Timing&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In the above fig you can see that the data launched by FF1/D ( at launch edge) reaches at FF2/D after a specific delay ( CLK-to-Q delay + Conminational Logic Delay) well before the setup time requirement of Flip-Flop FF2, so there is no setup violation.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;From the Fig its clear that if Slack= Required Time - Arrival time &amp;lt; 0 (-ive) , then there is a Setup violation at FF2.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Hold&amp;nbsp;Check timing can be more clear&lt;/u&gt;&amp;nbsp;with the help of following circuit and explanation.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-QlOvfZ36bco/TZ4HeX8hR6I/AAAAAAAAADk/n3rT9H5KQdI/s1600/Setup+and+Hold+4.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-QlOvfZ36bco/TZ4HeX8hR6I/AAAAAAAAADk/n3rT9H5KQdI/s320/Setup+and+Hold+4.bmp" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;﻿ &lt;/div&gt;&lt;div style="text-align: center;"&gt;﻿&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-0AklM4HW8Ks/TZ4G88R1M3I/AAAAAAAAADg/ZCxDbUDILP4/s1600/Hold+Time.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="298" src="http://4.bp.blogspot.com/-0AklM4HW8Ks/TZ4G88R1M3I/AAAAAAAAADg/ZCxDbUDILP4/s400/Hold+Time.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Hold Check Timing&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;﻿&lt;/div&gt;&lt;div style="text-align: justify;"&gt;﻿ In the above fig you can see that there is a delay in the CLK and CLKB because of the delay introduced by the series of buffer in the clock path. Now Flip-flop FF2 has a hold requirement and as per that data should be constant after the capture edge of CLKB at Flip-flop FF2. &lt;br /&gt;
You can see that desired data which suppose to&amp;nbsp;capture by CLKB at FF2.D should be at Zero (0) logic state and be constant long enough after the CLKB capture edge to meet hold requirement but because of very short logic delay between FF1/Q and FF1/D, the change in the FF1/Q propagates very soon. As a result of that there&amp;nbsp;occurs a Hold violation.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;This type of violation (Hold Violation)&amp;nbsp;can be fixed by shortening the delay in the clock line or by increasing the delay in the data path.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Setup and Hold violation calculation for the single clock cycle path&amp;nbsp;is very easy to understand. But the complexity increases in case of multi-cycle path ,Gated clock, Flip-flop using different clocks, Latches in place of Flip-Flop.&amp;nbsp;We will discuss all these later sometime.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;h3 class="post-title entry-title"&gt;&amp;nbsp;&lt;/h3&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/8979307355068037439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/setup-and-hold-time-violation-static.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/8979307355068037439?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/8979307355068037439?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/setup-and-hold-time-violation-static.html' title='&quot;Setup and Hold Time Violation&quot; : Static Timing Analysis (STA)caluculation'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-0ZaBq_XnDAY/TZ28vKSws1I/AAAAAAAAADY/crVbiEOE39Q/s72-c/Setup+and+Hold+3.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkUBRnc7fCp7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-189268079409555000</id><published>2011-08-29T06:32:00.001-07:00</published><updated>2011-08-30T09:04:17.904-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:04:17.904-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='STA'/><title>"Setup and Hold Time" : Static Timing Analysis (STA)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;/h3&gt;&lt;h3 class="post-title entry-title"&gt;The way we will discuss this concept in the following manner &lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;What is SetUp and Hold time?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Definition of Setup and Hold.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Setup and Hold Violation.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;How to calculate the Setup and Hold violation in a design?&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;I saw that lots of people are confused with respect to this concept. And the reason of this are&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;They know the definition but don't know the origin or say concept behind Setup and Hold timing.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;They know the formula for calculating setup and hold violation but don't know how this formula come in picture.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;They become confuse by few of the terminology like capture path delay, launch path delay, previous clock cycle, current clock cycle, data path delay, slew, setup slew, hold slew, min and max concept, slowest path and fastest path, min and max corner, best and worst case etc during the explanation of Setup and Hold Timings/Violation.&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;I hope I can clarify your confusion. Let me explain this and if you face any problem&amp;nbsp;let me know.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;What is&amp;nbsp;Setup and Hold time?&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;To understand the origin of the Setup and Hold time concepts first understand&amp;nbsp;it with respect to&amp;nbsp;a System as shown in the fig.&amp;nbsp;An Input DIN and external clock CLK are buffered&amp;nbsp;and passes&amp;nbsp;through combinational logic before&amp;nbsp;they reach a synchronous input and a clock input of a D flipflop (positive edge triggered). Now to capture the data correctly at D flip flop, data should be present at the time of positive edge of clock signal at the&amp;nbsp;C pin ( to know the detail just read basis of D flipflop). &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Note: here we are assuming D flip flop is ideal so Zero hold and setup time for this.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;﻿﻿ &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-5hTgUo9ZMt4/TZxAyr5exZI/AAAAAAAAADM/P3IpuPAouR0/s1600/Setup+and+Hold+1.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="205" src="http://3.bp.blogspot.com/-5hTgUo9ZMt4/TZxAyr5exZI/AAAAAAAAADM/P3IpuPAouR0/s400/Setup+and+Hold+1.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;SetUp and Hold Time of a System&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;﻿﻿&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There may be only 2 condition.&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Tpd DIN &amp;gt; Tpd Clk&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;For capture the data at the same time when Clock signal&amp;nbsp;(positive clock edge) reaches at pin C, you have to apply the input Data at pin DIN "Ts(in)=(Tpd DIN) - (Tpd Clk)" time before the positive clock edge at pin CLK.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;In other word, at DIN pin, Data should be stable "Ts(in)" time before the positive clock edge at CLK pin.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;This Time "Ts(in)" is know as Setup time of the System.&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Tpd DIN &amp;lt; Tpd Clk&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;For capture the data at the same time when clock signal (positive clock edge) reaches&amp;nbsp;at pin C, input Data at pin DIN should not change before "Th(in)= (Tpd Clk) - (Tpd DIN)" time. If it will change, positive clock edge at pin C will capture the next data.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;In other word,&amp;nbsp;at DIN pin,&amp;nbsp;Data should be stable "Th(in)" time after the positive clock edge at CLK pin.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;This time "Th(in)"&amp;nbsp;is know as Hold Time of the System.&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;From the above condition it looks like that both the condition can't exist at the same time and you are right. But we have to consider few more things in this.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Worst case and best case (Max delay and min delay)&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Because of environment condition or because of PVT, we can do this analysis for the worst case ( max delay) and best case ( min delay) also.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Shortest Path or Longest path ( Min Delay and Max delay)&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;If combinational logic has multiple paths, the we have to do this analysis for the shortest path ( min delay) and longest path ( max delay) also.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;So we can say that above condition can be like this.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Tpd DIN (max) &amp;gt; Tpd Clk (min)&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;SetUp time&amp;nbsp;== Tpd DIN (max) - Tpd Clk (min)&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Tpd DIN (min) &amp;lt; Tpd Clk (max)&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Hold time == Tpd Clk (max) - Tpd DIN (min)&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;For example&lt;/u&gt; for combinational logic delays are &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Data path (max, min) = (5ns, 4 ns)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Clock path (max, min) =&amp;nbsp;(4.5ns, 4.1ns)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Then Setup time= 5-4.1=0.9ns&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hold time is = 4.5-4=0.5ns&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now similar type of explanation we can give for a D flip flop.&amp;nbsp; There is a combinational logic between C and Q , between D and Q of the Flipflop. There are different delays in those conbinational logic and based on there max and min value , a flipflop has Setup and Hold time. One circuitry of the positive edge triggered D flip is shown below.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-EmWF3JEEUTU/TZ1P8q24mWI/AAAAAAAAADQ/GNBVzeRntQ4/s1600/D-flipflop.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="301" src="http://3.bp.blogspot.com/-EmWF3JEEUTU/TZ1P8q24mWI/AAAAAAAAADQ/GNBVzeRntQ4/s400/D-flipflop.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Positive Edge Triggered D flip-flop&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There are different ways for making the D flip flop. Like by JK flipflop, master slave flipflop, Using 2 D type latches etc. Since the internal circuitry is different for each type of Flipflop, the Setup and Hold time is different for every Flipflop.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Definition:&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Setup Time: &lt;/u&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Setup time&lt;/b&gt; is the minimum amount of time the data signal should be held steady &lt;b&gt;before&lt;/b&gt; the clock event so that the data are reliably sampled by the clock. This applies to synchronous circuits such as the flip-flop.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Or In short I can say that the amount of time the Synchronous input (D) must be stable &lt;u&gt;&lt;b&gt;before&lt;/b&gt; the active edge of the Clock&lt;/u&gt;.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;The Time when input data is available and stable &lt;b&gt;before&lt;/b&gt; the clock pulse is applied is called Setup time.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Hold time:&lt;/u&gt;&amp;nbsp; &lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Hold time&lt;/b&gt; is the minimum amount of time the data signal should be held steady &lt;b&gt;after&lt;/b&gt; the clock event so that the data are reliably sampled. This applies to synchronous circuits such as the flip-flop.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Or in short I can say that the amount of time the synchronous input (D) must be stable &lt;u&gt;&lt;b&gt;after&lt;/b&gt; the active edge of clock&lt;/u&gt;.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;The Time &lt;b&gt;after &lt;/b&gt;clock pulse where data input is held stable is called hold time.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;a href="http://2.bp.blogspot.com/-KrwwiPeAcK4/TZ1Vx-6AphI/AAAAAAAAADU/Io88QAEsdXI/s1600/Setup+and+Hold+2.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="261" src="http://2.bp.blogspot.com/-KrwwiPeAcK4/TZ1Vx-6AphI/AAAAAAAAADU/Io88QAEsdXI/s400/Setup+and+Hold+2.bmp" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Setup and Hold Violation:&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In simple language- &lt;/div&gt;&lt;div style="text-align: justify;"&gt;If Setup time is Ts for a flip-flop and if data is not stable&amp;nbsp;before Ts time from active edge of the clock, there is a Setup violation at that flipflop. So if data is changing in the non-shaded area ( in the above figure) before active clock edge, then it's a Setup violation.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;And If hold time is Th for a flip flop and if data is not stable after Th time from active edge of the clock , there is a hold violation at that flipflop.&amp;nbsp;So if data is changing in the non-shaded area ( in the above figure)&amp;nbsp;after active clock edge, then it's a&amp;nbsp;Hold violation.&lt;/div&gt;&lt;h3 class="post-title entry-title"&gt;&amp;nbsp;&lt;/h3&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/189268079409555000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/setup-and-hold-time-static-timing.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/189268079409555000?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/189268079409555000?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/setup-and-hold-time-static-timing.html' title='&quot;Setup and Hold Time&quot; : Static Timing Analysis (STA)'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-5hTgUo9ZMt4/TZxAyr5exZI/AAAAAAAAADM/P3IpuPAouR0/s72-c/Setup+and+Hold+1.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;CkQEQXczfyp7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-6609896728115277650</id><published>2011-08-29T06:29:00.001-07:00</published><updated>2011-08-30T09:05:00.987-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:05:00.987-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='STA'/><title>"Time Borrowing" : Static Timing Analysis</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;/h3&gt;&lt;h3 class="post-title entry-title"&gt;In a ASIC there are majorly two types of component. Flip-flop and other is Latches. Basically Here we will discuss about Latched based timing analysis. &lt;/h3&gt;&lt;div align="justify" style="text-align: justify;"&gt;Before this we should understand the basic differences between the latch based design and flip-flop based design.&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div align="justify" style="text-align: left;"&gt;Edge-triggered flip-flops change states at the clock edges, whereas&amp;nbsp;latches&amp;nbsp;change states as long as the clock pin is enabled. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div align="justify" style="text-align: left;"&gt;The delay of a combinational logic path of a design using edge-triggered flip-flops cannot be longer than the clock period except for those specified as false paths and multiple-cycle paths. So the performance of a circuit is&amp;nbsp;limited by the longest path of a design.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div align="justify" style="text-align: left;"&gt;In latch based design longer combinational path can be compensated by shorter path delays in the sebsequent logic stages.So for higher performance circuits deisgner are turning to latched based design.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify" style="text-align: justify;"&gt;Its true that in the latched based design its difficult to control the timing because of multi-phase clockes used and the lack of "hard" clock edges at which events must occur.&lt;/div&gt;&lt;div align="justify" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The technique of borrowing time from the shorter paths of the subsequent logic stages to the longer path is called &lt;i&gt;&lt;b&gt;time borrowing &lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;or &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;b&gt;cycle stealing&lt;/b&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;Lets talk about this. Please See the following figure.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--t0rwIembYI/TZBLF8pfw0I/AAAAAAAAADE/4_R-dRg5sP4/s1600/Time+borrowing-1.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="295" src="http://4.bp.blogspot.com/--t0rwIembYI/TZBLF8pfw0I/AAAAAAAAADE/4_R-dRg5sP4/s400/Time+borrowing-1.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Example of Latched based design.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;There are 4 latches (positive level sensitive). L1 and L3 are controlled by PH1 and L2 and L4 are controlled by PH2. G1, G2, G3 and G4 are combinational logic paths. For now assume a library setup time is zero for the latches and zero delay&amp;nbsp;in latch data-path in the&amp;nbsp;transparent mode. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;Now if assume that if&amp;nbsp; &lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;designs using edge-triggered flip-flops, the clock period has to be at least 8 ns because the longest path in &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;G&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;1 is 8 ns. Now as the clock pulse is 5ns , there is a voilation at L2. On the other hand, if the design uses latches&amp;nbsp;, L2 latch is transparent for another 5ns&amp;nbsp;and since the eighth (8th)&amp;nbsp;ns is within the enabled period of &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;L&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;2, the signal along &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;path&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;1 can pass through &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;L&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;2&amp;nbsp; and continue on &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;path&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;2. Since the delay along &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;path&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;2 is&amp;nbsp;2 ns, which is short enough to compensate for the overdue delay of &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;path&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;1, this design will work properly. In other word we can say that path1 can borrow sometime (3ns) from the path2. Since the sum&amp;nbsp;of path1&amp;nbsp;and path2 is 10ns, which is&amp;nbsp;the required time of L3, there will be no voilation in either of the Latches.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;For the same reason, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;path&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;3 can borrow some time (1ns) from &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;path&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;4 without any timing violation.&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;b&gt;Note: A latch-based design completes the execution of the four logic stages in 20 ns, whereas an edge-triggered based design needs 32 ns.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;Lets see this in a more complex design. Its self explanatory.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-D-zIa3pSNcU/TZBTbYsUP_I/AAAAAAAAADI/5fopmxXn13o/s1600/Time+borrowing-2.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="301" src="http://2.bp.blogspot.com/-D-zIa3pSNcU/TZBTbYsUP_I/AAAAAAAAADI/5fopmxXn13o/s400/Time+borrowing-2.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;Example Of Timing Borrowing&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;Just wanted to convey here that this Timing borrowing can be multistage. Means we can easily say that for a latched based design,&amp;nbsp; &lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;each executing path must start at a time when its driving latch is enabled, and end at a time when its driven latch is enabled.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Few Important things:&lt;/b&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Time borrowing occur with in the same cycle. Means launching and capturing latches be using the same phase of the same clock. when the clocks of the launching and capturing latches are out of phase, time borrowing is not to happen. Usually it was disabled by EDA tools.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: blue; font-family: TimesNewRoman;"&gt;&lt;span style="color: blue; font-family: TimesNewRoman;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: TimesNewRoman;"&gt;&lt;span style="color: black; font-family: TimesNewRoman;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align="justify" style="text-align: left;"&gt;&lt;span style="color: black;"&gt;Time borrowing typically only affects setup slack calculation since time &lt;/span&gt;&lt;span style="color: black;"&gt;borrowing slows data arrival times. Since hold time slack calculation uses fastest &lt;/span&gt;&lt;span style="color: black;"&gt;data, time-borrowing typically does not affect hold slack calculation.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Italic;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;span style="font-family: NewCenturySchlbk-Roman;"&gt;&lt;b&gt;Few Important terminology:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Maximum Borrow time:&amp;nbsp;&lt;/u&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Maximum Borrow time is the clock pulse width minus the library setup time of the latch. Usually to calculate the maximum allowable borrow time, start with clock pulse width and then substract clock latency , clock reconvergence pessimism removal , library setup time of the endpoint latch.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Negative Borrow time: &lt;/u&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;If the arrival time minus the clock edge is a negative number, the amount of time borrowing is negative ( in other way you can say that no borrowing). This amount is know as Negative Borrow time.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;h3 class="post-title entry-title"&gt;&amp;nbsp;&lt;/h3&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/6609896728115277650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/time-borrowing-static-timing-analysis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/6609896728115277650?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/6609896728115277650?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/time-borrowing-static-timing-analysis.html' title='&quot;Time Borrowing&quot; : Static Timing Analysis'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/--t0rwIembYI/TZBLF8pfw0I/AAAAAAAAADE/4_R-dRg5sP4/s72-c/Time+borrowing-1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkQCSXc6cSp7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-99791245845867827</id><published>2011-08-29T06:16:00.001-07:00</published><updated>2011-08-30T09:06:08.919-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:06:08.919-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='power gating'/><title>Power Gating</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://asic-soc.blogspot.com/2008/04/power-gating.html"&gt;&lt;br /&gt;
&lt;/a&gt; &lt;/h3&gt;&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://asic-soc.blogspot.com/2008/04/power-gating.html"&gt;&lt;br /&gt;
&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="post-body entry-content"&gt;&lt;style&gt;
h3 { margin-top: 0in; margin-bottom: 0in; color: rgb(0, 0, 0); line-height: 150%; text-align: justify; }h3.western { font-family: "Nimbus Roman No9 L",serif; font-size: 12pt; }h3.cjk { font-family: "Nimbus Sans L"; font-size: 12pt; }h3.ctl { font-family: "Tahoma","Lucidasans","Lucida Sans","Arial Unicode MS"; font-size: 12pt; }p { margin-bottom: 0.08in; }a:link { color: rgb(0, 0, 255); }
&lt;/style&gt;&lt;span style="font-family: Times New Roman,serif;"&gt;Power Gating is effective for reducing leakage power [3]. &lt;span style="color: black;"&gt;Power gating is the technique wherein circuit blocks that are not in use are temporarily turned off to reduce the overall leakage power of the chip. This temporary shutdown time can also call as "low power mode" or "inactive mode". When circuit blocks are required for operation once again they are activated to "active mode". These two modes are switched at the appropriate time and in the suitable manner to maximize power performance while minimizing impact to performance. Thus goal of power gating is to minimize leakage power by temporarily cutting power off to selective blocks that are not required in that mode. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;Power gating affects design architecture more compared to the clock gating. It increases time delays as power gated modes have to be safely entered and exited. The possible amount of leakage power saving in such low power mode and the energy dissipation to enter and exit such mode introduces some architectural trade-offs. Shutting down the blocks can be accomplished either by software or hardware. Driver software can schedule the power down operations. Hardware timers can be utilized. A dedicated power management controller is the other option.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;An externally switched power supply is very basic form of power gating to achieve long term leakage power reduction. To shutoff the block for small interval of time internal power gating is suitable. CMOS switches that provide power to the circuitry are controlled by power gating controllers. Output of the power gated block discharge slowly. Hence output voltage levels spend more time in threshold voltage level. This can lead to larger short circuit current.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;Power gating uses low-leakage PMOS transistors as header switches to shut off power supplies to parts of a design in standby or sleep mode. NMOS footer switches can also be used as sleep transistors. Inserting the sleep transistors splits the chip's power network into a permanent power network connected to the power supply and a virtual power network that drives the cells and can be turned off.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;The quality of this complex power network is critical to the success of a power-gating design. Two of the most critical parameters are the IR-drop and the penalties in silicon area and routing resources. Power gating can be implemented using cell- or cluster-based (or fine grain) approaches or a distributed coarse-grained approach.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Power-gating parameters&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;Power gating implementation has additional considerations than the normal timing closure implementation. The following parameters need to be considered and their values carefully chosen for a successful implementation of this methodology [1] [2]. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Power gate size: &lt;/b&gt;The power gate size must be selected to handle the amount of switching current at any given time. The gate must be bigger such that there is no measurable voltage (IR) drop due to the gate. Generally we use 3X the switching capacitance for the gate size as a rule of thumb. Designers can also choose between header (P-MOS) or footer (N-MOS) gate. Usually footer gates tend to be smaller in area for the same switching current. Dynamic power analysis tools can accurately measure the switching current and also predict the size for the power gate.&lt;/span&gt;&lt;/li&gt;
&lt;span class="fullpost"&gt; &lt;/span&gt;&lt;/ul&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Gate control slew rate: &lt;/b&gt;In power gating, this is an important parameter that determines the power gating efficiency. When the slew rate is large, it takes more time to switch off and switch-on the circuit and hence can affect the power gating efficiency. Slew rate is controlled through buffering the gate control signal. &lt;/span&gt;&lt;/li&gt;
&lt;span class="fullpost"&gt; &lt;/span&gt;&lt;/ul&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Simultaneous switching capacitance: &lt;/b&gt;This important constraint refers to the amount of circuit that can be switched simultaneously without affecting the power network integrity. If a large amount of the circuit is switched simultaneously, the resulting "rush current" can compromise the power network integrity. The circuit needs to be switched in stages in order to prevent this.&lt;/span&gt;&lt;/li&gt;
&lt;span class="fullpost"&gt; &lt;/span&gt;&lt;/ul&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Power gate leakage: &lt;/b&gt;Since power gates are made of active transistors, leakage is an important consideration to maximize power savings.&lt;/span&gt;&lt;/li&gt;
&lt;span class="fullpost"&gt; &lt;/span&gt;&lt;/ul&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Fine-grain power gating&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;Adding a sleep transistor to every cell that is to be turned off imposes a large area penalty, and individually gating the power of every cluster of cells creates timing issues introduced by inter-cluster voltage variation that are difficult to resolve. Fine-grain power gating encapsulates the switching transistor as a part of the standard cell logic. Switching transistors are designed by either library IP vendor or standard cell designer. Usually these cell designs conform to the normal standard cell rules and can easily be handled by EDA tools for implementation. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;The size of the gate control is designed with the worst case consideration that this circuit will switch during every clock cycle resulting in a huge area impact. Some of the recent designs implement the fine-grain power gating selectively, but only for the low Vt cells. If the technology allows multiple Vt libraries, the use of low Vt devices is minimum in the design (20%), so that the area impact can be reduced. When using power gates on the low Vt cells the output must be isolated if the next stage is a high Vt cell. Otherwise it can cause the neighboring high Vt cell to have leakage when output goes to an unknown state due to power gating. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;Gate control slew rate constraint is achieved by having a buffer distribution tree for the control signals. The buffers must be chosen from a set of always on buffers (buffers without the gate control signal) designed with high Vt cells. The inherent difference between when a cell switches off with respect to another, minimizes the rush current during switch-on and switch-off. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;Usually the gating transistor is designed as a high vt device. Coarse-grain power gating offers further flexibility by optimizing the power gating cells where there is low switching activity. Leakage optimization has to be done at the coarse grain level, swapping the low leakage cell for the high leakage one. Fine-grain power gating is an elegant methodology resulting in up to 10X leakage reduction. This type of power reduction makes it an appealing technique if the power reduction requirement is not satisfied by multiple Vt optimization alone. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Coarse-grain power gating&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;The coarse-grained approach implements the grid style sleep transistors which drives cells locally through shared virtual power networks. This approach is less sensitive to PVT variation, introduces less IR-drop variation, and imposes a smaller area overhead than the cell- or cluster-based implementations. In coarse-grain power gating, the power-gating transistor is a part of the power distribution network rather than the standard cell.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;There are two ways of implementing a coarse-grain structure:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;1) Ring-based&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;2) column-based&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Ring-based methodology&lt;/b&gt;: The power gates are placed around the perimeter of the module that is being switched-off as a ring. Special corner cells are used to turn the power signals around the corners. &lt;/span&gt;&lt;/li&gt;
&lt;span class="fullpost"&gt; &lt;/span&gt;&lt;/ul&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="fullpost"&gt;&lt;b&gt;Column-based methodology&lt;/b&gt;: The power gates are inserted within the module with the cells abutted to each other in the form of columns. The global power is the higher layers of metal, while the switched power is in the lower layers. &lt;/span&gt;&lt;/li&gt;
&lt;span class="fullpost"&gt; &lt;/span&gt;&lt;/ul&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;Gate sizing depends on the overall switching current of the module at any given time. Since only a fraction of circuits switch at any point of time, power gate sizes are smaller as compared to the fine-grain switches. Dynamic power simulation using worst case vectors can determine the worst case switching for the module and hence the size. IR drop can also be factored into the analysis. Simultaneous switching capacitance is a major consideration in coarse-grain power gating implementation. In order to limit simultaneous switching daisy chaining the gate control buffers, special counters are used to selectively turn on blocks of switches.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Times New Roman,serif;"&gt;&lt;b&gt;Isolation Cells&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;Isolation cells are used to prevent short circuit current. As the name indicates these cells isolate power gated block from the normally on block. Isolation cells are specially designed for low short circuit current when input is at threshold voltage level. Isolation control signals are provided by power gating controller. Isolation of the signals of a switchable module is essential to preserve design integrity. Usually a simple OR or AND logic can function as an output isolation device. Multiple state retention schemes are available in practice to preserve the state before a module shuts down. The simplest technique is to scan out the register values into a memory before shutting down a module. When the module wakes up, the values are scanned back from the memory. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Arial Unicode MS,sans-serif;"&gt;&lt;span style="font-family: Times New Roman,serif;"&gt;&lt;span style="color: black;"&gt; &lt;br /&gt;
&lt;b&gt;Retention Registers&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span class="fullpost"&gt;When power gating is used, the system needs some form of state retention, such as scanning out data to a RAM, then scanning it back in when the system is reawakened. For critical applications, the memory states must be maintained within the cell, a condition that requires a retention flop to store bits in a table. That makes it possible to restore the bits very quickly during wakeup. Retention registers are special low leakage flip-flops used to hold the data of main register of the power gated block. Thus internal state of the block during power down mode can be retained and loaded back to it when the block is reactivated. Retention registers are always powered up. The retention strategy is design dependent. During the power gating data can be retained and transferred back to block when power gating is withdrawn. Power gating controller controls the retention mechanism such as when to save the current contents of the power gating block and when to restore it back.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;span style="font-size: 130%;"&gt;&lt;b&gt;References&lt;/b&gt;&lt;/span&gt;  &lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: black;"&gt;[1] &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;a href="http://www.eetimes.com/news/design/showArticle.jhtml?articleID=199903073&amp;amp;pgno=1"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style="color: black;"&gt;Practical Power Network Synthesis For Power-Gating Designs, &lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;a href="http://www.eetimes.com/news/design/showArticle.jhtml?articleID=199903073&amp;amp;pgno=1"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style="color: black;"&gt;http://www.eetimes.com/news/design/showArticle.jhtml?articleID=199903073&amp;amp;pgno=1&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;, 11/01/2008&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="color: black;"&gt;[2] Anand Iyer, “Demystify power gating and stop leakage cold”, Cadence Design Systems, Inc. &lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;a href="http://www.powermanagementdesignline.com/howto/181500691;jsessionid=NNNDVN1KQOFCUQSNDLPCKHSCJUNN2JVN?pgno=1"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style="color: black;"&gt;http://www.powermanagementdesignline.com/howto/181500691;jsessionid=NNNDVN1KQOFCUQSNDLPCKHSCJUNN2JVN?pgno=1&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;, 11/01/2008&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3587966143822038019&amp;amp;postID=99791245845867827" name="_Ref143667556"&gt;&lt;/a&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3587966143822038019&amp;amp;postID=99791245845867827" name="_Ref143442920"&gt;&lt;/a&gt; &lt;span style="color: black;"&gt;[3] De-Shiuan Chiou, Shih-Hsin Chen, Chingwei Yeh, "Timing driven power gating", Proceedings of the 43rd annual conference on Design automation,ACM Special Interest Group on Design Automation, pp.121 - 124, 2006&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/99791245845867827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/power-gating-h3-margin-top-0in-margin_29.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/99791245845867827?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/99791245845867827?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/power-gating-h3-margin-top-0in-margin_29.html' title='Power Gating'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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 gd:etag='W/&quot;CkMGSXc-eSp7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-1400157206542387327</id><published>2011-08-22T00:58:00.000-07:00</published><updated>2011-08-30T09:07:08.951-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:07:08.951-07:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='STA'/><title>Basic of Timing Analysis in Physical Design</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="post-body entry-content"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;u&gt;What is Timing Analysis??&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Before we start anything at least we should know what exactly we mean by Timing Analysis. Why these days it’s so important? &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;There are a couple of reasons for performing timing analysis&lt;/u&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;We want to verify whether our circuit meet all of its timing requirements (Timing Constraints)&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;There are 3 types of design constraints- timing, power, area. During designing there is a trade-offs between speed, area, power, and runtime according to the constraints set by the designer. However, a chip must meet the timing constraints in order to operate at the intended clock rate, so timing is the most important design constraint.&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;We want to make sure that circuit is properly designed and can work properly for all combinations of components over the entire specified operating environment. &lt;b&gt;"Every Time".&lt;/b&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Timing analysis can also help with component selection.&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;An example is when you are trying to determine what memory device speed, you should use with a microprocessor. Using a memory device that is too slow may not work in the circuit (or would degrade performance by introducing wait states), and using one that is too fast will likely cost more than it needs to. &lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;So I can say Timing analysis is the methodical analysis of a digital circuit to determine if the timing constraints imposed by components or interfaces are met. Typically, this means that you are trying to prove that all set-up, hold, and pulse-width times are being met. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;u&gt;Note:&lt;/u&gt;&lt;/b&gt; Timing analysis is integral part of ASIC/VLSI design flow. Anything else can be compromised but not timing!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;u&gt;Types of Timing Analysis:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There are 2 type of Timing Analysis-&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://vlsi-expert.blogspot.com/2011/03/static-timing-analysis-sta-basic-timing.html"&gt;Static Timing Analysis&lt;/a&gt;:&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Checks static delay requirements of the circuit without any input or output vectors.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;Dynamic Timing Analysis.&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;verifies functionality of the design by applying input vectors and checking for correct output vectors&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;Basic Of Timing Analysis:&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The basis of all timing analysis is the clock and the sequential component (here we will discuss with the help of Flip-flop) . Following are few of the things related to clock and flip-flop which we usually wants to take care during Timing analysis.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Clock related:&lt;/u&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;It must be well understood parametrically and glitch-free.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Timing analysis must ensure that any clocks that are generated by the logic are clean, are of bounded period and duty cycle, and of a known phase relationship to other clock signals of interest.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;The clock must, for both high and low phases, meet the minimum pulse width requirements.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Certain circuits, such as PLLs, may have other requirements such as maximum jitter. As the clock speeds increase, jitter becomes an increasingly important parameter.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;When "passing" data from one clock edge to the other, ensure that the worst-case duty cycle is used for the calculation. A frequent source of error is the analyst assuming that every clock will have a 50% duty cycle.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Flip-Flop related:&lt;/u&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;All of the flip-flops parameters are always met. The only exception to this is when synchronizers are used to synchronize asynchronous signals&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;For asynchronous presets and clears, there are two basic parameters that must be met.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;All setup and hold times are met for the earliest/latest arrival times for the clock.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Setup times are generally calculated by designers and suitable margins can be demonstrated under test. Hold times, however, are frequently not calculated by designers.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;When passing data from one clock domain to another, ensure that there is either known phase relationships which will guarantee meeting setup and hold times or that the circuits are properly synchronized&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Now Lets talk about Each type of Timing analysis One by one in the next few blogs.&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;/div&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: medium none;"&gt;&lt;tbody&gt;
&lt;tr style="height: 11.85pt;"&gt;&lt;td style="background-color: transparent; border-color: windowtext rgb(236, 233, 216) windowtext windowtext; border-style: solid none solid solid; border-width: 1pt medium 1pt 1pt; height: 11.85pt; padding: 0in 5.4pt; width: 106.65pt;" valign="top" width="142"&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 11.85pt; padding: 0in 5.4pt; width: 106.65pt;" valign="top" width="142"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: center;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="post-footer"&gt;&lt;div class="post-footer-line post-footer-line-1"&gt;&lt;span class="post-author vcard"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="post-timestamp"&gt;&lt;a class="timestamp-link" href="http://vlsi-expert.blogspot.com/2011/02/timing-analysis-basis-what-and-why.html" rel="bookmark" title="permanent link"&gt;&lt;abbr class="published" title="2011-02-28T14:14:00+05:30"&gt;&lt;/abbr&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="post-share-buttons"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="post-footer-line post-footer-line-3"&gt;&lt;span class="reaction-buttons"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td class="reactions-label-cell" nowrap="nowrap" valign="top" width="1%"&gt;&lt;span class="reactions-label"&gt; Reactions:&lt;/span&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="date-outer"&gt;&lt;h2 class="date-header"&gt;Tuesday, February 22, 2011&lt;/h2&gt;&lt;div class="date-posts"&gt;&lt;div class="post-outer"&gt;&lt;div class="post hentry"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3587966143822038019&amp;amp;postID=1400157206542387327" name="2878224327474342193"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://vlsi-expert.blogspot.com/2011/02/clock-reconvergence-pessimism-crp-basic.html"&gt;Clock Reconvergence Pessimism (CRP) basic&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="post-body entry-content"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;b&gt;&lt;u&gt;Full Form :&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;CRP : Clock Reconvergence Pessimism.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;What is CRP (Clock Reconvergence Pessimism)?&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
As the "convergence" means (dictionary) "the occurrence of two or more things coming together". So we can assume that its also related to 2 clock path coming together. (Please refer the another blog for understanding the Clock path- &lt;a href="http://vlsi-expert.blogspot.com/2011/03/static-timing-analysis-sta-basic-timing.html"&gt;&lt;span style="color: blue;"&gt;Static Timing Analysis Basic: Part1 "Timing Paths"&lt;/span&gt;&lt;/a&gt;) &lt;br /&gt;
&lt;br /&gt;
Now lets assume 2 flip-flop circuit as shown in the figure.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-lTHMsuEYbgM/TWNss76J49I/AAAAAAAAACU/wvkJlegs4wQ/s1600/CRP+circuit.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="172" src="http://2.bp.blogspot.com/-lTHMsuEYbgM/TWNss76J49I/AAAAAAAAACU/wvkJlegs4wQ/s320/CRP+circuit.bmp" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Clock Reconvergence Pessimism&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;As you can see that flop share a common clock but are placed physically at the different places in the same die. Or in other way you can say that Launch clock path and capture clock path (Please refer &lt;a href="http://vlsi-expert.blogspot.com/2011/03/static-timing-analysis-sta-basic-timing.html"&gt;&lt;span style="color: blue;"&gt;Static Timing Analysis Basic: Part1 "Timing Paths"&lt;/span&gt;&lt;/a&gt;&amp;nbsp;for defination of Launch and Capture Clock path) &amp;nbsp;share a common segment in the clock tree till the point know as "common point" (in above fig you can see that "common point" is written as "The clock path common to both flops till this point"). The 2 clock path diverse from that point.&lt;br /&gt;
&lt;br /&gt;
As we know that every cell has two type of delay as a part of its specification, "Max Delay" and "Min delay". There are several scenario in the design where we use&amp;nbsp;either max delay&amp;nbsp;or min delay of a particular cell. Such as best case analysis (BC), worst case (WC) analysis, OCV (on chip variation) analysis during timing analysis.&lt;br /&gt;
&lt;br /&gt;
Lets consider that max delay and min delay of the common segment is as&lt;br /&gt;
Max delay=1.2ns &lt;br /&gt;
Min Delay=1.0ns.&lt;br /&gt;
&lt;br /&gt;
Now, if during timing analysis a condition arise where you have to use max delay for one timing path&amp;nbsp;and min delay for another timing path (such as during OCV analysis),&amp;nbsp;you have to use 2 different values for a common&amp;nbsp;path. But practically same&amp;nbsp;set of cells&amp;nbsp;can't be behave different for different clock path. &lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;For example, for a setup check&lt;/u&gt;, it uses the maximum delay for the launch clock path (1.2ns + delay because of rest of the circuit in the launch path)&amp;nbsp;and the minimum delay for the capture clock path (1.0ns + delay because of rest of the circuit in the launch path.&lt;br /&gt;
&lt;br /&gt;
In a physical design, however, the cells along the common portion of the clock tree cannot simultaneously achieve their maximum and minimum delay values. Thus there will be a single value of delay to the common point that will be propagated to both the launching and capturing clock paths. This conflicts with our timing analysis method described above&amp;nbsp;since we utilise two sets of delay values at the common point.&lt;br /&gt;
&lt;br /&gt;
Therefore our timing report contains artificially introduced pessimism that is derived from our usage of&amp;nbsp;max and&amp;nbsp;min delay for the launching and capturing paths along this common portion of the clock network. The value of this pessimism, is the difference between&amp;nbsp;max and min delay at the common point in the clock network.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;u&gt;&lt;i&gt;The amount of pessimism due to this effect (in this example, 0.2 ns) is called "clock reconvergence pessimism".&lt;/i&gt;&lt;/u&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Clock reconvergence pessimism = (maximum clock delay) - (minimum clock delay)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Note: Above situation is identical for hold checks also. &lt;/u&gt;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
Similar type of situation can arise in different type of circuit also. Lets discuss one of that. Please see the following fig. &lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-DmWbqC-9jwc/TWN24fWBFdI/AAAAAAAAACY/2ivUM47jd78/s1600/CRP+circuit-2.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="217" src="http://1.bp.blogspot.com/-DmWbqC-9jwc/TWN24fWBFdI/AAAAAAAAACY/2ivUM47jd78/s400/CRP+circuit-2.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Schematic of a reconvergent clock&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&amp;nbsp; &lt;br /&gt;
The two clock paths that feed into the multiplexer cannot be active at the same time, but an analysis could consider both the shorter and longer paths for one setup or hold check. This results in different launch and capture clock path delays and the consequent pessimism. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;How to remove CRP ?&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Automated correction of this inaccuracy is called clock reconvergence pessimism removal (CRPR). By default , most of the tools (EDA tools for timing calculation) disable this feature (automated correction). By you can enable this feature by setting one/more variables during timing analysis. Different Tools have different variable for this. For that please refer the USER GUIDE or MANUAL of corresponding tool.&lt;/div&gt;&lt;/div&gt;&lt;div class="post-footer"&gt;&lt;div class="post-footer-line post-footer-line-1"&gt;&lt;span class="post-author vcard"&gt; Posted by &lt;span class="fn"&gt;your VLSI&lt;/span&gt; &lt;/span&gt; &lt;span class="post-timestamp"&gt; at &lt;a class="timestamp-link" href="http://vlsi-expert.blogspot.com/2011/02/clock-reconvergence-pessimism-crp-basic.html" rel="bookmark" title="permanent link"&gt;&lt;abbr class="published" title="2011-02-22T14:49:00+05:30"&gt;2:49 PM&lt;/abbr&gt;&lt;/a&gt; &lt;/span&gt; &lt;span class="post-comment-link"&gt; &lt;a class="comment-link" href="http://vlsi-expert.blogspot.com/2011/02/clock-reconvergence-pessimism-crp-basic.html#comments"&gt;0 comments&lt;/a&gt; &lt;/span&gt; &lt;span class="post-icons"&gt; &lt;span class="item-action"&gt; &lt;a href="http://www.blogger.com/email-post.g?blogID=4597498589834570435&amp;amp;postID=2878224327474342193" title="Email Post"&gt; &lt;img alt="" class="icon-action" height="13" src="http://img1.blogblog.com/img/icon18_email.gif" width="18" /&gt; &lt;/a&gt; &lt;/span&gt; &lt;span class="item-control blog-admin pid-1187905115"&gt; &lt;a href="http://www.blogger.com/post-edit.g?blogID=4597498589834570435&amp;amp;postID=2878224327474342193&amp;amp;from=pencil" title="Edit Post"&gt; &lt;img alt="" class="icon-action" height="18" src="http://img2.blogblog.com/img/icon18_edit_allbkg.gif" width="18" /&gt; &lt;/a&gt; &lt;/span&gt; &lt;/span&gt; &lt;br /&gt;
&lt;div class="post-share-buttons"&gt;&lt;a class="goog-inline-block share-button sb-email" href="http://www.blogger.com/share-post.g?blogID=4597498589834570435&amp;amp;postID=2878224327474342193&amp;amp;target=email" target="_blank" title="Email This"&gt; &lt;span class="share-button-link-text"&gt;Email This&lt;/span&gt; &lt;/a&gt;&lt;a class="goog-inline-block share-button sb-blog" href="http://www.blogger.com/share-post.g?blogID=4597498589834570435&amp;amp;postID=2878224327474342193&amp;amp;target=blog" target="_blank" title="BlogThis!"&gt; &lt;span class="share-button-link-text"&gt;BlogThis!&lt;/span&gt; &lt;/a&gt;&lt;a class="goog-inline-block share-button sb-twitter" href="http://www.blogger.com/share-post.g?blogID=4597498589834570435&amp;amp;postID=2878224327474342193&amp;amp;target=twitter" target="_blank" title="Share to Twitter"&gt; &lt;span class="share-button-link-text"&gt;Share to Twitter&lt;/span&gt; &lt;/a&gt;&lt;a class="goog-inline-block share-button sb-facebook" href="http://www.blogger.com/share-post.g?blogID=4597498589834570435&amp;amp;postID=2878224327474342193&amp;amp;target=facebook" target="_blank" title="Share to Facebook"&gt; &lt;span class="share-button-link-text"&gt;Share to Facebook&lt;/span&gt; &lt;/a&gt;&lt;a class="goog-inline-block share-button sb-buzz" href="http://www.blogger.com/share-post.g?blogID=4597498589834570435&amp;amp;postID=2878224327474342193&amp;amp;target=buzz" target="_blank" title="Share to Google Buzz"&gt; &lt;span class="share-button-link-text"&gt;Share to Google Buzz&lt;/span&gt; &lt;/a&gt; &lt;/div&gt;&lt;span class="post-backlinks post-comment-link"&gt; &lt;a class="comment-link" href="http://vlsi-expert.blogspot.com/2011/02/clock-reconvergence-pessimism-crp-basic.html#links"&gt;Links to this post&lt;/a&gt; &lt;/span&gt; &lt;/div&gt;&lt;div class="post-footer-line post-footer-line-3"&gt;&lt;span class="reaction-buttons"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td class="reactions-label-cell" nowrap="nowrap" valign="top" width="1%"&gt;&lt;span class="reactions-label"&gt; Reactions:&lt;/span&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="date-outer"&gt;&lt;h2 class="date-header"&gt;Saturday, February 19, 2011&lt;/h2&gt;&lt;div class="date-posts"&gt;&lt;div class="post-outer"&gt;&lt;div class="post hentry"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3587966143822038019&amp;amp;postID=1400157206542387327" name="4860270413337340767"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://vlsi-expert.blogspot.com/2011/02/different-file-formats-file-extensions.html"&gt;Different File Formats (file extensions)&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="post-body entry-content"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;There are different type of the files generated during a design cycle or&amp;nbsp;data received by the library vendor/foundry. Few of them having specific extension. Just to know the extension, you can easily identity the type of content in that file.&lt;br /&gt;
&lt;br /&gt;
I am listing down of the file extension. Please let me know if you find any extension is missing. I will add those later on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;File Extensions: &lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;*.v - Verilog source file&lt;/b&gt;. Normally it’s a source file your write. Design Compiler, and IC Compiler can use this format for the gate-level netlist.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;*.vg, .g.v - Verilog gate-level netlist file&lt;/b&gt;. Sometimes people use these file extension to differentiate source files and gate-level netlists.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;*.svf - Automated setup file.&lt;/b&gt; This file helps Formality process design changes caused by other tools used in the design flow. Formality uses this file to assist the compare point matching and verification process. This information facilitates alignment of compare points in the designs that you are verifying. For each automated setup file that you load, Formality processes the content and stores the information for use during the name-based compare point matching period.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.ddc - Synopsys internal database format&lt;/b&gt;. This format is recommended by Synopsys to hand gate-level netlists.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.vcd - Value Change Dump format&lt;/b&gt;. This format is used to save signal transition trace information. This format is in text format, therefore, the trace file in this format can get very large quickly. There are tools like vcd2vpd, vpd2vcd, and vcd2saif switch back and forth between different formats.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;*.vpd - VCD Plus&lt;/b&gt;. This is a proprietary compressed binary trace format from Synopsys. This file format is used to save signal transition trace information as well.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.saif - Switching Activity Interchange Format.&lt;/b&gt; It’s another format to save signal transition trace information. SAIF files support signals and ports for monitoring as well as constructs such as generates, enumerated types, records, array of arrays, and integers.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&amp;nbsp;*.tcl - Tool Command Language (Tcl)&lt;/b&gt; scripts. Tcl is used to drive Synopsys tools.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.sdc - &lt;a href="http://vlsi-expert.blogspot.com/2011/02/synopsys-design-constraints-sdc-basics.html"&gt;&lt;span style="color: blue;"&gt;Synopsys Design Constraints&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;a href="http://./"&gt;.&lt;/a&gt;&lt;span id="goog_777030877"&gt;&lt;/span&gt;&lt;span id="goog_777030878"&gt;&lt;/span&gt; SDC is a Tcl-based format. All commands in an SDC file conform to the Tcl syntax rules. You use an SDC file to communicate the design intent, including timing and area requirements between EDA tools. An SDC file contains the following information: SDC version, SDC units, design constraints, and comments.&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.lib - Technology Library source file&lt;/b&gt;. Technology libraries contain information about the characteristics and functions of each cell provided in a semiconductor vendor’s library. Semiconductor vendors maintain and distribute the technology libraries. In our case the vendor is Synopsys. Cell characteristics include information such as cell names, pin names, area, delay arcs, and pin loading. The technology library also defines the conditions that must be met for a functional design (for example, the maximum transition time for nets). These conditions are called design rule constraints. In addition to cell information and design rule constraints, technology libraries specify the operating conditions and wire load models specific to that technology.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.db - Technology Library&lt;/b&gt;. This is a compiled version of *.lib in Synopsys database format.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.plib - Physical Library source file&lt;/b&gt;. Physical libraries contain process information, and physical layout information of the cells. This information is required for floor planning, RC estimation and extraction, placement, and routing.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.pdb - Physical Library&lt;/b&gt;. This is a compiled version of *.plib in Synopsys database format.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.slib - Symbol Library source file&lt;/b&gt;. Symbol libraries contain definitions of the graphic symbols that represent library cells in the design schematics. Semiconductor vendors maintain and distribute the symbol libraries. Design Compiler uses symbol libraries to generate the design schematic. You must use Design Vision to view the design schematic. When you generate the design schematic, Design Compiler performs a one-to-one mapping of cells in the netlist to cells in the symbol library.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.sdb - Symbol Library.&lt;/b&gt; This is a compiled version of *.slib in Synopsys database format.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&amp;nbsp;*.sldb - DesignWare Library&lt;/b&gt;. This file contains information about DesignWare libraries.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.def - Design Exchange Format.&lt;/b&gt; This format is often used in Cadence tools to represent physical layout. Synopsys tools normally use Milkyway format to save designs.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.lef - Library Exchange Format&lt;/b&gt;. Standard cells are often saved in this format. Cadence tools also often use this format. Synopsys tools normally use Milkyway format for standard cells.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.rpt - Reports&lt;/b&gt;. This is not a proprietary format, it’s just a text format which saves generated reports by the tools when you use the automated makefiles and scripts.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.tf - Vendor Technology File&lt;/b&gt;. This file contains technology-specific information such as the names, characteristics (physical and electrical) for each metal layer, and design rules. These information are required to route a design.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.itf - Interconnect Technology File&lt;/b&gt;. This file contains a description of the process crosssection and connectivity section. It also describes the thicknesses and physical attributes of the conductor and dielectric layers.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.map - Mapping file.&lt;/b&gt; This file aligns names in the vendor technology file with the names in the process *.itf file.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.tluplus - TLU+ file&lt;/b&gt;. These files are generated from the *.itf files. TLUPlus models are a set of models containing advanced process effects that can be used by the parasitic extractors in Synopsys place-and-route tools for modeling.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.spef - &lt;a href="http://vlsi-expert.blogspot.com/2010/08/how-to-read-spef.html"&gt;&lt;span style="color: blue;"&gt;Standard Parasitic Exchange Format&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;. File format to save parasitic information extracted by the place and route tool.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;*.sbpf - &lt;a href="http://vlsi-expert.blogspot.com/2010/08/difference-between-parasitic-data.html"&gt;&lt;span style="color: blue;"&gt;Synopsys Binary Parasitic Format&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;. A Synopsys proprietary compressed binary format of the *.spef. Size of the file shrinks quite a bit using this format.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;*.mw(&amp;nbsp;Milkyway database)&lt;/b&gt; The Milkyway database consists of libraries that contain information about your design. Libraries contain information about design cells, standard cells, macro cells, and so on. They contain physical descriptions, such as metal, diffusion, and polygon geometries. Libraries also contain logical information (functionality and timing characteristics) for every cell in the library. Finally, libraries contain technology information required for design and fabrication. Milkyway provides two types of libraries that you can use: reference libraries and design libraries. Reference libraries contain standard cells and hard or soft macro cells, which are typically created by vendors. Reference libraries contain physical information necessary for design implementation. Physical information includes the routing directions and the placement unit tile dimensions, which is the width and height of the smallest instance that can be placed. A design library contains a design cell. The design cell might contain references to multiple reference libraries (standard cells and macro cells). Also, a design library can be a reference library for another design library. The Milkyway library is stored as a UNIX directory with subdirectories, and every library is managed by the Milkyway Environment. The top-level directory name corresponds to the name of the Milkyway library. Library subdirectories are classified into different views containing the appropriate information relevant to the library cells or the designs. In a Milkyway library there are different views for each cell, for example, NOR1.CEL and NOR1.FRAM. This is unlike a .db formatted library where all the cells are in a single binary file. With a .db library, the entire library has to be read into memory. In the Milkyway Environment, the Synopsys tool loads the library data relevant to the design as needed, reducing memory usage. The most commonly used Milkyway views are CEL and FRAM. CEL is the full layout view, and FRAM is the abstract view for place and route operations.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;&lt;b&gt;simv - Compiled simulator&lt;/b&gt;. This is the output of vcs. In order to simulate, run the simulator by ./simv at the command line.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&amp;nbsp;alib-52&lt;/b&gt; - characterized target technology library. A pseudo library which has mappings from Boolean functional circuits to actual gates from the target library. This library provides Design Compiler with greater flexibility and a larger solution space to explore tradeoffs between area and delay during optimization.&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="post-footer"&gt;&lt;div class="post-footer-line post-footer-line-3"&gt;&lt;span class="reaction-buttons"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class="reactions-label-cell" nowrap="nowrap" valign="top" width="1%"&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="date-outer"&gt;&lt;div class="date-posts"&gt;&lt;div class="post-outer"&gt;&lt;div class="post hentry"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3587966143822038019&amp;amp;postID=1400157206542387327" name="463181894431708292"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://vlsi-expert.blogspot.com/2011/02/process-variation-effects-on-design.html"&gt;Process Variation - Effects On Design, Different Types and Modelling&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="post-body entry-content"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;The Scaling down of Process technologies has increased the Process variations. Because of this delay variation increases and impact the frequency performance of the design. These things also impacted the TAT (Turn Around Time) and timing yields (The ration of chips that achieve the target Frequency).&lt;br /&gt;
&lt;br /&gt;
As a design specification its important to Target a particular frequency and Yield. Means how many chip can perform with in the target frequency after fabrication). Designer have done a lot of things to achieve this and one of the way is "adding sufficient margin" for delay variation.&lt;br /&gt;
&lt;br /&gt;
In Process node above 90nm , the margins for the delay variations are small enough and their impact on the design can be eliminated but below 90nm increased Delay variation (because of Process variation) enlarge the margins in the circuit design. Because of this we have to overestimate delay in the design and which makes design work difficult (Increased the TAT of the design).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;So its very important to understand that what are the delay variations?&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Delay Variations are due to various type of process variations.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Type Of Process variation:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Random Variation&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Occurs without regards to the location and patterns of the transistors with in the chip.&lt;/li&gt;
&lt;li&gt;E.g&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;variation in transistor threshold voltage caused by density variations of impurities in the transistor material.&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Systematic variation&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Related to the location and patterns&lt;/li&gt;
&lt;li&gt;E.g&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Exposure pattern variation that occurred in lithography process.&lt;/li&gt;
&lt;li&gt;silicon surface flatness variations caused by layout pattern density variation during the CMP (Chemical Mechanical Planarization)&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Intra-die Or Within-die variation&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Variations between the elements in the same chip&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Inter-die Or Die-to-die variation.&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Variations between chips in the same wafer or in different wafers.&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-bottom: 0.5em; margin-right: 1em; padding: 6px; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_xTkXeYeaQ6s/TVJUjNQu74I/AAAAAAAAACQ/CBlrvrBQFxA/s1600/Process_variation.bmp" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/_xTkXeYeaQ6s/TVJUjNQu74I/AAAAAAAAACQ/CBlrvrBQFxA/s400/Process_variation.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="font-size: 13px; padding-top: 4px; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Part(a) is a type of &amp;nbsp;Random variation.&amp;nbsp;Part(b) for Systematic variation and Part(c) for Die-to-die and within-die variations.&lt;s&gt;&lt;br /&gt;
&lt;/s&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;u&gt;There are few more classification for the Process variations&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Front-end Variation&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Mainly refer to the variations present at the transistor level.&lt;/li&gt;
&lt;li&gt;The primary components of the front end variations&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;transistor gate length&lt;/li&gt;
&lt;li&gt;gate width,&lt;/li&gt;
&lt;li&gt;gate oxide thickness,&lt;/li&gt;
&lt;li&gt;doping related variations.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&amp;nbsp;These physical variations cause changes in the electrical characteristics of the transistors which eventually lead to the variability in the circuit performance&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Back-end Variation.&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Refer to the variations on various levels of interconnecting metal and dielectric layers used to connect numerous devices to form the required logic gates&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Now at least we have a rough idea about the type of Variations. Now next question is what is the solution of these variations. If these variations are there then how can we take care about this. So regarding this Foundries and EDA companies had done a lot of experiments and they always come with better solutions.&amp;nbsp;&lt;/div&gt;&lt;div&gt;One best way is To MODEL these variation (mathematically) and implement it during the designing cycle.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;Lets Talk about these one by one.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Systematic Variation's Modeling:&lt;/b&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;Controlled not like Random variation modeling where every thing is distributed.&lt;/li&gt;
&lt;li&gt;Generally Geometry-dependent or layout-dependent.&lt;/li&gt;
&lt;li&gt;Modeling is based on practical models. These models are implemented mathematically using different Tables(matrix), equations and simulators.&lt;/li&gt;
&lt;li&gt;Few of the area/causes on the basis of which modeling methods are decided&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;ETCH modelling.&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Conductor's&amp;nbsp;Width and Spacing Dependent ETCH.&lt;/li&gt;
&lt;li&gt;Device Specific&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Conductor Thickness variation.&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Density dependent&lt;/li&gt;
&lt;li&gt;Width and spacing dependent.&lt;/li&gt;
&lt;li&gt;Dielectric coefficient dependent.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Dielectric thickness variation.&lt;/li&gt;
&lt;li&gt;Trapezoidal Line Shape and width enlargement (Trap tangent modelling)&lt;/li&gt;
&lt;li&gt;Damage Modelling.&lt;/li&gt;
&lt;li&gt;The intra-die variations, or variations within the same chip, are modeled using a deterministic process and are well controlled.&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;b&gt;Random Variation's Modelling.&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Distributed , across different dies or even wafers&lt;/li&gt;
&lt;li&gt;Random and independent in nature.&lt;/li&gt;
&lt;li&gt;Manimum and minimun variation for a given parameter is usually know, along with the type of distribution the parameter exhibits. Usually this information is provided by the foundry.&lt;/li&gt;
&lt;li&gt;Commonly, we use "Normal Gaussian Distribution" based on "Central Limit Theorem" for modelling random variation.&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Based on Probability of occurance of&amp;nbsp;a particular&amp;nbsp;variation.&lt;/li&gt;
&lt;li&gt;Assumption: Variation of a paramenter is independent of rest of the factors and none of them playing dominant role.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Random variations are modelled through process corners, where max and min variations represented by +3sigma and -3sigma.&lt;/li&gt;
&lt;li&gt;Following parameters are modelled as Random variations&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Thickness of &lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Conductor&lt;/li&gt;
&lt;li&gt;Dielectric&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Width of Conductor.&lt;/li&gt;
&lt;li&gt;Dielectric Constant.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Inter-die variations, or the process variation from die to die or wafer to wafer, are assumed to be random, and therefore are generally modeled using a normal and/or uniform distribution.&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;&lt;u&gt;NOTE&lt;/u&gt;&lt;/b&gt;: There are lots of systematic variation, which are part of Random variation for lower technology node. Because as the chip size is decreases, Its very difficult to come-up a well defined equations/tables for few of the parameters. e.g thickness variation due to chemical mechanical polishing (CMP) or line width&amp;nbsp;variation because of optical inaccuracies.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Note&lt;/u&gt;&lt;/b&gt;: Please refer the Corresponding Blog for the detail of specific variation/model types.&lt;/div&gt;&lt;/div&gt;&lt;div class="post-footer"&gt;&lt;div class="post-footer-line post-footer-line-1"&gt;&lt;/div&gt;&lt;div class="post-footer-line post-footer-line-3"&gt;&lt;span class="reaction-buttons"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td class="reactions-label-cell" nowrap="nowrap" valign="top" width="1%"&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="date-outer"&gt;&lt;h2 class="date-header"&gt;&lt;/h2&gt;&lt;div class="date-posts"&gt;&lt;div class="post-outer"&gt;&lt;div class="post hentry"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3587966143822038019&amp;amp;postID=1400157206542387327" name="8229506710330610559"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://vlsi-expert.blogspot.com/2011/02/etm-extracted-timing-models-more-detail.html"&gt;ETM (Extracted Timing Models) - More detail&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="post-body entry-content"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;Lets Talk about ETM models little more: Check the &lt;a href="http://vlsi-expert.blogspot.com/2011/02/etm-extracted-timing-models-basics.html"&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;ETM(Extracted Timing Models)-Basic&lt;/span&gt;&lt;/a&gt; blog for basic idea.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Advantage of Extracted Timing models:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;Much smaller than the original netlist.&lt;/li&gt;
&lt;li&gt;significantly reduce the time needed to analyze a large design.&lt;/li&gt;
&lt;li&gt;Using a model in place of a netlist prevents a user from seeing the contents of  the block.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Extraction Requirement:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;To generate these models you should have&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Block netlist.&lt;/li&gt;
&lt;li&gt;Technology Library&lt;/li&gt;
&lt;li&gt;Timing details of the block.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;As I have mentioned previously in one of my blog that Extracted timing models creates a timing arc for each path&amp;nbsp;(port to port or port to register or register to port)&amp;nbsp;in the original design (block). As we know that delay &amp;nbsp;in a design is accurate for a range of operating condition , but in the ETM models delay data does not depend on any specific parameter's value (like&amp;nbsp;input transition times, output capacitive loads, input arrival times, output required times etc) and that's the reason these models are know as "context independent" models(condition applied ## [:)]). But when you are using these models in your design for timing analysis, then delay value depends on these parameters. So in other word I can say that these models are functions of different parameters and not limited to a specific set of parameter's values.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;Timing information of different parts of the design in the Extracted models:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;&lt;i&gt;Nets&lt;/i&gt;&lt;/u&gt;:&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Boundary nets: Preserves the boundary nets of the design. Since these are the nets which will interact with the outside world (when you are going to instantiate this in the other design), so proper/correct and original &amp;nbsp;information is necessary to avoid any &amp;nbsp;mismatching.&lt;/li&gt;
&lt;li&gt;Internal Nets: Delay values are extracted in the models as per the information provided during the extraction. Means if you provide the "wire load models" then it will contain the information as per that or if you will provide detailed parasitics (of these internal nets), it will contain that information.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;u&gt;&lt;i&gt;Paths&lt;/i&gt;&lt;/u&gt;:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Input to register: Extracted into equivalent setup arc and hold arc between these 2.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Setup arc = delay of the longest path +&amp;nbsp;setup time of the register library cell.&lt;/li&gt;
&lt;li&gt;Hold arc = delay of the shortest path + hold times of the  register library cell.&lt;/li&gt;
&lt;li&gt;Note:&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;calculation between the shortest and longest path is between a&amp;nbsp;particular input to all registers clocked by the same clock&lt;/li&gt;
&lt;li&gt;These values are function of transition time of input signal and clock, so if you are using this block in some other clock frequency (different then the value you have used during generation of these models), then you can do it easily.&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Register to Input: Same as above.&lt;/li&gt;
&lt;li&gt;Input to output path: Extracted into 2 equivalent arc (one is for shortest path and other for longest path).&lt;/li&gt;
&lt;li&gt;Register to register: Not extracted&lt;/li&gt;
&lt;li&gt;Clock path:&amp;nbsp;Delays and transition times of clock networks are reflected in the extracted  model.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Noise Analysis using These models:&lt;/b&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;By default these is no noise information is included in extracted models. If you want then you can use special command for including noise characteristics in the extracted models.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;Other Information:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;There are lot of other information present in the extracted timing models. For that you can refer PrimeTime User Guide.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;##&lt;/b&gt; "Context independent" doesn't mean that you can operate these models for any set of conditions.&amp;nbsp;Before a timing model is created, the internal logic of the block is checked for timing violations, subject to external conditions such as input delay and output delay. Once verified, the internal timing of the model is guaranteed to have no violations as long as the external conditions are within the ranges specified when the internal logic was checked.&lt;/div&gt;&lt;div&gt;&lt;b&gt;##&lt;/b&gt; SO before using these blocks you should know the range of these blocks (know as scope of the block). You can generate the scope file containing all these information also and check that one before using this in your design.&lt;/div&gt;&lt;div&gt;&lt;b&gt;##&lt;/b&gt; Information stored in the ETM is in the form of delay table (A 2x2 Matrix). These matrix specifies the arc delay value as a function of the input transition time and the output load capacitance. Interpolation and extrapolation are performed for calculating the values other then specified in the table. These models are accurate for the range of values specified in the table.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="post-footer"&gt;&lt;div class="post-footer-line post-footer-line-1"&gt;&lt;span class="post-author vcard"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="post-footer-line post-footer-line-3"&gt;&lt;span class="reaction-buttons"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td class="reactions-label-cell" nowrap="nowrap" valign="top" width="1%"&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;
&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="date-outer"&gt;&lt;div class="date-posts"&gt;&lt;div class="post-outer"&gt;&lt;div class="post hentry"&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3587966143822038019&amp;amp;postID=1400157206542387327" name="343762937270867577"&gt;&lt;/a&gt; &lt;br /&gt;
&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://vlsi-expert.blogspot.com/2011/02/etm-extracted-timing-models-basics.html"&gt;ETM (Extracted Timing Models) basics&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="post-body entry-content"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;br /&gt;
&lt;b&gt;Introduction:&lt;/b&gt;&lt;br /&gt;
In a design Once a block has met its timing constraints at the gate level, the detailed internal timing of the block is not needed for chip-level timing analysis. For that we can create/write a timing model for that block.&lt;br /&gt;
&lt;br /&gt;
Timing Model of &amp;nbsp;the block&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;Should completely model the full input/output timing characteristics without requiring the complete netlist of the block.&lt;/li&gt;
&lt;li&gt;Do not model every path in the block. Internal registerto register paths are&amp;nbsp;generally discarded, as these paths can be analyzed at the block level using&amp;nbsp;the complete gate-level netlist.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
Synopsys has a tool named as PrimeTime and its most trusted and advanced&amp;nbsp;timing sign-off solution for gate-level STA tool. Its accuracy is within 5% of SPICE.&lt;br /&gt;
&lt;br /&gt;
Prime Time Provides following types of advance timing models.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;Interface Logic Models (ILM) for hierarchical static timing analysis and sign-off&lt;/li&gt;
&lt;li&gt;Extracted Timing Models (ETM) in .lib format for cell-based reusable IP and physical design flows&lt;/li&gt;
&lt;li&gt;Quick Timing Models (QTM) for top-down design&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;In this Blog we will discuss only about the ETM models basic. For More detail please refer &lt;span style="background-color: white; color: blue;"&gt;&lt;a href="http://vlsi-expert.blogspot.com/2011/02/etm-extracted-timing-models-more-detail.html"&gt;"&lt;span style="color: blue;"&gt;ETM (Extracted Timing Models) - More detail"&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; blog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;ETM (Extracted Timing Models):-&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="level2" style="text-align: left;"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Block based &lt;span class="search_hit"&gt;model&lt;/span&gt; (.lib)&lt;/li&gt;
&lt;li&gt;Contents of block are hidden&lt;/li&gt;
&lt;li&gt;Original netlist replaced by &lt;span class="search_hit"&gt;model&lt;/span&gt; containing &lt;span class="search_hit"&gt;timing&lt;/span&gt; arcs for block interfaces.&lt;/li&gt;
&lt;li&gt;NLDM lookup tables are extracted for each of the timing arcs.&lt;/li&gt;
&lt;li&gt;These arcs whose delay are a function of input transition and output load. This makes ETM usable with different input transition times and different output loads.&lt;/li&gt;
&lt;li&gt;Multiple modes per &lt;span class="search_hit"&gt;model&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Single PVT per &lt;span class="search_hit"&gt;model&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Used for implementation (not sign-off) of IP models. Here the content are protected&amp;nbsp;because the model contains&amp;nbsp;abstracted timing information, without any netlist information.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;b&gt;ETM model Illustration:&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_xTkXeYeaQ6s/TU-C8wRsx7I/AAAAAAAAACI/3tc4tSZ5YTk/s1600/etm-model.gif" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="120" src="http://3.bp.blogspot.com/_xTkXeYeaQ6s/TU-C8wRsx7I/AAAAAAAAACI/3tc4tSZ5YTk/s320/etm-model.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;Types Of ETMs&lt;/b&gt;:&lt;/div&gt;&lt;div&gt;There are 2 types of ETM avaliable-&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;NetList&lt;/li&gt;
&lt;li&gt;Liberty library cell (.lib)&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;u&gt;Note: Most frequent usages is the .lib cells.&lt;/u&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;Developing of ETM Models:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="MsoList"&gt;Developing an ETM model in Primetime consists of three high level steps:&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Preparing for the ETM&lt;/li&gt;
&lt;li&gt;Creation of the ETM&lt;/li&gt;
&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial,sans-serif; font-size: 15px;"&gt;Verification of the ETM&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;b&gt;ETM scripts example:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;As such the flow of the script vary from design to design and company to company, but following example just give a rough idea about the commands for generating the ETM. I will suggest you to check the PrimeTime user-guide for more details.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;u&gt;&lt;b&gt;ETM creation&lt;/b&gt;&lt;/u&gt;&lt;b&gt;&amp;nbsp;:&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: monospace; white-space: pre;"&gt;############################################&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="level3"&gt;&lt;pre class="code tcl"&gt;&lt;span class="co1"&gt;# Template for &lt;span class="search_hit"&gt;ETM&lt;/span&gt; extract when using spef #&lt;/span&gt;
&lt;span class="co1"&gt;############################################&lt;/span&gt;
&amp;nbsp;
&lt;span class="kw1"&gt;set&lt;/span&gt; BLOCK &lt;span class="st0"&gt;"blockname"&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; NETLIST &lt;span class="st0"&gt;"blockname.v"&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; SPEF &lt;span class="st0"&gt;"blockname.spef"&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; SDC &lt;span class="st0"&gt;"blockname.sdc"&lt;/span&gt;
&amp;nbsp;
&lt;span class="co1"&gt;# Preserve unconnected nets&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; svr_keep_unconnected_nets true
&amp;nbsp;
&lt;span class="co1"&gt;# set search_path and link_library&lt;/span&gt;
&amp;nbsp;
&lt;span class="co1"&gt;# Read and link netlist&lt;/span&gt;
read_verilog &lt;span class="re0"&gt;$NETLIST&lt;/span&gt;
current_design &lt;span class="sy0"&gt;$&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;BLOCK&lt;span class="br0"&gt;}&lt;/span&gt;
link
&lt;span class="co1"&gt;#  for nets not annotated&lt;/span&gt;
set_wire_load_model -name B0.1X0.1
&lt;span class="co1"&gt;# Read spef&lt;/span&gt;
read_parasitics &lt;span class="re0"&gt;$SPEF&lt;/span&gt;
&lt;span class="co1"&gt;# Read constraints&lt;/span&gt;
read_sdc &lt;span class="re0"&gt;$SDC&lt;/span&gt;
set_propagated_clock &lt;span class="br0"&gt;[&lt;/span&gt;all_clocks&lt;span class="br0"&gt;]&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class="co1"&gt;# Define operating conditions&lt;/span&gt;
set_operating_conditions -&lt;span class="kw3"&gt;library&lt;/span&gt; g65xp lsiW_090V_125C \
  -analysis_type on_chip_variation 
&amp;nbsp;
&lt;span class="co1"&gt;# Set extract_model variables&lt;/span&gt;
&lt;span class="co1"&gt;# Note: These should be considered example settings. Final variable&lt;/span&gt;
&lt;span class="co1"&gt;# settings ultimately depend on the specific design usage.&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; extract_model_data_transition_limit &lt;span class="nu0"&gt;0.75&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; extract_model_clock_transition_limit &lt;span class="nu0"&gt;0.75&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; extract_model_capacitance_limit &lt;span class="nu0"&gt;1.0&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; extract_model_num_clock_transition_points &lt;span class="nu0"&gt;7&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; extract_model_num_data_transition_points &lt;span class="nu0"&gt;7&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; extract_model_num_capacitance_points &lt;span class="nu0"&gt;7&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; extract_model_use_conservative_current_slew true
&lt;span class="kw1"&gt;set&lt;/span&gt; extract_model_enable_report_delay_calculation true
&amp;nbsp;
&lt;span class="co1"&gt;# to create an &lt;span class="search_hit"&gt;ETM&lt;/span&gt; &lt;span class="search_hit"&gt;model&lt;/span&gt; with propagated clocks:&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; extract_model_with_clock_latency_arcs true
extract_model -output &lt;span class="sy0"&gt;$&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;BLOCK&lt;span class="br0"&gt;}&lt;/span&gt; -&lt;span class="kw2"&gt;format&lt;/span&gt; &lt;span class="br0"&gt;{&lt;/span&gt;db lib&lt;span class="br0"&gt;}&lt;/span&gt; \
 -library_cell -test_design
&amp;nbsp;
quit&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;pre class="code tcl" style="margin: 0px;"&gt;&lt;span class="co1"&gt;############################################&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code tcl" style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-small; font-weight: normal;"&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="code tcl" style="margin: 0px; text-align: left;"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: &amp;quot;Times New Roman&amp;quot;; white-space: normal;"&gt;&lt;u&gt;&lt;b&gt;ETM verification:&amp;nbsp;&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;   &lt;/li&gt;
&lt;/ul&gt;&lt;/pre&gt;&lt;pre class="code tcl" style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-small; font-weight: normal;"&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="right_page"&gt;&lt;div class="level3"&gt;&lt;pre class="code tcl"&gt;&lt;span class="co1"&gt;############################################&lt;/span&gt;
&lt;span class="co1"&gt;# Template for &lt;span class="search_hit"&gt;ETM&lt;/span&gt; verification            #&lt;/span&gt;
&lt;span class="co1"&gt;############################################&lt;/span&gt;
&amp;nbsp;
&lt;span class="kw1"&gt;set&lt;/span&gt; BLOCK &lt;span class="st0"&gt;"blockname"&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; NETLIST &lt;span class="st0"&gt;"blockname.v"&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; SDC &lt;span class="st0"&gt;"blockname.sdc"&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; ETM_MODEL &lt;span class="st0"&gt;"${BLOCK}_lib.db"&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; ETM_TEST  &lt;span class="st0"&gt;"${BLOCK}_test.db"&lt;/span&gt;
&lt;span class="kw1"&gt;set&lt;/span&gt; ETM_CONST &lt;span class="st0"&gt;"${BLOCK}_constr.pt"&lt;/span&gt;
&amp;nbsp;
&lt;span class="co1"&gt;# Compute the interface &lt;span class="search_hit"&gt;timing&lt;/span&gt; of the netlist.&lt;/span&gt;
&amp;nbsp;
&lt;span class="co1"&gt;# Read in reference netlist design&lt;/span&gt;
read_verilog &lt;span class="re0"&gt;$NETLIST&lt;/span&gt;
current_design &lt;span class="sy0"&gt;$&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;BLOCK&lt;span class="br0"&gt;}&lt;/span&gt;
link
set_wire_load_model -name B0.1X0.1
read_parasitics &lt;span class="re0"&gt;$SPEF&lt;/span&gt;
read_sdc &lt;span class="sy0"&gt;$&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;SDC&lt;span class="br0"&gt;}&lt;/span&gt;
set_propagated_clock &lt;span class="br0"&gt;[&lt;/span&gt;all_clocks&lt;span class="br0"&gt;]&lt;/span&gt;
set_operating_conditions -&lt;span class="kw3"&gt;library&lt;/span&gt; g65xp lsiW_090V_125C \
  -analysis_type on_chip_variation
write_interface_timing netlist_report.txt
&amp;nbsp;
&amp;nbsp;
&lt;span class="co1"&gt;# Compute the interface &lt;span class="search_hit"&gt;timing&lt;/span&gt; of the &lt;span class="search_hit"&gt;ETM&lt;/span&gt; &lt;span class="search_hit"&gt;model&lt;/span&gt;.&lt;/span&gt;
&amp;nbsp;
&lt;span class="co1"&gt;# Remove reference netlist and read in &lt;span class="search_hit"&gt;ETM&lt;/span&gt; &lt;span class="search_hit"&gt;model&lt;/span&gt;&lt;/span&gt;
remove_design -all
&lt;span class="kw2"&gt;lappend&lt;/span&gt; link_path &lt;span class="sy0"&gt;$&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;ETM_MODEL&lt;span class="br0"&gt;}&lt;/span&gt;
read_db &lt;span class="sy0"&gt;$&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;ETM_TEST&lt;span class="br0"&gt;}&lt;/span&gt;
current_design &lt;span class="sy0"&gt;$&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;BLOCK&lt;span class="br0"&gt;}&lt;/span&gt;_test
link
&lt;span class="co1"&gt;# set wire_load that has 0.0 cap loading&lt;/span&gt;
set_wire_load_model -name TSMC_CLN90G_WLM_0.0
&lt;span class="co1"&gt;## alternatively, use&lt;/span&gt;
&lt;span class="co1"&gt;#set_load -wire_load 0 *&lt;/span&gt;
read_sdc &lt;span class="sy0"&gt;$&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;SDC&lt;span class="br0"&gt;}&lt;/span&gt;
set_propagated_clock &lt;span class="br0"&gt;[&lt;/span&gt;all_clocks&lt;span class="br0"&gt;]&lt;/span&gt;
&lt;span class="kw2"&gt;source&lt;/span&gt; &lt;span class="sy0"&gt;$&lt;/span&gt;&lt;span class="br0"&gt;{&lt;/span&gt;ETM_CONST&lt;span class="br0"&gt;}&lt;/span&gt;
write_interface_timing model_report.txt
&amp;nbsp;
&lt;span class="co1"&gt;# Compare the interface &lt;span class="search_hit"&gt;timing&lt;/span&gt; for the netlist vs &lt;span class="search_hit"&gt;ETM&lt;/span&gt; &lt;span class="search_hit"&gt;model&lt;/span&gt;.&lt;/span&gt;
&amp;nbsp;
compare_interface_timing -absolute_tolerance &lt;span class="nu0"&gt;0.1&lt;/span&gt; \
 netlist_report.txt model_report.txt -output cmp.rpt
&amp;nbsp;
quit&lt;/pre&gt;&lt;pre class="code tcl"&gt;#######################################################&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;Synopsys Design Constraints (SDC) Basics&lt;br /&gt;
&lt;h3 class="post-title entry-title"&gt;&lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Full form of SDC&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt; - Synopsys Design Constraints.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;What is SDC&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt; - SDC is a format used to specify the design intent, including the timing, power and area constraints for a design. SDC is tcl based.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Tool used this format&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt; - DC (Design compiler, ICC (IC compiler), Prime Time (PT).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Information In the SDC&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;: - &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;There are mainly 4 type of the information.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;The SDC version (optional)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;The SDC units (optional)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;The Design Constraints&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Comments (Optional)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;1.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;SDC version:&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.25in; text-indent: 0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Variable name: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sdc_version&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.25in; text-indent: 0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;E.g:- &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set sdc_version &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.25in; text-indent: 0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Default Version: &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;1.9&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;2.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;SDC units:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.25in; text-indent: 0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Command name: &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set_units&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.25in; text-indent: 0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Description: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using above command you can&amp;nbsp;specify the units&amp;nbsp;for capacitance, resistance, time, voltage, current, and power&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.25in; text-indent: 0.25in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;E.g:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.75in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;set_units -capacitance cap_unit -resistance res_unit \&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.75in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;-time time_unit -voltage voltage_unit \&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.75in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;-current current_unit -power power_unit&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;3.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Design Constraints:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="margin-left: 0.25in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman',serif; font-size: 18px;"&gt;You can specify design constraints using Synopsys constraints commands.&lt;/span&gt;&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 72.9pt;"&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Type of information&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Commands&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Operating conditions&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_operating_conditions&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Wire load models&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_wire_load_min_block_size&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_wire_load_mode&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_wire_load_model&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_wire_load_selection_group&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;System interface&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_drive&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_driving_cell&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_fanout_load&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_input_transition&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_load&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_port_fanout_number&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Design rule constraints&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_max_capacitance&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_max_fanout&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_max_transition&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_min_capacitance&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Timing constraints&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;create_clock&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;create_generated_clock&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;group_path&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_clock_gating_check&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_clock_groups&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_clock_latency&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_clock_sense&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_clock_transition&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_clock_uncertainty&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_data_check&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_disable_timing&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_ideal_latency&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_ideal_network&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_ideal_transition&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_input_delay&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_max_time_borrow&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_output_delay&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_propagated_clock&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_resistance&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_timing_derate&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Timing exceptions&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_false_path&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_max_delay&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_min_delay&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_multicycle_path&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Area constraints&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_max_area&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Multivoltage and power optimization   constraints&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;create_voltage_area&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_level_shifter_strategy&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_level_shifter_threshold&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_max_dynamic_power&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_max_leakage_power&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 135pt;" width="180"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Logic assignments&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2.15in;" width="206"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_case_analysis&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_logic_dc&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_logic_one&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 9pt;"&gt;set_logic_zero&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Most of the constraint commands require a design object as a command argument.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Design Objects:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: 0.5in; width: 553px;"&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Design object&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Access command&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;Description&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;design&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;current_design&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;A container for   cells. A block.&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;clock&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 8pt;"&gt;1&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;get_clocks all_clocks&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;A clock in a   design. All clocks in a design.&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;port&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;get_ports all_inputs all_outputs&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;An entry point to   or exit point from a design. All entry points to a design. All exit points   from a design.&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;cell&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;get_cells.&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;An instance of a   design or library cell&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;pin&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;get_pins&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;An instance of a   design port or library cell pin.&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;net&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;get_nets&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;A connection   between cell pins and design ports&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;library&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;get_libs&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;A container for   library cells&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;lib_cell&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;get_lib_cells&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;A primitive logic   element.&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;lib_pin&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;get_lib_pins&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;An entry point to   or exit point from a lib_cell.&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 77.4pt;" width="103"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;register&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 103.5pt;" width="138"&gt;&lt;div align="center" class="MsoNormal" style="text-align: center;"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;all_registers&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 3.25in;" width="312"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10pt;"&gt;A sequential   logic cell.&lt;/span&gt;&lt;span style="color: black; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;4.&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Comments:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;You can add comments to an SDC file either as complete lines or as fragments after a&amp;nbsp;command. To identify a line as a comment, start the line with a pound sign (#).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;E.g : # This is an SDC comment line.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;To add a comment after a command, end the command using a semicolon, then precede the&amp;nbsp;comment with a pound sign (#).&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;E.g: create_clock -period 10 [get_ports CLK]; # comment fragment&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;How to generate The SDC file Automatically:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman',serif; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 18px;"&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Using Synopsys Tool like DC, ICC or PrimeTime you can generate the SDC. There may be slight variation between the generated SDC across the different tool.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Command for generation: - write_sdc &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Validation of manually generated SDC files:-&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13.5pt;"&gt;Command file:&amp;nbsp;read_sdc -syntax_only&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/1400157206542387327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/basic-of-timing-analysis-in-physical_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/1400157206542387327?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/1400157206542387327?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/basic-of-timing-analysis-in-physical_22.html' title='Basic of Timing Analysis in Physical Design'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-lTHMsuEYbgM/TWNss76J49I/AAAAAAAAACU/wvkJlegs4wQ/s72-c/CRP+circuit.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkMCRHkyfyp7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-8693476441623627455</id><published>2011-08-21T08:21:00.000-07:00</published><updated>2011-08-30T09:07:45.797-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:07:45.797-07:00</app:edited><title>Clock Reconvergence Pessimism (CRP) basic</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;Clock Reconvergence Pessimism (CRP) basic &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;b&gt;&lt;u&gt;Full Form :&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;CRP : Clock Reconvergence Pessimism.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;What is CRP (Clock Reconvergence Pessimism)?&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
As the "convergence" means (dictionary) "the occurrence of two or more things coming together". So we can assume that its also related to 2 clock path coming together. (Please refer the another blog for understanding the Clock path- &lt;a href="http://vlsi-expert.blogspot.com/2011/03/static-timing-analysis-sta-basic-timing.html"&gt;&lt;span style="color: blue;"&gt;Static Timing Analysis Basic: Part1 "Timing Paths"&lt;/span&gt;&lt;/a&gt;) &lt;br /&gt;
&lt;br /&gt;
Now lets assume 2 flip-flop circuit as shown in the figure.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-lTHMsuEYbgM/TWNss76J49I/AAAAAAAAACU/wvkJlegs4wQ/s1600/CRP+circuit.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="172" src="http://2.bp.blogspot.com/-lTHMsuEYbgM/TWNss76J49I/AAAAAAAAACU/wvkJlegs4wQ/s320/CRP+circuit.bmp" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Clock Reconvergence Pessimism&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;As you can see that flop share a common clock but are placed physically at the different places in the same die. Or in other way you can say that Launch clock path and capture clock path (Please refer &lt;a href="http://vlsi-expert.blogspot.com/2011/03/static-timing-analysis-sta-basic-timing.html"&gt;&lt;span style="color: blue;"&gt;Static Timing Analysis Basic: Part1 "Timing Paths"&lt;/span&gt;&lt;/a&gt;&amp;nbsp;for defination of Launch and Capture Clock path) &amp;nbsp;share a common segment in the clock tree till the point know as "common point" (in above fig you can see that "common point" is written as "The clock path common to both flops till this point"). The 2 clock path diverse from that point.&lt;br /&gt;
&lt;br /&gt;
As we know that every cell has two type of delay as a part of its specification, "Max Delay" and "Min delay". There are several scenario in the design where we use&amp;nbsp;either max delay&amp;nbsp;or min delay of a particular cell. Such as best case analysis (BC), worst case (WC) analysis, OCV (on chip variation) analysis during timing analysis.&lt;br /&gt;
&lt;br /&gt;
Lets consider that max delay and min delay of the common segment is as&lt;br /&gt;
Max delay=1.2ns &lt;br /&gt;
Min Delay=1.0ns.&lt;br /&gt;
&lt;br /&gt;
Now, if during timing analysis a condition arise where you have to use max delay for one timing path&amp;nbsp;and min delay for another timing path (such as during OCV analysis),&amp;nbsp;you have to use 2 different values for a common&amp;nbsp;path. But practically same&amp;nbsp;set of cells&amp;nbsp;can't be behave different for different clock path. &lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;For example, for a setup check&lt;/u&gt;, it uses the maximum delay for the launch clock path (1.2ns + delay because of rest of the circuit in the launch path)&amp;nbsp;and the minimum delay for the capture clock path (1.0ns + delay because of rest of the circuit in the launch path.&lt;br /&gt;
&lt;br /&gt;
In a physical design, however, the cells along the common portion of the clock tree cannot simultaneously achieve their maximum and minimum delay values. Thus there will be a single value of delay to the common point that will be propagated to both the launching and capturing clock paths. This conflicts with our timing analysis method described above&amp;nbsp;since we utilise two sets of delay values at the common point.&lt;br /&gt;
&lt;br /&gt;
Therefore our timing report contains artificially introduced pessimism that is derived from our usage of&amp;nbsp;max and&amp;nbsp;min delay for the launching and capturing paths along this common portion of the clock network. The value of this pessimism, is the difference between&amp;nbsp;max and min delay at the common point in the clock network.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;u&gt;&lt;i&gt;The amount of pessimism due to this effect (in this example, 0.2 ns) is called "clock reconvergence pessimism".&lt;/i&gt;&lt;/u&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Clock reconvergence pessimism = (maximum clock delay) - (minimum clock delay)&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Note: Above situation is identical for hold checks also. &lt;/u&gt;&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
Similar type of situation can arise in different type of circuit also. Lets discuss one of that. Please see the following fig. &lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-DmWbqC-9jwc/TWN24fWBFdI/AAAAAAAAACY/2ivUM47jd78/s1600/CRP+circuit-2.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="217" src="http://1.bp.blogspot.com/-DmWbqC-9jwc/TWN24fWBFdI/AAAAAAAAACY/2ivUM47jd78/s400/CRP+circuit-2.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Schematic of a reconvergent clock&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&amp;nbsp; &lt;br /&gt;
The two clock paths that feed into the multiplexer cannot be active at the same time, but an analysis could consider both the shorter and longer paths for one setup or hold check. This results in different launch and capture clock path delays and the consequent pessimism. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;How to remove CRP ?&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Automated correction of this inaccuracy is called clock reconvergence pessimism removal (CRPR). By default , most of the tools (EDA tools for timing calculation) disable this feature (automated correction). By you can enable this feature by setting one/more variables during timing analysis. Different Tools have different variable for this. For that please refer the USER GUIDE or MANUAL of corresponding tool.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/8693476441623627455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/clock-reconvergence-pessimism-crp-basic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/8693476441623627455?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/8693476441623627455?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/clock-reconvergence-pessimism-crp-basic.html' title='Clock Reconvergence Pessimism (CRP) basic'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-lTHMsuEYbgM/TWNss76J49I/AAAAAAAAACU/wvkJlegs4wQ/s72-c/CRP+circuit.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkMMSXczcSp7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-8105719207313186276</id><published>2011-08-21T07:48:00.001-07:00</published><updated>2011-08-30T09:08:08.989-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:08:08.989-07:00</app:edited><title>Basic of Timing analysis</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;
&lt;a href="http://vlsi-expert.blogspot.com/2011/02/timing-analysis-basis-what-and-why.html"&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Static Timing Analysis&lt;/li&gt;
&lt;li&gt;Dynamic Timing Analysis.&lt;/li&gt;
&lt;/ul&gt;&lt;u&gt;Note:&lt;/u&gt; There is one more type of Timing analysis: "Manual Analysis". But now a days nothing is 100% Manual. Evey thing is more automated and less manual. So that we are not discussing right now.&lt;br /&gt;
&lt;br /&gt;
In this Blog (and few next as a part of this)&amp;nbsp;we will discuss about the Static Timing Analysis.&amp;nbsp;We will discuss&amp;nbsp;Dynamic Timing Analysis later on.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Static Timing analysis is divided into several parts:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part1 -&amp;gt; Timing Paths &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part2 -&amp;gt; Time Borrowing &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part3a -&amp;gt; Basic Concept Of Setup and Hold&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part3b -&amp;gt; Basic Concept of Setup and Hold Violation&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part3c -&amp;gt; Practical Examples for Setup and Hold Time / Violation&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part4 -&amp;gt; Delay &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Note:&amp;nbsp;Part 4, 5 and 6&amp;nbsp;are still under development.&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;b&gt;&lt;u&gt;Static Timing Analysis:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;Static timing analysis is a method of validating the timing performance of a design by checking all possible paths for timing violations under worst-case conditions. &lt;i&gt;It considers the worst possible delay through each logic element, but not the logical operation of the circuit&lt;/i&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;In comparison to circuit simulation, static timing analysis is &lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;Faster - It is faster because it does not need to simulate multiple test vectors. &lt;/li&gt;
&lt;li&gt;More Thorough - It is more thorough because it checks the worst-case timing for all possible logic conditions, not just those sensitized by a particular set of test vectors. &lt;/li&gt;
&lt;/ul&gt;&lt;u&gt;Once again Note this thing :&lt;/u&gt;&amp;nbsp;Static timing analysis checks the design only for proper timing, not for correct logical functionality. &lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;i&gt;&lt;u&gt;Static timing analysis seeks to answer the question, “Will the correct data be present at the data input of each synchronous device when the clock edge arrives, under all possible conditions?”&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;In static timing analysis, the word static alludes to the fact that this timing analysis is carried out in an input-independent manner. It locates the worst-case delay of the circuit over all possible input combinations. There are huge numbers of logic paths inside a chip of complex design. The advantage of STA is that it performs timing analysis on all possible paths (whether they are real or potential false paths).&lt;br /&gt;
However, it is worth noting that STA is not suitable for all design styles. It has proven efficient only for fully synchronous designs. Since the majority of chip design is synchronous, it has become a mainstay of chip design over the last few decades.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;b&gt;&lt;u&gt;The Way STA is performed on a given Circuit:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
To check a design for violations or say to perform STA there are&amp;nbsp;3 main steps:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;Design is broken down into&amp;nbsp;sets of timing paths, &lt;/li&gt;
&lt;li&gt;Calculates the signal propagation delay along each path&lt;/li&gt;
&lt;li&gt;And&amp;nbsp;checks for violations of timing constraints inside the design and at the input/output interface.&lt;/li&gt;
&lt;/ul&gt;The STA tool analyzes ALL paths from each and every startpoint to each and every endpoint and compares it against the constraint that (should) exist for that path. All paths should be constrained, most paths are constrained by the definition of the period of the clock, and the timing characteristics of the primary inputs and outputs of the circuit.&lt;br /&gt;
&lt;br /&gt;
Before we start all this we should know few&amp;nbsp;key concepts in STA method: timing path, arrive time, required time, slack and critical path. &lt;br /&gt;
Let's Talk about these one by one in detail. In this Blog we will mainly Focus over Different Types of Timing Paths.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;b&gt;Timing Paths:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;Timing paths can be divided as per the type of&amp;nbsp;signals&amp;nbsp;(e.g clock signal, data signal etc).&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;u&gt;Types of Paths for Timing analysis:&lt;/u&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Data Path&lt;/li&gt;
&lt;li&gt;Clock Path&lt;/li&gt;
&lt;li&gt;Clock Gating Path&lt;/li&gt;
&lt;li&gt;Asynchronous Path &lt;/li&gt;
&lt;/ul&gt;Each Timing path has a "Start Point" and an "End Point". Definition of Start Point and End Point vary as per the type of the timing path. E.g for the Data path- The startpoint is a place in the design where data is launched by a clock edge. The data is propagated through combinational logic in the path and then captured at the endpoint by another clock edge.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=3587966143822038019&amp;amp;postID=8105719207313186276" name="more"&gt;&lt;/a&gt;&lt;br /&gt;
Start Point and End Point are different for each type of paths. It's very important to understand this clearly to understand&amp;nbsp;and analysing the Timing analysis report and fixing the timing violation.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Data path&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Start Point&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Input port of the design (because the input data can be launched from some external source).&lt;/li&gt;
&lt;li&gt;Clock pin of the flip-flop/latch/memory (sequential cell)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;End Point &lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Data input pin of the flip-flop/latch/memory (sequential cell)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Output port of the design (because the output data can be captured by some external sink)&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Clock Path&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Start Point&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Clock input port&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;End Point&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Clock pin of the flip-flop/latch/memory (sequential cell)&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Clock Gating Path&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Start Point&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Input port of the design&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;End Point&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Input port of clock-gating element.&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Asynchronous path &lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div&gt;Start Point&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div&gt;&amp;nbsp;Input Port of the design&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;div&gt;End Point&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div&gt;Set/Reset/Clear pin of the flip-flop/latch/memory (sequential cell)&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;u&gt;Data Paths: &lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;If we use all the combination of 2 types of Starting Point and 2 types of End Point, we can say that there are 4 types of Timing Paths on the basis of Start and End point.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Input pin/port to Register(flip-flop). &lt;/li&gt;
&lt;li&gt;Input pin/port to Output pin/port.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Register (flip-flop)&amp;nbsp;to Register (flip-flop)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Register (flip-flop) to Output pin/port&lt;/li&gt;
&lt;/ul&gt;Please see the following fig:&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-BUJHTOVcjsk/TWVfJD2cQmI/AAAAAAAAACc/pT6WNGpKOfw/s1600/timing-path1.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="166" src="http://3.bp.blogspot.com/-BUJHTOVcjsk/TWVfJD2cQmI/AAAAAAAAACc/pT6WNGpKOfw/s400/timing-path1.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Timing Path- 4 types of&amp;nbsp; Data Path&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;PATH1- starts at an input port and ends at the data input of a sequential element. (Input port to Register)&lt;br /&gt;
PATH2- starts at the clock pin of a sequential element and ends at the data input of a sequential element. (Register to Register)&lt;br /&gt;
PATH3- starts at the clock pin of a sequential element and ends at an output port.(Register to Output port).&lt;br /&gt;
PATH4- starts at an input port and ends at an output port. (Input port to Output port)&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;u&gt;Clock Path:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;Please check the following figure&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-_I3nkquViaw/TWt62UHW61I/AAAAAAAAACg/vINpNZu3j74/s1600/clock-path.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="215" src="https://lh3.googleusercontent.com/-_I3nkquViaw/TWt62UHW61I/AAAAAAAAACg/vINpNZu3j74/s400/clock-path.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Timing Paths- Clock Paths&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;In the above fig its very clear that for clock path the starts from the input port/pin of the design which is specific for the Clock input and the end point is the clock pin of a sequential element. In between the Start point and the end point there may be lots of Buffers/Inverters/clock divider.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Clock Gating Path:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;Clock path may be passed trough a “gated element” to achieve additional advantages. In this case, characteristics and definitions of the clock change accordingly. We call this type of clock path as “gated clock path”. &lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;As in the following fig you can see that &lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-ZthVFQFn_FU/TWuBBkfETcI/AAAAAAAAACk/vEpvDAD5jZE/s1600/clock-gating+path.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="233" src="https://lh6.googleusercontent.com/-ZthVFQFn_FU/TWuBBkfETcI/AAAAAAAAACk/vEpvDAD5jZE/s400/clock-gating+path.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Timing Path- Clock Gating path.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;LD pin is not a part of any clock but it is using for gating the original CLK signal. Such type of paths are neither a part of Clock path nor of Data Path because as per the Start Point and End Point definition of these paths, its different. So such type of paths are&amp;nbsp; part of Clock gating path.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;u&gt;Asynchronous path:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;A&amp;nbsp;path from an input port to an asynchronous set or clear pin of a sequential element.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;See the following fig for understanding clearly.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-1fKU37xh9ro/TWuDNc2E6vI/AAAAAAAAACo/0XmLjXoW3Kw/s1600/Asynchronous-path.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="273" src="https://lh5.googleusercontent.com/-1fKU37xh9ro/TWuDNc2E6vI/AAAAAAAAACo/0XmLjXoW3Kw/s400/Asynchronous-path.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Timing Path- Asynchronous Path&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;As you know that the functionality of set/reset pin is independent from the clock edge. Its level triggered pins and can start functioning at any time of data. So in other way we can say that this path is not in synchronous with the rest of the circuit and that's the reason we are saying such type of path an Asynchronous path.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;u&gt;&lt;b&gt;Other types of Paths:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
There are few more types of path which we usually use during timing analysis reports. Those are subset of above mention paths with some specific characteristics. Since we are discussing about the timing paths, so it will be good if we will discuss those here also.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;Few names are &lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Critical path&lt;/li&gt;
&lt;li&gt;False Path&lt;/li&gt;
&lt;li&gt;Multi-cycle path&lt;/li&gt;
&lt;li&gt;Single Cycle path&lt;/li&gt;
&lt;li&gt;Launch Path&lt;/li&gt;
&lt;li&gt;Capture Path&lt;/li&gt;
&lt;li&gt;Longest Path ( also know as&amp;nbsp;Worst Path&amp;nbsp;, Late Path&amp;nbsp;, Max Path , Maximum Delay Path )&lt;/li&gt;
&lt;li&gt;Shortest Path ( Also Know as Best Path&amp;nbsp;, Early Path&amp;nbsp;, Min Path, Minimum Delay Path)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;u&gt;Critical Path:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
In short, I can say that the path which creates Longest delay is the critical path.&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Critical paths are timing-sensitive functional paths. because of the timing of these paths is critical, no additional gates are allowed to be added to the path, to prevent increasing the delay of the critical path.&lt;/li&gt;
&lt;li&gt;Timing critical path are those path that do not meet your timing. What normally happens is that after synthesis the tool will give you a number of path which have a negative slag. The first thing you would do is to make sure those path are not false or multicycle since it that case you can just ignore them.&lt;/li&gt;
&lt;/ul&gt;Taking a typical example (in a very simpler way), the STA tool will add the delay contributed from all the logic connecting the Q output of one flop to the D input of the next (including the CLK-&amp;gt;Q of the first flop), and then compare it against the defined clock period of the CLK pins (assuming both flops are on the same clock, and taking into account the setup time of the second flop and the clock skew). This should be strictly less than the clock period defined for that clock. If the delay is less than the clock period, then the "path meets timing". If it is greater, than the "path fails timing". The "critical path" is the path out of all the possible paths that either exceeds its constraint by the largest amount, or, if all paths pass, then the one that comes closest to failing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;False Path:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;Physically exist in the design but those are logically/functionally incorrect path. Means no data is transferred from Start Point to End Point. There may be several reasons of such path present in the design.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Some time we have to explicitly define/create few false path with in the design. E.g for setting a relationship between 2 Asynchronous Clocks.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The goal in static timing analysis is to do timing analysis on all “true” timing paths, these paths are excluded from timing analysis.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Since false path are not exercised during normal circuit operation, they typically don't meet timing specification,considering false path during timing closure can result into timing violations and the procedure to fix would introduce unnecessary complexities in the design.&lt;/li&gt;
&lt;li style="border: medium none;"&gt;There may be few paths in your design which are not critical for timing or masking other paths which are important for timing optimization, or never occur with in normal situation. In such case , to increase the run time and improving the timing result , sometime we have to declare such path as a False path , so that Timing analysis tool ignore these paths and so the proper analysis with respect to other paths. Or During optimization don't concentrate over such paths. One example of this. e.g A path between two multiplexed blocks that are never enabled at the same time. You can see the following picture for this.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-nb0f6wv3c60/TXCmhNOHMaI/AAAAAAAAACs/il_jOYJEH8U/s1600/false+path.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="191" src="https://lh4.googleusercontent.com/-nb0f6wv3c60/TXCmhNOHMaI/AAAAAAAAACs/il_jOYJEH8U/s400/false+path.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;False Path&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="border: medium none; text-align: left;"&gt;&amp;nbsp;Here you can see that False path 1 and False Path 2 can not occur at the same time but during optimization it can effect the timing of another path. So in such scenario, we have to define one of the path as false path.&lt;/div&gt;&lt;br /&gt;
Same thing I can explain in another way (Note- Took&amp;nbsp;snapshot&amp;nbsp;from one of the&amp;nbsp;forum). As we know that, not all paths that exist in a circuit are "real" timing paths. For example, let us assume that one of the primary inputs to the chip is a configuration input; on the board it must be tied either to VCC or to GND. Since this pin can never change, there are never any timing events on that signal. As a result, all STA paths that start at this particular startpoint are false. The STA tool (and the synthesis tool) cannot know that this pin is going to be tied off, so it needs to be told that these STA paths are false, which the designer can do by telling the tool using a "false_path" directive. When told that the paths are false, the STA tool will not analyze it (and hence will not compare it to a constraint, so this path can not fail), nor will a synthesis tool do any optimizations on that particular path to make it faster; synthesis tools try and improve paths until they "meet timing" - since the path is false, the synthesis tool has no work to do on this path.&lt;br /&gt;
Thus, a path should be declared false if the designer KNOWS that the path in question is not a real timing path, even though it looks like one to the STA tool. One must be very careful with declaring a path false. If you declare a path false, and there is ANY situation where it is actually a real path, then you have created the potential for a circuit to fail, and for the most part, you will not catch the error until the chip is on a board, and (not) working. Typically, false paths exists&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;from configuration inputs like the one described above&lt;/li&gt;
&lt;li&gt;from "test" inputs; inputs that are only used in the testing of the chip,and are tied off in normal mode (however, there may still be some static timing constraints for the test mode of the chip)&lt;/li&gt;
&lt;li&gt;from asynchronous inputs to the chip (and you must have some form of synchronizing circuit on this input) (this is not an exhaustive list, but covers the majority of legitimate false paths).&lt;/li&gt;
&lt;/ul&gt;So we can say that false paths should NOT be derived from running the STA tool (or synthesis tool); they should be known by the designer as part of the definition of the circuit, and constrained accordingly at the time of initial synthesis.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;MultiCycle Path:&lt;/u&gt;&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="left"&gt;&lt;span style="font-size: x-small;"&gt;A multicycle path is a timing path that is designed to take more than one clock cycle for the data to propagate from the startpoint to the endpoint.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div align="left"&gt;A multi-cycle path is a path that is allowed multiple clock cycles for propagation. Again, it is a path that starts at a timing startpoint and ends at a timing endpoint. However, for a multi-cycle path, the normal constraint on this path is overridden to allow for the propagation to take multiple clocks.&lt;/div&gt;In the simplest example, the startpoint and endpoint are flops clocked by the same clock. The normal constraint is therefore applied by the definition of the clock; the sum of all delays from the CLK arrival at the first flop to the arrival at the D of the second clock should take no more than 1 clock period minus the setup time of the second flop and adjusted for clock skew.&lt;br /&gt;
By defining the path as a multicycle path you can tell the synthesis or STA tool that the path has N clock cycles to propagate; so the timing check becomes "the propagation must be less than N x clock_period, minus the setup time and clock skew". N can be any number greater than 1.&lt;br /&gt;
&lt;br /&gt;
Few examples are&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;When you are doing clock crossing from two closely related clocks; ie. from a 30MHz clock to a 60MHz clock, &lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Assuming the two clocks are from the same clock source (i.e. one is the divided clock of the other), and the two clocks are in phase. &lt;/li&gt;
&lt;li&gt;The normal constraint in this case is from the rising edge of the 30MHz clock to the nearest edge of the 60MHz clock, which is 16ns later. However, if you have a signal in the 60MHz domain that indicates the phase of the 30MHz clock, you can design a circuit that allows for the full 33ns for the clock crossing, then the path from flop30 -&amp;gt; to flop60 is a MCP (again with N=2). &lt;/li&gt;
&lt;li&gt;The generation of the signal 30MHZ_is_low is not trivial, since it must come from a flop which is clocked by the 60MHz clock, but show the phase of the 30MHz clock.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Another place would be when you have different parts of the design that run at different, but related frequencies. Again, consider a circuit that has some stuff running at 60MHz and some running on a divided clock at 30MHz. &lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Instead of actually defining 2 clocks, you can use only the faster clock, and have a clock enable that prevents the clocks in the slower domain from updating every other clock, &lt;/li&gt;
&lt;li&gt;Then all the paths from the "30MHz" flops to the "30MHz" flops can be MCP. &lt;/li&gt;
&lt;li&gt;This is often done since it is usually a good idea to keep the number of different clock domains to a minimum.&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;u&gt;Single Cycle Path:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
A Single-cycle path is a timing path that is designed to take only&amp;nbsp;one clock cycle for the data to propagate from the startpoint to the endpoint. &lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Launch Path and Capture Path:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Both are inter-related so I am describing both in one place. When a flip flop to filp-flop path such as UFF1 to UFF3 is considered, one of the flip-flop launches the data and other captures the data. So here UFF1 is referred to "launch Flip-flop" and UFF3 referred to "capture flip-flop".&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-StvOA1xsk7M/TXcdKjFy93I/AAAAAAAAACw/eg5uMOmVFJw/s1600/launch-capture+path1.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="255" src="https://lh4.googleusercontent.com/-StvOA1xsk7M/TXcdKjFy93I/AAAAAAAAACw/eg5uMOmVFJw/s400/launch-capture+path1.bmp" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;These Launch and Capture terminology are always referred to a flip-flop to flip-flop path. Means for this particular path (UFF1-&amp;gt;UFF3), UFF1 is launch flip-flop and UFF3 is capture flip-flop. Now if there is any other path starting from UFF3 and ends to some other flip-flop (lets assume UFF4), then for that path UFF3 become launch flip-flop and UFF4 be as capture flip-flop.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;The Name "Launch path" referred to&amp;nbsp;a part of clock path. Launch path is launch clock path which is responsible for launching the data at launch flip flop.&lt;/span&gt;&lt;br /&gt;
And Similarly &lt;span class="fullpost"&gt;Capture path is also a part of clock path. Capture path is capture clock path which is responsible for capturing the data at capture flip flop.&lt;/span&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;This is can be clearly understood by following fig.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-RqIIkezaU2c/TXckhUSWq5I/AAAAAAAAAC0/JD4P8RqBC0M/s1600/Launch+and+capture+clock+path.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="242" src="https://lh3.googleusercontent.com/-RqIIkezaU2c/TXckhUSWq5I/AAAAAAAAAC0/JD4P8RqBC0M/s400/Launch+and+capture+clock+path.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Launch Clock Path (Launch Path)&amp;nbsp;and Capture Clock Path (Capture path)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;Here UFF0 is referred to launch flip-flop and UFF1 as capture flip-flop for "Data path" between UFF0 to UFF1.So Start point for this data path is UFF0/CK and end point is UFF1/D.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;One thing I want to add here (which&amp;nbsp;I will describe later in my next blog- but its easy to understand here)-&lt;/span&gt;&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span class="fullpost"&gt;Launch path and data path together constitute arrival time of data at the input of capture flip-flop.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="fullpost"&gt;&lt;span class="fullpost"&gt;Capture clock period and its path delay together constitute required time of data at the input of capture register.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span class="fullpost"&gt;&lt;span class="fullpost"&gt;&lt;i&gt;Note:&lt;/i&gt; Its very clear that capture and launch paths are correspond to Data path. Means same clock path can be a launch path for one data path and be a capture path for another datapath. Its will be clear by the following fig (source of Fig is From Synopsys).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-LpjDcavw6YA/TXc20M0lYuI/AAAAAAAAAC4/i0vQDkYazBc/s1600/Launch+and+capture+clock+path2.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="263" src="https://lh5.googleusercontent.com/-LpjDcavw6YA/TXc20M0lYuI/AAAAAAAAAC4/i0vQDkYazBc/s400/Launch+and+capture+clock+path2.bmp" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Same clock path behave like Capture and Launch path for different Data path.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;span class="fullpost"&gt;Here you can see that for Data path1 the clock path through BUF cell is a capture path but for Data path2 its a Launch Path.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Longest and Shortest Path:&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Between any 2 points, there can be many paths.&lt;br /&gt;
Longest path is&amp;nbsp;the one that takes longest time, this is also called worst path or late path or a max path.&lt;br /&gt;
The shortest path is the one that takes the shortest time; this is also called the best path or early path or a min path.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-to0FYkm7AUE/TXc5_VEOSdI/AAAAAAAAAC8/Nsn51aXnsEE/s1600/Shortest+and+Longest+path.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="251" src="https://lh3.googleusercontent.com/-to0FYkm7AUE/TXc5_VEOSdI/AAAAAAAAAC8/Nsn51aXnsEE/s400/Shortest+and+Longest+path.bmp" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;In the above fig, The longest path between the 2 flip-flop is through the cells UBUF1,UNOR2 and UNAND3. The shortest path between the 2 flip-flops is through the cell UNAND3.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have tried my best to capture all the important points related to the Timing Paths. Please Let me know If anything is missing here.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/8105719207313186276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/as-we-have-discussed-in-our-last-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/8105719207313186276?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/8105719207313186276?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/as-we-have-discussed-in-our-last-blog.html' title='Basic of Timing analysis'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-BUJHTOVcjsk/TWVfJD2cQmI/AAAAAAAAACc/pT6WNGpKOfw/s72-c/timing-path1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkIFSHg5eip7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-9189594178868177138</id><published>2011-08-21T07:39:00.003-07:00</published><updated>2011-08-30T09:08:39.622-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:08:39.622-07:00</app:edited><title>"Examples Of Setup and Hold time" : Static Timing Analysis (STA) basic (Part 3c)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;br /&gt;
&lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: medium none;"&gt;&lt;tbody&gt;
&lt;tr style="height: 12.3pt;"&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext rgb(236, 233, 216) rgb(236, 233, 216); border-right: 1pt solid windowtext; height: 12.3pt; padding: 0in 5.4pt; width: 48pt;" valign="top" width="64"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext rgb(236, 233, 216) rgb(236, 233, 216); border-right: 1pt solid windowtext; height: 12.3pt; padding: 0in 5.4pt; width: 48pt;" valign="top" width="64"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext rgb(236, 233, 216) rgb(236, 233, 216); border-right: 1pt solid windowtext; height: 12.3pt; padding: 0in 5.4pt; width: 48pt;" valign="top" width="64"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext rgb(236, 233, 216) rgb(236, 233, 216); border-right: 1pt solid windowtext; height: 12.3pt; padding: 0in 5.4pt; width: 48pt;" valign="top" width="64"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext rgb(236, 233, 216) rgb(236, 233, 216); border-right: 1pt solid windowtext; height: 12.3pt; padding: 0in 5.4pt; width: 48pt;" valign="top" width="64"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext rgb(236, 233, 216) rgb(236, 233, 216); border-right: 1pt solid windowtext; height: 12.3pt; padding: 0in 5.4pt; width: 48pt;" valign="top" width="64"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext rgb(236, 233, 216) rgb(236, 233, 216); border-right: 1pt solid windowtext; height: 12.3pt; padding: 0in 5.4pt; width: 48pt;" valign="top" width="64"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216); height: 12.3pt; padding: 0in 5.4pt; width: 48pt;" valign="top" width="64"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Static Timing analysis is divided into several parts:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part1 -&amp;gt; Timing Paths &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part2 -&amp;gt; Time Borrowing &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part3a -&amp;gt; Basic Concept Of Setup and Hold&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part3b -&amp;gt; Basic Concept of Setup and Hold Violation&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part3c -&amp;gt; Practical Examples for Setup and Hold Time / Violation&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Part4 -&amp;gt; Delay &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Note:&amp;nbsp;Part 4, 5 and 6&amp;nbsp;are still under development.&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Till now we have discussed a lot of theory about setup and hold time (with and without Example). Now it’s time to discuss the practical implementation of that. Means in a circuit &lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;How will you calculate the setup and hold values?&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;How will you analyse setup and hold violation in a circuit?&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;If you have to improve timing of a circuit then what can you do?&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;There are few formulas to calculate different parameter ( Theory of those I already explained in my previous blogs). I am not going to explain those right now. First we will solve few examples which will give&amp;nbsp;you an basic&amp;nbsp;idea&amp;nbsp;about these formulas, then in the last I will summarize all those in one place.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;I saw a lot of confusion with respect to setup and hold timing calculation. Actually there are two things.&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Timing Specification&amp;nbsp;of a Block/Circuit/Library:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;You have a block with input A and output Y. Some combinational logic is there between A and Y. Now you have to calculate following parameters for that block&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Setup Time Value at input A&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Hold Time value at input A.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Maximum operating Clock Frequency or Time Period for that block.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Clock To Y delay value&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Input A to Output Y delay value.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Timing Violation of a circuit:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;You have to operate a circuit at a particular clock frequency and now you have to find out whether this circuit has any setup or Hold Violation. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;So in second case all the parameters are given and you have to find out whether this circuit has any violation or not and In first case you have to find out all the parameters keeping in mind that there should not be any violation.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;Lets Discuss in the reverse order.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;**********************************************************************************&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;**********************************************************************************&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Problem1: In the following Circuit, Find out whether there is&amp;nbsp;any Setup Or Hold Violation?&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;a href="http://4.bp.blogspot.com/-Vz9kec6fiPY/Tb5_GFAlXRI/AAAAAAAAADo/DTBQrpKHD7A/s1600/setup+and+hold+example1.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img border="0" height="162" src="http://4.bp.blogspot.com/-Vz9kec6fiPY/Tb5_GFAlXRI/AAAAAAAAADo/DTBQrpKHD7A/s400/setup+and+hold+example1.bmp" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Solution:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;&lt;b&gt;&lt;u&gt;Hold Analysis:&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;When a hold check is performed, we have to consider two things-&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Minimum Delay along the data path.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Maximum Delay along the clock path.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;If the difference between the data path and the clock path is negative, then a timing violation has occurred. ( Note: there are few Exceptions for this- We will discuss that some other time)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Data path is: CLK-&amp;gt;FF1/CLK -&amp;gt;FF1/Q -&amp;gt;Inverter -&amp;gt;FF2/D&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Delay in Data path &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;= min(wire delay to the clock input of FF1) + min(Clk-to-Q delay of FF1) +min(cell delay of inverter) + min(2 wire delay- "Qof FF1-to-inverter" and "inverter-to-D of FF2")&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;=Td = 1+9+6+(1+1)=18ns&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Clock path is: CLK-&amp;gt; buffer -&amp;gt; FF2/CLK&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Clock path Delay &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;= max(wire delay&amp;nbsp;from CLK to Buffer input) + max(cell delay of Buffer) + max(wire delay from Buffer output to FF2/CLK pin) + (hold time of FF2)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;=Tclk = 3+9+3+2 = 17 ns&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Hold Slack = Td - Tclk = 18ns -17ns = 1ns&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Since Hold Slack is positive-&amp;gt; No hold Violation.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="color: windowtext;"&gt;&lt;u&gt;&lt;b&gt;Note:&amp;nbsp;&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="color: windowtext;"&gt;&lt;u&gt;&lt;b&gt;If the hold time had been 4 ns instead of 2 ns, then there would have been a hold violation.&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Td=18ns and Tclk = 3+9+3+4=19ns&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;So Hold Slack=Td - Tclk = 18ns - 19ns = -1ns (Violation)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;&lt;u&gt;Setup Analysis:&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;When a&amp;nbsp;setup check is performed, we have to consider two things-&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Maximum Delay along the data path.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Minimum Delay along the clock path.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;If the difference between the clock path and the data path is negative, then a timing violation has occurred. ( Note: there are few Exceptions for this- We will discuss that some other time)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Data path is: CLK-&amp;gt;FF1/CLK -&amp;gt;FF1/Q -&amp;gt;Inverter -&amp;gt;FF2/D&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Delay in Data path&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;= max(wire delay to the clock input of FF1) + max(Clk-to-Q delay of FF1) +max(cell delay of inverter) + max(2 wire delay- "Qof FF1-to-inverter" and "inverter-to-D of FF2")&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;=Td = 2+11+9+(2+2) = 26ns&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Note: The first part of the clock path delay (during setup calculation) is the clock period, which has been set to 15 ns. Hope You remember in last blog, I have mentioned very clearly that &lt;b&gt;Setup&amp;nbsp;is checked at the next clock cycle.&lt;/b&gt; That's the reason for clock path delay we have to include clock period also.&lt;/span&gt;&lt;/i&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Clock path is: CLK-&amp;gt; buffer -&amp;gt; FF2/CLK&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;Clock path Delay &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;= (Clock period) + min(wire delay&amp;nbsp;from CLK to Buffer input) + min(cell delay of Buffer) + min(wire delay from Buffer output to FF2/CLK pin)&amp;nbsp;- (Setup time of FF2)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;=Tclk = 15+2+5+2-4=20ns&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Setup Slack = Tclk - Td = 20ns - 26ns = -6ns.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Since Setup Slack is&amp;nbsp;negative -&amp;gt; Setup violation.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;&lt;u&gt;Note:&amp;nbsp;A&amp;nbsp;bigger clock period or a&amp;nbsp;less maximum delay of the inverter solve this setup violations in the circuit.&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;E.g &lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;If Clock period is 22ns then &lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&amp;nbsp;&amp;nbsp; Tclk = 22+2+5+2-4=31-4=27ns&amp;nbsp;&amp;nbsp; AND Td = 26ns&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;Setup Slack = Tclk - Td = 27-26=1ns&amp;nbsp; (No Violation)&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;span style="color: windowtext;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;**********************************************************************************&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;**********************************************************************************&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Problem2: In order to work correctly, what should be the Setup and Hold time at Input A in the following Circuit. Also find out the maximum operating frequency for this circuit. (Note: Ignore Wire delay). Where&amp;nbsp;Tsu- Setup time; Thd-Hold Time; Tc2q- Clock-to-Q delay&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cOaKd9xOCR0/Tb6JYQemorI/AAAAAAAAADs/lYNfJTSMtKs/s1600/setup+and+hold+example2.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img border="0" height="286" src="http://2.bp.blogspot.com/-cOaKd9xOCR0/Tb6JYQemorI/AAAAAAAAADs/lYNfJTSMtKs/s400/setup+and+hold+example2.bmp" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Solution: &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step1: Find out the maximum Register to register Delay.&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span style="color: windowtext;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: windowtext;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;Max Register to Register Delay &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="color: windowtext;"&gt;= (clk-to-Q delay of &lt;/span&gt;&lt;span style="color: windowtext;"&gt;U2) + (cell delay of U3) + (all wire delay) + (setup time of U1)&lt;/span&gt;&lt;span style="color: windowtext;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 5 + 8 + 3 = 16 ns.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Note: &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;There are 2 register to register paths&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;U2 -&amp;gt; U3 -&amp;gt;U1 (Delay=5+8+3=16ns)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;U1 -&amp;gt; U4 -&amp;gt; U2 ( Delay=5+7+3=15ns)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;We have to pick maximum one.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step2: Find Out Setup&amp;nbsp;Time:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;A setup time =&amp;nbsp;Setup time of Flipflop&amp;nbsp;+ Max (Data path&amp;nbsp;Delay) - min(Clock path&amp;nbsp;Delay)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= (Setup time of Flipflop&amp;nbsp;+ A2D max&amp;nbsp;delay)&amp;nbsp;- (Clk path&amp;nbsp;min delay)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= Tsu + (Tpd U7 + Tpd U3 + wire delay) - Tpd U8&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 3 + (1+8&amp;nbsp;) - 2 = 10 ns&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Note:&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Here we are not using the Clock period. Because we are not suppose to calculate the Setup violation. We are calculating Setup time. Please refer the part3a for the referance.&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;All the wire dealy is neglected. If Wire delay present, we have to consider those one.&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;There are 2 Data path&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;A -&amp;gt; U7 -&amp;gt; U4 -&amp;gt; D of U2 (Data path Delay = 1+7 =8ns )&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;A -&amp;gt; U7 -&amp;gt; U3 -&amp;gt; D of U1 ( Data path Delay = 1+8 =9ns )&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Since for Setup calculation we need maximum Data path delay, we have choosen 2nd for our calculation.&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step3: Find Out Hold Time:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;A hold time = Hold time of Flipflop + max(Clock path Delay) - min( Data path delay)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;=( Hold time of Flipflop + Clk path max delay) - (A2D max delay)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;=&lt;span style="color: windowtext;"&gt; Thd + Tpd U8 - (Tpd U7 + Tpd U4+wire delay)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 4 + 2 - (1+7&amp;nbsp;) = -2 ns&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Note: Same explanation as for Setup time. For hold time we need minimum data path , so we have picked first Data path.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step4: Find out Clock to Out Time:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;Clock to Out&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= Cell delay of U8 + Clk-to-Q delay of FlipFlop+ Cell delay of U5+ Cell delay of U6+ (all wire delay)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= Tpd U8+ U2 Tc2q + U5 Tpd + U6 Tpd&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 2 + 5 + 9 + 6 = 22 ns&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Note: &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt; text-align: left;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;There are 2 Clock to Out path- one from Flip flop U1 and other from U2. &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt; text-align: left;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Since in this case the Clk-to-Q path for both Flipflop is&amp;nbsp;same, we can consider any path. But in some other Circuit where the delay is different for both the paths, we should&amp;nbsp;consider Max delay path.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step5: Find Pin to Pine Combinational Delay (A to Y delay)&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;Pin to Pin Combinational Delay (A to Y)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= U7 Tpd + U5 Tpd + U6 Tpd&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 1 + 9 + 6 = 16 ns&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step5: Find Out Max Clock Frequency:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;Max Clock Freq = 1/ Max (Reg2reg, Clk2Out, Pin2Pin)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 1/ Max (16, 22, 16)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 45.5 Mhz&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;So summery is: &lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: medium none;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border: 1pt solid windowtext; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Parameter &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Description &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Min &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Max &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Units&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Tclk&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Clock Period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;22&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;ns&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Fclk&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Clock Frequency&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;45.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Mhz&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Atsu&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;A setup time&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;10&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;ns&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Athd&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;A hold time&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;-2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;ns&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;A2Y&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;A to Y Tpd&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;16&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;ns&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Ck2Y&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Clock to Y tpd&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;22&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;ns&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;&lt;b&gt;&lt;u&gt;Note: Negative hold times are typically specified as 0 ns.&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;**********************************************************************************&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;**********************************************************************************&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Problem3: In the above Circuit, Try to improve the timing by adding any "buffer" or "Register".&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="font-family: inherit;"&gt;Solution:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;Best way of doing this is “Register all Input and Output”. We are adding DFF so same specification (as U2 and U1).&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-tsQnTcdIDKU/Tb6J1utg-hI/AAAAAAAAADw/IS5U6wWoxc0/s1600/setup+and+hold+example3.bmp" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;img border="0" height="287" src="http://3.bp.blogspot.com/-tsQnTcdIDKU/Tb6J1utg-hI/AAAAAAAAADw/IS5U6wWoxc0/s400/setup+and+hold+example3.bmp" width="400" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;Now follow all those 5 Steps onn by one.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step1:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: windowtext;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;Max Register to Register Delay&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;U2 Tc2q + U5 Tpd + U9 Tsu = 5 + 9 + 3 = 17 ns&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Note:&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;A lot of Register to Register path&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;U8 -&amp;gt; U5 -&amp;gt; U9 (Delay = 5+9+3=17ns)&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;U8 -&amp;gt; U4 -&amp;gt; U2 (Delay = 5+7+3=15ns)&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;U8 -&amp;gt; U3 -&amp;gt; U1 (Delay = 5+8+3=16ns)&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;U1 -&amp;gt; U4 -&amp;gt; U2 (Delay= 5+7+3=15ns)&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;U1 -&amp;gt; U5 -&amp;gt; U9 (Delay= 5+9+3=17ns)&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;U2 -&amp;gt; U5 -&amp;gt; U9 (Delay = 5+9+3=17ns)&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;U2 -&amp;gt; U3 -&amp;gt; U1 (Delay = 5+8+3=16ns)&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Maximum delay is 17ns, Just picked anyone.&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step2:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;A setup time = Tsu + A2D Tpd max - Clk Tpd min&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= Tsu + (Tpd U7) - Tpd U8&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 3 + (1) - 2 = 2 ns&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Note: Only One path between A and D of FF(i.e U8)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step3:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;A hold time = Thd + Clk Tpd max - A2D Tpd min&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= Thd + Tpd U8 - (Tpd U7)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 4 + 2 - ( 1) = 5 ns&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Note: Only One path between A and D of FF(i.e U8)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step4:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;Clock to out:&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;=Tpd U8+ U9 Tc2q&amp;nbsp; + U6 Tpd&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;=2+5+6 = 13 ns&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step5:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;No direct link between A and Y. So Not Applicable.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;u&gt;&lt;span style="font-family: inherit;"&gt;Step6:&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;Max Clock Freq = 1/ Max (Reg2reg, Clk2Out, Pin2Pin)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;= 1/ Max (17, 13)&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;=58.8 Mhz&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: medium none;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border: 1pt solid windowtext; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Parameter &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Description &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Min &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Max &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: windowtext windowtext windowtext rgb(236, 233, 216); border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;b&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Units&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Tclk&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Clock Period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;17&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;ns&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Fclk&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Clock Frequency&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;58.8&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Mhz&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Atsu&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;A setup time&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;2&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;ns&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Athd&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;A hold time&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;ns&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Ck2Y&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;Clock to Y tpd&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.75pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;13&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color: transparent; border-color: rgb(236, 233, 216) windowtext windowtext rgb(236, 233, 216); border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 95.8pt;" valign="top" width="128"&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="color: windowtext; font-family: inherit; font-size: x-small;"&gt;ns&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div align="justify" class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;**********************************************************************************&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;**********************************************************************************&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I hope This much will help you. Now its the time to summarize all the important things and&amp;nbsp;formulas.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Points to remember:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;Setup is checked at next clock edge.&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;Hold is checked at same clock edge.&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;For Hold Check ( Checking of hold Violation)&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;b&gt;Minimum Delay&lt;/b&gt; along the &lt;b&gt;data path&lt;/b&gt;.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;b&gt;Maximum Delay&lt;/b&gt; along the &lt;b&gt;clock path&lt;/b&gt;.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;For SetUp Check ( Checking of Setup Violation)&lt;/i&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ol&gt;&lt;li&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;b&gt;Maximum Delay&lt;/b&gt; along the &lt;b&gt;data path&lt;/b&gt;.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: justify;"&gt;&lt;span style="color: windowtext;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;b&gt;Minimum Delay&lt;/b&gt; along the &lt;b&gt;clock path.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;div&gt;&lt;/div&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
﻿﻿﻿﻿ &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TfHU3CHp7UQ/Tb-cl_6n6OI/AAAAAAAAAD0/z0NA89xDAyY/s1600/Setup+and+Hold+4.bmp" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-TfHU3CHp7UQ/Tb-cl_6n6OI/AAAAAAAAAD0/z0NA89xDAyY/s320/Setup+and+Hold+4.bmp" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Basic 2 FlipFlop circuit.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
﻿﻿﻿﻿ &lt;br /&gt;
&lt;i&gt;&lt;b&gt;&lt;u&gt;Calculation of&amp;nbsp;Setup Violation Check&lt;/u&gt;:&lt;/b&gt; C&lt;/i&gt;onsider above circuit of 2 FF connected to each other.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Setup Slack = Required time - Arrival time (since we want data to arrive before it is required)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;Where: &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Arrival time (max) = clock delay FF1 (max) +clock-to-Q delay FF1 (max) + comb. Delay( max) &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Required time = clock adjust + clock delay FF2 (min) - set up time FF2 &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Clock adjust = clock period (since setup is analyzed at next edge)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;&lt;u&gt;Calculation of&amp;nbsp;Hold Violation Check&lt;/u&gt;:&lt;/b&gt; C&lt;/i&gt;onsider above circuit of 2 FF connected to each other.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;b&gt;Hold&amp;nbsp;Slack = Arrival Time - Required time (since we want data to arrive after&amp;nbsp;it is required)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;Where: &lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Arrival time (min) = clock delay FF1 (min) +clock-to-Q delay FF1 (min) + comb. Delay( min) &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Required time = clock adjust + clock delay FF2 (max) + hold time&amp;nbsp;FF2 &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Clock adjust =&amp;nbsp;0 (since&amp;nbsp;hold is analyzed at&amp;nbsp;same edge)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: left;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;span style="font-family: inherit;"&gt;&lt;i&gt;&lt;b&gt;&lt;u&gt;Calculation of&amp;nbsp;Maximum Clock Frequency:&lt;/u&gt;&lt;/b&gt;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 0pt; text-align: left;"&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="color: windowtext; font-family: inherit;"&gt;&lt;b&gt;Max Clock Freq = 1/ Max (Reg2reg delay, Clk2Out delay, Pin2Pin delay)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reg2Reg Delay = Clk-to-Q delay of first FF (max)&lt;span style="color: windowtext;"&gt;&amp;nbsp;+&amp;nbsp;conb delay (max)&amp;nbsp;+ setup time of 2nd FF.&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Clk2Out Delay =&lt;span style="color: windowtext;"&gt;&amp;nbsp;Clock delay w.r.t FF (max) + clock-to-Q delay of FF1 (max) + comb. delay (max)&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pin2Pin delay = Comb delay between input pin to output pin (max)&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/9189594178868177138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/examples-of-setup-and-hold-time-static.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/9189594178868177138?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/9189594178868177138?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/examples-of-setup-and-hold-time-static.html' title='&quot;Examples Of Setup and Hold time&quot; : Static Timing Analysis (STA) basic (Part 3c)'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Vz9kec6fiPY/Tb5_GFAlXRI/AAAAAAAAADo/DTBQrpKHD7A/s72-c/setup+and+hold+example1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkIHSHo7eCp7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-3976975748924519326</id><published>2011-08-19T04:22:00.003-07:00</published><updated>2011-08-30T09:08:59.400-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:08:59.400-07:00</app:edited><title>Multi Voltage Designs: Power Planning Issues</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://asic-soc.blogspot.com/2007/09/multi-voltage-designs-power-planning.html"&gt;&lt;br /&gt;
&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;Efficient power planning is one of the key concerns of modern SoC&lt;br /&gt;
designs. In multi voltage designs providing power to the different&lt;br /&gt;
power domains is challenging. Every power domain requires independent&lt;br /&gt;
local power supply and grid structure and some designs may even have a&lt;br /&gt;
separate power pad. Separate power pad is possible in flip-chip&lt;br /&gt;
designs and power pad can be taken out near from the power domain.&lt;br /&gt;
Other chips have to take out the power pads from the periphery which&lt;br /&gt;
can put limit to the number of power domains.&lt;br /&gt;
Local on chip voltage regulation is good idea to provide multiple&lt;br /&gt;
voltages to different circuits. Unfortunately most of the digital CMOS&lt;br /&gt;
technologies are not suitable for the implementation of either&lt;br /&gt;
switched mode of operation or linear voltage regulations.&lt;br /&gt;
&lt;br /&gt;
Separate power rail structure is required for each power domain. These&lt;br /&gt;
additional power rails introduce different levels of IR drop putting&lt;br /&gt;
limit to the achievable power efficiency.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: 130%;"&gt;&lt;span style="font-weight: bold;"&gt;Related Articles&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2007/09/multiple-voltage-asicsoc-designs.html"&gt;&lt;span style="color: #3366ff;"&gt;Multiple Voltage ASIC/SoC Designs: Classification&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2007/09/multiple-voltage-design-challenges.html"&gt;&lt;span style="color: #3366ff;"&gt;Multiple Voltage Design Challenges&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://asic-soc.blogspot.com/2007/09/multi-voltage-designs-timing-issues.html"&gt;Multiple Voltage Designs: Timing Issues&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/3976975748924519326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/multi-voltage-designs-power-planning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/3976975748924519326?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/3976975748924519326?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/multi-voltage-designs-power-planning.html' title='Multi Voltage Designs: Power Planning Issues'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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 gd:etag='W/&quot;CkICQn09eip7ImA9WhdXF08.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-4151388619815603615</id><published>2011-08-19T03:47:00.001-07:00</published><updated>2011-08-30T09:09:23.362-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-30T09:09:23.362-07:00</app:edited><title>Fixing Transition Violation</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;h3 class="post-title entry-title"&gt;&lt;a href="http://asic-soc.blogspot.com/2011/01/fixing-transition-violation.html"&gt;&lt;br /&gt;
&lt;/a&gt; &lt;/h3&gt;&lt;div class="post-header"&gt;&lt;/div&gt;&lt;div class="post-body entry-content"&gt;Transition violations can be fixed by different methods based on the design situations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;They include: &lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Up sizing the driver cell&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Decreasing the net length by moving cells nearer or reducing long routed net&amp;nbsp;&lt;/li&gt;
&lt;li&gt;By adding buffers&amp;nbsp;&lt;/li&gt;
&lt;li&gt;By using existing spare cells as buffers&amp;nbsp;&lt;/li&gt;
&lt;li&gt;By splitting loads through buffers to reduce the fan out number (number of driven cells)&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div&gt;&amp;nbsp; &lt;/div&gt;&lt;/div&gt;&lt;a href="http://asic-soc.blogspot.com/2011/01/fixing-transition-violation.html#more" title="Fixing Transition Violation"&gt;Read more »&lt;/a&gt;       &lt;br /&gt;
&lt;div class="linkwithin_text" id="linkwithin_text_0" style="border: 0pt none; font-weight: bold; margin: 0pt; padding: 20px 0pt 5px; text-align: left;"&gt;You might also like:     &lt;/div&gt;&lt;div class="linkwithin_posts" style="border: 0pt none; margin: 0pt; padding: 0pt;"&gt;&lt;ul class="linkwithin_textlist" style="margin: 0pt 0pt 0pt 15px; padding: 0pt;"&gt;&lt;li style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; list-style-image: none; list-style-position: outside; list-style-type: disc; margin: 0pt; padding: 0pt; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/12/transition-delay-and-propagation-delay.html"&gt;Transition Delay and Propagation Delay&lt;/a&gt; &lt;/li&gt;
&lt;li style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; list-style-image: none; list-style-position: outside; list-style-type: disc; margin: 0pt; padding: 0pt; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/09/delays-in-asic-design.html"&gt;Delays in ASIC Design&lt;/a&gt; &lt;/li&gt;
&lt;li style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; list-style-image: none; list-style-position: outside; list-style-type: disc; margin: 0pt; padding: 0pt; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2007/12/what-are-different-types-of-delays-in.html"&gt;What are the different types of delays in ASIC  or VLSI design?&lt;/a&gt; &lt;/li&gt;
&lt;li style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: transparent none repeat scroll 0% 0%; line-height: 1.2em; list-style-image: none; list-style-position: outside; list-style-type: disc; margin: 0pt; padding: 0pt; text-align: left;"&gt; &lt;a href="http://asic-soc.blogspot.com/2008/02/physical-design-questions-and-answers.html"&gt;Physical Design Questions and Answers&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/4151388619815603615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/fixing-transition-violation-transition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/4151388619815603615?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/4151388619815603615?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/fixing-transition-violation-transition.html' title='Fixing Transition Violation'/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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 gd:etag='W/&quot;CEMAR3c5eyp7ImA9WhdQFko.&quot;'><id>tag:blogger.com,1999:blog-3587966143822038019.post-1924618971623924213</id><published>2011-08-18T06:00:00.001-07:00</published><updated>2011-08-18T06:00:46.923-07:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2011-08-18T06:00:46.923-07:00</app:edited><title></title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.asic-world.com/"&gt;www.asic-world.com&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vlsidesigncenter.blogspot.com/feeds/1924618971623924213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/www.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/1924618971623924213?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3587966143822038019/posts/default/1924618971623924213?v=2'/><link rel='alternate' type='text/html' href='http://vlsidesigncenter.blogspot.com/2011/08/www.html' title=''/><author><name>mahesh</name><uri>http://www.blogger.com/profile/04228636472620117619</uri><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></feed>