TIF - a tiny FPGA board
What is it?
The tif board is coin sized at 1"x0.7" (25x18mm). Despite the size a tif is a complete system with a powerful FPGA and a hard coded USB HID interface for programming, communications, and control.
An instant-on, non-volatile, high performance FPGA is a perfect target for experimenting with FPGA design, for developing design options, for implementing your own custom chip.
A USB HID interface means that the tif board will work without special drivers on any Windows, Linux, or Mac computer.
FPGAs
FPGAs are programmable digital chips. Here are some of the features of the tif FPGA:
- 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 tif FPGA 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 tif board, 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 1280 LUTs in the smallest tif board are equivalent to a wall of logic measuring 350cmx350cm (140"x140"), more if SRAMs, PLLs and so on are included in the calculation.
Key features
- a complete FPGA development target
- FPGA programming hardware: not needed
- regulated power supply: not needed
- external clock source: not needed
- plenty of on-chip 4-input LUTs - the tif-1200 has 1280, the tif-4000 has 4320
- plenty of on-chip 9-Kbit SRAM blocks - the tif-1200 has 7, the tif-4000 has 10
- the FPGA is non-volatile, with on-chip flash memory for storing the configuration bit stream
- up to 96Kbits user flash memory
- hard coded I2C, SPI, PLL, and timer/counter blocks
- powered from the USB port or via the expansion connector
- connects to a PC as USB HID (Human Interface Device) so there are no drivers to install
- 20-pin (2x10-pin) expansion connector matches common breadboards
- red and green LEDs
- support software supplied (in Python) for programming a new configuration into the FPGA
- example projects supplied, including a project that controls logic inside the FPGA from a web browser
tif-4000, including software: $34.99 - The tif-4000 is out of stock. It may be in stock at distribution here
tif-1200, including software: $24.99 - the tif-1200 has a Minimum Order Quantity (MOQ) of 20 boards. Contact sales to order this product.
PC requirements
- a USB socket - either a USB socket on a PC or a socket on a USB hub
- a USB micro cable, as used in most modern phones, pads, and ereaders
- Windows XP, Vista, 7, or 8. Or Linux.
Software
Download the software bundle from the Github repo here.
More information
The manual is here and the schematic is here.
Please note that the tif board is designed for users who are familiar with electronic design and debugging, and familiar with the usual safety precautions when working with electronic equipment.