Skip to content

Commit

Permalink
feat: add icestorm fpga dev container
Browse files Browse the repository at this point in the history
  • Loading branch information
amsmith-pro committed Mar 16, 2024
1 parent 1bf6866 commit 8411494
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/build-and-push-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
packages: write
strategy:
matrix:
image: ["arrow-rust", "arrow-sanitychecks", "arrow-stm32", "arrow-tfenv", "arrow-gis"]
image: ["arrow-rust", "arrow-sanitychecks", "arrow-stm32", "arrow-tfenv", "arrow-gis", "arrow-icestorm"]

steps:
- name: Checkout repository
Expand Down
1 change: 1 addition & 0 deletions docker/arrow-icestorm/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
VERSION=v1.0.0
31 changes: 31 additions & 0 deletions docker/arrow-icestorm/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM alpine:3.18

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=UTC

RUN apk update
RUN apk add --no-cache --update bash curl git g++ musl-dev make \
libftdi1-dev clang bison flex-dev gperf readline-dev \
gawk tcl-dev libffi-dev eigen-dev \
graphviz python3 libftdi1-dev gcc-gnat \
qt5-qtbase python3-dev boost-dev cmake

# To use VHDL with yosys, require ghdl plugin
RUN git clone https://github.com/ghdl/ghdl.git ghdl
RUN git clone https://github.com/ghdl/ghdl-yosys-plugin ghdl-yosys-plugin

# To use yosys with ice40, require icestorm and nextpnr with ice40 architecture
RUN git clone https://github.com/YosysHQ/yosys.git yosys
RUN git clone https://github.com/YosysHQ/icestorm.git icestorm
RUN git clone https://github.com/YosysHQ/nextpnr nextpnr

# Install all
RUN cd yosys; make -j$(nproc); make install
RUN cd ghdl; ./configure --prefix=/usr/local; make -j$(nproc); make install
RUN cd ghdl-yosys-plugin; make -j$(nproc); make install
RUN cd icestorm; make -j$(nproc); make install
RUN cd nextpnr; \
git submodule init && git submodule update; \
cmake . -DARCH=ice40 -DUSE_IPO=off -DCMAKE_INSTALL_PREFIX=/usr/local; \
make -j$(nproc); \
make install

0 comments on commit 8411494

Please sign in to comment.