Jump to content

    
Sign in to follow this  
mttphreak

System Verilog Factory Pattern

Recommended Posts

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

 

В проэкте нужно динамически подменять разные классы данных, чтобы создавать 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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
Посмотрите в этой статье:

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this