Commit Graph

485 Commits

Author SHA1 Message Date
Zachary Snow ea81d55cdc fix duplicate param type modules 2020-05-31 22:00:57 -04:00
Zachary Snow 790312d25d vim modelines for Lex.x and Parse.y 2020-05-06 19:03:32 -04:00
Zachary Snow a0c3112b6c flatten tf blocks with decls 2020-05-05 19:32:37 -04:00
Zachary Snow 9e7768b66a simplify folded procedural branches 2020-05-05 18:50:20 -04:00
Zachary Snow fc9b0b5978 streamline stream conversion 2020-05-05 18:42:45 -04:00
Zachary Snow 3e85885def fix conversion of multi-packed arrays in packages 2020-05-04 19:22:36 -04:00
Zachary Snow 2ac236dd03 add CMU acknowledgement 2020-04-16 18:12:05 -04:00
Zachary Snow f381476161 support nested interfaces 2020-04-13 22:50:41 -04:00
Zachary Snow c5ef5ea9e2 additional expression simplification
- constant folding supports hex numbers
- simplify mod
- simplify pow
- elaborate !(a == b) into a != b
2020-04-05 23:12:54 -04:00
Zachary Snow df7277a6a0 simplification applies to exprs in decls 2020-04-05 22:13:19 -04:00
Zachary Snow 543a104683 upgrade to stackage lts-14.26 2020-04-05 13:45:31 -04:00
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 409f80ea83 cleanup workflows 2020-03-30 21:41:13 -04:00
Zachary Snow a38d49982a fix release artifact uploads 2020-03-30 19:52:41 -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 279a19ab9d refactored CI workflow
- added Windows build
- separate build and test jobs
- per-OS release artifact generation
2020-03-30 19:13:16 -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 29b5136503 test runner supports explicit list of tests 2020-02-15 17:34:21 -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