Stephen Williams
f749867369
Rework rules for variable_dimensions, and support more syntax.
2012-03-02 18:34:43 -08:00
Stephen Williams
64ea328823
Parse dynamic array declarations.
2012-03-01 18:48:16 -08:00
Stephen Williams
dbc58838d5
Parse class extends syntax and property qualifiers.
2012-03-01 18:17:52 -08:00
Stephen Williams
68eab8c664
Parse function declarations in classes.
...
Also add support for function end names when parsing SystemVerilog.
2012-02-26 19:16:10 -08:00
Stephen Williams
f33086fed4
Parse dynamic_array_new statements.
2012-02-26 18:45:22 -08:00
Stephen Williams
ebda9777cc
Parse foreach loops.
2012-02-26 11:28:44 -08:00
Stephen Williams
481a9dec69
More rework to canonicalize tf_port_item rules.
2012-02-26 10:57:03 -08:00
Stephen Williams
410350ae5a
Rework data_type parsing to bring integer vectors into data_type_t method.
...
This adds the vector_type_t and real_type_t types to handle
vector and real types in tf_port items. This cleans up a lot
of the parsing for these items.
2012-02-25 22:05:00 -08:00
Stephen Williams
dd3a7411cd
Parse SystemVerilog ref ports.
2012-02-25 10:19:48 -08:00
Stephen Williams
d000147392
Parse for declarations, implement for_step statements.
...
for-statement declarations still generate a "sorry" message, but
the for_step statements work in general now.
2012-02-25 09:28:20 -08:00
Stephen Williams
cad7c74680
System Verilog supports closing names after endtask keyword.
2012-02-24 17:04:49 -08:00
Cary R
bae02433b7
Remove some more warnings in pform.cc Ubuntu 11.10 (gcc/clang)
...
Remove a few more warnings from the gcc and clang compilers on
Ubuntu 11.10.
2012-02-22 17:27:27 -08:00
Cary R
952b84fba3
Fix signed/unsigned compare warning
...
Fix a signed/unsigned comparison warning on RHEL 5.
2012-02-22 15:11:01 -08:00
Cary R
51ef541969
Fix compile on cygwin and fix a few compile warnings.
...
This patch fixes a few compile warnings and adds the new packed routines
to the ivl.def file so that this links correctly on cygwin.
2012-02-22 10:20:49 -08:00
Stephen Williams
f8e346f108
Implement increment/decrement statements.
...
During parse/pform processing, convert increment statements to
the equivalent compressed assignment statement. This is less weird
for elaboration processing and better expresses what is going on.
2012-02-19 18:54:58 -08:00
Stephen Williams
6b4251626b
Parse array literals / rearrange task declaration rules.
2012-02-19 17:31:15 -08:00
Stephen Williams
8456252c0c
More class syntax
...
Part of ongoing parser work to support SystemVerilog classes.
2012-02-19 10:29:50 -08:00
Stephen Williams
5880a3ad8f
Parse program blocks / Fix module end-name syntax.
2012-02-18 10:02:54 -08:00
Larry Doolittle
0aefcf9b48
Trivial fixes to grammar, spelling, whitespace
2012-02-17 16:18:22 -08:00
Stephen Williams
8b9fdbc55b
Merge branch 'master' of github.com:steveicarus/iverilog
2012-02-17 08:21:49 -08:00
Stephen Williams
fec1c1efde
Handle r-value constant slice selects.
2012-02-12 16:19:58 -08:00
Stephen Williams
77f168cf28
Support non-constant indexed part select of packed arrays.
2012-02-12 14:52:47 -08:00
Cary R
391073a750
Update __vpiNamedEvent to remove struct and remove extra class statements
...
The clang compiler does not like using struct to reference a class object.
This patch removes all the struct keywords for __vpiNamedEvent objects
since they are now a class and can be called without a struct/class
qualifier.
This patch also removes all the extra class qualifiers from the rest of
the source code.
2012-02-12 13:22:32 -08:00
Stephen Williams
5e067bd651
Handle constant indexed part selects.
2012-02-12 12:03:43 -08:00
Stephen Williams
c1b73c83f4
Respond better to some error/sorry situations.
2012-02-12 11:16:31 -08:00
Stephen Williams
6eeef8311f
Handle indexed bit select of packed arrays.
...
This handles a few cases where the non-constant bit selects are
in the final index. This doesn't handle all the cases of packed
arrays, but it handles some common cases.
2012-02-12 10:13:20 -08:00
Stephen Williams
4287fc4b50
Handle l-value part select of packed arrays.
2012-02-10 18:48:12 -08:00
Stephen Williams
3e4f8b625f
Get packed signals working through to simulation in some situations.
...
When dynamic indexing of early dimensions is not needed, we can get
pretty far with getting packed arrays to work.
2012-02-10 17:17:59 -08:00
Stephen Williams
e5c49022b4
The NetNet class carries multiple packed dimensions.
2012-02-06 17:47:53 -08:00
Stephen Williams
ae11010707
Evaluate packed ranges for signals.
2012-02-05 17:41:11 -08:00
Stephen Williams
950e7a632c
Parse multi-dimension packed arrays to pform.
2012-02-04 16:19:27 -08:00
Stephen Williams
5d35ad8a0d
Support uwire resolved writes to non-overlapping parts
...
The individual bits of an unresolved wire may be assigned in
different continuous assignments without generating an error.
2012-02-02 16:18:50 -08:00
Stephen Williams
764b38bb3b
Use user defined types in the syntax.
...
Given that the syntax is already parsed and elaborated, it is a
simple matter to bind that typedef'ed type to the instances that
use it.
2012-02-02 16:18:50 -08:00
Stephen Williams
42b3e6f268
Implement simple typedefs, and parse type identifiers.
...
This gets me to the point where the parser stashes a defined type,
and the lexical analyzer uses the type names to differentiate
IDENTIFIER and TYPE_IDENTIFIER.
2012-02-02 16:18:50 -08:00
Stephen Williams
e14628193a
Parse simple typedefs
...
Parse typedefs with structs and enums, but give a sorry message,
because they are not yet supported. Rearrange some of the parse
rules for variables in order to increase comonality with the
typedef rules.
2012-02-02 16:18:50 -08:00
Stephen Williams
124314576d
Packed struct members in behavioral assign l-values.
2012-02-02 16:18:49 -08:00
Stephen Williams
d2c3ff7999
Handle struct members in continuous assign l-values.
2012-02-02 16:18:49 -08:00
Stephen Williams
e9e2fb33e9
Handle nets that are packed structures.
2012-02-02 16:18:49 -08:00
Stephen Williams
3a2866b57c
Handle members of packed struct as implicit part selects.
...
Packed struct members are synonymous with part selects, but in a
much more convenient form, so get them to work that way.
2012-02-02 16:18:49 -08:00
Stephen Williams
d362c8dba0
Parse support for struct variables.
2012-02-02 16:18:49 -08:00
Stephen Williams
5677efdfe6
Filter callbacks of value changes to array words.
...
When looking for a value change on a part select of an array word,
the callback handle has to save the current value and test it with
the new value to see if there is an actual change. If not, then
suppress the callback.
2012-02-02 10:49:59 -08:00
Stephen Williams
c7a54891c4
Properly handle value change callbacks on part selects.
...
cbValueChange callbacks on part selects have to go through some extra
effort to make sure the value they are watching really is changing.
2012-01-30 19:12:20 -08:00
Stephen Williams
53585c9209
Derived classes for different callback types.
2012-01-29 17:31:19 -08:00
Stephen Williams
289b1d1bce
Merge branch 'master' of github.com:steveicarus/iverilog
2012-01-25 17:48:22 -08:00
Cary R
e9d68098d5
Fix the formatting of time values that are less than 1
...
This patch is a modification of a user contributed patch that fixes the
time formatting when the time is less than 1 and $timeformat() is used.
2012-01-23 18:52:11 -08:00
Stephen Williams
d3df962b2a
Cleaner __vpiCallback construction.
2012-01-22 20:37:01 -08:00
Cary R
bb58ace6d6
Update __vpiHandle to use class vs struct
...
The clang compiler does not like mixing class and struct references. This
patch updates all the struct __vpiHandle, etc. to use class since that is
how they are now defined.
2012-01-21 14:50:27 -08:00
Stephen Williams
2bba7ebbda
Trivial fix of compiler warning.
2012-01-21 12:01:57 -08:00
Stephen Williams
d6fca81058
More cleanup of __vpiHandle classes.
2012-01-21 11:59:49 -08:00
Stephen Williams
43e11574e1
General cleanup of the __vpiHandle class work.
2012-01-20 17:16:42 -08:00