Перейти к содержанию
    

System Verilog Factory Pattern

Здравствуйте

 

В проэкте нужно динамически подменять разные классы данных, чтобы создавать layered sequences и хорошенько прогружать логику. :smile3046:

Нужно написать свою фабрику. Пример ниже не компилиться. Помогите найти ошибку или посоветуйте свою реализацию.

 

Компилятор падает в месте, где выполняется this.my_car = new car_tank (); :laughing:

 

Нужна именно custom factory, UVM/OVM/VMM не предлагать

 

class car;

// Common data memeber

string ttype;

 

// Common methods

virtual function string get_type();

endfunction

 

endclass

 

 

class car_tank extends car;

function new();

this.ttype = "car Tank";

endfunction

 

function string get_type();

return this.ttype;

endfunction : get_ttype

 

endclass

 

 

class car_bus extends car;

function new();

this.ttype = "car Bus";

endfunction

 

function string get_type();

return this.ttype;

endfunction

 

endclass

 

class car_factory;

car my_car;

 

// Common methods

function car get_car(int sel);

if(sel == 1) this.my_car = new car_tank ();

if(sel == 2) this.my_car = new car_bus ();

return this.my_car;

endfunction

 

endclass

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите в этой статье:

Using-Parameterized-Classes-and-Factories-The-Yin-and-Yang-of-Object-Oriented-Verification

А здесь написано в стиле C++, стандарт SV не предполагает такое создание безымянных классов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите в этой статье:

Using-Parameterized-Classes-and-Factories-The-Yin-and-Yang-of-Object-Oriented-Verification

А здесь написано в стиле C++, стандарт SV не предполагает такое создание безымянных классов.

 

Спасибо за ссылку :beer: . Я в какой-то момент нашел эту статью, но сама реализация показалась мне уж слишком generic. Затем я порылся в OVM and UVM исходниках и обнаружил, что подобная реализация имплементирована и там. :laughing:

 

В конце-концов, я остановился на более простом варианте, который нашел тут

http://chipdesignmag.com/display.php?artic...&issueId=21

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...