Zachary Snow
b8d512e31f
remove unneeded imports
2020-04-05 13:45:22 -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
3831dcffee
bump release version
2020-03-30 19:50:04 -04:00
Zachary Snow
bcafef8d01
allow empty list_of_parameter_assignments
2020-03-30 19:27:44 -04:00
Zachary Snow
1687b1c5c1
allow empty parameter_port_list ( resolves #83 )
2020-03-25 23:55:19 -04:00
Zachary Snow
e7381c4db2
fix double multipack conversion of Exprs in LHSs
2020-03-24 22:02:38 -04:00
Rupert Swarbrick
78f3db8803
Fail more gracefully on mismatched `if/`elsif/`else/`endif
...
Without this patch, a stray `endif caused sv2v to take the tail of an
empty list. Now we raise a lexical error.
To do this, the patch pulls the "push" and "pop" logic for the
preprocessor condition stack into separate helper
functions (pushCondStack and popCondStack). It also defines some
helper functions for manipulating Cond's.
The patch also adds a documentation comment explaining what the
different values of Code meant (because I had to squint to work it
out).
2020-03-23 20:19:25 -04:00
Zachary Snow
5ad4849454
fix slicing direction for multi-packed arrays
2020-03-22 19:37:58 -04:00
Zachary Snow
35e75c0604
language support for strengths
2020-03-20 21:13:57 -04:00
Zachary Snow
bd68ab0852
faster parsing of very long files
2020-03-20 18:53:06 -04:00
Zachary Snow
c03dba096f
pack sliced arrays ( resolves #78 )
2020-03-18 23:40:21 -04:00
Zachary Snow
f44e3e808a
add option to skip preprocessing
2020-03-18 20:02:20 -04:00
Rupert Swarbrick
f5881919c1
Allow exclusion of Assert conversion
...
Yosys does support some asserts nowadays. Allowing sv2v to not strip
them out means that you can check formal properties without needing
hierarchical references (which Yosys really doesn't cope well with!)
2020-03-16 23:34:05 -04:00
Zachary Snow
dd9f040f1f
improved handling of genvars
2020-02-23 22:30:17 -05:00
Zachary Snow
da087cc2c1
release v0.0.2
2020-02-22 19:53:35 -05:00
Zachary Snow
b2504afe71
package convertion perf tweak
2020-02-21 21:17:47 -05:00
Zachary Snow
95524c46ad
remove excess patterns from struct conversion
2020-02-21 21:03:33 -05:00
Zachary Snow
400c009480
traversal performance improvements
2020-02-20 23:57:41 -05:00
Zachary Snow
a415d9eb3d
fix type propagation of struct fields bit accesses
2020-02-20 00:19:14 -05:00
Zachary Snow
470fa01eb2
updated casting conventions
...
- explicit enum casts in source are converted to size casts
- conversion for basic pattern array literals of unsized numbers
- unsized number array literals preserve signing
- more aggressive ternary simplification
2020-02-19 18:58:25 -05:00
Zachary Snow
976f582287
push struct and multi-packed ternaries into ranges
...
- the ternary expressions were previously used to decide the direction
of generated part selects
- this fixes an issue where ternaries were generated for LHSs
2020-02-18 21:25:20 -05:00
Zachary Snow
db4c396389
minor multi-packed verbosity improvement
2020-02-17 17:31:14 -05:00
Zachary Snow
8f2d7dd5c7
fixed multiple issues with struct and multi-packed conversions
...
- struct conversion handles directionality of fields
- struct conversion supports minus part selects
- fixed incorrect handling of directional part selects in multi-packed
conversion
- multi-packed conversion defines standard ranges in terms of
directional part selects for clarity
- fixed potential loop due to overeager untagging in multi-packed
conversion
2020-02-17 13:57:48 -05:00
Zachary Snow
80984f7e7e
size casts on decimal numbers are simplified
2020-02-17 12:53:26 -05:00
Zachary Snow
5f0ccee065
conversion for unsized integer arrays
2020-02-17 12:12:51 -05:00
Zachary Snow
20dc92f6d8
fix typeof integer slices
2020-02-16 23:39:48 -05:00
Zachary Snow
ad21277eb5
support macro names comprised of macro args and macros
2020-02-16 22:18:12 -05:00
Zachary Snow
9af38e7870
globally imported items are selectively nested
2020-02-16 15:44:03 -05:00
Zachary Snow
799141af42
enum conversion covers nested module items ( resolves #70 )
2020-02-15 17:14:59 -05:00
Zachary Snow
463cdcb2c1
support complex sizes in size casts ( resolves #69 )
2020-02-15 16:48:09 -05:00
Zachary Snow
fe8839eaec
fix struct typing of ternary expressions ( resolves #73 )
2020-02-15 14:44:49 -05:00
Zachary Snow
b124a561f2
updated binary and unary operator printing ( resolves #72 )
2020-02-15 14:11:17 -05:00
Zachary Snow
aea64e903c
pack arrays assigned to other arrays
2020-02-13 23:59:01 -05:00
Zachary Snow
104f98011e
support for string literals with macros
...
- adds support for using macros and macro arguments within the argument
list to other macros
- fixes an issue where macros with arguments would have extraneous
whitespace
- fixes handling of multiline string literals
2020-02-12 23:58:41 -05:00
Zachary Snow
8f4e783fd1
remove empty generate loops
2020-02-09 23:20:35 -05:00
Zachary Snow
fcaca6c33a
package item nesting perf tweaks
2020-02-09 22:34:27 -05:00
Zachary Snow
c876c447e6
fix interface inlining renaming
2020-02-09 22:17:48 -05:00
Zachary Snow
df4244d8d5
more aggressive expression simplification
2020-02-09 20:03:08 -05:00
Zachary Snow
9036bbabe4
cover struct width $bits edge case
2020-02-09 19:07:12 -05: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
2f8ee303de
keyword args conversion covers tasks
2020-02-09 14:17:18 -05:00
Zachary Snow
14644cd1ed
fix output of empty generate loops
2020-02-09 14:01:05 -05:00
Zachary Snow
8a008c3024
interface conversion supports positional port bindings
...
- also fixes an issue where system tasks were inadvertently prefixed
during the interface conversion
2020-02-09 13:42:45 -05:00
Zachary Snow
7a00c36a70
jump conversion keeps timing controls at the top level
2020-02-09 11:53:21 -05:00
Zachary Snow
eb76d16dde
faster package item nesting conversion
2020-02-09 11:52:48 -05:00
Zachary Snow
48f84a9ed4
faster param type conversion
2020-02-09 11:52:33 -05:00
Zachary Snow
fc9999aeea
support implied port directions
2020-02-08 22:48:21 -05:00
Zachary Snow
4b3b09d2db
allow extraneous semicolons in generate blocks
2020-02-08 22:15:35 -05:00
Zachary Snow
88c401e856
additional interface conversion error messages
2020-02-07 19:10:21 -05:00
Zachary Snow
eed5444d4a
updated version info with git hash
2020-02-07 18:57:48 -05:00
Zachary Snow
3c08767b63
redesigned preprocessor and lexer
2020-02-06 23:33:13 -05:00
Zachary Snow
2dcd35ade7
support typedefs with unpacked dimensions
2020-02-02 21:40:43 -05:00
Zachary Snow
a402a73477
alias macromodule to module
2020-02-01 16:45:33 -05:00
Zachary Snow
1a9068409e
forbid illegal macro names
2020-02-01 16:42:25 -05:00
Zachary Snow
9694799a23
more consistent procedural assignment support
2020-02-01 15:52:52 -05:00
Zachary Snow
610d9abacf
support for gates with delays
2020-01-31 20:24:37 -05:00
Zachary Snow
6e4a19d00b
flatten generate blocks with one item
2020-01-31 19:43:34 -05:00
Zachary Snow
dd0eb5981d
added source trace comments
...
- Trace comments cover module items, decls, and stmts
- Added pseudo-lexer to Alex parser for monadic Position production
- Added Position to every DeclToken
- Removed Comment PackageItem
- Added CommentStmt and CommentDecl
- Fixed traversal skipping outer MIAttr ModuleItems
- Generally cleaned up Parser modules
2020-01-30 22:17:17 -05:00
Zachary Snow
9f180f91e5
improve `line error message
2020-01-27 19:23:36 -05:00
Zachary Snow
ad98c14547
fix handling of macros at EOF ( resolves #62 )
2020-01-27 19:18:58 -05:00
Zachary Snow
17e17ebd7f
fix struct array pattern conversion ( resolves #60 )
2020-01-20 17:26:03 -08:00
Zachary Snow
cf4c2a5491
expanded support for macros in preprocessor directives
2020-01-14 23:19:39 -05:00
Zachary Snow
6f0fa58ace
simplify struct LHS handling
2020-01-14 00:23:16 -05:00
Zachary Snow
e62074c756
type operator full select support
2020-01-11 22:52:12 -05:00
Zachary Snow
22d6ba4927
support evaluating functions as statements
2020-01-11 21:06:09 -05:00
Zachary Snow
2bd24b6086
expand type operator support
2020-01-11 20:35:51 -05:00
Zachary Snow
b58248fc2c
support type operator on simple expressions
2020-01-11 16:22:07 -05:00
Zachary Snow
82217ec05c
updated lifetime representation; struct packers use automatic
2019-12-22 12:01:05 -05:00
Zachary Snow
7ea5b60d0b
support for inside case statements
2019-12-21 20:41:19 -05:00
Zachary Snow
ba79b17bd9
pragma and line directive validation
2019-12-09 21:45:11 -05:00
Zachary Snow
7f2fe54b11
fix jump statement conversion
2019-12-09 21:17:01 -05:00
Zachary Snow
fb5fd39388
support for inside expression ranges and wildcards
2019-12-08 17:36:25 -05:00
Zachary Snow
96fe986b2d
cleanup case representation
2019-12-01 23:25:33 -05:00
Zachary Snow
92d827f3a5
preserve else block association, with timings
2019-11-20 20:44:09 -05:00
Zachary Snow
35a0587d2c
preserve else block association ( resolved #56 )
2019-11-20 20:18:56 -05:00
Zachary Snow
c1f027e11a
$readmemh/$readmemb imply reg ( resolves #57 )
2019-11-19 23:41:59 -05:00
Zachary Snow
58ad1feab1
allow reading from stdin
2019-11-19 23:29:19 -05:00
Zachary Snow
95299c6f56
conversion of structs with multi-dim fields ( resolves #53 )
2019-11-19 23:15:25 -05:00
Zachary Snow
49e4f7872d
conversion for always_latch ( resolves #54 )
2019-11-18 19:26:54 -05:00
Zachary Snow
eebe41427e
language support for final blocks
2019-10-31 20:39:11 -04:00
Zachary Snow
eeb2d809fd
cleanup interface conversion
2019-10-20 22:06:10 -04:00
Zachary Snow
c936b39bd2
use system functions for signedness casts
2019-10-20 16:18:18 -04:00
Zachary Snow
06411d70f1
support converting interfaces with parameters
2019-10-20 15:58:37 -04:00
Zachary Snow
5843ef3879
better error messaging for missing interfaces
2019-10-20 14:53:37 -04:00
Zachary Snow
3597f4a6be
support for methods (no conversion) and interface TFs
2019-10-19 16:22:46 -04:00
Zachary Snow
39f0e9b40d
minor perf optimization
2019-10-19 14:38:28 -04:00
Zachary Snow
336b180d74
lexer handles carriage returns ( closes #51 )
2019-10-19 13:27:29 -04:00
Zachary Snow
cf0e182e65
convert unpacked structs as though packed
...
- also expands struct literals containing repeat expressions
2019-10-14 22:01:55 -04:00
Zachary Snow
8e8d44f421
allow array struct fields
2019-10-13 23:59:36 -04:00
Zachary Snow
a1cd6941ae
apply patterns to substructures
2019-10-13 23:37:43 -04:00
Zachary Snow
de581ecaf5
initial support for types in struct patterns
2019-10-13 19:01:42 -04:00
Zachary Snow
3979d294eb
consistent size casting behavior
...
- also adds $clog2 localparam substitution to Simplify
2019-10-12 11:40:36 -04:00
Zachary Snow
79f9d21fe7
leave non-data-declarations at the end of modules
2019-10-12 11:18:10 -04:00
Zachary Snow
c722e931fe
allow time delay values
2019-10-11 22:56:16 -04:00
Zachary Snow
1e35ba269d
allow repeat shorthand in patterns
2019-10-11 22:54:21 -04:00
Zachary Snow
fea5ff44eb
coalesce tokens across nested macros
2019-10-11 22:53:08 -04:00
Zachary Snow
37355920e0
cleaner AST output
2019-10-11 22:38:47 -04:00
Zachary Snow
d86f8535a0
support for begin_keywords directive
2019-10-11 19:32:10 -04:00
Zachary Snow
3d3359d35a
apply BlockDecl conversions to tasks and functions
2019-10-11 19:31:41 -04:00
Zachary Snow
5ef24d2d94
omit empty subroutine args list
2019-10-11 19:30:45 -04:00