diff --git a/driver/main.c b/driver/main.c index eb2a8a513..c1df7e146 100644 --- a/driver/main.c +++ b/driver/main.c @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: main.c,v 1.64 2004/03/10 04:51:25 steve Exp $" +#ident "$Id: main.c,v 1.65 2004/06/17 14:47:22 steve Exp $" #endif # include "config.h" @@ -492,6 +492,10 @@ int main(int argc, char **argv) switch (opt) { case 'B': + /* Undocumented feature: The preprocessor itself + may be located at a different location. If the + base starts with a 'P', set this special base + instead of the main base. */ if (optarg[0] == 'P') { pbase = optarg+1; } else { @@ -604,6 +608,12 @@ int main(int argc, char **argv) /* Write values to the iconfig file. */ fprintf(iconfig_file, "basedir:%s\n", base); + + /* Tell the core where to find the system.sft. This file + describes the system functions so that elaboration knows + how to handle them. */ + fprintf(iconfig_file, "sys_func:%s%csystem.sft\n", base, sep); + if (mtm != 0) fprintf(iconfig_file, "-T:%s\n", mtm); fprintf(iconfig_file, "generation:%s\n", generation); fprintf(iconfig_file, "warnings:%s\n", warning_flags); @@ -725,6 +735,9 @@ int main(int argc, char **argv) /* * $Log: main.c,v $ + * Revision 1.65 2004/06/17 14:47:22 steve + * Add a .sft file for the system functions. + * * Revision 1.64 2004/03/10 04:51:25 steve * Add support for system function table files. * diff --git a/verilog.spec b/verilog.spec index ba837e1e0..6de5962cb 100644 --- a/verilog.spec +++ b/verilog.spec @@ -68,6 +68,7 @@ make prefix=$RPM_BUILD_ROOT/usr install %attr(-,root,root) /usr/lib64/libvpi.a %attr(-,root,root) /usr/lib64/libveriuser.a %endif +%attr(-,root,root) /usr/lib/ivl/system.sft %attr(-,root,root) /usr/lib/ivl/system.vpi %attr(-,root,root) /usr/lib/ivl/cadpli.vpl %attr(-,root,root) /usr/lib/libvpi.a diff --git a/vpi/Makefile.in b/vpi/Makefile.in index 15c81b5c1..5f68d2202 100644 --- a/vpi/Makefile.in +++ b/vpi/Makefile.in @@ -16,7 +16,7 @@ # 59 Temple Place - Suite 330 # Boston, MA 02111-1307, USA # -#ident "$Id: Makefile.in,v 1.55 2004/06/09 22:14:10 steve Exp $" +#ident "$Id: Makefile.in,v 1.56 2004/06/17 14:47:22 steve Exp $" # # SHELL = /bin/sh @@ -113,17 +113,21 @@ clean: distclean: clean rm -f Makefile -install: all installdirs $(vpidir)/system.vpi $(INSTALL32) +install: all installdirs $(vpidir)/system.vpi $(libdir)/ivl/system.sft $(INSTALL32) $(vpidir)/system.vpi: ./system.vpi $(INSTALL_PROGRAM) ./system.vpi $(vpidir)/system.vpi $(STRIP) $(strip_dynamic) $(vpidir)/system.vpi +$(libdir)/ivl/system.sft: system.sft + $(INSTALL_DATA) system.sft $(libdir)/ivl/system.sft + installdirs: ../mkinstalldirs $(srcdir)/../mkinstalldirs $(vpidir) uninstall: $(UNINSTALL32) rm -f $(vpidir)/system.vpi + rm -f $(libdir)/ivl/system.sft -include $(patsubst %.o, dep/%.d, $O) diff --git a/vpi/system.sft b/vpi/system.sft new file mode 100644 index 000000000..f9f914b6c --- /dev/null +++ b/vpi/system.sft @@ -0,0 +1,7 @@ +# +# This is the system function descriptor table for the +# builtin (system) functions. +# + +$random vpiSysFuncInt +$dist_uniform vpiSysFuncInt