You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note that on some systems the installed binaries might not be on the path. Either add the binaries to the path, or use the path of the installed binary directly. (running the source files will lead to import errors)
which gowin_bba # check if binaries are on the path
python -m site --user-base # find the site packages base directory
ls $HOME/.local/bin # confirm the binaries are installed in this folderexport PATH="$HOME/.local/bin:$PATH"# add binaries to the path
From there, compile a blinky.
The example below is for the Trenz TEC0117. For other devices, use the model numbers listed above for --device, and replace tec0117 with runber, tangnano, tangnano4k or tangnano9k accordingly. Also note the number of LEDs on your board: 8 for tec0117 and runber, 3 for honeycomb and tangnano.
You can also use the Makefile in the examples folder to build the examples.
cd examples
yosys -D LEDS_NR=8 -p "read_verilog blinky.v; synth_gowin -json blinky.json"
DEVICE='GW1NR-UV9QN881C6/I5'# change to your device
BOARD='tec0117'# change to your board
nextpnr-himbaechel --json blinky.json \
--write pnrblinky.json \
--device $DEVICE \
--vopt cst=$BOARD.cst
gowin_pack -d $DEVICE -o pack.fs pnrblinky.json # chango to your device# gowin_unpack -d $DEVICE -o unpack.v pack.fs# yosys -p "read_verilog -lib +/gowin/cells_sim.v; clean -purge; show" unpack.v
openFPGALoader -b $BOARD pack.fs
For the Tangnano9k board, you need to call nextpnr and gowin_pack with the chip family as follows:
I did a few livestreams on twitch working on this project, which are collected on this playlist I've also started to write Jupyter notebooks of my explorations that are more condensed than a video.
This project was funded through the NGI0 PET and NGI Zero Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825310 and 101069594.
Footnotes
C devices require passing the --vopt family flag as well as --device to Nextpnr, and stating the family in place of device when passing -d to gowin_pack because the C isn't part of the device ID but only present in the date code. Check examples/Makefile for the correct command. ↩↩2↩3
About
Project Apicula 🐝: bitstream documentation for Gowin FPGAs