All Projects → ghdl → docker

ghdl / docker

Licence: other
Scripts to build and use docker images including GHDL

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to docker

Edalize
An abstraction library for interfacing EDA tools
Stars: ✭ 270 (+900%)
Mutual labels:  simulation, vhdl, verilog, synthesis
fphdl
VHDL-2008 Support Library
Stars: ✭ 36 (+33.33%)
Mutual labels:  hardware, simulation, vhdl, synthesis
xeda
Cross EDA Abstraction and Automation
Stars: ✭ 25 (-7.41%)
Mutual labels:  hardware, vhdl, verilog, synthesis
JSON-for-VHDL
A JSON library implemented in VHDL.
Stars: ✭ 56 (+107.41%)
Mutual labels:  simulation, vhdl, synthesis, ghdl
formal hw verification
Trying to verify Verilog/VHDL designs with formal methods and tools
Stars: ✭ 32 (+18.52%)
Mutual labels:  vhdl, verilog, ghdl, yosys
Livehd
Live Hardware Development (LiveHD), a productive infrastructure for Synthesis and Simulation
Stars: ✭ 110 (+307.41%)
Mutual labels:  simulation, verilog, synthesis
cocotb-bus
Pre-packaged testbenching tools and reusable bus interfaces for cocotb
Stars: ✭ 20 (-25.93%)
Mutual labels:  vhdl, verilog, testbench
Awesome Open Hardware Verification
A List of Free and Open Source Hardware Verification Tools and Frameworks
Stars: ✭ 103 (+281.48%)
Mutual labels:  hardware, vhdl, verilog
vboard
Virtual development board for HDL design
Stars: ✭ 32 (+18.52%)
Mutual labels:  vhdl, verilog, ghdl
iceskate
A low cost FPGA development board for absolute newbies
Stars: ✭ 15 (-44.44%)
Mutual labels:  hardware, icestorm
ruby-vpi
Ruby interface to IEEE 1364-2005 Verilog VPI
Stars: ✭ 15 (-44.44%)
Mutual labels:  simulation, verilog
pyarch
🔌 Hardware Abstraction Library in Python
Stars: ✭ 15 (-44.44%)
Mutual labels:  hardware, vhdl
qodana-action
⚙️ Scan your Java, Kotlin, PHP, Python, JavaScript, TypeScript projects at GitHub with Qodana
Stars: ✭ 112 (+314.81%)
Mutual labels:  ci, actions
release-helper
🤖 A GitHub Action that help you publish release.
Stars: ✭ 27 (+0%)
Mutual labels:  ci, actions
github-create-release-action
Create a GitHub release from a Tag
Stars: ✭ 33 (+22.22%)
Mutual labels:  ci, actions
PoC-Examples
This repository contains synthesizable examples which use the PoC-Library.
Stars: ✭ 27 (+0%)
Mutual labels:  vhdl, synthesis
math
Useful m-scripts for DSP (CIC, FIR, FFT, Fast convolution, Partial Filters etc.)
Stars: ✭ 15 (-44.44%)
Mutual labels:  vhdl, verilog
OpenLane
OpenLane is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen, Fault and custom methodology scripts for design exploration and optimization.
Stars: ✭ 548 (+1929.63%)
Mutual labels:  verilog, yosys
overview
Automate your workflows with GitHub actions for MATLAB.
Stars: ✭ 40 (+48.15%)
Mutual labels:  ci, actions
getting-started
List of ideas for getting started with TimVideos projects
Stars: ✭ 50 (+85.19%)
Mutual labels:  vhdl, verilog

'base' workflow Status 'test' workflow Status 'bullseye' workflow Status

'vunit' workflow Status 'ext' workflow Status 'cosim' workflow Status 'mirror' workflow Status

This repository contains scripts and YAML workflows for GitHub Actions (GHA) to build and to deploy the container images that are used and/or published by the GHDL GitHub organization. All of them are pushed to hub.docker.com/u/ghdl.


ATTENTION: Some images related to synthesis and PnR were moved to hdl/containers and hub.docker.com/u/hdlc. See DEPRECATED.


Images for development (i.e., building and/or testing ghdl):

  • ghdl/build Docker pulls images include development depedendencies for ghdl.
  • ghdl/run Docker pulls images include runtime dependencies for ghdl.
  • ghdl/pkg Docker pulls images include the content of ghdl tarballs built in ghdl/build images.
  • ghdl/debug Docker pulls image is based on ghdl/build:bullseye-mcode and ghdl/pkg:bullseye-mcode; includes Python pip, GNAT GPS, Graphviz and GDB.

Ready-to-use images:

  • ghdl/ghdl Docker pulls images, which are based on correponding ghdl/run images, include ghdl along with minimum runtime dependencies. GHDL is built with the experimental --synth feature enabled.
  • ghdl/vunit Docker pulls images, which are based on ghdl/ghdl:bullseye-* images, include ghdl along with VUnit.
    • *-master variants include latest VUnit (master branch), while others include the latest stable release (installed through pip).
  • ghdl/ext Docker pulls GHDL and complements (ghdl-language-server, GtkWave, VUnit, etc.).
  • ghdl/cosim Docker pulls GHDL and other tools for co-simulation such as SciPy, Xyce or GNU Octave.

See USE_CASES.md if you are looking for usage examples from a user perspective.

GHA workflows

· base

Build and push all the ghdl/build:* and ghdl/run:* docker images. :

  • A pair of images is created in one job for each of [ ls-debian, ls-ubuntu ].
  • One job is created for each of [ fedora (33 | 34), debian (buster | bullseye), ubuntu (18 | 20)], and six images are created in each job; two (ghdl/build:*, ghdl/run:*) for each supported backend [ mcode, llvm*, gcc ].
    • ghdl/debug:base is created in the debian bullseye job.

· test

Build and push almost all the ghdl/ghdl:* and ghdl/pkg:* images. A pair of images is created in one job for each combination of:

  • [ fedora: [33, 34], debian: [bullseye], ubuntu: [18, 20] ] and [mcode, llvm*].
  • [ fedora: [33, 34], debian: [buster, bullseye] ] and [gcc*].
  • For Debian only, [buster, bullseye] and [mcode] and [--gpl].

The procedure in each job is as follows:

  • Repo ghdl/ghdl is cloned.
  • ghdl is built in the corresponding ghdl/build:* image.
  • A ghdl/ghdl:* image is created based on the corresponding ghdl/run:* image.
  • The testsuite is executed inside the ghdl/ghdl:* image created in the previous step.
  • If successful, a ghdl/pkg:* image is created from scratch, with the content of the tarball built in the first step.
  • ghdl/ghdl:* and ghdl/pkg:* images are pushed to hub.docker.com/u/ghdl.

NOTE: images with GCC backend include lcov for code coverage analysis.

· bullseye [triggered by ghdl/ghdl nightly job]

Complement of ghdl.yml, to be run after each successful run of the main workflow in ghdl/ghdl. One job is scheduled for each combination of [ bullseye ] and [ mcode, llvm-9 , gcc-9.1.0 ].

ghdl/debug is created in the mcode job.

· vunit [triggered after workflow 'bullseye']

Build and push all the ghdl/vunit:* images, which are based on the ones created in the 'bullseye' workflow.

  • Two versions are published for each backend: one with latest stable VUnit (from PyPI) and one with the latest master (from Git).
  • Images with GCC backend include lcov and gcovr for code coverage analysis.

· ext [triggered after workflow 'vunit']

Build and push all the ghdl/ext:* images:

  • ls: ghdl/ext:ls-debian and ghdl/ext:ls-ubuntu (a job for each of them). These include ghdl/ghdl, the ghdl/ghdl-language-server backend and the vscode-client (precompiled but not preinstalled).
  • gui:
    • ghdl/ext:gtkwave: includes GtkWave (gtk3) on top of ghdl/vunit:llvm-master.
    • ghdl/ext:broadway: adds a script to ghdl/ext:gtkwave in order to launch a Broadway server that allows to use GtkWave from a web browser.
    • ghdl/ext:ls-vunit: includes VUnit (master) on top of ghdl/ext:ls-debian.
    • ghdl/ext:latest: includes GtkWave on top of ghdl/ext:ls-vunit.

· cosim

See ghdl/ghdl-cosim: docker and ghdl.github.io/ghdl-cosim/vhpidirect/examples/vffi_user.

  • ghdl/cosim:mcode: based on ghdl/ghdl:bullseye-mcode, includes GCC.
  • ghdl/cosim:py: based on ghdl/ghdl:bullseye-llvm-7, includes Python.
    • ghdl/cosim:vunit-cocotb: based on ghdl/cosim:py, includes VUnit, cocotb and g++ (required by cocotb).
    • ghdl/cosim:matplotlib: based on ghdl/cosim:py, includes pytest, matplotlib, numpy and Imagemagick.
    • ghdl/cosim:octave: based on ghdl/cosim:py, includes GNU Octave.
    • ghdl/cosim:xyce: based on ghdl/cosim:py, includes Xyce.

NOTE: *-slim variants of matplotlib, octave and xyce images are provided too. Those are based on ghdl/cosim:vunit-cocotb, instead of ghdl/cosim:py.

Packaging

Multiple artifacts of GHDL are generated in these workflows. For example, each job in test.yml generates a tarball that is then installed in a ghdl/ghdl:* image, and the content is published in a ghdl/pkg:* image. These resources might be useful for users/developers who:

  • Want to use a base image which is compatible but different from the ones we use. E.g., use python:3-slim-bullseye instead of debian:bullseye-slim.
  • Do not want to build and test GHDL every time.

However, it is discouraged to use these pre-built artifacts to install GHDL on host systems.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].