信号驱动追踪(signal driver tracing)是一种常用的调试技术,它通过某个信号查询它的驱动源头。当用户在波形界面上发现信号在某个时刻出现问题后,用户可以追踪这个信号的驱动源,这样调试类似结果到原因(effect and cause)推导过程,大大加强了调试的有效性。通常信号的源头可能不是单一而是多个,用户可以选择在波形界面来观测多个源头,也可以通过仿真器和调试器的配合来选择使用代码或者电路图(schematic)方式进行观测。这种信号溯源技术需要仿真器和调试工具的有机结合,底层也需要高效数据库的支持。
事务级视图(Transaction Viewer)。在复杂设计中大量的信号里厘清数据真实含义是非常困难的,用户往往需要参考几十个信号的量的变化来确定数据类型和操作。例如,一个AXI协议的读写操作涉及到的信号可能有20多个。完成一次读写需要用户在一段时间内观测大量信号的变化,这种操作效率低下,不利于长时间的调试过程。Transaction viewer可在图形界面提供更高层次的视角,让用户直观地了解这些transaction的数据类型和定义,而不需要再从底层信号分析数据。有了这个工具,用户可以快速分析调试数据,包括enum type, class based transaction, sequence item等等。当然,要实现一个transaction可视化,还是需要仿真器配合,以及代码的一些额外工作,比如使用验证IP (VIP),或者使用SystemVerilog等高级建模语言描述。