System Verilog VPI中的压缩结构?

时间:2015-11-02 00:35:13

标签: struct verilog system-verilog

我有一些Verilog VPI代码,用于在我的System Verilog代码中打印有关给定模块的所有输入和输出的信息。但是,其中一些I / O是System Verilog打包的结构,我希望能够让我的VPI代码打印结构中各个字段的值及其相关名称。不幸的是,“struct”在官方VPI规范中没有显示出来(因为VPI在System Verilog成立之前4年被标准化,我假设)。我的所有结构都只是在VPI中显示为普通的寄存器或网络。

我可以使用VPI的一些System Verilog特定扩展,还是我运气不好?如果有帮助,我正在使用vcs进行编译。

1 个答案:

答案 0 :(得分:3)

您希望vpiStructVar作为SystemVerilog的一部分引入并在sv_vpi_user.h中定义。

您可能会对Issue#17 Cocotbvpi related fun分支感兴趣的代码有各种for detail。例如,我们可以从Python迭代设计中的所有对象:

@cocotb.test()
def discover_objects(dut):
    for thing in dut:
        print "Found %s.%s of type %s" % (dut._name, thing._name, type(thing))

您还可以递归发现整个设计等。

我们花了很多精力搞清楚所有经常没有文档记录的怪癖,当然还有EDA工具中的错误,所以看看代码和/或评论可能会节省你一些时间。