🔹Подавляющее большинство инженеров (в том числе и автор) при знакомстве с UVM задавали себе множество вопросов. Например о том, как работает
type_id::create() и почему нельзя просто использовать new()? Или зачем нужно включать в тело класса макрос uvm_component_utils? Почему у конструктора два аргумента: name и parent? Все эти вопросы так или иначе "мерцали" в недрах разума.🔹Всем нам искренне хотелось найти ответы. Но ворох рабочих задач постепенно гасил энтузиазм, и мы просто начинали пользоваться конструкциями, не задумываясь об их содержании. Но теперь у вас, дорогие читатели, есть возможность рассеять туман над исходным кодом библиотеки UVM и вместе со мной проанализировать то, что находится "под капотом". Нам предстоит долгий путь.
🔹Первые две статьи цикла будут посвящены механизмам создания компонентов и переопределению их типов. За данный функционал в UVM в наибольшей степени отвечает класс фабрики (UVM factory), который и будет фигурировать в названиях статей. Первая уже доступна по ссылке ниже.
⚡️Demystifying UVM: Фабрика, часть 1⚡️
🔹Все исходные файлы статьи, а также код примеров и скрипты для их запуска при помощи QuestaSim и Verilator расположены в репозитории канала и доступны абсолютно всем. Выход же второй статьи планируется в течение ближайших двух недель! Читайте, распространяйте, делитесь впечатлениями, предлагайте улучшения! Всего вам самого наилучшего!🤝
➖➖➖➖➖➖
#demystifying_uvm
