Commit Graph

111 Commits

Author SHA1 Message Date
Zachary Snow 380c2b978a remove duplicate always_comb sensitivities 2025-05-18 17:04:23 -04:00
Zachary Snow 5d5723f65d added input port default conversion 2025-02-23 18:08:20 -05:00
Zachary Snow 4ec99fcffd add hierarchy path to inlined interface hash 2025-02-17 15:29:45 -05:00
Zachary Snow 30677b3dcb fix early conversion cast struct types 2024-12-14 11:08:11 -05:00
Zachary Snow 12618d541e support gate arrays 2024-12-12 09:01:20 -05:00
Zachary Snow 5a636724d7 avoid excessive scoping of top-level variables 2024-12-11 08:51:39 -05:00
Zachary Snow 1c13bcf557 invert expression scoping application order 2024-12-11 08:51:29 -05:00
Zachary Snow c56a91b290 disambiguate struct names that shadow module names 2024-12-09 01:07:05 -05:00
Zachary Snow 7808819c48 drop attributes attached to nested generate regions 2024-10-27 01:00:51 -04:00
Zachary Snow 24ab7aee24 interface inlining records decls with attrs 2024-10-26 23:46:20 -04:00
Ethan Sifferman bc79e30fe5
convert severity and elaboration system tasks (#276) 2024-09-02 23:41:29 -04:00
Zachary Snow 12d977f070 visit nested LHSs in enum, typedef, and typeof conversions 2024-09-01 20:39:58 -04:00
Zachary Snow 4e989bc029 remove extra space after signed in scalar types 2024-08-05 00:11:20 -04:00
Zachary Snow 1b2734324e fix bare input signed declarations for inlined modules 2024-08-04 23:52:48 -04:00
Zachary Snow 73a9cc6750 logic conversion handles tf output ports 2024-06-17 23:47:38 -04:00
Zachary Snow d3dbaf0684 handle resetall when creating implicit nets 2024-06-15 22:29:53 -04:00
Zachary Snow 70ec448a31 remove iverilog workaround from typeof_scope.sv
With steveicarus/iverilog#483 resolved, this workaround is no longer
necessary.
2024-05-08 08:57:17 -04:00
Zachary Snow d856c59a36 obey declaration order in reference output
The latest verion of iverilog enforces declaration ordering more
strictly. Update a few test cases to match. sv2v still supports
out-of-order items on a best-effort basis.
2024-05-01 09:07:31 -04:00
Zachary Snow fb604109bf don't sign-extend signed unsized numbers with a leading 1 bit
I'm opting for iverilog's interpretation of the specifications here. The
commercial simulators I tested seem to agree.
2024-05-01 09:07:31 -04:00
Ethan Sifferman df01650444
Added `full_case` and `parallel_case` attributes (#274) 2024-03-10 23:45:01 -04:00
Zachary Snow f4543872d9 partially bump iverilog 2024-02-11 19:04:48 -05:00
Zachary Snow f9917d94da execute always_comb/latch at time zero 2023-12-26 09:21:19 -07:00
Zachary Snow 756dbbb84f support stream within mux 2023-12-17 20:37:25 -05:00
Zachary Snow 81d822562a fix stringToInteger byte order 2023-12-07 23:43:19 -05:00
Zachary Snow 2579bc8302 translate input reg to input wire 2023-11-05 11:02:51 -05:00
Zachary Snow 6ffa31ff9a small coverage improvements 2023-11-04 22:24:59 -04:00
Zachary Snow cd7b53c658 fix multipack conversion type and expr traversal 2023-11-04 20:36:51 -04:00
Zachary Snow fe90c7bbf4 fix inline explicit struct casts 2023-11-04 17:31:11 -04:00
Zachary Snow a4639fa9ef special case typenames when resolving pattern identifiers 2023-11-04 13:31:09 -04:00
Zachary Snow d5b9c1da59 visit function args in empty args conversion 2023-11-04 11:36:08 -04:00
Zachary Snow aa451b66a2 stronger typename checks 2023-08-13 15:17:21 -04:00
Zachary Snow ba94920ee0 assign a unique identifier to every genvar 2023-08-11 21:52:03 -04:00
Zachary Snow a209335c30 disambiguate typenames and interface names 2023-08-09 22:45:52 -04:00
CORRADI Quentin 619bde4be1
support for attributes in unary, binary, and ternary expressions
Co-authored-by: qcorradi <q.corradi22@imperial.ac.uk>
Co-authored-by: Zachary Snow <zach@zachjs.com>
2023-07-31 22:52:28 -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 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 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 1b8aace145 check for module or interface names used as type names 2023-05-07 13:45:56 -04: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 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