Changelog of @hackage/sv2v 0.0.9

v0.0.9

Breaking Changes

  • Unsized number literals exceeding the maximum width of 32 bits (e.g., 'h1_ffff_ffff, 4294967296) are now truncated and produce a warning, rather than being silently extended
    • Support for unsized number literals exceeding the standard-imposed 32-bit limit can be re-enabled with --oversized-numbers
  • Input source files are now decoded as UTF-8 on all platforms, with transcoding failures tolerated, enabling reading files encoded using other ASCII supersets (e.g., Latin-1)

New Features

  • Added support for non-ANSI style port declarations where the port declaration is separate from the corresponding net or variable declaration
  • Added support for typed value parameters declared in parameter port lists without explicitly providing a leading parameter or localparam marker
  • Added support for tasks and functions with implicit port directions
  • Added support for parameters which use a type-of as the data type
  • Added support for bare delay controls with real number delays
  • Added support for deferred immediate assertions

Other Enhancements

  • Explicitly-sized number literals with non-zero bits exceeding the given width (e.g., 1'b11, 3'sd8, 2'o7) are now truncated and produce a warning, rather than yielding a cryptic error
  • Number literals with leading zeroes which extend beyond the width of the literal (e.g., 1'b01, 'h0_FFFF_FFFF) now produce a warning
  • Non-positive integer size casts are now detected and forbidden
  • Negative indices in struct pattern literals are now detected and forbidden
  • Escaped vendor block comments in macro bodies are now tolerated
  • Illegal bit-selects and part-selects of scalar struct fields are now detected and forbidden, rather than yielding an internal assertion failure

Bug Fixes

  • Fixed parsing of sized ports with implicit directions
  • Fixed flattening of arrays used in nested ternary expressions
  • Fixed preprocessing of line comments which are neither preceded nor followed by whitespace except for the newline which terminates the comment
  • Fixed parsing of alternate spacings of @(*)
  • Fixed conversion of interface-based typedefs when used with explicit modports, unpacked arrays, or in designs with multi-dimensional instances
  • Fixed conversion of module-scoped references to modports
  • Fixed conversion of references to modports nested within types in expressions
  • Fixed assertion removal in verbose mode causing orphaned statements

v0.0.8

Future releases will have complete change logs.