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.
Though this post ends on this note, the next will provide a focus on the SystemVerilog code itself.
Very good site and concepts are explained clearly
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.
The
uvm_sequence_item
provides a hook to theuvm_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.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!
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 thejelly_bean_scoreboard
that acts like a reference model. Here is the link.