Quantcast
Channel: UVM Forums RSS Feed
Viewing all articles
Browse latest Browse all 756

assigning queue values from sequence

$
0
0

Hi All,

 

I have a scenario where i need to send n random bytes and out of n bytes i should able to corrupt few selected bytes.

I have used Queue for selecting error bytes list.

 

 

 

Transaction :

 

rand bit [7:0]  tx_data_byte[`MAX_DATA:0] ;  // data byte array

 

rand int unsigned tx_no_of_bytes_to_send  ; // number of data bytes to send

 

rand byte tx_err_bytes[$] ;           //queue contains byte positions to be corrupted

 

 

Example :

consider i am sending 5  data bytes and I have to corrupt  2,4,5 bytes (corrupting data bytes is handled in driver)

 

 

Sequence :

 

`uvm_do_with( req, {    tx_data_byte[0]=='h00;

                                     tx_data_byte[1]=='h11;
                                     tx_data_byte[2]=='h00;
                                     tx_data_byte[3]=='h99;
                                     tx_data_byte[4]=='h55;
                                     ///-----------------

                                     tx_no_of_bytes_to_send ==20;  

                                     tx_err_bytes == {4,5,7};

 

                           })

 

I am seeing below error from the cadence simulator.

Can somebody help me out in resolving this error .

 

 

Error:

Randomization constraint has error, which will cause the randomize function to return 0 and no new rand values will be set:

This feature is currently not supported for queues, dynamic arrays, strings and associative arrays.
 
 
Thank you
 

 


Viewing all articles
Browse latest Browse all 756

Trending Articles