Skip to content

Releases: pulp-platform/axi

v0.29.2

12 Nov 08:09
Compare
Choose a tag to compare

Fixed

  • axi_demux: Improve compatibility with VCS (#187). The workaround of #169 was not compatible
    with VCS 2020.12. That workaround is now only active if TARGET_VSIM is defined.
  • axi_dw_downsizer and axi_dw_upsizer (part of axi_dw_converter): Avoid latch inference on the
    Mentor Precision synthesis tool.
  • axi_lite_cdc_src_intf: Fix _i and _o suffixes in instantiation of axi_cdc_src.
  • axi_test::axi_rand_slave: Improve compatibility with VCS (#175).
  • axi_test::axi_scoreboard: Add default value to parameters to improve compatibility with some
    tools.

v0.29.1

02 Jun 13:14
Compare
Choose a tag to compare

Fixed

  • axi_lite_to_apb_intf: Add missing parameters, which were added to axi_lite_to_apb in v0.28.0.

v0.29.0

06 May 07:10
Compare
Choose a tag to compare

Changed

  • axi_xbar and axi_demux: Add support for unique IDs by adding a UniqueIds parameter to both
    modules (#172). If you can guarantee that the ID of each transaction is always unique among all
    in-flight transactions in the same direction, setting the UniqueIds parameter to 1'b1
    simplifies the demultiplexer (see documentation of axi_demux for details). This change is
    backward-compatible on axi_demux (because the default value of the new parameter is 1'b0).
    As axi_xbar is configured with the xbar_cfg_t struct, this change is not
    backward-compatible
    for axi_xbar (except for xbar_cfg_ts initialized with a default part).

Fixed

  • axi_test::axi_rand_master: Refactor ID legalization into common function to simplify the
    implementation and remove redundant code. No known functional bug was fixed, but the correctness
    of the refactored code can be asserted more easily.

v0.28.0

15 Apr 07:36
Compare
Choose a tag to compare

Added

  • Add source- and destination-clock-domain "halves" for the clock domain crossing (CDC):
    axi_cdc_src and axi_cdc_dst. This is implemented by refactoring the axi_cdc module, so the
    implementation is reused from the existing axi_cdc module. To avoid code duplication, axi_cdc
    now instantiates an axi_cdc_src connected to an axi_cdc_dst.

Changed

  • axi_lite_to_apb: Make pipeline registers on request and response path optional (can be enabled
    with the new PipelineRequest and PipelineResponse parameters), and disable those pipeline
    registers by default.

Fixed

  • axi_demux: Improve compatibility with new version of QuestaSim's optimizer (vopt) (#169).
    Before this workaround, QuestaSim 2020.2 and 2021.1 could segfault on instances of axi_demux.

v0.27.1

01 Feb 11:51
Compare
Choose a tag to compare

Fixed

  • axi_dw_downsizer and axi_dw_upsizer (part of axi_dw_converter): Fix declaration order of
    w_req_t, w_req_d, and w_req_q to remove problematic forward references.
  • FuseSoC: Fix version of common_cells (1.21.0).

v0.27.0

01 Feb 07:41
Compare
Choose a tag to compare

Added

  • assign.svh: Add macros for assigning between AXI-Lite structs, both inside a process
    (AXI_LITE_SET_*_STRUCT) and outside a process (AXI_LITE_ASSIGN_*_STRUCT). This is safer than
    assigning structs with a simple =, because the macros assign individual fields.
  • typedef.svh: Add AXI_TYPEDEF_ALL and AXI_LITE_TYPEDEF_ALL macros for defining all channels
    and request/response structs of an AXI4+ATOPs and an AXI4-Lite interface, respectively, in a
    single macro call.
  • axi_test::axi_rand_slave: Add parameter RAND_RESP, which enables randomization of the resp
    field in B and R beats.

Changed

  • axi_test::axi_rand_master: Randomize the QoS field.
  • Update common_verification dependency to 0.2.0, which has been released for more than a year.
  • Update common_cells dependency to 1.21.0 to align on version 0.2.0 of the
    common_verification dependency. This includes version 1.20.1 of common_cells, which fixes
    an out-of-bounds index in axi_burst_splitter (#150).

v0.26.0

19 Jan 09:02
Compare
Choose a tag to compare

Added

  • Add infinite, simulation-only memory axi_sim_mem.
  • assign.svh: Add macros for assigning between structs, both inside a process
    (AXI_SET_*_STRUCT) and outside a process (AXI_ASSIGN_*_STRUCT). This is safer than assigning
    structs with a simple =, because the macros assign individual fields. (Fields that mismatch
    between two structs, e.g., due to different user signal widths, should, and in some cases
    must, be still assigned separately.)

Changed

  • Rename the following classes in axi_test to follow the convention that all user-facing objects
    in this repository start with axi_:
    • rand_axi_lite_master to axi_lite_rand_master,
    • rand_axi_lite_slave to axi_lite_rand_slave,
    • rand_axi_master to axi_rand_master, and
    • rand_axi_slave to axi_rand_slave.

v0.25.0

14 Jan 09:00
Compare
Choose a tag to compare

Added

  • axi_xbar: Add parameter to disable support for atomic operations (ATOPs).

Changed

  • AXI_BUS, AXI_BUS_ASYNC, AXI_BUS_DV, AXI_LITE, and AXI_LITE_DV: Change type of every
    parameter from int to int unsigned. An unsigned type is more appropriate, because none of
    those parameters can actually take a negative value, and it improves compatibility with some
    tools.
  • axi_test::rand_axi_lite_slave and axi_test::rand_axi_lite_master: Change type of address and
    data width parameters (AW and DW) from int to int unsigned. Same rationale as for
    AXI_BUS (et al.) above.

Fixed

  • axi_demux: Break combinatorial simulation loop.
  • axi_xbar: Improve compatibility with vsim version 10.6c (and earlier) by introducing a
    workaround for a tool limitation (#133).
  • tb_axi_lite_regs: Removed superfluous hardcoded assertion.
  • Improve compatibility with Vivado XSim by disabling formal properties in axi_demux,
    axi_err_slv, and axi_xbar if XSIM is defined.

v0.24.2

11 Jan 15:51
Compare
Choose a tag to compare

Changed

  • axi_test::rand_axi_lite_master and axi_test::rand_axi_lite_slave: Specify default values for
    parameters to improve compatibility with tools that require a default value for every parameter.

Fixed

  • axi_lite_demux: Move typedef out of generate block to improve compatibility with VCS.
  • axi_test::rand_axi_master and axi_test::rand_axi_slave: Fix call to randomize function for
    class variables. Prior to this fix, the std::randomize() function was used for three class
    variables, but class variables must use the .randomize() member function.

v0.24.1

04 Nov 17:27
Compare
Choose a tag to compare

Changes since 0.24.0

Changed

  • Update common_cells dependency to 1.20.0 to fix file order in IPApproX.

Fixed

  • doc/axi_lite_mailbox: Fix position of RFIFOL and WFIFOL in STATUS register.
  • IPApproX:
    • Add missing link against common_cells_lib.
    • Fix include path for common_cells.
    • Fix version specification of common_verification.