Support for multiple VPI modules.

This commit is contained in:
steve 2000-01-13 05:11:24 +00:00
parent 3b9dedbc86
commit ef98be1192
3 changed files with 39 additions and 4 deletions

View File

@ -166,6 +166,17 @@ Usage: ivl <options>... file
target specific information to the target back-end, or target specific information to the target back-end, or
options/parameters to optimization functions, if any are defined. options/parameters to optimization functions, if any are defined.
-m <module>
Cause a named VPI module to be included in the module
list. This parameter appends the named module to the end of
the VPI_MODULE_LIST. This is an ordered list of modules to be
loaded into the simulation at runtime.
This list can also be set with -fVPI_MODULE_LIST=<list> which
sets the list completely. Then, -m after this will append
module names to the list sp specified. The default list
includes "system".
-N <file> -N <file>
Dump the elaborated netlist to the named file. The netlist is Dump the elaborated netlist to the named file. The netlist is
the folly elaborated netlist, after all the function modules the folly elaborated netlist, after all the function modules

12
main.cc
View File

@ -19,7 +19,7 @@ const char COPYRIGHT[] =
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/ */
#if !defined(WINNT) #if !defined(WINNT)
#ident "$Id: main.cc,v 1.27 1999/12/30 17:37:14 steve Exp $" #ident "$Id: main.cc,v 1.28 2000/01/13 05:11:25 steve Exp $"
#endif #endif
const char NOTICE[] = const char NOTICE[] =
@ -122,7 +122,9 @@ int main(int argc, char*argv[])
unsigned flag_errors = 0; unsigned flag_errors = 0;
queue<net_func> net_func_queue; queue<net_func> net_func_queue;
while ((opt = getopt(argc, argv, "F:f:hN:o:P:s:t:v")) != EOF) switch (opt) { flags["VPI_MODULE_LIST"] = "system";
while ((opt = getopt(argc, argv, "F:f:hm:N:o:P:s:t:v")) != EOF) switch (opt) {
case 'F': { case 'F': {
net_func tmp = name_to_net_func(optarg); net_func tmp = name_to_net_func(optarg);
if (tmp == 0) { if (tmp == 0) {
@ -140,6 +142,9 @@ int main(int argc, char*argv[])
case 'h': case 'h':
help_flag = true; help_flag = true;
break; break;
case 'm':
flags["VPI_MODULE_LIST"] = flags["VPI_MODULE_LIST"]+","+optarg;
break;
case 'N': case 'N':
net_path = optarg; net_path = optarg;
break; break;
@ -282,6 +287,9 @@ int main(int argc, char*argv[])
/* /*
* $Log: main.cc,v $ * $Log: main.cc,v $
* Revision 1.28 2000/01/13 05:11:25 steve
* Support for multiple VPI modules.
*
* Revision 1.27 1999/12/30 17:37:14 steve * Revision 1.27 1999/12/30 17:37:14 steve
* Remove the now useless sigfold functor. * Remove the now useless sigfold functor.
* *

View File

@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/ */
#if !defined(WINNT) #if !defined(WINNT)
#ident "$Id: t-vvm.cc,v 1.95 2000/01/13 03:35:35 steve Exp $" #ident "$Id: t-vvm.cc,v 1.96 2000/01/13 05:11:25 steve Exp $"
#endif #endif
# include <iostream> # include <iostream>
@ -715,7 +715,20 @@ void target_vvm::end_design(ostream&os, const Design*mod)
if (vpi_module_path.length() > 0) if (vpi_module_path.length() > 0)
os << " vvm_set_module_path(\"" << vpi_module_path << os << " vvm_set_module_path(\"" << vpi_module_path <<
"\");" << endl; "\");" << endl;
os << " vvm_load_vpi_module(\"system.vpi\");" << endl;
string vpi_module_list = mod->get_flag("VPI_MODULE_LIST");
while (vpi_module_list.length()) {
string name;
unsigned pos = vpi_module_list.find(',');
if (pos < vpi_module_list.length()) {
name = vpi_module_list.substr(0, pos);
vpi_module_list = vpi_module_list.substr(pos+1);
} else {
name = vpi_module_list;
vpi_module_list = "";
}
os << " vvm_load_vpi_module(\"" << name << ".vpi\");" << endl;
}
os << " design_init();" << endl; os << " design_init();" << endl;
os << " design_start();" << endl; os << " design_start();" << endl;
@ -2023,6 +2036,9 @@ extern const struct target tgt_vvm = {
}; };
/* /*
* $Log: t-vvm.cc,v $ * $Log: t-vvm.cc,v $
* Revision 1.96 2000/01/13 05:11:25 steve
* Support for multiple VPI modules.
*
* Revision 1.95 2000/01/13 03:35:35 steve * Revision 1.95 2000/01/13 03:35:35 steve
* Multiplication all the way to simulation. * Multiplication all the way to simulation.
* *