Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add icestorm fpga dev container #43

Merged
merged 2 commits into from
Mar 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .cspell.project-words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,18 @@ postgis
pgrouting
xvzf
sfcgal
noninteractive
gperf
readline
eigen
graphviz
qtbase
VHDL
yosys
ghdl
icestorm
nextpnr
nproc
DARCH
DCMAKE
libftdi
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 llvm16-dev \
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 --with-llvm-config --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
Loading