|
Что такое UVM?, Зачем он нужен, как пользоваться? |
|
|
|
 |
Ответов
(1 - 12)
|
Mar 5 2018, 18:55
|
Гуру
     
Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640

|
сильно упрощая - это как переход от С к С++ то есть в мире появилось много ООП программистов, наверно, их сейчас специально учат в институтах, и чтобы применять их навыки для верификации HDL и придумали UVM (до этого были OVM, RVM ну и немного сбоку VMM)
то есть если переход в программировании от С к С++ кажется бессмысленным, то совершено не имеет смысла тратить время на OVM
OVM, по-моему, полезна для отладки каких-то протоколов передачи данных (по крайней мере я других примеров не видел, что в учебниках, что в коде субподрядчиков), а пытаться применять для отладки каких-либо DSP алгоритмов, вычислительных ядер, или простых FSM смысла мало
|
|
|
|
|
Mar 5 2018, 19:15
|

В поисках себя...
   
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140

|
Цитата(yes @ Mar 5 2018, 21:55)  сильно упрощая - это как переход от С к С++ то есть в мире появилось много ООП программистов, наверно, их сейчас специально учат в институтах, и чтобы применять их навыки для верификации HDL и придумали UVM (до этого были OVM, RVM ну и немного сбоку VMM)
то есть если переход в программировании от С к С++ кажется бессмысленным, то совершено не имеет смысла тратить время на OVM
OVM, по-моему, полезна для отладки каких-то протоколов передачи данных (по крайней мере я других примеров не видел, что в учебниках, что в коде субподрядчиков), а пытаться применять для отладки каких-либо DSP алгоритмов, вычислительных ядер, или простых FSM смысла мало Странно. Мне всегда казалось что UVM как и OSVVM ( то-же что и UVM но на VHDL) - это определенный набор методик для генерации набора псевдослучайных тестов, позволяющих максимально полно проверить реакцию тестируемого модуля на эти тесты.
|
|
|
|
|
Mar 5 2018, 20:20
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(Flip-fl0p @ Mar 5 2018, 22:15)  Странно. Мне всегда казалось что UVM как и OSVVM ( то-же что и UVM но на VHDL) - это определенный набор методик для генерации набора псевдослучайных тестов, позволяющих максимально полно проверить реакцию тестируемого модуля на эти тесты. Генерация псевдослучайных тестов это constraint random-base verification и это не главное в UVM. UVM это в первую очередь методология позволяющая упростит и стандартизировать построение сложных верификационных платформ и соответствующая OOP библиотека которая поддерживает эту методологию. Если грубо - выделяются стандартные этапы верификации, набор ролей версификационных модулей. Стандартизируются потоки управления и интерфейсы между ними. Добавляется механизм сквозной динамической конфигурации без необходимости пере-компиляции. ( короче : правила - формальности - бюрократия  ни ка какого свободного творчества и полета фантазии). Цель соответственно благая - повысить reusable-ность верификации и соответственно снизить стоимость. Но увы это не золотая пуля - полноценное применение методологии UVM (как и подобной ей) имеет смысл в больших командах с разделением обязанностей и длительным первоначальным периодом вхождения в эту технологию и наработки своей версификационной базы. Саму же UVM библиотеку можно использовать и как есть почти без оглядки на методологию. Удачи! Rob.
|
|
|
|
|
Mar 6 2018, 07:12
|
Местный
  
Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811

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

Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052

|
Цитата(yes @ Mar 5 2018, 21:55)  сильно упрощая - это как переход от С к С++ то есть в мире появилось много ООП программистов, наверно, их сейчас специально учат в институтах, и чтобы применять их навыки для верификации HDL и придумали UVM (до этого были OVM, RVM ну и немного сбоку VMM)
то есть если переход в программировании от С к С++ кажется бессмысленным, то совершено не имеет смысла тратить время на OVM
OVM, по-моему, полезна для отладки каких-то протоколов передачи данных (по крайней мере я других примеров не видел, что в учебниках, что в коде субподрядчиков), а пытаться применять для отладки каких-либо DSP алгоритмов, вычислительных ядер, или простых FSM смысла мало Где можно найти примеры применения UVM, OVM, VMM?
|
|
|
|
|
Mar 6 2018, 10:02
|
Знающий
   
Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664

|
Цитата Где можно найти примеры применения UVM, OVM, VMM? В nVidia, например. А если что-то вроде "helloworld" в UVM, то на verilab.com можно найти такое.
Сообщение отредактировал one_eight_seven - Mar 6 2018, 10:04
|
|
|
|
|
Mar 6 2018, 12:08
|

Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 10-02-15
Пользователь №: 85 052

|
Цитата(one_eight_seven @ Mar 6 2018, 13:02)  В nVidia, например.
А если что-то вроде "helloworld" в UVM, то на verilab.com можно найти такое. В nVidia? Как найти примеры nVidia? В официальной документации есть "Hello World"-примеры. Но из них непонятно, зачем нужно UVM. Хотелось бы найти как-раз работающий пример из реальной жизни, чтобы понять преимущества UVM-методологии.
|
|
|
|
|
Mar 6 2018, 12:20
|
fpga designer
   
Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928

|
посмотрите книгу UVM Primer - не знаю есть ли в пдф, но на амазоне всего 40 баксов, сам купил Или же есть еще репозиторий их https://github.com/rdsalemi/uvmprimer - там тоже можно поизучать
--------------------
|
|
|
|
|
Mar 6 2018, 12:48
|
Гуру
     
Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640

|
Цитата(Flip-fl0p @ Mar 5 2018, 22:15)  Странно. Мне всегда казалось что UVM как и OSVVM ( то-же что и UVM но на VHDL) - это определенный набор методик для генерации набора псевдослучайных тестов, позволяющих максимально полно проверить реакцию тестируемого модуля на эти тесты. псевдослучайные тесты не имеют большого смысла для перебора datapath логики или процессора (там "особые" ситуации известны), а для простых устройств требуют излишних усилий - это я хотел сказать а если какой-то протокол, еще и сложный, его можно параллелить (ну если написан псевдослучайный тест, то без разницы - последовательно его исполнять или параллельно) - что очень важно для тестирования там еще стандартизованы агенты, мониторы и т.п. (то есть структура тестов), что облегчает работу большого коллектива верификаторов над проектом то есть UVM штука однозначно полезная, но достаточно специфическая, в силу большей сложности "минимального тесткейса" поэтому считаю свое сравнение с С++ весьма уместным  мне, например, применить так и не удалось - какие-то учебные примерчики я писал, но вот для боевого проекта применить ни разу не удалось - поэтому затаил злобу на UVM  upd: сорри, чукча не читатель... все уже выше написано, но оставлю
|
|
|
|
|
Mar 6 2018, 17:05
|
Местный
  
Группа: Свой
Сообщений: 244
Регистрация: 19-03-08
Пользователь №: 36 039

|
Цитата(_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 удалось найти только в виде фоток разворотов. Отправил в закрома.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|