tlul_pkg

Hold TileLink Uncached Lightweight types, opcodes, and integrity widths.

Define the A/D opcodes, packed channel structs and their default values, integrity and reserved-user widths, and helpers that extract and compute command and data integrity.

Two constants give the data returned on a TL-UL error; responders return each with matching data integrity:

  • DATA_WHEN_INSTR_ERROR is returned for an instruction fetch.
  • DATA_WHEN_ERROR is returned for any access that is not an instruction fetch.

tl_a_op_e

Enum (logic [2:0])

Table 1. tl_a_op_e
ValueNumberDescription
PUT_FULL_DATA3'h 0
PUT_PARTIAL_DATA3'h 1
GET3'h 4

tl_d_op_e

Enum (logic [2:0])

Table 2. tl_d_op_e
ValueNumberDescription
ACCESS_ACK3'h 0
ACCESS_ACK_DATA3'h 1

tl_a_user_t

Packed struct

Table 3. tl_a_user_t
FieldTypeDescription
rsvdlogic [RSVD_WIDTH-1:0]
instr_typeprim_mubi_pkg::mubi4_t
cmd_intglogic [H2D_CMD_INTG_WIDTH-1:0]
data_intglogic [DATA_INTG_WIDTH-1:0]

tl_h2d_cmd_intg_t

Packed struct

Table 4. tl_h2d_cmd_intg_t
FieldTypeDescription
instr_typeprim_mubi_pkg::mubi4_t
addrlogic [top_pkg::TL_AW-1:0]
opcodetl_a_op_e
masklogic [top_pkg::TL_DBW-1:0]

tl_h2d_t

Packed struct

Table 5. tl_h2d_t
FieldTypeDescription
a_validlogic
a_opcodetl_a_op_e
a_paramlogic [2:0]
a_sizelogic [top_pkg::TL_SZW-1:0]
a_sourcelogic [top_pkg::TL_AIW-1:0]
a_addresslogic [top_pkg::TL_AW-1:0]
a_masklogic [top_pkg::TL_DBW-1:0]
a_datalogic [top_pkg::TL_DW-1:0]
a_usertl_a_user_t
d_readylogic

tl_d_user_t

Packed struct

Table 6. tl_d_user_t
FieldTypeDescription
rsp_intglogic [D2H_RSP_INTG_WIDTH-1:0]
data_intglogic [DATA_INTG_WIDTH-1:0]

tl_d2h_t

Packed struct

Table 7. tl_d2h_t
FieldTypeDescription
d_validlogic
d_opcodetl_d_op_e
d_paramlogic [2:0]
d_sizelogic [top_pkg::TL_SZW-1:0]Bouncing back a_size.
d_sourcelogic [top_pkg::TL_AIW-1:0]
d_sinklogic [top_pkg::TL_DIW-1:0]
d_datalogic [top_pkg::TL_DW-1:0]
d_usertl_d_user_t
d_errorlogic
a_readylogic

tl_d2h_rsp_intg_t

Packed struct

Table 8. tl_d2h_rsp_intg_t
FieldTypeDescription
opcodetl_d_op_e
sizelogic [top_pkg::TL_SZW-1:0]
errorlogic

tl_a_user_chk

Check user for unsupported values

Function returning logic

Table 9. tl_a_user_chk
NameDirectionTypeDescription
userinputtl_a_user_t

extract_h2d_cmd_intg

extract variables used for command checking

Function returning tl_h2d_cmd_intg_t

Table 10. extract_h2d_cmd_intg
NameDirectionTypeDescription
tlinputtl_h2d_t

extract_d2h_rsp_intg

extract variables used for response checking

Function returning tl_d2h_rsp_intg_t

Table 11. extract_d2h_rsp_intg
NameDirectionTypeDescription
tlinputtl_d2h_t

get_cmd_intg

calculate ecc for command checking

Function returning logic [H2D_CMD_INTG_WIDTH-1:0]

Table 12. get_cmd_intg
NameDirectionTypeDescription
tlinputtl_h2d_t

get_data_intg

calculate ecc for data checking

Function returning logic [DATA_INTG_WIDTH-1:0]

Table 13. get_data_intg
NameDirectionTypeDescription
datainputlogic [top_pkg::TL_DW-1:0]

get_bad_cmd_intg

return inverted integrity for command payload

Function returning logic [H2D_CMD_INTG_WIDTH-1:0]

Table 14. get_bad_cmd_intg
NameDirectionTypeDescription
tlinputtl_h2d_t

get_bad_data_intg

return inverted integrity for data payload

Function returning logic [H2D_CMD_INTG_WIDTH-1:0]

Table 15. get_bad_data_intg
NameDirectionTypeDescription
datainputlogic [top_pkg::TL_DW-1:0]