I just got a blinky project working for my new ULX3S Board with a 45F FPGA chip. I had to git clone and rebuild all three of yosys, trellis and nextpnr. Details of doing this are at https://github.com/YosysHQ/yosys and https://github.com/YosysHQ/nextpnr#nextpnr-ecp5 . I used git repos of the above dated early December 2018. The early November 2018 ones didn't work.
The version of nextpnr I'm using supports an external constraints file.
I have a v3.0.3 ULX3S board, and the constraints file for this is
ulx3s_v20.lpf
.
The blinky.v
file can be simulated under Verilator, just type make
at the command line. It will use blinky_tb.cpp
as the testbench and
that requires testb.h
.
To build the ULX3S bitstream, do a make ulx3s.bit
. If you don't have
a 45F FPGA chip, change the nextpnr-ecp5 --45k
line in the Makefile
to something more suitable. If you have an older board, you will need to
find a constraints file that matches your board. Have a look in
https://github.com/emard/ulx3s/tree/master/doc/constraints .
Making the ulx3s.bit
file requires blinky.ys
which tells
yosys what to do, and ulx3s_v20.lpf
and ulx3s_empty.config
to tell nextpnr what to do.
Use ujprog
from [https://github.com/emard/ulx3s-bin] to program
your board.
If you are using the serial link to the FT231X chip, you need to disable hardware flow control. With minicom, ctrl-A O, Serial port setup, F, Exit.
As I get other projects to work on the board, I'll put links below:
- Echo characters on the USB serial port
- Tic Tac Toe using the serial port, and with HDMI output
- A 4-bit CPU using the serial port
- A HDMI test pattern generator based on Emard and Dan Gisselquist's code