From 4e445150782e5ce94e3ba0f54244721455d25768 Mon Sep 17 00:00:00 2001 From: steve Date: Sat, 20 Jan 2001 19:02:04 +0000 Subject: [PATCH] Switch hte -f flag to the -p flag. --- README.txt | 44 ++++++++++++++++++++++++-------------------- driver/iverilog.man | 16 ++++++++-------- driver/main.c | 17 +++++++++++------ examples/xnf_add.vl | 2 +- main.cc | 10 ++++++++-- 5 files changed, 52 insertions(+), 37 deletions(-) diff --git a/README.txt b/README.txt index 698bb2816..ffbd5fb42 100644 --- a/README.txt +++ b/README.txt @@ -43,7 +43,7 @@ on a UNIX-like system: recent gcc compilers with the associated libstdc++ are known to work. MSVC++ 5 and 6 are known to definitely *not* work. - - bison + - bison and flex - gperf 2.7 The lexical analyzer doesn't recognize keywords directly, @@ -223,17 +223,6 @@ Usage: ivl ... file The function is specified by name. Use the "ivl -h" command to get a list of configured function names. --f - Use this flag to set a parameter value. The format of the - assignment is = where key is any string up to the - first '=', and is the rest of the option. If the '=' - is omitted, then the key is assigned the empty string. - - The useful keys are defined by the functions and the target in - use. These assignments are specifically useful for passing - target specific information to the target back-end, or - options/parameters to optimization functions, if any are defined. - -m Cause a named VPI module to be included in the module list. This parameter appends the named module to the end of @@ -263,6 +252,17 @@ Usage: ivl ... file parsing and before elaboration. This is an aid for debugging the compiler. +-p + Use this flag to set a parameter value. The format of the + assignment is = where key is any string up to the + first '=', and is the rest of the option. If the '=' + is omitted, then the key is assigned the empty string. + + The useful keys are defined by the functions and the target in + use. These assignments are specifically useful for passing + target specific information to the target back-end, or + options/parameters to optimization functions, if any are defined. + -s Normally, ivl will elaborate the only module in the source file. If there are multiple modules, use this option to select @@ -320,7 +320,9 @@ Icarus Verilog is in development - as such it still only supports a (growing) subset of Verilog. Below is a description of some of the currently unsupported verilog features. This list is not exhaustive, and does not account for errors in the compiler. See the Icarus -Verilog web page for the current state of support for Verilog. +Verilog web page for the current state of support for Verilog, and in +particular, browse the bug report database for reported unsupported +constructs. - block disable not supported, i.e.: @@ -335,7 +337,9 @@ Verilog web page for the current state of support for Verilog. assign foo = user_function(a,b); // sorry always @(a or b) foo = user_function(a,b); // OK - - real data types not supported. This includes real and realtime. + - real data types not supported. This includes real and + realtime. However, floating point constants in delay expressions + are supported so that `timescale works properly. - System functions are supported, but the compiler presumes that they return 32 bits. This is the typical case. @@ -349,9 +353,9 @@ Verilog web page for the current state of support for Verilog. Except where otherwise noted, Icarus Verilog, ivl and ivlpp are Copyright Stephen Williams. The proper notices are in the head of each -file. However, I have received aid in the form of fixes, Verilog -guidance, and especially testing from many people, including (in -alphabetical order): +file. However, I have early on received aid in the form of fixes, +Verilog guidance, and especially testing from many people, including +(in alphabetical order): Eric Aardoom Stephan I. Boettcher @@ -380,7 +384,7 @@ for collecting and organizing the test suite code for all those testers. This is a list of people who have created ports and precompiled packages for various operating systems. These folks have graciously taken on the task of building Icarus Verilog on their systems and -bundled it into neat packages.(*) If you want to be added to the list (or +bundled it into neat packages.(+) If you want to be added to the list (or removed from the list) send e-mail to me. FreeBSD/{Intel,alpha} @@ -396,7 +400,7 @@ removed from the list) send e-mail to me. Yasuhisa Kato NetBSD/* - Dan + Dan McMahill Solaris/SPARC packages (.pkg) Dan McMahill @@ -404,7 +408,7 @@ removed from the list) send e-mail to me. Cygwin32/* Venkat Iyer -(*) These are not the only systems where Icarus Verilog has been run, +(+) These are not the only systems where Icarus Verilog has been run, just the systems where precompiled binaries are publicly available. 6.2 TEST SUITE MANAGER diff --git a/driver/iverilog.man b/driver/iverilog.man index f0461289c..b5cbacbef 100644 --- a/driver/iverilog.man +++ b/driver/iverilog.man @@ -1,10 +1,10 @@ -.TH iverilog 1 "$Date: 2001/01/05 05:16:03 $" Version "$Date: 2001/01/05 05:16:03 $" +.TH iverilog 1 "$Date: 2001/01/20 19:02:05 $" Version "$Date: 2001/01/20 19:02:05 $" .SH NAME iverilog - Icarus Verilog compiler .SH SYNOPSIS .B iverilog -[-ESv] [-Cpath] [-ccmdfile] [-Dmacro[=defn]] [-fflag=value] [-Iincludepath] [-mmodule] [-Nfile] [-ooutputfilename] [-stopmodule] [-ttype] [-Tmin/typ/max] [-Wclass] sourcefile +[-ESv] [-Cpath] [-ccmdfile] [-Dmacro[=defn]] [-pflag=value] [-Iincludepath] [-mmodule] [-Nfile] [-ooutputfilename] [-stopmodule] [-ttype] [-Tmin/typ/max] [-Wclass] sourcefile .SH DESCRIPTION .PP @@ -55,12 +55,6 @@ is the Verilog input, but with file inclusions and macro references expanded and removed. This is useful, for example, to preprocess verilog source for use by other compilers. .TP 8 -.B -f\fIflag=value\fP -Assign a value to a target specific flag. The \fB-f\fP switch may be -used as often as necessary to specify all the desired flags. The flags -that are used depend on the target that is selected, and are described -in target specific documentation. Flags that are not used are ignored. -.TP 8 .B -I\fIincludedir\fP Append directory \fIincludepdir\fP to list of directoriess searched for Verilog include files. The \fB-I\fP switch may be used many times @@ -82,6 +76,12 @@ elaborated and optimized. Place output in the file \fIfilename\fP. If no output file name is specified, \fIiverilog\fP uses the default name \fBa.out\fP. .TP 8 +.B -p\fIflag=value\fP +Assign a value to a target specific flag. The \fB-p\fP switch may be +used as often as necessary to specify all the desired flags. The flags +that are used depend on the target that is selected, and are described +in target specific documentation. Flags that are not used are ignored. +.TP 8 .B -S Synthesize. Normally, if the target can accept behavioral descriptions the compiler will leave processes in behavioral diff --git a/driver/main.c b/driver/main.c index e17cab2c6..048ddef67 100644 --- a/driver/main.c +++ b/driver/main.c @@ -17,12 +17,12 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) -#ident "$Id: main.c,v 1.6 2001/01/20 02:15:51 steve Exp $" +#ident "$Id: main.c,v 1.7 2001/01/20 19:02:05 steve Exp $" #endif const char HELP[] = "Usage: iverilog [-ESv] [-c ] [-Dmacro[=defn]] - [-f flag=value] [-I] [-m module] + [-p flag=value] [-I] [-m module] [-o ] [-s top_module] [-t] [-W class] source_file(s) See man page for details."; @@ -296,15 +296,17 @@ int main(int argc, char **argv) e_flag = 1; break; case 'f': + fprintf(stderr, "warning: The -f flag is moved to -p\n"); + case 'p': if (f_list == 0) { - f_list = malloc(strlen(" -f")+strlen(optarg)+1); - strcpy(f_list, " -f"); + f_list = malloc(strlen(" -p")+strlen(optarg)+1); + strcpy(f_list, " -p"); strcat(f_list, optarg); } else { f_list = realloc(f_list, strlen(f_list) + - strlen(" -f") + + strlen(" -p") + strlen(optarg) + 1); - strcat(f_list, " -f"); + strcat(f_list, " -p"); strcat(f_list, optarg); } break; @@ -518,6 +520,9 @@ int main(int argc, char **argv) /* * $Log: main.c,v $ + * Revision 1.7 2001/01/20 19:02:05 steve + * Switch hte -f flag to the -p flag. + * * Revision 1.6 2001/01/20 02:15:51 steve * apologize for not supporting non-constant delays. * diff --git a/examples/xnf_add.vl b/examples/xnf_add.vl index 7f7d65cc3..061e1be9e 100644 --- a/examples/xnf_add.vl +++ b/examples/xnf_add.vl @@ -25,7 +25,7 @@ * * To compile this for XNF, try a command like this: * - * iverilog -txnf -fpart=XC4010XLPQ160 -fncf=xnf_add.ncf -oxnf_add.xnf xnf_add.v + * iverilog -txnf -ppart=XC4010XLPQ160 -pncf=xnf_add.ncf -oxnf_add.xnf xnf_add.v * * That command causes an xnf_add.xnf and xnf_add.ncf file to be created. * Next, Use Xilinx Alliance or Foundation tools to make the xnf_add.ngd diff --git a/main.cc b/main.cc index ec6132e28..911cd4d0f 100644 --- a/main.cc +++ b/main.cc @@ -19,7 +19,7 @@ const char COPYRIGHT[] = * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #if !defined(WINNT) && !defined(macintosh) -#ident "$Id: main.cc,v 1.39 2000/11/22 20:48:32 steve Exp $" +#ident "$Id: main.cc,v 1.40 2001/01/20 19:02:05 steve Exp $" #endif const char NOTICE[] = @@ -130,7 +130,7 @@ int main(int argc, char*argv[]) min_typ_max_flag = TYP; min_typ_max_warn = 10; - while ((opt = getopt(argc, argv, "F:f:hm:N:o:P:s:T:t:vW:")) != EOF) switch (opt) { + while ((opt = getopt(argc, argv, "F:f:hm:N:o:P:p:s:T:t:vW:")) != EOF) switch (opt) { case 'F': { net_func tmp = name_to_net_func(optarg); if (tmp == 0) { @@ -160,6 +160,9 @@ int main(int argc, char*argv[]) case 'P': pf_path = optarg; break; + case 'p': + parm_to_flagmap(optarg); + break; case 's': start_module = optarg; break; @@ -327,6 +330,9 @@ int main(int argc, char*argv[]) /* * $Log: main.cc,v $ + * Revision 1.40 2001/01/20 19:02:05 steve + * Switch hte -f flag to the -p flag. + * * Revision 1.39 2000/11/22 20:48:32 steve * Allow sole module to be a root. *