Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Что такое UVM?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
Олег Гаврильченко
Хочу разобраться с тем, что такое UVM. На официальном сайте скачивал примеры и документацию. Но не смог разобраться по ней. Я понял, что это некая методология тестирования, но не понял, в чем ее смысл.
Прошу тех, кто пользуется UVM поделиться примерами, ссылками. Рассказать о UVM.
Спасибо!
yes
сильно упрощая - это как переход от С к С++
то есть в мире появилось много ООП программистов, наверно, их сейчас специально учат в институтах, и чтобы применять их навыки для верификации HDL и придумали UVM (до этого были OVM, RVM ну и немного сбоку VMM)

то есть если переход в программировании от С к С++ кажется бессмысленным, то совершено не имеет смысла тратить время на OVM

OVM, по-моему, полезна для отладки каких-то протоколов передачи данных (по крайней мере я других примеров не видел, что в учебниках, что в коде субподрядчиков), а пытаться применять для отладки каких-либо DSP алгоритмов, вычислительных ядер, или простых FSM смысла мало
Flip-fl0p
Цитата(yes @ Mar 5 2018, 21:55) *
сильно упрощая - это как переход от С к С++
то есть в мире появилось много ООП программистов, наверно, их сейчас специально учат в институтах, и чтобы применять их навыки для верификации HDL и придумали UVM (до этого были OVM, RVM ну и немного сбоку VMM)

то есть если переход в программировании от С к С++ кажется бессмысленным, то совершено не имеет смысла тратить время на OVM

OVM, по-моему, полезна для отладки каких-то протоколов передачи данных (по крайней мере я других примеров не видел, что в учебниках, что в коде субподрядчиков), а пытаться применять для отладки каких-либо DSP алгоритмов, вычислительных ядер, или простых FSM смысла мало

Странно. Мне всегда казалось что UVM как и OSVVM ( то-же что и UVM но на VHDL) - это определенный набор методик для генерации набора псевдослучайных тестов, позволяющих максимально полно проверить реакцию тестируемого модуля на эти тесты.
RobFPGA
Приветствую!

Цитата(Flip-fl0p @ Mar 5 2018, 22:15) *
Странно. Мне всегда казалось что UVM как и OSVVM ( то-же что и UVM но на VHDL) - это определенный набор методик для генерации набора псевдослучайных тестов, позволяющих максимально полно проверить реакцию тестируемого модуля на эти тесты.
Генерация псевдослучайных тестов это constraint random-base verification и это не главное в UVM.

UVM это в первую очередь методология позволяющая упростит и стандартизировать построение сложных верификационных платформ и соответствующая OOP библиотека которая поддерживает эту методологию.
Если грубо - выделяются стандартные этапы верификации, набор ролей версификационных модулей. Стандартизируются потоки управления и интерфейсы между ними. Добавляется механизм сквозной динамической конфигурации без необходимости пере-компиляции. ( короче : правила - формальности - бюрократия sad.gif ни ка какого свободного творчества и полета фантазии).
Цель соответственно благая - повысить reusable-ность верификации и соответственно снизить стоимость.

Но увы это не золотая пуля - полноценное применение методологии UVM (как и подобной ей) имеет смысл в больших командах с разделением обязанностей и длительным первоначальным периодом вхождения в эту технологию и наработки своей версификационной базы.

Саму же UVM библиотеку можно использовать и как есть почти без оглядки на методологию.

Удачи! Rob.
Mad_max
Немного добавлю к словам Роба, если вы и чтец и жнец и плисовод, вполне возможно, что "простое" окружение на SV будет вам дешевле, чем осваивать UVM.
С другой стороны, сам сталкивался с такой ситуацией при блочном моделировании, когда верифицируемый модуль имеет несколько асинхронных друг относительно друга интерфейсов
и тут с fork join уже как то не уютно и невольно смотришь в сторону UVM. Еще UVM хорошо тем, что есть удобный механизм добавления monitors с различными covergroups, coverpoints, etc.
Что дает численную метрику прогресса и качества верификации модуля.
Но в целом, UVM хорошо, когда есть разделение труда и от одного корневого спека начинают работать и верификаторы и дизайнеры, тогда тестовые окружения выполняются в одном контексте,
что дает и reuse и переносимость кода от одного разработчика к другому.

AVR
http://testbench.in/
UVM Tutorial
Олег Гаврильченко
Цитата(yes @ Mar 5 2018, 21:55) *
сильно упрощая - это как переход от С к С++
то есть в мире появилось много ООП программистов, наверно, их сейчас специально учат в институтах, и чтобы применять их навыки для верификации HDL и придумали UVM (до этого были OVM, RVM ну и немного сбоку VMM)

то есть если переход в программировании от С к С++ кажется бессмысленным, то совершено не имеет смысла тратить время на OVM

OVM, по-моему, полезна для отладки каких-то протоколов передачи данных (по крайней мере я других примеров не видел, что в учебниках, что в коде субподрядчиков), а пытаться применять для отладки каких-либо DSP алгоритмов, вычислительных ядер, или простых FSM смысла мало

Где можно найти примеры применения UVM, OVM, VMM?
one_eight_seven
Цитата
Где можно найти примеры применения UVM, OVM, VMM?

В nVidia, например.

А если что-то вроде "helloworld" в UVM, то на verilab.com можно найти такое.
Олег Гаврильченко
Цитата(one_eight_seven @ Mar 6 2018, 13:02) *
В nVidia, например.

А если что-то вроде "helloworld" в UVM, то на verilab.com можно найти такое.

В nVidia? Как найти примеры nVidia?
В официальной документации есть "Hello World"-примеры. Но из них непонятно, зачем нужно UVM. Хотелось бы найти как-раз работающий пример из реальной жизни, чтобы понять преимущества UVM-методологии.
_Ivan_33
посмотрите книгу UVM Primer - не знаю есть ли в пдф, но на амазоне всего 40 баксов, сам купил
Или же есть еще репозиторий их https://github.com/rdsalemi/uvmprimer - там тоже можно поизучать
RobFPGA
Приветствую!
Цитата(Олег Гаврильченко @ Mar 6 2018, 15:08) *
...
В официальной документации есть "Hello World"-примеры. Но из них непонятно, зачем нужно UVM. Хотелось бы найти как-раз работающий пример из реальной жизни, чтобы понять преимущества UVM-методологии.

Вот - не пример а конфетка sm.gif

Успехов! Rob.
yes
Цитата(Flip-fl0p @ Mar 5 2018, 22:15) *
Странно. Мне всегда казалось что UVM как и OSVVM ( то-же что и UVM но на VHDL) - это определенный набор методик для генерации набора псевдослучайных тестов, позволяющих максимально полно проверить реакцию тестируемого модуля на эти тесты.

псевдослучайные тесты не имеют большого смысла для перебора datapath логики или процессора (там "особые" ситуации известны), а для простых устройств требуют излишних усилий - это я хотел сказать

а если какой-то протокол, еще и сложный, его можно параллелить (ну если написан псевдослучайный тест, то без разницы - последовательно его исполнять или параллельно) - что очень важно для тестирования
там еще стандартизованы агенты, мониторы и т.п. (то есть структура тестов), что облегчает работу большого коллектива верификаторов над проектом
то есть UVM штука однозначно полезная, но достаточно специфическая, в силу большей сложности "минимального тесткейса"
поэтому считаю свое сравнение с С++ весьма уместным sm.gif

мне, например, применить так и не удалось - какие-то учебные примерчики я писал, но вот для боевого проекта применить ни разу не удалось - поэтому затаил злобу на UVM sm.gif

upd: сорри, чукча не читатель... все уже выше написано, но оставлю
honinbo
Цитата(_Ivan_33 @ Mar 6 2018, 15:20) *
посмотрите книгу UVM Primer - не знаю есть ли в пдф, но на амазоне всего 40 баксов, сам купил
Или же есть еще репозиторий их https://github.com/rdsalemi/uvmprimer - там тоже можно поизучать

пдф есть в закромах.
Цитата(Mad_max @ Mar 6 2018, 10:12) *
Еще UVM хорошо тем, что есть удобный механизм добавления monitors с различными covergroups, coverpoints, etc.
Что дает численную метрику прогресса и качества верификации модуля.

А вот про covergroups, coverpoints в UVM Primer отсыл к другой книжке того же автора "I provide an introduction to covergroups in the books FPGA Simulation". Вот эту FPGA Simulation удалось найти только в виде фоток разворотов. Отправил в закрома.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.