我想使用多年前使用PLI 1.0开发的PLI例程。 之前工作得很好。但是当我尝试使用较新版本的ModelSim Verilog模拟器运行时,我收到以下错误消息:
#**警告:(vsim-8668)IEEE已弃用tf_nodeinfo。虽然仍然部分支持,但memoryval_p将始终设置为空指针 #:PDK_top.v(102)
由于PLI例程正在使用tf_nodeinfo并且模拟失败。 我试图弄清楚如何修复这个问题,但我找不到任何推荐的方法来替换过时的tf_nodeinfo。
有人可以给我一个策略来处理这种情况吗? PLI例程的所有源代码都可用。
另外,我很好奇为什么IEEE决定放弃tf_nodeinfo。
答案 0 :(得分:6)
PLI 1.0已经过时了(根据LRM自1980年代中期以来一直存在),它在IEEE Std1364-2005§1.0弃用条款中被弃用:
IEEE Std 1364-2005弃用了本标准以前版本中包含的Verilog PLI TF和ACC例程。这些例程在第21章至第25章,附件E和附件F中有所描述。这些条款和附件的文本已从该版本的标准中删除。这些弃用条款和附件的文本可以在IEEE Std 1364-2001中找到。
我找不到任何描述为什么它从LRM中删除了。最好的猜测是:
tf_
和acc_
例程与SystemVerilog无法比较。 IEEE Std 1800-2005中没有提到tf_
和acc_
例程,但有vpi_
个例程。 IEEE已经计划合并这两个标准(并且在IEEE Std 1800-2009中做过)。 您的选择:
vpi_get_data
/ vpi_put_data
可能是您的tf_nodeinfo
替代品,等待操作对其进行操作。