Почему исчез uvm_top? - PullRequest
       17

Почему исчез uvm_top?

0 голосов
/ 20 февраля 2020

На этой неделе я скомпилировал мой первый код IEEE 1800.2-2017 UVM и с удивлением обнаружил, что uvm_top больше не существует. Быстрый поиск IEEE 1800.2-2017 не обнаруживает появления «uvm_top», а быстрый просмотр исходного кода показывает, что он действительно исчез. Вот два обходных пути:

Вместо, например:

comp = uvm_top.find("*.m_agent.m_seqr"); // uvm 1.2

, вы можете сделать:

comp = uvm_root::get().find("*.m_agent.m_seqr"); // IEEE 1800.2-2017

или, если вы предпочитаете:

uvm_root uvm_top = uvm_root::get();
comp = uvm_top.find("*.m_agent.m_seqr"); 

У меня два вопроса:

i) Почему создатели IEEE 1800.2-2017 избавились от uvm_top? II) Что они намереваются делать вместо этого? (одна из этих вещей выше или что-то еще?)

1 Ответ

1 голос
/ 20 февраля 2020

Спекуляции:

  1. Догматизм, что глобальные переменные являются злыми и их следует избегать (даже если в этом случае переменная const).

  2. Им легче сгенерировать ссылку на класс, потому что инструмент может обрабатывать классы и функции, но не переменные внутри пакетов.

...