Specman профилирует внешний код

Я запускаю профиль на своем специальном прогоне и получаю, что 90% приходится на внешний код. Моя рабочая среда также включает код SystemVerilog. Как я могу определить, что это за «внешний код» и кто его вызывает?


person Kamil.Khoury    schedule 26.05.2014    source источник


Ответы (3)


«Внешний код» может также включать симулятор без Cadence или даже IUS, если профилировщик включен только для Specman. Если вы нажмете «Внешний код» в таблице «Кодовые блоки», вы можете увидеть некоторые «вызывающие объекты» — порты, динамические подпрограммы C и т. д. — сущности в электронном коде, которые заставили Specman взаимодействовать с внешним кодом. В случае, если большая часть этих 90% тратится в симуляторе между тактами Specman или в коде C/C++, вызываемом из симулятора, вы, вероятно, не увидите каких-либо значительных %s в «вызывающих». Но в этом случае большая часть процессорного времени тратится на код, не относящийся к Specman, и профилировщик не может вам в этом помочь.

person Rodion Melnikov    schedule 26.05.2014

«Внешний код» обычно учитывает неспецифический и несимуляторный код, такой как код c/c++, не-симулятор Cadence и т. д., в частности, если вы используете интерфейс C (интерфейс C-specman) и определяете ваши подпрограммы c как внешние динамические, и у вас есть конфигурация симуляции "-ignore_dyn_c_routine_signals", установленная в TRUE (что является значением по умолчанию), тогда все внешние динамические подпрограммы c будут рассматриваться как внешний код, а не как код spacman.

Чтобы просмотреть конфигурацию симуляции specman, введите эту команду в приглашении specman:

specman > показать симуляцию конфигурации

если вам нужна помощь в анализе отчетов профилировщика, вы всегда можете обратиться в службу поддержки Cadence здесь и отправить соответствующие отчеты.

person yuvalg    schedule 26.05.2014

Ваш системный симулятор Verilog, вероятно, является мастером для вашего моделирования, поэтому, если вы хотите проанализировать «внешний код», посмотрите в документации по вашему симулятору, как включить системное профилирование Verilog.

Если симулятор System Verilog говорит, что он не требует много времени для моделирования, запустите профилировщик C/C++, например Google Profiler, и он сообщит вам, какие именно функции C/C++ выполняются. К вашему сведению, вы можете запустить инструмент постобработки на своем /proc/<pid>/exe, пока процесс все еще выполняется, чтобы увидеть все символы, если что-то становится dlopen'd в вашей среде моделирования.

person Ross Rogers    schedule 04.06.2014