不幸的是,SystemVerilog缺乏全面的内省方法。我所知道的唯一方法是利用VPI获取有关对象的信息。但是,它似乎不包括功能覆盖的对象(覆盖组,覆盖点,容器)。
我想要完成的是:
1)获取某些垃圾箱的覆盖状态( get_coverage()只能返回单个覆盖点和交叉覆盖点的累积覆盖率信息。)
2)获取有关其垃圾箱的封面内容的信息,或者换句话说获得封面的所有垃圾箱定义。
到目前为止,我无法让VPI为我做这份工作。因此,我想知道是否有人已经在这个领域做过实验,并且对我的问题有一些解决方案。 如果VPI没有提供这样的内省功能,我也会对特定于供应商的方法来分析覆盖点及其垃圾箱感到高兴。
答案 0 :(得分:1)
如果您的供应商支持统一覆盖互操作性标准(UCIS),您可能无法实现一些可以读取覆盖数据库并查询其所需内容的C代码。
然后,您可以使用DPI / VPI将此C代码缝合到SV模拟器。
答案 1 :(得分:0)
无需在SystemVerilog语言中进行此类后期处理工作。大多数工具都会为您提供包含所有这些信息并可以过滤的报告。 UCIS API也可用,但是有点矫枉过正。