Introduction¶
Attention
As explained in the home page, GHDL’s implementation of VHPIDIRECT is not compliant with the standard, and the standarization of a FFI/DPI is being discussed in the VASG. As a result, in this documentation VHPIDIRECT, VFFI, FFI, VDPI and/or DPI might be used as synonyms for referring to the new standardized interface, which is currently work in progress.
Interfacing with foreign languages through VHPIDIRECT is possible on any platform. You can reuse or define a subprogram in a foreign language (such as C or Ada) and import it into a VHDL design.
Note
GHDL supports different backends, and not all of them generate binary artifacts. Precisely, mcode
is an in-memory
backend. Hence, the examples need to be built/executed with either LLVM or GCC backends. A few of them, the ones that
do not require linking object files, can be used with mcode.
Attention
As a consequence of the runtime copyright, you are not allowed to distribute an executable produced by GHDL without allowing access to the VHDL sources. See Copyrights | Licenses.
Tip
See ghdl#1053 for on-going work with regard to VHPIDIRECT.