tlul_adapter_host

Convert a host req/gnt/rvalid bus into TL-UL.

Requests and responses pass combinationally. When MAX_REQS > 1 a counter assigns a_source IDs 0 to MAX_REQS-1 in rotation; when MAX_REQS == 1 a_source is always 0. The host must not have more requests in flight than MAX_REQS. d_ready is tied high, so the host must accept every response in the cycle it arrives.

The adapter does not reorder responses when MAX_REQS > 1. The host must either target an address space that returns in order or not depend on order.

The outgoing address is always word aligned and the access size is always the TL word size (TL_DW). The A-channel opcode and mask follow the access:

  • Full-lane writes use PUT_FULL_DATA.
  • Other writes use PUT_PARTIAL_DATA, with the mask generated from be_i.
  • Reads enable every lane in the mask as required by TL-UL.

Integrity handling is optional:

  • When ENABLE_DATA_INTG_GEN is set, compute data integrity on host write data; otherwise send wdata_intg_i.
  • Response integrity is always checked. When ENABLE_RSP_DATA_INTG_CHECK is set, also check integrity on returned read data.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
MAX_REQSint unsigned2Maximum outstanding host requests.
ENABLE_DATA_INTG_GENbit0Compute data integrity on write data.
ENABLE_RSP_DATA_INTG_CHECKbit0Check integrity on returned read data.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputSystem clock.
rst_niinputActive-low reset.
req_iinputHost request valid.
gnt_ooutputlogicHost request grant.
addr_iinputlogic [top_pkg::TL_AW-1:0]Host byte address; word-aligned on tl_o.
we_iinputlogicHost write enable.
wdata_iinputlogic [top_pkg::TL_DW-1:0]Host write data.
wdata_intg_iinputlogic [DATA_INTG_WIDTH-1:0]Integrity bits sent with wdata_i when ENABLE_DATA_INTG_GEN is clear.
be_iinputlogic [top_pkg::TL_DBW-1:0]Host byte enables; form the TL-UL mask.
instr_type_iinputmubi4_tMuBi4 instruction-type user bit.
user_rsvd_iinputlogic [RSVD_WIDTH-1:0]Reserved A-channel user bits.
valid_ooutputlogicHost response valid.
rdata_ooutputlogic [top_pkg::TL_DW-1:0]Host read data.
rdata_intg_ooutputlogic [DATA_INTG_WIDTH-1:0]Integrity bits with rdata_o.
err_ooutputlogicd_error or an integrity failure on this response.
intg_err_ooutputlogicIntegrity failure; sticky until reset.
tl_ooutputtl_h2d_tTL-UL host-to-device toward the fabric.
tl_iinputtl_d2h_tTL-UL device-to-host from the fabric.