Stephen Williams
d232335d9d
Merge pull request #267 from sielicki/master
...
replace deprecated yacc directives
2019-09-30 08:23:38 -07:00
Stephen Williams
80478db6cc
Support typedefs in class definitions.
2019-09-30 08:07:56 -07:00
Cary R
6d71870853
Merge branch 'master' of github.com:steveicarus/iverilog
2019-09-29 20:20:23 -07:00
Cary R
5047aa2839
Add support for recursive function support for always_* sensitivity
2019-09-29 20:20:10 -07:00
Stephen Williams
185586e5ec
Merge branch 'master' of github.com:steveicarus/iverilog
2019-09-29 18:37:39 -07:00
Stephen Williams
50d71c8512
Support for enumerations in classes.
2019-09-29 18:27:27 -07:00
Cary R
e4ef928751
Fix some space issues
2019-09-29 17:11:19 -07:00
Cary R
ba82ef463e
Fix some always_* issues
2019-09-29 16:59:59 -07:00
Nicholas Sielicki
031caca8ca
replace deprecated yacc directives
...
bison 3.4.2 complains when encountering '%pure-parser':
"warning: deprecated directive, use ‘%define api.pure’"
A quick google suggests this option has been around since at least
2012, maybe longer, so probably safe to replace.
Signed-off-by: Nicholas Sielicki <sielicki@yandex.com>
2019-09-29 18:19:45 -05:00
Cary R
8a85d62ec7
Update to latest GTKWave files
2019-09-29 09:59:56 -07:00
Martin Whitaker
e73da43cc1
Remove obsolete checks for name collisions during elaboration.
...
This is now handled by the parser.
2019-09-27 22:19:30 +01:00
Martin Whitaker
439688fa46
Add anonymous enums to the scope local symbols.
2019-09-27 22:19:30 +01:00
Martin Whitaker
2ae910750b
Put generate case item block names in correct scope.
...
The compiler creates an artificial scope around the case items. We need
to add the block names to the real containing scope.
2019-09-27 22:19:30 +01:00
Martin Whitaker
03c4c63df1
Fix file/line reported for duplicate named blocks.
2019-09-27 22:19:30 +01:00
Martin Whitaker
628f5645bf
Fix file/line reported for duplicate parameter declarations.
...
We need to retain the old parameter information until we have reported
the error.
2019-09-27 22:19:30 +01:00
Martin Whitaker
d3bced57cc
Correctly handle explicit and wildcard package imports.
...
Explicit imports should always conflict with local declarations using
the same name. Wildcard imports only conflict if they are referenced
before a local declaration with the same name.
This also unifies the detection of identifier conflicts.
2019-09-27 22:19:30 +01:00
Martin Whitaker
b88d91c617
Create new base class for all named items that can be added to a scope.
...
Provide a helper function to identify the derived classes when reporting
errors.
2019-09-27 22:19:30 +01:00
Martin Whitaker
269ec2f042
Remove redundant checks for package imports during parsing.
...
The find_* and symbol_search functions now handle this.
2019-09-27 22:19:30 +01:00
Martin Whitaker
55219773fd
Allow nested scopes to use their parent's imports.
2019-09-27 22:19:30 +01:00
Stephen Williams
d7ee6bb6bb
Support struct member part selects in l-values.
2019-09-27 13:51:51 -07:00
Stephen Williams
65aff65344
Better job choosing unique scope-local symbols during elaboration.
2019-09-25 12:18:41 -07:00
Stephen Williams
ecd7b39244
Merge branch 'master' of github.com:steveicarus/iverilog
2019-09-24 15:05:51 -07:00
Stephen Williams
7b66de0711
Handle nested packed strucdts in r-values.
2019-09-24 15:05:39 -07:00
Martin Whitaker
714b211d9f
Document the iverilog '-i' option in the man page.
2019-09-23 20:10:38 +01:00
Martin Whitaker
abd63e80e1
With '-i', don't return an error when there are no top-level modules.
...
The '-i' option is there to allow the compiler to be used to check an
incomplete design for errors. With no top-level modules, nothing will
be elaborated, but at least will be checked for syntax errors.
2019-09-23 20:05:03 +01:00
Martin Whitaker
791c056b77
Document -gassertions/-gno-assertions in driver man page.
2019-09-20 21:30:43 +01:00
Martin Whitaker
823a508d6b
Implement SV immediate assertions.
2019-09-20 21:30:43 +01:00
Stephen Williams
9e10645722
Merge branch 'master' of github.com:steveicarus/iverilog
2019-09-17 14:12:43 -07:00
Stephen Williams
2aa7700970
Add support for packed arrays in nested struct l-values.
2019-09-17 13:34:36 -07:00
Stephen Williams
1c281c2d77
Support nested struct l-values.
2019-09-16 13:50:17 -07:00
Martin Whitaker
41ac0b2621
Include wires in items imported by an "import ::*".
2019-09-16 20:42:32 +01:00
Martin Whitaker
d6391490e3
Resize vector before assigning to a dynamic array word.
...
Failing to do this leads to an assertion failure in vvp.
2019-09-16 20:39:19 +01:00
Martin Whitaker
02ee1c65d0
Support dynamic array initialisation in variable declarations.
2019-09-16 20:35:27 +01:00
Stephen Williams
b639c4c9aa
Clean up some debug dump formatting.
2019-09-15 21:17:16 -07:00
Martin Whitaker
832adc5c74
Improve handling of invalid packed and unpacked dimensions.
...
As reported on iverilog-devel on 2018-10-12, a dimension size of zero
could case the compiler to go into an infinite loop. Further tests
showed that unsized or queue dimensions entered as packed dimensions
would cause the compiler to crash.
2019-09-14 09:10:52 +01:00
Martin Whitaker
a6bcbc3d1d
Remove obsolete private VPI functions.
2019-09-13 08:40:58 +01:00
Martin Whitaker
a0ef6c4b62
Fix design dump to correctly report cast operations.
2019-09-11 22:14:03 +01:00
Martin Whitaker
c066e2d15c
Properly implement casts from strings and dynamic arrays to vectors.
...
As discussed on iverilog-devel (2018-03-09), the existing implementation
(using Icarus-specific vpi functions) only worked with assignments to
simple variables, and could not be easily modified to work more generally.
So use the new vvp instructions added in the previous two commits.
2019-09-11 22:08:46 +01:00
Martin Whitaker
1aa22735ce
Add new %cast/vec2/dar and %cast/vec4/dar instructions to vvp.
2019-09-11 21:56:27 +01:00
Martin Whitaker
74ff44314e
Add new %cast/vec4/str instruction to vvp.
2019-09-11 21:56:09 +01:00
Martin Whitaker
34bb98676a
Fix assertion failure on illegal SV cast.
...
Bug reported on iverilog-devel on 2018-02027.
2019-09-07 14:35:19 +01:00
Martin Whitaker
b43fcccc0f
Add support for PATHPULSE, PATHPULSEPERCENT, and PERIOD in SDF parser.
...
As requested on iverilog-devel. These are all parsed then ignored for now.
2019-08-24 00:23:29 +01:00
Martin Whitaker
3bdb50da29
Schedule UDP initial 0/1 assignments to occur during time 0.
...
This allows any always processes that are sensitive to the UDP output
to start first. This fixes a time 0 race that was found in a Lattice
Semiconductor simulation library (reported on iverilog-devel).
If the initial value is 'x', propagate the value to the UDP output
before the start of simulation, to avoid unwanted update events on
the z -> x transition on downstream nets.
2019-08-09 21:00:10 +01:00
Martin Whitaker
a8318db21c
Fix assertion failure when top level module has array ports.
...
Reported by Kustaa Nyholm on iverilog-devel, 2017-10-17.
2019-08-03 18:52:49 +01:00
Martin Whitaker
7fa781d5f3
Re-enable disabled compiler warnings for Windows builds.
2019-08-03 12:41:38 +01:00
Martin Whitaker
326945329e
Add note that bison 2.3 is known to generate bad code (br1028).
2019-08-02 15:45:20 +01:00
Martin Whitaker
e97883b1db
Fix for br1015 : assertion failure when task/function port is an array.
...
This is an error for Verilog and not yet supported for SystemVerilog.
2019-08-02 15:34:31 +01:00
Martin Whitaker
866cc46915
Fix for GitHub issue #256 - don't use V as Makefile variable name.
...
Some build systems override V on the make command line, wrongly assuming
it is the automake verbose option.
2019-08-02 10:27:40 +01:00
Martin Whitaker
b7769dd059
Merge branch 'fix-cfparse-include-order' of https://github.com/StefanBruens/iverilog
2019-08-01 19:13:31 +01:00
Martin Whitaker
10168d542c
Change minimum gperf version to 3.0.
...
vhdlpp uses the --ignore-case option, which isn't supported in 2.7.
2019-08-01 19:11:44 +01:00