Releases: pulp-platform/axi
Releases · pulp-platform/axi
v0.18.1
Changes since 0.18.0
Fixed
axi_modify_address
: Fix unconnectedw_valid
.axi_dw_converter
: Fix internal inversion of up- and downconversion, which led to incorrect lane
steering and serialization.rand_axi_master
(inaxi_test
): In ATOP mode, this module could get stuck receiving an R beat
when only writes (without ATOP read responses) were left to complete. This has been fixed.assign.svh
: Remove spurious semicolons.axi_lite_to_apb
: Fix message of assertion checking the strobe width.
v0.18.0
Changes since 0.17.0
Added
axi_dw_converter
: a data width converter between AXI interfaces of any data width. Depending on
its parametrization, this module instantiates one of the following:axi_dw_downsizer
: a data width converter between a wide AXI master and a narrower slave.axi_dw_upsizer
: a data width converter between a narrow AXI master and a wider slave.
v0.17.0
Changes since 0.16.3
Added
- Add
axi_isolate
to isolate downstream slaves from receiving new transactions.
Changed
axi_lite_to_axi
: Add mandatoryAxiDataWidth
parameter to enable fix mentioned below.
Fixed
- Improve compatibility with Xcelium:
- by removing unsupported hierarchical argument to
$bits()
function inaxi_lite_to_axi
; - by removing unsupported
struct
assignment inaxi_lite_demux
.
- by removing unsupported hierarchical argument to
v0.16.3
Changes since 0.16.2
Changed
axi_err_slv
: Add optional parameter to define data returned by read response. The parameter
defaults to a 64-bit value, so buses with data width larger than or equal to 64 bit see an
additional 32-bit value in error responses compared to the prior version. Other than that, this
change is fully backward compatible.
v0.16.2
Changes since 0.16.1
Fixed
axi_atop_filter
: Fix underflow in counter forAxiMaxWriteTxns = 1
.
v0.16.1
Changes since 0.16.0
Fixed
- Remove whitespace in and semicolon after macro calls.
axi_intf
: Improve Verilator compatibility by disabling unsupported assertions.
v0.16.0
Changes since 0.15.1
Added
axi_cdc_intf
: Add interface variant of AXI clock domain crossing.
Fixed
axi_cdc
: Remove unused globalimport axi_pkg::*
.axi_intf
: Remove globalimport axi_pkg::*
and explicitly use symbols fromaxi_pkg
.axi_lite_cut_intf
: Add missing assigns to and from interface ports.tb_axi_cdc
:- Remove global
import axi_pkg::*
. - Define channels with
AXI_TYPEDEF
macros instead of localtypedef
s.
- Remove global
Removed
- Remove unused
AXI_ARBITRATION
andAXI_ROUTING_RULES
interfaces.
v0.15.1
Changes since 0.15.0
Added
axi_intf
: Add single-channel assertions toAXI_BUS_DV
.
Fixed
axi_lite_to_apb
: Fix the interface version (axi_lite_to_apb_intf
) to match the changes from
version0.15.0
.axi_demux
: WhenMaxTrans
was 1, theIdCounterWidth
became 0. This has been fixed.axi_atop_filter
:- The master interface of this module in one case depended on
aw_ready
before applying
w_valid
, which is a violation of the AXI specification that can lead to deadlocks. This issue
has been fixed by removing that dependency. - The slave interface of this module could illegally change the value of B and R beats between
valid and handshake. This has been fixed.
- The master interface of this module in one case depended on
rand_axi_master
(inaxi_test
):- Fix infinite wait in
send_ws
task. - Decouple generation of AWs from sending them. This allows to apply W beats before or
simultaneous with AW beats.
- Fix infinite wait in
rand_axi_slave
(inaxi_test
):- Decouple receiving of Ws from receiving of AWs. This allows to receive W beats independent of
AW beats.
- Decouple receiving of Ws from receiving of AWs. This allows to receive W beats independent of
- Update
common_cells
to1.16.4
to fix synthesis warning inid_queue
.
v0.15.0
Changes since 0.14.0
Added
axi_burst_splitter
: Split AXI4 bursts to single-beat transactions.
Changed
axi_lite_to_apb
: Thepsel
field of theapb_req_t
struct is now a single bit. That is, every
APB slave has its own request struct. Accordingly,apb_req_o
is now an array withNoApbSlaves
entries.axi_decerr_slv
has been replaced by a more genericaxi_err_slv
, which takes the kind of error
as parameter. Thisaxi_err_slv
no longer has aFallThrough
parameter; instead, a response
(i.e., B or R beat) now always comes one cycle after the AW or AR beat (as required by the AXI
Spec) but the slave can accept a W beat in the same cycle as the corresponding AW beat.
Additionally,axi_err_slv
got a parameterATOPs
that defines if it supports atomic operations.axi_to_axi_lite
: Rework module to structs and add burst support.
Fixed
axi_demux
: Thecase
statement controlling the counters had not been specifiedunique
even
though it qualified for it. This has been fixed.axi_lite_mux_intf
: Fix signal names in internal assignments, names of parameters of
axi_lite_mux
instance, and typos in assertion messages.
v0.14.0
Changes since 0.13.0
Added
- Add
axi_lite_mailbox
: AXI4-Lite mailbox.