<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Comparing an FPGA to a Microcontroller, Microprocessor or an ASIC</title><link>/technologies/fpga-group/b/blog/posts/comparing-an-fpga-to-a-microcontroller-microprocessor-or-an-asic</link><description>A Field Programmable Gate Array or FPGA is an integrated circuit that could contain millions of logic gates that can be electrically configured to perform a certain task. But how does an FPGA compare to a microcontroller, microprocessor or an applica</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Comparing an FPGA to a Microcontroller, Microprocessor or an ASIC</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/comparing-an-fpga-to-a-microcontroller-microprocessor-or-an-asic</link><pubDate>Wed, 25 May 2022 19:33:47 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:82d26e72-b481-4cf5-96f9-1cdbde976cae</guid><dc:creator>permission</dc:creator><slash:comments>1</slash:comments><description>&lt;div class="bbWrapper"&gt;I know microprocessor is an Integrated Circuit. But by definition a circuit comprises of various electrical components like resistors, capacitors while a system comprises of subsystems. How is microprocessor a circuit when it has different sub blocks like registers, ALU block. Please help&lt;/div&gt;&lt;img src="https://community.element14.com/aggbug?PostID=4331&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Comparing an FPGA to a Microcontroller, Microprocessor or an ASIC</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/comparing-an-fpga-to-a-microcontroller-microprocessor-or-an-asic</link><pubDate>Sun, 04 Apr 2021 15:40:26 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:82d26e72-b481-4cf5-96f9-1cdbde976cae</guid><dc:creator>181818</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Discuss and Compare FPGA, Microprocessors and GPU &lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=4331&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Comparing an FPGA to a Microcontroller, Microprocessor or an ASIC</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/comparing-an-fpga-to-a-microcontroller-microprocessor-or-an-asic</link><pubDate>Fri, 23 Feb 2018 01:04:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:82d26e72-b481-4cf5-96f9-1cdbde976cae</guid><dc:creator>johnbeetem</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;As Gene said above: interesting comparisons.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Personally, I don&amp;#39;t think programming an FPGA in a &lt;em&gt;good&lt;/em&gt; hardware-description language (HDL) is inherently more difficult than programming a microprocessor in C.&amp;nbsp; It&amp;#39;s just that people are used to programming languages, particularly if they&amp;#39;ve been programming for years or decades before trying an FPGA.&amp;nbsp; So their initial programming difficulties are long forgotten, while the new challenges of the FPGA&amp;#39;s HDL are fresh.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Let&amp;#39;s compare C and Verilog, which use similar notations.&amp;nbsp; Verilog is difficult at first, but that&amp;#39;s because of Verilog defects rather than HDLs in principle.&amp;nbsp; If you stick to a clean synthesizable subset of Verilog, it&amp;#39;s IMO no more difficult than C.&amp;nbsp; The hard part is learning which constructs to avoid.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now, in what way is an FPGA&amp;#39;s HDL like machine language?&amp;nbsp; Well, you do have to be very aware of your registers and memory, which are limited resources.&amp;nbsp; But the same is true if you&amp;#39;re programming in C on a small microprocessor.&amp;nbsp; In fact, many people -- including me -- think of C as a portable assembly language that uses high-level language syntax.&amp;nbsp; Thinking of C only as a high-level language gets you into trouble, since while the syntax is high-level, the execution model is machine language.&amp;nbsp; That means that sometimes you run into bugs (like overwriting memory) that can only be understood at the machine-language level.&amp;nbsp; At least with FPGAs you&amp;#39;re forced to be aware of this instead of being surprised by hidden traps.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;With FPGAs you also need to think about the logic being generated, since there is a limited amount of logic available and you may need to time-multiplex it to get your design to fit in a cheap FPGA.&amp;nbsp; But with C you need to think about algorithm efficiency, and that ends up being a similar amount of work for a good implementation.&amp;nbsp; I suppose a sloppy implementation is less of a penalty with a microprocessor than with an FPGA, but in both cases a good implementation requires skill and effort.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thinking about the machine language generated by C can make you a better C programmer, just like thinking about the gates and adders generated by an FPGA HDL makes you a better digital designer.&amp;nbsp; But that&amp;#39;s true of any technical field: you always can do a better job if you can think one or two levels below the level you normally work at.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;JMO/YMMV&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=4331&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Comparing an FPGA to a Microcontroller, Microprocessor or an ASIC</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/comparing-an-fpga-to-a-microcontroller-microprocessor-or-an-asic</link><pubDate>Thu, 22 Feb 2018 20:12:20 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:82d26e72-b481-4cf5-96f9-1cdbde976cae</guid><dc:creator>DAB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Nice post.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;There were many times in my career where I wish we had access to either of these devices.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;There were many times when we needed a unique logic circuit to fit into a small area of a circuit board.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;At the time, we were implementing bit-slice circuits, which were a good solution at the time, they were large boards and power hogs.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Looking at FPGA and ASIC today, it is like a circuit designers dream come true.&amp;nbsp; Especially in the area where you need to replace an obsolete IC.&amp;nbsp; Just design it up, build a little plug in board, pop out the old chip and insert the new.&amp;nbsp; QED.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;DAB&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=4331&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Comparing an FPGA to a Microcontroller, Microprocessor or an ASIC</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/comparing-an-fpga-to-a-microcontroller-microprocessor-or-an-asic</link><pubDate>Thu, 22 Feb 2018 20:05:53 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:82d26e72-b481-4cf5-96f9-1cdbde976cae</guid><dc:creator>genebren</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Interesting comparisons.&amp;nbsp; You could build either a microcontroller or microprocessor from a FPGA, but you could not build a FPGA from either a microcontroller or microprocessor.&amp;nbsp; ASICs are like one-time-programmable FPGAs, except that ASICs require much more processing (layout, masks ...).&lt;/p&gt;&lt;p&gt;Gene&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=4331&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>