Continuous integration for ASIC development

Let’s face it, sometimes the ASIC development process lags way behind what we’re used to in the software world. 

Part of that is definitely to do with the cost and time to fix a mistake, but we’re also held back by software licensing issues and entrenched modes of thinking.

With open source ASIC tooling, we can leverage services like GitHub Actions to get performance reports every time we make a commit to the design repo. Don’t want your design to be public? You can use Actions on private accounts. Don’t trust GitHub? You can easily run CI on your local air-gapped machines.

With contention for highly priced seats, sometimes big drops in performance can go unnoticed until crunch time. This happened to a friend of mine recently, where they were only integrating the whole design once every few weeks to reserve time on their licences for the current work in progress. With a CI system setup - even using a different toolchain, you can get alerted if your PPA suddenly changes.

Here’s an example run of the CI flow I have that tests the OpenLane ASIC flow and gives me a report and GDS every day of the test design. Feel free to fork it to get started with your own flow.

https://github.com/mattvenn/project0_test/actions/runs/2230817515 

What other processes or systems do software engineers take for granted that we rarely see in the ASIC world? Please let me know your thoughts in the comments.

Previous
Previous

The problem with open source IP

Next
Next

We just published our first video!