1. Введение
Возможности SystemVerilog заинтересовали многих разработчиков еще до появления стандарта. Помимо привычных тестовых окружений, созданных с помощью языков Verilog и VHDL, стали появляться окружения на SystemVerilog. Для их создания каждому разработчику приходилось реализовывать свои наборы классов и модулей, что в редких случаях было более трудоемким занятием, нежели написание аналогичного Verilog-/VHDL-testbench’a. Выигрыш достигался либо за счет использования возможностей, которых просто нет в обычных языках описания аппаратуры (например, средства оценки функционального покрытия), либо за счет использования одного окружения с незначительными изменениями для решения нескольких схожих задач верификации. Если такие задачи и возникали, то для них еще необходимо было выбрать оптимальную структуру тестового окружения, а на заре SystemVerilog это было непросто. В любом случае % работы, которую приходилось делать с нуля или почти с нуля, был выше, нежели хотелось бы.
На помощь пришла методология создания тестового окружения от Synopsys под названием VMM (Verification Methodology Manual). URM (Universal Reuse Methodology) от Cadence и AVM (Advanced Verification Methodology) от Mentor вышли следом и в последствии слились в OVM (Open Verification Methodology). Разработчики быстро оценили все преимущества использования библиотек верификации. Всех проблем они, конечно, не решали, но во многом процесс создания тестовых окружений стал легче и эффективнее.
К выбору между VMM и OVM приходилось подходить основательно, т.к. использовать VMM можно было только совместно с симулятором Synopsys (VCS), а OVM – с симуляторами MentorGraphics (ModelSim) и Cadence (IUS). Периодически появлялись различные версии библиотек, которые, например, позволяли запустить VMM под Cadence, но работали эти версии, мягко скажем, нестабильно. В общем, выбор той или иной методологии верификации вынуждал остановиться на использовании симулятора какого-то одного вендора. Если учесть, что каждый из вышеуказанных вендоров занимает в среднем 30% рынка, можно представить, насколько эта проблема весома для разработчиков IP-ядер. Да и те, кого не особо заботила возможность повторного использования, хотели бы выбирать методологию верификации руководствуясь личными предпочтениями, а не по указанию компании.
Организация Accellera провела работу по созданию единого решения, которое бы поддерживалось всеми основными EDA-вендорами. Этим решением стала универсальная методология верификации UVM (Universal Verification Methodology), которая доступна для скачивания с сайта Accellera, начиная с 17 мая 2010 г.
UVM 1.0 EA базируется на OVM 2.1.1 и объединяет некоторые функциональные возможности библиотек VMM, OVM и новые технологии, разработанные подкомитетом Accellera VIP TSC. Вместе со стандартной библиотекой классов (BCL) UVM 1.0 EA содержит 2 важных документа – справочное руководство по API функциям UVM и руководство пользователя, рассказывающее как применять библиотеку – это обновленные версии аналогичных документов для OVM. Участники Accellera протестировали UVM 1.0 EA на множестве симуляторов. Для стабильной работы рекомендуется использовать следующие версии симуляторов:
- Cadence IUS 09.20-014 и выше
- Mentor QuestaSim 6.6a-1 и выше
- Synopsys VCS 2010.06-B и выше
Основные преимущества
- Унификация библиотек верификации;
- Основана на стандартной библиотеке классов BCL, которая испытана в тысячах проектов;
- Запускается на любом симуляторе, поддерживающем стандарт IEEE 1800 SystemVerilog;
- Действительное открытое лицензионное соглашение (Apache 2.0).

Комментарии (0)