Zachary Snow
896b375df0
replace tabs with spaces in test/dump/example.sv
2023-07-09 14:52:41 -04:00
Zachary Snow
d0e3b794bc
bump iverilog and use explicit named port connections in tests
2023-07-08 12:23:01 -04:00
Zachary Snow
0f8224023b
test runner simplifications
2023-06-24 15:47:22 -04:00
Zachary Snow
a29564459b
remove long-deprecated CLI flag aliases
2023-06-24 13:11:21 -04:00
Zachary Snow
04d65bb388
added --write directory mode with one file per module
2023-06-21 08:25:42 -04:00
Zachary Snow
911243dac4
add --top for filtering uninstantiated modules
2023-06-18 22:36:43 -04:00
Zachary Snow
3b2a55a69c
better error message for indexed atoms
2023-06-18 22:18:20 -04:00
Zachary Snow
a05659cd06
better unfinished conditional directive error message
2023-06-17 12:56:23 -04:00
Zachary Snow
51c90baf5e
support for loading from library directories
2023-06-13 22:53:36 -04:00
Zachary Snow
aa429204ea
minor AlwaysKW coverage improvements
2023-06-10 23:52:17 -04:00
CORRADI Quentin
4756f49750
avoid dangling procedural else
...
* Remove unneeded begin/end when the loop is a do/while
* Dangling else check passes through statement attributes (bug fix)
* Dangling else check passes through most control flow structures to reduce unneeded begin/end
* Add test case and update changelog
---------
Co-authored-by: qcorradi <q.corradi22@imperial.ac.uk>
Co-authored-by: Zachary Snow <zach@zachjs.com>
2023-06-06 00:08:56 -04:00
qcorradi
485ffffa01
always kw conversion visits items with attributes
...
* Fixing a bug where always_* are not converted when attributed
* Added tests and updated Changelog for the attributed always_* fix
2023-05-30 23:39:47 -04:00
Zachary Snow
a129e3bc68
add test suite documentation
2023-05-30 22:36:54 -04:00
Zachary Snow
e1948689dd
support newer iverilog versions
...
- Add script to drop parameters from VCDs.
- Bump the version of iverilog used in CI. I couldn't use anything never
than eab37efb due a pending iverilog issue.
- Standardize around Python 3 in test cases.
2023-05-29 19:05:33 -04:00
Zachary Snow
03610606aa
remove unneeded escapes in extractFlag
2023-05-29 15:32:27 -04:00
Zachary Snow
0a7b0250e7
fix 1364-2001 and 1364-2001-noconfig keywords mixup
...
- swap 1364-2001 and 1364-2001-noconfig
- fix existing begin_keywords test
- add keyword test suite for all keywords
2023-05-15 22:21:23 -04:00
Zachary Snow
2aff725ea2
drop tf block edge case
...
- The deleted chunk in TFBlock has been unreachable since 57ef23ef . The
RemoveComments change would make it reachable by dropping the leading
Null in a task or function body.
- The optimization in TFBlock was unsound because the nested block could
shadow identifiers used (but not defined) in the tail of the outer
block.
- The optimization is not clearly necessary, so I'm dropping it for now.
- Expand tf_block test coverage.
2023-05-14 23:18:58 -04:00
Zachary Snow
0fb3a41ed3
additional test coverage
...
- test deprecated flags
- test struct const edge cases
- test implicit net edge cases
- test dump-prefix
2023-05-14 00:54:22 -04:00
Zachary Snow
6c4ee8f4bc
keep explicitly unconnected port bindings
...
These are now kept while still supporting optional trailing commas and
without introducing pass-through inconsistencies.
2023-05-10 08:48:15 -04:00
Zachary Snow
11a5d0479d
support for sequence and property declarations
2023-05-07 16:45:06 -04:00
Zachary Snow
1b8aace145
check for module or interface names used as type names
2023-05-07 13:45:56 -04:00
Zachary Snow
b7738a3238
don't use positional error message on extra named bindings
2023-04-26 09:07:18 -04:00
Zachary Snow
e4c47363bb
ignore port connection attributions
2023-04-21 08:29:27 -04:00
Zachary Snow
eca8714de7
skip start of block before looking for its end
2023-03-07 23:54:56 -05:00
Zachary Snow
4ce177c074
multipack conversion visits exprs within types
2023-02-22 00:15:39 -05:00
Zachary Snow
9bab0448e3
drop explicit string type from parameters
2023-01-07 18:27:25 -07:00
Zachary Snow
96a108ded7
constant folding extensions
...
- fold string literal comparisons
- fold non-decimal bit shifts
- fold non-decimal integer comparisons
- fold decimal bitwise AND and OR
- simplify cast expressions before elaboration
- remove duplicate cast expression traversal
- flatten concatenated numbers in a single pass
2022-12-24 01:12:50 -07:00
Zachary Snow
9de4d44305
simplify handles shadowing via vars and genvars
2022-12-24 00:51:05 -07:00
Zachary Snow
72ab639699
forbid non-void return inside void functions
2022-12-23 19:55:44 -07:00
Zachary Snow
c49fad1dba
drop unneeded module-scoped references
2022-10-29 13:22:53 -04:00
Zachary Snow
086eb78688
elaborate accesses to fields of struct constants
2022-10-23 11:52:22 -07:00
Zachary Snow
4533e4fffb
don't inline module-level constants into static prefixes
2022-10-22 18:02:54 -07:00
Zachary Snow
e00582de8f
check for conflicts with unused declarations
2022-07-18 21:05:21 -04:00
Zachary Snow
a9f00cce2a
avoid name conflicts when elaborating packages
2022-07-17 22:02:15 -04:00
Zachary Snow
a54be8dae6
instances supply names during reordering
2022-07-17 20:58:36 -04:00
Zachary Snow
59b416f9b4
isolate interface name resolution checks
2022-07-17 20:32:56 -04:00
Zachary Snow
6e8659a537
support hierarchical calls to functions with no inputs
2022-07-10 22:43:33 -04:00
Zachary Snow
5dcbce5f45
fix conversion of casts to structs containing multidimensional fields
2022-06-19 21:55:19 -04:00
Zachary Snow
336812ff21
fix conversion of signed struct fields accessed directly
2022-06-19 16:13:56 -04:00
Zachary Snow
effeded6d1
support procedural continuous assignments
2022-05-10 12:11:32 -04:00
Zachary Snow
e778a671e1
generate explicit sensitivity lists when necessary
2022-05-10 11:29:33 -04:00
Zachary Snow
b7a2327668
simple for loop elaboration applies in more cases
2022-04-30 20:19:02 -06:00
Zachary Snow
5e17ef0df3
bump iverilog
2022-04-11 18:04:57 -06:00
Zachary Snow
f68bf187af
refactor event control internals
...
- event expressions use Expr over LHS
- stricter AST representation of event controls
- property specs use event expressions directly
2022-04-11 17:44:47 -06:00
Zachary Snow
abbcaae02c
default to python3 for number gen.py
2022-04-04 12:26:15 -06:00
Zachary Snow
f868f06e88
write adjacent overwrites existing files
2022-03-16 15:34:29 +01:00
Zachary Snow
ed09fe88cf
support assignments within expressions
2022-03-12 23:57:17 +01:00
Zachary Snow
4ced649a87
convert do while loops
2022-03-11 11:32:54 +01:00
Zachary Snow
1315bed81c
support cycle delay range in sequence expressions
2022-03-09 18:38:30 +01:00
Zachary Snow
e6e96b622b
support for edge event
2022-02-16 12:01:58 +01:00
Zachary Snow
53fa152fc4
upgrade to latest iverilog
2022-02-15 19:14:55 +01:00
Zachary Snow
3db72c4c2d
logic conversion ignores LHSs in procedural assignment senses
2022-02-15 17:49:50 +01:00
Zachary Snow
5b5bed8c72
fix dev iverilog test incompatibilities
2022-02-15 15:38:16 +01:00
Zachary Snow
96cfe18ca7
pass through support for functions with output ports
2022-02-07 23:38:11 +01:00
Zachary Snow
eb42042c1c
pass through support for DPI imports and exports
2022-01-25 20:52:14 -07:00
Zachary Snow
2e43dfeeaa
fix failed indirection of unassigned function results
2022-01-23 22:40:43 -07:00
Zachary Snow
4c3dcf5219
support for enumerated type ranges
2021-12-10 13:16:34 -07:00
Zachary Snow
03a913ad65
fix illegal removal of width-extending `+ 0` and `* 1`
2021-11-15 21:26:08 +01:00
Zachary Snow
5105ccbb39
use scoped errors in struct conversion
2021-10-17 21:40:12 -06:00
Zachary Snow
150b7f2af1
enum item conflict raises scoped error
2021-10-10 22:04:51 -06:00
Zachary Snow
d1d81eb8d6
use scoped errors in interface conversion
2021-10-07 21:06:45 -06:00
Zachary Snow
84edbae503
preliminary scoped errors with approximate source location
...
- scoped traversals can now raise errors which contain the path of the
current scope and an approximate source location based on preceding
trace comments, if available
- initially, this new error messaging has only been added for the
illegal size cast checks in the TypeOf and Cast conversions
- error suite tests can provide a verbose mode expected source location
2021-10-06 22:17:41 -06:00
Zachary Snow
f061e88214
cleanup error suite infrastructure
...
- error suite runs in both regular and verbose mode
- add helper for extracting "flags" from test files
- common assertMatch, assertNotMatch helpers
- remove unused assertExists helper
- fix un-escaped wildcard in assert_deferred_nonzero.sv
2021-10-05 14:25:10 -06:00
Zachary Snow
ff241115c4
forbid bit-selects and part-selects of scalar struct fields
2021-09-27 21:52:37 -06:00
Zachary Snow
814f96597e
fix assertion removal in verbose mode causing orphaned statements
2021-09-24 12:36:49 -04:00
Zachary Snow
b1f1b822e9
fix conversion of interface-based typedefs
2021-09-18 21:46:32 -04:00
Zachary Snow
6788ecbf82
fix interface traversal of exprs in types, and support module-scoped modport refs
2021-09-18 21:01:28 -04:00
Zachary Snow
e169c907f4
fix preprocessing of line comments not preceded by whitespace
2021-09-13 20:46:59 -04:00
Saw Xue Zheng
8ecd2c6e52
fix common_module_item to include deferred_assertion_item ( #178 )
2021-09-11 15:22:04 -04:00
Zachary Snow
598b4260b6
apply port standardization to tasks and functions
2021-09-06 21:48:08 -04:00
Zachary Snow
95c2bc996c
support for common non-ANSI style port declarations
...
Specifically, support has been added for non-ANSI style port
declarations where the port declaration is separate from the
corresponding net or variable declaration.
2021-09-06 21:10:49 -04:00
Zachary Snow
d335d2ff25
use UTF-8 across all platforms
...
- all inputs are now decoded as UTF-8, regardless of the platform
- decoding failures are now tolerated via transliteration given errant
characters are generally expected to appear in comments
2021-08-30 10:39:49 -06:00
Zachary Snow
da2d4117f2
specialized parsing for parameter port lists
...
This adds support for typed valued parameters declared in parameter port
lists without explicitly providing a leading `parameter` or `localparam`
marker.
2021-08-20 18:08:14 -06:00
Zachary Snow
77ee49a80e
allow space between @ and *
2021-08-19 16:01:45 -06:00
Zachary Snow
47c05c04b8
support parameters which use a type-of as the data type
2021-08-18 13:33:40 -06:00
Zachary Snow
9acdb848c9
ensure arrays used in nested ternary expressions are properly flattened
2021-08-18 10:25:14 -06:00
Zachary Snow
7ccab1c70a
fix parsing of sized ports with implicit directions
2021-08-17 10:27:17 -06:00
Zachary Snow
7325bd7976
support bare delay controls with real number delays
2021-08-17 09:53:28 -06:00
Zachary Snow
cd45696ace
parse alternate spacings of sense star
2021-08-16 22:39:33 -06:00
Zachary Snow
c17d859988
tolerate escaped vendor comments within macros
2021-08-16 18:22:04 -06:00
Zachary Snow
581a7911de
support for deferred immediate assertion statements
2021-08-16 17:50:23 -06:00
Zachary Snow
4ded2a598d
apply implicit port directions to tasks and functions
2021-08-15 12:25:32 -07:00
Zachary Snow
61ccf3cb22
remove unintentional tabs in struct_pattern_cast.v
2021-08-15 12:23:13 -07:00
Zachary Snow
306d71334b
refactor sizing and truncation of integer literals
...
- use iverilog's -gstrict-expr-width throughout test suite
- add warnings for excess bits or padding zeroes in number literals
- add new --oversized-numbers parameter to retain support for unsized
numbers wider than 32 bits
- localized use of oversized numbers to new truncate test suite which
verifies the behavior of both modes, and compares against the known
behavior of iverilog
2021-08-09 22:10:29 -06:00
Zachary Snow
5e5ddca444
fix broken two's complement logic
2021-08-08 21:36:36 -06:00
Zachary Snow
59d37468a4
fix internal interpretation of negative number literals
...
- detect and forbid non-positive size casts
- detect and forbid negative struct pattern literal indices
- avoid invalid constant folding of negative based literals
2021-08-07 21:11:35 -06:00
Zachary Snow
527b59ff12
upgrade iverilog to lastest on v11-branch
...
Workarounds for resolved iverilog issues have been removed.
2021-08-04 17:50:53 -06:00
Zachary Snow
44c2e870f0
test runner checks for warnings emitted by sv2v
2021-08-02 09:18:45 -06:00
Zachary Snow
543b4590cb
streamline iverilog test wrapper
2021-08-01 16:38:41 -06:00
Zachary Snow
fd96b8a710
unbased unsized conversion inlines module stubs
...
- support ports with sizes which depend on constant functions
- restore package item injection utility to package conversion module
- additional unbased unsized conversion test coverage
2021-07-29 19:54:20 -04:00
Zachary Snow
1aa30ea813
allow genvars to be shadowed
2021-07-27 19:17:03 -04:00
Zachary Snow
e0d425d976
default implicit output ports to logic
2021-07-27 17:20:09 -04:00
Zachary Snow
17b01b1683
simplify mod 1 to 0
2021-07-26 13:03:01 -04:00
Zachary Snow
5345a72c9e
elaborate `wire integer` to `wire signed [31:0]`
2021-07-25 15:37:27 -04:00
Zachary Snow
121fea5aec
avoid unnecessary casts on substituted hierarchical constants
2021-07-24 17:01:17 -04:00
Zachary Snow
1311e449fe
fix errant expr resolution flagging
...
- references to other instances are no longer flagged
- special handling for genvars to avoid flagging and modport scoping
- interface inlining visits expressions in declarations
- Scoper has interface for removing entries
2021-07-23 19:59:26 -04:00
Zachary Snow
1e6fa7b858
fix looping simplification on unfolded based literals
2021-07-22 12:45:53 -04:00
Zachary Snow
b2b6f8f8f2
fix two paramtype edge cases
...
- don't keep unused template modules even if they are fully-specified
- don't reduce modules with unbound type parameters
2021-07-22 00:58:19 -04:00
Zachary Snow
ab867465da
fix handling of explicitly typed struct patterns in other contexts
2021-07-21 14:31:43 -04:00
Zachary Snow
dde734be26
handle params with unpacked typenames
2021-07-21 11:57:04 -04:00