Skip to content

v0.0.11

Compare
Choose a tag to compare
@zachjs zachjs released this 22 Jun 04:30
· 57 commits to master since this release

New Features

  • Added -y/--libdir for specifying library directories from which to automatically load modules and interfaces used in the design that are not found in the provided input files
  • Added --top for pruning unneeded modules during conversion
  • Added --write path/to/dir/ for creating an output .v in the specified preexisting directory for each module in the converted result
  • The string data type is now dropped from parameters and localparams
  • Added support for passing through sequence and property declarations

Bug Fixes

  • Fixed crash when converting multi-dimensional arrays or arrays of structs or unions used in certain expressions involving unbased unsized literals
  • Fixed module-level localparams being needlessly inlined when forming longest static prefixes, which could cause deep recursion and run out of memory on some designs
  • Fixed overzealous removal of explicitly unconnected ports (e.g., .a())
  • Fixed an issue that left always_comb, always_latch, and always_ff unconverted when tagged with an attribute
  • Fixed unneeded scoping of constant function calls used in type lookups
  • /*/ is no longer interpreted as a self-closing block comment, e.g., $display("a"/*/,"b"/* */); previously printed "ab", but now prints "a"
  • Fixed missing begin/end when disambiguating procedural branches tagged with an attribute
  • Fixed keywords included in the "1364-2001" and "1364-2001-noconfig" begin_keywords version specifiers

Other Enhancements

  • Added elaboration for accesses to fields of struct constants, which can substantially improve conversion speed on some designs
  • Added constant folding for comparisons involving string literals
  • Port connection attributes (e.g., pulp_soc.sv) are now ignored with a warning rather than failing to parse
  • Improved error message when specifying an extraneous named port connection
  • Improved error message for an unfinished conditional directive, e.g., an ifdef with no endif
  • Added checks for accidental usage of interface or module names as type names