Zachary Snow
404385b00f
allow arbitrary .v output file using -w/--write
2021-06-16 20:31:37 -04:00
Zachary Yedidia
5eef44c8f4
Add file output write mode
2021-06-16 20:31:37 -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
003d4dbc4e
param type conversion initial cleanup
2021-06-07 23:39:26 -04:00
Zachary Snow
a47afa96b8
don't force int types to be regs
2021-06-05 16:44:56 -04:00
Zachary Snow
ecaaec9c00
minor codegen cleanup
2021-06-04 15:38:51 -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
e0e296349a
check for unknown named bindings
2021-06-01 13:09:36 -04:00
Zachary Snow
e52de9d4a6
remove legacy ordered binding handling in param type conversion
2021-05-31 16:52:57 -04:00
Zachary Snow
69bc64ed15
remove legacy ordered binding handling in logic conversion
2021-05-31 16:38:29 -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
c0282862ea
error if procedural block has a decl after a stmt
2021-05-29 21:55:50 -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
280d3dc5a6
fix codegen for generic interface types
2021-05-25 22:10:33 -04:00
Zachary Snow
315733f293
output unpacked localparam types as typedefs
2021-05-24 23:06:07 -04:00
Zachary Snow
74a10a8e13
fix else branch association in verbose mode
2021-05-23 15:54:49 -04:00
Zachary Snow
fbde7aaca6
faster test runner pattern matching
2021-05-22 22:00:32 -04:00
Zachary Snow
801955ffab
support for empty port connections
2021-05-21 14:08:12 -04:00
Zachary Snow
eae46b7ad2
improved interface modport type checking
2021-05-12 22:00:22 -04:00
Zachary Snow
68fa8290c0
interface instantiation checks for errant name resolution
2021-05-09 19:32:39 -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
12c57ecc24
preprocessor cleanup and extended test coverage
2021-05-06 16:14:41 -04:00
Zachary Snow
2885e21cdd
fix handling of preproc conditionals within macros
...
- preproc reads identifiers unconditionally
- drop leading whitespace for default macro args
- very minor preproc cleanup
2021-05-04 16:19:07 -04:00
Zachary Snow
c59334ceb8
allow preproc idents to begin with macro arguments
2021-05-03 17:53:41 -04:00
Zachary Snow
10b30d7d1e
detect infinite include loops
2021-05-01 21:12:00 -04:00
Zachary Snow
5cc4dce01f
refactor positional binding checking and resolution
2021-04-30 14:10:09 -04:00
Zachary Snow
ba270acb0e
forbid mixing ordered and named port or param bindings
2021-04-29 15:32:54 -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
bdc7b5ad69
replace some invariant errors with pattern matching
2021-04-21 19:50:03 -04:00
Zachary Snow
cfff359b51
isolate parse state abstraction
2021-04-20 19:47:55 -04:00
Zachary Snow
499bd5873e
fall back to lower-precedence multipack transformations
2021-04-16 17:46:40 -04:00
Zachary Snow
dc19b5f944
use cabal package version as fallback when repo is missing
2021-04-15 13:47:45 -04:00
Zachary Snow
ecee8b3358
support for interface based typedefs
2021-04-15 11:35:20 -04:00
Zachary Snow
1ba5ab2739
size using lhs for reg continuous assignment indirection
2021-04-14 14:31:31 -04:00
Zachary Snow
44afcf5b29
improved handling of break statement
...
- fix preservation of loop variables when breaking
- extend Yosys-compatible constant loop conversion to support loop
variables declared outside of the looop
2021-04-14 13:16:27 -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
4ddbff9b97
keep enum localparam types for later resolution
2021-04-13 15:08:38 -04:00
Zachary Snow
eeeade3e19
allow packages to reference their own items explicitly
2021-04-13 14:44:42 -04:00
Zachary Snow
c0b8ba17de
simplify interface port type representation
2021-04-13 10:45:26 -04:00