Abstract


  • Stands for Field Programmable Gate Array
  • The ‘do anything’ hardware that is made up a large number of CLB
  • FPGA can be programmed to do almost anything, we can use Hardware Description Language to perform Circuit Design, then upload to FPGA, and it will have the ability of that particular hardware circuit design. Commonly used for tasks that require parallel processing, real-time processing, or specialized hardware acceleration

Versatile

Since we can get a custom digital circuit with FPGA using codes without the need to design and fabricate a custom chip, it is great for prototyping new hardware design and building high performance computing system etc.

Cheaper?

Cheaper than Application-specific integrated circuit (ASIC) - Wikipedia if the demand for that particular chip design is very small. ASIC is cheaper if the demand is huge by leveraging on the economy of scale.

Much faster

Normal processor needs to perform Fetch, Decode of the software Instruction, FPGA can just go straight to Execute since the hardware is structured in a way that process the incoming zeros and ones without the need of pre-processing.

More complex to work with

Require special tools and knowledge in circuit design.

Trading firms's FPGA use case

FPGAs are used by trading firms to process market orders without the involvement of CPU and Kernel to minimise latency. They obeyed just enough of the Network Protocol to work with other devices, but stripped away any and all surplus code and functionality and trimmed every bit of timing down to the bone. So the trading firms can beat some other guy’s trade.

FPGA takes 10ns from receiving the market order to running the trading strategies and sending back a response, it is insanely fast considering accessing L1 CPU Cache takes about 1ns. OS and CPU are so bloated compared to FPGA!

CLB

  • Stands for Configurable Logic Block
  • A group of Logic Gates that can be programmed to perform various functions

Hardware Description Language


References