How to burn jic files into FPGA?
A .jic file is most commonly an Intel/Altera Quartus “JTAG Indirect Configuration” image used to program the external configuration flash (EPCS/EPCQ/QSPI) through the FPGA’s JTAG, so the FPGA can boot from flash after reset/power-cycle.
0) Quick clarity: .SOF vs .JIC
-
.sof → programs the FPGA directly (volatile). Works immediately, lost on power-off.
-
.jic → programs the configuration flash (non-volatile). FPGA loads from flash on reboot.
A) Program a .JIC into the flash (Quartus GUI)
1) Hardware + board setup
-
Connect USB-Blaster / USB-Blaster II (or compatible) to the board’s JTAG header.
-
Power the board.
-
Set any board jumpers/switches to allow JTAG access (varies by board).
2) Open Quartus Programmer
-
Tools → Programmer
-
Click Hardware Setup…
-
Select your cable (e.g., USB-Blaster), then Close
-
-
Set Mode = JTAG
3) Detect the JTAG chain
-
Click Auto Detect
-
Quartus should show your FPGA device in the chain.
4) Attach the flash device (this step is often required)
If you only see the FPGA (common):
-
Right-click the FPGA in the chain
-
Choose Attach Flash Device…
-
Select the correct flash type/model (EPCS/EPCQ/QSPI part used on your board)
If you don’t know the flash model, check the board schematic/BOM or read the marking on the flash chip.
5) Load and program the .jic
-
Click Add File… and choose your .jic
-
Ensure the file is associated with the flash device entry (not just the FPGA)
-
Tick:
-
Program/Configure
-
(Recommended) Verify
-
-
Click Start
When done, power-cycle or reset the board to confirm it boots from flash.
B) Create a .JIC (if you only have a .SOF)
In Quartus:
-
File → Convert Programming Files…
-
Programming file type: JTAG Indirect Configuration File (.jic)
-
Configuration device: select your flash model (EPCS/EPCQ/QSPI)
-
Input files: add your .sof (or .pof, depending on flow)
-
Let Quartus pick the correct Flash Loader (or select the matching FPGA family)
-
Generate the .jic
Then program it using steps in section A.
C) Command line programming (Quartus)
You can program a .jic via quartus_pgm:
Common extras:
-
Program + Verify:
(Exact operation letters can differ slightly by Quartus version, but p is program and v is verify in the common flow.)
D) Typical “it won’t program” fixes
-
Wrong flash part selected in “Attach Flash Device”
-
JTAG chain not stable → lower JTAG clock in Hardware Setup
-
Board jumpers/switches not set for JTAG/AS mode correctly
-
No common ground / power issues
-
Using .jic for the wrong board layout (wrong flash size, wrong address map)
Important note (Xilinx users)
If you’re on Xilinx, you usually won’t use .jic. You’ll use .mcs/.bin and program configuration memory in Vivado Hardware Manager. So “.jic” strongly suggests Intel/Altera flow.
.jpg)
评论
发表评论