Talk:Field-programmable gate array

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Electronics (Rated Start-class, Mid-importance)
WikiProject icon This article is part of WikiProject Electronics, an attempt to provide a standard approach to writing articles about electronics on Wikipedia. If you would like to participate, you can choose to edit the article attached to this page, or visit the project page, where you can join the project and see a list of open tasks. Leave messages at the project talk page
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 Mid  This article has been rated as Mid-importance on the project's importance scale.
WikiProject Computing / Networking / Software / Hardware (Rated Mid-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
 ???  This article has not yet received a rating on the project's quality scale.
 Mid  This article has been rated as Mid-importance on the project's importance scale.
Taskforce icon
This article is supported by Networking task force (marked as Low-importance).
Taskforce icon
This article is supported by WikiProject Software (marked as Low-importance).
Taskforce icon
This article is supported by Computer hardware task force (marked as Low-importance).

Old / Random Notes[edit]

And why is there no discussion of the inherent emulator problems? (such as sequential software vs. parallel hardware) The preceding unsigned comment was added by (talk • contribs) on 21:05, 2 February 2006.

If the figures were made in xfig they can be improved by exporting to image format at 200% or more. Then scale image down if needed in gimp. The preceding unsigned comment was added by Rtdrury (talk • contribs) on 08:33, 23 October 2005.

Curious why Agere/Lucent was deleted - Williamv1138 14:39, Aug 8, 2003 (UTC)

  • Their FPGA division was acquired by Lattice Semi, in 2001 I think. Cheese Sandwich 02:09, 17 August 2005 (UTC)

There's also FPGA (Flip Pin Grid Array), a type of CPU design. -- Tarquin 14:42, 8 Aug 2003 (UTC)

Well, a kind of packaging techonlogy, anyway. -- Anon. The preceding unsigned comment was added by (talk • contribs) on 14:48, 8 August 2003.

This article appears very xilinx-biased in terms of covering a fairly narrow range of FPGA devices, which have many different layouts from what I can tell (ie not all exactly as described). Might be nice to make it more general, or sprinkle a few "In one particular implementation..." type comments around. Mat-C 03:43, 21 Jun 2005 (UTC)

Part of this article reads like a programming manual: "Since the clock is normally routed via a special-purpose dedicated routing network in commercial FPGAs, do NOT route it or include it in your track count results. That is, you can completely ignore the clock net, since it is assumed to be routed on a special global network." I should be excused for thinking some indiscriminate copying has been done here. Radioflux 15:32, 21 September 2005 (UTC)

Would a section on the different design methodologies for fpga vs asic be welcome - e.g. extra use of registering (for speed) designing to available resources, tricks to fit functions into memories etc? Or is this too much detail/not appropriate to wikipedia? It also occured to me that the concepts of embedded vs distributed memory have been skipped over in this article, is something like this needed. How about contrasting the architecture of fpgas to cplds? . -- Rufty 16:57, 19 Aug 2005 (UTC)

I have made some substantial edits/additions to this page related to FPGA history, software tools and related device technologies. Probably more is needed related to design tools, and perhaps more complete links to external resources. I also agree that some of the architecture discussion is Xilinx-specific, but I didn't touch that part. Rudderpost 16:40, 4 November 2005 (UTC)

Typical Clock speeds[edit]

Nowhere does the article mention typical clock speeds for FPGA's - unless I missed it - could someone who is knowledgable add it please? --Wierdy1024 19:49, 4 June 2006 (UTC)

I think that's because the ranges are so large and it depends on the algorithm that is programmed in it. For example, a current generation core can likely exceed 200 MHz. However, that would be an extremely pipelined design, because there is always a tradeoff of space vs. speed - if you do more work in a single clock, it takes you longer, but if you do less work then you need to store more intermediate results. A much more complicated design may only hit 50 MHz in the same part. For I/O, both A and X have high speed I/O serdes that can exceed 10 Gbps, but internally the signal would be 64 bits wide (and therefore only 155 Mbps). -- RevRagnarok Talk Contrib Reverts 20:25, 4 June 2006 (UTC)
This thread is just an example of how MHz numbers get out of date very quickly. As of 2010, using Xilinx Virtex-5, I regularly create designs that run at (300 to 400 MHz) with no particular trouble, and that's technology from 2008. Virtex-6 has been out for a while, and Virtex-7 is out this year. Assuming FPGAs are going to stay pegged at some particular MHz range is incorrect, so I'd suggest anytime MHz numbers must be mentioned in the article (for comparison to something else, etc), they should say something like "xxx MHz (as of 20yy)". -- wjl (talk) 16:38, 14 July 2010 (UTC)

Yes, as of 2011 some parts of the article contradict other parts. On the one hand there is discussion about the slow speed of FPGAs being a factor in limiting their adoption, and then in another section a discussion of how the high speeds possible with FPGAs are being used for super-computing applications such as real-time FFTs. Similar problem with *small* sizes. basically the technology has evolved much faster than the article has. — Preceding unsigned comment added by (talk) 04:33, 18 October 2011 (UTC)

commercial links[edit]

This article is thick with commercial links. It seems like the "Some FPGA third-party tool suppliers with descriptions" and "Some FPGA manufacturers and their specialties" should be deleted altogether. -- Mikeblas 03:19, 6 July 2006 (UTC)

There are few enough manufacturers in the industry that I don't really see this being a problem. Your mileage may vary. I agree that the third-party tool vendor list is a bit long. --Christopher Thomas 03:34, 6 July 2006 (UTC)
I agree. As for tool vendors, the two biggest are the two biggest manufacturers, A and X. After that, as far as I know, are ModelSIM and Synplify. I was shocked to see Annapolis Micro in there, I dealth with them years ago, but I am <20 mi from them. -- RevRagnarok Talk Contrib Reverts 10:23, 6 July 2006 (UTC)
So now that 'nearly' every external link has been deleted, shall we have a discussion of what to have? Since there are so few FPGA manufacturers, my opinion is that we should definitely include those. Mrand 14:30, 26 November 2006 (UTC)
Not as list of external links, but as list with internal links to their articles. (Notability criterion: If they're not notable enough to have their own article, they're even less notable to get a link in this one.) WP articles are not an online business directory. Femto 15:34, 26 November 2006 (UTC)

"Combinational" vs. "Combinatorial"[edit]

I noticed somebody changed "combinational" to "combinatorial" - actually "combinational" is a perfectly acceptable term, and is used in the Altera Quartus II software. --Cheese Sandwich 12:24, 17 July 2006 (UTC)

I've never used or heard combinational until this discussion... only combinatorial. But when I google combinatorial combinational fpga, it appears that they are used almost interchangably. Mrand 13:06, 17 July 2006 (UTC)
Combinatorial is the term that I have used and have heard for about a decade now, so that's why I changed it back (and for some reason had been logged out). It's always been combinatorial vs. synchronous processes in VHDL that are being discussed among the engineers. The linked article's talk about "Enumerative combinatorics" seems to back it up - the synthesizer needs to compute every possible outcome from all possible inputs and then try to create a gate/CLB/slice/whatever combination equivalent. Now that I think about it, we may even want to make the word a link with an anchor to 'enumerative combinatorics.' — RevRagnarok Talk Contrib Reverts 13:07, 17 July 2006 (UTC)
The math term is "combinatorial". In digital design, the term is "combinational". Please refer to Carver_Mead and Lynn Conway's book which ushered in the VLSI era, Introduction to VLSI Systems. Also, Wikipedia redirects "combinatorial logic" to "combinational logic" rather than vice versa, so that's probably the right place to have this debate... until then the FPGA article ought to follow that convention. Megacz 19:32, 17 July 2006 (UTC)
Discussed among engineers on what continent? It's "combinational" in every reference I've encountered in North America. If Europe uses different conventions, that should probably be noted in the combinational logic article. --Christopher Thomas 23:37, 17 July 2006 (UTC)
The wonderful People's Republik of Merlin'. Maybe it's a VHDL vs Verilog terminology thing. ;) I even mentioned this article today at work and the 3 engineers I talked to all said "WTF? Of course it's combinatorial!" We are all contractors in gov't work (hence the VHDL). — RevRagnarok Talk Contrib Reverts 02:50, 18 July 2006 (UTC)
Maybe as a compromise we could write "combinational (combinatorial)" instead of "combinational", since both terms are used. --Cheese Sandwich 03:03, 18 July 2006 (UTC)
I'm with the three engineers who said "WTF?" With almost 30 years of experience in the business, I've always heard and said "conbinatorial". And I'm in North America. - Atlant 12:36, 18 July 2006 (UTC)
University of Toronto, ECE 1999+PEY. You have seniority on me, but I still count myself as qualified to comment. I've never heard "combinatorial" used for this context before seeing this talk page. Checking for published uses, "combinatorial logic" gets 58 citations, and "combinational logic" gets over 100 citations (list is limited to the first 100 hits). This suggests that while both are used by IEEE members, "combinational" is the more common term. --Christopher Thomas 18:22, 18 July 2006 (UTC)
More importantly, one of the major FPGA vendors' software uses "combinational" (in fact, they deliberately switched from "combinatorial" to "combinational" at one point). --Cheese Sandwich 18:27, 18 July 2006 (UTC)

hmm, sounds to me like there has been a shift in the word usage. Language does drift over time, this seems to be an example. My text book from 35 years ago, most definitely taught "Combinatorial Logic". But you young whippersnappers are all prattling on about this here newfangled thang called "Combinational"... Tarnation! I never myself heard this word "combinational" until I started studying up on FPGAs. I still remember when they changed the name of Brontosaur to Aptosaur, he was mighty upset about it too. :-) — Preceding unsigned comment added by (talk) 04:50, 18 October 2011 (UTC)

Please continue this discussion at Talk:Combinational logic#Combinatorial versus Combinational an Historic Perspective. Thank you. --DavidCary (talk) 14:54, 9 November 2012 (UTC)

Regarding switchboxes[edit]

I've read on the comp.arch.fpga newsgroup that there actually are no switchboxes in (at least) modern Xilinx devices. My feeling is that this has been true for quite some time but I don't have any good source on that though. See for example this posting on comp.arch.fpga: [1] --Ehliar 13:00, 12 January 2007 (UTC)

As far as I am concerned, routing resources are "magic." I think 'switch box' is just a way to explain the concepts of what is happening inside, not actually describing the physical layout. — RevRagnarok Talk Contrib 13:22, 12 January 2007 (UTC)
I don't really object to the description of the switch box as an explanation of the concept of routing. My main objection is that it sounds like almost all FPGAs function like that. "Generally, the FPGA routing is unsegmented." (page 41 in the PDF file) describes the routing resources in a Virtex-2. In that architecture it is very common with routing resources that terminate a couple of CLBs away from the sender. (And the same is true for all other Xilinx devices that I've used.) Perhaps the page should make it clear that it describes a conceptual view and not how it really looks like. --Ehliar 15:18, 12 January 2007 (UTC)
If you want to get picky, just write a section about Manhattan vs. Island style; however, this ruins the conceptual view approach as there are so many approaches. Xilinx, for example, varies between series how the routing is implimented. The complete article could be redone to discuss architecture from a circuit level approach for Xilinx-vs-Altera, etc; however, that's not really the point. There's 10-years of VPR papers discussion routing, and research papers publised by vendors which you'd have to include if you wanted to cover the subject in its entirity. I've found this article adquate to get students started. --Degs 18 January 2007

"Not a link farm"[edit]

User:Michagal is asking about my deletion of many of the external links. My understanding of Wikipedia:External_links is that there should be a compelling reason to have external links, and those external links should be about that topic. Making it "easy" (as in one-click easy) for someone to find a related product doesn't strike me as a really a compelling reason. Each item is very easy to find via a search engine or on the vendors site, so I don't see the products being difficult to find as being a reason. And we aren't talking about links to articles about FPGA's or even to FPGA manufacturers, but to an incomplete list of vendors who sell software tools. Lastly, whenever there are external links, someone has to maintain that list of links for when they change or end up pointing to old versions. Wikipedia strongly prefers internal links. I'm open to other perspectives though... let's hear them! Mrand 16:28, 9 May 2007 (UTC)

I think you're right on the money Mrand. I agree that a (incomplete) list of vendors who sell software tools for this entry is a poor decision. There are some entries that exist in the EDA-industry section of Wikipedia that are essentially lists (with external links) of companies which makes me cringe each time I look at them. Why? Because these entries, to me, don't qualify as Wikipedia entries - they're borderline directory lists. That being said, there are plenty of directories out there that already list EDA companies & tools. --Christian B 17:54, 9 May 2007 (UTC)
I looked at how some other articles handle product links. PowerPC has external links to companies' web sites, with a list of products following each company name. However, those product names are internal links or are not links at all. Pentium and its friends list no compatible processors, instead including a link to Pentium compatible processor, which has only internal links. C (programming language) has few product links, and those few have Wikipedia articles. There are no external product links in Microprocessor: only general microprocessor information or product-specific historical documents. The article has internal links to many processor architectures. KerryVeenstra 18:06, 9 May 2007 (UTC)
I agree. It was a link farm and Mrand did the correct thing by deleting all those external links. Wikipedia is WP:NOT a web directory. (Requestion 19:38, 9 May 2007 (UTC))

Remarkable similarity[edit]

I had a look at this web page: and I feel the similarities to the Wikipedia article is a bit on the high side, and that includes the illustrations too. I am not one to slap on a copyright violation notice but I'd like to have the issue discussed before levelling what could be a serious allegation.

Equally significant is that the article linked to is far more readable and informative than this Wikipedia article which reads like a painful example of over-editing. --21:43, 28 July 2007 (UTC)The previous unsigned comment was added by User talk:

ACK! You're right. I've emailed the owner of that web page asking for feedback and/or permission (at least for the images). —Mrand T-C 23:00, 28 July 2007 (UTC)
As the original author is likely to peruse this disaster you might preemptively want to ask him for permission to use more than pictures alone, like for instance his text. --21:38, 29 July 2007 (UTC)
I just took a look at this, and the similarity to my web page (figures & text) is very high. There isn't a link to my web page or book, which I'd like to see given that this content came from it. - Vaughn Betz —Preceding unsigned comment added by (talk) 21:47, 27 January 2009 (UTC)
To that end, I've added a link to Vaughn's web page in the External Links section. MichaelKipper (talk) 18:23, 14 March 2011 (UTC)

Microblaze source code: license vs. NDA[edit]

User:Megacz changed the statement about Microblaze source code requiring a license to state that it requires an NDA, and claimed that this was clearer. In fact, the license is more broad than an NDA, and the license terms include requirements that would not typically be found in an NDA. It is not clear to me that this level of detail is even appropriate for a genarl article on FPGAs. --Brouhaha 18:55, 21 September 2007 (UTC)

The column is labeled "open source". A non-disclosure agreement is not "open source". Some licenses are "open source". If the column is going to be labeled "open source", then the contents of the cell must be more specific than merely "license". If you like, we could use "non open-source license" instead. Or we could change the column title. Megacz 17:09, 22 September 2007 (UTC)

The issue of IP is a major one and this article barely touches on it. The cost of licensing that IP is substantial and is a major part of the engineering cost of a design. — Preceding unsigned comment added by (talk) 05:03, 18 October 2011 (UTC)

FPGA Inventor...[edit]

Editors on Wikipedia can not be the judge and jury of who invented what, especially when there might be a possible dispute or conflict of interest. Even if we could manage to nuance the inventor of a small part of a large design by reading complex patents, we aren't allowed to - that would be called original research. Xilinx has always claimed, and continues to clearly claim, that they invented the FPGA. If that were not true, I would suspect someone would have "corrected" them within the past 20 years. Additionally, I can find no other such claims by anyone else. If some can be found, we would be happy to integrate them into the article. Have fun! —Mrand TalkC 17:58, 2 June 2008 (UTC)

It would certainly be useful to point out that Freeman references earlier patents on programmable logic, and that the term "field programmable logic array" was even used in a patent title that issued as early as 1983. That does not give us the right to annoint anyone as "the inventor." For Ross Freeman, we should say he is "considered to be the inventor", or be specific about who says he's the inventor, or of exactly what kind of FPGA he invented. Probably we can do this by pointing out that before Freeman's approach, the devices were simpler, in the category now called CPLD, even though they were literally PLAs that had been made field-programmable. The current text hints at the distinction, but is not clear enough. Dicklyon (talk) 19:24, 2 June 2008 (UTC)
Certainly no opposition to any of this from me. —Mrand TalkC 20:54, 2 June 2008 (UTC)
I agree that Wikipedia cannot be the judge and jury but neither should Xilinx marketing. The legal method in the US for proof of invention is the patent. Patents establish lineage of concepts and ownership of inventor ship. The phrase FPGA, as the Wiki says, is a field programmable logic device:

"A field-programmable gate array is a semiconductor device containing programmable logic components called "logic blocks", and programmable interconnects."

The basic structure of this is clearly defined in the Page et al patents:

where the logic blocks are simply and/or gates connected by a re programmable interconnect matrix. Freeman recognized this in his first FPGA patent:

where he referenced both Page et al patents. Now here is the really interesting thing. An 'gate' in the 80's referred to a CMOS gate used to build logic. The term FPGA really fits the Page et al patent more closely than Freeman's because the logic nodes were described in logic gates. The Freeman patent uses a more combinatorial logic block at the interconnection node attached in the same gated manner as the Page et al. Ultimately both are based on the same concept and the Freeman design uses the same switched gates at the nodes.

So when we speak of who invented the FPGA what is the better reference? Xilinx marketing information or the USPTO? Legally its the USPTO and the date they establish is 1983 or five years before Freeman. —Preceding unsigned comment added by (talk) 14:04, 3 June 2008 (UTC)

Unfortunately, I believe the above falls under WP:No original research. We need to find an article in a journal or magazine as a Reliable (published) source claiming that Peterson or Page invented the FPGA. Despite my efforts, I have not been able to find any.—Mrand TalkC 23:13, 9 June 2008 (UTC)
Mrand- I find that as an odd interpretation of "unpublished facts, arguments, speculation, and ideas; and any unpublished analysis or synthesis of published material". The claims above are published by the US government trough the USPTO. It is a published fact and not speculation what more do you need? The links are there, it is published in the only LEGAL record of invention used by the US government. Do you dispute the USPTO? (talk) 18:04, 11 June 2008 (UTC)
Anything that the USPTO says or that the patent says is fair game to include. But saying who invented something seldom falls into that category. It's OK to point out earlier patents on devices called FPGA or similar, but not so OK to say who invented something, unless you find a source by someone who made such a finding. Dicklyon (talk) 20:35, 11 June 2008 (UTC)
Exactly. I believe that taking the definition of an FPGA and interpreting the contents of patents based upon that definition to conclude that Peterson and/or Page invented the FPGA is a synthesis of published material (which we aren't allowed to do). We have to find that conclusion published somewhere. —Mrand TalkC 21:10, 11 June 2008 (UTC)

Allow me to help with your decision. I am Dave Page, I will give Wikipedia six months to clean up this article or face a slander of title lawsuit. The next voice Wikipedia will hear is from my lawyers... and I believe that you will find the patents are the final say in court! —Preceding unsigned comment added by (talk) 16:15, 9 April 2010 (UTC)

only US FPGA?[edit]

  • article represent only USA FPGA companies. Where is Europe?//Berserkerus (talk) 08:32, 4 August 2008 (UTC)
    What are the names of the companies? While Wikipedia isn't a web directory, we might be able to sensibly work them into the article. I'm just not aware of any. —Mrand TalkC 12:19, 4 August 2008 (UTC)
    i am too...//Berserkerus (talk) 12:58, 4 August 2008 (UTC)
    Hmmm... so you were asking not because you know of some, but because there are so few companies listed? The reason for that is that is likely that over the past 10+ years, the FPGA marketplace has weeded out most of the competitors. —Mrand TalkC 16:04, 4 August 2008 (UTC)
    hmmm... history of FPGA marketplace is highly interesting... i will try to look for reliable sources//Berserkerus (talk) 17:44, 7 August 2008 (UTC)

Turing complete?[edit]

Are FPGA's limited in the functions they can compute? Is it known if they are Turing complete? Pgr94 (talk) 13:40, 14 August 2008 (UTC) According to this link yes, but still no reliable source.

FPGA's and DSP's are pretty much Turing complete (when hooked to a standard off-the-shelf infinite size memory chip). You can implement a DSP CPU inside an FPGA or simulate an FPGA in a DSP processor with enough memory.

Pgr94 (talk) 13:58, 14 August 2008 (UTC)

I thought Turing complete applied more to programming languages, although I guess that comes from the fact that the languages are the limiting factor (when compared to the underlining hardware). Said another way, do the DSP, microprocessor, and microcontroller articles make mention of Turing completeness? —Mrand TalkC 14:43, 14 August 2008 (UTC)
Turing completeness is always applied to the machine. The fact that a specific computing language is Turing complete is irrelevant if the underlying machine is not. This was actually what Turing is largely known for, finding what it takes for a machine to compute problems. In any case this should be mentioned somewhere in the article, even if it requires referencing that some CPU implementations can be done, such as PowerPC, on an FPGA and therefore since the CPU is Turing complete so is the FPGA (by Turing Equivalence). KillerGardevoir (talk) 16:14, 8 July 2014 (UTC)

well, given that a sufficiently large FPGA can implement a microcomputer such as a PowerPC, and given that nobody even bothers to ask the question of if the PowerPC is Turing Complete since the answer is abundantly obvious; therefore I think that we can conclude that it should be sufficiently obvious that FPGAs are capable of being configured as Turing Complete computers, but it is optional to do so. (talk) 05:19, 18 October 2011 (UTC)

If you know of any implementation of a PowerPC in a FPGA, please add it to the soft microprocessor article. Thank you. --DavidCary (talk) 15:41, 18 August 2013 (UTC)

Programming with higher-order/declarative languages[edit]

Would it be worth mentioning that there has been work on compiling higher order languages to FPGAs?

Pgr94 (talk) 13:46, 14 August 2008 (UTC)

I think a concise list languages would indeed be informative to readers - perhaps broken into HDL's and higher-level languages. —Mrand TalkC 14:43, 14 August 2008 (UTC)

Major Changes[edit]

Hi All,

I tried to combine all of the discussion and feedback on this page in a a significantly revamped article. I also gave it a complete editorial review, including items like correct titlecaps for SoC (ass oppose to "SOC") and equally minor changes.

From a high-level, here's the changes:

  • A new history section that's a true historical narrative. Previously most of this section was comparing FPGAs to CPLDs.
  • A new section for FPGA Comparisons, which combines a lot of disparate content that felt like content schizophrenia.
  • A more formal references structure and more references. Previously there were some copyright issues that appear to have been resolved, however references are need to prevent that moving forward.
  • Less commercialism. Fewer external links, product tables, and lists of vendors (significant manufacturers are still named in the appropriate section)

What's still needed:

  • I tried to resolve the "FPGA Inventor" problem discussed above by citing the patents as foundational building blocks of the FPGA invention. But without any references establishing the significance of these patents to FPGAs, I think we'll have to take them out. Eager to hear any feedback.
  • Could use an image of historical significance. Seems Wikimedia only has current products for images. If someone had an image of the first FPGA ever, that would be incredible.

Recognizing that a number of people have contributed significant time and mind-share to this article, I was thinking of posting a preview of the proposed new article on my talk page, but the logistics didn't work out well. So I wanted to create this discussion for any feedback and discussion relevant to the significantly re-written article.

King4057 (talk) 18:35, 6 February 2009 (UTC);

When an article obviously needs work (as this one did), you did the right thing and just started editing the real thing. If there are too many objections, it would be reverted and then discussions could be had about how to proceed - but I doubt that is going to happen in this case. I don't have much time this evening, so I'll have to look over all the changes over the weekend - but I wanted to drop a short note and thank you for taking the plunge! Have fun —Mrand TalkC 02:47, 7 February 2009 (UTC)
Agreed. Go for it. It's important to be careful about interpreting inventorship; the patents are good primary sources for who did what when, but we shouldn't draw conclusions beyond the evidence. Xilinx makes claims about their device being the first commercially vialbe, and their guys being the inventors, which is certainly true for some (their) definition of FPGA, but we shouldn't be saying so just on the basis of Xilinx themselves as source; or cite it as "Xilinx claims" or something like that, unless you can find a reliable independent source. Dicklyon (talk) 07:12, 7 February 2009 (UTC)
Yup - thanks

This EE Times story calls Xilinx the inventor of the FPGA and it's an authoritative third-party source. I'll add it as a reference.

I think there's plenty of third-party references that agree that Xilinx invented the FPGA, but more to the issue is if there's an incorrect consensus. Perhaps a debate that doesn't belong within the Wikipedia realm since philosophically our "facts" are based on verifiability with references. Within that context, Xilinx wins hands-down.

For now I'm just going to add this one reference. King4057 (talk) 19:26, 10 February 2009 (UTC);

Yes. We definitely have to be careful of one source (even if it is Xilinx) claiming something, and then everyone else (media) parioting it without verifying facts. I ran into exactly that on another article and had trouble convincing other editors that the information wasn't correct at all. Keep up the good work! —Mrand TalkC 15:21, 11 February 2009 (UTC)

Semi-major changes[edit]

I was disappointed this article did not mentioned that (most) FPGA cells do contains carry logics. I changed the picture and some of the architecture section. The section still need a lots of work to be correct and good, I think. —Preceding unsigned comment added by Petter.kallstrom (talkcontribs) 09:36, 4 May 2010 (UTC)

Security and Safety[edit]

Seems that these types of devices potentially pose a threat to security and hence safety. What sort of steps are taken by the deployers of this technology to prevent inadvertent attacks? This comment too applies to ASIC and all similar devices. —Preceding unsigned comment added by (talk) 20:43, 24 August 2009 (UTC)

How, exactly, do these pose a threat to security and safety, and according to which source? They are microchips, designed to be programmed to perform special-purpose calculations somewhat faster than general-purpose processors. That's about it. --Christopher Thomas (talk) 20:50, 24 August 2009 (UTC)

Question, why are FPGA so good at brute forcing attacks on cryptographic keys, as Christopher said "...designed to be programmed to perform special-purpose calculations somewhat faster than general-purpose processors." can anyone add some technical detail on why they are fast at these operations compared to x86 Architecture I feel it should be mentioned in the article as prominent research is using FPGA for this purpose. is it as simple as FPGA get more/and or larger FFT per cycle than x86 chips. 4/27/10


I'm adding an image of an FPGA board. Because FPGA chips don't exist in a vacuum, the FPGA board illustrates how they funtion. Jinxynix (talk) 18:18, 14 October 2009 (UTC)

Broken link[edit]

As a note on the article itself recently pointed out, reference 2 (i.e. "History of FPGAs") is a broken link. -- (talk) 03:16, 13 January 2010 (UTC)

External link[edit]

Hello, I'm working for the So-logic company, located in Vienna, Austria, We have developed the FPGA Database application, It is the directory of all FPGA families that have ever existed on the market. It is free of charge and available to everyone. We would like to add the link to our database in the Wikipedia external links on this page. We didn't want to do it before discussing it with you. Thank you for your time. --Maja Gordic (talk) 10:23, 4 March 2010 (UTC)

We are going to put the link to the FPGA Database ( in the external links section. If you have any comments, please let us know.--Maja Gordic (talk) 09:09, 6 April 2010 (UTC)
I don't think the link should be added. It is not our practice to add links to vendor sites or lists of vendors. See WP:EL for more details on what should and should not be linked. - MrOllie (talk) 15:10, 6 April 2010 (UTC)
if the database had more depth of information it could possibly qualify as a historical document. but as it currently stands, in it's current format, it comes across as pretty lightweight. I am sure that you have put a lot of time and effort into it, but in it's current form it is hard to see how it would be useful to people wanting to learn more about the evolution of the FPGAs. -- old codger (talk) 15:07, 18 October 2011 (UTC)

Board Picture[edit]

Sorry, I guess i should have posted this first before submitting the edit:

The caption of the "FPGA Board" picure ("An example of an FPGA Board") seemed a little vague/ambiguous; it was clear to me that it is a dev board for the Stratix, but i could see where those not familiar with it might think otherwise, like "this is what you have to be able to build to work with FPGA's".

--dimmu1313 (talk) 14:50, 24 March 2010 (UTC)

Design Starts[edit]

Could there be some clarification on "FPGA Design Starts"? I'm not really sure what you mean exactly by that title, and there are no units on the data. 10000 what? Dollars? Gates?

Thanks. --dimmu1313 (talk) 15:05, 24 March 2010 (UTC)

Design Using HDLs[edit]

I didn't see where anyone else brought this up, so i thought i'd mention it here:

Would it be worth mentioning the differences between the HDL's (and why someone would choose one over the other); for example, the reason we were taught VHDL in lieu of Verilog was because it is strongly-typed language (which, as a con, requires more code and, in a way, can have a tendency to "self-obfuscate"), as opposed to Verilog's (in my opinion) free-form, simplified feel.

Also i think it is important, at least for those new to FPGA's to realize, to mention that, depending on the level of complexity, the outcome of using either HDL should be the same.

Finally, i think it is important to discuss some of the differences between "conventional" software programming languages, like C, Basic, etc. and HDL, especially the fact that you can have both sequential and concurrent execution; the idea of concurrency, which gives rise to so-called "parallel processing" (i'm pretty sure this is a major source of attraction to FPGA's), should be totally alien to software programmers, as all software programming, as far as i know, is completely limited to sequential operations.

--dimmu1313 (talk) 16:04, 24 March 2010 (UTC)

This sounds good, but aren't these HDLs also used for e.g. fully custom chips? That would argue for placement of the above in a more general article that touches on the design of FPGAs on up. Hga (talk) 14:57, 25 March 2010 (UTC)
I believe this discussion belongs in the Hardware_description_language article. That article is already linked twice from the FPGA article, and I think that is probably correct. —Mrand TalkC 17:29, 25 March 2010 (UTC)

Definition of "programmable"[edit]

Javalenok added the following paragraph:

"FPGA is actually a misnomer. Programming stands for scheduling instructions in time whereas scheduling instructions in space, as it is in case of FPGA, is referred to as configuration. The ability of fabric to be configured multiple times is known as reconfiguration and dynamic reconfiguration when occurs at run-time. The proper name would therefore be an FRGA."

I have not heard of this definition of "programming" before, and it strikes me as original research (does anyone have a citation?). Besides, from that point of view, software programming is "arranging instructions in (memory) space" (scheduling always refers to time, not space). I did not want to remove that paragraph without a discussion, but it needs at least a good source to back it up. – Adrianwn (talk) 11:40, 26 July 2010 (UTC)

I agree, mostly. I don't know that I particularly object to some of the items in the paragraph, but I can't decide what I think about "programming stands for scheduling instructions in time", and overall I don't see the paragraph, as it stands, increasing a readers understanding of the topic. —Mrand TalkC 01:50, 27 July 2010 (UTC)

(1) This terminology is pretty reasonable and dominates in the FPGA industry. FPGAs are known to consist of 'configurable blocks' and are 'configured' rather than 'programmed'. (2) Does Wikipedia demands the prove-links for obvious things? Ok, these were put on the paper by In the terminology section he refers some another source, which I miss. (3) My idea was that making terminology definite does increase the understanding. Namely, it [a] explains the meaning of words, [b] solves the dismay caused by wrong abbreviation, [c] highlights the difference between configurable logic and CPU processing. (4) It should be my fault to highlight the difference if those who dislike it did not understand the point. --Javalenok (talk) 12:48, 31 July 2010 (UTC)

(1) And yet, they are called "field programmable". It is correct that the process of uploading a bitstream to the FPGA is called "(re)configuration", but that doesn't mean that "programming" ist wrong: think of "configurable" as a more specific term for "programmable". Besides, just because two authors try to push a certain definition for "programmable" doesn't make it widely accepted.
(2) No, not for obvious things. The claim that "FPGA" is a misnomer, however, is far from obvious.
(3) It's not Wikipedia's duty to introduce or spread new terminology, since that would constitute original research. However, I do see your point (I think): a paragraph or two about the conceptual differences between software and FPGA configurations might be beneficial to understanding the subject. – Adrianwn (talk) 13:40, 31 July 2010 (UTC)
Yet, they are "reconfigured". These two promote consistence. This terminology is not new - it dominates the technical community. It is you who states something unjustified and new (FPGA users do not program - they describe HW, afterall. What makes configuration a special case of programming? Why not the opposite? ). --Javalenok (talk) 06:10, 1 August 2010 (UTC)
Again, I don't have any objections against the term "reconfigure", and yes, FPGAs are commonly said to be "configured", not programmed (I never claimed the opposite). But this is not what I'm opposed to. In your original edit you basically made two claims:
  1. "FPGA is [...] a misnomer."
  2. "Programming stands for scheduling instructions in time [...]."
My counter-arguments:
  1. field-programmable is an established term, and doesn't refer solely to software, but to any electronic device which can be given new or different functionality after it has been manufactured (i.e., "in the field"). Hence, "FPGA" is not a misnomer.
  2. That is not a common definition for "programming". It is not even valid when refering to software; for example, dataflow computers execute (software) programs as well, but those dataflow programs are not instructions scheduled in time. In fact, the behaviour of a configured FPGA can easily be described as a dataflow program, so if dataflow programs are "instructions scheduled in time", then FPGA configurations are "instructions scheduled in time" as well.
Furthermore, "describing hardware" is not the only way to define the desired behaviour of an FPGA. You could use a behavioral specification of an algorithm and have a compiler (directly or indirectly) translate it to a bitstream; some synchronous programming languages are well suited to synthesize hardware from them. – Adrianwn (talk) 08:59, 1 August 2010 (UTC)
I know that the an FPGA is a dataflow computer because the paper I referred is exactly the dataflow approach popularization and considers the FPGA as a fine grain case. Do not try to wonder the readers, therefore, with the revelation that "there is no scheduling in time". If you see the absurd here it is only because you try to call the process a programming. Secondly, providing source program in HLL does not imply that the a mapping to HW technology is not performed or it producing something different from the usual HW circuit description. Neither, result ceases to be the FPGA configuration even if you call it antiseptically a bitstream. Finally, look at the single-time configurable processors, i.e. ASIPs. Hardly, tailoring a processor to specific app can be called a programming. It is a reason not to "think of "configurable" as a more specific term for "programmable"". --Javalenok (talk) 19:02, 19 August 2010 (UTC)
I can't really see where you refuted my arguments, but I think I now understand why the term "programming" bothers you: you associate "programming" with sequentially ordered instructions (as found in traditional imperative languages), but it actually has a much wider meaning – just look at dataflow programs (as I already mentioned) or the expression "programming your VCR" (here it refers to some sort of "configuration", namely instructing it to record a show at the given time and channel). Hence "programming" does not mean "scheduling instructions in time", which was your original point. – Adrian Willenbücher (talk) 05:48, 20 August 2010 (UTC)

Javalenok, I think your confusion about the terminology stems from the fact that you don't have a very good grasp of the English Language (example: "Do not try to wonder the readers"). When programmers talk about "Configuring" a program they are talking about a *limited* (small) set of options being used to define choices in the behavior of a program, e.g. an existing structure. But with FPGAs the so-called "configuration" goes far beyond being a simple selection of choices. Instead you are defining the complete behavior of the system. Speaking as a software engineer who dabbles in electronic design, I have no problem with the concept of the device as "Programmable", but I would find it unsatisfactory to call it "configurable" because what is done to it goes far beyond simple configuration. An example of "configuration" is when you choose between 1 stop bit or 2 stop bits for a UART, that is a configuration choice for an existing structure. But when you are actually defining the entirety of the structure itself, e.g. the circuitry of the UART, then you have gone far beyond the generally accepted concept of "configuring" a device. When you program an FPGA you get to choose if a pin is an input or an output and if it is a tri-state output. That is a "configuration" choice for that pin. The pin is a predefined structure with a *limited* set of choices and you select which one of those choices you want. But when you have massive freedom to define the circuit that connects to that pin, you have gone far beyond a simple act of configuration. The keyword here is "limited choice" equals a configuration, but huge choice puts you into the realm of programming. Trying to define that boundary is a bit tricky, but clearly FPGAs are far past the point of "limited choices". Otherwise you might as well argue that all assembly language programming is really just configuring the computer. As a further thought, try not to get too hung up on the terminology, it has (nearly) all been created within the last 60 years and is still in a state of flux. Also the English Language itself is full of contradictions. If you keep NIBBLing at it, it might BYTE you with it's Double Words ;-) (talk) 06:17, 18 October 2011 (UTC)

Hi Javalenok, I took a look at that pdf you referenced, I see now why you are confused. But that pdf is not authoritative of anything except "hogs-wallop" and is certainly not a guide to proper English usage. For instance, consider this passage which is on page 8, "The very high and increasing number of design starts on FRGAs demonstrates, that the mask-configurable ASICs have **been the looser already years ago**". This author has a penchant for obfuscatory discourse which is only exceeded by his terseness and his love of name-dropping "Von Neumann". And yet despite his fondness of incomplete sentences and angular references, he still manages to take 49 pages to tell us that ASICs cost a lot and take a long time to develop, consequently they are not being used very much anymore, but FPGAs are now cheap and are also quick to develop, and are therefore displacing ASICs. He also makes references to the importance of using his *stunning* insight in teaching curriculum, but he actually sounds like an undergrad hopeful who is trying to impress us with his big vocabulary. If that guy is a teacher than gawd help his students... by no means whatsoever does that document meet wiki standards of reference. - old codger (talk) 16:25, 18 October 2011 (UTC)

what is a Field Programmable SOC (FPSOC)?[edit]

Hi all, I know FPGA, and SOC. but what is this FPSOC(field programmable System on Chip). can anyone create a topic in Wikipedia for FPSOC.

thanks herod — Preceding unsigned comment added by Herodfranklin (talkcontribs) 18:11, 29 August 2011 (UTC)

er uh? take one System On a Chip, e.g. a microprocessor (soft core) + additional circuitry such as UARTs, video output, etc.. Place all on one FPGA, set blender to mince (spice?), and bake...  :-) (talk) 06:28, 18 October 2011 (UTC)


Amused to see "dice" used as plural of "die" in this context... Moon Oracle (talk) 19:48, 4 September 2011 (UTC)

Dead link[edit]

History of FPGA dead link.. Soathana (talk) 13:10, 10 October 2011 (UTC)

Comparison to Processors[edit]

I feel this could benefit from a section comparing FPGA's to processors. Many (if not most) systems that that have FPGAs also have processor or microcontrollers and functionality must be divided between them. I propose a section under comparisons to adress this. FPGA have parallelism, can better guarantee timing, etc etc. I'll check back for comments here and see about writing that sometime later.----Asdf39 (talk) 02:27, 11 October 2011 (UTC)

I went ahead and added this section in. I'll note that I think some of the explanation could perhaps be moved into the architecture section as it's general to FPGA's and not specific to the comparison to processors. I think concrete examples such as the factory example I tried might be beneficial in the into or architecture section however I didn't have time to work it in. --Asdf39 (talk) 17:07, 18 October 2011 (UTC)

Somewhat Biased[edit]

I'm sure it is unintentional, but this article mostly focuses on products from Xilinx -- to the extent that it comes across as biased -- even after the above mentioned rewrite. It would be nice to see more references to other products to give more of a sense of the overall market. — Preceding unsigned comment added by (talk) 04:24, 18 October 2011 (UTC)

Remove Versus Processors section[edit]

I would remove the unsourced Field-programmable gate array#Versus Processors section completely. Some distinctions, such as "logic" and "computation" are dubious. The "factory" analogy is a troubling; a dedicated microprocessor with a fixed program would be a "full" factory; some FPGA's can be reprogrammed. This section is really about different models of computation, and it should not get this much coverage. Addition in a microprocessor or a gate array is usually done with combinational logic; an FPGA and a processor can both implement finite state machines. An FPGA can implement a soft processor.

The following section, which distinguishing FPGA and CPLD, makes sense.

Glrx (talk) 17:35, 18 October 2011 (UTC)

While strictly speaking it is not inaccurate, I agree that the analogy is stretched, and therefore too nuanced and ripe for misinterpretation. That, along with the fact that there are now multi-core and multi-threaded processors (which provide parallel processing), I agree this comparison needs to be revamped completely or eliminated. My preference would be a more proper comparison, since this is a valid topic/question. But I don't have the time to do it. —Mrand TalkC 22:46, 18 October 2011 (UTC)
First, note that I posted a section in talk above about the versus processors section before writing it. Second, the section addressed multi-core processing and soft core processors in the last paragraph.
I don't disagree there are flaws but as I said, there is value in the section for several reasons. The first is that Processors, FPGAs and ASICs do the majority of computation in all electronic devices. If a comparison to ASICs and CPLD's stand then a comparison to processors is as valid. Every design that needs processing must make the choice between processor, FPGA or ASIC (and/or their variants) and many designs have FPGAs and processors and must partition tasks between them. Secondly, and as importantly, a comparison to processors is an excelent way to provide insight into how an FPGA works because processors are better understood by more people. Far more people have written software in school or professionally than have written FPGA code so it's an excellent starting point for helping to illustrate how an FPGA operates. But as I said above (and perhaps these talk sections should be combined), some of that content in the processor section might be better suited elsewhere. The factory analogy worked to illustrate both the flexibility and the parallel nature which are difficult to illustrate otherwise. Please provide comments because otherwise I will try to refine the section based on some of the criticism here and post it again. --Asdf39 (talk) 16:40, 21 October 2011 (UTC)
I agree there is value to the comparison - it is a question that I've seen posed numerous times here and across the Internet. But it needs to be much more concise in order for it to be encyclopedic. —Mrand TalkC 15:13, 24 October 2011 (UTC)
A more direct goal would be to find reliable sources that compare FPGA and processor. Then report what those sources say. - Glrx (talk) 21:19, 24 October 2011 (UTC)
The Soft microprocessor article discusses the use of FPGA's and other logic devices to emulate CPU's and discusses their differences. I have added a paragraph under Applications referencing this. KillerGardevoir (talkcontribs) 16:34, 8 July 2014 (UTC)

"Soft core" mislinked[edit]

Soft core -- (talk) 13:57, 20 October 2011 (UTC)

improve "Applications in High Performance Computing" section?[edit]

Noticed a "cleanup" flag in "Applications in High Performance Computing" section - reviewed this section, and noticed two concerns 1) none of the content includes references to respected third-party resources, and 2) there were passages that appear to violate the Neutral Point of View.

Will try to find reputable sources for this section, and re-word the content so that it stays neutral.

Would appreciate your help in improving this section. Privatechef (talk) 00:34, 22 November 2011 (UTC)

I would delete the entire section. FPGAs may well be useful in HPC, but sources are required. The section may be WP:OR.
The section does not appear to refer to actual applications but rather speculate about possibilities. Statements such as "is expected to consume", "may be 10 times faster", and "The adoption of FPGAs in high performance computing is currently limited by the complexity of FPGA design compared to ..." reinforce the notion that section is about a future hope. Where are the actual applications?
I suspect the section fails WP:UNDUE.
The suggestion of using fixed vs floating point and trading precision are shoehorn arguments (the WP:NPOV angle). It is also reminiscent of von Neuman's argument against floating point. The section makes favorable allowances for FPGA designs, but doesn't do the same for other forms. Is the AES encryption processor using four cores or just one? Is it a factor of 10 or a factor of 2.5?
That an FPGA can outperform a processor for AES does not say much; it is also not clear that AES is a taxing problem in most applications. If it were a taxing problem, then custom silicon could be even faster. There are economic tradeoffs that are not addressed. The N-body simulation example is also suspect; an orrery would use lots of arithmetic calculations; an array of processors might be better than an array of FPGAs. The examples of image processing beg comparison with DSP processors.
The section is confused. It talks about HPC, but then talks about "low MHz clock rates". Power consumption is an important design issue, but I'm not sure that it is a primary concern with HPC.
The section advertises Xilinx Virtex-5 and Virtex-6.
FPGAs are used for brute force attacks on DES.[3] The brute force vulnerability of 56-bit DES has been known for decades. However, modern codes are designed to defend against brute force attacks by using longer keys. The hope is that adding one bit to the key will increase the average brute force search time by a factor of two. That's an exponential wall. The suggestion that FPGAs are suitable for naive brute force attacks on modern cryptosystems demands a reference.
Glrx (talk) 16:58, 23 November 2011 (UTC)
Thanks for the response, Glrx. I think application acceleration is a notable use for FPGAs. Agreed that it’s not appropriate to advertise Xilinx FPGAs, so wondered if by eliminating product mentions and sticking to neutrality principles the section could be saved. Thoughts? Privatechef (talk) 22:51, 23 November 2011 (UTC)
Well, I don't think the section is appropriate for the article. There are no sources. The source I gave for 56-bit DES doesn't speak to a broad application. Right now, the section is longer than the Application section -- and there aren't any other dedicated applications sections. Does "application acceleration" mean "high performance computing"? I don't think the section should be saved, but we can wait for other comments. Glrx (talk) 23:16, 25 November 2011 (UTC)

Proposed merge of "Partial re-configuration"[edit]

There's no apparent reason to me that partial reconfiguration should be on its own page; it's a short article that has no applicability outside of discussing FPGAs. (The only other article linking to it is "reconfigurable computing," which obviously has many references to FPGAs...) My only concern is that there are a bunch of external links. However, the external link section appears to have been tagged as such for well over a year, and most of them should probably just be pruned accordingly on a brief review... – 2001:db8:: (rfc | diff) —Preceding undated comment added 08:27, 22 December 2011 (UTC).

Partial reconfiguration (PR) is a scientific theory in computing and electronics. FPGA is a practical mean to do PR. Not giving any opinion about the merge, maybe the PR article is too short to be on its own, but keep in mind the difference. Epok (talk) 09:18, 17 April 2012 (UTC)
Why not merge "Partial reconfiguration" with "Reconfigurable computing"? That would make a lot more sense to me. Ewaladel (talk) 17:43, 14 August 2012 (UTC)

Programming Paradigm?[edit]

As a software engineer who has never used an FPGA, I don't understand how they work in practice. What is the programming paradigm? Could someone provide a simple "hello world" example of an FPGA doing something? —Ben FrantzDale (talk) 16:47, 16 January 2012 (UTC)

Although workflow and practices are not identical to ASIC design workflow, both are "programmed" (from the developer perspective) mainly using hardware description languages which, by definition, describe hardware. Hardware is inherently concurrent and low-level in comparison to almost every software programming paradigm. From the hardware perspective "field programmable" means that configuration of this hardware (which is, on high level, described by HDL) can be written to the device after its' manufacture. Examples in VHDL article are likely to be useful in order to comprehend at least some of the concepts involved, from a software developer perspective with rudimentary knowledge of digital logic. A typical "hello world" example for FPGAs might be something like a clock divider driving a blinking led on a development board. This kind of example involves the HDL part, but also device-specific configuration, like connecting the clock input and the LED output to correct pins. Some of this stuff is very vendor-specific, while other parts can be quite portable. (talk) —Preceding undated comment added 22:08, 18 March 2012 (UTC).
this is an old question, but I will answer it anyway. Basically, an FPGA allows for the effective customization of the physical architecture. You can, potentially, program the FPGA so that the correct type of gates and memory and whatnot are all connected according to some flow-chart design, so that if you were a blind man, you could not tell the difference between the FPGA and a one-off chip that has been designed ONLY for that single purpose. In general, you must introduce an increased complexity in the design because you cannot guarantee that the FPGA's available programming space will allow you to implement your design in a 1:1 fashion. Rather, you might need to add on extra designs that are a result of implementing a custom design in a generalized framework. (talk) 21:58, 28 June 2013 (UTC)

Copyright violation?[edit]

The non-labeled section on the history of FPGAs in the introduction appears to be identical to page 26/27 of a book "FPGA-BASED ADVANCED REAL TIME TRAFFIC LIGHT CONTROLLER SYSTEM" on Scribd . As I can't find any copyright information there or any information on this book in any library db I am not sure about the direction of copying. But the missing references and the uploading date (04/17/2012) suggests it was copied from WP to the book. — Preceding unsigned comment added by (talk) 16:11, 3 May 2012 (UTC)

The document you referred is not a book but a Project report, so there is a chance that report writer copied it from Wikipedia. --SMS Talk 16:35, 3 May 2012 (UTC)

History is wrong[edit]

this article depicts history wrongly. contrary to what is repeated over and over again, xilinx was not the first one to invent fpgas. proovably, signetics corporation invented the first fpga (the 82S103 chip) in 1977.

we should finally correct this global mistake. — Preceding unsigned comment added by (talk) 11:47, 28 March 2013 (UTC)

Article needs a text reduction[edit]

Needs to become more brand agnostic (moving relevant info to other pages that cover specific implementations) and be clearer on the generalities/commonalities. I couldn't find the information I sought, price/cost considerations (between FPGAs and alternatives) and clear user cases (not general applicability). (talk) 04:10, 28 August 2015 (UTC)