tlul_socket_1n

Steer one TL-UL host onto N device ports.

Route each A-channel request to tl_d_o[dev_select_i] through optional host and per-device FIFOs; dev_select_i travels through the host FIFO with its request. Ports that are not selected see a_valid low, blanked a_data and deliberately bad integrity. Maximum N is 63.

Stall switching to another device until all outstanding responses from other devices have returned: keep a counter of outstanding requests and wait until it is zero before switching.

Return an error response from an internal tlul_err_resp when dev_select_i is outside 0..N-1. The instantiator may force an error with any illegal select; all ones is recommended for visibility. When EXPLICIT_ERRS is set, size dev_select_i as $clog2(N+1) bits so value N is always representable and can request that error.

FIFO parameters:

  • H_REQ_PASS/H_RSP_PASS and D_REQ_PASS/D_RSP_PASS allow fall-through when the corresponding FIFO is empty.
  • H_REQ_DEPTH/H_RSP_DEPTH and D_REQ_DEPTH/D_RSP_DEPTH set FIFO depths; the D* depths pack one nibble per device.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
Nint unsigned4Number of device ports (max 63).
H_REQ_PASSbit1'b1Host request FIFO fall-through.
H_RSP_PASSbit1'b1Host response FIFO fall-through.
D_REQ_PASSbit [N-1:0]{N{1'b1}}Per-device request FIFO fall-through.
D_RSP_PASSbit [N-1:0]{N{1'b1}}Per-device response FIFO fall-through.
H_REQ_DEPTHbit [3:0]4'h1Host request FIFO depth.
H_RSP_DEPTHbit [3:0]4'h1Host response FIFO depth.
D_REQ_DEPTHbit [N*4-1:0]{N{4'h1}}Packed per-device request FIFO depths.
D_RSP_DEPTHbit [N*4-1:0]{N{4'h1}}Packed per-device response FIFO depths.
EXPLICIT_ERRSbit1'b1Widen select so N can request an error.
Nwdint unsigned$clog2(EXPLICIT_ERRS ? N+1 : N)Width of dev_select_i.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputSystem clock.
rst_niinputActive-low reset.
tl_h_iinputtlul_pkg::tl_h2d_tHost-side TL-UL request.
tl_h_ooutputtlul_pkg::tl_d2h_tHost-side TL-UL response.
tl_d_ooutputtlul_pkg::tl_h2d_tPer-device TL-UL requests.
tl_d_iinputtlul_pkg::tl_d2h_tPer-device TL-UL responses.
dev_select_iinput[Nwd-1:0]Device index; N and above return an error.