Zachary Snow
bceec39339
standardize input handle logic
2021-08-26 14:26:22 -06:00
Zachary Snow
40f66e0212
add type signatures for all parser rules
...
This works around a compilation performance regression in GHC 9.0.1:
https://gitlab.haskell.org/ghc/ghc/-/issues/20261 . This also speeds up
compilation on other versions.
2021-08-24 09:20:55 -06:00
Zachary Snow
da2d4117f2
specialized parsing for parameter port lists
...
This adds support for typed valued parameters declared in parameter port
lists without explicitly providing a leading `parameter` or `localparam`
marker.
2021-08-20 18:08:14 -06:00
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