TLP 任务 - 1.3 简体中文

UltraScale+ 器件 Integrated Block for PCI Express 产品指南 (PG213)

Document ID
PG213
Release Date
2022-11-16
Version
1.3 简体中文
表 1. TLP 任务
名称 输入 描述
TSK_TX_TYPE0_CONFIGURATION_READ

tag_

reg_addr_

first_dw_be_

7:0

11:0

3:0

将“Type 0 PCI Express Config Read TLP”(类型 0 PCI Express 配置读取 TLP)从“Root Port Model”(根端口模型)发送到“Endpoint DUT”(端点 DUT)的 reg_addr(含 tag_ 和 first_dw_be_ 输入)。

从 Endpoint DUT 返回的 Cpld 使用全局 EP_BUS_DEV_FNS 的内容作为完成器 ID。

TSK_TX_TYPE1_CONFIGURATION_READ

tag_

reg_addr_

first_dw_be_

7:0

11:0

3:0

将“Type 1 PCI Express Config Read TLP”(类型 1 PCI Express 配置读取 TLP)从“Root Port Model”发送到“Endpoint DUT”的 reg_addr_(含 tag_ 输入和 first_dw_be_ 输入)。

从 Endpoint DUT 返回的 CplD 使用全局 EP_BUS_DEV_FNS 的内容作为完成器 ID。

TSK_TX_TYPE0_CONFIGURATION_WRITE

tag_

reg_addr_

reg_data_

first_dw_be_

7:0

11:0

31:0

3:0

将“Type 0 PCI Express Config Write TLP”(类型 0 PCI Express 配置写入 TLP)从“Root Port Model”发送到“Endpoint DUT”的 reg_addr_(含 tag_ 输入和 first_dw_be_ 输入)。

从 Endpoint DUT 返回的 Cpl 使用全局 EP_BUS_DEV_FNS 的内容作为完成器 ID。

TSK_TX_TYPE1_CONFIGURATION_WRITE

tag_

reg_addr_

reg_data_

first_dw_be_

7:0

11:0

31:0

3:0

将“Type 1 PCI Express Config Write TLP”(类型 1 PCI Express 配置写入 TLP)从“Root Port Model”发送到“Endpoint DUT”的 reg_addr_(含 tag_ 输入和 first_dw_be_ 输入)。

从 Endpoint DUT 返回的 Cpl 使用全局 EP_BUS_DEV_FNS 的内容作为完成器 ID。

TSK_TX_MEMORY_READ_32

tag_

tc_

len_

addr_

last_dw_be_

first_dw_be_

7:0

2:0

10:0

31:0

3:0

3:0

将“PCI Express Memory Read TLP”(PCI Express 存储器读取 TLP)从“Root Port”(根端口)发送到“Endpoint DUT”的 32 位存储器地址 addr_。

此请求使用全局 RP_BUS_DEV_FNS 的内容作为请求器 ID。

TSK_TX_MEMORY_READ_64

tag_

tc_

len_

addr_

last_dw_be_

first_dw_be_

7:0

2:0

10:0

63:0

3:0

3:0

将“PCI Express Memory Read TLP”从 Root Port Model 发送到 Endpoint DUT 的 64 位存储器地址 addr_。

此请求使用全局 RP_BUS_DEV_FNS 的内容作为请求器 ID。

TSK_TX_MEMORY_WRITE_32

tag_

tc_

len_

addr_

last_dw_be_

first_dw_be_

ep_

7:0

2:0

10:0

31:0

3:0

3:0

-

将“PCI Express Memory Write TLP”(PCI Express 存储器写入 TLP)从“Root Port Model”发送模型到“Endpoint DUT”的 32 位存储器地址 addr_。

此请求使用全局 RP_BUS_DEV_FNS 的内容作为请求器 ID。

使用全局 DATA_STORE 字节阵列将写入数据传递到任务。

TSK_TX_MEMORY_WRITE_64

tag_

tc_

len_

addr_

last_dw_be_

first_dw_be_

ep_

7:0

2:0

10:0

63:0

3:0

3:0

-

将“PCI Express Memory Write TLP”(PCI Express 存储器写入 TLP)从“Root Port Model”发送模型到“Endpoint DUT”的 64 位存储器地址 addr_。

此请求使用全局 RP_BUS_DEV_FNS 的内容作为请求器 ID。

使用全局 DATA_STORE 字节阵列将写入数据传递到任务。

TSK_TX_COMPLETION

req_id_

tag_

tc_

len_

byte_count_

lower_addr_

comp_status_

ep_

15:0

7:0

2:0

10:0

2:0

11:0

6:0

-

将“PCI Express Completion TLP”(PCI Express 完成 TLP)从“Root Port Model”发送到“Endpoint DUT”,使用全局 RP_BUS_DEV_FNS 作为完成器 ID 并使用 req_id_ 输入作为请求器 ID。

comp_status_ 输入可设置为以下值之一:

3'b000 = 成功完成

3'b001 = 请求不受支持

3'b010 = 配置请求重试状态

3'b100 = 完成器异常中止

TSK_TX_COMPLETION_DATA

req_id_

tag_

tc_

len_

byte_count_

lower_addr_

ram_ptr

comp_status_

ep_

15:0

7:0

2:0

10:0

11:0

6:0

RP_BAR_ SIZE:0

2:0

-

将“PCI Express Completion with Data TLP”(PCI Express 含数据完成 TLP)从“Root Port Model”发送到“Endpoint DUT”,使用全局 RP_BUS_DEV_FNS 作为完成器 ID 并使用 req_id_ 输入作为请求器 ID。

使用全局 DATA_STORE_2 字节阵列来将完成数据传递到任务,使用 ram_ptr 输入偏移此阵列中的起始字节。

TSK_TX_MESSAGE

tag_

tc_

len_

data_

message_rtg_

message_code_

7:0

2:0

10:0

63:0

2:0

7:0

将“PCI Express Message TLP”(PCI Express 报文 TLP)从“Root Port Model”发送到“Endpoint DUT”。

此请求使用全局 RP_BUS_DEV_FNS 的内容作为请求器 ID。

TSK_TX_MESSAGE_DATA

tag_

tc_

len_

data_

message_rtg_

message_code_

7:0

2:0

10:0

63:0

2:0

7:0

将“PCI Express Message with Data TLP”(PCI Express 报文含数据 TLP)从“Root Port Model”发送到“Endpoint DUT”。

使用全局 DATA_STORE 字节阵列将报文数据传递到任务。

此请求使用全局 RP_BUS_DEV_FNS 的内容作为请求器 ID。

TSK_TX_IO_READ

tag_

addr_

first_dw_be_

7:0

31:0

3:0

将“PCI Express I/O Read TLP”(PCI Express I/O 读取 TLP)从“Root Port Model”发送到“Endpoint DUT”的 I/O 地址 addr_[31:2]。

此请求使用全局 RP_BUS_DEV_FNS 的内容作为请求器 ID。

TSK_TX_IO_WRITE

tag_

addr_

first_dw_be_

data

7:0

31:0

3:0

31:0

将“PCI Express I/O Write TLP”(PCI Express I/O 写入 TLP)从“Root Port Model”发送到“Endpoint DUT”的 I/O 地址 addr_[31:2]。

此请求使用全局 RP_BUS_DEV_FNS 的内容作为请求器 ID。

TSK_TX_BAR_READ

bar_index

byte_offset

tag_

tc_

2:0

31:0

7:0

2:0

将 PCI Express one Dword Memory 32、Memory 64 或 I/O Read TLP 从 Root Port Model 发送到目标地址,此地址对应于来自 Endpoint DUT 的 BAR bar_index 的偏移 byte_offset。此任务会基于初始化期间 BAR bar_index 的配置方式来发送相应的 Read TLP。只有在成功完成 TSK_BAR_INIT 后才能调用此任务。

此请求使用全局 RP_BUS_DEV_FNS 的内容作为请求器 ID。

TSK_TX_BAR_WRITE

bar_index

byte_offset

tag_

tc_

data_

2:0

31:0

7:0

2:0

31:0

将 PCI Express one Dword Memory 32、Memory 64 或 I/O Write TLP 从 Root Port 发送到目标地址,此地址对应于来自 Endpoint DUT 的 BAR bar_index 的偏移 byte_offset。

此任务会基于初始化期间 BAR bar_index 的配置方式来发送相应的 Write TLP。只有在成功完成 TSK_BAR_INIT 后才能调用此任务。

TSK_WAIT_FOR_READ_DATA  

等待端口 DUT 发送的下一个含数据完成 TLP。成功完成后,来自 CplD 的数据的第一个 Dword 将存储在全局 P_READ_DATA 中。在 TPI 中请求含数据完成 TLP 的任何读取任务完成后应立即调用此任务,以避免出现任何争用状况。

默认情况下,此任务会局部超时,并在经过 1000 个传输事务接口时钟后终止仿真。全局 cpld_to_finish 可设置为 0,以便局部超时向调用测试返回执行指令,并避免导致仿真超时。在本例中,测试程序应检查全局 cpld_to,后者设置为 1,表明此任务已超时并且 P_READ_DATA 的内容无效。

TSK_TX_SYNCHRONIZE

first_

active_

last_call_

tready_sw_

-

-

-

-

等待 AXI4-Stream Requester Request(请求器请求)信号或 Completer Completion Interface Ready(完成器完成接口就绪)信号断言有效,并将 log 日志文件中的输出同步到当前有效的每个传输事务。

first_ 输入表示包起始。

active_ 输入表示当前正在执行传输事务。

last_call_ 输入表示包结束。

tready_sw 输入用于选择 Requester Request 信号或 Completer Completion Interface Ready 信号。

TSK_BUILD_RC_TO_PCIE_PKT

rc_data_QW0

rc_data_QW1

m_axis_rc_tkeep

m_axis_rc_tlast

63:0

63:0

KEEP_ WIDTH-1:0

-

将位于请求器完成接口的 AXI4-Stream 包从描述符包格式转换为 PCIe TLP 包格式,以便于记录到 log 日志中。
TSK_BUILD_CQ_TO_PCIE_PKT

cq_data

cq_be

m_axis_cq_tdata

63:0

7:0

63:0

将位于完成器请求接口的 AXI4-Stream 包从描述符包格式转换为 PCIe TLP 包格式,以便于记录到 log 日志中。
TSK_BUILD_CPLD_PKT

cq_addr

cq_be

m_axis_cq_tdata

63:0

15:0

63:0

针对从端口 DUT 接收到的存储器读取返回完成包或含数据完成包。使用完成器模型时,生成的完成包将根据“Root Port Model”中的“Max Payload Size”(最大有效载荷大小)和“Read Completion Boundary”(读取完成边界)规则进行拆分。含数据完成包使用全局 DATA_STORE_2 阵列中存储的数据。