Passing an entire queue through the sequencer

Hello,

The context of my problem is that I’m verifying a FIFO. My transaction item includes a write_enable, data_in, etc. In my sequencer I have a queue of transaction items. This way I can create a queue that includes 10 write transactions.

I’m trying to store transactions in a single queue and pass the entire queue through to the driver. Is this possible and if so, can anyone provide a template for it? Can I pass the entire queue into start_item() and finish_item()?

UVM uses the concept of “just-in-time” randomization, where the sequence_item is randomized when the driver is ready to use it. Creating a queue of sequence_items goes against this concept.

Why are you creating a queue of sequence_items instead of creating them as required? Is there something specific you are trying to accomplish?

I want my scoreboard to know what transactions I’m trying to drive to the DUT. For example, I want to create 10 write and 10 read transactions for the DUT (in this case a FIFO). As those transactions are made, I want my scoreboard to check that those 10 reads are the expected value.

You should never communicate between a sequence and a scoreboard. The only inputs a scoreboard should have is from agent monitors.

For a fifo, your monitor should capture both write and read transactions and send them to the scoreboard. The scoreboard should verify that each read matches the associated write.