We did our first UVM-UTest challenge on Friday. It went surprisingly well so now we’re going out on a limb by inviting others to take the challenge.
The “rules” of the challenge are:
- A team of 3 has one hour to break our unit tests (we used a lunch hour so it was like a lunch-n-learn… except it wasn’t boring).
- If a team can make functional changes to the uvm-1.1d library that our tests do not detect, you win. If our unit tests detect the functional changes you make, the unit tests win. Pretty simple.
- We guide you through the challenge so you know what code/classes you’re able to change (we also keep notes for where we can improve our test suite). Continue reading
After less than a month of development, the open-source UVM-UTest project is ready for download by the masses. If you care about code quality and maintainability, you’ll be interested in what we have.
For instructions on how to download and run UVM-UTest, take a look at the UVM-UTest Getting Started page. If this is the first you’ve heard of UVM-UTest, you may also want to check out the original UVM-UTest announcement to see what we’re up to. In that announcement you’ll see links to the project charter and progress page. Also be sure to check out The Most Descriptive UVM Tests Ever Written. Those and others like it are part of today’s release.
The next step for us comes this Friday at Noon EST when we have our first UVM-UTest challenge. That’s where we challenge some of our colleagues to find holes in our unit test suite. If they can break the UVM library without our unit tests detecting it, they win. If our unit tests detect all the changes they make, we win. We’ll keep you posted on how that turns out!
..and of course… if you’re interested in taking the challenge, we’d be happy to hear from you !
If you want to know how the uvm_printer works, in detail, I don’t think you’ll find a better explanation anywhere than my unit tests. This comes after I went through a refactoring exercise in our open-source UVM-UTest project – that’s where we’re unit testing the code in the UVM framework – specifically for the purposes of making my code more readable.
Here’s one of the tests I’ve written to get the idea of where I’m going:
A colleague and I have just started a new open-source project that we think will demonstrate the merits of unit testing in hardware. It’s quite an ambitious project called UVM-UTest. The framework-under-test, in case it’s not obvious, is UVM.
The project is hosted on Github. If you’re interested in knowing more about what we’re doing, here’s a link to our UVM-UTest project charter. The entire project charter is one hand-written page so reading it won’t take long. It’ll give you a better idea of what we’re doing and why we’re doing it. If you’re interested in the abbreviated version, I’m comfortable paraphrasing it as:
We’re unit testing UVM.
We have a progress page that shows you how far we’ve come so far. It shows classes and class members that we’ve unit tested. We update that a few times a day so it’s always quite current.
We’re about 3 weeks in and the project is going well. We’ve got about 250 unit tests that take about 10sec to run and we filed our first issues in the eda.org mantis database last week (you can filter out the issues filed by ‘Neil_Johnson’ to see what they are).
There’s a first planned release of UVM-UTest scheduled for June 7. That’s when you’ll be able to download the code and run the tests we have for yourself!
Get the latest version of MiniTB
Through the hardware industry’s continuing infatuation with leading verification technologies – constrained-random verification, functional coverage, numerous fancy methodologies, intelligent testbenches and a host of others – the needs of designers have been thoroughly ignored. That changes with MiniTB. Continue reading
Let’s have some fun, shall we? I’m looking for people to show their commitment to hardware quality by taking the My First SVUnit Test Challenge. It’s easy and perfect for anyone new to SVUnit. Continue reading
Get the latest version of SVUnit from Sourceforge
I’ve had some good feedback from a couple fellows using the report mock and today I released a new version to start incorporating it. SVUnit v1.4
includes a new UVM report mock.
Two significant changes… Continue reading
Posted in TDD
Today, I posted a new v1.1 release of SVUnit on sourceforge. The “new” feature in version 1.1 is a refactored/simplified framework meant to increase usability, especially for people that want to do TDD or unit testing of RTL. Continue reading
Posted in TDD
Great final day at the Intel Agile and Lean Development Conference. It started with a keynote talk by Jim Tremlett of Rally, I had morning talk and an afternoon talk and filled in the rest of the time with hallway discussion. As always happens to me during an agile conference week, I’m tired and my head hurts. That was compounded by me giving 2 talks in the same day which I’ve never done before. But I made it and now it’s time to crash. But first… Continue reading
So pretend you’ve dedicated about 5 years to something you believe in… I mean really believe in. At the beginning it seems like you’re the only person in on it (or 1 of 2 in my case considering Bryan was the guy that gave me the first little push). It seems to make so much sense but you can’t figure out why others haven’t seen it already. Then slowly… very slowly… you see people pop out of the woodwork from around the world. At times you get the feeling there’s a community being built, and that you’re a part of it, but it’s still so early that it’s not entirely clear who’s in your little community or where it even exists. Sometimes you question whether it actually exists at all… but you keep plugging away because you believe in it.
Then you spend a week in Hillsboro and find out that there are hundreds of people working toward the exact same thing you are.
Surprise! The agile hardware community does in fact exist. It’s a relief to actually see it . Continue reading