Tools and classes for interfacing with XESS FPGA boards via USB.
XSTOOLs is a collection of Python classes for interfacing to XESS FPGA boards through a USB connection.
There are also several examples of command-line utilities that use these classes to perform operations on XESS boards.
- Free software: GPL V3 license
- Documentation: https://xstools.readthedocs.org.
- Python package for accessing XuLA FPGA boards through a USB link.
- Command-line tools for configuring the FPGA, uploading/downloading the serial flash and SDRAM, and running diagnostics on the board.
- GUI tool that performs the same functions as the command-line tools.
- Sped-up memory reads & writes from/to the SDRAM.
- Removed include in README.rst that caused an error generating the documentation.
- Specifying the board model on the CLI utilities is now case-insensitive.
- Now supports pyusb versions 1.0.0a and 1.0.0b.
- The utilities only connect to the USB port when they are actively executing some function for the attached XESS board. This allows other utilities to access the board.
- Added drag-and-drop capability for selecting bitstream and hex files.
- A history of bitstream and hex files is maintained.
- Exceptions caused by pyusb on program termination are now caught and filtered out.
- Removed scripts in bin directory and placed them in the xstools directory.
- Added entrypoints to generate executables for the XSTOOLs scripts.
- Changed distribution to use readthedocs for documentation.
- Fixed problem where flash and SDRAM couldn’t be accessed in gxstools because I appended ‘bitstream’ to the attribute names.
- Modified usb2serial.py to prevent accidental triggering of serial BREAK.
- Modified usb2serial.py and xscomm.py to support new serial BREAK command.
- Added .cmd file to initiate each XSTOOLs script in a Windows command window.
- Modified usb2serial.py to support non-ZPUino use of the USB-to-serial server.
- Modified setup.py so pyusb < 1.0.0b1 is installed as a dependency since the newer 1.0.0bX libraries cause a problem with finding XESS boards on USB ports.
- Modified setup.py to include microcontroller firmware hex files for the XESS boards.
- Modified setup.py so pyusb <= 1.0.0b1 is installed as a dependency since the newer 1.0.0b2 library causes a problem with finding XESS boards on USB ports.
- Fixed query for XESS USB devices which failed for some USB libraries.
- Fixed handling of XuLA/XuLA2 boards with old firmware or with the USB-to-JTAG path disabled.
- Added command-line and GUI methods for setting/getting flags in XuLA/XuLA2 boards.
- Enabled loading of .bit files into serial configuration flash via gxstools.
- Updated hex file to newest version of the PIC 18F14K50 firmware.
- Added USB-to-serial bridge server between XuLA board and virtual comm port on PC.
- Added support for upload/download of signed integers to memio methods.
- Fixed FPGA bitstreams to remove errors during SDRAM upload/download.
- Add bidirectional communication channel between host and FPGA: xscomm.py.
- Added graphical front-end to XSTOOLs: gxstools.py.
- Fixed bit direction for checking status bits in xsi2c.py.
- Added support for XuLA2-LX9 board.
- Added ability to load Xilinx bitstream files directly into serial configuration flash.
- Fixed byte order of addresses sent to the W25X serial flash.
- Fixed FlashDev class so address bounds could not go outside the min/max addresses for the device.
- Added FlashDevice class for reading/writing flash memory devices.
- Made Pic18f14k50 class inherit from the FlashDevice class for flash read/write operations.
- Added routines for reading/writing serial configuration flash on the XuLA and XuLA2 boards.
- Extended xsload.py to enable serial flash uploading and downloading.
- Fixed xsusbprg.py so it works under linux.
- Fixed USB read/write timeouts so they are dependent upon the amount of data transferred.
- Replaced exit() with sys.exit() in scripts.
- Added XuLA firmware .hex files for use with xsusbprg.py.
- Fixed xsusbprg.py so it would upgrade XuLA board firmware by default.
- All user-accessible scripts now use xstools_defs.py to get a unified version #.
- Added .rules file for USB connections to XESS boards.
- Replaced bitarray module with pure-Python bitstring module.
- Fixed so multiple XsUsb objects can share a single USB link to access an XESS board.
- Changed CR-LF EOL in .py files to LF EOL so linux wouldn’t barf.
- Use pypubsub instead of wxpython for publish/subscribe communications.
- Initial release.