Quickstart
The following is a quick example on how to get started with a demo Lattice ice40 stick FPGA and a blinky led algorithm.
Install bmctl CLI
git clone https://github.com/BondMachineHQ/BMBuildkit
cd BMBuildkit
go install ./cmd/bmctl
Build, tag and share your FPGA algorithms
N.B. you need an host with icepack, nextpnr and yosys installed on your host. In alternative you can try with the pre-built steps below.
bmctl build ./ -f BMFile -t <dockerhub USERNAME>/bmtest:built
(alternative) Upload a pre-built firmware
bmctl build ./ -f BMFile.localfirmware -t <dockerhub USERNAME>/bmtest:pre-built
Upload demo alveo u50 firmware
wget http://bondmachine.fisica.unipg.it/firmwares/bmfloat16.xclbin
bmctl build ./ -f BMFile.localfirmware-alveo -t <dockerhub USERNAME>/bmtest-alveo:pre-built
Load the firmware on the board
N.B. you need an host with iceprog installed.
bmctl load <dockerhub USERNAME>/bmtest:pre-built lattice/ice40/yosys
Alveo u50 load firmware
N.B. you need Xilinx runtime installed and sourced for this to run.
bmctl load <dockerhub USERNAME>/bmtest-alveo:pre-built xilinx/alveou50/xrt
Quick build with ice40 docker
docker run \
-e MODULE_NAME=blinky \
-e SYNTH_FILE=blinky.v \
-v $PWD/examples/blinky/ice40:/opt/source \
dciangot/yosys:ice40
docker run \
-e MODULE_NAME=top \
-e SYNTH_FILE=blinky.v \
-v $PWD/examples/blinky/primer20k:/opt/source \
dciangot/yosys:primer20k