From e28b7f06c53af64f5bf86baeef14bfec3eae3730 Mon Sep 17 00:00:00 2001 From: steve Date: Tue, 12 Jun 2001 23:32:49 +0000 Subject: [PATCH] update documentation to describe vpi in vvp. --- README.txt | 11 ++++++----- vpi.txt | 18 ++++++++++-------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/README.txt b/README.txt index 3531af063..b95b8c625 100644 --- a/README.txt +++ b/README.txt @@ -13,10 +13,10 @@ home page at . Icarus Verilog is not aimed at being a simulator in the traditional sense, but a compiler that generates code employed by back-end tools. These back-end tools currently include a simulator written in -C++ called VVM and an XNF (Xilinx Netlist Format) generator. See -"vvm.txt" and "xnf.txt" for further details on these back-end -processors. In the future, backends are expected for EDIF/LPM, -structural Verilog, VHDL, etc. +C++ called VVM, another faster simulator called VVP and an XNF (Xilinx +Netlist Format) generator. See "vvm.txt" and "xnf.txt" for further +details on these back-end processors. In the future, backends are +expected for EDIF/LPM, structural Verilog, VHDL, etc. For instructions on how to run Icarus Verilog, see the ``iverilog'' man page. @@ -36,7 +36,7 @@ You need the following software to compile Icarus Verilog from source on a UNIX-like system: - GNU Make - The Makefiles use some GNU extensions to, so a basic POSIX + The Makefiles use some GNU extensions, so a basic POSIX make will not work. Linux systems typically come with a satisfactory make. BSD based systems (i.e. NetBSD, FreeBSD) typically have GNU make as the gmake program. @@ -403,6 +403,7 @@ Verilog guidance, and especially testing from many people, including Larry Doolittle Guy Hutchison Ales Hvezda + Venkat Iyer Yasuhisa Kato James Lee Peter Monta diff --git a/vpi.txt b/vpi.txt index 525d69dcd..046e003aa 100644 --- a/vpi.txt +++ b/vpi.txt @@ -38,12 +38,12 @@ small "C" source file that defines only the startup table like so: Compile this table source down to its object file, as well. Finally, link the application with the command: - cc -o foo.vpi -shared + cc -o foo.vpi -shared -lvpi -No VPI libraries need to be included because the product that loads -the module will supply all the standard vpi functions. If you use any -non-vpi library functions, you may need to include libraries to -support them. +The -lvpi flag brings in the interface library that handles the +interface between the module you are making and the simulator run-time +that is loading this module. This contains the supported vpi functions +as stubs that bind to the appropriate implementations. The resulting foo.vpi file is the vpi module. Place it in a location where the product to use it can locate it. @@ -51,6 +51,8 @@ where the product to use it can locate it. CAVEAT EMPTOR -Only the calltf function is supported. The compiletf and sizetf -functions are invoked at compile time, and the ivl compiler does not -yet support VPI. +Only the calltf function is supported in general. The sizetf function +is used by the vvp runtime if the object is a function, but only to +check that the function width really is what the compiler already +guessed. The compiletf function may be supported by the vvp runtime +sometime in the future but not yet.