Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Presentation: 2019 Summer Project Demos

Nancy Chauhan
August 19, 2019
18

Presentation: 2019 Summer Project Demos

This is Final Phase GSoC Presentation

Nancy Chauhan

August 19, 2019
Tweet

Transcript

  1. Continuous Integration for Hardware Projects on LibreCores CI Final Phase

    Demo Nancy Chauhan ( GSoC ‘19 Student ) Librecores Free and Open Digital Hardware
  2. • 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/
  3. • Librecores CI is an approach/service to provide continuous integration

    to hardware projects • Provide automation service • Powered by Jenkins.
  4. 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/
  5. 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.
  6. 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
  7. 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.
  8. 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)
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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.
  14. 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/