Jump to content
Sign in to follow this  

Creating the right sequence item structure in UVM

Recommended Posts

Hi All,

I have a typical use case, where the sequence item w.r.t driver is always the same, but it's view needs to change while writing constraints.

The fields of sequence items to write constraints change w.r.t the header type, there are around 25-30 types of headers. 

What is the best way to create the base sequence item in this case in line with UVM methodology?


bit [32] header; //Actual header as seen by driver

The format of the header is however dynamic:-

format-1 :

bit[31:21] header_type;

bit[20:10] field_2_type_1;

bit[9:0] field_3_type_1;


bit[31:21] header_type;

bit[20:15] field_2_type_2;

bit[14:8] field_3_type_2;

bit[7:0] field_4_type_2;


bit[31:21] header_type;

bit[20:12] field_2_type_3;

bit[11:6] field_3_type_3;

bit[5:0] field_4_type_3;



I currently have though of a packed union of different structures to be one of the solutions for this type of scenario. This union will be a member of the sequence_item class and the structure will be representation of the different formats of header.

Is there a better means of creating polymorphic sequence items in UVM.

I am ok to try some system verilog hacks in uvm too for a solution.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this