Zachary Snow
70ec448a31
remove iverilog workaround from typeof_scope.sv
...
With steveicarus/iverilog#483 resolved, this workaround is no longer
necessary.
2024-05-08 08:57:17 -04:00
Zachary Snow
9825bb9bcb
tweak codegen for bitwise binary followed by reduction unary
2024-01-04 22:09:04 -07:00
Zachary Snow
e9c01d2434
support wait statements
2023-12-03 13:16:01 -05:00
Zachary Snow
b09fdaf76a
simplify shadowing notes non-trivial localparams too
2023-08-08 22:30:36 -04:00
Zachary Snow
5b035613ee
constant fold || and &&
2023-08-08 22:25:39 -04:00
CORRADI Quentin
619bde4be1
support for attributes in unary, binary, and ternary expressions
...
Co-authored-by: qcorradi <q.corradi22@imperial.ac.uk>
Co-authored-by: Zachary Snow <zach@zachjs.com>
2023-07-31 22:52:28 -04:00
Zachary Snow
07caba64a5
simplify non-ANSI style port declaration dimensions
2023-07-31 21:31:34 -04:00
Zachary Snow
bef9b1a3f0
allow inout task and function ports
2023-07-26 23:42:51 -04:00
Zachary Snow
9de4d44305
simplify handles shadowing via vars and genvars
2022-12-24 00:51:05 -07:00
Zachary Snow
effeded6d1
support procedural continuous assignments
2022-05-10 12:11:32 -04:00
Zachary Snow
f68bf187af
refactor event control internals
...
- event expressions use Expr over LHS
- stricter AST representation of event controls
- property specs use event expressions directly
2022-04-11 17:44:47 -06:00
Zachary Snow
53fa152fc4
upgrade to latest iverilog
2022-02-15 19:14:55 +01:00
Zachary Snow
03a913ad65
fix illegal removal of width-extending `+ 0` and `* 1`
2021-11-15 21:26:08 +01:00
Zachary Snow
77ee49a80e
allow space between @ and *
2021-08-19 16:01:45 -06:00
Zachary Snow
7325bd7976
support bare delay controls with real number delays
2021-08-17 09:53:28 -06:00
Zachary Snow
cd45696ace
parse alternate spacings of sense star
2021-08-16 22:39:33 -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
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
1e6fa7b858
fix looping simplification on unfolded based literals
2021-07-22 12:45:53 -04:00
Zachary Snow
2f7128428e
fix errant untyped localparam substitution
2021-07-10 14:38:06 -04:00
Zachary Snow
52ccd3d383
additional test coverage for existing logic
2021-07-09 10:34:35 -04:00
Zachary Snow
91e3ac0fb1
normalize trailing whitespace in escaped identifiers
2021-07-08 17:17:45 -04:00
Zachary Snow
9d7f917608
handle naming and scoping of unnamed generate blocks
2021-06-30 14:24:35 -04:00
Zachary Snow
d95a56286c
split out basic suite tests with refs to new core suite
2021-06-25 11:21:47 -06:00
Zachary Snow
3f20055cd6
proper support for static class methods
2021-06-24 22:15:46 -06:00
Zachary Snow
afc3ea435b
fix interface conversion erroneously renaming colliding pattern names
2021-06-23 21:39:15 -04:00
Zachary Snow
dbbf71c65a
revised struct pattern representation
...
- pattern keys now represented as TypeOrExpr
- support for simple integer struct pattern keys
2021-06-20 15:32:12 -04:00
Zachary Snow
6743725cca
support partial packing of multidimensional unpacked arrays
2021-06-19 18:45:35 -04:00
Zachary Snow
3955c47e7a
support parameterized class items depending on local generate scopes
...
- previously the overrides for parameterized data types could only
reference data declarations at the module scope
- their use within procedures is still allowed, but cannot currently
refer to localparams declared within procedures
- add procedure scope location accessors to allow scoped traversals to
mark where injected items will end up in advance
2021-06-19 14:46:00 -04:00
Zachary Snow
108852060e
prefix bare generate blocks with conditionals in codegen
2021-06-17 15:27:51 -04:00
Zachary Snow
c0cb401abe
fix handling of end labels
...
- disallow using end label alone on blocks
- improved parse error for mismatches
- add label checking for non-block constructs
- allow generate block to have label before begin
2021-06-15 17:47:32 -04:00
Zachary Snow
a87ee7c11b
additional param type conversion bug fixes
...
- general refactoring throughout
- improved metrics for dropping unneeded modules
- fix re-visiting a converted instance in the same pass
2021-06-15 16:46:53 -04:00
Zachary Snow
a47afa96b8
don't force int types to be regs
2021-06-05 16:44:56 -04:00
Zachary Snow
d2a18e01f2
replace integer unsigned with size-32 reg
2021-06-03 21:18:32 -04:00
Zachary Snow
36fcce8934
fix param type default pollution
2021-06-03 20:51:26 -04:00
Zachary Snow
84986cc197
fix errant reordering on cs/ps alias idents
2021-06-03 15:25:21 -04:00
Zachary Snow
24a79ffebe
support multi-dimensional modports
2021-06-02 15:36:44 -04:00
Zachary Snow
13c84e4c7a
refactor parameter binding resolution
...
- fix type/expr ambiguity for interface and class parameters
- check for parameter kind mismatch up front
- centralize key logic in ResolveBindings
2021-05-31 14:13:49 -04:00
Zachary Snow
0aa59165a1
fix size of empty strings to be one byte
2021-05-30 22:07:51 -04:00
Zachary Snow
a293002ad7
resolve package and class idents within class parameters
2021-05-29 23:25:47 -04:00
Zachary Snow
0a65abd614
full support for package and class subroutine invocations
2021-05-29 22:34:03 -04:00
Zachary Snow
7ffea36ddd
improved handling of string parameters
...
- variable-size string parameter conversion restricted to modules which
depend on the size of the string parameter
- string localparams are typed as appropriately sized vectors
- remove ordered parameter binding logic from string param conversion
2021-05-28 20:27:14 -04:00
Zachary Snow
801955ffab
support for empty port connections
2021-05-21 14:08:12 -04:00
Zachary Snow
a6ebc0e3ff
fix elaboration of struct array fields referenced hierarchically
...
- `expr.name[idx]` considers `expr.name` could be a struct array
- remove fallback struct type lookups which were guaranteed to fail
2021-05-09 19:24:23 -04:00
Zachary Snow
f71accb3c8
fix simple delayed multi-pack conversion within interface
2021-05-09 18:06:46 -04:00
Zachary Snow
b0b7962529
additional dimension query coverage
2021-04-27 21:25:44 -04:00
Zachary Snow
e6263d6caa
support function calls within type parameters
2021-04-26 18:13:36 -04:00
Zachary Snow
5a8801a45f
allow trailing commas in parameter and port lists and bindings
2021-04-23 16:17:18 -04:00
Zachary Snow
499bd5873e
fall back to lower-precedence multipack transformations
2021-04-16 17:46:40 -04:00
Zachary Snow
ecee8b3358
support for interface based typedefs
2021-04-15 11:35:20 -04:00