A complete, vendor-agnostic guide to FPGA Programming — every configuration method, every programmer type, the full bring-up workflow, and a searchable database of real part numbers from Xilinx/AMD, Intel/Altera, Lattice, Microchip, Gowin, Efinix and more. Built for PCB designers and embedded engineers who need to get a bitstream into silicon, the first time.
The fundamentals every engineer should lock down before choosing a configuration path.
FPGA Programming is the process of loading a configuration bitstream into a Field-Programmable Gate Array so its sea of look-up tables, flip-flops, DSP slices and block RAM is wired into the digital circuit your HDL describes. Unlike an ASIC, an FPGA is reprogrammable — you can iterate the same silicon thousands of times.
Most modern FPGAs are SRAM-based, meaning the configuration is volatile and lost at power-down. The fabric must be re-loaded on every boot, either directly over JTAG during development, or automatically from an attached configuration flash (SPI / Active Serial / BPI) in production. A second class — flash- and antifuse-based devices such as Lattice iCE40/MachXO, Intel MAX 10 and Microchip IGLOO2/PolarFire — store the configuration internally and are effectively "instant-on".
Choosing the right path is the heart of FPGA Programming: it affects boot time, board cost, security and how you handle volume manufacturing. When you are ready to move from a bench setup to a production run, FPGA Programming services from PCBSync can pre-program your configuration devices, FPGAs and SoCs at scale with full serialization and traceability.
The nine configuration interfaces you'll meet across every major FPGA family — what they are, when to reach for them.
The universal four-wire (TCK/TMS/TDI/TDO) port used for direct SRAM configuration, debug, and in-system flash programming. First choice for development and lab bring-up.
The FPGA acts as master and clocks its own bitstream out of an external SPI/QSPI flash at power-up. Intel calls this Active Serial (AS) with EPCQ; Xilinx calls it Master SPI. The production default.
An external CPU, MCU or CPLD acts as master and shifts the bitstream in one bit per clock. Useful when a host processor already owns the configuration image.
An 8/16/32-bit parallel bus drives configuration at maximum speed — Xilinx SelectMAP and Intel FPP. The path to use when boot time is critical.
The FPGA boots from a parallel NOR flash via a byte-wide address/data bus. Common on Xilinx 7-series boards that already carry parallel flash for a soft processor.
Program the FPGA's internal configuration flash, or the on-board SPI flash, while the device is soldered on the PCB — no removal, no socket. The backbone of field firmware updates.
Flash- and NVCM-based FPGAs (iCE40, MAX 10, MachXO, IGLOO2, PolarFire) store the bitstream on-chip. No external configuration device, no boot delay — write once, run on every power-up.
On SoC-FPGAs (Zynq, Zynq UltraScale+, Cyclone V SoC, PolarFire SoC) the hard processor boots first from QSPI, SD, eMMC, NAND or USB, then configures the programmable logic.
AES-encrypted bitstreams, authentication keys and eFUSE/battery-backed key storage protect IP in the field. Programmed once at manufacture and verified on every load.
From a $30 USB JTAG pod to the automated robotic system pictured below — match the tool to your stage of production.
A JTAG download cable is perfect for the lab, but it cannot keep up with a manufacturing run. As volume grows you move to gang programmers and finally to automated inline systems like the one shown — rotary handlers pick each device, program and verify the configuration flash, mark, and sort known-good parts with full traceability.
PCBSync runs exactly this class of equipment as a service, so you skip the capital cost entirely.
See Programming Service →USB programming pods for direct configuration, debug and ISP. The everyday tool on every engineer's bench.
Examples: AMD Platform Cable USB II, Digilent JTAG-HS2/HS3/SMT2, Intel USB-Blaster II, Lattice HW-USBN-2B, Microchip FlashPro5/6, FTDI FT2232-basedProgram the on-board SPI/QSPI configuration flash or internal flash with the device soldered down. Drives field updates and EOL re-flashing.
Targets: SPI NOR, EPCQ/EPCS, internal config flash via JTAG-to-SPI bridgesOut-of-circuit programmers with device sockets and adapters that pre-program configuration flash or flash-FPGAs before assembly.
Examples: Universal programmers with SPI/EPCS support, socketed flash & FPGA adaptersMultiple sockets program many configuration devices or FPGAs simultaneously — the bridge between bench programming and full automation.
Use: Mid-volume runs, pre-programmed flash for SMT linesRobotic handlers program, verify, laser-mark and sort thousands of devices per shift with serialization and full traceability — the system pictured above.
Use: Mass production, traceable serialized programmingHand the bitstream and devices to a programming house. Zero capital outlay, guaranteed yield, manufacturer-grade verification.
Provider: PCBSync IC & FPGA ProgrammingTell us your vendor and where you are in the product cycle — we'll recommend the configuration method, programmer hardware and file format to target.
Vendor-aware recommendations based on standard configuration practice. Not a substitute for the device datasheet.
Search 40+ FPGA families across 8 vendors. Filter by manufacturer, then read off the supported programming modes and toolchain for real part numbers.
Type a part number (e.g. XC7A35T, 10M08, iCE40) or filter by vendor.
| Vendor | Family | Example Part Numbers | Programming Modes | Toolchain |
|---|
The bring-up sequence that takes you from HDL source to a verified, production-ready device.
Compile your HDL, run synthesis, place & route, and generate the bitstream in your vendor tool (Vivado, Quartus, Radiant, Libero, Gowin EDA, Efinity).
Strap the configuration mode pins (M0/M1/M2 or MSEL) for the path you chose — JTAG, Master SPI, AS, SelectMAP, BPI or PS.
Export the right format: .bit/.bin/.mcs (Xilinx), .sof/.pof/.jic (Intel), .jed/.bit (Lattice), .svf/.jam for portable programming.
Wire a JTAG cable or SPI programmer to the device or flash. Confirm the JTAG chain / IDCODE is detected before writing.
For test, load the volatile SRAM directly. For production, write the bitstream into the configuration flash so the FPGA self-boots.
Read back and CRC-check the image, then optionally enable AES encryption, authentication and eFUSE locking to protect your IP.
Move to gang or automated programming with per-unit serial numbers, MAC addresses and full traceability for the production run.
Pre-program devices in-house or outsource to a FPGA Programming service for guaranteed-yield, ready-to-place parts.
Programming notes for every major manufacturer — families, flagship part numbers and their native toolchain.
Quick answers to the questions that come up most during board bring-up.