Commit Graph

907 Commits

Author SHA1 Message Date
Zachary Snow 109964bfc3 limit compilation to two threads 2021-08-19 22:17:31 -06:00
Zachary Snow 77ee49a80e allow space between @ and * 2021-08-19 16:01:45 -06:00
Zachary Snow 47c05c04b8 support parameters which use a type-of as the data type 2021-08-18 13:33:40 -06:00
Zachary Snow bf029068af move exprToType utility outside to language module 2021-08-18 13:07:42 -06:00
Zachary Snow 9acdb848c9 ensure arrays used in nested ternary expressions are properly flattened 2021-08-18 10:25:14 -06:00
Zachary Snow 95e1ed8dda add changelog to artifacts 2021-08-17 11:27:52 -06:00
Zachary Snow 7ccab1c70a fix parsing of sized ports with implicit directions 2021-08-17 10:27:17 -06:00
Zachary Snow 7325bd7976 support bare delay controls with real number delays 2021-08-17 09:53:28 -06:00
Zachary Snow 69874edc80 add missing changelog entries 2021-08-17 09:46:59 -06:00
Zachary Snow cd45696ace parse alternate spacings of sense star 2021-08-16 22:39:33 -06:00
Zachary Snow c17d859988 tolerate escaped vendor comments within macros 2021-08-16 18:22:04 -06:00
Zachary Snow 581a7911de support for deferred immediate assertion statements 2021-08-16 17:50:23 -06:00
Zachary Snow 4ded2a598d apply implicit port directions to tasks and functions 2021-08-15 12:25:32 -07:00
Zachary Snow 61ccf3cb22 remove unintentional tabs in struct_pattern_cast.v 2021-08-15 12:23:13 -07:00
Zachary Snow 30acc3e3f9 fix spacing of as-patterns for future GHC upgrade 2021-08-12 16:13:12 -06:00
Zachary Snow 536eba46b9 use bimapM for mapBothM 2021-08-10 09:48:13 -06:00
Zachary Snow 306d71334b refactor sizing and truncation of integer literals
- use iverilog's -gstrict-expr-width throughout test suite
- add warnings for excess bits or padding zeroes in number literals
- add new --oversized-numbers parameter to retain support for unsized
  numbers wider than 32 bits
- localized use of oversized numbers to new truncate test suite which
  verifies the behavior of both modes, and compares against the known
  behavior of iverilog
2021-08-09 22:10:29 -06:00
Zachary Snow 5e5ddca444 fix broken two's complement logic 2021-08-08 21:36:36 -06:00
Zachary Snow 59d37468a4 fix internal interpretation of negative number literals
- detect and forbid non-positive size casts
- detect and forbid negative struct pattern literal indices
- avoid invalid constant folding of negative based literals
2021-08-07 21:11:35 -06:00
Zachary Snow 7e9fb3379c refactor internal frontend interface
- add unified frontend configuration record to make adding future
  options easier
- use ExceptT throughout, rather than using runExceptT at internal
  boundaries
2021-08-06 22:23:34 -06:00
Zachary Snow c5691d9500 move --pass-through to the conversion option group 2021-08-05 22:16:39 -06:00
Zachary Snow 527b59ff12 upgrade iverilog to lastest on v11-branch
Workarounds for resolved iverilog issues have been removed.
2021-08-04 17:50:53 -06:00
Zachary Snow 44c2e870f0 test runner checks for warnings emitted by sv2v 2021-08-02 09:18:45 -06:00
Zachary Snow 543b4590cb streamline iverilog test wrapper 2021-08-01 16:38:41 -06:00
Zachary Snow a6111e20e4 add stub change log 2021-07-31 14:27:20 -04:00
Zachary Snow da088951fa release v0.0.8 2021-07-31 14:12:12 -04:00
Zachary Snow 2a551e1059 upgrade to GHC 8.10.4
- upgrade to happy 1.20
- placate GHC warning on version fallback
- fix stack sdist failure
2021-07-30 13:54:05 -04:00
Zachary Snow fd96b8a710 unbased unsized conversion inlines module stubs
- support ports with sizes which depend on constant functions
- restore package item injection utility to package conversion module
- additional unbased unsized conversion test coverage
2021-07-29 19:54:20 -04:00
Zachary Snow 37c8938eff attempt number cast simplification after substitution 2021-07-29 13:11:25 -04:00
Zachary Snow 1aa30ea813 allow genvars to be shadowed 2021-07-27 19:17:03 -04:00
Zachary Snow e0d425d976 default implicit output ports to logic 2021-07-27 17:20:09 -04:00
Zachary Snow 93ba497c12 allow simple unbased-unsized RHSs to sign extend 2021-07-26 22:00:00 -04:00
Zachary Snow 17b01b1683 simplify mod 1 to 0 2021-07-26 13:03:01 -04:00
Zachary Snow 5345a72c9e elaborate `wire integer` to `wire signed [31:0]` 2021-07-25 15:37:27 -04:00
Zachary Snow 121fea5aec avoid unnecessary casts on substituted hierarchical constants 2021-07-24 17:01:17 -04:00
Zachary Snow 46be0edbdf simplify cast scoper lookup and removal 2021-07-24 16:41:31 -04:00
Zachary Snow 1311e449fe fix errant expr resolution flagging
- references to other instances are no longer flagged
- special handling for genvars to avoid flagging and modport scoping
- interface inlining visits expressions in declarations
- Scoper has interface for removing entries
2021-07-23 19:59:26 -04:00
Zachary Snow 1e6fa7b858 fix looping simplification on unfolded based literals 2021-07-22 12:45:53 -04:00
Zachary Snow b2b6f8f8f2 fix two paramtype edge cases
- don't keep unused template modules even if they are fully-specified
- don't reduce modules with unbound type parameters
2021-07-22 00:58:19 -04:00
Zachary Snow ab867465da fix handling of explicitly typed struct patterns in other contexts 2021-07-21 14:31:43 -04:00
Zachary Snow dde734be26 handle params with unpacked typenames 2021-07-21 11:57:04 -04:00
Zachary Snow b2fe865e17 fix interface modport substitution strategy
The interface conversion no longer substitutes parameters immediately,
instead fully scoping modports and allowing hierarchical constants to be
resolved separately. This fixes an issue where struct parameters could
lose their type information during substitution. The conversion also now
handles renaming references to the module or interface top-level scope.
2021-07-20 22:36:59 -04:00
Zachary Snow 67c0d22a64 handle functions with unpacked return typenames 2021-07-20 17:38:04 -04:00
Zachary Snow 8a554113c8 don't process global items when looking up identifiers in packages 2021-07-19 12:33:11 -04:00
Zachary Snow 56c597e35e support explicitly typed struct patterns 2021-07-19 11:42:36 -04:00
Zachary Snow 836536c362 remove newly unneeded Ord instances 2021-07-18 20:19:39 -04:00
Zachary Snow 23d82c621f paramtype conversion no longer sorts by type 2021-07-18 20:12:06 -04:00
Zachary Snow 16a13ee915 fix cascaded generate block cast and scope resolution
- scoper item injection can no longer affect generate scoping
- cast conversion injects functions into the top level when possible
- cast conversion considers loop variables to be local
- `else if` generate blocks are still scopes at the current level
2021-07-17 22:56:14 -04:00
Zachary Snow eda9a34ad5 add simplification assumption for reversed sized ranges 2021-07-16 16:32:11 -04:00
Zachary Snow dd951740e7 remove some dead code 2021-07-16 12:30:35 -04:00