Skip to main content

Unify to Verify: A Monorepo Approach for Hardware and Software using Bazel, Cocotb and Verilator

Conference: Verification Futures 2025 (click here to see full programme)
Speaker: Will Keen
Presentation Title: Unify to Verify: A Monorepo Approach for Hardware and Software using Bazel, Cocotb and Verilator
Abstract:

“Software is Software, and Hardware is Hardware, and never the twain shall meet” — Rudyard Kipling (possibly apocryphal) Bringing software and hardware teams into a shared development flow has long felt out of reach — siloed tools, incompatible languages, and divergent workflows stand in the way. But with the right infrastructure and open source tooling, it's now possible to unify these disciplines in a single, cohesive environment. At Fractile, we've embraced a monorepo model — a single repository that holds everything from RTL and verification code to software models, device drivers, and architecture specs. This unified codebase, built on Bazel, enables consistent builds, scalable dependency management, and tight integration between hardware and software development. By leveraging Cocotb and Verilator, we’ve built a verification flow that aligns with our software teams’ tooling and culture. Python-based testbenches allow us to reuse existing software components, and shared infrastructure enables co-development against a Single Source of Truth (SSoT). Our verification workloads are part of the same Continuous Integration pipeline as software — fully automated, continuously tested. This talk will explore the challenges we encountered adopting this approach, how we overcame them, and why this model may be valuable to teams considering how verification can take advantage of modern development practices.

Speaker Bio:

Will Keen has 12 years of experience in pre-silicon verification, spanning SoC, CPU, and unit-level work across both simulation and formal methodologies. He is currently working at Fractile, where the team applies modern, software-inspired methods to tackle complex hardware challenges. His guiding philosophy is: “solving hardware problems with a software mindset.”

Key Points:
  • A shared infrastructure between software and hardware enables reuse of models, payloads, and more — grounded in a Single Source of Truth (SSoT)
  • A monorepo approach unites all the developers in the company into a single codebase and infrastructure, eliminating barriers to sharing — a structure enabled by Bazel
  • Open source tools such as Cocotb and Verilator allow hardware teams to interoperate with software teams by speaking the same language
  • Close Menu