2024-06-16 04:15:30 +02:00
|
|
|
## Unreleased
|
|
|
|
|
|
2024-06-18 04:42:12 +02:00
|
|
|
### New Features
|
|
|
|
|
|
2024-09-03 05:41:29 +02:00
|
|
|
* Added conversion of severity system tasks and elaboration system tasks (e.g.,
|
|
|
|
|
`$info`) into `$display` tasks that include source file and scope information;
|
|
|
|
|
pass `-E SeverityTask` to disable this new conversion
|
2024-06-18 04:42:12 +02:00
|
|
|
* Added parsing support for `not`, `strong`, `weak`, `nexttime`, and
|
|
|
|
|
`s_nexttime` in assertion property expressions
|
2024-06-20 05:06:34 +02:00
|
|
|
* Added `--bugpoint` utility for minimizing test cases for issue submission
|
2024-06-18 04:42:12 +02:00
|
|
|
|
2024-06-16 04:15:30 +02:00
|
|
|
### Bug Fixes
|
|
|
|
|
|
|
|
|
|
* Fixed `--write path/to/dir/` with directives like `` `default_nettype ``
|
2024-06-18 05:47:38 +02:00
|
|
|
* Fixed `logic` incorrectly converted to `wire` even when provided to a task or
|
|
|
|
|
function output port
|
2024-09-02 02:39:58 +02:00
|
|
|
* Fixed conversion of enum item names and typenames nested deeply within the
|
|
|
|
|
left-hand side of an assignment
|
2024-08-05 05:52:48 +02:00
|
|
|
* Fixed `input signed` ports of interface-using modules producing invalid
|
|
|
|
|
declarations after inlining
|
2024-10-27 04:46:20 +01:00
|
|
|
* Fixed inlining of interfaces and interface-bound modules containing port
|
|
|
|
|
declarations tagged with an attribute
|
2024-10-27 06:00:51 +01:00
|
|
|
* Fixed stray attributes producing invalid nested output when attached to
|
|
|
|
|
inlined interfaces and interface-bounds modules
|
2024-12-09 07:07:04 +01:00
|
|
|
* Fixed conversion of struct variables that shadow their module's name
|
2024-06-16 04:29:53 +02:00
|
|
|
* Fixed `` `resetall `` not resetting the `` `default_nettype ``
|
2024-06-16 04:15:30 +02:00
|
|
|
|
|
|
|
|
### Other Enhancements
|
|
|
|
|
|
|
|
|
|
* `--write path/to/dir/` can now also be used with `--pass-through`
|
|
|
|
|
|
2024-05-07 04:21:47 +02:00
|
|
|
## v0.0.12
|
2023-06-24 19:11:21 +02:00
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
|
|
|
|
|
* Removed deprecated CLI flags `-d`/`-e`/`-i`, which have been aliased to
|
|
|
|
|
`-D`/`-E`/`-I` with a warning since late 2019
|
|
|
|
|
|
2023-08-01 04:52:28 +02:00
|
|
|
### New Features
|
|
|
|
|
|
2024-03-11 04:45:01 +01:00
|
|
|
* `unique`, `unique0`, and `priority` case statements now produce corresponding
|
|
|
|
|
`parallel_case` and `full_case` statement attributes
|
2023-08-01 04:52:28 +02:00
|
|
|
* Added support for attributes in unary, binary, and ternary expressions
|
2023-12-18 02:37:25 +01:00
|
|
|
* Added support for streaming concatenations within ternary expressions
|
2024-05-07 04:18:31 +02:00
|
|
|
* Added support for shadowing interface names with local typenames
|
2023-12-03 19:16:01 +01:00
|
|
|
* Added support for passing through `wait` statements
|
2023-08-01 04:52:28 +02:00
|
|
|
|
2023-07-27 05:42:51 +02:00
|
|
|
### Bug Fixes
|
|
|
|
|
|
2024-04-15 00:22:09 +02:00
|
|
|
* Fixed signed unsized literals with a leading 1 bit (e.g., `'sb1`, `'sh8f`)
|
|
|
|
|
incorrectly sign-extending in size and type casts
|
2023-08-12 03:52:03 +02:00
|
|
|
* Fixed conflicting genvar names when inlining interfaces and modules that use
|
|
|
|
|
them; all genvars are now given a design-wide unique name
|
2023-11-04 22:31:11 +01:00
|
|
|
* Fixed unconverted structs within explicit type casts
|
2024-05-07 04:18:31 +02:00
|
|
|
* Fixed byte order of strings in size casts
|
2023-11-05 01:36:51 +01:00
|
|
|
* Fixed unconverted multidimensional struct fields within dimension queries
|
2023-11-04 18:31:09 +01:00
|
|
|
* Fixed non-typenames (e.g., from packages or subsequent declarations)
|
|
|
|
|
improperly shadowing the names of `struct` pattern fields
|
2024-04-16 14:40:26 +02:00
|
|
|
* Fixed shadowing of interface array indices passed to port connections
|
2023-08-13 21:17:21 +02:00
|
|
|
* Fixed failure to resolve typenames suffixed with dimensions in contexts
|
|
|
|
|
permitting both types and expressions, e.g., `$bits(T[W-1:0])`
|
2024-05-07 04:18:31 +02:00
|
|
|
* Fixed an issue that prevented parsing tasks and functions with `inout` ports
|
2023-08-09 04:30:36 +02:00
|
|
|
* Fixed errant constant folding of shadowed non-trivial localparams
|
2023-11-04 16:36:08 +01:00
|
|
|
* Fixed conversion of function calls with no arguments passed to other functions
|
2023-08-01 03:31:34 +02:00
|
|
|
* Fixed certain non-ANSI style port declarations being incorrectly reported as
|
|
|
|
|
incompatible
|
2023-07-27 05:42:51 +02:00
|
|
|
|
2023-08-09 04:25:39 +02:00
|
|
|
### Other Enhancements
|
|
|
|
|
|
2023-12-26 17:21:19 +01:00
|
|
|
* `always_comb` and `always_latch` now reliably execute at time zero
|
2023-08-13 21:17:21 +02:00
|
|
|
* Added error checking for unresolved typenames
|
2023-08-09 04:25:39 +02:00
|
|
|
* Added constant folding for `||` and `&&`
|
2023-11-05 17:02:51 +01:00
|
|
|
* `input reg` module ports are now converted to `input wire`
|
2024-01-05 06:09:04 +01:00
|
|
|
* `x | |y` and `x & &y` are now output as `x | (|y)` and `x & (&y)`
|
2023-08-09 04:25:39 +02:00
|
|
|
|
2023-06-22 06:11:49 +02:00
|
|
|
## v0.0.11
|
2022-10-23 03:02:54 +02:00
|
|
|
|
2023-06-14 04:53:36 +02:00
|
|
|
### 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
|
2023-06-19 04:36:43 +02:00
|
|
|
* Added `--top` for pruning unneeded modules during conversion
|
2023-06-21 14:25:42 +02:00
|
|
|
* Added `--write path/to/dir/` for creating an output `.v` in the specified
|
|
|
|
|
preexisting directory for each module in the converted result
|
2023-06-14 04:53:36 +02:00
|
|
|
* The `string` data type is now dropped from parameters and localparams
|
|
|
|
|
* Added support for passing through `sequence` and `property` declarations
|
|
|
|
|
|
2022-10-23 03:02:54 +02:00
|
|
|
### Bug Fixes
|
|
|
|
|
|
2023-02-22 04:26:24 +01:00
|
|
|
* Fixed crash when converting multi-dimensional arrays or arrays of structs or
|
|
|
|
|
unions used in certain expressions involving unbased unsized literals
|
2022-10-23 03:02:54 +02:00
|
|
|
* 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
|
2023-05-10 14:48:15 +02:00
|
|
|
* Fixed overzealous removal of explicitly unconnected ports (e.g., `.a()`)
|
2023-05-23 10:42:26 +02:00
|
|
|
* Fixed an issue that left `always_comb`, `always_latch`, and `always_ff`
|
|
|
|
|
unconverted when tagged with an attribute
|
2022-10-29 19:22:53 +02:00
|
|
|
* Fixed unneeded scoping of constant function calls used in type lookups
|
2023-03-08 05:52:43 +01:00
|
|
|
* `/*/` is no longer interpreted as a self-closing block comment, e.g.,
|
|
|
|
|
`$display("a"/*/,"b"/* */);` previously printed "ab", but now prints "a"
|
2023-06-06 06:08:56 +02:00
|
|
|
* Fixed missing `begin`/`end` when disambiguating procedural branches tagged
|
|
|
|
|
with an attribute
|
2023-05-16 04:21:22 +02:00
|
|
|
* Fixed keywords included in the "1364-2001" and "1364-2001-noconfig"
|
|
|
|
|
`begin_keywords` version specifiers
|
2022-10-23 03:02:54 +02:00
|
|
|
|
2022-10-23 20:52:22 +02:00
|
|
|
### Other Enhancements
|
|
|
|
|
|
|
|
|
|
* Added elaboration for accesses to fields of struct constants, which can
|
2023-06-22 06:10:41 +02:00
|
|
|
substantially improve conversion speed on some designs
|
2022-12-24 09:12:50 +01:00
|
|
|
* Added constant folding for comparisons involving string literals
|
2023-04-21 14:29:27 +02:00
|
|
|
* Port connection attributes (e.g., [pulp_soc.sv]) are now ignored with a
|
|
|
|
|
warning rather than failing to parse
|
2023-04-26 15:07:18 +02:00
|
|
|
* Improved error message when specifying an extraneous named port connection
|
2023-06-17 18:56:23 +02:00
|
|
|
* Improved error message for an unfinished conditional directive, e.g., an
|
|
|
|
|
`ifdef` with no `endif`
|
2023-05-07 19:45:56 +02:00
|
|
|
* Added checks for accidental usage of interface or module names as type names
|
2023-04-21 14:29:27 +02:00
|
|
|
|
|
|
|
|
[pulp_soc.sv]: https://github.com/pulp-platform/pulp_soc/blob/0573a85c/rtl/pulp_soc/pulp_soc.sv#L733
|
2022-10-23 20:52:22 +02:00
|
|
|
|
2022-07-24 01:28:21 +02:00
|
|
|
## v0.0.10
|
2021-10-03 23:00:59 +02:00
|
|
|
|
2022-03-16 15:34:29 +01:00
|
|
|
### Breaking Changes
|
|
|
|
|
|
|
|
|
|
* `--write adjacent` no longer forbids overwriting existing generated files
|
|
|
|
|
|
2021-10-03 23:00:59 +02:00
|
|
|
### New Features
|
|
|
|
|
|
2022-03-12 23:57:17 +01:00
|
|
|
* Added support for assignments within expressions (e.g., `x = ++y;`)
|
2021-10-03 23:00:59 +02:00
|
|
|
* Added support for excluding the conversion of unbased unsized literals (e.g.,
|
|
|
|
|
`'1`, `'x`) via `--exclude UnbasedUniszed`
|
2021-12-10 21:16:34 +01:00
|
|
|
* Added support for enumerated type ranges (e.g., `enum { X[3:5] }`)
|
2022-04-12 01:44:47 +02:00
|
|
|
* Added support for complex event expressions (e.g., `@(x ^ y)`)
|
2022-02-16 12:01:58 +01:00
|
|
|
* Added support for the SystemVerilog `edge` event
|
2022-03-09 18:37:48 +01:00
|
|
|
* Added support for cycle delay ranges in assertion sequence expressions
|
2022-05-10 18:11:32 +02:00
|
|
|
* Added support for procedural continuous assignments (`assign`/`deassign` and
|
|
|
|
|
`force`/`release`)
|
2022-03-11 11:32:54 +01:00
|
|
|
* Added conversion for `do` `while` loops
|
2022-07-11 04:43:33 +02:00
|
|
|
* Added support for hierarchical calls to functions with no inputs
|
2022-01-26 04:52:14 +01:00
|
|
|
* Added support for passing through DPI imports and exports
|
2022-02-07 23:38:11 +01:00
|
|
|
* Added support for passing through functions with output ports
|
2022-05-01 04:19:02 +02:00
|
|
|
* Extended applicability of simplified Yosys-compatible `for` loop elaboration
|
2021-10-03 23:00:59 +02:00
|
|
|
|
2021-10-07 06:17:41 +02:00
|
|
|
### Other Enhancements
|
|
|
|
|
|
|
|
|
|
* Certain errors raised during conversion now also provide hierarchical and
|
|
|
|
|
approximate source location information to help locate the error
|
|
|
|
|
|
2021-11-15 21:26:08 +01:00
|
|
|
### Bug Fixes
|
|
|
|
|
|
|
|
|
|
* Fixed inadvertent design behavior changes caused by constant folding removing
|
|
|
|
|
intentional width-extending operations such as `+ 0` and `* 1`
|
2022-02-15 17:49:50 +01:00
|
|
|
* Fixed forced conversion to `reg` of data sensed in an edge-controlled
|
|
|
|
|
procedural assignment
|
2022-05-10 17:29:33 +02:00
|
|
|
* `always_comb` and `always_latch` now generate explicit sensitivity lists where
|
|
|
|
|
necessary because of calls to functions which reference non-local data
|
2022-06-19 22:13:56 +02:00
|
|
|
* Fixed signed `struct` fields being converted to unsigned expressions when
|
|
|
|
|
accessed directly
|
2022-06-20 03:55:19 +02:00
|
|
|
* Fixed conversion of casts using structs containing multi-dimensional fields
|
2022-07-18 02:32:56 +02:00
|
|
|
* Fixed incorrect name resolution conflicts raised during interface inlining
|
2022-07-18 02:58:36 +02:00
|
|
|
* Fixed handling of interface instances which shadow other declarations
|
2022-07-18 04:02:15 +02:00
|
|
|
* Fixed names like `<pkg>_<name>` being shadowed by elaborated packages
|
2021-11-15 21:26:08 +01:00
|
|
|
|
2021-09-29 06:47:08 +02:00
|
|
|
## v0.0.9
|
2021-08-08 05:11:35 +02:00
|
|
|
|
2021-09-22 04:01:21 +02:00
|
|
|
### Breaking Changes
|
|
|
|
|
|
2021-08-10 06:10:29 +02:00
|
|
|
* Unsized number literals exceeding the maximum width of 32 bits (e.g.,
|
2021-09-22 04:01:21 +02:00
|
|
|
`'h1_ffff_ffff`, `4294967296`) are now truncated and produce a warning, rather
|
2021-08-10 06:10:29 +02:00
|
|
|
than being silently extended
|
|
|
|
|
* Support for unsized number literals exceeding the standard-imposed 32-bit
|
|
|
|
|
limit can be re-enabled with `--oversized-numbers`
|
2021-09-22 04:01:21 +02:00
|
|
|
* 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
|
2021-08-10 06:10:29 +02:00
|
|
|
* Number literals with leading zeroes which extend beyond the width of the
|
|
|
|
|
literal (e.g., `1'b01`, `'h0_FFFF_FFFF`) now produce a warning
|
2021-08-08 05:11:35 +02:00
|
|
|
* Non-positive integer size casts are now detected and forbidden
|
|
|
|
|
* Negative indices in struct pattern literals are now detected and forbidden
|
2021-09-22 04:01:21 +02:00
|
|
|
* Escaped vendor block comments in macro bodies are now tolerated
|
2021-09-28 05:51:53 +02:00
|
|
|
* Illegal bit-selects and part-selects of scalar struct fields are now detected
|
|
|
|
|
and forbidden, rather than yielding an internal assertion failure
|
2021-09-22 04:01:21 +02:00
|
|
|
|
|
|
|
|
### 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,
|
2021-09-19 03:46:32 +02:00
|
|
|
unpacked arrays, or in designs with multi-dimensional instances
|
2021-09-22 04:01:21 +02:00
|
|
|
* Fixed conversion of module-scoped references to modports
|
|
|
|
|
* Fixed conversion of references to modports nested within types in expressions
|
2021-09-24 18:36:49 +02:00
|
|
|
* Fixed assertion removal in verbose mode causing orphaned statements
|
2021-08-08 05:11:35 +02:00
|
|
|
|
2021-07-31 20:27:20 +02:00
|
|
|
## v0.0.8
|
|
|
|
|
|
|
|
|
|
Future releases will have complete change logs.
|