Project goal: Create a new Jenkins plugin for one of widely used EDA tools
Skills to study/improve: Java, EDA Tools
The idea is to create a Jenkins plugin or a Pipeline Shared library for one of widely used EDA tools. Both ASIC or FPGA design flow are acceptable, the tool should be proposed by the potential student. Open-source EDA tools would be preferable (e.g. Yosys, FuseSoC, ArachnePnR, icetools), but we also consider conditionally-free tools (like FPGA design EDAs).
Examples of tool integration:
Tool launch and publishing steps for Free-style and/or Pipeline jobs
Integration with Warnings Next Generation Plugin for analysis report parsing.
Integration with xUnit Plugin for test results parsing
Reporting of FPGA resource utilization (per build + trends)
Timing report trend publishing
Integrating UVM reports into Jenkins build and project pages
In the case of FPGA tools integration, a prototyping board will be required unless the project can be done in simulation tools only.
The main objective for an applicant is to select EDA tools for the project. An applicant is expected to define a list of tools for a project and to come up with some automation use-cases which could be implemented in a Jenkins.
Recommended steps:
Explore a tool, review its automation capabilities (availability of command-line interfaces or API)
Try running demos for a tool to explore it
Try automating the demos in Jenkins using existing tools and plugins. Jenkins Pipeline is recommended
Explore ways to improve the user experience by a plugin (tool management, configuration, reporting, etc.)
Project applications may benefit from some prototype implementations
Currently there are only few relevant plugins in the Jenkins project. It is recommended to focus on generic newbie-friendly issues related to tool management and integrations in Jenkins.
Below you can find a list of existing plugins and libraries which can be used for inspiration:
Plugin for Mentor Graphics Questa Verification Run Manager (VRM)
Librecores Jenkins Pipeline Library (FuseSoC, Yosys)
Custom Tools Plugin - generic plugin for tool management