Commit Graph

158 Commits

Author SHA1 Message Date
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
Zachary Snow a8346f2f88 actually fix unbased unsized literals in ternary exprs 2020-06-06 17:01:27 -04:00
Zachary Snow 355b62da70 pack arrays in ternary expressions assigned to other arrays 2020-06-06 13:42:30 -04:00
Zachary Snow 7e20b74147 logic conversion handles shadowing 2020-06-05 21:41:03 -04:00
Zachary Snow 80bfbc1e8a fix unbased unsized literals in ternary exprs 2020-06-05 21:40:59 -04:00
Zachary Snow 9249c9fa2b typdef conversion obeys generate scoping 2020-06-05 21:38:31 -04:00
Zachary Snow ae392d4536 fix single bit enum sizing
- single bit localparams retain explicit range
- fix $bits on unsized literals
- use Implicit over Maybe for underlying type
2020-06-05 21:32:02 -04:00
Zachary Snow 97b2d1d166 fix declaration order of generated enum items 2020-06-05 21:32:02 -04:00
Zachary Snow ecf047e36e fix declaration order of nested package items 2020-06-05 21:31:58 -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 478f0d19d2 fix premature typename cast conversion (resolves #88) 2020-06-01 18:19:47 -04:00
Zachary Snow 9042145695 substitute localparams into type params 2020-05-31 22:01:40 -04:00
Zachary Snow ea81d55cdc fix duplicate param type modules 2020-05-31 22:00:57 -04:00
Zachary Snow 3e85885def fix conversion of multi-packed arrays in packages 2020-05-04 19:22:36 -04:00
Zachary Snow f381476161 support nested interfaces 2020-04-13 22:50:41 -04:00
Zachary Snow e7381c4db2 fix double multipack conversion of Exprs in LHSs 2020-03-24 22:02:38 -04:00
Zachary Snow 5ad4849454 fix slicing direction for multi-packed arrays 2020-03-22 19:37:58 -04:00
Zachary Snow c03dba096f pack sliced arrays (resolves #78) 2020-03-18 23:40:21 -04:00
Zachary Snow a415d9eb3d fix type propagation of struct fields bit accesses 2020-02-20 00:19:14 -05:00
Zachary Snow 470fa01eb2 updated casting conventions
- explicit enum casts in source are converted to size casts
- conversion for basic pattern array literals of unsized numbers
- unsized number array literals preserve signing
- more aggressive ternary simplification
2020-02-19 18:58:25 -05:00
Zachary Snow 976f582287 push struct and multi-packed ternaries into ranges
- the ternary expressions were previously used to decide the direction
  of generated part selects
- this fixes an issue where ternaries were generated for LHSs
2020-02-18 21:25:20 -05:00
Zachary Snow 8f2d7dd5c7 fixed multiple issues with struct and multi-packed conversions
- struct conversion handles directionality of fields
- struct conversion supports minus part selects
- fixed incorrect handling of directional part selects in multi-packed
  conversion
- multi-packed conversion defines standard ranges in terms of
  directional part selects for clarity
- fixed potential loop due to overeager untagging in multi-packed
  conversion
2020-02-17 13:57:48 -05:00
Zachary Snow 5f0ccee065 conversion for unsized integer arrays 2020-02-17 12:12:51 -05:00
Zachary Snow 20dc92f6d8 fix typeof integer slices 2020-02-16 23:39:48 -05:00
Zachary Snow 9af38e7870 globally imported items are selectively nested 2020-02-16 15:44:03 -05:00
Zachary Snow 799141af42 enum conversion covers nested module items (resolves #70) 2020-02-15 17:14:59 -05:00
Zachary Snow 463cdcb2c1 support complex sizes in size casts (resolves #69) 2020-02-15 16:48:09 -05:00
Zachary Snow fe8839eaec fix struct typing of ternary expressions (resolves #73) 2020-02-15 14:44:49 -05:00
Zachary Snow b124a561f2 updated binary and unary operator printing (resolves #72) 2020-02-15 14:11:17 -05:00
Zachary Snow aea64e903c pack arrays assigned to other arrays 2020-02-13 23:59:01 -05:00