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