openFPGALoader/spiOverJtag
Gwenhael Goavec-Merou 80077723a1 spiOverJtag: README.md draft 2026-02-18 13:49:31 +01:00
..
.gitignore spiOverJtag/.gitignore: ignore vivado files 2025-05-26 09:53:20 +02:00
Makefile Adding BPI flash support and YPCB board support 2026-02-13 12:03:38 +01:00
README.md spiOverJtag: README.md draft 2026-02-18 13:49:31 +01:00
altclkctrl_inst.v Add spiOverJtag for 10CL006YE144C8G + fix for quartus 25 2026-02-03 14:47:00 +01:00
altera_spiOverJtag.sdc
altera_spiOverJtag.v Add ID and spiOverJtag bitstream for Stratix V GS D5 2024-10-10 19:59:31 +02:00
build.py Adding BPI flash support and YPCB board support 2026-02-13 12:03:38 +01:00
constr_cycloneV.tcl spiOverJtag: enable init done pin for cycloneV device 2022-06-10 19:06:33 +02:00
constr_xc3s_vq100.ucf Added spiOverJtag for Spartan3E (xc3s500evq100) 2022-03-25 21:29:00 +01:00
constr_xc6s_csg324.ucf spiOverJtag: add constr_xc6s_csg324 2021-07-11 09:05:15 +02:00
constr_xc6s_csg484.ucf Bitfile and constraints for xc6slx150tcsg484. (#312) 2023-02-16 19:51:04 +01:00
constr_xc6s_fgg484.ucf spiOverJtag: XC6SLX...L may need other pin constraints as XC6SLX... 2024-02-28 12:59:22 +01:00
constr_xc6s_ftg256.ucf spiOverJtag: spartan6 FTG 256 ucf 2022-01-15 11:47:15 +01:00
constr_xc6s_t_csg324.ucf spiOverJtag: added Xilinx Spartan6 model: 25T package: CSG324 (xc6slx25tcsg324) 2024-08-03 08:53:18 +02:00
constr_xc6s_t_fgg484.ucf spiOverJtag: XC6SLX...L may need other pin constraints as XC6SLX... 2024-02-28 12:59:22 +01:00
constr_xc6s_tqg144.ucf spiOverJtag: Add missing xc6s_tqg144 constraint 2024-02-28 09:59:16 +01:00
constr_xc6v_ff784.ucf Virtex6: Add spiOverJtag for Virtex6, detect xc6vlx130 and provide bitfile for xc6vlx130tff784 2024-02-28 11:50:10 +01:00
constr_xc7a_cpg236.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_cpg238.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_csg324.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_csg325.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_csg325_1v35.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_fbg484.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_fbg676.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_fgg484.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_fgg676.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_ftg256.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_sbg384.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7a_sbg484.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7k_fbg484.ucf spiOverJtag: add support for xc7k70tfbg484 2024-01-25 12:42:11 +01:00
constr_xc7k_fbg484.xdc spiOverJtag: add support for xc7k70tfbg484 2024-01-25 12:42:11 +01:00
constr_xc7k_fbg676.xdc spiOverJtag: Add constr_xc7k_fbg676.xdc 2024-02-28 10:00:13 +01:00
constr_xc7k_ffg676.ucf spiOverJtag: support xc7k420tffg901 2022-05-14 09:53:56 +07:00
constr_xc7k_ffg676.xdc spiOverJtag: compress the kintex7 bitstreams 2022-03-11 15:08:49 +10:30
constr_xc7k_ffg900.ucf spiOverJtag: support xc7k420tffg901 2022-05-14 09:53:56 +07:00
constr_xc7k_ffg900.xdc spiOverJtag: compress the kintex7 bitstreams 2022-03-11 15:08:49 +10:30
constr_xc7k_ffg901.ucf spiOverJtag: support xc7k420tffg901 2022-05-14 09:53:56 +07:00
constr_xc7s_cpga196.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7s_csga225.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7s_csga324.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7s_fgga484.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7s_fgga676.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7s_ftgb196.xdc spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
constr_xc7v_ffg1157.ucf xc7vx330tffg1157: Allow to build and provide spiOverJtag_xc7vx330tffg1157.bit 2024-03-01 13:38:23 +01:00
constr_xc7v_ffg1157.xdc xc7vx330tffg1157: Allow to build and provide spiOverJtag_xc7vx330tffg1157.bit 2024-03-01 13:38:23 +01:00
constr_xcau15p_ffvb676.xdc Add xcau15p (xcau15p_ffvb676) support (#547) 2025-05-10 07:02:21 +02:00
constr_xcku3p_ffva676.xdc spiOverJtag: Add xcku3p_ffva676 support. 2023-10-12 18:02:23 +02:00
constr_xcku5p_ffvb676.xdc Add Support for Xilinx KCU116 (#322) 2023-03-09 20:48:19 +01:00
constr_xcku040_ffva1156.xdc spiOverJtag: add support and bitstreams for xcku040 and xcku060 2024-09-25 07:24:09 +02:00
constr_xcku060_ffva1156.xdc spiOverJtag: add support and bitstreams for xcku040 and xcku060 2024-09-25 07:24:09 +02:00
constr_xcvu9p_flga2104.xdc Add XCVU9P spiOverJtag bitfile with SPIx8 support 2023-01-21 14:33:36 +01:00
constr_xcvu37p_fsvh2892.xdc Add flash support for VCU128 2023-02-22 09:51:16 +08:00
efinix_build.py spiOverJtag: Add support for Efinix T120F324 2025-12-11 20:09:26 +08:00
efinix_spiOverJtag.v efinix: 2023-04-27 16:41:17 +02:00
spiOverJtag_5ce215.rbf.gz adding support for cyc5000 2024-08-24 21:32:00 -07:00
spiOverJtag_5ce223.rbf
spiOverJtag_5ce423.rbf.gz spiOverJtag: add spiOverJtag_5ce423.rbf.gz 2021-11-28 10:00:37 +01:00
spiOverJtag_5ce523.rbf.gz Rename 5cefa5f23 to 5ce523, add documentation for board and fpga 2022-03-13 09:14:52 -04:00
spiOverJtag_5ce927.rbf.gz update spiOverJtag_5ce927.rbf.gz created with Lite 20.1.1 2022-06-14 08:18:53 +02:00
spiOverJtag_5sgsd5.rbf.gz Add ID and spiOverJtag bitstream for Stratix V GS D5 2024-10-10 19:59:31 +02:00
spiOverJtag_10cl006144.rbf.gz Add spiOverJtag for 10CL006YE144C8G + fix for quartus 25 2026-02-03 14:47:00 +01:00
spiOverJtag_10cl016484.rbf.gz spiOverJtag: intel/altera cyclone10 LP 10CL016YU484C8G 2023-08-05 11:48:06 +02:00
spiOverJtag_10cl025256.rbf
spiOverJtag_10cl055484.rbf.gz fix(board): fix missing spiOverJTAG for C10LP-RefKit 2022-12-25 18:36:52 -06:00
spiOverJtag_core.v spiOverJtag: introduce a new spiOverJtag (v2) core able to work with complex JTAG chain 2025-05-11 09:13:25 +02:00
spiOverJtag_efinix_t8f81.bit.gz efinix: 2023-04-27 16:41:17 +02:00
spiOverJtag_efinix_t13f256.bit.gz [enh] added t13f256 SPI flash support 2024-08-17 15:41:44 +02:00
spiOverJtag_efinix_t120f324.bit.gz spiOverJtag: Add support for Efinix T120F324 2025-12-11 20:09:26 +08:00
spiOverJtag_efinix_ti60f225.bit.gz spiOverJtag: added efinix Titanium Ti60 support 2023-04-27 16:41:58 +02:00
spiOverJtag_efinix_ti180j484.bit.gz spiOverJtag: add support for Ti180J484 2024-08-19 21:29:00 -04:00
spiOverJtag_ep4ce622.rbf.gz Add support for EP4CE6E22 and EP4CE10F17 2024-04-30 14:51:29 -04:00
spiOverJtag_ep4ce1017.rbf.gz Add support for EP4CE6E22 and EP4CE10F17 2024-04-30 14:51:29 -04:00
spiOverJtag_ep4ce1523.rbf.gz spiOverJtag: add bitstream for ECP4CE15F23 2021-11-28 16:51:42 +01:00
spiOverJtag_ep4ce2217.rbf
spiOverJtag_ep4ce11523.rbf.gz spiOverJtag: add bitstream for EP4CE115F23 2022-06-16 08:58:49 +08:00
spiOverJtag_xc3s500evq100.bit.gz Added spiOverJtag for Spartan3E (xc3s500evq100) 2022-03-25 21:29:00 +01:00
spiOverJtag_xc6slx9csg324.bit.gz Add JTAG to SPI Support on Spartan-6 lx9 CSG324 package. 2023-04-17 16:51:02 +12:00
spiOverJtag_xc6slx9tqg144.bit.gz Add support for Xc6slx9tqg144 FPGA 2022-12-04 15:48:44 +05:30
spiOverJtag_xc6slx16csg324.bit.gz added spiOverJtag_xc6slx16csg324.bit.gz 2022-01-28 07:18:44 +00:00
spiOverJtag_xc6slx16ftg256.bit.gz spiOverJtag: add bitstream for spartan6 LX16 FTG256 2022-01-15 11:47:15 +01:00
spiOverJtag_xc6slx25csg324.bit.gz spiOverJtag: added bitstream for Xilinx Spartan6 xc6slx25csg324 2024-08-03 11:01:26 +02:00
spiOverJtag_xc6slx25tcsg324.bit.gz spiOverJtag: added Xilinx Spartan6 model: 25T package: CSG324 (xc6slx25tcsg324) 2024-08-03 08:53:18 +02:00
spiOverJtag_xc6slx45csg324.bit
spiOverJtag_xc6slx45tfgg484.bit.gz spiOverJtag: added xc6slx45tfgg48 support 2024-03-28 22:14:27 +01:00
spiOverJtag_xc6slx100fgg484.bit
spiOverJtag_xc6slx150tcsg484.bit.gz Bitfile and constraints for xc6slx150tcsg484. (#312) 2023-02-16 19:51:04 +01:00
spiOverJtag_xc6slx150tfgg484.bit.gz spiOverJtag: Xilinx Spartan6 LX150T 2022-03-03 15:36:11 +01:00
spiOverJtag_xc6vlx130tff784.bit.gz Virtex6: Add spiOverJtag for Virtex6, detect xc6vlx130 and provide bitfile for xc6vlx130tff784 2024-02-28 11:50:10 +01:00
spiOverJtag_xc7a12t.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a12tcpg238.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a12tcsg325.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a15t.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a15tcpg236.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a15tcsg324.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a15tcsg325.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a15tfgg484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a15tftg256.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a25t.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a25tcpg238.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a25tcsg325.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a35t.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a35tcpg236.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a35tcsg324.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a35tcsg325.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a35tfgg484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a35tftg256.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a50t.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a50tcpg236.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a50tcsg324.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a50tcsg325.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a50tcsg325_1v35.bit.gz added 1.35v csg325 build and Macronix flash 2025-02-15 14:24:42 -07:00
spiOverJtag_xc7a50tfgg484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a50tftg256.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a75t.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a75tcsg324.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a75tfgg484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a75tfgg676.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a75tftg256.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a100t.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a100tcsg324.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a100tfgg484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a100tfgg676.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a100tftg256.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a200t.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a200tfbg484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a200tfbg676.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a200tffg1156.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7a200tsbg484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7k70tfbg484.bit.gz spiOverJtag: add support for xc7k70tfbg484 2024-01-25 12:42:11 +01:00
spiOverJtag_xc7k70tfbg676.bit.gz spiOverJtag: added xc7k70tfbg676 variant 2025-09-24 16:48:02 +02:00
spiOverJtag_xc7k160tffg676.bit.gz spiOverJtag: support xc7k160tffg676 2022-05-14 14:30:01 +07:00
spiOverJtag_xc7k325tffg676.bit.gz spiOverJtag: compress the kintex7 bitstreams 2022-03-11 15:08:49 +10:30
spiOverJtag_xc7k325tffg900.bit.gz spiOverJtag: compress the kintex7 bitstreams 2022-03-11 15:08:49 +10:30
spiOverJtag_xc7k420tffg901.bit.gz spiOverJtag: support xc7k420tffg901 2022-05-14 09:53:56 +07:00
spiOverJtag_xc7s6.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s6cpga196.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s6csga225.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s6ftgb196.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s15.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s15cpga196.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s15csga225.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s15ftgb196.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s25.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s25csga225.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s25csga324.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s25ftgb196.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s50.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s50csga324.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s50fgga484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s50ftgb196.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s75.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s75fgga484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s75fgga676.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s100.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s100fgga484.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7s100fgga676.bit.gz spiOverJtag: reworks Artix and Spartan 7 approach: 2025-05-26 09:53:25 +02:00
spiOverJtag_xc7vx330tffg1157.bit.gz xc7vx330tffg1157: Allow to build and provide spiOverJtag_xc7vx330tffg1157.bit 2024-03-01 13:38:23 +01:00
spiOverJtag_xcau15p-ffvb676.bit.gz Add xcau15p (xcau15p_ffvb676) support (#547) 2025-05-10 07:02:21 +02:00
spiOverJtag_xcku3p-ffva676.bit.gz spiOverJtag: Add xcku3p-ffva676 bitstream. 2023-10-12 18:09:41 +02:00
spiOverJtag_xcku5p-ffvb676.bit.gz Add Support for Xilinx KCU116 (#322) 2023-03-09 20:48:19 +01:00
spiOverJtag_xcku040-ffva1156.bit.gz spiOverJtag: add support and bitstreams for xcku040 and xcku060 2024-09-25 07:24:09 +02:00
spiOverJtag_xcku060-ffva1156.bit.gz spiOverJtag: add support and bitstreams for xcku040 and xcku060 2024-09-25 07:24:09 +02:00
spiOverJtag_xcvu9p-flga2104.bit.gz Add XCVU9P spiOverJtag bitfile with SPIx8 support 2023-01-21 14:33:36 +01:00
spiOverJtag_xcvu37p-fsvh2892.bit.gz Add flash support for VCU128 2023-02-22 09:51:16 +08:00
xilinx_spiOverJtag.tcl Add support for Artix A7 15t 2025-04-08 15:31:41 +00:00
xilinx_spiOverJtag.v spiOverJtag/xilinx_spiOverJtag.v: spartan3e: spi_drck -> drck 2025-09-22 10:18:24 +02:00

README.md

spiOverJtag

Lattice ECP3/ECP5, Gowin GW2/GW5, and Cologne Chip GateMate have an internal interface to access external SPI flash via JTAG. In contrast, accessing SPI flash on Xilinx, Efinix and Altera Cyclone FPGAs requires loading a dedicated bitstream that bridges JTAG and SPI interfaces.

spiOverJtag contains bridge bitstreams used by openFPGALoader to access external SPI flash over JTAG on supported Xilinx, Altera, and Efinix devices.

Important notes

  • spiOverJtag supports Single-Wire mode only (MOSI/MISO) for maximum board compatibility.
  • Existing bridge bitstreams are versioned in the repository. Rebuild is typically required only when adding support for a missing FPGA model/package.

Dependencies

  • make
  • gzip
  • python3
  • Python package: edalize
  • Vendor toolchains (depending on target family):
    • Xilinx: Vivado and/or ISE
    • Altera: Quartus
    • Efinix: Efinity

Notes:

  • build.py is used for Xilinx and Altera targets.
  • efinix_build.py is used for Efinix targets.

Build generalities

All steps mentioned in next sections must be performed from spiOverJtag sub-directory.

Generated outputs:

  • Xilinx: spiOverJtag_<part>.bit.gz
  • Efinix: spiOverJtag_efinix_<part>.bit.gz
  • Altera: spiOverJtag_<part>.rbf.gz

Build command examples:

# Xilinx Artix7 35t
make spiOverJtag_xc7a35t.bit.gz
# Altera Cyclone10CL 016
make spiOverJtag_10cl016484.rbf.gz
# Efinix Trion T13 F256
make spiOverJtag_efinix_t13f256.bit.gz

Clean temporary/build files:

make clean

Add support for a new device

1. Register the part in Makefile

Add the short part name into the appropriate list:

  • XILINX_PARTS
  • ALTERA_PARTS
  • EFINIX_PARTS

2. Update build script mappings

For Xilinx (build.py):

Approach for Xilinx FPGAs depends on family:

  • for Artix, Kintex 7 and Spartan 7 size and packages are provided via packages dict.
  • for others devices pkg_name (Vivado) or tool_options (ISE) must be updated to add the relationship between FPGA model/size/package and device/package.

For Altera (build.py):

The full_part dict must be updated to match the short format and a Quartus-compatible device name.

For Efinix (efinix_build.py):

The script contains pin mapping data for Trion and Titanium devices.

The principle is to update efinix_pinout with a new sub-dict that provides the pin name for each SPI IO.

The timing_models dict must also be updated to add an entry for the new FPGA.

Note: For Titanium devices, ensure the package mapping exists in efinix_pinout["Titanium"] and the corresponding timing model exists in timing_models.

3. Add constraints (if required)

spiOverJtag already contains many constraint files. Usually, devices in the same family with the same package share the same JTAG and SPI pinout (for example, Xilinx Artix7 devices with ftg256 can reuse constr_xc7a_ftg256, regardless of device size). This step is only required when a package is not yet available for a given FPGA family.

Add the constraint file expected by the mapping:

  • Xilinx Vivado: constr_<name>.xdc
  • Xilinx ISE: constr_<name>.ucf
  • Altera: no explicit constraint file in this directory (handled by Quartus and script flow)
  • Efinix: generated/handled by efinix_build.py; update script data for new package pinouts when needed

4. Build spiOverJtag bitstream

Run the target build command and verify the compressed file is generated:

# Xilinx/Efinix
make spiOverJtag_<new-part>.bit.gz
# or for Altera
make spiOverJtag_<new-part>.rbf.gz

At the end of the tool execution, a new bitstream should be present in the current directory.

Note: The directory tmp_<part>/ (or tmp_efinix_<part>/) is the working directory and may be removed after bitstream generation.