Posts — page 7
Selectively Muting your BFMs to Speed up Simulation
[](/legacy-img/splash-7.png) Have you ever had the misfortune to be on the CC list for a "lively" email discussion where you're a stakeholder but only case about the conclusion? You can't simply ignore the traffic, because you do care about the conclusio…
2019 - The "Nights and Weekends Projects" Year in Review
[](/legacy-img/splash-16.png) It's almost the end of 2019, and I've been thinking back over the year as well as thinking ahead to 2020. In past years, I've often evaluated my "nights and weekends" projects using the same metrics I'm evaluated on at work:…
Writing a Task-Based Cocotb BFM
[](/legacy-img/splash-6.png) Background The purpose of a Bus Functional Model (BFM) is to enable interacting with a design via a given protocol at a higher level of abstraction than the signal-level protocol, while knowing the bare minimum about the…
Adding Task-Based Bus Functional Models to Cocotb
[](/legacy-img/splash-12.png) Getting a project started -- even to a certain level of completeness -- is often pretty simple. A couple weekends of hacking often results in pretty good progress and results. Finishing things up, in contrast, is often…
Embedded Languages: The Space Between Language and API
[](/legacy-img/splash-3.png) We're all familiar with general-purpose programming language for capturing general algorithms, but there are also a sizeable group of domain-specific languages that exist to efficiently capture reasoning in a specific domain -- …
The Toolmaker's Dilemma: Visionaries Have Always Created Their Own Tools
[](/legacy-img/splash-11.png) I recently saw a quote (on Twitter, in a photo no less) to roughly the same effect as the title above: that innovators and visionaries have always created their own tools. I'd attribute the quote if I could, but the dynamic …
Py-HPI: Applying Python for Verification
[](/legacy-img/splash-5.png) Intro In my [last post](/blog/py-hpi-a-procedural-hdl-python-integration/), I talked about a prototype procedural interface between Python and HDL that enables cross-calling between Python and SystemVerilog. My primar…
Py-HPI: A Procedural HDL/Python Integration
[](/legacy-img/splash-15.png) As I mentioned in my [last post](/blog/functional-verification-and-the-ecosystem-argument/), I've been looking at using Python for more tasks, including functional verification. My go-to languages for functional verifi…
Functional Verification and the Ecosystem Argument
I've been involved in the functional verification space for quite some time -- both personally and professionally. On the personal side, I've recently been experimenting with using Python as a functional verification language. The simplest reason? The ecosyste…
Generate Custom Content Quickly with a Template Engine
[](/legacy-img/vte-splash.png) I was at [DVCon](https://dvcon.org/) earlier this week, and attended the UVM Update Tutorial delivered by Cliff Cummings. Cliff described his typical process of creating UVM elements, which is to have a set of 'golden' temp…