Commit Graph

288 Commits

Author SHA1 Message Date
Zachary Snow 799141af42 enum conversion covers nested module items (resolves #70) 2020-02-15 17:14:59 -05:00
Zachary Snow fe8839eaec fix struct typing of ternary expressions (resolves #73) 2020-02-15 14:44:49 -05:00
Zachary Snow aea64e903c pack arrays assigned to other arrays 2020-02-13 23:59:01 -05:00
Zachary Snow 8f4e783fd1 remove empty generate loops 2020-02-09 23:20:35 -05:00
Zachary Snow fcaca6c33a package item nesting perf tweaks 2020-02-09 22:34:27 -05:00
Zachary Snow c876c447e6 fix interface inlining renaming 2020-02-09 22:17:48 -05:00
Zachary Snow df4244d8d5 more aggressive expression simplification 2020-02-09 20:03:08 -05:00
Zachary Snow 9036bbabe4 cover struct width $bits edge case 2020-02-09 19:07:12 -05:00
Zachary Snow 4cf65dd4e2 support for struct type parameters
- param type conversion properly supports deferred param type resolution
- fixed struct conversion incomplete Subroutine traversal
- struct conversion excludes param types from conversion
- parameters are defaulted to have integer type
2020-02-09 17:31:24 -05:00
Zachary Snow 2f8ee303de keyword args conversion covers tasks 2020-02-09 14:17:18 -05:00
Zachary Snow 8a008c3024 interface conversion supports positional port bindings
- also fixes an issue where system tasks were inadvertently prefixed
  during the interface conversion
2020-02-09 13:42:45 -05:00
Zachary Snow 7a00c36a70 jump conversion keeps timing controls at the top level 2020-02-09 11:53:21 -05:00
Zachary Snow eb76d16dde faster package item nesting conversion 2020-02-09 11:52:48 -05:00
Zachary Snow 48f84a9ed4 faster param type conversion 2020-02-09 11:52:33 -05:00
Zachary Snow 88c401e856 additional interface conversion error messages 2020-02-07 19:10:21 -05:00
Zachary Snow 9694799a23 more consistent procedural assignment support 2020-02-01 15:52:52 -05:00
Zachary Snow 610d9abacf support for gates with delays 2020-01-31 20:24:37 -05:00
Zachary Snow 6e4a19d00b flatten generate blocks with one item 2020-01-31 19:43:34 -05:00
Zachary Snow dd0eb5981d added source trace comments
- Trace comments cover module items, decls, and stmts
- Added pseudo-lexer to Alex parser for monadic Position production
- Added Position to every DeclToken
- Removed Comment PackageItem
- Added CommentStmt and CommentDecl
- Fixed traversal skipping outer MIAttr ModuleItems
- Generally cleaned up Parser modules
2020-01-30 22:17:17 -05:00
Zachary Snow 17e17ebd7f fix struct array pattern conversion (resolves #60) 2020-01-20 17:26:03 -08:00
Zachary Snow 6f0fa58ace simplify struct LHS handling 2020-01-14 00:23:16 -05:00
Zachary Snow e62074c756 type operator full select support 2020-01-11 22:52:12 -05:00
Zachary Snow 22d6ba4927 support evaluating functions as statements 2020-01-11 21:06:09 -05:00
Zachary Snow 2bd24b6086 expand type operator support 2020-01-11 20:35:51 -05:00
Zachary Snow b58248fc2c support type operator on simple expressions 2020-01-11 16:22:07 -05:00
Zachary Snow 82217ec05c updated lifetime representation; struct packers use automatic 2019-12-22 12:01:05 -05:00
Zachary Snow 7ea5b60d0b support for inside case statements 2019-12-21 20:41:19 -05:00
Zachary Snow 7f2fe54b11 fix jump statement conversion 2019-12-09 21:17:01 -05:00
Zachary Snow fb5fd39388 support for inside expression ranges and wildcards 2019-12-08 17:36:25 -05:00
Zachary Snow 96fe986b2d cleanup case representation 2019-12-01 23:25:33 -05:00
Zachary Snow c1f027e11a $readmemh/$readmemb imply reg (resolves #57) 2019-11-19 23:41:59 -05:00
Zachary Snow 95299c6f56 conversion of structs with multi-dim fields (resolves #53) 2019-11-19 23:15:25 -05:00
Zachary Snow 49e4f7872d conversion for always_latch (resolves #54) 2019-11-18 19:26:54 -05:00
Zachary Snow eebe41427e language support for final blocks 2019-10-31 20:39:11 -04:00
Zachary Snow eeb2d809fd cleanup interface conversion 2019-10-20 22:06:10 -04:00
Zachary Snow c936b39bd2 use system functions for signedness casts 2019-10-20 16:18:18 -04:00
Zachary Snow 06411d70f1 support converting interfaces with parameters 2019-10-20 15:58:37 -04:00
Zachary Snow 5843ef3879 better error messaging for missing interfaces 2019-10-20 14:53:37 -04:00
Zachary Snow 3597f4a6be support for methods (no conversion) and interface TFs 2019-10-19 16:22:46 -04:00
Zachary Snow 39f0e9b40d minor perf optimization 2019-10-19 14:38:28 -04:00
Zachary Snow cf0e182e65 convert unpacked structs as though packed
- also expands struct literals containing repeat expressions
2019-10-14 22:01:55 -04:00
Zachary Snow a1cd6941ae apply patterns to substructures 2019-10-13 23:37:43 -04:00
Zachary Snow de581ecaf5 initial support for types in struct patterns 2019-10-13 19:01:42 -04:00
Zachary Snow 3979d294eb consistent size casting behavior
- also adds $clog2 localparam substitution to Simplify
2019-10-12 11:40:36 -04:00
Zachary Snow 79f9d21fe7 leave non-data-declarations at the end of modules 2019-10-12 11:18:10 -04:00
Zachary Snow 37355920e0 cleaner AST output 2019-10-11 22:38:47 -04:00
Zachary Snow 3d3359d35a apply BlockDecl conversions to tasks and functions 2019-10-11 19:31:41 -04:00
Zachary Snow 167c65db11 pass through downstream compiler directives 2019-10-10 20:53:49 -04:00
Zachary Snow 8ae89a7bd4 support and convert jumps: break, continue, and return 2019-10-08 23:50:26 -04:00
Zachary Snow 08c38e6193 support time literals as expressions 2019-10-06 21:21:58 -04:00
Zachary Snow 1a394cff9c support mintypmax expressions 2019-10-06 16:18:15 -04:00
Zachary Snow f0368714e1 support generate for without explicit block 2019-10-06 15:36:29 -04:00
Zachary Snow 3807ab6736 handle adding packed dimensions to byte, shortint, and longint 2019-10-01 00:03:07 -04:00
Zachary Snow c6eedb9f26 pass through named events 2019-09-30 23:22:05 -04:00
Zachary Snow b7959c7aa2 support for statement labels and basic fork-join 2019-09-30 23:03:55 -04:00
Zachary Snow 454afa97a3 major array pack and flatten update (closes #48)
- dimensions flattening conversion only flattens packed dimensions
- conversion for packing arrays when necessary (preserves memories)
- added coverage for array with multiple packed dimensions
- test runner no longer forbids multi-dim accesses after conversion
- Decl and subordinate types derive Ord
2019-09-26 23:11:59 -04:00
Zachary Snow dcca974fbc support size casts with complex size expressions 2019-09-25 23:59:47 -04:00
Zachary Snow 1584f39045 allow typename resolution of non-vector types 2019-09-25 23:45:18 -04:00
Zachary Snow 111e04f86e remove extraneous explicit unsigned in params (resolves #47) 2019-09-25 19:42:31 -04:00
Zachary Snow c7f51209df remove extraneous explicit unsigned (resolves #45) 2019-09-24 23:35:06 -04:00
Zachary Snow 0262a3d3c4 struct conversion visits non-asgn LHSs 2019-09-24 22:09:22 -04:00
Zachary Snow f4181aba76 added pass-through support for strings 2019-09-24 22:09:18 -04:00
Zachary Snow 2d81c6470f prevent genvar conflict without changing scope tree 2019-09-21 14:14:55 -04:00
Zachary Snow aa294eaad0 genvars declared in for loops retain scoping (resolves #46) 2019-09-21 13:36:33 -04:00
Zachary Snow 142df3b5f6 fixed handling of unbased unsized literals (resolves #43) 2019-09-18 23:39:09 -04:00
Zachary Snow ba4cf805ff preliminary conversion for size casts 2019-09-18 23:39:09 -04:00
Zachary Snow df3620d3a0 fix premature logic to wire conversion 2019-09-18 23:39:09 -04:00
Zachary Snow d84a4f7bb0 additional generate block simplification 2019-09-17 20:30:33 -04:00
Zachary Snow 7267f94b0b allow signing on net types (closes #40) 2019-09-16 19:50:30 -04:00
Zachary Snow 5d80c83092 support for module attributes (resolves #39) 2019-09-15 23:17:14 -04:00
Zachary Snow bb2a8febea module item traversals visit items with attributes 2019-09-15 16:56:55 -04:00
Zachary Snow 77b9d2f085 support and conversion for foreach 2019-09-15 16:32:19 -04:00
Zachary Snow 2ca8a022ad support and conversion for -> and <-> 2019-09-15 13:55:40 -04:00
Zachary Snow 2a51d20f11 package item nesting resolves across and throughout files 2019-09-14 21:00:40 -04:00
Zachary Snow c5f7f2cc5e typedef conversion gracefully skips yet-unknown typenames 2019-09-14 20:59:41 -04:00
Zachary Snow e27d6920a7 conversion for array query system functions (resolves #37) 2019-09-14 16:46:51 -04:00
Zachary Snow f5d6683422 generalization of array dimension(s) system functions 2019-09-14 12:38:26 -04:00
Zachary Snow 10feedb1af use the Unique package in a few places 2019-09-11 23:01:34 -04:00
Zachary Snow a14d078230 substitution conversion for size casts (closes #27) 2019-09-11 22:52:01 -04:00
Zachary Snow 295ac64929 package item conversions preserve ordering (resolves #36) 2019-09-11 21:16:55 -04:00
Zachary Snow dd3a7e687c EmptyArgs conversion skips global functions until nested 2019-09-11 21:04:57 +02:00
Zachary Snow 4d0d652c86 enum preserves alias base type dimensions 2019-09-11 20:45:41 +02:00
Zachary Snow bd2efb4201 support struct patterns with partial defaults (resolves #35) 2019-09-11 19:32:24 +02:00
Zachary Snow 6271e16b68 functional parameter type conversion 2019-09-11 17:58:03 +02:00
Zachary Snow 4de585ec0f initial parameter type conversion 2019-09-11 09:27:18 +02:00
Zachary Snow 8df1e67faf typedef traversal only marks interfaces as such 2019-09-09 18:44:45 +02:00
Zachary Snow 677d11091b added monadic file traversal helper 2019-09-09 18:44:04 +02:00
Zachary Snow 66989b0446 language support for parameter type bindings 2019-09-09 07:38:14 +02:00
Zachary Snow d11e898edb Added ParamType decl; combined parameter and localparam under Param 2019-09-09 07:34:43 +02:00
Zachary Snow 9cc211d51e fix non-vector enum base types (closes #29) 2019-09-05 00:34:56 -04:00
Zachary Snow baaffd732d remove unused import 2019-09-04 21:01:27 -04:00
Zachary Snow 41bba1b2f2 generate localparams for all package enums (closes #26) 2019-09-04 20:59:41 -04: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 97fda59c51 convert needless patterns to concats 2019-09-02 22:35:36 -04:00
Zachary Snow 1f7c70dfe1 language support for LHS streaming operators 2019-09-02 20:46:35 -04:00
Zachary Snow d6c932d0fc conversion for block decls with asignments 2019-09-02 13:08:41 -04:00
Zachary Snow 04de45b08b language support for streaming operators 2019-09-01 18:42:16 -04:00
Zachary Snow 704e867c0c packed array conversion packs any unsupported unpacked dimensions 2019-09-01 18:39:01 -04:00
Zachary Snow 243f773657 convert for loop declarations and assignments to signle assignment (closes #15) 2019-08-30 00:12:01 -04:00