v0.39.0
Added
- Synthesizable IPs:
axi_bus_compare
andaxi_slave_compare
; two synthesizable verification IPs meant to be used
to compare two AXI buses on an FPGA.axi_lite_from_mem
andaxi_from_mem
acting like SRAMs making AXI4 requests downstream.axi_lite_dw_converter
: Convert the data width of AXI4-Lite transactions. Emits the
appropriate amount of downstream transactions to perform the whole requested access.axi_rw_join
andaxi_rw_split
to split/join the read and write channels of an AXI bus.
CT
-macros allowing to instantiate AXI structs with custom channel type names.axi_pkg': Add documentation to
xbar_cfg_t`.- Testbench IPs:
axi_chan_compare.sv
: Non-synthesizable module comparing two AXI channels of the same type- Add
axi_file_master
toaxi_test
, allowing file-based AXI verification approaches. - Add
#_width
functions toaxi_test
returning the width of the AXI channels.
Changed
- Synthesizable IPs:
axi_demux
: Replace FIFO between AW and W channel by a register plus a counter. This prevents
AWs from being issued to one master port while Ws from another burst are ongoing to another
master port. This is required to prevents deadlocks due to circular waits downstream. Removes
FallThrough
parameter fromaxi_demux
.- Split the
axi_demux
logic and timing decoupling. A new module calledaxi_demux_simple
contains
the core logic. axi_dw_downsizer
usesaxi_pkg::RESP_EXOKAY
as a default value.- Simplify the
casez
inaxi_id_remap
. - Add optional explicit mapping to the
axi_id_serialize
module. - Expand
axi_to_mem
toaxi_to_detailed_mem
exposing all of AXI's side-signals; namelyid
,user
,
cache
,prot
,qos
,region
,atop
. Add possibility to injecterr
andexokay
. axi_xbar
: Add parameterPipelineStages
toaxi_pkg::xbar_cfg_t
. This addsaxi_multicuts
in the crossed connections in thexbar
between the demuxes and muxes. Improve inline
documentation.- Move
mem_to_banks
tocommon_cells
.
axi_pkg
: Improve for better compatibility with Vivado.- `axi_test:
axi_lite_rand_slave
:R
response field is now randomized.- Remove excessive prints from random master and slave.
- Properly size-align the address.
axi_pkg
: Definelocalparams
to define AXI type widths.- Update
common_cells
from versionv1.26.0
tov1.27.0
. - Tooling:
- Use
pulp-platform/pulp-actions/gitlab-ci@v2
in the GitHub CI to communicate with the internal CI. - Bump
DC Shell version
from2019.12
to2022.03
- No longer check ModelSim versions
10.7e
and2021.3
, add2022.3
. - More thorough verification runs for the
xbar
. - Start transitioning from shell script to Makefile to run simulations.
- Use
- Use
scripts/update_authors
to update authors, slight manual fixes performed.
Fixed
axi_to_mem_banked
: Reduce hardware by properly settingUniqueIds
.axi_to_mem_interleaved
andaxi_to_mem_split
properly instantiates a demultiplexer now.
Addstest_i
port for DFT.
Breaking Changes
There are breaking changes between v0.38.0
and v0.39.0
:
axi_demux
:FallThrough
parameter was removed.axi_xbar
:axi_pkg::xbar_cfg_t
addedPipelineStages
parameter.axi_to_mem_interleaved
andaxi_to_mem_split
: Addedtest_i
input port.