首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Specman分析外部代码

Specman分析外部代码
EN

Stack Overflow用户
提问于 2014-05-26 16:24:05
回答 3查看 214关注 0票数 0

我在我的specman运行中运行profile,并得到90%是在外部代码上。我的运行环境也包含SystemVerilog代码。我如何识别这个“外部代码”是什么,是谁在调用它?

EN

回答 3

Stack Overflow用户

发布于 2014-05-26 23:27:14

“外部代码”通常用于非specman和非模拟器代码,如c/c++代码、非Cadence模拟器等。特别是,如果您正在使用C接口(C-specman接口),并且将c例程定义为外部动态,并且将模拟配置"-ignore_dyn_c_routine_signals“设置为TRUE (默认值),则所有外部动态c例程都将被视为外部代码,而不是太空人代码。

要查看specman模拟配置,请在specman提示符下发出以下命令:

specman >显示配置模拟

如果您需要帮助分析分析器报告,您可以随时联系Cadence support here并发送相关报告。

票数 0
EN

Stack Overflow用户

发布于 2014-05-27 03:39:19

“外部代码”可能还包括非Cadence模拟器,甚至IUS,如果仅为Specman启用了profiler的话。如果您点击“代码块”表中的“外部代码”,您可能会看到一些“调用者”-端口、动态C例程等-e代码中的实体,这些实体导致Specman与外部代码通信。如果这90%中的大部分花费在Specman节拍之间的模拟器中,或者在模拟器中调用的C/C++代码中,您可能不会在“调用者”中看到任何重要的%s。但是在这种情况下,您的大部分CPU时间都花在与Specman无关的代码上,分析器无法帮助您处理它。

票数 0
EN

Stack Overflow用户

发布于 2014-06-04 21:00:29

您的系统Verilog模拟器可能是模拟的主控,因此,如果您想分析“外部代码”,请查看模拟器的文档,了解如何启用系统verilog分析。

如果System Verilog模拟器说它没有消耗太多的模拟时间,那么启动一个像Google Profiler这样的C/C++分析器,它会告诉您正在执行哪些确切的C/C++函数。仅供参考,当进程仍在运行时,您可能希望在/proc/<pid>/exe上运行后处理工具,以便在模拟环境中获得dlopen'd时查看所有符号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23865836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档