-
Notifications
You must be signed in to change notification settings - Fork 0
JUNK:Aim to replace Digilent Adept with open-source tools
makestuff/neopurgo
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
An FX2LP firmware and various host tools and libraries to make it easier to: * Bootstrap an FPGA design using minimal components * Reprogram the FPGA over USB * Communicate with the FPGA using HiSpeed USB (~25Mbyte/s) The project comprises these components: xilprg - A fork of Zoltán Csizmadia's xilprg, with NeroJTAG capability host - Host-side tool for interacting with the FPGA's registers firmware - FX2LP firmware, including FPGA bootload & NeroJTAG capability vhdl - Example FPGA design implementing four registers xsvf2csvf - Convert a Xilinx XSVF file into the compressed CSVF format csvfplay - Play a CSVF file using a NeroJTAG-capable device libnero - Host-side implementation of the NeroJTAG protocol libsync - Host code to sync the FX2LP's bulk endpoints The project build assumes this directory ("neopurgo") lives within a structure like this: src | +-apps | | | +-neopurgo | +-libs | +-3rd *** BUILDING ON WINDOWS *** Prerequisites: * Visual Studio Express 2008 * SDCC 2.9.0 * Xilinx ISE WebPACK * Fx2tools make -f Makefile.win32 clean make -f Makefile.win32 *** BUILDING ON LINUX *** Prerequisites: * sudo apt-get install g++ * sudo apt-get install libusb-dev * sudo apt-get install sdcc * Xilinx ISE WebPACK * Fx2tools make -f Makefile.linux clean make -f Makefile.linux ---------------------------------------------------------------------------------------------------- Example NEXYS2 Session (Linux) chris@wotan:~/src/apps/neopurgo$ sudo fx2loader -v 0x1443 -p 0x0005 firmware/firmware.hex chris@wotan:~/src/apps/neopurgo$ sudo ./xilprg/xilprg -c nero:04B4:8613 -s Identifying chain contents ... '1' xc3s1200e Xilinx Spartan-3E '2' xcf04s Xilinx XCF00S Platform Flash 2 device(s) found. chris@wotan:~/src/apps/neopurgo$ sudo ./xilprg/xilprg -c nero:04B4:8613 -b vhdl/TopLevel.bit Identifying chain contents ... '1' xc3s1200e Xilinx Spartan-3E '2' xcf04s Xilinx XCF00S Platform Flash 2 device(s) found. '1' Programming xc3s1200e ... Successfully completed. chris@wotan:~/src/apps/neopurgo$ sudo ./host/host R0 = 0xA5 [this comes from the state of the board's switches] R1 = 0x00 R2 = 0x00 R3 = 0x00 chris@wotan:~/src/apps/neopurgo$ sudo ./host/host -i > 0000000001aa [this loads 0xAA into register 0] Writing: 00 00 00 00 01 AA > 000000000110 [this loads 0x10 into register 0] Writing: 00 00 00 00 01 10 > 010000000101 [this loads 0x01 into register 1] Writing: 01 00 00 00 01 01 > 8000000001 [read register 0] Writing: 80 00 00 00 01 Read 1 bytes from endpoint 8: A5 > 8100000001 [read register 1] Writing: 81 00 00 00 01 Read 1 bytes from endpoint 8: 01 > /00 firmware/random.dat [upload firmware/random.dat into register 0] Writing five command bytes followed by 2071 data bytes: 00 00 00 08 17 EB ... B8 Time: 0.217000ms Speed: 9.101657 MB/s Checksum: 0x0C36 > q chris@wotan:~/src/apps/neopurgo$ ---------------------------------------------------------------------------------------------------- Example NEXYS2 Session (Windows) Note: Ensure you have loaded LibUSB-Win32 drivers for both the default Nexys2 device (1443:0005) and the Neopurgo firmware (04B4:8613). W:\src\apps\neopurgo>fx2loader -v 0x1443 -p 0x0005 firmware/firmware.hex W:\src\apps\neopurgo>.\xilprg\Release\xilprg.exe -c nero:04B4:8613 -s Identifying chain contents ... '1' xc3s1200e Xilinx Spartan-3E '2' xcf04s Xilinx XCF00S Platform Flash 2 device(s) found. W:\src\apps\neopurgo>.\xilprg\Release\xilprg.exe -c nero:04B4:8613 -b vhdl/TopLevel.bit Identifying chain contents ... '1' xc3s1200e Xilinx Spartan-3E '2' xcf04s Xilinx XCF00S Platform Flash 2 device(s) found. '1' Programming xc3s1200e ... Successfully completed. W:\src\apps\neopurgo>host\Release\host.exe R0 = 0xA5 [this comes from the state of the board's switches] R1 = 0x00 R2 = 0x00 R3 = 0x00 W:\src\apps\neopurgo>host\Release\host.exe -i > 0000000001aa [this loads 0xAA into register 0] Writing: 00 00 00 00 01 AA > 000000000110 [this loads 0x10 into register 0] Writing: 00 00 00 00 01 10 > 010000000101 [this loads 0x01 into register 1] Writing: 01 00 00 00 01 01 > 8000000001 [read register 0] Writing: 80 00 00 00 01 Read 1 bytes from endpoint 8: A5 > 8100000001 [read register 1] Writing: 81 00 00 00 01 Read 1 bytes from endpoint 8: 01 > /00 firmware/random.dat [upload firmware/random.dat into register 0] Writing five command bytes followed by 2071 data bytes: 00 00 00 08 17 EB ... B8 Time: 37.638024ms Speed: 0.052475 MB/s Checksum: 0x0C36 > q W:\src\apps\neopurgo>
About
JUNK:Aim to replace Digilent Adept with open-source tools
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published