Quality Lag and Debug Lag with Constrained Random Verification

If you’ve read Does Constrained Random Verification Really Work and Functional Verification Doesn’t Have to be a Sideshow, you’ll know that I’ve become a bit of a skeptic when it comes to constrained random. My opinion hasn’t changed much since those posts and I think I’ve got a couple visuals that will help people see the point I was arguing in Functional Verification Doesn’t Have to be a Sideshow, that a successful constrained random verification effort starts with directed testing… a lot of directed testing. Continue reading

Agile2012 Round-up: Day 4

It’s day 4 and time for an abbreviated post. Today I made it to the first session in the morning, hung around in the open space to listen in on some post-talk discussion and met some friends for lunch to talk about some open-source development.

But the big news of the day was that the final votes were counted and the winner of the Agile2012 Conference Gold Star Award for Outstanding Accidental Contribution To The Field Of Hardware Verification… or repeat winner would be more accurate… is Elisabeth Hendrickson! She was the big winner last year and she did it again this year by spending another hour with me today showing me how to use cucumber to write acceptance tests. She’s also helped get me thinking about the possibilities for next year’s conference so congratulations (and thank you :)). Continue reading

Agile2012 Round-up: Day 1

It’s a big week for agile software developers with Agile2012 officially starting today in Dallas.

Last year, Agile2011 was 5 action packed days and it’s looking like more of the same for Agile2012! After a late flight in last night and a solid 4 hours sleep (I had a late start from Calgary and an extra hour layover in Denver so I didn’t get into my room until about 2:15am), we’re off to a great start with today’s sessions. Continue reading

SVUnit 101 For Designers

If you read my last post, Why Use SVUnit?, you’ll see that someone responding to my announcement about SVUnit v0.1 on verificationguild.com pointed out that I haven’t done an outstanding job of explaining why people would actually use SVUnit. Seems the last post took us a step in the right direction by explaining a little more about who can use and SVUnit and where they’d use it. You’ll see though that in the follow-up, krupan suggests I go a step further, which I agreed to… on one condition! Continue reading

Why Use SVUnit?

I recently came across the following comment on verificationguild.com in response to my posting of a link to the first publicly available, v0.1 version of SVUnit…

I have attempted to read each of the blog posts about svunit, but they are mostly a bunch of arguments about why I should use it and how great testing is. Are there any code examples I could look at? I’m still not totally clear on what I should use svunit for. Is it for testing RTL design code? You mention being able to test UVM classes. Is it for testing my testbench code (which is so meta)? My team has talked about “micro testbenches” that designers could quickly write while developing, since UVM testbenches are beyond the scope of their need. Could svunit fill that need?

It’s pretty easy to spot the frustration in the first sentence. When someone talks about “attempting to read” something, it probably means they tried as hard as they could to get through it, hoping to eventually find what they were looking for and in the end they’ve come up short… which means I’ve come up short. Continue reading

TDD Applied To Testbench Development

When we were writing about TDD back in November 2011 during our TDD month, admittedly I had very little experience with it. The goal with TDD month was to spread the word and drum up a little interest in a technique the the software folks have been using successfully for years. I’d used it on a small scale but lacked the experience to back up a lot of what I was writing.

Over the last few months though, that’s changed. I’ve spent a good amount of time collecting feedback from and supporting SVUnit early adopters. That’s been good for getting a feel for how others in hardware development see TDD. Just as important, I’ve been using TDD myself to build testbenches and it’s been going well… very, very well. I’m at the point where I’m going through a pretty repeatable cycle that I think could be useful for others contemplating TDD. I’ve talked about this cycle before, but it’s worth revisiting now that I’ve been through it. Continue reading