Universal utility for programming FPGA
Go to file
Gwenhael Goavec-Merou 9391b7840d xilinx: use shiftIR with val when it's possible 2019-10-05 18:12:33 +02:00
.gitignore ignore swp 2019-09-28 15:40:46 +02:00
LICENSE Initial commit 2019-09-26 18:27:33 +02:00
Makefile add missing Makefile 2019-09-26 18:38:37 +02:00
README.md updates dependencies list 2019-10-05 12:00:29 +02:00
altera.cpp altera: fix path for svf used to program flash through SPI 2019-10-04 08:27:14 +02:00
altera.hpp Altera: 2019-09-28 15:31:43 +02:00
bitparser.cpp update bitparser: 2019-10-05 10:28:44 +02:00
bitparser.hpp update bitparser: 2019-10-05 10:28:44 +02:00
board.hpp initial commit 2019-09-26 18:29:20 +02:00
cable.hpp initial commit 2019-09-26 18:29:20 +02:00
configBitstreamParser.cpp add configBitstreamParser an base class for all bitstream file parser 2019-10-05 10:27:35 +02:00
configBitstreamParser.hpp add configBitstreamParser an base class for all bitstream file parser 2019-10-05 10:27:35 +02:00
device.cpp Device: 2019-09-28 15:26:47 +02:00
device.hpp Device: 2019-09-28 15:26:47 +02:00
epcq.cpp initial commit 2019-09-26 18:29:20 +02:00
epcq.hpp initial commit 2019-09-26 18:29:20 +02:00
ftdijtag.cpp ftdijtag: suppress debug message 2019-10-05 18:09:02 +02:00
ftdijtag.hpp ftdijtag: add shiftIR variant with value passed by value instead of ref. Used when the command is up to 8bits with no read 2019-10-04 08:25:37 +02:00
ftdipp_mpsse.cpp ftdipp_mpsse: add missing vid 2019-09-28 15:38:25 +02:00
ftdipp_mpsse.hpp ftdipp_mpsse: add method to access vid and pid 2019-09-28 15:38:57 +02:00
ftdispi.cpp initial commit 2019-09-26 18:29:20 +02:00
ftdispi.hpp initial commit 2019-09-26 18:29:20 +02:00
main.cpp main: massive cleanup/rewrite 2019-09-28 15:46:12 +02:00
part.hpp part: fix correct model for artix 35 2019-10-05 18:10:04 +02:00
svf_jtag.cpp svf_jtag: fix include 2019-10-05 11:54:58 +02:00
svf_jtag.hpp svf_jtag: add ifndef ... endif in hpp file to avoid multiple definition 2019-09-28 15:34:44 +02:00
test_sfl.svf add svf used to have access to SPI flash through FT2232 interface B 2019-09-26 18:39:03 +02:00
xilinx.cpp xilinx: use shiftIR with val when it's possible 2019-10-05 18:12:33 +02:00
xilinx.hpp xilinx: re-add reset method. Tested on Artix 2019-10-04 08:26:16 +02:00

README.md

cycloader

Utility for programming Intel/Altera Cyclone and Xilinx Serie 7

Current support:

  • Trenz cyc1000 Cyclone 10 LP 10CL025 (memory and spi flash)
  • Digilent arty 35T (memory)

compile and install

This application uses libftdi1, so this library must be installed (and, depending of the distribution, headers too)

apt-get install libftdi1-2 libftdi1-dev libftdipp1-3 libftdipp1-dev

and if not already done, install pkg-config, make and g++.

To build the app:

$ make

To install

$ sudo make install

Currently, the install path is hardcoded to /usr/local

Usage

cycloader --help
Usage: cycloader [OPTION...] BIT_FILE
cycloader -- a program to flash cyclone10 LP FPGA

  -b, --board=BOARD          board name, may be used instead of cable
  -c, --cable=CABLE          jtag interface
  -d, --display              display FPGA and EEPROM model
  -o, --offset=OFFSET        start offset in EEPROM
  -r, --reset                reset FPGA after operations
  -v, --verbose              Produce verbose output
  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

To have complete help

CYC1000

loading in memory:

sof to svf generation:

quartus_cpf -c -q -g 3.3 -n 12.0MHz p project_name.sof project_name.svf

file load:

cycloader -b cyc1000 project_name.svf

SPI flash:

sof to rpd:

quartus_cpf -o auto_create_rpd=on -c -d EPCQ16A -s 10CL025YU256C8G project_name.svf project_name.jic

file load:

cycloader -b cyc1000 -r project_name_auto.rpd

Note about SPI flash: svf file used to write in flash is just a bridge between FT2232 interfaceB configured in SPI mode and sfl primitive used to access EPCQ SPI flash.