Jump to content

    

Recommended Posts

Не могу ничего найти про эту библиотеку на форуме. Кто-нибудь работал с ней? Появилась необходимость освоить, было накопано немало туториалов, обучающих видео etc, но из-за слабого знания ооп (или чего еще там-), дело продвигается медленно. Предлагаю накидать сюда каких-нибудь ссылок, а если появятся знатоки, можно и вопросы будет задать.

 

Статья про установку библиотеки, как я понимаю, под юникс системы

Видео много про что, в том числе про первые шаги в UVM

небольшой туториал или даже не знаю, как его назвать

Серия обучающих видео

Share this post


Link to post
Share on other sites

Можно изучать по UVM cookbook от ментрора с примерами кода

https://verificationacademy.com/cookbook

 

В дистрибе UVM есть хороший пример ubus, который документирован там же в UserGuide.

 

Обсуждение на нашем форуме

здесь

 

 

 

 

Share this post


Link to post
Share on other sites
Предлагаю накидать сюда каких-нибудь ссылок, а если появятся знатоки, можно и вопросы будет задать.

 

Можем сделать для вас хорошее предложение в этой области + хороший консалтинг и поддержку. Дополнительные детали и цены - в личку

 

Share this post


Link to post
Share on other sites

небольшой вопрос, вдруг кто знает

как обратится к объекту (и его методу/свойству) из другого объекта в рамках иерархии компонентов uvm (driver/monitor/sequencer/scoreboard)? при попытке обратиться по полному пути (env.agent.scoreboard.name_field) не загружается дизайн при симуляции.

Share this post


Link to post
Share on other sites
небольшой вопрос, вдруг кто знает

как обратится к объекту (и его методу/свойству) из другого объекта в рамках иерархии компонентов uvm (driver/monitor/sequencer/scoreboard)? при попытке обратиться по полному пути (env.agent.scoreboard.name_field) не загружается дизайн при симуляции.

обошлись обменом данных через поля объекта класса test (родителя-родителя-родителя driver/monitor/sequencer/scoreboard). может кто знает более изящное решение

Share this post


Link to post
Share on other sites

В классе test создаем и инициализируем ссылку на env

class test extends uvm_test;

   tb_env env;

   function void start_of_simulation_phase(uvm_phase phase);
      uvm_root top = uvm_root::get();
      $cast(env, top.find("env"));
   endfunction

endclass

Share this post


Link to post
Share on other sites
В классе test создаем и инициализируем ссылку на env

class test extends uvm_test;

   tb_env env;

   function void start_of_simulation_phase(uvm_phase phase);
      uvm_root top = uvm_root::get();
      $cast(env, top.find("env"));
   endfunction

endclass

если я правильно понимаю иерархию компонентов uvm:

0aad9848e501.png

 

обращение к потомкам/предкам проблем не составляет, но что если я хочу обратится из sequncer к scoreboard (/driver/monitor), которые, по сути, являются друг другу "братьями" (т.к. они создаются их предком agent)? или, не дай б-г, из sequence к свойству объекта scoreboard?

Share this post


Link to post
Share on other sites
если я правильно понимаю иерархию компонентов uvm:

0aad9848e501.png

 

обращение к потомкам/предкам проблем не составляет, но что если я хочу обратится из sequncer к scoreboard (/driver/monitor), которые, по сути, являются друг другу "братьями" (т.к. они создаются их предком agent)? или, не дай б-г, из sequence к свойству объекта scoreboard?

ЕМНИП там же есть разные фазы запуска окружения, есть фаза когда все компоненты созданы и можно найти нужный по символьному имени и присвоить указатель/ссылку на этот объект локальной переменной.

Share this post


Link to post
Share on other sites

>ЕМНИП

что?:)

 

>там же есть разные фазы запуска окружения, есть фаза когда все компоненты созданы

да, речь идет о run_phase обоих объектов

 

>и можно найти нужный по символьному имени и присвоить указатель/ссылку на этот объект локальной переменной.

символьное имя? имя объекта, который создается в agent?

объекты последнего уровня иерархии не видят классов своих братьев (не могу объявить переменную типа Scoreboard в Sequencer)

если обращаться по полному пути (env.agent.scoreboard.name_field) не загружается дизайн при симуляции

 

 

Share this post


Link to post
Share on other sites

Всем доброе время суток. Я недавно начал работу в UVM на систем верилог, столкнулся с такой задачей, использование функции start_of_simulation, не могу понять как правильно декларировать и использовать эту функцию. Помогите кто знает...

Share this post


Link to post
Share on other sites
Всем доброе время суток. Я недавно начал работу в UVM на систем верилог, столкнулся с такой задачей, использование функции start_of_simulation, не могу понять как правильно декларировать и использовать эту функцию. Помогите кто знает...

а в чем конкретно проблема или задача? это скорее фаза тестирования, объявляется как

function void start_of_simulation_phase (uvm_phase phase);

...

endfunction

и выполняется до run_phase и после end_of_elaboration_phase в соответствующем компоненте

Share this post


Link to post
Share on other sites

Задача вот в чём, мне нужно в функции start_of_simulation создать фаил типа .dat и записать в него данные в формате 000a a5a5 адрес и даные, данные будут записаны в трёх вариантов random , 0000, FFFF. В тесте нужно указать какой вариант записывать. Проблема заключается, как передать из теста в функцию start_of_simulation значение переменой rom_patern, и как записать данные в file.dat - функц. $fwrite выдаёт ошибку.

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