Vl-dpiimport
Represents a single import of a C function into SystemVerilog via the
Direct Programming Interface.
This is a product type introduced by defprod.
Fields
- name — stringp
- The SystemVerilog version of the name (may differ from the C
function's name.)
- c-name — stringp
- The name of the C function being imported.
- spec — vl-dpispec-p
- Indicates whether this function uses the deprecated "DPI"
or the replacement "DPI-C" interface.
- prop — vl-dpiprop-p
- Indicates whether the pure or context keywords were
provided.
- rettype — vl-maybe-datatype
- For an imported function, this is the return type. For a task,
it is nil, which lets you distinguish whether this import
is for a function or a task.
- portdecls — vl-portdecllist
- The arguments from the function/task prototype.
- atts — vl-atts
- Any attributes associated with this DPI import.
- loc — vl-location
- Where this DPI import was found in the source code.
SystemVerilog's Direct Programming Interface (DPI) allows for
SystemVerilog code to invoke functions that are written in C, and for
C programs to invoke SystemVerilog functions/tasks. (In theory the
DPI can also be used to connect to other languages besides C, but
we'll just say C here.)
A DPI import statement is for making C functions available to
the SystemVerilog design. A DPI export goes the other way and we
treat them separately; see vl-dpiexport.
We cannot imagine any way for VL to really comprehend or make any
real use of imported C code. However, we do try to at least parse and
represent the actual DPI import statements so that they don't lead to
parse errors. We also regard import statements as real, legitimate
scope items that can be looked up in a scopestack, which allows
applications like vl-lint to recognize that calls of these
functions/tasks are not undefined.
Subtopics
- Vl-dpiimport-fix
- Fixing function for vl-dpiimport structures.
- Vl-dpiimport-p
- Recognizer for vl-dpiimport structures.
- Make-vl-dpiimport
- Basic constructor macro for vl-dpiimport structures.
- Vl-dpiimport-equiv
- Basic equivalence relation for vl-dpiimport structures.
- Vl-dpiprop-p
- Representation of pure or context properties.
- Change-vl-dpiimport
- Modifying constructor for vl-dpiimport structures.
- Vl-dpiimport->rettype
- Get the rettype field from a vl-dpiimport.
- Vl-dpiimport->portdecls
- Get the portdecls field from a vl-dpiimport.
- Vl-dpiimport->spec
- Get the spec field from a vl-dpiimport.
- Vl-dpiimport->prop
- Get the prop field from a vl-dpiimport.
- Vl-dpiimport->name
- Get the name field from a vl-dpiimport.
- Vl-dpiimport->c-name
- Get the c-name field from a vl-dpiimport.
- Vl-dpiimport->loc
- Get the loc field from a vl-dpiimport.
- Vl-dpiimport->atts
- Get the atts field from a vl-dpiimport.
- Vl-dpispec-p
- Representation of the "DPI" or "DPI-C" specification
used in DPI import/exports.