Могу ли я создать объект const в SystemVerilog? - PullRequest
1 голос
/ 06 марта 2012

Я бы хотел создать const объект внутри моего класса SystemVerilog. Поддерживает ли SystemVerilog константные объекты (и как?) Или поддерживает только константные примитивные типы.

Я бы хотел сделать что-то вроде:

const my_object MY_CONST;

const begin
    MY_CONST = new();
    MY_CONST.param1 = "value1";
    MY_CONST.param2 = "value2";
end

Ответы [ 2 ]

2 голосов
/ 17 мая 2013

Мне бы хотелось прокомментировать ответ Adam12, но я не могу, поэтому вместо этого я отправлю новый ответ, вздох!

В SV MY_CONST будет только постоянным дескриптором.Поэтому, вероятно, вы не можете назначить другой объект дескриптору, но содержимое объекта, на который указывает дескриптор, все еще можно изменить.

Я не слышал ни о какой конструкции const begin ... end.Я думаю, что существует ограничение на вызов new - он должен вызываться во время присвоения дескриптору const, или new может быть вызван в конструкторе, если дескриптор const является членомкласс.Я полагаю, что функции-члены дескриптора const можно вызывать где угодно.

2 голосов
/ 07 марта 2012

Вы можете создавать постоянные экземпляры классов.

Экземпляр класса (дескриптор объекта) также может быть объявлен с ключевое слово const.

const class_name object = new(5,3);

Другими словами, объект действует как переменная, которая не может быть записана. Аргументы к новому методу должны быть постоянные выражения (см. 11.2.1). члены объекта могут быть написаны (за исключением тех членов, которые объявлены постоянными).

...