HDL
Documentation

Version Latest

Program the board

Program FPGA Board with openFPGALoader or the vendor programmers, the confirmation and SHA-256 check, configuration memory for Vivado and Quartus, the Radiant chain file, and the Vitis hardware hand-off.

No board has been programmed in Neural Inverse's tests. Everything on this page is modelled or kit shipped: the confirmations, the SHA-256 checks and every programmer's command line are tested with stand-in processes, and the vendor kits run the real programmers on a board when a tester has one. Nothing is verified on Windows.

Program FPGA Board

Program FPGA Board writes the target's bitstream to the board:

TargetProgrammerWhere it writes
Open flow (ice40, ecp5, gowin, xc7)openFPGALoader, through the target's board or cable in hdl.jsonSRAM or flash
Vivado (xilinx)Vivado and hw_server, in batch or in the connected Hardware Debug session; openFPGALoader as the alternativeSRAM, or the configuration memory (below)
Quartus (intel)quartus_pgm with the SOF over JTAGSRAM
Libero (microchip)FlashPro Express with the exported job, on the target's programmer or every connected oneThe device's non-volatile configuration (PolarFire and the other Microchip families have no SRAM load)
Radiant (lattice)pgrcmd with the board's chain file (xcf)As the chain file says

The steps:

  1. Build the target.
  2. Run Program FPGA Board.
  3. Read the confirmation: the target, the board or cable, the bitstream with its size, build time and SHA-256, what the write replaces, and any timing failure.
  4. Confirm. The bitstream is hashed again after the confirmation; if it changed, nothing is programmed.

There is no silent or automatic programming. Each programming is logged with its hash. Extra openFPGALoader arguments go in neuralInverse.hdl.program.openFPGALoaderArguments (for example --ftdi-serial and a serial number to choose between boards).

State: modelled (openFPGALoader); kit shipped (quartus_pgm, FlashPro Express, pgrcmd, Vivado).

Radiant chain file

Radiant: Scan JTAG Chain and Create Chain File scans the JTAG chain with openFPGALoader and writes Radiant Programmer's .xcf chain file after you confirm, for Fast Configuration of SRAM. The target's xcf names it. State: modelled (scan on a stand-in; the written .xcf read back); not run on a board.

Configuration memory (Vivado)

A release is usually delivered in flash. For a Vivado target:

  1. Choose Configuration Memory lists the flash parts Vivado offers for the device (get_cfgmem_parts), the board file's flash first, and writes the choice into targets[].configMemory in hdl.json. The Editor never types a part name itself.
  2. Generate Bitstream then also writes the .mcs or .bin and .prm (write_cfgmem, sized from the part's density, interface from CONFIG_MODE).
  3. Program Configuration Memory Device writes the flash; Verify Configuration Memory Device verifies it; Boot FPGA from Configuration Memory boots the device from it and reads DONE. They run in the connected Hardware Debug session, or in a Vivado batch run against hw_server.

Every write, verify and boot asks you first, naming the file, its SHA-256, the flash part and the device; the hash is checked again after you confirm.

Choose Configuration Memory: Vivado's flash parts for the device, the board file's flash firstChoose Configuration Memory: Vivado's flash parts for the device, the board file's flash first

configMemory also takes the interface, format, size, device, mode and the hw_server to use. State: kit shipped; parsers tested on a real write_cfgmem log and the SP701, AC701 and Arty board files.

Tandem configuration

A target's tandem block (mode and stage bitstreams) has Generate Bitstream write tandem stage bitstreams for PCIe enumeration time. State: modelled, in no kit.

Configuration memory (Quartus)

Convert Programming Files writes a .jic (and .rpd) with quartus_cpf, or with quartus_pfg on Pro; MAX 10 uses its .pof. Flash is programmed with quartus_pgm. Each write asks first. State: modelled, in no kit.

Vitis hand-off

Export Hardware for Vitis writes the hardware platform (.xsa), with or without the bitstream, from the routed checkpoint; a target's exportHardware writes it in every build. State: kit shipped.

Libero programming files

Libero builds export the FlashPro Express job and STAPL files with the bitstream (Libero: Generate Bitstream and Export Job). State: kit shipped.

Last reviewed 17 October 2026View as Markdown

Program the board · Docs · Neural Inverse