Commit Graph

56 Commits

Author SHA1 Message Date
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 a8f2cbbe29 struct conversion supports complex shadowing 2019-04-22 02:33:24 -04:00
Zachary Snow b0eedfe318 $bits conversion handles basic expressions 2019-04-19 13:32:25 -04:00
Zachary Snow 73f831122f trim empty blocks; remove extra space in implicitly typed decls 2019-04-19 02:55:40 -04:00
Zachary Snow 9305c0f43b PackedArray conversion supports complex shadowing 2019-04-18 15:51:39 -04:00
Zachary Snow 96e0aff7f4 handle TF decl shadowing within packed array conversion 2019-04-17 20:05:55 -04:00
Zachary Snow 8d77856b1e StmtLHS traversal includes LHSs for loop parts 2019-04-17 17:44:12 -04:00
Zachary Snow 369e9f2f19 updated Stack snapshot; handled pattern matching failure issues introduced in GHC 8.6 2019-04-16 15:52:38 -04:00
Zachary Snow 55aebec3ad flatten generate blocks into their parent description where trivially possible 2019-04-11 15:42:46 -04:00
Zachary Snow 9a38225b1d several major fixes surrounding packed arrays
- entirely new PackedArray conversion (always flattens)
- typedef and struct correctly order packed ranges when combining types
- Stmt LHS traversal no longer traverses nested statements to avoid double conversion
- Logic conversion applies to `initial` blocks`
- new and modified tests to cover these cases
2019-04-08 21:28:33 -04:00
Zachary Snow fb3d68e339 propper support for indexed part select addressing 2019-04-05 13:53:52 -04:00
Zachary Snow 6d0f7dd0a7 significantly stronger support, and proper handling of assertions 2019-04-03 19:08:30 -04:00
Zachary Snow 5351dee80a minor scoping/ordering fixes for pesky VCS restrictions 2019-04-02 15:36:29 -04:00
Zachary Snow 86195d9ea1 interface conversion obeys function/task identifier shadowing 2019-04-02 13:35:15 -04:00
Zachary Snow c53b39319d added support and conversion handling of the $bits system function
This also entailed further fleshing out the expression traversal helper
to cover expressions in generate blocks, which could, of course, use
$bits.
2019-04-02 00:16:09 -04:00
Zachary Snow 2314f97a96 support for call args with unnamed and named arguments 2019-03-30 01:27:48 -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 713fb8a658 support for more complex for loop components 2019-03-27 01:53:26 -04:00
Zachary Snow 1c1740f1e3 support for constant size casts 2019-03-27 00:34:17 -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 ec06b2b97a support for basic event triggers 2019-03-25 19:06:54 -04:00
Zachary Snow a803284be8 support for instantiations with a range 2019-03-25 19:06: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 071d56a1ea more accurate handling of tagged blocks 2019-03-18 14:41:09 -04:00
Zachary Snow 35d8644f2a fix PackedArray with whole array uses by allowing top-level Expr and LHS traversal 2019-03-18 14:27:14 -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 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 d7b36a033b removed enum complex type cast hack 2019-03-07 00:59:02 -05:00
Zachary Snow 15d85b461b completed preliminary interface conversion 2019-03-06 21:55:27 -05:00
Zachary Snow 1d79c27963 first half of interface conversion 2019-03-06 20:30:47 -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 ff81267132 added conversion for genvar iteration AsgnOps 2019-03-04 19:58:54 -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