Commit Graph

187 Commits

Author SHA1 Message Date
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 3834b9f109 support type lookup of genvars 2020-08-01 20:14:40 -06:00
Zachary Snow 698e3b0b54 fix unbased unsized binding conversion for instances with type parameters 2020-07-27 19:04:41 -06:00
Zachary Snow 21ebbb5a19 use repeats for converted unbased-unsized literals
- reduces the number of cast functions which are generated
- adjust package_function_cast to preserve cast converage
- fix issue where cast functions would be generated before localparam
  substitution within a procedure
2020-07-24 21:29:59 -06:00
Zachary Snow f0a5a47371 fix break/continue causing return after loop 2020-07-23 19:04:20 -06:00
Zachary Snow bbb469463b fix typing bit and part selects 2020-07-23 18:23:40 -06:00
Zachary Snow 8537a9efda fix scoping of single-item generate conditionals 2020-07-22 20:30:33 -06:00
Zachary Snow 5ad8de9ef7 standardize pattern conversion 2020-07-21 18:05:27 -06:00
Zachary Snow 49c0d297c9 fix package conversion not prefixing declarations with assignments (resolves #115) 2020-07-20 22:19:18 -06:00
Zachary Snow e88a6b9d84 fix type lookup of yet-unresolved types (resolves #111) 2020-07-20 17:06:13 -06:00
Zachary Snow 7eed2fc58e fix handling of multi-dimensional integer array literals (resolves #113) 2020-07-20 16:55:55 -06:00
Zachary Snow e6e62e8813 typedef conversion visits nested types in statements 2020-07-19 20:54:44 -06:00
Zachary Snow 90de4aa121 fix inadvertent duplicate casts 2020-07-19 19:09:57 -06:00
Zachary Snow 03b6ece939 address type lookup of $unsigned and $signed 2020-07-17 19:18:54 -06:00
Zachary Snow a38137b69a fix conversion of casts in gen item exprs 2020-07-15 19:04:11 -06:00
Zachary Snow 5667bdb589 unpacked array conversion supports generate scoped data
- added type class for looking up elements in scoped conversions
2020-07-14 22:59:59 -06:00
Zachary Snow b19259c694 upgraded size cast conversion
- support casts of generate scoped expressions
- support casts to sizes involving genvars
2020-07-14 20:10:38 -06:00
Zachary Snow 2d3973e624 synthesizable wildcard conversion 2020-07-13 23:15:06 -06:00
Zachary Snow db21869e69 fix premature conversion of casts containing dimension queries 2020-07-12 16:23:08 -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 737c66a6c9 fix default type parameters which depend on other parameters 2020-07-10 17:45:36 -06:00
Zachary Snow a7673c55fd automatically fix simple declaration order issues 2020-07-08 22:20:40 -06:00
Zachary Snow 4b5e3232b9 support for localparam type 2020-07-08 19:39:26 -06:00
Zachary Snow 671101a30b allow type parameters to depend on other parameters 2020-07-08 18:56:41 -06:00
Zachary Snow 296e246158 fix multi-dimensional array unbased unsized pattern conversion 2020-07-06 22:26:04 -06:00
Zachary Snow 9520894720 unbased unsized conversion refactor
- support ubased unsized bound to ports using injected constants
- explicit context-aware literal sizing for complex expressions
- fix infinite loop case in NestPI conversion
- elaborate size-casts of converted literals
2020-07-06 22:11:53 -06:00
Zachary Snow 1903bc190d use unbounded integers 2020-07-02 23:33:03 -06:00
Zachary Snow cd8af036a0 logic conversion supports generate block scoping 2020-07-02 22:59:06 -06:00
Zachary Snow 85e3d0f5b5 initial generate block scoping support
- significant refactor of struct conversion
- significant refactor of typedef conversion
- scoping support in multipack conversion
- scoping support in typeof conversion
2020-07-02 22:58:59 -06:00
Zachary Snow 211e4b0ed8 fix literal casts larger than 32 bits 2020-07-01 23:35:30 -06:00
Zachary Snow 82d06b3915 elaboration avoid introducing illegal selects 2020-06-25 17:36:09 -07:00
Zachary Snow 80154feb5e logic conversion notices procedural assignments in tasks and functions 2020-06-25 09:31:39 -07:00
Zachary Snow 24071d74ac paramtype conversion resolves dimension queries before substitution 2020-06-25 00:09:56 -07:00
Zachary Snow 2535d689aa fix struct/interface/logic conversion interactions
- interface conversion only waits for type resolution of modports
- typeof conversion resolves struct field accesses
- logic conversion only converts logic data declarations
- struct conversion only converts within modules
- fix nested type traversal order causing premature struct conversion
2020-06-20 22:46:54 -04:00
Zachary Snow 4026ae8fa5 interface conversion respects shadowed variables 2020-06-20 15:56:01 -04:00
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 661703a8c2 address import resolution issues
- fix wildcard imports shadowing other items
- fix explicit imports depending on other items
- fix example export in package.sv
2020-06-18 21:18:08 -04:00
Zachary Snow 64f3067d78 allow dimension shorthand for instance arrays 2020-06-17 22:26:27 -04:00
Zachary Snow 3cfd368bc2 support multi-dimensional instances 2020-06-17 22:18:08 -04:00
Zachary Snow 5d02b918c3 fix inside and wildcard equality conversions
- handle cases where wildcard equality short-circuits to 0
- move checking for extraneous X/Z to wildcard conversion
- add exhaustive test coverage
2020-06-16 19:40:46 -04:00
Zachary Snow 99428b2f16 expanded support for interfaces with parameters 2020-06-14 22:57:46 -04:00
Zachary Snow 8cfd05de1a unbased unsized literals are context-aware 2020-06-14 21:43:32 -04:00
Zachary Snow cbe0071e43 fix bit param sizing (resolves #94) 2020-06-14 19:45:32 -04:00
Zachary Snow 682620b23f struct conversion includes exprs in decls 2020-06-13 22:14:53 -04:00
Zachary Snow 2bc2eb59d8 advanced typeof support
- most binary operators
- ternary expressions
- bitwise negation
- number literals
- size casts
- concat and repeat expressions
2020-06-07 13:13:19 -04:00
Zachary Snow d0a6b0f529 fix 32 bit constant cast 2020-06-07 00:28:55 -04:00
Zachary Snow 82703834ac constant folding for shifts 2020-06-06 22:45:17 -04:00
Zachary Snow 2d7982f81e simplify $bits on simple part selects 2020-06-06 21:28:37 -04:00
Zachary Snow eb93ba67fc integer atom explicit sign cast support 2020-06-06 21:26:14 -04:00