-
Notifications
You must be signed in to change notification settings - Fork 33
3. Using the Docker Container
All of the tools used in the project will be kept in a separate Docker container. The Dockerfile is located in the 99.warmup folder under 99.docker.
The tools used in the Docker Container will be listed below(checkmarks will be used for tools that are currently added, while the empty checkmarks are for tools that are being added). The tools can also be seen on the issue here on our Github.
The following is a comprehensive list of the tools and IP used in the project, with their current versions and statuses. The list differentiates between tools that have been fully integrated (✔) and those still in the process of being added (✘). For additional details and discussion on tool integration, you can refer to the relevant GitHub issue here.
Below is a list of tools integrated into our Docker container with their respective versions and links to their official sites or repositories.
| Tool Name | Version | Integrated | Documentation Link |
|---|---|---|---|
| Verilator | v5.024 (Latest v5.030) | ✔ | Verilator Guide |
| GTKwave | v3.3.116 | ✘ | GTKwave Releases |
| Python3 | 3.13.0 | ✔ | Python 3.13.0 |
| Surfer | v0.13.1 | ✔ | Surfer Project |
| SV2V | v0.0.12 | ✔ | SV2V GitHub |
| Verible | v0.0-3843 | ✔ | Verible GitHub |
| CDC Snitch | LATEST | ✔ | CDC Snitch Documentation |
| Vivado | 2024.2 | ✔ | Vivado Download |
| Yosys | 0.4.7 | ✔ | Yosys GitHub |
| PeakRDL | 1.1.0 | ✔ | PeakRDL GitHub |
| RISC-V GNU Toolchain | 2024.11.22 | ✔ | RISC-V GNU Toolchain GitHub |
| OpenOCD | 0.12.0 | ✔ | OpenOCD GitHub |
| PipelineC HLS | LATEST | ✔ | PipelineC HLS Wiki |
| openXC7 | LATEST | ✘ | openXC7 GitHub |
| VProc | v1.11.3 | ✔ | VProc GitHub |
| Mem Model | v1.0.0 | ✔ | Mem Model GitHub |
| rv32 ISS | v1.1.3 | ✔ | rv32 ISS GitHub |
| TCP/IP Packet Generator | TBD | ✔ | TCP/IP Packet Generator GitHub |
| Ibex Demo System | v0.0.3 | ✔ | Ibex Demo System GitHub |
| Ibex | LATEST | ✔ | Ibex GitHub |
| Bringup-Bench | v1.5 | ✔ | Bringup-Bench GitHub |
| FPGA Design Elements | LATEST | ✔ | FPGA Design Elements GitHub |
| Wireshark | LATEST | ✘ | Wireshark GitHub |
Setting up Docker for our project is streamlined through a series of scripts located in the 99.docker folder. Here’s how to get everything up and running.
To install Docker along with all the necessary tools to run our Docker image, execute the install_docker.sh script found in the 99.docker folder. This script simplifies the installation process, ensuring that Docker is properly configured on your system.
Once Docker is installed, proceed by running the build.sh script, also located in the 99.docker folder. Building the Docker image can take some time, as it depends on your machine's performance and internet speed. After the build process completes, verify the installation by executing docker images in your terminal. You should see the newly created Docker image listed among the available images.
If you don't wish to build the Docker image on you can download the already built image by using the following command:
docker pull tarikhamedovic03/fpga-tools:1.0
To launch the Docker container, utilize the run_docker.sh script. This script initiates the Docker container with a graphical user interface, leveraging x11docker to manage GUI interactions within Docker. This is the screen that should be seen on your computer with all of the tools installed within.

TODO: Instructions for installing and configuring Docker on Windows will be added soon.