Skip to content

gojimmypi/ulx3s-examples

Repository files navigation

ULX3S Examples

Getting started with the ULX3S is easy! You just need a Verilog source code file and the constraint file.

To program the FPGA on the ULX3S, either the commercial Lattice Diamond or Open Source tools such as yosys, nextpnr and ujprog are needed.

If you've never worked with FPGA devices, they are programmed with a hardware definition language or "HDL", that may look like a traditional programming language - however it is quite different. The "code" is really just a clever shorthand for how circuits and logic gates are connected. Verilog is one type of HDL.

You can learn more at sites such as fpga4fun, asic-world digital logic, asic-world verilog and nandland.

Once you have your circuit logic generically defined properly in a Verilog file, the hardware-specific constraint file is used to connect the inputs and outputs of the Verilog code to physical pins on the FPGA device.

Here is a collection of various ULX3S examples to get started:

Common Problems

FT_Open() failed Cannot find JTAG cable.

Check to see if the serial port is in use, such as:

  • Arduino Serial Monitor
  • Visual Micro Serial Monitor
  • Putty
  • Anything else that might have the serial port in use

Found unknown (FFFFFFFF) device, but the bitstream is for LFE5U-12E.

Create and upload a blank Arduino project (empty setup / loop)

See also:

binaries, hardware, f32c/tools/ujprog