Zachary Snow
bf029068af
move exprToType utility outside to language module
2021-08-18 13:07:42 -06:00
Zachary Snow
2f860ff220
fix trivial hash collisions
...
Data.Hashable can produce hashes differing little in their upper bits if
only the last character of the string is changed. Because we were using
the upper bits of the hash in shortHash, this could lead to avoidable
hash collisions. This change includes minor simplification optimizations
which surfaced this collision in the existing struct_ident_scope test.
2021-07-07 20:14:11 -04:00
Zachary Snow
dbbf71c65a
revised struct pattern representation
...
- pattern keys now represented as TypeOrExpr
- support for simple integer struct pattern keys
2021-06-20 15:32:12 -04:00
Zachary Snow
13c84e4c7a
refactor parameter binding resolution
...
- fix type/expr ambiguity for interface and class parameters
- check for parameter kind mismatch up front
- centralize key logic in ResolveBindings
2021-05-31 14:13:49 -04:00
Zachary Snow
5cc4dce01f
refactor positional binding checking and resolution
2021-04-30 14:10:09 -04:00
Zachary Snow
ea56f51d03
support for parameters without defaults
2021-01-21 11:55:23 -07:00
Zachary Snow
67466eaa60
major interface conversion update
...
- module instances with modport bindings are now inlined
- support for modports in generate loops
- support for generic interfaces
- implied modport instance propagation
- add error message for interface instances missing port list
2020-08-08 20:43:47 -06:00
Zachary Snow
d88c516d33
enhanced handling of number literals
...
- number literals are parsed rather than stored as strings
- fix array query functions used on non-trivial number literals
- more efficient expression simplification recursion
- expanded constant folding scenarios
2020-07-12 15:06:27 -06:00
Zachary Snow
92feef8759
standardized, shorter hash generation
2019-09-03 23:54:47 -04:00
Zachary Snow
af4711a8cf
preliminary stream conversion
2019-09-03 23:36:29 -04:00
Zachary Snow
1f7c70dfe1
language support for LHS streaming operators
2019-09-02 20:46:35 -04:00
Zachary Snow
88579c6d1f
logic conversion fixes produced reg-to-output bindings
...
- generally cleaned up and documented the Logic conversion
- made exprToLHS a shared helper function, now uses Maybe
- ported existing local exprToLHS helpers to the new one
2019-04-22 20:44:35 -04:00
Zachary Snow
383754fa7a
final major round of splitting and cleanup in the SystemVerilog module
2019-04-03 20:24:09 -04:00
Zachary Snow
6d0f7dd0a7
significantly stronger support, and proper handling of assertions
2019-04-03 19:08:30 -04:00
Zachary Snow
a432d75939
additional SystemVerilog language support
...
- unique0 and priority
- uniqueness on if statements
- preliminary discard-only parsing of assertions
- parameters with alias typenames
2019-03-30 00:47:42 -04:00
Zachary Snow
39f6bbb3d8
preliminary support for extern and module/interface lifetimes
2019-03-26 15:10:16 -04:00
Zachary Snow
0352414e0f
surprisingly non-disgusting addition of attribute instances to module items and statements
2019-03-26 01:54:16 -04:00
Zachary Snow
a2d0872d6f
support for delays on continuous assignments
2019-03-25 19:31:06 -04:00
Zachary Snow
a803284be8
support for instantiations with a range
2019-03-25 19:06:35 -04:00
Zachary Snow
8907ac861d
split out Decl, LHS, and Stmt into separate AST modules
2019-03-25 13:29:35 -04:00
Zachary Snow
77f0d23d4b
starting work to clean up and segment AST
2019-03-22 19:39:28 -04:00
Zachary Snow
cecd141e57
revamped support system with most SystemVerilog types and signed types
2019-03-22 17:45:31 -04:00
Zachary Snow
45d16a30db
support non-blocking assignments with delay or event controls
2019-03-22 02:47:25 -04:00
Zachary Snow
90bd6b3492
added support for n-input gates and n-output gates
2019-03-22 01:32:43 -04:00
Zachary Snow
1d2eccb32a
preliminary support for defparam
2019-03-18 12:37:46 -04:00
Zachary Snow
acfbdb07f8
completely rewrote preprocessor; more extensive directive support (include, timescale)
2019-03-18 05:00:23 -04:00
Zachary Snow
b5b9fdb37e
support for null call arguments
2019-03-08 16:55:03 -05:00
Zachary Snow
2150e8a4bb
support optional tags in more places
2019-03-08 16:03:29 -05:00
Zachary Snow
b2b1c9e52c
allow .* as element of partial port bindings
2019-03-07 18:20:34 -05:00
Zachary Snow
9ec9435cb0
support for binary blocking assignment operators in statements
2019-03-07 18:16:28 -05:00
Zachary Snow
dd5b03431d
allow block item declarations for un-named blocks
2019-03-07 15:39:19 -05:00
Zachary Snow
e006e36ddc
preliminary support for tasks
2019-03-07 13:58:20 -05:00
Zachary Snow
0f4a60be1d
functions and typedefs can now appear at the top level
2019-03-07 13:19:31 -05:00
Zachary Snow
9699f5bf16
preliminary struct conversion; return conversion
2019-03-06 01:13:36 -05:00
Zachary Snow
4d3669d356
added support for other procedural loops
2019-03-04 21:34:32 -05:00
Zachary Snow
de728f3060
added some support for a few key non-synthesizable constructs
2019-03-04 21:04:22 -05:00
Zachary Snow
460c0ee497
broader operator support; other parser cleanup
2019-03-04 18:25:14 -05:00
Zachary Snow
e1799de5f9
Expr bits and ranges are recursive (as they should have been)
2019-03-04 15:46:21 -05:00
Zachary Snow
59efba06ac
LHSs are recursive (as they should have been)
2019-03-04 15:16:53 -05:00
Zachary Snow
b95af2b6d1
support for automatic functions
2019-03-04 14:25:38 -05:00
Zachary Snow
729a75cd11
support for interfaces; new "declaration parser"
2019-03-04 02:58:00 -05:00
Zachary Snow
b2e0c4fa97
preliminary support for structs
2019-03-01 20:32:46 -05:00
Zachary Snow
ab91eaafd7
initial version of enum conversion
2019-02-28 22:44:31 -05:00
Zachary Snow
fd0bccfbd8
rewrote PackedArray to properly handle the various scenarios
2019-02-28 19:48:58 -05:00
Zachary Snow
7bc81ef67b
directory re-org; streamline build setup
2019-02-28 13:52:31 -05:00