PIF Z boards are out of production. This means that they are available for large orders that justify restarting production but they are only available for small orders when we have over production from building a batch. PIF 2 boards are in stock.

PIF - FPGA for the Raspberry Pi

PIF_2 board PIF_2 on Pi 3 PIF_Z board PIF_Z on Pi Zero

Order the PIF_2 here Shipping is $22.00 per order $49.99 You can increase the number of units at the checkout.

What are they?

PIF_2: a powerful FPGA (7000 LUTs) for the Pi 1B+, Pi 2, Pi 3, and Pi 4.

PIF_Z: a powerful FPGA (2000 LUTs) for the Pi Zero.

FPGAs are programmable digital chips - here are some of the features of the pif FPGAs:

lookup tables (LUTs) to implement digital logic

flip flops for storage

routing tracks to connect everything together

specialist resources such as SRAM blocks, PLLs, and hard-coded I2C/SPI communications channels.

Firmware determines how the pif FPGAs uses these resources. Firmware starts with a program which is then converted into a configuration bitstream and injected into the FPGA. Usually FPGAs are programmed in a Hardware Definition Language (HDL). Most commonly this is VHDL or Verilog, though there are alternatives such as the Python based MyHDL. Here is a tiny fragment of VHDL code:

constant MAX : integer := 55; signal counter : integer range 0 to MAX := 0; -- counting happens when the clock ticks process (clock) begin if rising_edge(clock) then if resetSignal or (counter=MAX) then counter <= 0; else counter <= counter + 1; end if; outputSig <= (counter=MAX); end if; end process;

The development process is this:

write and simulate an HDL program

compile the HDL program to make a configuration bitstream

download the configuration bitstream to the FPGA

For the pif boards, simulation and compilation software is a free download from Lattice Semiconductor. We supply Python software to inject the bitstream into the FPGA.

FPGAs come in a huge range of sizes, with the latest and greatest FPGAs typically costing as much as a small motor car. Since an FPGA LUT is approximately equivalent to a 10cm (4") square logic board with four TTL logic packages, the 2112 LUTs in the PIF_Z are equivalent to a wall of logic measuring 450cmx450cm (180"x180"); more if SRAMs, PLLs and so on are included in the calculation.

Key features

a complete FPGA development target - FPGA programming hardware is not needed

plenty of on-chip 4-input LUTs. The PIF_Z has 1280, the PIF_2 has 6864

plenty of on-chip 9-Kbit SRAM blocks. The PIF_Z has 8, the PIF_2 has 26

the FPGA is non-volatile, with on-chip flash memory for storing the configuration bit stream

up to 256Kbits user flash memory

hard coded I2C, SPI, PLL, and timer/counter blocks

powered from the Raspberry Pi expansion connector (P1)

plenty of expansion connectors. Both boards have a 40-pin (2x20-pin) connector which matches the Raspberry Pi's P1 connector. In addition the PIF_2 has one 3x13-pin connector and one 2x8-pin connector; the PIF_Z has two 2x8-pin connectors

support software supplied (in Python) for injecting a new configuration into the FPGA

example projects supplied, including a project that controls logic inside the FPGA from a web browser

And Flashing Lights!!

both boards have red and green LEDs

as befits a more playful board, the PIF_Z mounts two RGB smart LEDs. Example firmware shows how to control these devices

What you get

As part of the testing procedure, every pif board has its ID EEPROM programmed and its non-volatile FPGA is loaded with a simple configuration that flashes the on-board LEDs.

PIF_2

one assembled and tested PIF_2 board. The board is assembled with a Raspberry Pi Foundation recommended stackable connector on the 40-pi Pi interface.

PIF_Z

one assembled and tested PIF_Z board

one loose 40-pin socket.

What about the original Raspberry Pi 1A and 1B?

The Raspberry Pi Models 1A and 1B had a 26-pin expansion connector. This connector is an electrically compatible subset of the more recent 40-pin connector. However, the mechanical layout of the Pi was changed when the 40-pin design was adopted and it is impractical to use the new 40-pin expansion cards on previous generation 1A and 2A Raspberry Pi boards.

We do not expect to manufacture any more boards for the 26-pin form factor.

Documentation and Downloads

For the Pi 1B+, Pi 2B, or Pi 3B (PIF_2):

For the Pi Zero (PIF_Z):

Note

Please note that the pif boards are designed for users who are familiar with electronic design and debugging, and familiar with the usual safety precautions when working with electronic equipment.