These are some simple examples of the Project Trellis flow. Currently only IO and logic (LUTs/FFs) are supported, with more features to be implemented shortly.
Project Trellis is currently highly experimental. Do not use it for anything mission critical like avionics, nuclear power or automatic cat feeders! Although I have not managed to destroy any FPGAs, there is a non-zero chance that the tools could produce a bitstream that destroys or degrades the FPGA. Do not use with a development board that you cannot afford to lose!
You must have Yosys, nextpnr and Trellis installed from the latest Git master to use the flow. Refer to the READMEs of each project for more information on building and installing them.
All projects include a Makefile for building (and programming in the case of the TinyFPGA example).
In all cases there are a handful of constant bits (that remain the same in all ECP5 designs), whose detailed function is unknown - even if the low-level purpose, such as tying an internal signal low, is known. This is why there is a “_empty.config” file in all examples. These files are also located in the misc/basecfgs
folder. If you need to change any of the examples to a different ECP5 device, you will also need to pick the appropriate base config.
IO constraints are currently specified as attributes on TRELLIS_IO
primitives, reading IO constraint files is not yet implemented.