UVM Tutorial for Candy Lovers – 2. Recipe

Last Updated: April 4, 2014

While the last post clarified the verification components of the jelly-bean taster, this post will provide a focus for the jelly-bean recipe.

The jelly-bean recipe is passed as a transaction from the jelly_bean_sequencer to the jelly_bean_driver. The transaction is referred to as the jelly_bean_transaction. The transaction defines the jelly bean, based on its flavor, color, and other characteristics. The similar jelly_bean_transaction is passed from the jelly_bean_monitor to every subscriber as well.

The jelly_bean_sequencer does not only produce the recipe of the individual jelly bean – rather it is able to produce a similar flavor of multiple jelly beans, as a sequence of transactions, and a collection of multiple-flavored jelly beans in the form of a gift box, as a sequence of sequences .

The class diagram of the transaction and sequence is shown below. The colors of this diagram correspond to the colors listed in the previous post. The light blue boxes refer to the classes in the UVM basic class library, while the darker boxes indicate the classes created in this tutorial.

Verification Objects
Class Diagram of Verification Objects
Verification components
Verification Components

Though this post ends on this note, the next will provide a focus on the SystemVerilog code itself.

Get source code

5 thoughts on “UVM Tutorial for Candy Lovers – 2. Recipe”

  1. Is there any reason for extending jelly_bean_transaction from uvm_sequence_item rather than uvm_transaction ?

    In the source code (uvm 1.1d ), its mentioned “Use of this class as a base for user-defined transactions is deprecated. Its subtype, , shall be used as the base class for all user-defined transaction types” . What are the benefits associated with uvm_sequence_item.

    1. The uvm_sequence_item provides a hook to the uvm_sequencer and the functions to build a sequence hierarchy. It also provides its own reporting interface so that we can filter messages based on the verbosity setting of the sequencer, etc.

  2. Shimizu San

    I am a first-day UVM learner, and I found that your tutorial helps a lot. I have one basic question about your “Verification Component” diagram above: what will it be transformed if you add Reference Model? And, in which chapter can I find more explanation about Reference Model? Thank you!

    1. I don’t have a separate reference model in this example because the functionality of the DUT is very simple. You can look at the check_jelly_bean_taste function of the jelly_bean_scoreboard that acts like a reference model. Here is the link.

Leave a Reply

Your email address will not be published. Required fields are marked *