Straight-up Smash-mouth Debug

Debugging Threads, Transactions, UVM Sequences and using the call stack

I’m having a bad day. Lots of work. Lots of moving parts. We’ve all been there. Nothing new.


>> Too busy


And then, this afternoon was a customer demo. Jump on the webex… Audio. Video. Check.

A Mentor Application Engineer is going to demo Visualizer Debug. I’ll call him “Steve the Debugger”.

A demo to a big customer. On their current design.


>> Great Opportunity


There are a couple of “Grizzled Consultants” in the audience. I don’t mean grizzly bears. Just rascals. And they’re not happy to be on a call with “An EDA Vendor”.

Sigh. My day is heading further downhill.

I’m on the call to answer questions – but in the end I wasn’t needed. But I’m really glad I dialed in…

One of the Grizzlies started with – “I’d like my design hierarchy window with some indent”… He had some good ideas, but definitely not happy today. Me either.


>> Uh oh. Feels like it could go bad


We did post simulation debug. Lots of features. Driver tracing, X tracing. All the good stuff.


>> The tool performed fabulously – RTL debug, class debug, all in post-simulation mode


Then Steve the Debugger jumps into live simulation debug. He goes head first full speed into the middle of all the running UVM sequences. THIS IS AN UNFAMILIAR CUSTOMER DESIGN! WATCH OUT! WHO KNOWS WHAT YOU’LL FIND!

Steve is unfazed. He’s confident. Jumping between sequences and threads. Sequences and threads. Sequences and threads. I was getting dizzy.

Climbing call stacks. Instant response. Is Steve on something? It was so fast I couldn’t take my eyes off the screen and do my other work… Shhh…


>> The tool performed fabulously – on an unknown customer design; the first time, in some of the hardest debug scenarios – multiple threads, stack frames, etc.


My day is improving. Wow!

Then the Grizzly types in the Chat Window again…


>> “very nice”


All lower case. OK. But, still a win. You take what you can.

Then


>> “This is really good”


Oh boy. The Grizzly likes it. My day is over. WIN.

But wait, Steve the Debugger goes for UVM Configuration Debug! My nightmare. I don’t know why UVM Configuration Debug isn’t easier IN THE UVM. Please go ask the UVM Committee.

But never mind. Steve just uses the tool…

Steve is now HIP DEEP in UVM Configuration Debug. Waders and everything.


>> Easy. Use the tool for UVM Configuration Debug!


He’s showing readers and writers in the config database. He’s finding out WHO wrote. And WHO read.

And then some icing on the cake – Steve is debugging assertions.

Some final features and questions from the audience.

Then the Grizzly… “all good here”. Done. WOW! Made my week!


>> Visualizer Debug worked under pressure in a hostile environment – the Customer’s Environment with Consultants Present


A great day. The tool did its job. Steve did a great job and the customer had hard questions and their Grizzly hit man was satisfied.

Update: The Grizzly came back a week later and asked for some more details about UVM Debug in Livesim – breakpoints, locals, class browsing, etc. Maybe he’s not a Grizzly after all. Just an expert Verification user doing a good job for his client – making sure debug is up to snuff.

A good day.

Do you have adventures in the Debug Wilderness that you want to share?


>> See you at DAC June 3-5 or U2U Silicon Valley, Thursday May 2! Stop by our Mentor booth or the Verification Academy Theater to chat or hear more.

>> The DAC Verification Academy session at 3:00pm Monday is focused on Visualizer Debug, but there are many other good sessions from 10 to 5 every day.


THE END – Time for a nap. I’m exhausted but happy.

 

Leave a Reply