我有一些Verilog VPI代码,它在我的系统Verilog代码中打印有关给定模块的所有输入和输出的信息。然而,其中一些I/O是System打包的结构,我希望能够让我的VPI代码打印结构中各个字段的值及其相关的名称。不幸的是,"struct“在官方的VPI规范中没有出现(因为VPI在System出现4年前就已经标准化了,我猜想)。我所有的结构都以普通的旧寄存器或网的形式出现在VPI中。
是否有一些系统Verilog特定于VPI的扩展,我可以使用,还是我在这里运气不好?如果有帮助的话,我将使用vcs进行编译。
发布于 2015-11-03 15:24:28
您需要vpiStructVar,它是作为SystemVerilog的一部分引入并在sv_vpi_user.h中定义的。
在Issue#17分支的科克特上有一些您可能感兴趣的代码,它有各种各样的与vpi相关的乐趣。例如,我们可以迭代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工具中所有经常没有文档记录的怪癖,当然还有bug,所以看一看代码和/或注释可能会节省一些时间。
https://stackoverflow.com/questions/33468962
复制相似问题