Hello to all readers,

 

I just want to inform the mailing list, that I found a way to use GHDL on 
Continuous Integration (CI) platforms

like Travis-CI, which is already used by GHDL itself. A working example can be 
found in the current release

branch of our PoC Library. https://github.com/VLSI-EDA/PoC/tree/release

 

I couldn’t find any gratis CI platform with GitHub integration, which offers 
native HDL (VHDL, Verilog, …) support,

so I investigated how it’s possible to install GHDL in such an environment. I’m 
using Travis-CI to build an example

use case.

 

First, I added a deployment process for GHDL, so it’s possible to push tagged 
commits to a GHDL repository, which

trigger a GHDL build run. The compiled files are afterwards bundled in a tar.gz 
file and pushed as a release back to

the GHDL repository. With this flow it’s possible to provide “weekly” builds. A 
Pull-Request is filed and waiting for

a review. If one has forked GHDL into his own GitHub account, the follwoing 
Pull-Request adds all necessary files

and settings to the repository: https://github.com/tgingold/ghdl/pull/59

 

The current deployment process supports GHDL with llvm backend. Because of the 
old build environment

(Ubuntu 14.04 with gcc 4.8) it’s not suggested to use these builds outside of 
the Travis-CI platform. I have no

knowledge how Debian/Ubuntu packages can be built on such a system, but I think 
it could be integrated too. (Or

whatever other package format is wished.)

 

The next step was to setup a Travis-CI system for my own repository. The *.yml 
file requests a sudo environment,

because apt-get access is required to install libgnat-4.8. (libgnat is not in 
the list of trusted Ubuntu packages via

the “addons.apt.packages” yaml key.)

 

I added three Bash scripts to my repository, which are hooked into the 
Travis-CI flow:

-          ghdl.setup.sh -> wget GHDL, extract the files and do a short GHDL 
version test

-          poc.setup.sh -> setup some files in the PoC repository, after 
Travis-CI cloned it for me

-          poc.run.sh -> run the testbenches

 

Here is my .travis.yml file

https://github.com/VLSI-EDA/PoC/blob/release/.travis.yml

 

Here are the scripts:

https://github.com/VLSI-EDA/PoC/blob/release/tools/Travis-CI/ghdl.setup.sh

https://github.com/VLSI-EDA/PoC/blob/release/tools/Travis-CI/poc.setup.sh

https://github.com/VLSI-EDA/PoC/blob/release/tools/Travis-CI/poc.run.sh

 

If anyone wants to try it by himself, until its integrated into GHDL, here is 
my current GHDL (llvm) build for Travis-CI:

https://github.com/Paebbels/ghdl/releases/tag/v0.34dev-2016.04.20

 

 

Regards

    Patrick Lehmann

 

-----------------------------------

Wissenschaftliche Hilfskraft

 

Technische Universität Dresden

Fakultät Informatik

Institut für Technische Informatik

Lehrstuhl VLSI-Entwurfssysteme, Diagnostik und Architektur

01062 Dresden

Tel.:   +49 351 463-38451

Fax:    +49 351 463-38324

Raum:   APB-1020

E-Mail:  <mailto:patrick.lehm...@tu-dresden.de> patrick.lehm...@tu-dresden.de

WWW:     <http://vlsi-eda.inf.tu-dresden.de/> http://vlsi-eda.inf.tu-dresden.de

 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Ghdl-discuss mailing list
Ghdl-discuss@gna.org
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to