element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Publications
  • Learn
  • More
Publications
Blog What the FPGA is that?
  • Blog
  • Documents
  • Events
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Publications to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: pjclarke
  • Date Created: 17 Oct 2011 2:14 PM Date Created
  • Views 681 views
  • Likes 2 likes
  • Comments 2 comments
  • cpld
  • fpga
Related
Recommended

What the FPGA is that?

pjclarke
pjclarke
17 Oct 2011

FPGAs or field-programmable gate array are becoming more and more popular it seems. Over the last year I have seen an increase in people asking what FPGA kit should they buy, which languages should they learn, VHDL or  Verilog? There are lots of questions and lots of answers. So to deal with that I am starting a series of blog posts here on DIT to look at how to get started with FPGAs - starting with what a FPGA really is.image

 

I started in electronics before FPGA’s really came along and when we were still building circuits out of 4000 series and 74LSxx chips. These were just for glue logic that we needed to interface microprocessors to RAM and ROM etc. But there was only so much you could get in an IC and it was not long before digital engineers were looking for other ways to get lots of logic inside a single chip. More importantly this had to be the logic we wanted - programmed for our needs. So we started using EEPROMS and I have written a separate blog about how we used these and GAL chips before FPGAs came along.

 

So FPGAs are the chip manufactures answer to our need for large amount of logic in one chip but not the first. There are also chips called CPLDs or Complex Programmable Logic Device. The most common and famous chip  being the Altera MAX3000EEUP+ and 7000 series. From a beginners point of view these chips look very much the same. However at a top level the differences are as follows; CPLDs can be programmed once (or repeatably) like a Flash chip and store their configuration, FPGAs, however, are  blank on power up and need a device to upload the configuration every time. CPLDs typically have lower gate counts and this is the major difference that most engineers see. CPLDs are basically less flexible internally in the way the logic blocks are connected together but have the advantage of being more predictable on timing. FPGAs however have greater connections and allow for more complex systems. The other great advantage FPGAs now have over early chips are the built in  features. These features include RAM logic, PLL (Phase Lock Loops) for generating difference clock frequencies and pre-built logic like adders and other math blocks. These give FPGAs the greater power and  flexibility and I guess is why so many people now want to use them.

 

At the base level inside each FPGA is a block of logic called a LAB, Logic Array Block or sometime called a CLB (Configurable Logic Block). These blocks are then made up of three key elements; a Look Up Table (LUT), a  Full Adder and a D-Type flip-flop. There are also a number of bypass Multiplexers (MUX) which we can consider as bypass switches.

image

 

The LUT is nothing more than what I have described in my blog about using EEPROMS. They have a number of inputs which is used to address a register inside a table, this table contains a number of bits which are programmable and then output to the next stage. Most common designs with have two LUTs with something like three input each and output a single bit each. However like all features in FPGAs this differs from manufacture to manufactures as some now have six inputs each.

 

The next stage is the Full Adder that will normally have a bypass MUX or switch in front and behind it. This allows for the output of the LUTs to either go though the adder or not. The Adder by the way will also have a carry in and out allowing lots of LABs  to be connected together to make large adders and counters.

 

The last stage is a D-Type flip flop that takes its input either from the LUT or Full Adder dependent on the switch settings. It will also have access to the system clock lines. To allow for either synchronous or asynchronous configurations as well as storage. The final output will be a single logic bit that then reaches out into the matrix of connections.

image

 

This matrix of connecting wires run between each LAB and themself contain programmable switches. These switches allows for the routing of the signals around the chip as well as to and from each LAB. At a architecture level FPGAs are very complex and if we had to figure out all these connections and setting alone then it would takes weeks to do the most simple of circuits.

 

Thankfully the manufactures have supplied us with tools to make this easier to do. These software packages allow us access to what is called a Hardware  Description Language (HDL). Its these languages that I’ll look at next time and explain the differences and how powerfully they can be.

 

Did  you also know that Microcontrollers are starting to carry small fragments of FPGAs in them. Microchip are now placing Configurable Logic Cells (CLC) in the chips and allowing on the fly configuration from the core micro.

 

Thanks

Paul

  • Sign in to reply
  • Former Member
    Former Member over 14 years ago

    Great job Paul, Can't wait for the next one in the series.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • gervasi
    gervasi over 14 years ago

    I didn't realize that about the structure of an FPGA.  A CLB plus some registers plus a state machine equals a microprocessor.  I suppose that's how people put simple micros in an FPGA.  I also didn't know they're putting FPGA elements in micros.  Maybe the two will merge one day.  In school we only studied PLAs, and I always assumed FPGAs were just PLAs with fancy tools that give you higher layers of abstraction.  Obviously I've never done an FPGA but this makes me want to.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube