Getting Started
# see: https://github.com/open-tool-forge/fpga-toolchain/releases read os <<< "linux" read arch < <( uname -i ) read url < <( curl "https://api.github.com/repos/open-tool-forge/fpga-toolchain/releases/latest" \ | jq -r \ --arg os "${os}" \ --arg arch "${arch}" \ ' .assets[] | select(.name | contains($os + "_" + $arch)) | select(.name | endswith(".tar.gz")) | .browser_download_url ' ) curl -LO "${url}" tar -xvf "${url##*/}" export PATH="$(readlink -f ./fpga-toolchain/bin/):${PATH}" yosys -V nextpnr-ecp5 -V
ATTRS{idVendor}=="1209", ATTRS{idProduct}=="5af0", MODE="0666", GROUP="plugdev", TAG+="uaccess"
udevadm control --reload-rules
git clone https://github.com/gregdavill/OrangeCrab-examples
cd OrangeCrab-examples/verilog/blink
make
Press button, and plug in... LED should fade RGB.
make dfu
LED should fade in/out Orange, and then switch to the new bitstream.
NOTE: the yosys
toolchain must still be on your ${PATH}
.
cd OrangeCrab-examples/nmigen python3 -m venv venv . venv/bin/activate pip install --upgrade git+https://github.com/nmigen/nmigen-boards#egg=nmigen-boards # enter bootloader python blink.py
Current releases have a problem with LiteX SoCs... possibly a Yosys bug. Instead, we need to use a version from before 1st July 2020.
read os <<< "linux" read arch < <( uname -i ) read date < <( TZ='UTC' date -d '1 Jul 2020' +'%s' ) read url < <( curl "https://api.github.com/repos/open-tool-forge/fpga-toolchain/releases?per_page=100" \ | jq -r \ --arg os "linux" \ --arg arch "$(uname -i)" \ --arg date "${date}" \ ' [ .[] | select((.published_at | fromdateiso8601) < ( $date | tonumber )) ] | first | .assets[] | select(.name | contains($os + "_" + $arch)) | select(.name | endswith(".tar.gz")) | .browser_download_url ' ) curl -LO "${url}" tar -xvf "${url##*/}" export PATH="$(readlink -f ./fpga-toolchain/bin/):${PATH}" yosys -V nextpnr-ecp5 -V
# see: https://www.sifive.com/software curl -LO "https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2020.04.0-x86_64-linux-ubuntu14.tar.gz" tar -xvf riscv64-unknown-elf-gcc-8.3.0-2020.04.0-x86_64-linux-ubuntu14.tar.gz export PATH="$(readlink -f ./riscv64-unknown-elf-gcc-8.3.0-2020.04.0-x86_64-linux-ubuntu14/bin):${PATH}" riscv64-unknown-elf-gcc -v
cd OrangeCrab-examples/litex
python3 -m venv venv
. venv/bin/activate
pip install --upgrade git+https://github.com/litex-hub/pythondata-software-compiler_rt.git
python SoC-CircuitPython.py
git clone https://github.com/gregdavill/circuitpython.git -b orangecrab --recurse-submodules make BOARD=orangecrab -C circuitpython/ports/litex
ln -s circuitpython/ports/litex/build-orangecrab/firmware.bin python combine.py dfu-util -D combine.dfu