Thought Leadership

UVM Objections at DVCON US 2024 – and Grape Jelly

By Rich Edelman
Boiling Cauldron of Grape Juice
Boiling Cauldron of Grape Juice

Boiling Grape Jelly

Stay with me – trust me. There’s a tie in to UVM Objections and DVCON US 2024.

It’s been a while – busy. Too busy to be in the garden. But last fall we realized the grape plants in the yard produced a ton of grapes – at least it looked like a ton to us. What to do? Instead of letting the birds eat all the grapes, we decided to make jelly. I’ve made jelly before – it’s not hard, but it can (and did) go wrong. (See – already like the UVM)

Pick the grapes. De-stem the grapes. Smash the grapes. Strain the grapes. Boil the juice. Add pectin and sugar. Wait for it to set. It doesn’t set. Do it again. (Again – like the UVM)

The Grapes


The UVM is like a garden – there’s life there. Bugs, slithering creatures, beauty and GRAPES! Harvesting the grapes and getting the process down to make jelly isn’t always “as-easy-as-it-looks”. The same for UVM Objections. Looks easy. But it can get messy.

Come visit DVCON US 2024 March 4-8, 2024, but especially come hear my paper on “Without Objection – Touring the uvm_objection implementations – uses and improvements”. Tuesday, March 5 – Session 4 – “UVM Testbenches” from 3:00 to 5:00.

UVM Objections

Come hear about UVM Objections – share your secrets during the question and answer. We’re going to explore the UVM Objection code a bit – there’s a lot of it. And we’ll dive into writing some NEW code ourselves and use it to synchronize modules and classes.

Somewhere inside the uvm_objection class, inside the raise_objection() and then into the m_raise(), we see

Inside uvm_objection::m_raise()

I don’t know about you, but those comments are scary enough. It’s doing more than I need.

Seeing Objections and Barriers

We’ll also “see” these synchronization points

“Seeing” barrier synchronization points

UVM Objections are essential to have a healthy, easy to understand testbench. But there are other ways that are infinitely simpler to do simple synchronization. We’ll talk through a simple barrier implementation. And a more useful layer on top of it.

Very Simple Barrier Code

See You Soon

In the end – uvm_objections, your own custom synchronization barrier or grape jelly.

You should be able to understand how to use it and understand how it works. And then the end result – like grape jelly- is a sugary sweet homemade taste sensation.

Please stop by and say hello at DVCON. See me at the paper or at the Siemens booth – we can swap recipes.

The Final Product

Leave a Reply

This article first appeared on the Siemens Digital Industries Software blog at