Glossary

Bitstream

Moderate

Configuration data loaded onto an FPGA is called Bitstream.

What Is Bitstream?

Typically, a Field Programmable Gate Array (FPGA) has a file containing a set of instructions or a program which is called FPGA Bitstream as it contains a stream of bits. 

FPGA Bitstream

FPGA bitstream file is used to configure the pinout and set up the internal logic modules. It is generated by HDL (Hardware Description Language) and you can use the FPGA tool to configure it.

In the context of FPGA, Bitstream is a circuit design in digital logic for configuring the device. As per the name, it can be seen as a stream of bits that describe the function of the design.

FPGA stands for field-programmable gate array which is an integrated circuit designed to be configured by a customer or a designer after manufacturing. This means after the manufacturing of an integrated circuit, its configuration can be changed by the customer according to their requirement. The configuration can be done by software or hardware means. If we use software means then it will take considerable time to configure but if we use hardware means, then it will take lesser time but will consume a considerable amount of power and programming effort which is not feasible for large projects. That's why in most cases, the hardware configuration is used for FPGAs.

To program an FPGA device, we need a file in Verilog or VHDL language which describes how the particular integrated circuit should behave.

Full vs Partial Bitstreams

The full bitstream is the program that runs on the FPGA. It controls all of the I/O pins and has a bunch of RAM and flash memory attached to it. The partial bitstream is the program that runs on the FPGA and is only responsible for implementing part of the design.

Partial bitstream implementation of an FPGA is a time-saving strategy since it avoids the implementation of unused portions of the design. It is also known as partial reconfiguration or partial compilation. It can either be written using the parallel interface on the target device or using a host computer.