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
003d4dbc4e
param type conversion initial cleanup
2021-06-07 23:39:26 -04:00
Zachary Snow
36fcce8934
fix param type default pollution
2021-06-03 20:51:26 -04:00
Zachary Snow
e52de9d4a6
remove legacy ordered binding handling in param type conversion
2021-05-31 16:52:57 -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
e6263d6caa
support function calls within type parameters
2021-04-26 18:13:36 -04:00
Zachary Snow
bdc7b5ad69
replace some invariant errors with pattern matching
2021-04-21 19:50:03 -04:00
Zachary Snow
04d6fa6199
fix additional type parameter instantiation issues
...
- avoid premature conversion of default struct type parameters
- allow use of $clog2, $signed, and $unsigned in type parameters
- more thorough and efficient top reference ident renaming
- precede type param conversion with hier const pass
2021-04-13 22:22:33 -04:00
Zachary Snow
623f0a2d39
fix missing top reference renames in param type instantiation
...
- renaming applies to nodes within generate blocks
- renaming applies to LHSs
2021-04-13 16:47:00 -04:00
Zachary Snow
f84dd70186
fix handling of hierarchical references with type parameters
...
- wait for hierarchical references within an instance's type parameters
to be resolved before instantiating the module
- references to a module's top-level named scopes are now correctly
renamed when creating new type parameter modules
2021-02-21 17:16:20 -05:00
Zachary Snow
aea2975d66
remove outdated TODOs
2021-02-19 12:24:56 -05:00
Zachary Snow
378ede9e1a
standardize internal representation of unknown types
2021-01-24 09:55:03 -07:00
Zachary Snow
e4135bb896
use strict State and Writer monads
2020-08-11 19:14:18 -04:00
Zachary Snow
c28bb71ac5
more careful expr and type traversals
2020-07-15 18:44:57 -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
69b2e86aee
remove pattern synonyms which introduced excessive overhead
2020-07-09 21:01:18 -06:00
Zachary Snow
ff166df59c
fix conversion of implicitly-typed type parameters
2020-07-09 21:00:23 -06:00
Zachary Snow
4b5e3232b9
support for localparam type
2020-07-08 19:39:26 -06:00
Zachary Snow
9aa8d5a5d3
remove outdated TODOs
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
219a57c37b
preliminary language support for parameterized class scopes
2020-07-08 17:46:37 -06:00
Zachary Snow
24071d74ac
paramtype conversion resolves dimension queries before substitution
2020-06-25 00:09:56 -07:00
Zachary Snow
12be569742
reduce usage of maybe
2020-06-14 15:56:09 -04:00
Zachary Snow
b71e0f5346
performance improvements
...
- removed repetition in dimension query conversion
- removed repetition in package item nesting conversion
- packing item nesting conversion short circuit
- param type conversion doesn't bother renaming non-param type instances
- implement showsPrec for certain expression cases
2020-06-14 09:20:34 -04:00
Zachary Snow
ea81d55cdc
fix duplicate param type modules
2020-05-31 22:00:57 -04:00
Zachary Snow
c262324a36
removed Unique dependency
...
- made stream conversion pure
- type param conversion uses Set for instance uniqueness
- updated NOTICE and resolutions
2020-04-05 13:09:52 -04:00
Zachary Snow
4cf65dd4e2
support for struct type parameters
...
- param type conversion properly supports deferred param type resolution
- fixed struct conversion incomplete Subroutine traversal
- struct conversion excludes param types from conversion
- parameters are defaulted to have integer type
2020-02-09 17:31:24 -05:00
Zachary Snow
48f84a9ed4
faster param type conversion
2020-02-09 11:52:33 -05:00
Zachary Snow
7267f94b0b
allow signing on net types ( closes #40 )
2019-09-16 19:50:30 -04:00
Zachary Snow
5d80c83092
support for module attributes ( resolves #39 )
2019-09-15 23:17:14 -04:00
Zachary Snow
10feedb1af
use the Unique package in a few places
2019-09-11 23:01:34 -04:00
Zachary Snow
6271e16b68
functional parameter type conversion
2019-09-11 17:58:03 +02:00
Zachary Snow
4de585ec0f
initial parameter type conversion
2019-09-11 09:27:18 +02:00