XJFlash

XJFlash is an FPGA-based advanced and innovative method that uses JTAG for high-speed in-system programming (ISP) of flash memories – all serial and parallel flash devices are supported. The most common use of XJFlash is programming the SPI/QSPI NOR flash used to configure an FPGA.

With XJFlash you can use the FPGA on your board to achieve flash programming speeds up to 50 times faster than those possible using conventional boundary scan techniques, often reaching the maximum speed for the flash memory.

Custom Solutions – Automatically Generated

XJFlash allows you to automatically generate customised programming solutions for the flash memory devices connected to FPGAs and FPGA SoCs (such as Xilinx Zynq® and Intel Cyclone® V) on your board.

The functional capabilities of the FPGA are harnessed to provide the fastest possible programming speeds. XJFlash automatically generates a custom design for each FPGA/flash combination, allowing you to achieve the best programming times, whilst not requiring you to do any FPGA development.*

If your flash memory is connected to an FPGA from Intel (Altera), Xilinx, Microsemi or Lattice, XJFlash uses the FPGA’s standard JTAG port to offer an in-circuit programming alternative to a SPI programmer or parallel flash programmer. XJFlash support all SPI modes (single-bit, dual, quad, QSPI, and octal) as well as parallel NOR flash devices.

*A licensed version of the relevant FPGA manufacturer’s tools will be required during the configuration of XJFlash. Free versions are sufficient for many devices.

Test Integration

XJFlash programming can be easily integrated into your XJTAG test system using XJDeveloper. All XJFlash programming can be run as part of an XJRunner boundary scan test project.

Configurable Flash Programming

It doesn’t matter whether you need to program a single flash memory device, or multiple devices that are connected in series, to expand the address space, or in parallel, to make a wider data bus, you can use XJFlash to speed up your programming operations.

Custom development

XJFlash can also be used for standalone programming requirements including direct access to I²C and SPI busses or custom protocols such as Microchips ICSP.

The required connections do not need to come from an FPGA on the target board. Providing the protocol signals are available on a header on that board, it should be possible to use XJFlash to achieve fast programming as part of an XJTAG solution.