HOME       UP       PREV       NEXT (Virtualising the FPGA)  

FPGA As A Processor

FPGA is increasingly seen as a computing element alongside CPU and GPU.

Energy savings of two orders of magnitude are often seen when a suitable application is accelerated on FPGA. Execution speed can also commonly increase, although this is hampered by the order-magnitude reduction in clock frequency compared with CPU (e.g 200 MHz instead of 2 GHz).


Block Diagram of the Kiwi substrate, ksubs3, installed in a Zynq FPGA (all parts simplified).

The FPGA needs connecting to mainstream computing resources. The figure shows a typical setup using a Xilinx Zynq chip, although much larger FPGAs are normally used.

The so-called `substrate' provides basic start/stop and debugging control, together with access to a programmed I/O (PIO) register file. It also provides services for a network-on-chip between the processing blocks that provides an `FPGA Operating System' API for file server input and output. Finally, it also provides access to DRAM banks and platform-specific inter-FPGA links (not shown).

On the Zynq platform, two forms of memory access are provided to the single DRAM bank that is also shared with the ARM cores. One is cache-coherent with the ARMs and the other is not, but has higher bandwidth.


5: (C) 2012-17, DJ Greaves, University of Cambridge, Computer Laboratory.