XuLA-200 from XESS

Note: The XuLA Board is not 5V-tolerant. Do not connect 5V logic signals to the prototyping header.

  • manufacturer: XESS
  • board: XuLA-200
  • FPGA: Xilinx XC3S200A
  • SDRAM: 8 MByte (8 Mbit x 16, but see below)
  • CS (chip select) is tied low; SDRAM is always enabled
  • CKE (clock enable) is tied high; SDRAM always receives a clock signal for refresh
  • DQMH and DQML (data qualifier mask high / low) are tied low; byte-wide access to SDRAM disabled, all operations are always on 16 bits
  • a single FPGA pin drives both BS0 and BS1 (bank select inputs); this reduces the accesible region of SDRAM by half to 4M x 16.

Flash: 2 Mbit

  • Flash and SDRAM share some FPGA I/O pins; Flash and SDRAM cannot be used simultaneously

  • voltage regulators: 3.3 V and 1.2 V

  • oscillator: 12 MHz
  • microcontroller: PIC 18F14K50
  • usb: USB 2.0 port (USB mini)
  • auxiliary JTAG port
  • 40 pin interface

Links

github.com/xesscorp FpgasNowWhat, StickIt, XSTOOLs, XuLA, XuLA-VGA-PCB, SDRAM controller interface, simple VGA interface, StickIt!-MB, + add-on boards,

Projects

System09, Open-Source-FPGA-Bitcoin-Miner,

FPGA links

FPGA blog, John's FPGA page, J1 Forth CPU, Plasma CPU

Tools

ISE WebPACK (free), Xstools 4.0 for Linux, Migen from Milkymist Labs, Github jlublin/xula-py,

Back to FPGA page.

History / work log

2021-08-01: I re-created this page on my self-hosted web server.

2018-07:22: z30b - XuLA-200, try xsflags

[tingo@localhost ~]$ xstest -b xula-200
Success: XuLA-200 passed diagnostic test!
[tingo@localhost ~]$ xsflags -h
usage: xsflags [-h] [-u {0}] [-b {xula-50,xula-200,xula2-lx9,xula2-lx25}]
               [-j {on,off}] [-f {on,off}] [-r] [-v]

Change configuration flags on an XESS board.

optional arguments:
  -h, --help            show this help message and exit
  -u {0}, --usb {0}     The USB port number for the XESS board. If you only
                        have one board, then use 0.
  -b {xula-50,xula-200,xula2-lx9,xula2-lx25}, --board {xula-50,xula-200,xula2-lx9,xula2-lx25}
  -j {on,off}, --jtag {on,off}
                        Turn the auxiliary JTAG port on or off.
  -f {on,off}, --flash {on,off}
                        Make the serial flash accessible to the FPGA. (Only
                        applies to the XuLA-50 & XuLA-200 boards.)
  -r, --read            Read the flag settings from the XESS board.
  -v, --version         Print the version number of this program and exit.
[tingo@localhost ~]$ xsflags -b xula-200
Auxiliary JTAG port is enabled.
Serial flash is enabled.
[tingo@localhost ~]$ xsflags
Auxiliary JTAG port is enabled.
Serial flash is enabled.
[tingo@localhost ~]$ xsflags -v
xsflags 0.1.31

neat.

2018-07:22: z30b - XuLA-200, try xstest again parameters

[tingo@localhost ~]$ xstest -h
usage: xstest [-h] [-u {0}] [-b {xula-50,xula-200,xula2-lx9,xula2-lx25}] [-m]
              [-v]

Run self-test on an XESS board.

optional arguments:
  -h, --help            show this help message and exit
  -u {0}, --usb {0}     The USB port number for the XESS board. If you only
                        have one board, then use 0.
  -b {xula-50,xula-200,xula2-lx9,xula2-lx25}, --board {xula-50,xula-200,xula2-lx9,xula2-lx25}
  -m, --multiple        Run the self-test each time a board is detected on the
                        USB port.
  -v, --version         Print the version number of this program and exit.

simple, no parameters given

[tingo@localhost ~]$ xstest
Traceback (most recent call last):
  File "/usr/bin/xstest", line 11, in <module>
    load_entry_point('XsTools==0.1.31', 'console_scripts', 'xstest')()
  File "/usr/lib/python2.7/site-packages/xstools/xstest.py", line 91, in xstest
    xs_board.do_self_test()
AttributeError: XulaOldFmw instance has no attribute 'do_self_test'

specify board

[tingo@localhost ~]$ xstest -b xula-200
Success: XuLA-200 passed diagnostic test!

cool!

2018-07:22: z30b - connecting the XuLA-200 to the Fedora laptop again (after fixing the firmware issue with Windows) lsusb says

[tingo@localhost ~]$ lsusb -d 04d8:ff8c
Bus 001 Device 008: ID 04d8:ff8c Microchip Technology, Inc. 

from /var/log/messages

Jul 22 23:11:53 localhost kernel: usb 1-2: new full-speed USB device number 8 using xhci_hcd
Jul 22 23:11:53 localhost kernel: usb 1-2: New USB device found, idVendor=04d8, idProduct=ff8c, bcdDevice= 1.00
Jul 22 23:11:53 localhost kernel: usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jul 22 23:11:53 localhost kernel: usb 1-2: Product: XuLA - XESS Micro Logic Array
Jul 22 23:11:53 localhost kernel: usb 1-2: Manufacturer: X Engineering Software Systems Corp.

ok.

2018-07:22: z30b - connecting the XuLA-200 to a Fedora laptop:

[tingo@localhost ~]$ cat /etc/fedora-release 
Fedora release 28 (Twenty Eight)
[tingo@localhost ~]$ uname -a
Linux localhost.localdomain 4.17.3-200.fc28.x86_64 #1 SMP Tue Jun 26 14:17:07 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

from /var/log/messages

Jul 22 20:15:51 localhost kernel: usb 1-2: new full-speed USB device number 6 using xhci_hcd
Jul 22 20:15:52 localhost kernel: usb 1-2: New USB device found, idVendor=04d8, idProduct=ff8c, bcdDevice= 1.00
Jul 22 20:15:52 localhost kernel: usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0

lsusb says

[tingo@localhost ~]$ lsusb -d 04d8:ff8c
Bus 001 Device 006: ID 04d8:ff8c Microchip Technology, Inc. 

ok

2018-07-22: c1 - connecting the XuLA-200 to my FreeBSD workstation

tingo@kg-core1$ uname -a
FreeBSD kg-core1.kg4.no 10.4-STABLE FreeBSD 10.4-STABLE #1 r329982: Sun Feb 25 20:35:06 CET 2018     root@kg-core1.kg4.no:/usr/obj/usr/src/sys/GENERIC  amd64

gives this in /var/log/messages

Jul 22 11:51:40 kg-core1 kernel: ugen3.4: <X Engineering Software Systems Corp. XuLA - XESS Micro Logic Array> at usbus3
Jul 22 11:51:40 kg-core1 devd: Executing 'logger Unknown USB device: vendor 0x04d8 product 0xff8c bus uhub8'
Jul 22 11:51:40 kg-core1 root: Unknown USB device: vendor 0x04d8 product 0xff8c bus uhub8

usbconfig says

root@kg-core1# usbconfig -d ugen3.4
ugen3.4: <X Engineering Software Systems Corp. XuLA - XESS Micro Logic Array> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)

ok. The LED on the XuLA-200 is lit.

2018-04-22: the Plasma CPU looks interesting. MIPS I compatible, runs on Xilinx FPGA boards, and additinal hardware blocks are available.

2013-04-11: the package arrived, straight into my mailbox. Nice.

2013-04-02: I got a shipping notice for the XuLA-200 board I ordered from XESS for USD 55.- with USD 2.05 in shipping.