How, What, UVM and Why

I have a usual go-to story for my most productive experience as a verification engineer. It happened a while ago, in the middle of my 10 year consulting stint. We were a 3-person team. I was the experienced one who knew about testbench infrastructure with a younger fella who knew about the product and a woman who was more of a firmware developer. We were verifying a medium-sized, complicated’ish subsystem that – as I remember it – included a faux processor that ran some custom instruction set.

The reason I’ve always considered this a good experience is because it’s an engagement where we took advantage of three, non-overlapping skill sets. From the very beginning, I was in charge of infrastructure (I think it was VMM at the time), young fella added most of the functionality (without knowing much VMM) and our dedicated firmware expert built out processing support. In lockstep, we’d roll out incremental additions to the infrastructure, fill in functional gaps, incorporate new FW support, run a test and repeat. Continue reading

Why Simulation Code Coverage and Formal Code Coverage are the Same

For a seemingly straightforward technology that’s almost as old as dirt, the concept of code coverage is still kind of confusing. When you ask people what code coverage means, or better, what value it brings to FPGA/ASIC development, you’ll get answers going in a lot of different directions. Comments start at useless and run all the way up to fundamental when it comes to factoring code coverage results into sign-off decisions. And reasoning for why code coverage is both useless and fundamental comes in several shades of grey. It starts feeling like that thing we all assume we understand… but it’s rare to find someone who can explain it in a way we all agree with.

Admittedly, I expect this post to be a tad controversial so today will not be the day for consensus 🙂. Continue reading

Last Day @ SVUnit

At first I thought this would be sad. Then I wasn’t sad. Now I am a bit sad… but happy. Also excited. After waffling for about a year, I’ve finally decided to pass the SVUnit torch. Tudor Timisescu will replace me as lead developer.

Looking back, the time I put into developing and supporting SVUnit was the best career move I’ve made. Easily. By about a mile. The friends I’ve made throughout the industry, many of the clients I worked with as a consultant and the job I have now were all made possible by working on SVUnit; the Wednesday nights I put in at the coffee shop down the hill cranking out code, examples, presentations and blog posts through a steady stream of Pantera, System of a Down and Metallica. Funny how a laptop and loud music became my peace and quiet the way it did. But it did. And it lasted about 7 and a half years; from before the v0.1 release on Nov 22, 2011 when I took the hand-off from Bryan Morris right up to mid-summer 2018. It was mid-2018 when I found myself mentally winding down from the development and support; still a user but I’d lost a bit of the motivation for helping SVUnit roll forward.

Sadness comes from walking away. But the excitement comes from the fact Tudor is moving in with a lot of the motivation I had in the early days – probably more, really. He’s been a long time user who I’ve heard from and chatted with since Dec 2, 2013. He’s got a lot of good ideas for how the framework can evolve and the gumption to make it happen, not only with SVUnit but also with SVMock.

So finally. After a year in the making, please welcome Tudor Timisescu! To everyone who’s used, supported and/or advocated for SVUnit the last 9 years, please join me in continuing to use, support and/or advocate with Tudor at the helm! Follow him on his blog for more.


A Love/Loveless Relationship With Documentation

Try announcing documentation isn’t important in semiconductor development. You’ll be outed as a heretic! Ask people to write it and you’ll hear a sigh. Ask for an example of decent, truly useful documentation and people struggle to find it. To put it mildly, in semiconductor development we’ve got a love/loveless relationship with documentation. We all agree it’s critical but we don’t like writing it. That and we kind of suck at it anyway.

But we can change that. By putting more thought into who we’re creating documentation for and some friendly reminders around how we create it, we can end up with documentation we’re proud of. Continue reading

Agile Hardware Kickstart

I had a neat opportunity to do a lunch-n-learn with a large group of engineers a few weeks ago. It was organized by the IEEE Computer Society as part of a program they use to pair engineering teams with various speakers and topics. They found me through a referral from an agile software friend of mine. I pitched a topic that sounded interesting enough so it was all systems go. I flew in for a day the third week of november. We had 250 people tune in. Good realtime feedback and a great experience for me.

I’ve done webinars like this in the past but I’ve never felt like I left people with a solid feel for how they get started with agile hardware. I wanted this time to be different; I wanted to boil the mess of information that floats around in my head down to concrete possibilities; I wanted those listening to go back to their desks feeling like they had the gumption to get something started. Continue reading

SVUnit Moved to GitHub

Heads-up that we’ve moved SVUnit from Sourceforge to GitHub. This move was a long time coming, finally got it done a couple weeks ago. From now on, all new development will take place in the SVUnit GitHub repository. We may continue to post new releases to Sourceforge for a time while people sort out any download pointers, but I expect that’ll only last a few months. I still need to move open issues from Sourceforge to the GitHub issue tracker, but any new tickets should be filed on GitHub.


SVUnit Topics, Questions and Opinions

I’m looking for a list of discussion topics for a panel discussion that’ll happen at DAC in June. It’ll be a very informal/interactive session. We’ll take a list of topics and cycle through them in a series of 5-10min discussions. Audience will be encouraged to participate; agreeing or disagreeing as they see fit.

I’m looking for topics to get discussion rolling and am hoping you’ll chime in with your ideas. So if you’ve got a few minutes, I’d appreciate you joining the google group discussion and dropping a few comments or questions regarding unit testing, test driven development, SVUnit and/or related. As many as you can think of. Topics could be for or against unit testing, doesn’t matter. In fact the tougher the topic, the better! I’ll take 10-15 and and quote them in a series of slides. We’ll show the slides and invite the audience to weigh in.


Thanks for helping out!


2 Great Days for SVUnit

The last 2 days at DVCon have been about the best possible for SVUnit. Maybe even better than that.

IMG_0678First was the poster sessions on Tuesday just before lunch. Josh Rensch and I had a paper called Do You Verify Your Verification Components. Being that this was my first time to DVCon, I had no idea how the turn out would be and/or whether or not people would be interested enough in the paper to stop and discuss it. To be honest, I had prepared myself to just stand there for 90min while people walked by. Thankfully that didn’t happen.

Even though it was a paper about testing testbench IP that talked about TDD and SVUnit – none of which are remotely close to being mainstream ideas – people were actually interested. Lots of questions, lots of great discussion and I got the feeling there was actual acceptance which was a tad surreal. Credit goes to Josh for taking the lead on writing the paper and putting together the poster. He did most of the work. I was in the car on my way back to the hotel when I got a text from him saying we got a 3rd place award for the paper. Pretty cool.

That was Tuesday. The highlight from Wednesday was the SVUnit User Group Lunch. Full disclosure: I was nervous about this from the moment we started planning it. Never before attempted by me. I wasn’t sure people would show up. That and I doubted we would have enough to talk about. Happy to say, though, that the lunch went better than I could have hoped. Way better.IMG_0692

We had 18 people in total, which is about a dozen more than I thought was possible. There was a perfect mix of experts, soon-to-be-experts, people who’ve been interested in SVUnit but haven’t had a chance to get started and others who didn’t really know much about it. I did my best to get the discussion rolling and then everyone else just kind of took over. It was ideal.IMG_0696

Thanks to everyone that came to the lunch, spoke up, asked questions, chimed in with opinions, signed the SVUnit banner and posed for a picture (extra thanks to my colleague Rich DesMarais for organizing). It was a pretty special day. I felt like this was a big step in building a community around SVUnit. Hopefully, it’s the first of many!


Are You Using SVUnit?

svunit-tagFor me, 2016 starts with new work on SVUnit

  • I’ll be doing a little work on the library itself, adding some new UVM support and updated scripting
  • I’ve got an article in the works for testing UVM checkers with SVUnit
  • A bigger job is polishing off an hour long unit testing training module (I’m hoping I get through that by the end of January so it’s done and posted before DVCon)
  • I’m thinking of doing another real-time Q&A/discussion with SVUnit users

Given the last couple bullets on my todo list, I’m hoping there are a few people out there that will help me out… Continue reading