<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>fpga &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/fpga/</link>
	<description>Feed of posts on WordPress.com tagged "fpga"</description>
	<pubDate>Tue, 01 Dec 2009 20:16:26 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Credit Suisse using FPGAs]]></title>
<link>http://rndness.com/2009/11/30/credit-suisse-using-fpga/</link>
<pubDate>Mon, 30 Nov 2009 19:15:54 +0000</pubDate>
<dc:creator>stuckat1</dc:creator>
<guid>http://rndness.com/2009/11/30/credit-suisse-using-fpga/</guid>
<description><![CDATA[According to Wall Street &amp; Technology article, Credit Suisse is using Celoxica to provide hardwa]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://rndness.wordpress.com/files/2009/11/celoxica.jpg"><img class="aligncenter size-full wp-image-109" title="celoxica" src="http://rndness.wordpress.com/files/2009/11/celoxica.jpg" alt="" width="278" height="100" /></a></p>
<p>According to <a href="http://wallstreetandtech.com/data-latency/showArticle.jhtml?articleID=221901374&#38;cid=nl_wallstreettech_daily">Wall Street &#38; Technology</a> article, Credit Suisse is using Celoxica to provide hardware accelerated market and trading technology for Credit&#8217;s next-gen trading platform.  By &#8220;hardware&#8221; they obviously mean using FPGA technology.  For years, Celoxica has been trying to make in roads into financial services by offering hardware and software to build FPGA applications.  Unfortunately, the long development times for synthesized hardware doesn&#8217;t mesh well with the short lead times of I-banks.  I believe Celoxica has changed their strategy to provide completed &#8220;turn-key&#8221; like solutions.  This makes a lot of sense.</p>
<p><!--more-->A few years ago, I attended a &#8220;High Performance Wall St&#8221; conference where CSFB hosted a small talk with Celoxica on using FPGAs in day to day trading.  Although CSFB wouldn&#8217;t even acknowledge they were using Celoxica on their trading floor, it is obvious that a relationship did exist, FPGAs were used all which eventually led up to this deal today.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Join me at the software defined radio conference in D.C. next week]]></title>
<link>http://kamrans.wordpress.com/2009/11/27/software-defined-radio-conferenc-2009/</link>
<pubDate>Fri, 27 Nov 2009 20:01:27 +0000</pubDate>
<dc:creator>Kamran</dc:creator>
<guid>http://kamrans.wordpress.com/2009/11/27/software-defined-radio-conferenc-2009/</guid>
<description><![CDATA[Next week I&#8217;ll be attending the software defined radio conference in Washington D.C. For those]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Next week I&#8217;ll be attending the <a href="http://sdrforum.org/SDR09/index.html" target="_blank">software defined radio conference</a> in Washington D.C. For those of you familiar with <a href="http://www.ni.com/virtualinstrumentation/" target="_blank">Virtual Instrumentation</a> you know at NI we&#8217;ve been working for many years on software defined instruments that take advantage of PC based technologies. With a simplistic view of <a href="http://en.wikipedia.org/wiki/Software-defined_radio" target="_blank">SDRs</a> it isn&#8217;t difficult to draw a parallel between virtual instrumentation and SDRs. In the case of SDRs some of the communications system components traditionally implemented in hardware are defined in software (on a PC or embedded devices). With some of NI&#8217;s measurement class hardware and an IF transceiver you can <a href="http://sine.ni.com/nips/cds/view/p/lang/en/nid/207092" target="_blank">develop an SDR</a> and use LabVIEW FPGA to program the FPGA on the IF transceiver.</p>
<p>My goal at the conference is to learn more about the needs of people developing SDRs as they might apply to using LabVIEW and LabVIEW FPGA and also NI&#8217;s FPGA based hardware. If you&#8217;re going to be at the SDR conference next week and would like to get together with ideas on how to apply LabVIEW to SDR development or how to make use of FPGA based COTS solutions from NI for SDRs let me know. You can find me on <a href="http://twitter.com/kamrans" target="_blank">twitter @kamrans</a> or just e-mail me directly at <em>kamran dot shah at ni dot com</em></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Intel StrataFlash Programmer]]></title>
<link>http://benoztalay.wordpress.com/2009/11/27/intel-strataflash-programmer/</link>
<pubDate>Fri, 27 Nov 2009 08:03:41 +0000</pubDate>
<dc:creator>lilozzy</dc:creator>
<guid>http://benoztalay.wordpress.com/2009/11/27/intel-strataflash-programmer/</guid>
<description><![CDATA[I finished the programmer for the on-board Intel StrataFlash on my FPGA development board today. It ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I finished the programmer for the on-board Intel StrataFlash on my FPGA development board today. It was much more of a hassle than I thought it was going to be. Digilent, maunfacturer my FPGA board, had done a fantastic job on their user manuals on every topic except for the memory resources, which was disappointing. I had to dig my way through a couple datasheets before I got all the information I needed to operate the Flash device.</p>
<p><!--more-->At first, I had thought that all I would need is a stand-alone device to program the Flash, but the protocols ended up being complex enough that I used Test CPU 1. I modeled the system after my LCD controller. There are four main components: Test CPU 1, ROM for the data to be stored, a counter that&#8217;s used to generate the addresses for the Flash, and a little component that adds an offset to the counter&#8217;s output so the system can be easily configured to place data anywhere in the Flash array.</p>
<p>Because it takes over 260 us for the Flash to write data into the array, the chip has a status signal that can be monitored to detect when it&#8217;s done programming the Flash. Now, the Test CPU 1 didn&#8217;t have input capabilities when I started, but I did add them in. Luckily, it was rather easy. I just added another opcode to the control block, a register between the inputs and the rest of the processor, and four new pins that act as individual inputs. The instruction takes four fields: the opcode, if it&#8217;s testing for a &#8216;1&#8242; or &#8216;0&#8242;, the pin number, and an address to jump to should the condition be fulfilled. For example, if the instruction is testing pin 2 to be &#8216;1&#8242;, it will jump to the address specified if pin 2 is &#8216;1&#8242;.</p>
<p>While perusing the datasheets, manual for my development board, and schematics of my development board, I got confused in several places. First of all, there are two inputs to the StrataFlash that I don&#8217;t have access to on my development board. Second, the StrataFlash is automatically configured for two-byte word writing (as opposed to byte-sized), so there were several signals omitted because of that. Of those signals, address bit 0 was tied to ground. This confounded me because the manual told me that it had a 24-bit address bus, when I really only have access to 23 bits!</p>
<p>The other major thing that tripped me up was the protocol for reading and writing data. I have access to four signals that are used to place the StrataFlash in a variety of bus modes (the data bus is bidirectional). The signals are: write enable, output enable, chip enable, and reset/power down. The fourth is a signal used to place the chip in a low power state, or configure it for power down. But, because the StrataFlash has an on-board CPU,  it needs a command sent to it before every write to tell it what to do. The steps to write two bytes to the Flash array as follows:</p>
<ol>
<li>Set up signals: WE = &#8216;0&#8242;, OE = &#8216;1&#8242;, CE = &#8216;0&#8242;, RP = &#8216;1&#8242;</li>
<li>Send write command (0&#215;40): address bus is address of data to be written, data bus is ox40, toggle WE</li>
<li>Send data and address, toggle WE</li>
<li>Wait for the status signal to return to &#8216;1&#8242;</li>
</ol>
<p>Because I&#8217;m running Test CPU 1 at 1 MHz for this application, I didn&#8217;t need to worry about timing much because the StrataFlash is actually running faster than the CPU in this case. The data ROM holds the write command alternately with the data to be written. Another thing to note is that, because Test CPU 1 doesn&#8217;t have any data outputs, I had to cheat a bit and directly output the contents of register 1 to address the data ROM. Because I&#8217;m using register 1 to address the data ROM, I couldn&#8217;t use it to address the Flash because it changes addresses for both the command and data writes, while the Flash requires that they stay the same for both writes. That&#8217;s why I have a separate counter handle the Flash&#8217;s address, which is controlled by a couple of the CPU&#8217;s outputs.</p>
<p>Here&#8217;s a component-level schematic of the system:</p>
<p><img class="alignnone" src="http://www.gliffy.com/pubdoc/1909413/M.jpg" alt="" width="419" height="308" /></p>
<p>I have a few design concerns with the OZ-3 regarding this Flash memory. First and foremost: its data bus is sixteen bits wide, but my instructions are thirty-two bits wide. Fetching the instructions in two cycles isn&#8217;t a big deal in terms of actually doing it, but it is a big deal in terms of the OZ-3&#8217;s potential CPI. It&#8217;s close to one if the instructions are fetched in one cycle, but rises to two if they&#8217;re fetched in two cycles, because the other stages of the processor can&#8217;t do anything while the second half of the instruction is being fetched. That halves the amount of work the processor can do in a second, which I simply won&#8217;t accept.</p>
<p>There are a few solutions that I&#8217;ve come up with to solve this problem: get another flash chip somehow, expand the instruction fetch stage to two stages and clock them twice as fast, or completely re-do my ISA to fit into sixteen bits.</p>
<p>The first solution is ideal for performance. Digilent does make a peripheral device that is another Flash chip, but it&#8217;s a serial flash and isn&#8217;t Intel StrataFlash. Conceivably, I could make my own peripheral connector using a 40-pin expansion port on my development board so that I can still have a parallel interface with Intel StrataFlash. This may be too time-consuming, but it would let me do the most with the OZ-3.</p>
<p>The second solution is probably going to be the one I go with, because it would be easiest and still let me clock the OZ-3 pretty fast, while still keeping a close-to-one CPI. The StrataFlash chip that is on the board supports 110-ns reads, so if you double that, that would be how fast I can clock the OZ-3 overall. 220 ns per cycle translates to 4.5 MHz, which is reasonable.</p>
<p>The last solution is one that I simply do not want to do. Needless to say, stuffing the ISA into sixteen bits would change everything. Microarchitecture, capabilities, address width. I would essentially have a whole new processor, which I don&#8217;t want.</p>
<p>With the Flash programmer complete, I&#8217;m going to continue with the OZ-3. The next step is sorting out the instruction fetch stage(s).</p>
<p>Ben Oztalay</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[DS goes full size - pockets everywhere rally in protest]]></title>
<link>http://hackaday.com/2009/11/26/ds-goes-full-size-pockets-everywhere-rally-in-protest/</link>
<pubDate>Thu, 26 Nov 2009 19:48:52 +0000</pubDate>
<dc:creator>Mike Szczys</dc:creator>
<guid>http://hackaday.com/2009/11/26/ds-goes-full-size-pockets-everywhere-rally-in-protest/</guid>
<description><![CDATA[It&#8217;s hard to believe we missed this one from a couple of years back but we&#8217;re thankful t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone size-full wp-image-18743" title="full-size-DSi" src="http://hackadaycom.wordpress.com/files/2009/11/full-size-dsi1.jpg" alt="" width="470" height="389" /></p>
<p>It&#8217;s hard to believe we missed this one from a couple of years back but we&#8217;re thankful that reader [Christian] tipped us off about it. This a <a href="http://home.comcast.net/~olimar/DS/jumbotron/">Nintendo DS with two tablet pc screens</a> being used as an external display. He&#8217;s using an FPGA but not to <a href="http://hackaday.com/2009/10/17/nes-processor-cloned-on-a-fpga/">emulate the processor</a>. It is translating the video data from the DS board into usable signal for the larger LCD screens. In the video after the break you can see that pen input has been implemented, with the FPGA sending location data back to the DS.</p>
<p>[Neal], the creator, priced the project out at around $580. It&#8217;s worth a lot more considering the know-how needed to get the video scaling and pen input right using the FPGA. It won&#8217;t fit in your pocket, but it doesn&#8217;t have a case either so it&#8217;s not going anywhere anytime soon.</p>
<p><!--more--></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/qAI7RRbIn5E&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/qAI7RRbIn5E&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Altera's NIOS II soft-processor is now FREE?]]></title>
<link>http://prosynaptech.wordpress.com/2009/11/25/alteras-nios-ii-soft-processor-is-now-free/</link>
<pubDate>Wed, 25 Nov 2009 12:05:07 +0000</pubDate>
<dc:creator>kdock</dc:creator>
<guid>http://prosynaptech.wordpress.com/2009/11/25/alteras-nios-ii-soft-processor-is-now-free/</guid>
<description><![CDATA[Altera&#8217;s latest version of Quartus II now enables users to implement the economy version of th]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Altera&#8217;s latest version of Quartus II now enables users to implement the economy version of the Nios II processor without charge. That&#8217;s a great way for Altera to bring new customers to the Nios.  Let users learn and implement a design, then when (or if) they need added performance for a design they will likely just shell out the license fee. From then, it would be doubtful that they ever went back to the lower performing brother of the Nios family.</p>
<p>When you step back though, you realize that the standard and fast versions are serious RISC implementations while the economy version is not much better than processors we made in digital design courses in undergrad. (Of course, we didn&#8217;t have free compilers and debug tools to accompany them!)  Without hardware multiply (or divide) and 0.15 DMIPs per MHz, it seems unlikely that the economy processor would be used by anyone doing anything more than orchestrating the components on the Avalon bus. However, with Altera leaving support for custom instructions intact, this announcement may leave dangerous room for people looking to save money in these cost-conscious times.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[El más rápido de la City]]></title>
<link>http://mercadossinfronteras.wordpress.com/2009/11/23/el-mas-rapido-de-la-city/</link>
<pubDate>Mon, 23 Nov 2009 22:28:45 +0000</pubDate>
<dc:creator>javiersf</dc:creator>
<guid>http://mercadossinfronteras.wordpress.com/2009/11/23/el-mas-rapido-de-la-city/</guid>
<description><![CDATA[Si trabajas en el mundo de la banca, y te enseñan un pantallazo como este&#8230; &#8230; seguramente]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Si trabajas en el mundo de la banca, y te enseñan un pantallazo como este&#8230;</p>
<p><a href="http://mercadossinfronteras.wordpress.com/files/2009/11/19112009270.jpg"><img class="aligncenter size-medium wp-image-90" title="19112009270" src="http://mercadossinfronteras.wordpress.com/files/2009/11/19112009270.jpg?w=300" alt="" width="300" height="225" /></a></p>
<p>&#8230; seguramente no te dirá nada, por curiosidad te diré que lo que tienes ahí es una cosimulación de un modelo realizado con Simulink (<a href="http://www.mathworks.com" target="_blank">MathWorks</a>) y un simulador de código VHDL, comparando los resultados obtenidos con objeto de verificar la bondad de nuestro código. Una vez que los ingenieros comprueban que todo funciona correctamente reescriben ese código en un microprocesador de propósito espécifico llamado FPGA capaz de ejecutar instrucciones de código mucho más rápido que un micro convencional. Lo normal, es que este código se utilice en sistemas de visión artificial, radares, telecomunicaciones,&#8230;  Esto se podía ver el pasado Jueves 19 de Noviembre en el X-fext  en Madrid, una feria que organiza cada dos años <a href="http://www.xilinx.com" target="_blank">Xilinx</a> uno de los principales fabricantes de estos microprocesadores FPGA.</p>
<p>Recientemente publicamos un post sobre Algoritmic Tading en el que comentábamos que la ventaja entre unos traders y otros venía dada por microsegundos,  jústamente eso, lo que hace que una FPGA sea más rápido que un micro convencional, unos microsegundos y que se traducen en millones de Libras Esterlinas al final de un año y eso es precisamente lo que los más listos de la clase están haciendo ya en la City. Cogen sus modelos y los reescriben en código VHDL (código específico para FPGA&#8217;s), como si fuese código C, y de ahí lo reescriben en las FPGA&#8217;s y en lugar de ser el micro de un PC o servidor el que lanza las órdenes de compra/venta es una FPGA de Xilinx o Altera  la que se encarga de esto, mucho más rápido que su pariente lejano de Intel.</p>
<p>Una pena que ya no puedas pasarte por ahí, al final; como si de un mercadillo de barrio se tratara, terminaron recogiendo su tecnología y llevándose su conocimiento a otra parte. Una verdadera lástima, porque aquí más de uno te habría contado cómo hacerlo.  Quizás el tipo este de la foto sepa algo&#8230;</p>
<p><a href="http://mercadossinfronteras.wordpress.com/files/2009/11/19112009272.jpg"><img class="aligncenter size-medium wp-image-91" title="19112009272" src="http://mercadossinfronteras.wordpress.com/files/2009/11/19112009272.jpg?w=300" alt="" width="300" height="225" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Open source logic analyzer update]]></title>
<link>http://dangerousprototypes.com/2009/11/20/open-source-logic-analyzer-update/</link>
<pubDate>Fri, 20 Nov 2009 14:00:58 +0000</pubDate>
<dc:creator>Ian</dc:creator>
<guid>http://dangerousprototypes.com/2009/11/20/open-source-logic-analyzer-update/</guid>
<description><![CDATA[Development of the open source logic analyzer, first discussed here, has progressed rapidly in the f]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone size-full wp-image-2430" title="usbmcufpgalablockdiagra" src="http://wherelabs.wordpress.com/files/2009/11/usbmcufpgalablockdiagra.png" alt="" width="450" height="239" /></p>
<p>Development of the open source logic analyzer, <a href="http://dangerousprototypes.com/2009/09/28/open-source-logic-analyzer-clients/#comments">first discussed here</a>, has progressed rapidly <a href="http://whereisian.com/forum/index.php?board=23.0">in the forum</a>.</p>
<p>We&#8217;ve looked at <a href="http://whereisian.com/forum/index.php?topic=156.msg932#msg932">cost estimates</a>, Uwe made some excellent <a href="http://whereisian.com/forum/index.php?topic=156.msg945#msg945">block diagrams</a>, and Jack has already added <a href="http://whereisian.com/forum/index.php?topic=156.msg942#msg942">a basic layout</a> to his SVN.</p>
<p>Read our goals and specs after the break.</p>
<p><!--more-->Our goals, as <a href="http://whereisian.com/forum/index.php?topic=156.msg915#msg915">summarized by Jack</a>:</p>
<p>Primary goals:<br />
1) Logic Analyzer for $30-40 US dollars<br />
2) 70Mhz+ speeds<br />
3) 16-32 channels</p>
<p>Secondary goals:<br />
1) Add a Voltage Buffer<br />
2) Make it as DIY as possible.<br />
3) Make it as Open Source as possible.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Mitrionics lays an egg]]></title>
<link>http://rndness.com/2009/11/19/mitrionics-lays-an-egg/</link>
<pubDate>Thu, 19 Nov 2009 19:06:17 +0000</pubDate>
<dc:creator>stuckat1</dc:creator>
<guid>http://rndness.com/2009/11/19/mitrionics-lays-an-egg/</guid>
<description><![CDATA[&nbsp; According to an interview on HPCwire with Mitrionics Chief Science Officer, Mitrionics will s]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://rndness.wordpress.com/files/2009/11/mitrionics.jpg"><img class="aligncenter size-full wp-image-101" title="Mitrionics" src="http://rndness.wordpress.com/files/2009/11/mitrionics.jpg" alt="" width="160" height="156" /></a></p>
<p>&#160;</p>
<p>According to an <a href="http://www.hpcwire.com/specialfeatures/sc09/features/Mitrionics-Looks-Beyond-FPGAs-70372697.html?viewAll=y" target="_blank">interview</a> on HPCwire with Mitrionics Chief Science Officer, Mitrionics will start work on a new experimental compiler that will take code and target FPGA and multi-core CPUs and,  maybe someday, GPUs. In my book this is too little too late.</p>
<p><!--more-->I don&#8217;t think there is much future for FPGAs.  Mitrioncs has developed their own C language extensions, Mitrionic C.  Its not a bad language but its like writing device drivers so it knocks out a lot of general application developers.  Also, the compiler is quite expensive.   Now, the generated code: it  does not directly run on FPGA chips, it run on some virtual OS that sits on top of the FPGA.  What does this matter?  According to the numbers I heard from sales reps at SC&#8217;08, it costs tens of thousands of dollar per year to run the virtual OS.   Unless your customer is the CIA, I don&#8217;t think most customers like to spend huge amounts of cash on compilers, boards and annual licenses to run your programs.</p>
<p>The real problem is this.  All people have computers with multi-core processors.  As the years go by, the number of cores grows.  Most developers deal with companies like Microsoft and Intel.  They provide tools that are quite good for languages that most developers are familiar with.  BTW, Intel probably doesn&#8217;t make that much money on the tools as they exist to drive chip sales.  Also, companies who design  chips &#8211; like Intel or AMD &#8211; will probably promote technologies, like <a href="http://software.intel.com/en-us/intel-tbb/">Thread Building Block</a>, that will address multi-core without costing an arm and a leg.</p>
<p>Now, GPU companies have it easy.  Almost everyone has a GPU.  If you don&#8217;t have one you can buy one for $100 on Newegg.   For free, developers can work on OpenCL, Brook++ or CUDA.  These languages are backed by much larger companies &#8211; Apple, AMD, NVIDIA &#8211; compared to Mitrionics.  These technologies will be around for years.</p>
<p>Mitrionics has to enter this competitive market and say, &#8220;I can deliver a better compiler that understands your products, CPU and GPU, better than you. I will also provide these tools at a reasonable price and disseminate knowledge on our technology effectively as to increase adoption.&#8221;  Good luck!</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[AVR8 virtual processor on FPGA]]></title>
<link>http://hackaday.com/2009/11/19/avr8-virtual-processor-on-fpga/</link>
<pubDate>Thu, 19 Nov 2009 17:47:44 +0000</pubDate>
<dc:creator>Mike Szczys</dc:creator>
<guid>http://hackaday.com/2009/11/19/avr8-virtual-processor-on-fpga/</guid>
<description><![CDATA[[Jack] wrote in to let us know about a project that creates a virtual microprocessor core based on t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone size-full wp-image-18538" title="butterfly-fpga-platform" src="http://hackadaycom.wordpress.com/files/2009/11/butterfly-fpga-platform.jpg" alt="" width="470" height="313" /></p>
<p>[Jack] wrote in to let us know about a <a href="http://www.gadgetfactory.net/gf/project/avr_core/">project that creates a virtual microprocessor core</a> based on the ATmega103 by using a Field-Programmable Gate Array. Great, we thought. Here&#8217;s another rather esoteric project like the <a href="http://hackaday.com/2009/10/17/nes-processor-cloned-on-a-fpga/">NES on a FPGA</a>, but what&#8217;s the motivation behind it? We asked [Jack] and he provided several scenarios where this is quite useful.</p>
<p>Implementing the AVR core allows code already written for the chips to be easily ported to an FPGA without a code rewrite. This way, if your needs outpaced the capabilities of the microcontroller long after the project has started, you can keep the code and move forward from that point with the added capabilities of the gate array. Having the core already implemented, you then only need to work with HDL for the parts of the project the AVR was unable to handle. He also makes the point that having an open source AVR core implementation provides a great tool for people already familiar with AVR to study when learning VHDL.</p>
<p>With products like the Butterfly that this project is based around, or the <a href="http://hackaday.com/2009/08/22/maple-beats-up-arduino-takes-its-shields/">Maple</a> we&#8217;ve seen in the past, <a href="http://hackaday.com/2008/12/11/how-to-programmable-logic-devices-cpld/">programmable logic</a> for the recreational hacker is starting to get a little easier.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Open source logic analyzer development]]></title>
<link>http://dangerousprototypes.com/2009/11/18/open-source-logic-analyzer-development/</link>
<pubDate>Wed, 18 Nov 2009 11:02:47 +0000</pubDate>
<dc:creator>Ian</dc:creator>
<guid>http://dangerousprototypes.com/2009/11/18/open-source-logic-analyzer-development/</guid>
<description><![CDATA[We&#8217;re really excited to be joined by Jack Gassett, developer of the Butterfly FPGA platform, t]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone size-full wp-image-1394" title="sump" src="http://wherelabs.wordpress.com/files/2009/09/sump.png" alt="" width="449" height="316" /></p>
<p>We&#8217;re really excited to be joined by Jack Gassett, developer of the <a href="http://gadgetfactory.net/gf/project/butterfly_main/">Butterfly FPGA platform</a>, to prototype an open source, high-speed, low-cost logic analyzer. This effort grew out of a bunch of great <a href="http://dangerousprototypes.com/2009/09/28/open-source-logic-analyzer-clients/#comments">comments</a> on a post about <a href="http://dangerousprototypes.com/2009/09/28/open-source-logic-analyzer-clients/">open source logic analyzer clients</a>.</p>
<p>Share your ideas for the logic analyzer in the new <a href="http://whereisian.com/forum/index.php?board=23.0">&#8216;SUMP PUMP&#8217; logic analyzer development form</a>. Jack has already posted a <a href="http://whereisian.com/forum/index.php?topic=155.0">power estimate</a> for the FPGA, and Ian has some thoughts on <a href="http://whereisian.com/forum/index.php?topic=156.0">interface design</a>. Maybe someone can suggest a name?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Arrow Delivers New Low-Cost Altera Development Board]]></title>
<link>http://prosynaptech.wordpress.com/2009/11/16/arrow-delivers-new-low-cost-altera-development-board/</link>
<pubDate>Mon, 16 Nov 2009 19:22:22 +0000</pubDate>
<dc:creator>kdock</dc:creator>
<guid>http://prosynaptech.wordpress.com/2009/11/16/arrow-delivers-new-low-cost-altera-development-board/</guid>
<description><![CDATA[Arrow and Altera have teamed up to deliver a cleverly-easy-to-use low-cost dev board. Just plug it i]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Arrow and Altera have teamed up to deliver a <a href="http://www.arrownac.com/offers/altera-corporation/bemicro/">cleverly-easy-to-use low-cost dev board</a>. Just plug it into your USB port and the built-in programmer for the Cyclone III FPGA allows you instantly begin prototyping your designs.</p>
<p>This seems like a great idea, hopefully this is well executed. We will have to wait to see the spec sheets, but the 80-pin PCB edge connector seems like an excellent way to provide the user with expansion capabilities while minimizing bulk, cost, and trace lengths.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Lattice Enhances FPGA Design Tool Suite]]></title>
<link>http://industryautomation.wordpress.com/2009/11/11/lattice-enhances-fpga-design-tool-suite/</link>
<pubDate>Wed, 11 Nov 2009 20:50:53 +0000</pubDate>
<dc:creator>industryautomation</dc:creator>
<guid>http://industryautomation.wordpress.com/2009/11/11/lattice-enhances-fpga-design-tool-suite/</guid>
<description><![CDATA[Lattice Enhances FPGA Design Tool Suite Lattice Semiconductor has announced Version 8.0 of its ISPLe]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div class="wp-caption alignright" style="width: 137px"><img title="Lattice Enhances FPGA Design Tool Suite" src="http://www.latticesemi.com/images/logo.gif" alt="Lattice Enhances FPGA Design Tool Suite" width="127" height="53" /><p class="wp-caption-text">Lattice Enhances FPGA Design Tool Suite</p></div>
<p><a href="http://www.latticesemi.com/"><strong>Lattice Semiconductor</strong></a> has announced Version 8.0 of its ISPLever FPGA design tool suite. This latest version includes enhancements for the design of high-speed double data rate (DDR) interfaces for the LatticeECP3 FPGA range. These enhancements include automatic interface code generation to increase design productivity and reduce coding errors, as well as enhanced timing analysis that provides more transparency to circuit timing details. The IPexpress tool now can generate the HDL for the most appropriate generic DDR interface based on user requirements such as direction, speed and bus width.</p>
<p>This HDL has been specifically designed and validated for high-performance, robust operation. For the ECP3 range, certain DDR interfaces can now be implemented with higher pin layout flexibility. Since an important part of robust DDR interface operation is a clean transfer between the IO and fabric clock domains, the Trace static timing analysis report has been enhanced to include a Timing Rule Check section that specifically analyses these clock domain transfers. This is done automatically and does not require users to define additional timing constraints.</p>
<p>The IPexpress tool can now also optionally generate the complete I/O-specific circuitry for proprietary DDR memory interfaces, allowing designers to focus solely on the controller logic of their DDR1 and DDR2 DRAM interfaces. ISPLever 8.0 software is able to complete large, congested designs 30 per cent faster than with the previous ISPLever 7.2 SP2 release. Lattice continues to enhance and expand support for the open source 32-bit RISC Latticemico32 ecosystem. The GNU compiler (GCC) has been upgraded to Version 4.3.0, which enables higher system performance and more flexible code deployment options.</p>
<p>The Tri-speed MAC IP can now be interconnected to higher throughput configurations. The component library includes a dual-port on-chip memory to enable high-speed information passing between Wishbone bus masters, while an enhanced SPI Flash controller allows both read and write access. The ISPLever design tool suite provides a complete set of tools for all design tasks, including project management, IP integration, design planning, place and route, in-system logic analysis and more. Version 8.0 of the ISPLever software adds support for Red Hat Enterprise Linux 5.3. Synopsys&#8217; Synplify Pro advanced FPGA synthesis is included for all operating systems supported and Aldec&#8217;s Active-HDL Lattice Edition simulator is included for Windows.</p>
<p>The ISPLever 8.0 software also comes bundled with the Latticemico32 system and ISPLever Classic, as well as with the PAC Designer tools that target mixed signal design. The ISPLever tool suite is provided on DVD for Windows, Unix or Linux platforms. In addition to the tool support for Lattice devices provided by the OEM versions of Synplify Pro and Active-HDL, which are included in the ISPLever tool suite, Lattice devices are also supported by the full versions of Synopsys Synplify Pro and Aldec Active-HDL. Mentor Graphics Modelsim SE and Precision RTL synthesis also support the latest Lattice devices, such as the LatticeECP3 range. The ISPLever 8.0 tool suite for Windows, Linux and Unix users is available immediately without charge for customers with active design tool maintenance contracts.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[NetFPGA]]></title>
<link>http://everythingisdata.wordpress.com/2009/11/10/netfpga/</link>
<pubDate>Tue, 10 Nov 2009 22:03:30 +0000</pubDate>
<dc:creator>Neil Conway</dc:creator>
<guid>http://everythingisdata.wordpress.com/2009/11/10/netfpga/</guid>
<description><![CDATA[One of the challenges faced in networking research and education is the difficulty of accurately rec]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>One of the challenges faced in networking research and education is the difficulty of accurately recreating a network environment. Production routers are implemented as hardware devices, but designing and fabricating a new hardware design for research or teaching is very expensive. Modular software routers like <a href="http://read.cs.ucla.edu/click/">Click</a> enable research and education on routing in software, but don&#8217;t allow experimentation with hardware and physical-layer issues.</p>
<p><a href="http://yuba.stanford.edu/~casado/watson-stanford.pdf">NetFPGA</a> aims to rectify this, by providing an easy-programmable hardware platform for network devices (NICs, switches, routers, etc.). Users interact with NetFPGA remotely, uploading programs that configure FPGAs on the device appropriately, and then observing the results. The initial version of NetFPGA didn&#8217;t have a CPU: instead, software to control the device runs on another computer, and accesses hardware registers remotely (using special Ethernet packets that are decoded by the NetFPGA board). The second version of NetFPGA has an optional hardware CPU.</p>
<h3>Discussion</h3>
<p>This seems like a pretty incontrovertible &#8220;good idea.&#8221; One potential question is how the performance of an FPGA-based router compares to that of realistic production hardware &#8212; I&#8217;d suspect that NetFPGA-routers occupy a middle ground between software-only routers (easy to develop, poor performance) and production routers (difficult to program and expensive to fabricate, but good performance).</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Please pass the dot plots]]></title>
<link>http://reconshmigurable.wordpress.com/2009/11/09/please-pass-the-dot-plots/</link>
<pubDate>Tue, 10 Nov 2009 00:26:34 +0000</pubDate>
<dc:creator>reconshmigurable</dc:creator>
<guid>http://reconshmigurable.wordpress.com/2009/11/09/please-pass-the-dot-plots/</guid>
<description><![CDATA[In the past year there has been an increased level of skepticism regarding FPGAs as computing device]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In the past year there has been an increased level of skepticism regarding FPGAs as computing devices. Large amounts of ink of been spilled regarding the emergence of GPUs as general-purpose computing platforms. <a href="http://www.nvidia.com/object/tesla_computing_solutions.html">NVIDIA&#8217;s Tesla</a> is racking up high benchmark scores in domains that include computational finance, scientific computing, geophysics and many others. </p>
<p>Nonetheless, there are certain domains in which FPGAs are clear winners over GPUs, particularly when power consumption is factored into the results. Two of these domains are crypto-analysis (code cracking) and bioinformatics.</p>
<p>The <a href="http://www.chrec.org/">CHREC group at the University of Florida</a>, and <a href="http://www.picocomputing.com">Pico Computing of Seattle</a>, have both recently announced benchmark results for DNA sequencing algorithms. Both groups used FPGA clusters to perform massively parallel computations and to accelerate the comparing and scoring of DNA base pairs by orders of magnitude.</p>
<p>The Florida group, led by Dr. Alan George, implemented a Smith-Waterman sequencing algorithm on a cluster of 96 Altera high-capacity FPGA devices, using PCI Express FPGA cards supplied by <a href="http://www.gidel.com/">GiDEL</a>.</p>
<p>The <a href="http://www.hcs.ufl.edu/lab/novog.php">Novo-G cluster</a> used for this project consists of 16 Linux servers, each housing a quad-FPGA accelerator board from GiDEL. According to the CHREC team, Novo-G&#8217;s performance was compared with an optimized software implementation executed on a single 64-bit, 2.4GHz AMD Opteron core. A speedup of 40,849X was observed. The implication is that a bioinformatics calculation that would take days to run on a single desktop workstation or server would require just seconds to complete using the Novo-G FPGA cluster.</p>
<p>In Seattle, Pico Computing implemented a similar algorithm that performs sequence analysis and scoring to create a 2-dimensional figure called a <a href="http://en.wikipedia.org/wiki/Dot_plot_%28bioinformatics%29">dot plot</a>. The Pico team reported that they had achieved <a href="http://bit.ly/17htKN">greater than 5000X acceleration</a> of their algorithm, using a cluster of 112 Xilinx Spartan-3 FPGA devices. The Pico cluster consumed less than 300 Watts of power, with all FPGAs fitting comfortably into a single 4U server chassis. </p>
<p>Perhaps more interesting about the Pico Computing project was how it was developed. Greg Edvenson of Pico used a single FPGA device during initial algorithm development. The FPGA was encapsulated in a Pico Computing E-17 card attached directly to Greg&#8217;s laptop computer via an ExpressCard interface. After the algorithm was tested and working as a single hardware process, Edvenson then scaled up and replicated the algorithm for deployment on the FPGA cluster. Greg used C-to-FPGA tools provided by Impulse Accelerated Technologies during the development of the algorithms, reducing the need to write low-level HDL code.</p>
<p>In summary, bioinformatics is one application domain in which FPGA acceleration offers clear and compelling benefits. And as well, there are multiple FPGA cluster approaches that can be taken to meet the needs of the application, and to meet the constraints of budget and power consumption.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Hot IP topics: past, present, future]]></title>
<link>http://ericschorn.com/2009/11/09/hot-ip/</link>
<pubDate>Mon, 09 Nov 2009 12:57:38 +0000</pubDate>
<dc:creator>eschorn</dc:creator>
<guid>http://ericschorn.com/2009/11/09/hot-ip/</guid>
<description><![CDATA[I have three quick items to touch upon this time around: an invitation for guest blog posts, a reque]]></description>
<content:encoded><![CDATA[I have three quick items to touch upon this time around: an invitation for guest blog posts, a reque]]></content:encoded>
</item>
<item>
<title><![CDATA[So you are thinking about designing a new product from scratch --]]></title>
<link>http://wmwmurray.wordpress.com/2009/11/08/so-you-are-thinking-about-designing-a-new-product-from-scratch/</link>
<pubDate>Sun, 08 Nov 2009 22:19:25 +0000</pubDate>
<dc:creator>wmwmurray</dc:creator>
<guid>http://wmwmurray.wordpress.com/2009/11/08/so-you-are-thinking-about-designing-a-new-product-from-scratch/</guid>
<description><![CDATA[So you are thinking about designing a new product from scratch.   For a first of type product of rel]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>So you are thinking about designing a new product from scratch.   For a first of type product of relatively high complexity, this can be a daunting thing to start.   Typically first of type complex products can take anywhere from 3 &#8211; 5 years + to go from back of a napkin idea, to a successful, reasonably bug-free product out in the market place.  Follow on upgrade versions can take over a year frequently.</p>
<p>It all starts with requirements &#8212; what does the thing absolutely have to do to succeed in the market for for the mission at hand.   Gathering and validating the requirements can be a lengthy process of 12-18 months+ for a first of kind system in a regulated industry.   Requirements are often so key that specialized tools are used to gather and keep track of requirements and to ensure that everything is checked off  as work progresses.  Often times a rapid prototype is done in parallel with the requirements to validate key concepts and ideas.<br />
During this time also key design tools and design software is identified and the contracts for their purchase and use are negotiated.  Large organizations may have much of this already done in-house</p>
<p>Next comes the Detailed Design &#8212; once the requirements are captured, validated, and gone over with the design team, the detailed design can proceed quite rapidly.  Often this may take less than a year.  (The many specialists in the FPGA/CPLD Design Group, and the Mixed Signal Electronics / PCB Design Groups often perform these type tasks for their companies)</p>
<p>In a regulated industry, next comes qualification testing &#8212; proof that the design meets the requirements and applicable regulations &#8212; given a skilled and experienced design team this can still take more than a year for a complex system.   This can be done by teams of systems engineers as well as test specialists and design team members)</p>
<p>(This can involve FDA/ FAA, or other regulatory personnel as well)</p>
<p><a href="http://en.wikipedia.org/wiki/DO-160"></a><br />
Qualification testing can include standards like:<br />
Mil-Std-810<br />
DO-160<br />
FCC<br />
CE<br />
UL<br />
and others</p>
<p><a href="http://en.wikipedia.org/wiki/DO-178B"></a></p>
<p>Once qualification testing is done field testing is often many more months of work by many specialists.  (This can involve FDA/ FAA, or other regulatory personnel as well)</p>
<p>Field test and service history is often used for qualification of re-use of existing older design components.</p>
<p>This is often followed by production ramp-up, and full rate production.  Manufacturing Engineers and other production personnel prepare the factory and build the product.</p>
<p>A lengthy and challenging process, but product creation has its rewards and job satisfaction once things are all working &#8211;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Máquinas de estados em VHDL]]></title>
<link>http://ivnaan.wordpress.com/2009/11/07/maquinas-de-estados-em-vhdl/</link>
<pubDate>Sat, 07 Nov 2009 20:54:11 +0000</pubDate>
<dc:creator>Vianna</dc:creator>
<guid>http://ivnaan.wordpress.com/2009/11/07/maquinas-de-estados-em-vhdl/</guid>
<description><![CDATA[Não tenho tanta experiência e conhecimento em VHDL quanto o Marcelo Barros ou o Francisco de Souza, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Não tenho tanta experiência e conhecimento em VHDL quanto o <a href="http://jedizone.wordpress.com/">Marcelo Barros</a> ou o <a href="http://chico.net.br/">Francisco de Souza</a>, leitor do Blog. No entanto, eu já estava preparando esse texto há um tempinho e complementei com algumas idéias desse <a href="http://jedizone.wordpress.com/2008/06/20/maquinas-de-estados-e-sintese-de-circuitos-com-vhdl/">outro texto</a> do supracitado Marcelo.</p>
<p>Inclusive, a leitura desse outro texto é <span style="text-decoration:underline;">altamente recomendada</span>!</p>
<p>Vamos ao meu humilde post:</p>
<p>Meu primeiro contato com VHDL foi há mais de um ano, mas só comecei a fazer projetos com ele há 3 meses, o que não é quase nada. Se alguém leu um dos primeiros posts desse blog, vai perceber que eu dizia que não é possível atribuir valor a um signal em mais de um local do código e isso é algo facilmente resolvido com as máquinas de estado.</p>
<p>Você pode tranquilamente fazer alguns circuitos em VHDL só usando IF e ELSE, mas, com o tempo, isso acaba atrapalhando quando você precisa configurar um sinal, fazer uma ou várias ações e, por fim, configurá-lo novamente.</p>
<p>Com o CASE, é possível criar estados e esses estados podem, cada um na sua vez, configurar o valor de um mesmo sinal.</p>
<p>Veja o exemplo abaixo:<br />
<img class="aligncenter size-full wp-image-153" title="estados2" src="http://ivnaan.wordpress.com/files/2009/11/estados2.png" alt="estados2" width="600" height="422" /></p>
<p>Esse seria o modelo de um programa fictício que começa no estado A e fica nele até um sinal X receber o valor 1 (como se alguém clicasse num botão para disparar o mecanismo) depois ele passaria pelos estados B, C, E, F, retornando ao B e seguindo o loop até que um certo sinal Y receba o valor 1, então o sistema entra no estado D e por fim volta ao estado A para aguardar novamente o sinal X.</p>
<p>Para implementar essa máquina de estados, pode-se usar <a href="http://pt.wikipedia.org/wiki/Flip-flop" target="_blank">flip-flops</a> do tipo D ( D é a entrada e Q é a saída), um para cada estado. A saída Q de cada Flip-flop é o controle para um certo circuito que atua quando o estado está ativo.</p>
<p><img class="aligncenter size-full wp-image-176" title="flipflops_3" src="http://ivnaan.wordpress.com/files/2009/11/flipflops_3.png" alt="flipflops_3" width="600" height="439" /></p>
<p>Traduzir isso para código VHDL é simplesmente seguir as setas e colocar o que acontece em cada estado.</p>
<p><img class="aligncenter size-full wp-image-157" title="codigo" src="http://ivnaan.wordpress.com/files/2009/11/codigo.png" alt="codigo" width="402" height="552" /><br />
O sinal &#8220;estado&#8221; pode ser definido como:</p>
<blockquote><p><code>signal estado: natural range 0 to 5:= 0;</code></p></blockquote>
<p>Além disso, o &#8220;when others&#8221; serve para prevenir possíveis erros no valor do <strong>estado</strong>. Nesse caso não vai ter problema, mas é uma boa prática de programação usá-lo.</p>
<p>Com esse exemplo, dá pra ver que em qualquer um dos estados B, C, E ou F o valor do sinal Y poderia ser modificado sem problemas. Além disso, fica mais fácil de entender para que o código serve se uma outra pessoa quiser ler.</p>
<p>No texto do Marcelo Barros, vocês vão notar que ele usa os estados com nomes. Isso também é uma boa prática de programação, mas como estou só mostrando o conceito, acho que fica mais simples de entender. Isso não é complicado de fazer:</p>
<p>Usando o &#8220;type&#8221;, você configura os possíveis nomes dos estados, como abaixo. Use sempre nomes que descrevam bem o que irá ser feito no estado.</p>
<blockquote><p><code>type <strong>estados</strong> is (aguardando, setup, modulo, soma, iteracao, multiplicacao);</code></p></blockquote>
<p>Para acabar, a parte do conteúdo do estado, que mostra o que ele realmente faz pode ser escrita num novo CASE dentro de um &#8220;process (estado)&#8221;. Serve para deixar o código mais limpo.</p>
<p>Bem, por hoje é só. Se estiver algo errado no código ou no desenho, avisem.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Rant on CUDA, FPGA and Cell]]></title>
<link>http://rndness.com/2009/11/06/rant-on-cuda-fpga-and-cell/</link>
<pubDate>Fri, 06 Nov 2009 22:05:01 +0000</pubDate>
<dc:creator>stuckat1</dc:creator>
<guid>http://rndness.com/2009/11/06/rant-on-cuda-fpga-and-cell/</guid>
<description><![CDATA[I wrote this really long rant on the Quant Net site about different emerging technologies used in co]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://rndness.wordpress.com/files/2009/11/rant_small.jpg" alt="Rant" title="Rant" width="278" height="320" class="aligncenter size-full wp-image-43" /></p>
<p>I wrote this really <a href="http://www.quantnet.com/forum/showthread.php?t=2810"> long rant</a> on the <a href="http://www.quantnet.com">Quant Net</a> site about different emerging technologies used in computational finance.  It focuses on the differences between developing on Nvidia video cards, Field Programmable Gate Arrays (FPGAs) and IBM&#8217;s Cell processor.  Please take a look.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Básico das FPGAs]]></title>
<link>http://ivnaan.wordpress.com/2009/11/06/basico-das-fpgas/</link>
<pubDate>Fri, 06 Nov 2009 02:13:07 +0000</pubDate>
<dc:creator>Vianna</dc:creator>
<guid>http://ivnaan.wordpress.com/2009/11/06/basico-das-fpgas/</guid>
<description><![CDATA[Se você quer entrar no mundo das FPGAs e aprender descrever Hardware em VHDL, eu aconselho a leitura]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Se você quer entrar no mundo das FPGAs e aprender descrever Hardware em VHDL, eu aconselho a leitura de um texto curto e bem explicado sobre esse assunto no blog do Ricardo Bittencourt (Brain Dump): <a href="http://www.ricbit.com/2009/11/ataque-cilonio.html">http://www.ricbit.com/2009/11/ataque-cilonio.html</a></p>
<p>Somente um pouco mais avançado que um Hello World da programação de Hardware, ele ensina a fazer leds acenderem em sequência. Tudo numa linguagem simples e com muitas imagens. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Altera expands low-cost Cyclone FPGA series]]></title>
<link>http://pcmediaworks.wordpress.com/2009/11/03/altera-expands-low-cost-cyclone-fpga-series/</link>
<pubDate>Tue, 03 Nov 2009 12:12:51 +0000</pubDate>
<dc:creator>Pradeep Chakraborty</dc:creator>
<guid>http://pcmediaworks.wordpress.com/2009/11/03/altera-expands-low-cost-cyclone-fpga-series/</guid>
<description><![CDATA[Altera Corp. has introduced the Cyclone IV FPGAs, thereby expanding the success of the low-cost Cycl]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignleft size-full wp-image-4799" title="Altera's Cyclone IV FPGA." src="http://pradeepchakraborty.files.wordpress.com/2009/11/altera-cyclone-iv-fpga.jpg?w=127&#038;h=114" alt="Altera's Cyclone IV FPGA." width="127" height="114" />Altera Corp. has introduced the Cyclone IV FPGAs, thereby expanding the success of the low-cost Cyclone series.</p>
<p>The Cyclone IV GX is said to be the lowest cost, lowest power FPGAs with transceivers, and the Cyclone IV E has helped it extend the lead in combining low cost, low power, and high functionality. Simultaneously, Altera also extended its transceiver portfolio leadership.</p>
<p>The Cyclone IV FPGA family offers two variants. Cyclone IV GX devices have up to 150K logic elements (LEs), up to 6.5-Mbits of RAM, up to 360 multipliers, and up to eight integrated 3.125-Gbps transceivers supporting mainstream protocols including Gigabit Ethernet (GbE), SDI, CPRI, V-by-One and Cyclone IV GX has hard IP for PCI Express (PCIe).</p>
<p>According to Jennifer Lo, Senior Marketing Manager, Altera, the company is pushing bandwidth limits in cost-sensitive markets and products &#8212; specifically, smartphones, wireless communications, industrial Ethernet, broadcast and 3D displays.</p>
<p>There is said to be a huge demand from Latin America, Asia, etc., specifically in wireless. Altera is providing a low cost, low power solution. Next, the trend is also moving from 2D to 3D displays. In broadcast it is moving to high bandwidth, in order to support HD video.<br />
<strong><br />
Easier for designers to debug FPGA designs<br />
<span style="font-weight:normal;">With the new Cyclone IV, will it become easier for designers to debug FPGA designs, especially when looking at the hardware and software aspects? Lo said that ease of use has always been a focus for low-end products for Altera.</span></strong></p>
<p><strong> </strong></p>
<p><span style="font-weight:normal;">&#8220;To that end, with Cyclone IV FPGA’s, like other Cyclone series, we strive to provide reference designs, design examples, development boards to customers to jump-start their design. With respect to debugging, we don’t see any particular differences between Cyclone IV and previous Cyclone generations.</span></p>
<p><span style="font-weight:normal;">&#8220;However, with more training, both fundamental trainings offered free on-line and more in-depth instructor-led trainings are available to help customers get accustomed with the Altera design methodology and use of our Industry-leading development software,&#8221; she added.</span></p>
<p><span style="font-weight:normal;">Altera had introduced the Cyclone III LS FPGA development kit, as well as shipments of industry&#8217;s first FPGAs with integrated 11.3-Gbps transceivers. How are all of these going to help Altera overall, given that Q3 saw a 3 percent increase; and help boost FPGA sales?</span></p>
<p><span style="font-weight:normal;">Lo added: &#8220;FPGAs usually have a longer design cycle (at least a few months before prototyping and another few months till mass production. With the recent few product additions, Altera is in a technology leadership position that we are all very proud of and confident that we will be able to reap the results of in the near future.&#8221;</span><!--more--><br />
<strong><br />
Product goals to address market requirements<br />
<span style="font-weight:normal;">Commenting on the product features, the Cyclone IV FPGA family supports mainstream transceiver protocols and has the core functionality to address targeted applications.</span></strong></p>
<p><strong><span style="font-weight:normal;"><img class="alignleft size-thumbnail wp-image-4803" title="Jennifer Lo, Senior Marketing Manager, Altera." src="http://pradeepchakraborty.files.wordpress.com/2009/11/jlo.jpg?w=150&#038;h=123" alt="Jennifer Lo, Senior Marketing Manager, Altera." width="150" height="123" />The new FPGA family also facilitates probably the lowest system cost &#8212; in terms of lowest device cost, reduced board and BOM cost, and fastest time to volume production. Also, it meets the most strict power budgets with increased functionality.</span></p>
<p></strong></p>
<p>&#160;</p>
<p>Focusing on Altera&#8217;s transceiver portfolio leadership, the company is said to be the only supplier shipping FPGAs with 11.3Gbps transceivers. The Altera Cyclone IV GX has 3.125Gbps transceivers.</p>
<p>The Arria II GX, shipping now, features 3.75 Gbps transceivers, while the HardCopy IV GX and Stratix IV GX feature 8.5Gbps transceivers. The Stratix IV GT features 11.3Gbps transceivers. Lo added that the company needs to make sure that the products supports all latest transceiver protocols.<br />
<strong><br />
Cyclone IV FPGAs<br />
<span style="font-weight:normal;">Altera&#8217;s Cyclone IV FPGAs are currently said to be the lowest cost, lowest power, integrated transceivers.<br />
<em><br />
Lowest system cost<br />
<span style="font-style:normal;font-weight:normal;">* Smallest density FPGA with transceivers<br />
* Integrated hard IP<br />
&#8211; PCIe x1, x2, x4<br />
&#8211; Transceivers built from ground up for low cost<br />
* Requires only two power supplies<br />
* Wirebond packages<br />
<em><br />
Lowest power<br />
<span style="font-style:normal;font-weight:normal;">* 60nm low-power process<br />
* PCIe to GbE bridge for &#60;1.5W<br />
<em><br />
High functionality<br />
<span style="font-style:normal;font-weight:normal;">* Up to 150K logic elements (LEs)<br />
* Up to 6.5-Mbit RAM and 360 multipliers for DSP-intensive applications<br />
* Up to eight integrated 3.125-Gbps transceivers</span></em></span></em></span></em></span></strong></p>
<p><strong><em><em><em> </em></em></em></strong></p>
<p><span style="font-weight:normal;"><span style="font-style:normal;">As an example, when used in consumer video displays, the new family will meet high video-quality requirements fast and cost effectively. When used in a broadcast video capture card, it helps save over 30 percent system cost.</span></span><br />
<strong><br />
ASSP replacement<br />
<span style="font-weight:normal;"><span style="font-style:normal;">Cyclone IV FPGAs provide a cost that rivals ASSPs. It also offers unmatched flexibility to support multiple protocols. Besides, being obsolescence proof, it reduces cost as well.</span></span></strong></p>
<p><strong><span style="font-weight:normal;"><span style="font-style:normal;">It can also replace simple bridge ASSPs &#8212; for example, PCI to PCIe, PCIe to GbE, etc. The FPGA family can also replace industrial Ethernet ASICs/ASSPs.</span></span></p>
<p><span style="font-weight:normal;"><span style="font-style:normal;">The Cyclone IV FPGAs can be used across all market segments &#8212; wireless, wireline, consumer, industrial, broadcast, and test and medical &#8212; to address cost-sensitive applications. It aims to help designers meet their cost-sensitive product targets for increased bandwidth.</span></span><br />
<strong><br />
Quartus II software v9.1 released<br />
<span style="font-weight:normal;"><span style="font-style:normal;">Altera also released the new Quartus II Software Version 9.1, which facilitates compile time advantage. What is the difference between the new version and the earlier one?</span></span></strong></p>
<p><strong><span style="font-weight:normal;"><span style="font-style:normal;">According to Lo, In the latest v9.1 of the Quartus II development software, new features and enhancements are added to reduce the compile times 20 percent vs. older versions.</span></span></p>
<p><span style="font-weight:normal;"><span style="font-style:normal;">&#8220;In addition, we have added a Rapid Recompile feature, which maximizes designer productivity when making small engineering change order (ECO)-style designs changes after a full compile is run, reducing compilation times by 50 percent on average vs running another full compile on the design.</span></span></p>
<p></strong></strong></p>
<p>&#160;</p>
<p>&#8220;By preserving critical timing during late design changes, Rapid Recompile can also significant reduce the timing closure workload on designers,&#8221; she added.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Altera expands low-cost Cyclone FPGA series]]></title>
<link>http://pradeepchakraborty.wordpress.com/2009/11/03/altera-expands-low-cost-cyclone-fpga-series/</link>
<pubDate>Tue, 03 Nov 2009 12:12:51 +0000</pubDate>
<dc:creator>Pradeep Chakraborty</dc:creator>
<guid>http://pradeepchakraborty.wordpress.com/2009/11/03/altera-expands-low-cost-cyclone-fpga-series/</guid>
<description><![CDATA[Altera Corp. has introduced the Cyclone IV FPGAs, thereby expanding the success of the low-cost Cycl]]></description>
<content:encoded><![CDATA[Altera Corp. has introduced the Cyclone IV FPGAs, thereby expanding the success of the low-cost Cycl]]></content:encoded>
</item>
<item>
<title><![CDATA[TSMC Open Innovation Platform Explained]]></title>
<link>http://danielnenni.com/2009/11/02/tsmc-oip-explained/</link>
<pubDate>Mon, 02 Nov 2009 04:04:55 +0000</pubDate>
<dc:creator>Dan Nenni</dc:creator>
<guid>http://danielnenni.com/2009/11/02/tsmc-oip-explained/</guid>
<description><![CDATA[Launched in April 2008, the TSMC Open Innovation Platform initiative is a collaborative strategy aim]]></description>
<content:encoded><![CDATA[Launched in April 2008, the TSMC Open Innovation Platform initiative is a collaborative strategy aim]]></content:encoded>
</item>
<item>
<title><![CDATA[Test CPU 1 - FPGA Implementation]]></title>
<link>http://benoztalay.wordpress.com/2009/10/28/test-cpu-1-fpga-implementation/</link>
<pubDate>Thu, 29 Oct 2009 03:05:25 +0000</pubDate>
<dc:creator>lilozzy</dc:creator>
<guid>http://benoztalay.wordpress.com/2009/10/28/test-cpu-1-fpga-implementation/</guid>
<description><![CDATA[As I mentioned in my previous post, the next step that I wanted to take after designing the OZ-3 in ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As I mentioned in my previous post, the next step that I wanted to take after designing the OZ-3 in simulation was to design and implement a simple CPU in an FPGA, just to get used to complex systems. Ironically, a couple days before I made that post, I had finished that CPU. It&#8217;s called Test CPU 1.</p>
<p>I said &#8220;simple CPU,&#8221; and by that, I mean a single-cycle, 16-bit RISC. The instruction set is ten instructions total; only the essentials. It doesn&#8217;t have any input capabilities, and all output capabilities are in 32 individual output pins, so data transfers would be rather difficult. Also, there are eight 16-bit registers. It can address 256 bytes of dRAM, and programs are limited to 4 MB, organized as 2Mbits x 16bits. The ALU is capable of addition and subtraction only, and it can only branch on zero. Here&#8217;s the full instruction set:<!--more--></p>
<ol>
<li>add</li>
<li>subtract</li>
<li>add immediate</li>
<li>subtract immediate</li>
<li>compare</li>
<li>branch on zero</li>
<li>jump</li>
<li>set/reset output pin</li>
<li>store</li>
<li> load</li>
</ol>
<p>All of the immediates specified in add/subtract immediate are limited to five bits, so that makes loading 16-bit registers with values rather painstaking. Compare is simply subtraction without the register file being told to load the value on the ALU result bus.</p>
<p>I won&#8217;t really go into the microarchitecture, but one of the bigger problems I ran into while coding this processor involved synchronizing units with the clock and making sure nothing ended up being a two-stage process when everything was supposed to be single-cycle. I originally placed the program counter outside of the control unit/instruction decoder. This was a mistake, because I was clocking the control unit, as it was handling the Z-flag, which required a register to hold the value for use in the next instruction. I tried solving this by separating the Z-flag control area and the regular control area. This way, the Z-flag logic was the only part of the control unit that was clocked. I ended up running into undetermined problems with this, though.</p>
<p>To solve these problems, I put the program counter in the control unit and made sure that the control unit, register file, and dRAM were the only clocked pieces of the processor. By the way, during the first half of a cycle, all of the data is being interpreted/processed, and during the second half, the data is written. At last, after long hours of simulation, I was able to get it to work!</p>
<p>In actual synthesis, I ended up just getting rid of the data RAM all together. I wasn&#8217;t able to use the RAM resources on my FPGA development board because learning the interface wasn&#8217;t really worth it for this project. None of the programs I wanted to test used it, either. Eight registers were enough for my purposes. This drastically reduced the time it took to synthesize, map, translate, and place and route. From there, generating the programming file doesn&#8217;t take too long. It also cut down the amount of warnings given by ISE 11 by about 3,000.</p>
<p>I ran the CPU at 1 MHz, dividing down from the 50 MHz clock supplied on the board. The first program I got to work was one that counted to 0xFFFF, then lit an LED and waited indefinitely. The second program, my personal favorite, was one that controlled a 2&#215;16 LCD display on a peripheral module, displaying the message &#8220;It works! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> &#8221; Working out the timing for this program was especially difficult. I had to switch jump and branch address so many times that I ended up mixing them up and causing errors in the program that way. Despite this, it was quite rewarding when I clicked &#8220;Program Chain&#8221; then waited a couple seconds and saw &#8220;It works! <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> &#8221; on the screen, instead of a blank screen or flashing cursor. It&#8217;s still a  bit touchy; I have yet to find out why. But, this is where this project ends. I&#8217;ve begun coding components of the OZ-3, and hope to have a functional FPGA implementation by the end of November, or this year at the latest.</p>
<p>Ben Oztalay</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The OZ-3]]></title>
<link>http://benoztalay.wordpress.com/2009/10/26/the-oz-3/</link>
<pubDate>Mon, 26 Oct 2009 04:56:50 +0000</pubDate>
<dc:creator>lilozzy</dc:creator>
<guid>http://benoztalay.wordpress.com/2009/10/26/the-oz-3/</guid>
<description><![CDATA[Because I&#8217;m starting this blog so late in this processor&#8217;s development, I figured I woul]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Because I&#8217;m starting this blog so late in this processor&#8217;s development, I figured I would give a summary of what it is and what stage of design it&#8217;s in.</p>
<p>It official terms, the OZ-3 is a 32-bit, 5-stage RISC (reduced instruction set computer). This means that it can operate on 32-bit values, it has a small instruction set of basic instructions, can address four gigabytes of memory, and instructions move through five stages within the processor. It also has 32 registers, with r0 hardwired to 0. The stages are as follows:</p>
<ul>
<li>Instruction Fetch (IF)</li>
<li>Instruction Decode (ID)</li>
<li>Execute (EX)</li>
<li>Memory and Input/Output (MEMIO)</li>
<li>Writeback (WB)</li>
</ul>
<p><!--more--></p>
<p>Values from any of the last three stages can be forwarded to ID if a subsequent instruction needs to use the result of an operation. The way I&#8217;ve organized which stage a forwarded value comes from is first based on the result register of the instruction currently in any stage. That&#8217;s a bit of a mouthful, so here&#8217;s an example: say you send an instruction through thats &#8220;add r1, r2, r3.&#8221; Now, if you want to use its result in r1 in the next instruction, the instruction decoder looks to see if the instruction in EX has r1 as its destination. If so, the value at EX&#8217;s output (r2 + r3) is taken instead of the value coming from the register file. What if there&#8217;s an instruction in MEMIO that has r1 as its destination as well? Well, the most recent instructions get priority, so EX&#8217;s value would still be taken. Value forwarding allows a more streamlined program. Without it, there would have to be three no-op instructions between &#8220;add r1, r2, r3&#8243; and &#8220;add r3, r2, r1&#8243; because you&#8217;d have to wait for the result of &#8220;add r1, r2, r3&#8243; to be written into the register file, all the way in WB.</p>
<p>The ALU can perform addition, subtraction, logical AND, OR, XOR, rotate right, rotate left, shift right, and shift left operations. The shift operations fill in blank spaces with 0, and both they and the rotate operations can only shift one bit at a time.</p>
<p>Its I/O capabilities include:</p>
<ul>
<li>16 individual input pins</li>
<li>16 individual output pins</li>
<li>1 32-bit input port</li>
<li>1 32-bit output port</li>
</ul>
<p>I&#8217;ve done the interface with the input pins by creating a branch on pin instruction that will branch if a specified input pin is 1. You have to check the input pin first to get its value into the condition register, though. Another note, the OZ-3 has no branch prediction and also has separate data and instruction memory.</p>
<p>It has three addressing modes: register, immediate, and displacement. Register-mode instructions take three registers: destination, source 1, and source 2. Immediate-mode instructions take: destination, source 1, 16-bit immediate value. Finally, displacement-mode instructions take: source 1, 21-bit displacement. Register- and immediate-mode instructions are for ALU, data memory, and input/output port instructions. Displacement-mode instructions are used for program control instructions such as jumps and branches. Instructions are 32 bits long.</p>
<p>Here&#8217;s the full instruction set:</p>
<ol>
<li>add (register)</li>
<li>subtract (register)</li>
<li>AND (register)</li>
<li>OR (register)</li>
<li>XOR (register)</li>
<li>compare (register)*</li>
<li>shift left (register)</li>
<li>shift right (register)</li>
<li>rotate left (register)</li>
<li>rotate right (register)</li>
<li>add (immediate)</li>
<li>subtract (immediate)</li>
<li>AND (immediate)</li>
<li>OR (immediate)</li>
<li>XOR (immediate)</li>
<li>compare (immediate)*</li>
<li>load (immediate)</li>
<li>store (immediate)</li>
<li>load port (immediate)</li>
<li>store port (immediate)</li>
<li>output pin to 1 (immediate)</li>
<li>output pin to 0 (immediate)</li>
<li>input pin check (immediate)</li>
<li>branch on carry (displacement)</li>
<li>branch great than (displacement)</li>
<li>branch equal (displacement)</li>
<li>branch less than (displacement)</li>
<li>branch on pin (displacement)</li>
<li>jump (displacement)</li>
<li>no operation</li>
</ol>
<p>*Compare instructions don&#8217;t have a destination. They subtract one value from another to see if they&#8217;re zero.</p>
<p>That would be about it for the description of the OZ-3. So far, I have simulated it at gate-level using a fantastic digital logic simulator called Logisim, by Carl Burch. Here&#8217;s a link to a video of it in action in said simulator: http://www.youtube.com/watch?v=MV-CK4Og2gA. This link is also in my sidebar. Other programs I&#8217;ve had this run in simulation include one in which it takes a joystick as the input and outputs a dot on an LED matrix according to the position of the joystick, a division subprogram, and one that displays a few animations one a 7-segment display according to which input pin is 1. The fastest I&#8217;ve been able to run the processor in simulation is a blazing 512 Hz.</p>
<p>So, where to next? An FPGA implementation. I&#8217;ve been working with an FPGA and VHDL for quite some time, so my coding skills are appropriate. Before I dive headlong into coding a system and complex as a 5-stage CPU, I plan on coding a far simpler processor, appropriately (and unimaginatively) called Test CPU 1. Funny thing is, I&#8217;ve already done that, too! I will make a post about it, but I&#8217;ve just completed it tonight and plan to move on to coding the OZ-3 sometime very soon.</p>
<p>Ben Oztalay</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Feedback control at its finest: Innovations from UCSD Coordinated Robotics Lab]]></title>
<link>http://labviewrobotics.wordpress.com/2009/10/19/feedback-control-at-its-finest-innovations-from-ucsd-coordinated-robotics-lab/</link>
<pubDate>Mon, 19 Oct 2009 19:15:39 +0000</pubDate>
<dc:creator>emiliekopp</dc:creator>
<guid>http://labviewrobotics.wordpress.com/2009/10/19/feedback-control-at-its-finest-innovations-from-ucsd-coordinated-robotics-lab/</guid>
<description><![CDATA[I found this cool video (below), provided by IEEE Spectrum Online the other day. Josh Romero, it]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I found this cool video (below), provided by <a href="http://www.spectrum.ieee.org/blog/robotics/robotics-software/automaton/video-ucsd-mobile-robots" target="_blank">IEEE Spectrum Online </a>the other day. Josh Romero, it&#8217;s narrator, must have experienced the robot revolution at this year&#8217;s NIWeek, as much of the video footage is taken from the Day 3 keynote. <a href="http://zone.ni.com/wv/app/doc/p/id/wv-1705" target="_blank">Here&#8217;s the full, extended version of Dr. Bewley&#8217;s talk</a> about the work being done at the <a href="http://robotics.ucsd.edu/" target="_blank">UCSD Coordinated Robotics Lab</a>.</p>
<div id="attachment_139" class="wp-caption alignleft" style="width: 240px"><img class="size-medium wp-image-139" title="10943-switchblade" src="http://labviewrobotics.wordpress.com/files/2009/10/10943-switchblade2.jpg?w=300" alt="10943-switchblade" width="230" height="173" /><p class="wp-caption-text">This small treaded robot can climb stairs with ease and balance itself on a point.</p></div>
<p>Josh brings up a good point in his video: automatic feedback control can be the difference between simple, ordinary robots and incredibly sophisticated dynamic systems. Take <a href="http://renaissance.ucsd.edu/CoordinatedRoboticsLab/Switchblade.html" target="_blank">Switchblade</a>, for example. The robot performs low-level control on a dedicated, embedded processor (in this case, a 2M gate FPGA on a <a href="http://zone.ni.com/devzone/cda/tut/p/id/7441" target="_blank">SingleBoardRIO</a>) to automatically balance itself on a point. There is an additional, real-time processor that performs additional tasks like maneuvering up a flight of stairs. With it being so small and having such a wide spectrum of mobility, it puts search-and-rescue robots like the <a href="http://www.xconomy.com/wordpress/wp-content/images/2008/09/packbot.jpg" target="_blank">PackBot</a> to shame. See you at the top of the stairs, PackBot!</p>
<p>Ok, I take that back. Let&#8217;s avoid &#8220;shaming&#8221; PackBot. <a href="http://www.roomba.net/filelibrary/pdfs/gi/robots/iRobot_PackBot_RedOwl.pdf" target="_blank">Please don&#8217;t shoot me, PackBot</a>.</p>
<p><span style="display:block;width:425px;margin:0 auto;"> <embed src='http://widgets.vodpod.com/w/video_embed/Groupvideo.3655424' type='application/x-shockwave-flash' AllowScriptAccess='always' pluginspage='http://www.macromedia.com/go/getflashplayer' wmode='transparent' flashvars='' /></span></p>
<p>Stay tuned for a closer look at how Switchblade works in a future post.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
