【问题标题】:SystemC: How can I trace all signals in module hierarchy?SystemC:如何跟踪模块层次结构中的所有信号?
【发布时间】:2017-05-06 03:01:55
【问题描述】:

我想将设计中的所有信号都跟踪到 VCD 文件。可以自动化这个过程吗?我不想手动添加每个信号进行跟踪(使用 sc_trace (..))

【问题讨论】:

  • 自动化这个过程是完全可能的。大多数 EDA 供应商工具已经提供了这样的解决方案。我要做的一件事是在我编写的所有可用模块中编写跟踪方法,并从最顶层的层次结构中调用跟踪方法。你可以看到一个尝试here,这不是我最漂亮的编码遗物之一。
  • 我发现正确的解决方案是使用 lldb/gdb 脚本来使用 debuginfo 查找所有信号并将它们添加到跟踪中。但是我还没有时间去实现它。
  • 我认为 EDA 供应商使用 gdb。
  • 我认为 EDA 供应商不会因为许可问题而使用 GDB,他们对遗留代码库和专有代码魔法非常严格。每当您声明 sc_in/out 端口并绑定它们时,它们可能会使用类似的东西或只是调用 sc_trace,如果您敢于修改 OSCI SystemC 实现,这很容易做到。
  • 现代商业模拟器支持追踪纯 C++ 变量(不仅是 sc_objects)。提取它们的唯一方法是使用调试信息和 RTTI。而且我认为 EDA 供应商没有足够的资源和专业知识来从头开始编写 gdb/lldb 克隆。所以我 99% 确信他们使用 GDB 脚本实现了跟踪。

标签: systemc


【解决方案1】:

我最终为 GDB 调试器实现了脚本,该脚本自动跟踪设计中的信号和其他 sc_module 成员。

如果它对其他人有用,以下是来源: https://github.com/ripopov/gdb_systemc_trace

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多