Share
Embed
Presentation: 2019 Summer Project Demos
This is Final Phase GSoC Presentation
Nancy Chauhan
August 19, 2019
Transcript
16 slides
-
Continuous Integration for Hardware Projects on LibreCores CI Final Phase
Demo Nancy Chauhan ( GSoC ‘19 Student ) Librecores Free and Open Digital Hardware -
• FOSSi Foundation is a non-profit foundation • Mission :
Promote and assist free and open digital hardware designs and their related ecosystems. • Operates as an open, inclusive, vendor-independent group. https://fossi-foundation.org/ -
• Librecores CI is an approach/service to provide continuous integration
to hardware projects • Provide automation service • Powered by Jenkins. -
This summer, I worked on developing continuous integration pipeline for
hardware projects such as OpenRISC, a family of free and open-source processor implementations on the RISC architecture. https://openrisc.io/ -
Recap : First Phase • Enhanced OpenRISC CI pipelines as
it previously worked on Travis CI. • OpenRISC CI suite now runs in a librecores-ci-openrisc docker container. • OpenRISC CI now runs in Jenkins. -
Recap : Second Phase • Worked on Yosys synthesis with
changes in core description file of mor1kx (FuseSoC). • This goal led to developments • New Version of Edalize (FuseSoC backend) is released : v0.1.6a -
Progress : Third Phase • Completed Yosys Synthesis and published
its result with Plot Plugin • New Version released : 0.5.0 of Librecores CI base docker image. • OpenRISC test results exported to TAP Format and published on Jenkins with TAP plugin. • LibreCores Pipeline library improved for adding a generic pipelines for CI of the OpenRISC project. • Worked on generalising Yosys Synthesis so that it can be configured for various hardware projects with a simple declarative call. -
Parsing and visualizing test reports for mor1kx Tap Plugin (
JENKINS ) : Used for test results of openrisc projects Plot Plugin ( JENKINS ) : Used for synthesis and PnR metrics (e.g. used LUTs) -
openriscPipeline Builds a pipeline for OpenRISC project Out of the
box it configures: 1. Pulls a docker image for librecores-ci-openrisc 2. Executes jobs in parallel inside docker images -
fusesoc Builds a step for a generic FuseSoC Invocation 1.
Chooses a base docker image with FuseSoC 2. Add library to FuseSoc 3. Run FuseSoC step 4. Runs arbitrary shell commands in this step -
yosysSynthesisReport Build a step for Yosys Synthesis for monitoring resource
usage statistics and publish on Jenkins 1. Generalised 2. Can be configured for various hardware projects 3. Simple declarative call which require parameters core , target , logPath -
What did I learn in GSoC 1. Various technologies i.e
Docker, Jenkins 2. Groovy Programming and developing Jenkins Shared Library 3. Concepts of DSL and Closure 4. Various EDA Tools -
We would like to invite more hardware projects to use
the LibreCores Pipeline library and development tools. If you are interested to do so, please reach out to us in the LibreCores CI Gitter Chat. -
Discussions : • Chat : ◦ https://gitter.im/librecores/librecore s-ci • Mailing
List : ◦ [email protected] ◦ [email protected] Github : https://github.com/orgs/librecores/projects/1 Some Useful Links Blog Posts : • http://nancychauhan.in/stories/2019/07/30/ coding-phase2/ • http://nancychauhan.in/stories/2019/06/08/ gsoc-week1_2/ • http://nancychauhan.in/stories/2019/06/28/ gsoc-week3_4/ -
Thank you Oleg Nenashev, Stafford Horne , FOSSi Foundation ,
OpenRISC and Jenkins Organisation !