Inline randomization of a queue fails compile

ncvlog does not seem to allow inline constraint randomization of a queue. Is that true ?

For example, the following failed compile

byte pld_byte_q[int][$];
  
std::randomize(pld_byte_q[i]) with {
          pld_byte_q[i].size() == num_payload_bytes_per_search[i];
        };

I got the following compile error :
ncvlog: *E,RNDRARG (/ The argument to class or scope randomize must be a simple identifier of integral type.

Do I need to declarate this as a rand variable to get the above to work organically as part of the randomization ?

In reply to DVJoe:

Your tool vendor doesnt support to pass like that to std randomize function. Please try:


void'(std::randomize(pld_byte_q) with {
  foreach(pld_byte_q[i]) {
    pld_byte_q[i].size() == num_payload_bytes_per_search[i];
  }
});

In reply to cuonghl:

Thanks Chris. I tried that too and that does not work either. I get the same compile error as before.

In reply to DVJoe:

I tried with Cadence tool, it worked:

If doesnt work at your side, maybe its because of your tool.