Larry Doolittle
47d65034db
Spelling fixes
...
mostly comments, but includes some identifiers and message text
2008-01-27 18:18:13 -08:00
Larry Doolittle
8ea3b6b0b8
header includes for gcc-4.3 compatibility
...
minimal changes required to build without error
tested with gcc-4.3 (Debian 4.3-20071130-1) 4.3.0 20071130 (experimental)
2008-01-04 16:14:44 -08:00
Stephen Williams
4100ff71ef
Data type handling of module ports.
...
Fix data type handling of module ports. When ports are declared
as ports and given data types in different statements, the parser
incorrectly (and silently) dropped the intended data type for the
default LOGIC type.
2008-01-03 20:13:56 -08:00
Stephen Williams
7975e14b5c
LineInfo uses perm_string for path.
...
Rework the handling of file names to use a perm_string heap to hold
the file names, instead of the custom file name heap in the lexor.
Also rename the get_line to get_fileline to reflect its real duties.
This latter chage touched a lot of files.
2007-12-20 12:31:01 -05:00
Martin Whitaker
dd56dd1635
Correct naming of unnamed generate blocks.
...
This patch causes unnamed generate blocks to be automatically named
using the naming scheme defined in the Verilog-2005 standard. This
is a fix for the problem discussed in pr1821610.
2007-11-18 21:01:35 -08:00
Martin Whitaker
d6f6df829e
Fix for pr1828642.
...
This patch fixes a compiler bug that causes it to reject memory declarations
inside a generate statement.
2007-11-10 16:09:20 -08:00
Cary R
347ba8bc29
Comment out routines that pr1779647 made obsolete.
...
I decided not to delete these since we may at some point in time want
this functionality back. For now they are commented out with an
explanation so we know what is going on.
2007-08-30 19:00:07 -07:00
Cary R
b69c4c9a2c
Fix range handling/checking and add a flag to allow deprecated port syntax.
...
This patch is rather large and fixes a couple of problems. The major
change is that instead of keeping all the range specifications in
a list that is later processed the information is now kept as
individual entries for the port and net definitions. This allows
easier checking for multiple definitions (pr1660028), more
detailed error messages and the ability to pass the now deprecated
style of a scalar I/O definition used with a vectored net definition.
These changes did require extra code to prevent a single definition
from setting the range values in more than on place.
When using the new ANSI-C style of port declarations (1364-2001 12.3.4
list_of_port_declarations) the compiler ensures that you do not
redeclare the port in the body (it is already completely defined).
This caught a few errors in the test suite (pr859 and sqrt32*).
The flag to disable the normal port checking and allow the deprecated
port syntax is -gno-io-range-error. This will print a warning for the
case of a scalar port with a vectored definition in the body. All
other cases are still considered an error.
2007-08-29 18:10:18 -07:00
Cary R
ca924639a8
[PATCH] Better error message when an endmodule is missing (nested modules).
...
This patch adds better checking for a missing endmodule or an attempt
to nest modules. A more descriptive message is printed and the location
of the original module definition is printed.
2007-08-28 17:49:34 -07:00
Cary R
86e6817505
Fix missing warning when port is unsized.
...
This patch fixes an incorrect optimization that was skipping a
call to set the port width when there was no width (a scalar).
The problem with this is that since a (0,0) pair was not added
to the list, later when the width was define to (1,0) the checking
code did not have the (0,0) to tell that there was a mismatch in
the port size. Section 12.3.3 States that the two sizes shall be
identical, so yes this is an error even though it is very minor.
2007-08-17 11:48:47 -07:00
Stephen Williams
f46be09914
Initialize assignments of reals
...
Support initialization assignments of real value variables. In the
process, clean up the processing of real variable declarations in
the parser.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-08-04 21:50:06 -07:00
Stephen Williams
396ffd1cdd
Add support for conditional generate. In the process, fix bugs
...
related to generate used multiple times by multiple scopes causing
spurious generation results.
Signed-off-by: Stephen Williams <steve@icarus.com>
2007-06-21 19:04:48 -07:00
steve
8ec6d9983d
Put instantiated modules in the proper generated scope.
2007-06-12 04:05:45 +00:00
steve
c7d97f4146
Properly evaluate scope path expressions.
2007-06-02 03:42:12 +00:00
steve
ddd36ecb6c
Rework the heirarchical identifier parse syntax and pform
...
to handle more general combinations of heirarch and bit selects.
2007-05-24 04:07:11 +00:00
steve
b981c81d37
Rework hname_t to use perm_strings.
2007-04-26 03:06:21 +00:00
steve
f9c1c02f8d
Add support for -v flag in command file.
2007-04-19 02:52:53 +00:00
steve
f621448ced
Parse edge sensitive paths without edge specifier.
2007-04-13 02:34:35 +00:00
steve
f23a5bfa96
Make integer width controllable.
2007-03-07 04:24:59 +00:00
steve
e6fa72c318
Handle processes within generate loops.
2007-03-05 05:59:10 +00:00
steve
c1c2381261
Parse all specify paths to pform.
2007-02-12 01:52:21 +00:00
steve
2de8bafb5c
Fix padding of x when literal is sized and unsigned.
2007-01-27 05:36:11 +00:00
steve
91d84e7dc7
Major rework of array handling. Memories are replaced with the
...
more general concept of arrays. The NetMemory and NetEMemory
classes are removed from the ivl core program, and the IVL_LPM_RAM
lpm type is removed from the ivl_target API.
2007-01-16 05:44:14 +00:00
steve
0edb5a7547
Basic support for specify timing.
2006-09-23 04:57:19 +00:00
steve
fc0695beb6
Handle 64bit delay constants.
2006-08-08 05:11:37 +00:00
steve
f001d0001a
Add support for generate loops w/ wires and gates.
2006-04-10 00:37:42 +00:00
steve
77a0d7f4db
task/function ports can have types.
2006-03-30 05:22:34 +00:00
steve
b9799cf6ec
Remove NetVariable and ivl_variable_t structures.
2005-07-11 16:56:50 +00:00
steve
75ad90534b
Generalize signals to carry types.
2005-07-07 16:22:49 +00:00
steve
d548c9a5f8
Handle synthesis of concatenation expressions.
2005-05-06 00:25:13 +00:00
steve
65e9b6be12
Rework of internals to carry vectors through nexus instead
...
of single bits. Make the ivl, tgt-vvp and vvp initial changes
down this path.
2004-12-11 02:31:25 +00:00
steve
e4ae832153
Clean up spurious trailing white space.
2004-10-04 01:10:51 +00:00
steve
95c8115fc7
Add support for localparam ranges.
2004-08-26 04:02:03 +00:00
steve
9949040285
Add support for the default_nettype directive.
2004-06-13 04:56:53 +00:00
steve
5472b27e1f
Rewire/generalize parsing an elaboration of
...
function return values to allow for better
speed and more type support.
2004-05-31 23:34:36 +00:00
steve
e7fa56981a
More identifier lists use perm_strings.
2004-05-25 19:21:06 +00:00
steve
413932e406
Verilog2001 new style port declartions for primitives.
2004-03-08 00:10:29 +00:00
steve
177b6ffb6a
Addtrbute keys are perm_strings.
2004-02-20 18:53:33 +00:00
steve
1295058e5d
parameter keys are per_strings.
2004-02-20 06:22:56 +00:00
steve
536068bdfb
Memory and Event names use perm_string.
2004-02-19 06:57:10 +00:00
steve
27af95d402
Use perm_strings for named langiage items.
2004-02-18 17:11:54 +00:00
steve
4288f3c6d0
Better error checking of primitive tables.
2004-02-15 17:48:28 +00:00
steve
5b351599f0
Allow attributes on Verilog 2001 port declarations.
2003-07-04 03:57:18 +00:00
steve
21ff80075a
Various warnings fixed.
2003-06-24 01:38:02 +00:00
steve
ccf4d4d7da
Module attributes from the parser
...
through to elaborated form.
2003-06-20 00:53:19 +00:00
steve
3ef65d1298
Properly manage real variables in subscopes.
2003-06-13 19:10:45 +00:00
steve
dc90f0d52d
Task/functions can have signed ports.
2003-06-13 00:27:09 +00:00
steve
cb0a9b254e
More 2001 port declaration support.
2003-04-28 17:50:57 +00:00
steve
561a268c9c
Break sized constants into a size token
...
and a based numeric constant.
2003-04-14 03:37:47 +00:00
steve
658706ad8b
lex_strings.add module names earlier.
2003-03-06 04:37:12 +00:00
steve
4c67de5ca7
Add the lex_strings string handler, and put
...
scope names and system task/function names
into this table. Also, permallocate event
names from the beginning.
2003-03-01 06:25:30 +00:00
steve
e58030498f
specparams as far as pform.
2003-02-27 06:45:11 +00:00
steve
9adbdcb7c5
Add support for signed ports and nets.
2003-02-02 19:02:39 +00:00
steve
46253ed873
Rework expression parsing and elaboration to
...
accommodate real/realtime values and expressions.
2003-01-26 21:15:58 +00:00
steve
ad6ff5562d
Missed a case of setting line on an PEident.
2003-01-17 05:47:30 +00:00
steve
3c1426e631
Detect duplicate module declarations.
2003-01-16 21:44:19 +00:00
steve
f56d763411
Move strstream to ostringstream for compatibility.
2003-01-14 21:16:18 +00:00
steve
4a3459c87c
Spelling fixes.
2003-01-10 03:08:13 +00:00
steve
7e1e44e87a
Properly cast signedness of parameters with ranges.
2002-09-01 03:01:48 +00:00
steve
4de141ab1d
Support parameters with defined ranges.
2002-08-19 02:39:16 +00:00
steve
52bf4e613f
conditional ident string using autoconfig.
2002-08-12 01:34:58 +00:00
steve
5eca5d9948
Carry integerness throughout the compilation.
2002-06-21 04:59:35 +00:00
steve
bfad382fd1
Carry Verilog 2001 attributes with processes,
...
all the way through to the ivl_target API.
Divide signal reference counts between rval
and lval references.
2002-05-26 01:39:02 +00:00
steve
700887d657
Verilog 2001 attriubtes on nets/wires.
2002-05-24 04:36:23 +00:00
steve
e6c0629626
Add language support for Verilog-2001 attribute
...
syntax. Hook this support into existing $attribute
handling, and add number and void value types.
Add to the ivl_target API new functions for access
of complex attributes attached to gates.
2002-05-23 03:08:50 +00:00
steve
74c219f171
Add ranges and signed to port list declarations.
2002-05-20 02:06:01 +00:00
steve
bf10c5762a
Parse port_declaration_lists from the 2001 Standard.
2002-05-19 23:37:28 +00:00
steve
76b5d7e9e1
Fix first_file test for timescale warning.
2002-04-18 18:38:37 +00:00
steve
0ab42597d9
Timescale warnings.
2002-04-15 00:04:22 +00:00
steve
f7f61a8696
Detect mismatches in reg as module items and ports.
2002-04-12 02:57:08 +00:00
steve
a624021a2e
Detect duplicate port declarations.
2002-01-31 04:10:15 +00:00
steve
712080f7e0
Detect scalar/vector declarion mismatch.
2002-01-26 05:28:28 +00:00
steve
361d4f2147
Drive strengths for continuous assignments.
2002-01-12 04:03:39 +00:00
steve
c200c0c20e
Support integer for function return value.
2001-12-07 05:03:13 +00:00
steve
ab6c8cb4b8
Parser and pform use hierarchical names as hname_t
...
objects instead of encoded strings.
2001-12-03 04:47:14 +00:00
steve
65f835f3eb
Properly parse net_decl assignments with delays.
2001-11-29 17:37:51 +00:00
steve
4d0b840c26
Coerse input to inout when assigned to.
2001-11-10 02:08:49 +00:00
steve
faa3a62259
detect module ports not declared within the module.
2001-10-31 03:11:15 +00:00
steve
467ecf5b33
Error messages for missing UDP port declarations.
2001-10-21 01:55:24 +00:00
steve
9f3e64e11a
Module types in pform are char* instead of string.
2001-10-21 00:42:47 +00:00
steve
6466d02eda
Add automatic module libraries.
2001-10-20 23:02:39 +00:00
steve
7a149a6943
Scope/module names are char* instead of string.
2001-10-20 05:21:51 +00:00
steve
b825f8d2b2
Create a config.h.in file to hold all the config
...
junk, and support gcc 3.0. (Stephan Boettcher)
2001-07-25 03:10:48 +00:00
steve
b79da2c4d6
Detect input and input ports declared as reg.
2001-05-25 02:21:34 +00:00
steve
d4b2958e50
Deleted wrong time when -Tmax is selected.
2001-05-20 15:03:25 +00:00
steve
9bb2cee686
UDP instances need not have user supplied names.
2001-04-28 23:18:08 +00:00
steve
84c7795d16
Allow task ports to be given real types.
2001-02-17 05:15:33 +00:00
steve
a00924089d
Pass scope type information to the target module.
2001-01-15 00:47:01 +00:00
steve
219df169a3
Generalize the evaluation of floating point delays, and
...
get it working with delay assignment statements.
Allow parameters to be referenced by hierarchical name.
2001-01-14 23:04:55 +00:00
steve
246f2d5884
Match memories within task scopes. (PR#101)
2001-01-10 05:32:44 +00:00
steve
cc18d065aa
declaration initialization for time variables.
2001-01-06 06:31:58 +00:00
steve
68e672e61a
Support arrays of integers.
2001-01-06 02:29:35 +00:00
steve
5dbea64759
Add support for signed reg variables,
...
simulate in t-vvm signed comparisons.
2000-12-11 00:31:43 +00:00
steve
ef49fc127f
Change LineInfo to store const C strings.
2000-11-30 17:31:42 +00:00
steve
3591e06c4e
Support time variables.
2000-10-31 17:49:02 +00:00
steve
88c8547486
Remove C++ string from variable lists.
2000-10-31 17:00:04 +00:00
steve
67472379b4
Error message for invalid variable list.
2000-09-13 16:32:26 +00:00
steve
30a81731dd
Introduce min:typ:max support.
2000-07-29 17:58:20 +00:00
steve
286cef19fb
Parse and elaborate timescale to scopes.
2000-07-22 22:09:03 +00:00
steve
8fc2dc2cd1
Better parsing of expressions lists will empty expressoins.
2000-05-23 16:03:13 +00:00