Могу ли я получить график вызовов подпрограмм C, которые вызываются через вызов DPI из системного verilog testbench
Я работаю над проектом проверки. Некоторые компоненты testbench написаны на c, которые вызываются через DPI, подпрограммы c обширны, и мне трудно разобраться, какая из них вызывается. Чистая C-программа может быть, я мог бы использовать cachegrind для этой задачи. В этом случае это не main(), который выполняет вызов, но запускается по событиям. Любой метод, с помощью которого я мог бы получить представление о последовательности вызовов, выполняемых во время моделирования? Cadence Incisive инструмент используется.
2 ответа
Войдите в систему вызывающего абонента и зарегистрируйте вызываемого абонента с точной отметкой времени, затем сравните
Google "gperftools" предоставит вам график вызовов для горячих точек производительности, и если вы установите достаточно низкий порог для сбора данных, вы получите столько деталей, сколько сможете обработать:
Вы также можете указать ему сосредоточиться на конкретных функциях, когда он генерирует граф graphviz, чтобы отточить определенные пути кода. Я лично использовал Google Perftools на тестовом стенде чипа. Работает как чемпион.