Add -D to iverilog-vpi and update documentation.
[iverilog.git] / ivl_target.txt
blobef89f23a08a92179145b6a2ecf62dbb698431693
2 Icarus Verilog LOADABLE TARGET API (ivl_target)
4   Copyright 2002 Stephen Williams <steve@icarus.com>
5   $Id: ivl_target.txt,v 1.3 2002/06/11 03:34:33 steve Exp $
8 The ivl_target API is the interface available to modules that the
9 Icarus Verilog compiler loads to act as a code generator. The API
10 provides an interface to the elaborated, possibly synthesized, design
11 for code generators that are intended to write netlist files or
12 executable programs.
14 The functions and types of the API are summarized in the ivl_target.h
15 header file. This document describes how the functions and types of
16 the API are used to access and interpret the netlist of the design.
19 LPM DEVICES
21 All LPM devices support a small set of common LPM functions, as
22 described in the ivl_target header file. The ivl_lpm_t object has a
23 type enumerated by ivl_lpm_type_t, and that type is accessible via the
24 ivl_lpm_type function.
26 The following are type specific aspects of LPM devices.
28 * IVL_LPM_UFUNC
30 This LPM represents a user defined function. It is a way to connect
31 behavioral code into a structural network. The UFUNC device has a
32 vector output and a set of inputs. The ivl_lpm_define function returns
33 the definition as an ivl_scope_t object.
35 The output vector is accessible through the ivl_lpm_q, and the output
36 has the width defined by ivl_lpm_width. This similar to most every
37 other LPM device with outputs.
39 There are ivl_lpm_size() input ports, each with the width
40 ivl_lpm_data2_width(). The actual nexus is indexed by ivl_lpm_data2().
42 $Log: ivl_target.txt,v $
43 Revision 1.3  2002/06/11 03:34:33  steve
44  Spelling patch (Larry Doolittle)
46 Revision 1.2  2002/03/17 19:31:17  steve
47  Add API to support user defined function.
49 Revision 1.1  2002/03/09 02:10:22  steve
50  Add the NetUserFunc netlist node.