From e972f9c557f4d70beadf441f91fcc9b944e6ba21 Mon Sep 17 00:00:00 2001 From: steve Date: Sat, 12 Apr 2003 19:19:03 +0000 Subject: [PATCH] Add the swift.txt documentation. --- swift.txt | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 swift.txt diff --git a/swift.txt b/swift.txt new file mode 100644 index 000000000..85b04a516 --- /dev/null +++ b/swift.txt @@ -0,0 +1,67 @@ + +SWIFT MODEL SUPPORT FOR Icarus Verilog (PRELIMINARY) + + Copyright 2003 Stephen Williams + + NOTE: SWIFT support does not work yet, these are provisional + instructions, intended to show what's supposed to happen when I get + it working. + +Icarus Verilog support for SWIFT models is based on the LMTV interface +module from Synopsys. This module is normally distributed along with +the SWIFT models proper. This module can be linked with Icarus Verilog +via the cadpli compatibility object. (See cadpli.txt.) + +* Preliminaries + +First, you need the LMC_HOME environment variable set to point to the +installed directory for your SWIFT software. This setup is documented +in your SWIFT model documentation. + +* Compilation + +When compiling your Veriog design to include a SWIFT model, you need +to include wrappers for the model you intend to use. You may choose to +use ncverilog or verilogxl compatible wrappers, they work the +same. Locate your smartmodel directory, and include it in your command +file like so: + + +libdir+.../smartmodel/sol/wrappers/verilogxl + +The wrappers directory includes Verilog modules that wrap your SWIFT +module, and with this +libdir+ statement in your command file, the +Icarus Verilog compiler will be able to locate these wrappers. The +wrappers in turn invoke the $lm_model system tasks that are the LMTV +support for your model. + + NOTE: This example uses the solaris directory of VerilogXL support + files as a source of wrappers. The files of interest, however, are + written in Verilog and are identical for all supported platforms, so + long as you choose the verilogxl or ncverilog files. + +* Execution + +After your simulation is compiled, run the simulation with the vvp +command, like this: + + % vvp -mcadpli a.out -cadpli=$LMC_HOME/lib/x86_linux.lib/swiftpli.so:swift_boot + +What this command line means is: + + -mcadpli + Include the cadpli compatibility module + + a.out + This is your compiled vvp file + + -cadpli=$LMC_HOME/lib/x86_linux.lib/swiftpli.so:swift_boot + This tells the cadpli module to load the swiftpli.so + shared object, and boot it. This is code that comes with + your SWIFT modules, and provides the generic SWIFT + capabilities (lm_* system tasks) needed by the module + itself. + +Once you start the vvp command, the SWIFT infrastructure will be +initialized as part of the simulation setup, and all should work +normally from here. +