Commit Graph

42 Commits

Author SHA1 Message Date
Zachary Snow 8d37db30e5 support complex modport expressions
- modports can use complex expressions
- update interface_infer test for consistency across simulators
- fix interface inlining of implicitly typed data declarations
2020-06-19 20:32:37 -04:00
Zachary Snow 8ae925d92e support modports depending on other interface data declarations 2020-06-19 20:07:57 -04:00
Zachary Snow 3cfd368bc2 support multi-dimensional instances 2020-06-17 22:18:08 -04:00
Zachary Snow 99428b2f16 expanded support for interfaces with parameters 2020-06-14 22:57:46 -04:00
Zachary Snow 12be569742 reduce usage of maybe 2020-06-14 15:56:09 -04:00
Zachary Snow b6f4f690e7 support simple bundle interfaces
- fix position modport-to-modport bindings
- inout logics converted to regs become outputs
2020-06-03 20:26:17 -04:00
Zachary Snow f381476161 support nested interfaces 2020-04-13 22:50:41 -04:00
Zachary Snow b8d512e31f remove unneeded imports 2020-04-05 13:45:22 -04:00
Zachary Snow 35e75c0604 language support for strengths 2020-03-20 21:13:57 -04:00
Zachary Snow c876c447e6 fix interface inlining renaming 2020-02-09 22:17:48 -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 88c401e856 additional interface conversion error messages 2020-02-07 19:10:21 -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 eeb2d809fd cleanup interface conversion 2019-10-20 22:06:10 -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 5d80c83092 support for module attributes (resolves #39) 2019-09-15 23:17:14 -04:00
Zachary Snow d11e898edb Added ParamType decl; combined parameter and localparam under Param 2019-09-09 07:34:43 +02:00
Zachary Snow 04337988cc standardized handling of resolution across source files 2019-04-30 15:44:52 -04:00
Zachary Snow 33dc4b3f88 conversions are applied per-file
- NestTF refactored to cover all package items
- fixed issue where type traverse skipped typedefs
2019-04-23 18:51:39 -04:00
Zachary Snow da38776d73 decls are now package items 2019-04-23 17:12:56 -04:00
Zachary Snow 4178751b22 interface conversion handles decls with unpacked dimensions 2019-04-23 15:48:25 -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 07b64bd1f2 clearer messaging surrounding unsupported interface conversion features 2019-04-17 01:44:03 -04:00
Zachary Snow 231b7f9936 interface conversion respects port direction when inlining bindings 2019-04-11 14:08:50 -04:00
Zachary Snow fb3d68e339 propper support for indexed part select addressing 2019-04-05 13:53:52 -04:00
Zachary Snow 86195d9ea1 interface conversion obeys function/task identifier shadowing 2019-04-02 13:35:15 -04:00
Zachary Snow f13275bfa1 fix Struct and Interface conversion for expressions within LHSs 2019-04-02 01:00:02 -04:00
Zachary Snow 9b8a95029b more robust and full-featured interface conversion 2019-04-01 01:23:44 -04:00
Zachary Snow 7883e263f9 several conversion bug fixes
- convert default pattern used to fill a vector
- convert Logic in parameter and localparam types
- interface conversion should happen early for type resolution later on
- interface conversion handles renaming of usages of inlined decls
2019-03-31 15:01:10 -04:00
Zachary Snow c8e776265c fix ports bound to decls inlined from an interface expansion 2019-03-30 22:15:48 -04:00
Zachary Snow 39f6bbb3d8 preliminary support for extern and module/interface lifetimes 2019-03-26 15:10: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 77f0d23d4b starting work to clean up and segment AST 2019-03-22 19:39:28 -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 73b11b3662 move interface conversion assign bindings to be after inlining 2019-03-08 18:23:38 -05:00
Zachary Snow b2b1c9e52c allow .* as element of partial port bindings 2019-03-07 18:20:34 -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 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