Tf_nodeinfo is deprecated from IEEE

I would like to use PLI routines that were developed several years ago using PLI 1.0. It worked fine before. But when I tried to work using a newer version of the ModelSim Verilog simulator I got the following error message:

# ** Warning: (vsim-8668) tf_nodeinfo is deprecated by IEEE. Although still partially supported, memoryval_p will always be a null pointer.
#: PDK_top.v (102)

Tf_nodeinfo is used as PLI subroutines and simulation failed. I tried to figure out how to fix this problem, but I could not find any recommended way to replace the deprecated tf_nodeinfo.

Can anyone give me a strategy that I should use to handle this situation? All PLI subroutine source codes are available.

Also, I am very curious as to why the IEEE decided to drop tf_nodeinfo.

+3


source to share


1 answer


PLI 1.0 is old (it has been around since the mid-1980s according to LRM), it was depreciated in IEEE Std 1364-2005 & sect; 1.6 Deprecated Suggestions:

IEEE Std 1364-2005 deprecates the Verilog PLI TF and ACC procedures that were contained in previous versions of this standard. These procedures have been described in Sections 21 to 25, Appendix E and Appendix F. The text of these clauses and appendices has been removed from this version of the standard. The text of these obsolete articles and appendices can be found in IEEE Std 1364-2001.

I couldn't find a description of why it was removed from the LRM. Best Guesses:



  • Perhaps the old routines tf_

    and acc_

    were not compatible with SystemVerilog. IEEE Std 1800-2005 does not mention subroutines tf_

    and acc_

    , but subroutines do exist vpi_

    . The IEEE was already planning a merger of the two standards (and in IEEE Std 1800-2009).
  • Or it could be because it has significantly less performance or additional overhead compared to VPI. VPI was introduced in IEEE Std 1364-2001 (& section; 20, 26, and 27) and often refers to PLI 2.0 (but the LRM says, "Procedural Interface Verilog routines, called VPI routines, are the third generation of PLI"). VPI is still strong; it still has more overhead than DPI, but the capabilities of the feature don't completely overlap.

Your choice:

  • Use the old simulator (you can work now, but you will need to update at some point)
  • Find another simulator that still supports it (but it may be removed in a future release)
  • Rewrite the functionality into:
    • SystemVerilog IEEE Std 1800-2012
      • It's amazing what can be done with classes, multivalued queues and associative arrays, structures and interfaces).
    • DPI ( IEEE Std 1800-2012 and section 35)
    • VPI ( IEEE Std 1800-2012 sec . 36)
      • vpi_get_data

        / vpi_put_data

        can be your replacement tf_nodeinfo

        pending an operation with it.
+6


source







All Articles