Объявление дескриптора класса как тип rand в System Verilog - PullRequest
0 голосов
/ 28 сентября 2019

Пожалуйста, смотрите это для лучшего разъяснения моего кода Что происходит, когда мы объявляем дескриптор класса как тип rand?это повлияет на рандомизацию?Я пытаюсь выполнить сортировку, используя средства защиты от ограничений.

class Sorting;
    rand int unsigned n;
    rand Sorting next;
    constraint C0 { n inside {[2:20]};}

    constraint sort {if( next != null ) n < next.n;}

endclass

module random;
  Sorting s;
  initial
    begin
      s=new;
      repeat(10)
        begin
          assert(s.randomize());
          $write("%0d\t",s.n);
        end
    end
endmodule

Я получаю предупреждение в VCS, как это -> Предупреждение- [CNST-PPRW] Ограничение рандомизирует предупреждение об объекте NULL, предупреждение

То же самоекод находится в LRM под разделом защиты ограничений.Мне любопытно узнать, можем ли мы сортировать случайные данные, используя технику защиты ограничений?Я сделал сортировку случайных данных с помощью цикла foreach внутри ограничения.Я просто пытаюсь таким образом.Помоги мне с этим.Спасибо!

1 Ответ

0 голосов
/ 30 сентября 2019

Вы правы.Согласно LRM, это не должно давать никаких предупреждений.

VCS выдает предупреждение, чего не должно быть.По крайней мере, это не ошибка, и вы можете спокойно ее игнорировать.Там может быть способ отключить предупреждение, если вы хотите.Проверьте переключатели командной строки.

Кстати, NC не выдает никаких предупреждений.

...