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

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

 

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

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

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

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

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


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

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

https://verificationacademy.com/cookbook

 

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

 

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

здесь

 

 

 

 

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


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

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

 

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

 

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


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

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

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

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


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

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

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

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

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


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

В классе 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

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


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

В классе 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?

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


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

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

0aad9848e501.png

 

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

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

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


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

>ЕМНИП

что?:)

 

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

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

 

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

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

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

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

 

 

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


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

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

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


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

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

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

function void start_of_simulation_phase (uvm_phase phase);

...

endfunction

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

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


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

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

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


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

добрый день всем! поивился такой вопрос: как переслать данные из 2-ух monitors в один scoreboard, если кто имеет какие либо идеи пишите.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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