This video is an introductory presentation about FPGA and programmable logic technology. I delivered this 45 minutes talk at an event hosted by 7 Peaks Software in Bangkok, Thailand, on November 19th, 2019.
Highlights from the presentation include:
- 05:07 Who uses FPGAs?
- 09:06 What is an FPGA?
- 12:13 How to emulate logic gates using static RAM
- 17:47 Common FPGA primitives
- 19:51 Cheapest and most expensive FPGA
- 20:53 Floorplan of an FPGA
- 24:30 VHDL
- 28:05 Synthesis and Place and Route
- 30:50 Soft-cores
- 33:15 Hybrid FPGA / CPU (Zynq-7000)
- 36:44 Advantages and disadvantages of FPGA
- 40:28 Examples of products that contain FPGAs
- 45:18 Free learning resources from VHDLwhiz.com
Who uses FPGAs?
There is a wide range of applications for FPGA technology. Products ranging from satellites in space to trading robots on Wall Street utilize programmable logic. Here follow some industries that are known to be heavy users of FPGAs.
The defense industry is in an excellent position to benefit from custom FPGA implementations. They have lots of money and high requirements for quality. The spec lists for their products are often extreme because military-grade equipment is a tier of reliable engineering well above the consumer and industrial grades. Their budgets are always high and sometimes virtually unlimited, coming from a stable source like government backing.
All of the above are reasons why FPGAs are used a lot for defense applications. Not only for weapons but also for things like radio communication devices and test equipment. I’ve worked in the industry. You can read more about my experience as an FPGA engineer in the defense industry here.
FPGAs are used extensively throughout the space industry. There are many reasons why they are a good fit for satellites. They are inherently low-power, they can be made radiation-hardened, and it’s easier to verify the correctness of an FPGA than the software running on a CPU or microcontroller.
Many electronic designs in space are for things like interface control, reading of sensor data, signal processing, or control systems, tasks that suit an FPGA well. Furthermore, space applications often fall under the same reliability requirements that are standard in the aerospace industry.
The aerospace industry loves FPGAs for many of the same reasons as the space industry, but most importantly, because it’s easier to verify the correctness of an FPGA than software.
Proving that a computer program has no unintended consequences is difficult and time-consuming. International standards for airborne systems mandate that electronics used in aircraft must follow strict verification requirements.
While software has to follow the DO-178C aviation standard, FPGAs fall under the DO-254 design assurance guide for airborne electronic hardware. In most cases, it is easier and cheaper to satisfy the requirement of the hardware standard than for a corresponding software implementation.
Vehicle manufacturers use FPGAs for things like motor control of diesel engines in trucks, and also for automated driving systems. You can even find FPGA accelerated communication and entertainment systems in modern cars.
Furthermore, electric and hybrid vehicles are likely to use FPGAs for motor control tasks. Three-phase induction motors require strict timing control of the magnetic fields as the motor rotates. Any inaccuracy will translate into loss of power efficiency.
The telecommunication infrastructure utilizes a lot of FPGA technology. As already mentioned, FPGAs are standard in space applications like communication satellites. Other uses of FPGAs in the telecom industry included network routers and wireless base-stations.
For consumer telecom equipment like mobile phones, FPGAs are not that common. You are more likely to see an ASIC than an FPGA for a custom solution in a mobile phone. Even though the initial cost of ASIC production is much higher than an FPGA, they are still economical because of the high sales volumes of mobile phones.
All big four tech companies develop custom FPGA solutions for use in their data centers. FPGAs are essential for them to be able to handle such high volumes of data with such low latency.
It’s hard to find details about what kind of problems they are solving with FPGAs. Still, judging by circumstantial evidence like job listings, it becomes evident that they rely heavily on FPGAs. Services like Amazon AWS, Microsoft Azure, Google, and Facebook, are all made possible in part by FPGAs.
Algorithmic high-frequency stock market trading (HFT) is all about crunching the numbers faster than the competition. Companies who engage in these activities do everything in their power to lower the latency of their processing pipelines.
Their servers sit physically close to the stock exchange, and they invest in the fastest computer hardware money can buy. When the competition uses CPUs and GPUs, you turn to FPGAs. Then they can run the statistical analysis on incoming market data marginally faster and make more money.
FPGAs have experienced a renaissance among the mainstream IT community in the last few years. Because of the Bitcoin hype, many ordinary people have now heard about FPGAs.
The economics of cryptocurrency mining is all about managing the electricity bill. The coin has got to be worth more than what you paid for the electricity to mine it for it to be profitable.
A custom FPGA solution usually is more power-efficient than an algorithm running on a CPU or even a GPU. Many crowdfunded FPGA-miner boards have popped up over the last years.
Examples of products that contain FPGAs
FPGAs are not that commonly found in consumer electronics. Still, there are plenty of examples of it. Here follow a few products you may have heard of that contain FPGAs.
This VR headset uses three Lattice FPGAs, as we can see from this teardown. It is unclear what the purpose of the FPGAs are in this design.
However, these are relatively low-capacity devices, so a good guess is that it’s for controlling an interface or reading a sensor, rather than image processing.
Google’s self-driving car is running on FPGA technology. The project is still in the development stage, and FPGAs are great for prototyping.
The referenced article states that they use FPGAs for “sensor processing,” which may be the LiDAR systems that the car has.
It is uncommon to find an FPGA in a mobile phone. An ASIC usually is more economical because of the large production quantities of mobile handsets. Despite this, the iPhone 7 uses an FPGA.
The linked article suggests that it may be for some new artificial intelligence (AI) feature. Perhaps Apple wasn’t finished with this particular hardware and needed the possibility to push over-the-air (OTA) hardware updates to this chip. That’s an innovative use of an FPGA.
The high-end graphics accelerator card from Apple can render up to 3 8k ProRes RAM video streams simultaneously, in real-time.
Interestingly, it uses an FPGA to perform the heavy lifting. Image processing is something that FPGAs do really well. Perhaps they needed to create a custom solution because GPUs couldn’t handle 8k video fast enough.
The Nvidia G-Sync card syncs the output from the graphics card to the refresh rate of the screen. If you are a PC gamer, you may have heard of V-Sync, which is Nvidia’s software solution to this problem.
The frame rate sync is an example of a task that is easy to perform in hardware but consumes much CPU when done with software.
The Sigilent SDS 1202X-E is a 200MHz, 2 + 1 channel oscilloscope. A teardown by EEVblog reveals what powers it, a Xilinx Zynq-7000 hybrid CPU/FPGA.
The Zynq-7000 chip has two hard ARM CPUs and an on-chip programmable FPGA part. The advantage of using the Zynq is that you can run Linux on the processing system (PS) part. With Linux, you can use all the high-level GUI libraries to create a beautiful user interface.
At the same time, you can sample sensor data at high speeds by using custom logic in the programmable logic (PL) part of the chip. The interconnect between the PS and PL part has a very high bandwidth since it’s within the same silicon die. Overall, an excellent chip for creating high-performance internet of things (IoT) applications.
The UltraMiner is one of many crowdfunded FPGA miners that have appeared over the years. The funding campaign is still ongoing at the time of writing.
According to the selling points on the project page, it has four times the energy efficiency of a GPU miner.
The Pebble is an early smartwatch that was crowdfunded through a Kickstarter campaign back in 2012. It uses a tiny FPGA for controlling the LCD.
If you owned a Pebble, you’ve been walking around with an FPGA on your wrist the whole time. The firmware for controlling the Pebble is open source, the code for interfacing the FPGA is in their repo on GitHub.
Want to learn how to program an FPGA?
To create logic for an FPGA, you need to use a hardware description language (HDL). This blog specializes in VHDL, which is one of the two popular HDLs.
You can try out VHDL programming on your computer in the comfort of your home for free. Every VHDL development starts in a simulator, and the free, Basic VHDL Tutorials teach you how to simulate using the student edition of the most popular VHDL simulator: ModelSim.
VHDLwhiz learning resources
Are you familiar with programming but new to VHDL?
Do you need a short introduction to this unfamiliar subject?
Is your schedule full with no time left to study?
Understand the basics of FPGA development using VHDL in a few evenings! This course is for IT professionals and students who need a fast run-down of the subject. With this course and the low-cost Lattice iCEstick development board, you will be developing real hardware within hours.
The course will be available early next 2020. The price tag will be roughly the same as a visit to your local Starbucks coffee shop.