
LOADABLE TARGETS

Icarus Verilog supports dynamically loading code generator modules to
perform the back-end processing of the completed design. The user
specifies on the command line the module to load. The compiler loads
the module (once the design is compiled and elaborated) and calls it
to finally handle the design.

Loadable target modules implement a set of functions that the core
compiler calls to pass the design to it, and the module in turn uses a
collection of functions in the core (the API) to access details of the
design.

LOADING TARGET MODULES

The target module loader is invoked with the ivl flag "-tdll". That
is, the DLL loader is a linked in target type. The name of the target
module to load is then specified with the DLL flag, i.e. "-fDLL=<path>".

COMPILING TARGET MODULES

<write me>

LOADABLE TARGET MODULE API

The target module API is defined in the ivl_target.h header file. This
declares all the type and functions that a loadable module needs to
access the design.

