Cary R
603ca0f2de
Add better error recovery for failed task/function definition.
...
This patch does a better job of recovering from an error in a
task or function definition. This prevents the compiler from
printing many irrelevant error messages.
2008-04-27 21:30:23 -07:00
Cary R
efba4bfd09
Allow multiple ports in single ANSI decl for tasks and functions
...
This patch adds the functionality to tasks/functions to handle the
declaration of multiple ports using a single ANSI declaration. It
also deletes the old range vector before it adds the new one. The
tasks and functions are different than modules so we need to copy
the range for them.
2008-04-27 21:26:17 -07:00
thiede
33466250f5
Support localparam integer types.
...
Support localparam integer types exactly the same way that they
are handled for parameters. (This patch was submitted to pr1946144.)
2008-04-18 21:54:25 -07:00
Stephen Williams
bdab7698d2
User defined functions can have ANSI-style ports
...
Update the rules for parsing user function definitions to allow
Verilog-2001 ANSI style port declarations. In the process, also
unify with the user task port declaration so that the types don't
diverge. The rules are the same for both, with the extra constraint
that function ports must all be input. This latter rule is checked
later, during elaboration, so that the task/function pform code
can be shared, and better error messages can be generated.
2008-04-18 21:33:03 -07:00
Cary R
b5b5a9935c
Fix malloc/free and new/delete problems, plus some initializations.
...
This patch fixes some allocation problems (mostly in the parser
and lexor relating to identifiers). It also fixes a couple places
where uninitialized variables were used. All found with valgrind.
There are still 100 tests that have problems. Many of these appear
to be related.
2008-03-27 20:58:16 -07:00
Cary R
c2bae1ad6c
Fix a small bug in the extra digits warning.
...
There were a couple places where a normal decimal number was
accidentally setting the base for an unsized number. This is
only a warning problem.
2008-03-06 20:42:07 -08:00
Stephen Williams
32a2e7aa39
Fix lexical scopes within case-generate alternatives.
...
Case-generate alternatives create sub-scopes that need to be scanned
by the scope scanner in order to get function definitions etc. that
are defined lexically within generated scopes.
2008-03-02 21:04:04 -08:00
Stephen Williams
8e704cbf93
Rework handling of lexical scope
...
Move the storage of wires (signals) out of the Module class into
the PScope base class, and instead of putting the PWires all into
the Module object, distribute them into the various lexical scopes
(derived from PScope) so that the wire names do not need to carry
scope information.
This required some rewiring of elaboration of signals, and rewriting
of lexical scope handling.
2008-02-24 19:40:54 -08:00
Stephen Williams
b0e4a6884a
Objects of lexical scope use PScope base class.
...
All the pform objects that represent lexical scope now are derived
from the PScope class, and are kept in a lexical_scope table so that
the scope can be managed.
2008-02-15 21:20:24 -08:00
Stephen Williams
3f2fa29482
Factor compile-time scopes into PScope class
...
Modules, functions and tasks are named scopes so derive them all
from the PScope base class. These items all take scoped items, so
the eventual plan is to move these items into PScope.
2008-02-13 19:59:05 -08:00
Stephen Williams
bc1d3eb7cd
Add support for generate case
...
Generate case is a complex generate scheme where the items are
sub-schemes of the case generate itself. The parser handles them
something like nested generate statements, but storing the case
guards as the test expression. Then the elaborator notes the
case scheme and reaches into the case item schemes inside to make
up tests, select the generate item, and elaborate.
2008-02-09 22:19:42 -08:00
Larry Doolittle
d9ac146b8f
Spelling fixes
...
only comments and documentation
some punctuation and capitalization for good measure
Changelogs are purposefully untouched
2008-01-29 20:24:24 -08:00
Larry Doolittle
47d65034db
Spelling fixes
...
mostly comments, but includes some identifiers and message text
2008-01-27 18:18:13 -08:00
Cary R
7157a68d08
Edge-control does not require conditional event
...
This patch allows the edge control to be used without a
conditional event.
2008-01-11 14:24:52 -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
Cary R
ef1739dbec
Add better error reporting for port declarations.
...
Add an error message for NULL port declarations and for a ';'
that could be left over from building a port declaration from
an old style declaration.
2007-12-29 17:55:53 -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
Cary R
937397b24c
Do not use the error token to get file/line number information.
...
Using the parser supplied error token to get file and line number
information appears to give incorrect results at best and core dump
at worst. This patch uses the closest real token that makes sense
to alleviate this problem.
2007-12-05 18:50:54 -08:00
Cary R
82b1fcbef4
Make min/typ/max default warning message universal.
...
The min/typ/max default warning was not being produced in all
locations a min/typ/max expression could be used. This patch
adds the default warning code to all locations. It also
modifies the manual page to explicitly state that only the
first ten warnings are printed.
2007-11-21 19:33:42 -08:00
Cary R
5a88cb5c01
Remove shift/reduce problems from dimensions patch.
...
This patch needs to be applied after the dimensions checking patch
to remove the shift/reduce errors it created.
2007-11-14 19:42:47 -08:00
Cary R
0d5808dd92
Display an error for currently invalid number of array dimensions.
...
Most types in Icarus support a single array dimension (reals do
not support arrays at all). If you try to use an invalid number
of dimensions the parser will now display an error message.
2007-11-14 19:42:25 -08:00
Cary R
676695c78f
Check for extra digits in sized binary, octal and hex constants.
...
Print out a warning if extra digits are given for sized binary, octal
or hex constants. Decimal constants are very hard since we never
calculate the true number of bits the digits represent, so for now
decimal constants are not checked.
2007-10-18 10:12:20 -07:00
Cary R
954579f250
Add min_typ_max to expressions.
...
This patch adds min_typ_max to expressions. Remember when using a
min_typ_max triplet in an expression they must be enclosed with
parenthesis (1364-2001 section 4.3 page 58).
2007-09-17 10:53:05 -07:00
Cary R
3fda7e323a
Relax the requirement on list of port declarations for implicit ports.
...
Previously list of port declarations were considered a complete
definition of the port. This caused problems for some, so this patch
allows implicitly defined ports (no wire/reg/etc.) to have net
declarations in the body.
2007-08-29 18:38:36 -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
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
87e813766a
Detect and ignore specify edge expressions
2007-06-14 03:50:00 +00:00
steve
129a064e1a
Handle bit/part select of array words in nets.
2007-06-04 02:19:07 +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
f6ad90f8d3
Rename assign_list to cont_assign_list.
2007-04-21 04:45:36 +00:00
steve
f621448ced
Parse edge sensitive paths without edge specifier.
2007-04-13 02:34:35 +00:00
steve
37111eb4a8
Tighter parsing of statement lists and expression lists.
2007-04-01 23:02:03 +00:00
steve
611d2c81b3
Spelling fixes from Larry
2007-03-22 16:08:14 +00:00
steve
f23a5bfa96
Make integer width controllable.
2007-03-07 04:24:59 +00:00
steve
760f2182ba
Support signed function return values.
2007-03-06 05:22:49 +00:00
steve
243cf94165
Add support for conditional specify delay paths.
2007-03-01 06:19:38 +00:00
steve
bb02da0319
Better error message around repeat concatenation syntax.
2007-02-27 06:10:16 +00:00
steve
189532c5bf
Hande specparam with min/myp/max values.
2007-02-13 04:39:25 +00:00
steve
c1c2381261
Parse all specify paths to pform.
2007-02-12 01:52:21 +00:00
steve
cfe2198e5e
Types of task/function arguments set in multiple steps.
2007-01-29 02:07:34 +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
078019ddec
Parse the case of module arrays with port binding by name.
2006-12-06 05:32:36 +00:00
steve
b4c3e8208f
Parse bit selects in $setuphold notifiers.
2006-12-03 04:46:51 +00:00
steve
2302693201
Expression widths with unsized literals are pseudo-infinite width.
2006-10-30 05:44:49 +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
49b65e86fe
Add support for power in constant expressions.
2006-07-31 03:50:17 +00:00
steve
aaaa042f73
Add port list format for task arguments.
2006-05-11 03:26:57 +00:00
steve
c2ff3d501c
Fix support for indexed part select in continuous assign l-values.
2006-04-24 05:15:07 +00:00
steve
4dd1308eb0
Parse specify ifnone statements.
2006-04-17 04:35:49 +00:00
steve
707af782b3
Fix part selects in l-values.
2006-04-16 00:15:43 +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
276f2d0032
Accept attributes in front of module instantiations.
2006-03-25 02:42:58 +00:00
steve
f4a44df2cc
Support more parameter syntax.
2006-03-18 22:53:38 +00:00
steve
d434dd7296
Allow part selects of memory words in l-values.
2006-02-02 02:43:57 +00:00
steve
1021e5acc8
Fixes for stubborn compilers.
2005-12-05 21:21:18 +00:00
steve
c02b3b8ac6
Reorganize signal part select handling, and add support for
...
indexed part selects.
Expand expression constant propagation to eliminate extra
sums in certain cases.
2005-11-10 13:28:11 +00:00
steve
a652719876
Add support for indexed select attached to parameters.
2005-10-04 04:09:25 +00:00
steve
8232b621f1
Fix parse errors related to pr766.
2005-07-27 14:54:51 +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
f7dc4307bd
Fix duplicate delete from pr1073.
2005-02-19 16:44:38 +00:00
steve
e4ae832153
Clean up spurious trailing white space.
2004-10-04 01:10:51 +00:00
steve
8dfe16f6d2
Parse attributes attached to reg declarations.
2004-09-14 18:24:56 +00:00
steve
1ab8879100
Fix syntax for $period to allow min:Ltyp:max expressions.
2004-09-05 21:01:51 +00:00
steve
2d498363d7
Handle instance array of port-less modules.
2004-09-05 18:09:47 +00:00
steve
95c8115fc7
Add support for localparam ranges.
2004-08-26 04:02:03 +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
559f73c135
Attach line numbers to wait statements.
2004-05-25 03:42:44 +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
27af95d402
Use perm_strings for named langiage items.
2004-02-18 17:11:54 +00:00
steve
d64295ed65
primitives support reg output name syntax.
2004-02-15 17:48:16 +00:00
steve
3bb408faf2
Add support for initialization assign in port list declaration of reg.
2004-01-21 03:37:12 +00:00
steve
1970e41041
Get value for vpoiConstType correct.
2004-01-13 02:55:50 +00:00
steve
5b0c7be6b7
Add ANSI style parameter port declarations.
2003-12-19 05:15:04 +00:00
steve
2e6cfd8c0d
min:typ:max delay values in specify statements.
2003-09-21 21:16:05 +00:00
steve
fdb5731b8b
Add $recrem to specify syntax.
2003-08-31 21:14:28 +00:00
steve
14150d6fba
ifdef idents correctly.
2003-08-26 16:26:01 +00:00
steve
5b351599f0
Allow attributes on Verilog 2001 port declarations.
2003-07-04 03:57:18 +00:00
steve
ccf4d4d7da
Module attributes from the parser
...
through to elaborated form.
2003-06-20 00:53:19 +00:00
steve
cc5f7a64b0
Add attributes to modules.
2003-06-19 18:54:49 +00:00
steve
71a404a546
Add arithmetic shift operators.
2003-06-18 03:55:18 +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
58f6755fa7
Ansi port declaration can take a list.
2003-04-25 02:28:53 +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
20c0d8f3ba
Add bx support for udps.
2003-03-18 01:36:14 +00:00
steve
e58030498f
specparams as far as pform.
2003-02-27 06:45:11 +00:00
steve
26b755d544
Fix handling of inline decloration without wire keyword.
2003-02-07 23:16:09 +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
982474899b
Set proper line text for later bison.
2003-01-17 05:48:02 +00:00
steve
cca07fa42d
Account for bison 1.35 and stack manipulations.
2002-12-10 05:49:51 +00:00
steve
e62e1d89b6
Named event triggers can take hierarchical names.
2002-12-07 02:49:24 +00:00
steve
8604f922a5
specify delay can take an unbracketed simple value.
2002-11-26 03:56:10 +00:00
steve
b9188ad0ca
PATHPULSE specparam assignment syntax.
2002-11-21 17:40:11 +00:00
steve
e34e3a4875
spelling in a comment.
2002-11-09 02:22:07 +00:00
steve
86032c0aa5
Allow named events to be referenced by
...
hierarchical names.
2002-11-02 03:27:51 +00:00
steve
c0c67a101a
Fix spelling of the scalared keyword.
2002-10-13 05:01:44 +00:00
steve
8fbacc966e
compile error.
2002-09-16 00:28:51 +00:00
steve
dac99b9374
Add support for binary nand operator.
2002-09-12 15:49:43 +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
5eca5d9948
Carry integerness throughout the compilation.
2002-06-21 04:59:35 +00:00
steve
0bbea355c2
More specify syntax.
2002-06-11 13:58:04 +00:00
steve
d6c946f390
Spelling patch (Larry Doolittle)
2002-06-11 03:34:33 +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
9dda15a186
implement nex_input for behavioral statements.
2002-04-21 17:43:12 +00:00
steve
b094bbdcf4
Add support for conbinational events by finding
...
the inputs to expressions and some statements.
Get case and assignment statements working.
2002-04-21 04:59:07 +00:00
steve
f7f61a8696
Detect mismatches in reg as module items and ports.
2002-04-12 02:57:08 +00:00
steve
65159a2733
Update for newer bison.
2002-03-31 04:06:49 +00:00
steve
853c1f4387
Detect incorrect function ports.
2002-01-23 03:35:17 +00:00
steve
361d4f2147
Drive strengths for continuous assignments.
2002-01-12 04:03:39 +00:00
steve
912749342c
Parse combinational event delay.
2001-12-31 05:23:13 +00:00
steve
03aebd7525
Support elaborate_net for PEString objects.
2001-12-30 21:32:03 +00:00
steve
4dd5f97a96
Parse and handle drive strengths of gates to vvp.
2001-12-14 02:05:13 +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
33c7c47f73
Handle index identifiers in simple paths.
2001-12-01 02:42:39 +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
0c4bea473c
Parse specparam parsepulse assignments.
2001-11-06 02:52:19 +00:00
steve
b624b6002e
Parse more [gosh darn] specify syntax.
2001-11-03 04:09:10 +00:00
steve
faa3a62259
detect module ports not declared within the module.
2001-10-31 03:11:15 +00:00
steve
8c9e0bafa9
more specify syntax (Stehpan Boettcher)
2001-10-26 03:22:56 +00:00
steve
467ecf5b33
Error messages for missing UDP port declarations.
2001-10-21 01:55:24 +00:00
steve
393a76d57a
threshold of $width is optional.
2001-10-14 02:03:51 +00:00
steve
3734b5e7f1
spec reference events can be identifiers.
2001-10-09 18:11:58 +00:00
steve
c507379f09
Handle more path polarity cases.
2001-08-31 21:08:35 +00:00
steve
47031767fa
Parse $setuphold statements.
2001-08-31 17:38:41 +00:00
steve
8654412844
lsb vs msb in error message.
2001-07-28 22:00:27 +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
7eab75ded1
Parse a lot more specify syntax.
2001-07-01 23:44:43 +00:00
steve
c3960f8e6a
Support macromodule as module.
2001-06-23 00:31:06 +00:00
steve
e40efec4bd
Add more UDP edge types, and finish up compile
...
and run-time support. (Stephan Boettcher)
2001-06-18 00:51:23 +00:00
steve
3ca55bf327
Better handling of module item errors.
2001-04-29 20:18:34 +00:00
steve
4f3bdd9f38
Accept single strengths for pullup and pulldown.
2001-04-28 22:56:15 +00:00
steve
c97692d715
Generate code for disable.
2001-04-21 00:55:46 +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
02fc59fbdf
Parse parameters within nested scopes.
2001-01-13 22:20:08 +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
c9881c115a
Spelling error.
2000-12-16 17:16:08 +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
084a464cf1
Support decimal constants in behavioral delays.
2000-12-10 22:01:35 +00:00
steve
f6507cba43
Check lvalue of procedural continuous assign (PR#29)
2000-12-06 06:31:09 +00:00
steve
789e862ca4
parse real and realtime declarations.
2000-12-05 22:32:05 +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
f526d235d1
Check for missing concat subexpressions (PR#11)
2000-10-14 02:23:02 +00:00
steve
3a2eff2265
Parse specify delay values.
2000-09-23 03:04:10 +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
739365abe5
Parse disable statements to pform.
2000-07-26 05:08:07 +00:00
steve
18eb34921f
Add support for non-constant delays in delay statements,
...
Support evaluating ! in constant expressions, and
move some code from netlist.cc to net_proc.cc.
2000-07-07 04:53:53 +00:00
steve
056a3f7220
Allow unary operators in constant expressions.
2000-06-30 15:50:20 +00:00
steve
042724612e
Handle delay_value_lists in simple paths. (Wen-jung Tseng)
2000-06-27 16:00:40 +00:00
steve
14d87e3e11
Typo saving third delay value in list.
2000-05-31 01:31:52 +00:00
steve
8fc2dc2cd1
Better parsing of expressions lists will empty expressoins.
2000-05-23 16:03:13 +00:00
steve
3676d66408
Module ports are really special PEIdent
...
expressions, because a name can be used
many places in the port list.
2000-05-16 04:05:15 +00:00
steve
367db72c99
Add support for procedural continuous assignment.
2000-05-11 23:37:26 +00:00
steve
de1a7a0933
Deliver gate output strengths to the netlist.
2000-05-08 05:30:19 +00:00
steve
ca2fd41bb6
Carry assignment strength to pform.
2000-05-06 15:41:56 +00:00
steve
fbe475ef7d
Add infrastructure for system functions, move
...
$time to that structure and add $random.
2000-05-04 03:37:58 +00:00
steve
44838f8973
Add support for force assignment.
2000-04-22 04:20:19 +00:00
steve
23725cf42c
Catch bad operand to some unary operators.
2000-04-21 03:22:18 +00:00
steve
7484feceb5
fork-join support in vvm.
2000-04-15 19:51:30 +00:00
steve
b1fd927acb
Named events really should be expressed with PEIdent
...
objects in the pform,
Handle named events within the mix of net events
and edges. As a unified lot they get caught together.
wait statements are broken into more complex statements
that include a conditional.
Do not generate NetPEvent or NetNEvent objects in
elaboration. NetEvent, NetEvWait and NetEvProbe
take over those functions in the netlist.
2000-04-12 04:23:57 +00:00
steve
67bdd433a9
Detect the signed keyword.
2000-04-02 04:25:39 +00:00
steve
2dd010dc04
Named events as far as the pform.
2000-04-01 19:31:57 +00:00
steve
6eef54595f
Support localparam.
2000-03-12 17:09:40 +00:00
steve
e7efc2709a
Redesign the implementation of scopes and parameters.
...
I now generate the scopes and notice the parameters
in a separate pass over the pform. Once the scopes
are generated, I can process overrides and evalutate
paremeters before elaboration begins.
2000-03-08 04:36:53 +00:00
steve
1698a19cf6
Parse all the various edge types.
2000-03-05 18:26:51 +00:00
steve
b734ecf02f
Macintosh compilers do not support ident.
2000-02-23 02:56:53 +00:00
steve
2de887c2ff
Support named parameter override lists.
2000-01-09 05:50:48 +00:00
steve
645c24289e
Handle general constant expressions in delays.
2000-01-02 01:59:52 +00:00
steve
7e37b61a05
Fix module parameter override syntax.
2000-01-01 23:47:58 +00:00
steve
31f1ceea9f
delay1 expressions can take parentheses.
1999-12-31 17:39:00 +00:00
steve
5ce35e3e60
Fix event trigger and repeat control parse errors.
1999-12-31 03:24:30 +00:00
steve
6d0edcf58a
Support reg initial assignment syntax.
1999-12-30 19:06:14 +00:00
steve
a4a0ba670d
Allow qualified identifiers. They really do work.
1999-11-15 04:43:52 +00:00
steve
f7526c6c4b
parse drive strengths.
1999-11-05 19:36:36 +00:00
steve
2fb754cd54
Parse empty source files.
1999-10-15 05:03:33 +00:00
steve
c63a3acf93
Elaborate ~^ and ~| operators.
1999-09-30 02:43:01 +00:00
steve
b37fcf3593
Handle declaration of integers (including scope) in functions.
1999-09-30 01:22:37 +00:00
steve
076cecb6cd
Handle null returns from function_item
1999-09-30 00:48:04 +00:00
steve
5ee7cfb854
Fix shift/reduce warnings and ?:. (dhn@qedinc.com)
1999-09-29 22:56:31 +00:00
steve
93f05306e7
Standardize error/sorry messages.
1999-09-29 21:16:32 +00:00
steve
a64a33e65a
Full case support
1999-09-29 18:36:02 +00:00
steve
bb38653654
Parse system function calls.
1999-09-25 02:57:29 +00:00
steve
12b9071f49
Parse and elaborate named for/join blocks.
1999-09-22 04:30:04 +00:00
steve
da4a7ea80a
assignment with blocking event delay.
1999-09-22 02:00:48 +00:00
steve
424e6a750c
Handle unconnected module ports.
1999-09-17 02:06:25 +00:00
steve
287d21f300
Handle integers at task parameters.
1999-09-10 05:02:09 +00:00
steve
6fb7120158
Parse non-blocking assignment delays.
1999-09-02 01:59:27 +00:00
steve
3017636c05
continuous assignment lists.
1999-08-27 15:08:37 +00:00
steve
23acca48ff
elaborate some aspects of functions.
1999-08-25 22:22:41 +00:00
steve
9eae940ebd
Parameter overrides support from Peter Monta
...
AND and XOR support wide expressions.
1999-08-23 16:48:39 +00:00
steve
0fdc7657ef
Fix handling of port name when . notation is used.
1999-08-03 04:48:51 +00:00
steve
5f10342f52
Parse into pform arbitrarily complex module
...
port declarations.
1999-08-03 04:14:49 +00:00
steve
4b057c2d93
Get gat names, instead of the first character.
1999-08-01 23:25:51 +00:00
steve
71d35f32b2
Parse and elaborate rise/fall/decay times
...
for gates, and handle the rules for partial
lists of times.
1999-08-01 16:34:50 +00:00
steve
e0a988bf7e
Add functions up to elaboration (Ed Carter)
1999-07-31 19:14:47 +00:00
steve
55654db9df
quietly ignore specify code.
1999-07-28 03:47:24 +00:00
steve
93a77a2efd
Elaborate task input ports.
1999-07-24 02:11:19 +00:00
steve
6852a62e5a
procedural blocking assignment delays.
1999-07-12 00:59:36 +00:00
steve
c8d13d7a1c
Support concatenate in l-values.
1999-07-10 02:19:26 +00:00
steve
46df679fc5
remove string from lexical phase.
1999-07-10 01:03:18 +00:00
steve
3ff6912bdd
Elaborate user defined tasks.
1999-07-03 02:12:51 +00:00
steve
11b2b1740a
Handle expression widths for EEE and NEE operators,
...
add named blocks and scope handling,
add registers declared in named blocks.
1999-06-24 04:24:18 +00:00
steve
853ad247a1
Elaborate and supprort to vvm the forever
...
and repeat statements.
1999-06-19 21:06:16 +00:00
steve
c01399fcda
Parse some more specify syntax.
1999-06-19 03:21:21 +00:00
steve
37b60a4c52
Clean up interface of the PWire class,
...
Properly match wire ranges.
1999-06-17 05:34:42 +00:00
steve
add2803267
More syntax parse with sorry stubs.
1999-06-16 03:13:29 +00:00
steve
fabb146342
Support case expression lists.
1999-06-15 05:38:39 +00:00
steve
430d7b22e4
Add lexical support for real numbers.
1999-06-15 02:50:02 +00:00
steve
0d210c90e5
More unary operators.
1999-06-13 17:30:23 +00:00
steve
a22e43cb7a
Handle part selects as l-values to continuous assign.
1999-06-12 23:16:37 +00:00
steve
29da349106
parse more verilog.
1999-06-12 20:35:27 +00:00
steve
63627de7fa
More parseable syntax.
1999-06-12 03:42:57 +00:00
steve
fdaae4aa2a
Forgot to return th for statement object.
1999-06-10 05:33:12 +00:00
steve
7c2cf8b2fa
Add support for the Ternary operator,
...
Add support for repeat concatenation,
Correct some seg faults cause by elaboration
errors,
Parse the casex anc casez statements.
1999-06-10 04:03:52 +00:00
steve
1464851e0e
Add support for procedural concatenation expression.
1999-06-09 03:00:05 +00:00
steve
7605a7b1f0
Add parse and elaboration of non-blocking assignments,
...
Replace list<PCase::Item*> with an svector version,
Add integer support.
1999-06-06 20:45:38 +00:00
steve
f3a91a10b3
Line information with nets.
1999-06-02 15:38:46 +00:00
steve
2a85ee5059
Net declaration assignments.
1999-06-02 02:56:29 +00:00
steve
0ca5a282e5
parse functions and tasks and delay value lists.
1999-05-30 03:12:56 +00:00
steve
35893919e0
module parameter bind by name.
1999-05-29 02:36:17 +00:00
steve
c1dbb56b70
Line number information.
1999-05-27 03:31:29 +00:00
steve
0352864470
Much expression parsing work,
...
mark continuous assigns with source line info,
replace some assertion failures with Sorry messages.
1999-05-20 04:31:45 +00:00
steve
10ffaeda90
Redo constant expression detection to happen
...
after parsing.
Parse more operators and expressions.
1999-05-16 05:08:42 +00:00
steve
5de9b7c9f1
Parse and elaborate the concatenate operator
...
in structural contexts, Replace vector<PExpr*>
and list<PExpr*> with svector<PExpr*>, evaluate
constant expressions with parameters, handle
memories as lvalues.
Parse task declarations, integer types.
1999-05-10 00:16:57 +00:00
steve
6625ea71c2
Parse more things.
1999-05-08 20:19:20 +00:00
steve
8e73ff2376
Parse more complex continuous assign lvalues.
1999-05-07 04:26:49 +00:00
steve
a568e526c6
Get rid of list<lgate> types.
1999-05-06 04:37:17 +00:00
steve
b2b9097488
Parse more constant expressions.
1999-05-06 04:09:28 +00:00
steve
10f46dae66
More intelligent selection of module to elaborate.
1999-05-05 03:27:14 +00:00
steve
41f9a84a4b
Handle much more complex event expressions.
1999-05-01 02:57:52 +00:00
steve
ce49708442
Parse OR of event expressions.
1999-04-29 02:16:26 +00:00
steve
5895d3c98d
Add memories to the parse and elaboration phases.
1999-04-19 01:59:36 +00:00
steve
bd40e5dfe1
Support sized decimal numbers,
...
Fix operator precedence order.
1999-03-16 04:44:45 +00:00
steve
b7f833dd71
Support more operators, especially logical.
1999-03-15 02:43:32 +00:00
steve
e2a37a8ccd
Add support for module parameters.
1999-02-21 17:01:57 +00:00
steve
e5f5f41515
Elaborate gate ranges.
1999-02-15 02:06:15 +00:00
steve
8bdd381cdf
Parse and elaborate the Verilog CASE statement.
1999-02-03 04:20:11 +00:00
steve
fb439c78b9
Add the LineInfo class to carry the source file
...
location of things. PGate, Statement and PProcess.
elaborate handles module parameter mismatches,
missing or incorrect lvalues for procedural
assignment, and errors are propogated to the
top of the elaboration call tree.
Attach line numbers to processes, gates and
assignment statements.
1999-01-25 05:45:56 +00:00
steve
2c1df3e6f7
Parse more UDP input edge descriptions.
1998-12-18 05:16:25 +00:00
steve
10b345bd16
Fully elaborate Sequential UDP behavior.
1998-12-14 02:01:34 +00:00
steve
e097c999d5
Elaborate UDP devices,
...
Support UDP type attributes, and
pass those attributes to nodes that
are instantiated by elaboration,
Put modules into a map instead of
a simple list.
1998-12-01 00:42:13 +00:00
steve
91aad30e1f
Parse UDP primitives all the way to pform.
1998-11-25 02:35:53 +00:00
steve
af8d6fbf01
NetAssign handles lvalues as pin links
...
instead of a signal pointer,
Wire attributes added,
Ability to parse UDP descriptions added,
XNF generates EXT records for signals with
the PAD attribute.
1998-11-23 00:20:22 +00:00
steve
6b2fa19429
Handle while loops.
1998-11-11 03:13:04 +00:00
steve
d27f260bc1
Check net ranges in declarations.
1998-11-11 00:01:51 +00:00
steve
ebad845fc3
Add procedural while loops,
...
Parse procedural for loops,
Add procedural wait statements,
Add constant nodes,
Add XNOR logic gate,
Make vvm output look a bit prettier.
1998-11-09 18:55:33 +00:00
steve
b118634189
Handle procedural conditional, and some
...
of the conditional expressions.
Elaborate signals and identifiers differently,
allowing the netlist to hold signal information.
1998-11-07 17:05:05 +00:00
steve
3fb7a053be
Introduce verilog to CVS.
1998-11-03 23:28:49 +00:00