2015-03-18 3 views
0

К сожалению, SystemVerilog не имеет исчерпывающего способа для самоанализа. Единственный способ, которым я знаю, - использовать VPI для получения информации об объектах. Однако он, как представляется, не включает объекты для функционального покрытия (covergroups, coverpoints, bin).SystemVerilog: интроспекция функционального покрытия

То, что я хотел бы выполнить это:

1) получить статус покрытия некоторых бункеров (get_coverage() только в состоянии вернуть накопленную информацию покрытия отдельных coverpoints и точек пересечения покрытия).

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

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

ответ

1

Если ваш поставщик поддерживает стандарт совместимости унифицированного покрытия (UCIS), вам, возможно, удастся избежать реализации какого-либо кода на C, который может читать базу данных покрытия и запрашивать ее за то, что вам нужно.

Затем вы можете сшить этот код на ваш симулятор SV с помощью DPI/VPI.

+0

Я также думал об использовании UCIS для решения этой проблемы. Поставщик симулятора, который я использую, поддерживает стандарт. К сожалению, я не знаком с UCIS, но я попробую. – sebs

+0

Это мега работы. Думаю, вам придется реализовать все с нуля, поскольку UCIS указывает только API. Даже тогда вам нужно будет убедиться, что вы можете прочитать базу данных во время симуляции (что она не так заблокирована). –

0

Не нужно выполнять такую ​​работу после обработки с языка SystemVerilog. Большинство инструментов дадут вам отчеты, которые имеют всю эту информацию и могут быть отфильтрованы. API UCIS также доступен, но будет излишним.

+0

Предоставляют ли инструменты такие анализы во время выполнения? Пост-обработка не будет хорошим решением моей проблемы. – sebs