Ieee 1801 (uvm) для универсальной методологии проверки в Fpga и Asic Design

Введение в IEEE 1801 (UVM)

IEEE 1801, более известный как универсальная методология проверки (UVM), является стандартной в отрасли основой для проверки современных конструкций FPGA и ASIC. По мере того, как цифровые системы становятся все более охватывающими миллиарды шлюзов, сложных протоколов и жестких требований к производительности, традиционные методы проверки становятся недостаточными. UVM обеспечивает систематический, масштабируемый и многоразовый подход, основанный на SystemVerilog, что позволяет инженерам создавать надежные тестовые среды, которые улавливают функциональные и временные ошибки до изготовления кремния. Первоначально разработанный Accellera и принятый как IEEE 1801 в 2010 году, UVM стал методологией фактической проверки в полупроводниковых компаниях по всему миру.

Необходимость в стандартизированной методологии возникла из-за возрастающей сложности конструкций. В начале 2000-х инженеры часто писали специальные тестбенчи в Verilog или VHDL, что приводило к дублированию усилий, плохому повторному использованию и пробелам в проверке. UVM решала эти проблемы, определяя общую библиотеку классов и набор лучших практик для создания объектно-ориентированных тестовых сред на уровне транзакций. Сегодня UVM поддерживается всеми крупными поставщиками EDA и имеет важное значение для любого серьезного цифрового проекта дизайна.

Основные концепции и архитектура UVM

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

Моделирование уровня транзакций (TLM)

UVM в значительной степени полагается на моделирование уровня транзакций для абстрактной связи между компонентами. Вместо того, чтобы иметь дело с отдельными переходами сигналов, TLM использует транзакции — объекты данных, которые представляют собой полную операцию шины или обмен протоколами. Эта абстракция значительно упрощает разработку тестбенча и облегчает генерацию сложного стимула. UVM обеспечивает стандартный интерфейс TLM (поставка, получение, транспорт и т. Д.) и поддерживает как блокировку, так и неблокировку связи.

Компоненты УФМ и иерархия

Типичный тест-блок UVM состоит из следующих строительных блоков, каждый из которых получен из базового класса компонентов UVM ():

База данных о фабрике и конфигурациях

UVM использует два мощных шаблона проектирования: factory и configuration database. Завод позволяет переопределять типы и последовательности компонентов во время выполнения без изменения исходного кода, позволяя повторно использовать тесты и гибкие сценарии испытаний. При одном изменении конфигурации тест может заменить драйвер с другой реализацией или изменить поведение монитора. Конфигурационная база данных () обеспечивает централизованный способ установки и получения параметров по иерархии тест-систем. Например, тест может установить период времени или вариант протокола в конфигурационном db, и все последующие компоненты могут получить его. Это отделяет конфигурацию тестирования от реализации компонентов, делая среды проверки более адаптируемыми.

Фазы УФМ

УФМ определяет структурированный поток выполнения через серию фаз. Эти фазы обеспечивают, чтобы компоненты были построены, подключены и выполнены в предсказуемом порядке. Ключевые фазы включают:

Эти фазы автоматически называются корнем UVM, обеспечивая согласованность всех компонентов. Понимание этого жизненного цикла необходимо для предотвращения общих подводных камней, таких как строительные компоненты в неправильной фазе или попытка подключения портов слишком поздно.

Применение UVM для FPGA и ASIC-дизайнов

УФМ одинаково применима как к потокам проектирования FPGA, так и к ASIC, хотя контекст немного отличается. В разработке ASIC, где затраты на маску достигают миллионов долларов, исчерпывающая проверка не подлежит обсуждению. Способность УФМ генерировать ограниченные случайные стимулы и собирать функциональное покрытие оказывается бесценной для достижения целей закрытия покрытия. Для FPGA проверка часто более гибкая из-за способности перепрограммировать, но УФМ по-прежнему обеспечивает значительные преимущества в раннем улавливании логических ошибок, сокращении времени отладки в лаборатории и обеспечении соответствия стандартам интерфейса.

Пример: использование UVM для проверки интерфейса AXI4-Stream

Рассмотрим цифровой дизайн, который реализует протокол AXI4-Stream, распространенный в видеообработке и ускорителях данных. Станция UVM для этого интерфейса будет включать:

  • AXI-Stream Agent: Содержит драйвер, который генерирует готовые к действию рукопожатия со случайными состояниями ожидания, монитор, который захватывает транзакции, и секвенсор, который принимает элементы последовательности.
  • Скороборудование: Получает транзакции как от драйвера (стимула), так и от монитора вывода DUT. Он сравнивает данные и проверяет на наличие нарушений протокола (например, время утверждения tlast).
  • Коллекционер покрытия: Мониторинг таких элементов, как распределение длины пакетов, межпакетные промежутки и выравнивание tkeep.
  • Последовательность тестов: Последовательность может приводить в движение пакеты «назад-назад», сценарии обратного давления или впрыскивания ошибки (например, отсутствующий тласт).

С помощью UVM один и тот же агент может быть повторно использован для нескольких проектов, которые взаимодействуют через AXI4-Stream, что значительно сокращает время проверки для последующих проектов.

Проверка с помощью Power-Aware с UVM и UPF

Современные конструкции часто включают в себя несколько областей мощности и маломощные методы, такие как стреловидность часов и отключение питания. UVM интегрируется с Unified Power Format (UPF) и IEEE 1801 (стандарт также охватывает намерение питания, хотя UVM фокусируется на проверке). Осознанные по мощности UVM тестбенчи могут имитировать последовательности отключения и пробуждения, проверять, что регистры сохраняют значения правильно во время сна, и проверять поведение интерфейса с низкой мощностью. Это важно для ASIC, используемых в мобильных, IoT и автомобильных приложениях.

Преимущества использования UVM в вашем потоке проверки

Преимущества УФМ выходят далеко за рамки стандартизации. Команды, которые инвестируют в УФМ, сообщают о измеримых улучшениях производительности, качества и повторного использования.

  • Многоразовые компоненты: УФМ-компоненты (агенты, мониторы, табло) могут быть повторно использованы в проектах, экономя месяцы времени разработки. Многие компании поддерживают библиотеку УФМ-визуальных лиц (Verification IP) для стандартных протоколов, таких как USB, PCIe или Ethernet.
  • Масштабируемость от Block до SoC: УФМ-среды масштабируются плавно. Среда на уровне SoC может быть многократно инстанцирована в среде с минимальными изменениями. Иерархичная природа УФМ позволяет проводить интеграционное тестирование на высшем уровне без переписывания драйверов низкого уровня.
  • Автоматизированная регрессия и управляемая покрытием проверка: Встроенная поддержка UVM для ограниченных случайных последовательностей и функционального покрытия позволяет проводить проверку на основе покрытия. Инженеры пишут точки покрытия, и регрессия запускается автоматически, чтобы проверить, сколько пространства состояния проектирования было выполнено. Это уменьшает человеческую ошибку и обеспечивает тщательность.
  • Промышленная экосистема: Поскольку UVM является стандартом IEEE и широко используется, найти опытных инженеров по проверке, учебные материалы и коммерческий VIP-персонал просто. Поддержка инструментов от поставщиков EDA, таких как Synopsys, Cadence и Siemens, является зрелой и хорошо интегрированной.
  • Лучшее сотрудничество: Среда UVM обеспечивает общий язык и методологию для команд разработчиков, команд проверки и даже внешних поставщиков IP. Отладка неудачного теста проще, когда все компоненты следуют одним и тем же шаблонам интерфейса и механизмам отчетности.

Вызовы и лучшие практики

Несмотря на свои преимущества, УФМ имеет крутую кривую обучения и некоторые организационные проблемы. Опытные команды разработали передовые методы для смягчения этих проблем.

Общие подводные камни

  • Сверхинженерия: Иногда новички создают слишком сложные тестбенчи с глубокими иерархиями и чрезмерной абстракцией. Начните с простого, с одним агентом и базовым табло, затем постепенно добавляйте функции.
  • Нарушения порядка фазы: Например, вызов до начала фазы запуска может привести к тупикам. Всегда уважайте последовательность фазы и используйте и правильно.
  • Игнорирование уровня последовательностей: Написание последовательностей, которые непосредственно манипулируют сигналами, побеждает цель TLM. Убедитесь, что последовательности генерируют транзакции, а не переключатели уровня сигнала.
  • Недостаточное планирование покрытия: УФМ обеспечивает механизмы покрытия, но команды должны определить значимые контейнеры покрытия. Без плана покрытия инженеры могут тратить циклы моделирования на нерелевантные сценарии.

Лучшие практики

  • Используй базу данных конфигурации Мудро: Установите значения по умолчанию для параметров в базовом тесте и переопределите их в производных тестах. Избегайте конфигурации жесткого кодирования внутри компонентов.
  • Передача вызовов и крючков: UVM обеспечивает механизмы обратного вызова для расширения поведения компонентов без изменения базового класса.Использовать их для регистрации, впрыска ошибок или проверки протокола.
  • Разработать многоразовую VIP-библиотеку: Стандартные интерфейсы, такие как AXI, AHB, I2C и UART, должны быть построены один раз в качестве пакета агентов UVM. Поддерживать эти VIP-персоны с четкими API и документацией.
  • Принять непрерывную интеграцию (CI) для регрессий: Запускать регрессии UVM автоматически по кодовым обязательствам. Используйте панель инструментов регрессии для отслеживания скорости прохождения и показателей покрытия с течением времени.
  • Обучите свою команду: УФМ имеет много движущихся частей. Инвестируйте в формальное обучение (например, от Doulos, Академии проверки или поставщиков EDA) и поощряйте наставничество между опытными и младшими инженерами.

Сравнение УФМ с другими методами проверки

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

  • Прямые испытательные стенды (VHDL/Verilog): Простые, но не многоразовые и не масштабируемые. Подходит только для крошечных блоков с тривиальной логикой.
  • OVM (Open Verification Methodology): Предшественник UVM. OVM теперь устарел; UVM включил свои лучшие функции и добавил заводскую, конфигурационную DB и более широкую стандартную поддержку.
  • СистемаВерилоговые утверждения (SVA) и Охват: Часто используется в стенках УФМ для проверки низкоуровневых свойств. SVA не является полной методологией, но дополняет УФМ.
  • Формальная проверка: Исчерпывающий, но ограниченный по размеру конструкции. Лучше всего использовать вместе с UVM для логики управления ключами.
  • C/C++ с UVM-SystemC: Для системной проверки UVM-SystemC расширяет методологию до более высоких уровней абстракции.
  • Портативный стимул (PSS): Относительно новый стандарт, направленный на перемещение генерации стимулов через несколько уровней абстракции (от системы к RTL).

Внешние ресурсы для обучения UVM

Для углубления понимания IEEE 1801 (UVM) рекомендуется использовать следующие авторитетные ресурсы:

Будущие направления

С ростом ускорителей машинного обучения, автономных транспортных средств и коммуникаций 5G/6G конструкции включают в себя более гетерогенные элементы. UVM адаптируется к этим задачам за счет более тесной интеграции с UVM-SystemC для моделей на уровне блоков и систем, а также через Portable Stimulus Standard (PSS) для унификации генерации тестов через моделирование, эмуляцию и формальные инструменты. Кроме того, стандарт IEEE 1800.2 теперь управляет UVM, отражая его зрелость и необходимость текущих обновлений для поддержки современных потоков верификации. По мере того, как сложность проектирования ускоряется, роль IEEE 1801 (UVM) будет только расти, что делает его критическим навыком для любого инженера цифровой верификации.

Заключение

IEEE 1801 (UVM) превратил цифровую проверку из специальной деятельности в строгую, повторяемую инженерную дисциплину. Его стандартизированная архитектура, абстракция на основе TLM и мощные шаблоны, такие как заводская и конфигурационная DB, позволяют командам создавать надежные многоразовые тестовые среды для проектов FPGA и ASIC. В то время как кривая обучения нетривиальна, долгосрочные успехи в эффективности проверки, закрытии покрытия и успехе первого кремния намного перевешивают первоначальные инвестиции. Приняв UVM и следуя передовой практике, команды разработчиков могут уверенно ориентироваться в сложности современной электроники, гарантируя, что их продукты соответствуют целям производительности, мощности и надежности, прежде чем приступить к изготовлению. По мере того, как полупроводниковая промышленность продвигается к новым границам, UVM остается основой, на которой построено надежное оборудование.