<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Estrin Machines</title>
	<atom:link href="http://estrinmachines.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://estrinmachines.wordpress.com</link>
	<description>Programming Reconfigurable Computers</description>
	<lastBuildDate>Sun, 09 Mar 2008 23:47:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='estrinmachines.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Estrin Machines</title>
		<link>http://estrinmachines.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://estrinmachines.wordpress.com/osd.xml" title="Estrin Machines" />
	<atom:link rel='hub' href='http://estrinmachines.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Writing Portable Applications that Dynamically Bind at Run Time to Reconfigurable Hardware</title>
		<link>http://estrinmachines.wordpress.com/2008/03/06/writing-portable-applications-that-dynamically-bind-at-run-time-to-reconfigurable-hardware/</link>
		<comments>http://estrinmachines.wordpress.com/2008/03/06/writing-portable-applications-that-dynamically-bind-at-run-time-to-reconfigurable-hardware/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 09:32:53 +0000</pubDate>
		<dc:creator>Robin</dc:creator>
				<category><![CDATA[application-level]]></category>
		<category><![CDATA[portability]]></category>
		<category><![CDATA[reconfigurable computing]]></category>
		<category><![CDATA[runtime API standardisation]]></category>

		<guid isPermaLink="false">http://estrinmachines.wordpress.com/?p=9</guid>
		<description><![CDATA[This paper from FCCM 2007 is written by Nicholas Moore (Northeastern), Albert Conti (Northeastern, now with Mitre Corporation), Miriam Leeser (Northeastern) and Laurie Smith King (Holy Cross). It discusses Vforce (VSIPL++ FOr Reconfigurable Computing). Vforce is designed to allow the same application code to run on different reconfigurable computing platforms, and to permit the runtime [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=estrinmachines.wordpress.com&amp;blog=2984941&amp;post=9&amp;subd=estrinmachines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="left"><a href="http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/4297231/4297232/04297259.pdf?arnumber=4297259">This paper</a> from <a href="http://www.fccm.org/FCCM07.php">FCCM 2007</a> is written by Nicholas Moore (<a href="http://www.ece.neu.edu/groups/rcl/">Northeastern</a>), Albert Conti (<a href="http://www.ece.neu.edu/groups/rcl/">Northeastern</a>, now with <a href="http://www.mitre.org/">Mitre Corporation</a>), <a href="http://www.ece.neu.edu/groups/rcl/MEL/index.html">Miriam Leeser</a> (<a href="http://www.ece.neu.edu/groups/rcl/">Northeastern</a>) and <a href="http://mathcs.holycross.edu/~la/homepage.html">Laurie Smith King</a> (<a href="http://www.holycross.edu">Holy Cross</a>).</p>
<p align="left">It discusses Vforce (<b>V</b>SIPL++ <b>FO</b>r <b>R</b>econfigurable <b>C</b>omputing). Vforce is designed to allow the same application code to run on different reconfigurable computing platforms, and to permit the runtime binding of applications to hardware.  The authors believe that application-level  code needs to be separated from platform-specific code, so that no hardware-specific  code is required in the application code. Vforce is based on <a href="http://www.vsipl.org/">VSIPL++</a>, the Vector, Signal and Image Processing Library, which provides an object-oriented library of commonly used signal and image processing algorithms via a C++ API. VSIPL++ is a standard <a href="http://en.wikipedia.org/wiki/API">API</a> designed to provide application-level portability between microprocessor-based platforms. The diagram below shows the abstraction layers of Vforce.</p>
<p><a href="http://estrinmachines.files.wordpress.com/2008/03/vforce1.png" title="vforce1.png"></a></p>
<div style="text-align:center;"><a href="http://estrinmachines.files.wordpress.com/2008/03/vforce1.png" title="vforce1.png"><img src="http://estrinmachines.files.wordpress.com/2008/03/vforce1.png?w=450" alt="vforce1.png" /></a></div>
<p>Under the VSIPL++ layer, we can see the software stack that supports the VSIPL++ software API. Some implementations are built on an ANSI C VSIPL implementation, which is in turn built on an implementation of the standard C library <a href="http://en.wikipedia.org/wiki/Libc">libc</a> (and other standard libraries). In this case the libc implementation seems to be optimised for the <a href="http://en.wikipedia.org/wiki/Powerpc">PowerPC</a> architecture. VSIPL++ may also sit atop libraries such as Mercury&#8217;s Scientific Algorithm Library (<a href="http://www.mc.com/microsites/cell/ProductDetails.aspx?id=2836">SAL</a>). Vforce is above the VSIPL++ stack, but it also leverages a separate special purpose processor (SPP) stack. An SPP in this case is an FPGA, though it could be taken to mean any <i>exotic </i>processing technology. The FPGA-oriented SPP stack would normally consist of the RC platform vendor&#8217;s own API for accessing the hardware. To achieve their goal of portability and runtime binding, the authors have further divided up the SPP stack as shown below:</p>
<p><a href="http://estrinmachines.files.wordpress.com/2008/03/vforce2.png" title="vforce2.png"></a></p>
<div style="text-align:center;"><a href="http://estrinmachines.files.wordpress.com/2008/03/vforce2.png" title="vforce2.png"><img src="http://estrinmachines.files.wordpress.com/2008/03/vforce2.png?w=450" alt="vforce2.png" /></a></div>
<p>Depending on the availability of hardware, Vforce implemented functions may either run in software (as Vforce or as VSIPL++ functions) or in hardware. For hardware implementations, the authors have implemented an Internal Programming Interface (IPI), hidden from the end user. This allows them to use a single standard interface that is translated to the underlying vendor APIs for different RC hardware. The application code is portable because it only contains calls to a generic hardware object. The dynamically linked shared object library (DLSO) holds platform-specific API code. Hardware implementations of functions are provided in a processing kernel library for each hardware platform. The RTRM is the run time resource manager, and it hides hardware-specific information, manages hardware resources and binds application tasks to physical hardware. The RTRM also arbitrates when multiple Vforce applications run in parallel.</p>
<p>Users are likely to wish to accelerate functions at a coarser level than the single VSIPL++ function level, to avoid the repeated initialisation and data transfer costs that come with the chaining of calls to VSIPL++ functions.</p>
<p>A nice feature is that Vforce processing objects catch exceptions coming from the hardware and invoke the software version, so that application code doesn&#8217;t need to catch hardware errors.</p>
<p>To add support for more platforms, developers need an RTRM that will run on their RC&#8217;s operating system (there are <a href="http://en.wikipedia.org/wiki/POSIX">POSIX</a> and <a href="http://www.mc.com/products/productdetail.aspx?id=2820">MCOE</a> versions at present). They will also need a new hardware DLSO for ther API that communicates with the FPGA-based element of the platform. A library of kernel bitstreams must also be produced for that specific platform.</p>
<p>The authors acknowledge two limitations of Vforce. One is that the overhead of Vforce adds to the computation time. However this overhead is neglible in comparison to a bitstream load, and Vforce can in many cases avoid unnecessary bitstream loads. The second limitation is the reliance on a pre-built library of hardware implementations and processing objects.</p>
<p>In the paper are two example applications. One is a 1D FFT implemented on a <a href="http://www.cray.com/downloads/Cray_XD1_Datasheet.pdf">Cray XD1</a>. The other is an <a href="http://en.wikipedia.org/wiki/Adaptive_beamformer">adaptive beamforming</a> application implemented on a Mercury 6U VME system.</p>
<p>The FFT implementation was limited by data transfer times and communication latencies, and did not outperform the software (for both the native Cray API and Vforce).  The results indicated that Vforce adds very little overhead compared to the native API, while providing ease of programming.</p>
<p>The beamforming application, where computation was partitioned between the host microprocessor and the FPGA compute node showed speedup of between 2× and 200×, depending on the configurations of the application. Hardware processing time was again dominated by data transfer.</p>
<p>The authors stated they were implementing the same beamforming application on the Cray XD1 to illustrate portability. The authors also intend to tackle a wider range of RC platforms and applications, and to port existing VSIPL++ applications to Vforce.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/estrinmachines.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/estrinmachines.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/estrinmachines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/estrinmachines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/estrinmachines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/estrinmachines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/estrinmachines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/estrinmachines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/estrinmachines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/estrinmachines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/estrinmachines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/estrinmachines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/estrinmachines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/estrinmachines.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/estrinmachines.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/estrinmachines.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=estrinmachines.wordpress.com&amp;blog=2984941&amp;post=9&amp;subd=estrinmachines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://estrinmachines.wordpress.com/2008/03/06/writing-portable-applications-that-dynamically-bind-at-run-time-to-reconfigurable-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506240fa1ff13af9b751c91b3754a025?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robin</media:title>
		</media:content>

		<media:content url="http://estrinmachines.files.wordpress.com/2008/03/vforce1.png" medium="image">
			<media:title type="html">vforce1.png</media:title>
		</media:content>

		<media:content url="http://estrinmachines.files.wordpress.com/2008/03/vforce2.png" medium="image">
			<media:title type="html">vforce2.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Achieving Programming Model Abstractions for Reconfigurable Computing</title>
		<link>http://estrinmachines.wordpress.com/2008/03/05/achieving-programming-model-abstractions-for-reconfigurable-computing/</link>
		<comments>http://estrinmachines.wordpress.com/2008/03/05/achieving-programming-model-abstractions-for-reconfigurable-computing/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 13:40:06 +0000</pubDate>
		<dc:creator>Robin</dc:creator>
				<category><![CDATA[high-level languages]]></category>
		<category><![CDATA[reconfigurable computing]]></category>
		<category><![CDATA[system-level design]]></category>

		<guid isPermaLink="false">http://estrinmachines.wordpress.com/?p=7</guid>
		<description><![CDATA[There are interesting ideas in this paper from David Andrews (Kansas), Ron Sass (UNC Charlotte), Erik Anderson (ISI USC), Jason Agron, Wesley Peck, Jim Stevens, Fabrice Baijot and Ed Komp (all Kansas). The authors advocate managing the co-operation of software and hardware in reconfigurable computers by having asynchronous software and hardware threads that interact as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=estrinmachines.wordpress.com&amp;blog=2984941&amp;post=7&amp;subd=estrinmachines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There are interesting ideas in <a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4407532">this paper</a> from <a href="http://www.ittc.ku.edu/~dandrews/">David Andrews</a> (<a href="http://www.ittc.ku.edu/index.phtml">Kansas</a>), <a href="http://www.ronsass.net/">Ron Sass</a> (<a href="http://www.ece.uncc.edu/">UNC Charlotte</a>), Erik Anderson (<a href="http://www.isi.edu/">ISI USC</a>), <a href="http://www.ittc.ku.edu/~jagron/">Jason Agron</a>, <a href="http://wesleypeck.org/">Wesley Peck</a>, Jim Stevens, Fabrice Baijot and Ed Komp (all <a href="http://www.ittc.ku.edu/index.phtml">Kansas</a>).</p>
<p>The authors advocate managing the co-operation of software and hardware in reconfigurable computers by having asynchronous software and hardware threads that interact as peers, with shared global memory. <a href="http://en.wikipedia.org/wiki/Pthreads">POSIX threads </a>(pthreads) are the basis for their work, to which they have hardware threads and named the result hthreads. The authors are looking to take operating systems and middleware layer abstraction across the CPU/FPGA boundary and into the FPGA itself. Hardware threads can be created either <i>by hand</i> in HDL, or via the authors own C-to-VHDL tool. In this paper of January 2008, the system has been implemented on Virtex-II Pro FPGAs. At present the software threads are implemented on the PowerPC core that is on the V-II Pro die, so the entire system is on a single chip (off-chip memories notwithstanding). Future incarnations will accomodate multiple cores, and soft cores such as Microblaze for software threads. The diagram below shows an example of how the system operates in practice.</p>
<p><a href="http://estrinmachines.files.wordpress.com/2008/03/hthreads.png" title="hthreads.png"></a></p>
<div style="text-align:center;"><a href="http://estrinmachines.files.wordpress.com/2008/03/hthreads.png" title="hthreads.png"><img src="http://estrinmachines.files.wordpress.com/2008/03/hthreads.png?w=450" alt="hthreads.png" /></a></div>
<p>The PowerPC core is configured for the <a href="http://www.xilinx.com/ipcenter/processor_central/coreconnect/coreconnect_plb.htm">processor local bus</a> (PLB) , and all the hthread cores and hardware threads are on the <a href="http://www.xilinx.com/ipcenter/processor_central/coreconnect/coreconnect_opb.htm">on-chip peripheral bus</a> (OPB).</p>
<p>From the introduction comes this section:</p>
<p><i>[Current RC design approaches] treat the FPGA as a coprocessor on which low-level instruction- and data-level parallelism can be mapped as an extension of the execution stream running on the CPU. These approaches are concerning for the reconfigurable computing community, as lessons learned from historical parallel processing efforts clearly indicate the need to provide portable parallel programming models composed of unaltered high-level languages, operating systems, and middleware libraries]  </i></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/estrinmachines.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/estrinmachines.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/estrinmachines.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/estrinmachines.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/estrinmachines.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/estrinmachines.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/estrinmachines.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/estrinmachines.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/estrinmachines.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/estrinmachines.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/estrinmachines.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/estrinmachines.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/estrinmachines.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/estrinmachines.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/estrinmachines.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/estrinmachines.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=estrinmachines.wordpress.com&amp;blog=2984941&amp;post=7&amp;subd=estrinmachines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://estrinmachines.wordpress.com/2008/03/05/achieving-programming-model-abstractions-for-reconfigurable-computing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506240fa1ff13af9b751c91b3754a025?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robin</media:title>
		</media:content>

		<media:content url="http://estrinmachines.files.wordpress.com/2008/03/hthreads.png" medium="image">
			<media:title type="html">hthreads.png</media:title>
		</media:content>
	</item>
		<item>
		<title>When FPGAs are better at floating-point than microprocessors</title>
		<link>http://estrinmachines.wordpress.com/2008/03/03/when-fpgas-are-better-at-floating-point-than-microprocessors/</link>
		<comments>http://estrinmachines.wordpress.com/2008/03/03/when-fpgas-are-better-at-floating-point-than-microprocessors/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 17:09:56 +0000</pubDate>
		<dc:creator>Robin</dc:creator>
				<category><![CDATA[floating-point]]></category>
		<category><![CDATA[low-level cores]]></category>
		<category><![CDATA[reconfigurable computing]]></category>

		<guid isPermaLink="false">http://estrinmachines.wordpress.com/?p=5</guid>
		<description><![CDATA[There are a lot of very interesting points in a paper I&#8217;ve just been reading, When FPGAs are better at floating-point than microprocessors. It&#8217;s by Florent de Dinechin and Jérémie Detrey of the Arénaire project in Lyon, France, as well as Octavian Cret and Radu Tudoran of the Technical University of Cluj-Napoca, in Romania. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=estrinmachines.wordpress.com&amp;blog=2984941&amp;post=5&amp;subd=estrinmachines&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There are a lot of very interesting points in a paper I&#8217;ve just been reading, <a href="http://prunel.ccsd.cnrs.fr/docs/00/17/46/27/PDF/DinechinDetreyCret.pdf">When FPGAs are better at floating-point than microprocessors</a>. It&#8217;s by Florent de Dinechin and Jérémie Detrey of the <a href="http://www.ens-lyon.fr/LIP/Arenaire/">Arénaire project</a> in Lyon, France, as well as Octavian Cret and Radu Tudoran of the Technical University of Cluj-Napoca, in Romania. The Arénaire project is a large-scale, long-term project looking at the implementation of computer arithmetic. The project deals both with conventional implementation environments, such as microprocessor-based computers, as well as reconfigurable computing (i.e. FPGA) environments. A key figure in Arénaire has been Jean-Michel Müller, who literally <a href="http://www.amazon.co.uk/Elementary-Functions-Implementation-Jean-Michel-Muller/dp/0817643729/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1204560699&amp;sr=1-1">wrote the book</a> on Elementary Function computations. For those that are looking to implement floating-point elementary functions on FPGAs, such as the logarithm and exponential, there is open-source VHDL on the Arénaire project website. It gives compact, accurately-rounded, fully-pipelined cores that are good to go on any modern FPGA.</p>
<p>Anyway, on to some interesting things I picked out from the paper:</p>
<p>The main point made is that FPGAs have more of an advantage at implementing floating-point calculations over microprocessors than comparisons of + &amp; × performance at single and double precision would suggest. We need to ask how best to use FPGAs for the implementation of floating-point algorithms. FPGAs may have significant advantages over microprocessors in implementing algorithms that require less or more precision than is provided by microprocessors. The authors discuss an inductivity calculation as an example application. It consists in computing the inductance of a set of coils used for the magnetic stimulation of the nervous system.They work through how one would approach the implementation of this algorithm, aiming to pipeline as much of it as possible. They advocate thinking about the precision that is necessary to the end user. In this case only a few digits of final precision are required. One needs knowledge of an algorithm&#8217;s end precision requirements, and awareness of a number of techniques and rules of thumb for managing precision within an algorithm&#8217;s calculations. With this knowledge you can get the same or better precision as you would get with double-precision implementations, but with lower area and latency costs.</p>
<p>The authors describe floating-point accumulators that are built primarily from wide fixed-point additions that occur within a single clock cycle (in the case of the smaller sized accumulators). It makes the implementation of pipelined accumulate units less costly in terms of latency and area. Furthermore, it promises greater precision than is currently possible using standard floating-point addition units.</p>
<p>The authors discuss the advantages of merging operators to create compound operators such as:</p>
<p><a href="http://estrinmachines.files.wordpress.com/2008/03/eqn2964.png" title="eqn2964.png"></a></p>
<div style="text-align:center;"><a href="http://estrinmachines.files.wordpress.com/2008/03/eqn2964.png" title="eqn2964.png"><img src="http://estrinmachines.files.wordpress.com/2008/03/eqn2964.png?w=450" alt="eqn2964.png" /></a></div>
<p>The best area and performance results obviously come when the internal precision and general architecture of the compound operator is custom designed. Less obvious was what happened if one naively instantiated the operators +,√ and × in HDL creating a single operator and presenting everything to the synthesiser in HDL  <i>(</i><u><i>not</i></u><i> </i>in pre-synthesised netlists such as NGCs or EDIFs). It turns out the logic synthesiser is smart enough to signficantly improve the resource consumption.</p>
<p>Some other interesting points made by the authors:</p>
<ul>
<li>They find it unlikely that we will soon be able to fully automate floating-to-fixed  point conversions when implementing algorithms on FPGAs.</li>
<li>They briefly discuss a method for obtaining exact results for dot-product, and related matrix and vector operations. They invite suggestions of applications that require such precision</li>
<li>The authors are investigating generators for producing HDL of elementary function cores</li>
<li>The authors do not advocate implementing hard double-precision arithmetic units on FPGA dies, seeing more value in the implementation of cascadable shifter/normaliser units. (See <a href="http://ee.washington.edu/faculty/hauck/publications/FPunits.pdf">Underwood et al&#8217;s work</a> for more background on this)</li>
</ul>
<p>P.S. I used <a href="http://rogercortesi.com/eqn/index.php?filename=tempimagedir%2Feqn2964.png&amp;latextext=%5Csqrt%7Ba%5E2%2Bb%5E2%2Bc%5E2%7D&amp;outtype=png&amp;bgcolor=white&amp;txcolor=black&amp;res=150&amp;antialias=1">Roger&#8217;s Online Equation Editor</a>  to format the equation in this post, it&#8217;s a nice useful website</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/estrinmachines.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/estrinmachines.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/estrinmachines.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/estrinmachines.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/estrinmachines.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/estrinmachines.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/estrinmachines.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/estrinmachines.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/estrinmachines.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/estrinmachines.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/estrinmachines.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/estrinmachines.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/estrinmachines.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/estrinmachines.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/estrinmachines.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/estrinmachines.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=estrinmachines.wordpress.com&amp;blog=2984941&amp;post=5&amp;subd=estrinmachines&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://estrinmachines.wordpress.com/2008/03/03/when-fpgas-are-better-at-floating-point-than-microprocessors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/506240fa1ff13af9b751c91b3754a025?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Robin</media:title>
		</media:content>

		<media:content url="http://estrinmachines.files.wordpress.com/2008/03/eqn2964.png" medium="image">
			<media:title type="html">eqn2964.png</media:title>
		</media:content>
	</item>
	</channel>
</rss>
