Module axi_throttle

Throttles an AXI4+ATOP bus. The maximum number of outstanding transfers have to

be set as a compile-time parameter, whereas the number of outstanding transfers can be set

during runtime. This module assumes either in-order processing of the requests or

indistinguishability of the request/responses (all ARs and AWs have the same ID respectively).

Parameters

MaxNumAwPending: int unsigned

The maximum amount of allowable outstanding write requests

MaxNumArPending: int unsigned

The maximum amount of allowable outstanding read requests

axi_req_t: type

AXI4+ATOP request type

axi_rsp_t: type

AXI4+ATOP response type

WCntWidth: int unsigned

The width of the write credit counter (DO NOT OVERWRITE)

RCntWidth: int unsigned

The width of the read credit counter (DO NOT OVERWRITE)

w_credit_t: type

The type of the write credit counter (DO NOT OVERWRITE)

r_credit_t: type

The type of the read credit counter (DO NOT OVERWRITE)

Ports

clk_i: input logic

Clock

rst_ni: input logic

Asynchronous reset, active low

req_i: input axi_req_t

AXI4+ATOP request in

rsp_o: output axi_rsp_t

AXI4+ATOP response out

req_o: output axi_req_t

AXI4+ATOP request out

rsp_i: input axi_rsp_t

AXI4+ATOP response in

w_credit_i: input w_credit_t

Amount of write credit (number of outstanding write transfers)

r_credit_i: input r_credit_t

Amount of read credit (number of outstanding read transfers)