<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://forums.xilinx.com/xlnx/styledfeed_xsl?board.id=pld" ?>
<?xml-stylesheet type="text/css" href="http://forums.xilinx.com/xlnx/styledfeed_css" ?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>PLD Blog</title>
    <link>http://forums.xilinx.com/t5/PLD-Blog/bg-p/pld</link>
    <description>PLD Blog</description>
    <pubDate>Sun, 22 Nov 2009 04:26:00 GMT</pubDate>
    <dc:creator>pld</dc:creator>
    <dc:date>2009-11-22T04:26:00Z</dc:date>
    <item>
      <title>Package Generated Alpha Particles:  They are a Problem and Here is the Information</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Package-Generated-Alpha-Particles-They-are-a-Problem-and-Here-is/ba-p/54029</link>
      <description>There are two sources of alpha particles and both cause upsets</description>
      <pubDate>Thu, 12 Nov 2009 22:47:22 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Package-Generated-Alpha-Particles-They-are-a-Problem-and-Here-is/ba-p/54029</guid>
      <dc:creator>austin.lesea</dc:creator>
      <dc:date>2009-11-12T22:47:22Z</dc:date>
    </item>
    <item>
      <title>Helping the Customer Drive to ‘Zero Defects’</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Helping-the-Customer-Drive-to-Zero-Defects/ba-p/51646</link>
      <description>For this blog, I have invited John Latimer, a director of world-wide customer quality engineering, to provide us with a view of our philosophy in how we are improving our quality.</description>
      <pubDate>Thu, 15 Oct 2009 22:19:38 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Helping-the-Customer-Drive-to-Zero-Defects/ba-p/51646</guid>
      <dc:creator>austin.lesea</dc:creator>
      <dc:date>2009-10-15T22:19:38Z</dc:date>
    </item>
    <item>
      <title>Targeted Platform Design</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Targeted-Platform-Design/ba-p/50479</link>
      <description>What in the heck are we talking about?</description>
      <pubDate>Thu, 01 Oct 2009 23:10:09 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Targeted-Platform-Design/ba-p/50479</guid>
      <dc:creator>austin.lesea</dc:creator>
      <dc:date>2009-10-01T23:10:09Z</dc:date>
    </item>
    <item>
      <title>Re: Welcome to My World</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Welcome-to-My-World/bc-p/48994</link>
      <description />
      <pubDate>Sat, 05 Sep 2009 00:10:44 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Welcome-to-My-World/bc-p/48994</guid>
      <dc:creator>wellion990</dc:creator>
      <dc:date>2009-09-05T00:10:44Z</dc:date>
    </item>
    <item>
      <title>It Is All About Quality</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/It-Is-All-About-Quality/ba-p/48515</link>
      <description>Recently I was asked to deliver a presentation on design techniques for a meeting with some customers. Just before I delivered my presentation, a friend from the Quality organization here at Xilinx presented on our quality.</description>
      <pubDate>Thu, 03 Sep 2009 22:55:12 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/It-Is-All-About-Quality/ba-p/48515</guid>
      <dc:creator>austin.lesea</dc:creator>
      <dc:date>2009-09-03T22:55:12Z</dc:date>
    </item>
    <item>
      <title>Re: That Dangerous Asynchronous Reset!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/45358</link>
      <description>&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;Dear jnm,&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;Sorry to hear of your problems but I&amp;rsquo;m afraid they are not unsurprising to me. As long as people continue to design using these &amp;lsquo;global asynchronous reset&amp;rsquo; signals these problems will be there to bite just when you don&amp;rsquo;t want them too. Clearly it is better top avoid them by design rather than look for ways to patch them afterwards and I&amp;rsquo;m sure you will now be motivated to do that in your future designs.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;The suggestions made sound reasonable but probably still will not provide a solution in most real designs. All the suggestions are really a way to enforce a synchronous operation onto an otherwise asynchronous design. In each case they are ways to make sure that the reset signal (when going active or inactive) has been distributed to all loads meeting set-up time before the next clock edge then it will be safe and work. The key point about these paths is that simply reaching a flip-flop reset pin is not enough; the path from that flip-flop that gets asynchronously reset to its load(s) is also part of the path that must meet timing. The net effect being that the clock frequency needs to be rather slow (like in the good old days when most designs were less than 20MHz) so if your clock is faster then your design just won&amp;rsquo;t meet timing. Using a global signal to distribute the reset sounds good but again this global signal will not be that fast and still you have the path from the flip-flops as well as to them to consider. Once again the net effect is a rather slow design. Finally the idea of stopping the clock is valid providing it is possible to stop the clock. DCM, DLL and PLL are all about locking to free running clocks. If your design doesn&amp;rsquo;t use these clocking components then you would be able to stop your clock but that again means that your application has relatively slow communication requirements on the I/O pins.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;In summary, if a design is low frequency like most were in the olds days then you can probably get away with using global asynchronous resets. In a modern design you almost certainly need to apply modern design techniques. It is just a pity that ther are so many old examples of coding out there that continue to see the younger engineers learning bad habits today.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;Good luck getting your design to work reliably and for sharing your misfortune with others. I really hope it helps to motivate more readers to take this fundamental issue seriously and change their ways.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;Regards,&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;Ken&lt;/span&gt;</description>
      <pubDate>Wed, 29 Jul 2009 10:42:23 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/45358</guid>
      <dc:creator>kcmman</dc:creator>
      <dc:date>2009-07-29T10:42:23Z</dc:date>
    </item>
    <item>
      <title>Re: That Dangerous Asynchronous Reset!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/45252</link>
      <description>&lt;p&gt;The STARTUP_SPARTAN3E primitive appears to allows the global reset to be synchonized to a clock.&lt;/p&gt;&lt;p&gt;If a design uses a single clock, then this primitive can be used to sync the global reset to that clock.&lt;/p&gt;&lt;p&gt;My FAE tells me Xilinx told them that this is an acceptable way to address the problem in WP272.&lt;/p&gt;&lt;p&gt;Do you agree?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I also understand that if you have control over the clock, then it would be acceptable to stop/gate the clock,&lt;/p&gt;&lt;p&gt;assert the async reset, then start/ungate the clock.&amp;nbsp; Can you comment on this approach?&lt;/p&gt;&lt;p&gt;Could I use the DCM CLKFX in combination with a BUFG_MUX primitive to implement such an approach for each clock in my design?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Tue, 28 Jul 2009 14:28:43 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/45252</guid>
      <dc:creator>jnm</dc:creator>
      <dc:date>2009-07-28T14:28:43Z</dc:date>
    </item>
    <item>
      <title>Re: That Dangerous Asynchronous Reset!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/45250</link>
      <description>&lt;p&gt;I've been told by FAEs that including in the UCF&lt;/p&gt;&lt;p&gt;ENABLE = reg_sr_q;&lt;/p&gt;&lt;p&gt;ENABLE = reg_sr_r;&lt;/p&gt;&lt;p&gt;ENABLE = reg_sr_o;&lt;/p&gt;&lt;p&gt;will not only report violations of async reset use,&lt;/p&gt;&lt;p&gt;but will be used by ISE for timing driven placement and routing.&lt;/p&gt;&lt;p&gt;I've been told this has solved this problem for other customer.&lt;/p&gt;&lt;p&gt;Is this true?&lt;/p&gt;&lt;p&gt;Does ISE actually figure out the clock period and ensure that all FFs are reset in the same clock period without having to actually synchronize the reset to the clock?&lt;/p&gt;</description>
      <pubDate>Tue, 28 Jul 2009 14:23:08 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/45250</guid>
      <dc:creator>jnm</dc:creator>
      <dc:date>2009-07-28T14:23:08Z</dc:date>
    </item>
    <item>
      <title>Re: That Dangerous Asynchronous Reset!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/45246</link>
      <description>&lt;p&gt;I have a design (xc3s1600e-4fg320) with an async reset that is IP which has been implemented successfully by several people.&amp;nbsp; In my implementation the design is operating properly and passes board-level diagnostics.&amp;nbsp; However, the default value for several status registers does not match the value designed.&amp;nbsp; Sometimes following reset a value is correct, other times it is not.&amp;nbsp; It appears this is a problem addressed by WP272.&amp;nbsp; I've implemented the circuit that synchronizes the reset to the clock - see below - and now the design fails board-level diagnostics.&amp;nbsp; All timing constraints were met.&amp;nbsp; What could cause this problem?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;A 20MHz clock (ref_clk) from an external oscillator is brought into a DCM and multiplied to 40MHz (cpu_clk).&lt;/p&gt;&lt;p&gt;rst_async_n is the external async reset.&amp;nbsp; It will pulse low for 300ms, then 300ms will pass before access to the part begins.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;DCM cpu_clk_dcm ( &lt;br /&gt;&amp;nbsp; .CLKIN(ref_clk), // 20 MHz&lt;br /&gt;&amp;nbsp; .CLKFB(), // use CLK0 or CLK2X&lt;br /&gt;&amp;nbsp; .DSSEN(1'b0),&lt;br /&gt;&amp;nbsp; .PSINCDEC(1'b0), // unused - no phase shift&lt;br /&gt;&amp;nbsp; .PSEN(1'b0), // disable phase shift enable&lt;br /&gt;&amp;nbsp; .PSCLK(1'b0), // no phase shift clock&lt;br /&gt;&amp;nbsp; .RST(!rst_async_n), // &lt;br /&gt;&amp;nbsp; .CLK0(), // freq = clkin, can drive clkfb for DLL ops&lt;br /&gt;&amp;nbsp; .CLK90(), // freq = clkin, phase shifted 90&lt;br /&gt;&amp;nbsp; .CLK180(), // freq = clkin, phase shifted 180&lt;br /&gt;&amp;nbsp; .CLK270(), // freq = clkin, phase shifted 270&lt;br /&gt;&amp;nbsp; .CLK2X(), // can drive clkfb for DLL ops&lt;br /&gt;&amp;nbsp; .CLK2X180(), // freq = clk2x, phase shifted 180&lt;br /&gt;&amp;nbsp; .CLKDV(), // clkin/clkdv_divide&lt;br /&gt;&amp;nbsp; .CLKFX(cpu_clk), // clkin*clkfx_multiply/clkfx_divide, 40_MHz - set in ucf &lt;br /&gt;&amp;nbsp; .CLKFX180(),&lt;br /&gt;&amp;nbsp; .PSDONE(), // unused - no phase shift&lt;br /&gt;&amp;nbsp; .STATUS(), &lt;br /&gt;&amp;nbsp; .LOCKED(cpu_clk_locked)&lt;br /&gt;);&lt;/p&gt;&lt;p&gt;always @(posedge cpu_clk or negedge rst_async_n) begin&lt;br /&gt;&amp;nbsp; if (!rst_async_n) begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu_rst_n &amp;lt;= 1'b0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu_pre_rst_n &amp;lt;= 1'b0;&lt;br /&gt;&amp;nbsp; end else begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu_rst_n &amp;lt;= cpu_pre_rst_n;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu_pre_rst_n &amp;lt;= 1'b0; //cpu_clk_locked;&lt;br /&gt;&amp;nbsp; end&amp;nbsp; &lt;br /&gt;end&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Also, it is clear that the sync'd reset must be distributed faster than a clock period of the clock,&lt;/p&gt;&lt;p&gt;so a MAXDELAY constraint is needed.&amp;nbsp; The best I can tell this delay must be PERIOD - JITTER_BUDGET - CLK_TO_OUT_DELAY - FF_SETUP.&amp;nbsp; If this is a common technique necessary for building reliable designs, why isn't there a Xilinx document that describes the necessary implementation details (i.e. MAXDELAY).&lt;/p&gt;</description>
      <pubDate>Tue, 28 Jul 2009 13:57:39 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/45246</guid>
      <dc:creator>jnm</dc:creator>
      <dc:date>2009-07-28T13:57:39Z</dc:date>
    </item>
    <item>
      <title>Re: That Dangerous Asynchronous Reset!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/43892</link>
      <description>&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;Synchronising the switching of an asynchronous reset to the clock is effectively a way to make the global reset synchronous even when using asynchronous reset inputs to flip-flops. However, to do so requires that everything is clocked by the same clock source (again something I advocate but just isn&amp;rsquo;t possible in all cases and why we have to provide multiple DCMs and clock buffers in our devices).&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;It also requires that the synchronised reset signal can be distributed globally within a single clock period to meet set up and hold times at all the loads. This is possible when the clock rate is slow enough but it rarely is! The DLL (the heart of a DCM and similar to a PLL) was introduced into Xilinx FPGA&amp;rsquo;s many years ago simply because it was not possible to distribute a clock globally fast enough. So the same applies to any global signal. The issue is that a reset signal is not repetitive like a clock and therefore can not be predicted in the same way that a DLL exploits.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0cm 0cm 0pt" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="font-size: 10pt; font-family: Arial"&gt;Ultimately, you are correct but only if you are using a single slow clock. Since a Xilinx flip-flop can be synchronously or asynchronously reset there is no real saving (the transistors are there already).&lt;/span&gt;</description>
      <pubDate>Mon, 13 Jul 2009 10:52:51 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/43892</guid>
      <dc:creator>kcmman</dc:creator>
      <dc:date>2009-07-13T10:52:51Z</dc:date>
    </item>
    <item>
      <title>Re: That Dangerous Asynchronous Reset!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/43258</link>
      <description>&lt;p&gt;Ken, The primary reason I have seen the global async reset used is It also allows the user to reset the part without having to reprogram the whole part, and to get the simulation to work as you noted.&lt;/p&gt;&lt;p&gt;There are many problems you pointed out that can arrise, but if you address each of them then can't the asynchronous reset be far more efficient than coding&amp;nbsp;a synchronous reset?&lt;/p&gt;&lt;p&gt;If you coded the design such that the async reset uses the global reset resource, and synchronize the global reset&amp;nbsp;to your primary clock, then is your primary clock safe? If the secondary DCMs are reset by the same asynch reset, and also the lock signal from the first DCM, and then if you gate these clocks with thier own lock signals, are they not also safe?&lt;/p&gt;</description>
      <pubDate>Mon, 06 Jul 2009 14:44:37 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/That-Dangerous-Asynchronous-Reset/bc-p/43258</guid>
      <dc:creator>billhunter</dc:creator>
      <dc:date>2009-07-06T14:44:37Z</dc:date>
    </item>
    <item>
      <title>Re: Power to the PCB!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41926</link>
      <description>&lt;p&gt;tj,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I get excited very easily. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;No, no, no!&amp;nbsp; Do not be sorry to have asked the question!&amp;nbsp; It is a good question.&amp;nbsp; We changed completely our methods, and our recommendations.&amp;nbsp; It is a huge change.&amp;nbsp; Did we supply all the deatils?&amp;nbsp; No we did not.&amp;nbsp; Did we publish a thorough technical paper on why?&amp;nbsp; Nope.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If I appeared &amp;quot;annoyed&amp;quot; it was probably a lack of coffee in the morning, or something else.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I can be wrong (I have been wrong),&amp;nbsp; and I will be wrong again in the future.&amp;nbsp; Sometimes it is also difficult to explain something without tipping off our competition on how to do the same thing.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have heard the competition sometimes when challenged by a Xilinx new feature say &amp;quot;oh, we do that too&amp;quot; even when they do not (and don't have a clue).&amp;nbsp; Now that is annoying.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Of course, they will do that regardless, so I shouldn't be afraid to &amp;quot;tell all.&amp;quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;And, as I said, this new bypass method has worked (is working) and that is the best indication that we did the right thing.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I do understand that we have done something pretty radical, and there will be many who don't quite believe it.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For a complete technical explanation, you would need to make a request through your Xilinx FAE.&amp;nbsp; It would be good for them (too) as they would have to get the full technical details (which are not in a form that can be presented today) refined, reviewed, and turned into a customer presentation.&amp;nbsp; Then a technical expert would have to present it.&amp;nbsp; After all, that is their job.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Again, don't ever be sorry you asked anything of me,&amp;nbsp; it is part of my job to answer customer questions.&amp;nbsp; I get pretty passionate about E&amp;amp;M theory, as it is so poorly understood (and it was my undergraduate major).&amp;nbsp; I have fought for 11 years to get people here to use E&amp;amp;M CAD tools to do everything from package design, to pcb analysis.&amp;nbsp; I am winning (and as a consequence so are our customers). &lt;/p&gt;&lt;p&gt;&lt;br /&gt;Austin &lt;/p&gt;</description>
      <pubDate>Mon, 22 Jun 2009 15:11:42 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41926</guid>
      <dc:creator>austin.lesea</dc:creator>
      <dc:date>2009-06-22T15:11:42Z</dc:date>
    </item>
    <item>
      <title>Re: Power to the PCB!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41772</link>
      <description>&lt;p&gt;Austin, &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I appear to have really pressed your buttons.&amp;nbsp; A desire to understand is not necessarily an expression of doubt.&amp;nbsp; I'm sorry I asked the question.&lt;/p&gt;</description>
      <pubDate>Fri, 19 Jun 2009 21:51:50 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41772</guid>
      <dc:creator>tjnash</dc:creator>
      <dc:date>2009-06-19T21:51:50Z</dc:date>
    </item>
    <item>
      <title>Re: Power to the PCB!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41768</link>
      <description>&lt;p&gt;tj,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Well.&amp;nbsp; If you want the right answer, use a field solver.&amp;nbsp; ALL documentation prior to the change in the decoupling recommendations becomes obsolete.&amp;nbsp; So just because we say somewhere that something is a good method, that is not true once we find a better method.&amp;nbsp; We try to go back and update all documentation, but this is just the sort of thing we try to do, and will probably never completely find, or fix.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Is this perfect?&amp;nbsp; Probably not.&amp;nbsp; Is this a soultion that everyone can use?&amp;nbsp; We think so.&amp;nbsp; The constaints of the building a pcb to do what is required so constrains the problem that it is virtually impossible to do anything that is not covered by this recommendation (we believe based on the work done).&amp;nbsp; The complaints from the hotline bear this out:&amp;nbsp; after this was published, cases on the subject plummeted to nearly zero.&amp;nbsp; What other measure would you believe in?&amp;nbsp; I like to think that &amp;quot;the customer is always right&amp;quot; and if the customer isn't happy, then we have room to improve.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;So, you are free to doubt us.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I would ask you, why would we make the claim if we didn't feel that we had sufficient engineering experience and facts to back it up?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;It isn't like this recommendation doesn't matter:&amp;nbsp; it makes, or breaks EVERY pcb that gets made! &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Austin &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Fri, 19 Jun 2009 20:40:15 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41768</guid>
      <dc:creator>austin.lesea</dc:creator>
      <dc:date>2009-06-19T20:40:15Z</dc:date>
    </item>
    <item>
      <title>Re: Power to the PCB!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41766</link>
      <description>&lt;p&gt;Austin,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks for your reply.&amp;nbsp; I really enjoy using Xilinx products, as they are clearly well designed and supported.&amp;nbsp; I do my best to fully understand the parts and the overall system I'm trying to develop.&amp;nbsp; With that said, though, I'm a bit confused by your response:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;While I agree that the only way to know FOR SURE how a PDN will behave is via Maxwell's equations utilizing a 3D field-solver, I wouldn't go so far as to say that the method I described was a &amp;quot;best guess&amp;quot; or even based on a rule of thumb, nor would I imply that Xilinx no longer uses or promotes what you describe as &amp;quot;best guesses&amp;quot;.&amp;nbsp; This quote comes right out of UG203:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;quot;Basic lumped RLC simulation is one of the simplest simulation methods, and though it does not account for the distributed behavior of a PDS, it is a useful tool for selecting and erifying combinations of decoupling capacitor values. Lumped RLC simulation is performed either in a version of SPICE or other circuit imulator, or by using a mathematical tool like MathCAD or Microsoft Excel. Istvan Novak publishes a free Excel spreadsheet for lumped RLC simulation (among other useful tools or PDS simulation) on his website: &lt;a href='http://home.att.net/~istvan.novak/tools/Bypass_sweep_6v0.xls&amp;quot;' target='_blank'&gt;http://home.att.net/~istvan.novak/tools/Bypass_sweep_6v0.xls&amp;quot;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;(The app note continues to list alternative methods including many of the available field solvers) &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;My simulation goes a step further than that which I quoted.&amp;nbsp; It includes many of the additional (albiet, lumped) parasitics described throughout the app note (i.e. spreading inductance based on plane geometry, via models, interplane capacitance, etc...).&amp;nbsp; So, while I'd love to have a 3D field solver at my fingertips, I would hardly call what I am doing a &amp;quot;best guess&amp;quot;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Secondly, none of this really addresses my basic question - Is what Xilinx provides in UG203 sufficient for me to claim that I don't need to do any further analysis, whether it be on the back of an envelope or via a 3D field solver?&amp;nbsp; What I am hung up on is that I can't see how Xilinx can claim that they have completed all of the necessary PDN analysis for the customer (implied by the statement &amp;quot;...it benefits us to spend the time, and money, to get the right answer...&amp;quot;), when the response is not just a function of the decoupling caps chosen, but also their interaction with a board makeup that Xilinx didn't develop.&amp;nbsp; While I agree that the app note goes into the notion that you need to keep loop inductances small (WRT cap breakouts), manage interplane capacitance, etc..., it doesn't give the user any sort of concrete limits as to how much interplane capacitance is truely needed or how much inductance is too much to keep from breaking the PDN, etc....&amp;nbsp; I'm not saying that it SHOULD provide this information - just that it doesn't.&amp;nbsp; So, while Xilinx has gone a long way towards attaining the right answer, I'm not sure that you can safely claim that you HAVE the right answer, since you only control PART of the overall power distribution network. &lt;/p&gt;</description>
      <pubDate>Fri, 19 Jun 2009 20:25:31 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41766</guid>
      <dc:creator>tjnash</dc:creator>
      <dc:date>2009-06-19T20:25:31Z</dc:date>
    </item>
    <item>
      <title>Re: Power to the PCB!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41574</link>
      <description>&lt;p&gt;Tjnash,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;These recommendations were confirmed by use of E&amp;amp;M CAD tools (basically, solve's Maxwell's equations -- no estimates) and then we built a series of boards to prove that physics' is what it is'.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Not surprisingly, everything else is just a series of estimations, and often guesses.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Even Ohm's Law is a (huge) simplification of Maxwell's Equations.&amp;nbsp; Of course, if I am faced with a voltage drop, and a current, I am not going to reach for my EMI/RFI CAD tool:&amp;nbsp; if the &amp;quot;problem&amp;quot; in DC, the Ohm's Law is fine.&amp;nbsp; But if the &amp;quot;problem&amp;quot; is a complex issue of currents, and voltages, from thousands of nodes which all interact with the fields and waves, then the right tool for the job just might give you a surprising, and correct, answer.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;So:&amp;nbsp; solving for the electromagnetic fields using Maxwell's equations, along with then building the structure, demonstrates the guidelines are adequate, if not still a bit of overkill.&amp;nbsp; As for anyone's &amp;quot;rules of thumb&amp;quot; or methods, they are fine if you need an answer.&amp;nbsp; But, if you wish to get the right answer, you need the right tools.&amp;nbsp; As we make FPGAs for a huge number of customers, it benefits us to spend the time, and money, to get the right answer, and not some &amp;quot;rule of thumb&amp;quot; best guess.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Previous to this study, we used (and promoted) the &amp;quot;best guesses&amp;quot; just like everyone else.&amp;nbsp; We one day realized that we were asking customers to provide too much bypassing (and still having problems), and a great cost savings could be attained if we took the time to analyse just what was going on.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Thu, 18 Jun 2009 14:21:10 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41574</guid>
      <dc:creator>austin.lesea</dc:creator>
      <dc:date>2009-06-18T14:21:10Z</dc:date>
    </item>
    <item>
      <title>Re: Power to the PCB!</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41484</link>
      <description>&lt;p&gt;I've tried to simulate the effects of the recommended decoupling scheme and I must be missing something, because the recommended decoupling, at first glance, appears insufficient.&amp;nbsp; Using the &amp;quot;Larry Smith&amp;quot; method of analysis (same method that XAPP623 and subsequently UG203 appears to follow), if I assume a dynamic current need for VCCINT of ~2.5 amps (from Xilinx's power estimation spreadsheet) and a tolerable ripple voltage of 5%, this would mean I could have a Zmax of 50 mV / 2.5 A = 20 mOhms.&amp;nbsp; If I then include the parasitics of the recommended capacitors, as well as the noted device substrate capacitors (and their parasitics), and include ideal but realistic values for plane spreading inductance and capacitance, my PDN doesn't appear effective beyond ~15 - 25 MHz.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Am I missing something (i.e. additional capacitance in the die substrate), or are we to assume that we don't need to analyze the decoupling of the device assuming we follow the app note's recommended capacitor values?&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Note: I even looked up the approximate value of ESL for the 8-terminal ceramic X7S caps used on the substrate (~100 pH), as Xilinx doesn't provide that value in the app note.&lt;/p&gt;</description>
      <pubDate>Wed, 17 Jun 2009 23:05:14 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Power-to-the-PCB/bc-p/41484</guid>
      <dc:creator>tjnash</dc:creator>
      <dc:date>2009-06-17T23:05:14Z</dc:date>
    </item>
    <item>
      <title>Re: Reducing BRAM Power Consumption</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Reducing-BRAM-Power-Consumption/bc-p/38290</link>
      <description>&lt;p&gt;Yes, the memory keeps its contents. Only turning off the power supply or reconfiguring the device&amp;nbsp; will change it (except for the write you want to do of course).&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ken&lt;/p&gt;</description>
      <pubDate>Thu, 14 May 2009 16:24:21 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Reducing-BRAM-Power-Consumption/bc-p/38290</guid>
      <dc:creator>kcmman</dc:creator>
      <dc:date>2009-05-14T16:24:21Z</dc:date>
    </item>
    <item>
      <title>Re: Reducing BRAM Power Consumption</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/Reducing-BRAM-Power-Consumption/bc-p/38285</link>
      <description>Hi!&lt;br&gt;&lt;br&gt;Really interesting article! &lt;br&gt;Just to be on the safe side: the BRAM does consume less power if not enabled but it still keeps its content?! (I know, if it wouldn't, there's no sense  to connect the write_enable signal to the enable port of the BRAM...)&lt;br&gt;&lt;br&gt;&lt;br&gt;Thank you!</description>
      <pubDate>Thu, 14 May 2009 15:47:03 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/Reducing-BRAM-Power-Consumption/bc-p/38285</guid>
      <dc:creator>oschuppe</dc:creator>
      <dc:date>2009-05-14T15:47:03Z</dc:date>
    </item>
    <item>
      <title>The ‘Programmable Imperative’</title>
      <link>http://forums.xilinx.com/t5/PLD-Blog/The-Programmable-Imperative/ba-p/37849</link>
      <description>What are we talking about? Is this something new? Or is this something that has been around for 25 years, and has suddenly become more important?</description>
      <pubDate>Fri, 08 May 2009 22:31:14 GMT</pubDate>
      <guid>http://forums.xilinx.com/t5/PLD-Blog/The-Programmable-Imperative/ba-p/37849</guid>
      <dc:creator>austin.lesea</dc:creator>
      <dc:date>2009-05-08T22:31:14Z</dc:date>
    </item>
  </channel>
</rss>

