您好!
我尝试通过 PCIe 在 FPGA 上写入来自 DSP 的一些数据字。
我们的 FPGA 只能接收 PIO 读写操作。 因此、我无法突发数据。
当我每32位写入 FPGA 时、字需要大约1.3微秒。
因此、我希望这是一个未过账的转账。
要启用已布置的写传输,PCI CMD_STATUS 寄存器中有一个名为 LOADD_WR_EN 的位,但标记为>>不适用
进行通信<<。
如何以另一种方式激活此功能?
或者是否还有其他可能强制 PCIe 端口发出已布置的写入?
此致
Andreas
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我尝试通过 PCIe 在 FPGA 上写入来自 DSP 的一些数据字。
我们的 FPGA 只能接收 PIO 读写操作。 因此、我无法突发数据。
当我每32位写入 FPGA 时、字需要大约1.3微秒。
因此、我希望这是一个未过账的转账。
要启用已布置的写传输,PCI CMD_STATUS 寄存器中有一个名为 LOADD_WR_EN 的位,但标记为>>不适用
进行通信<<。
如何以另一种方式激活此功能?
或者是否还有其他可能强制 PCIe 端口发出已布置的写入?
此致
Andreas
您好!
只要您的远程方是 FPGA、您就可以设置一些范围、例如 Xilinx 上的 ChipScope、以及在 FPGA 端对传入的 TLPS 进行 PEEP。 我敢打赌您会看到0_0000的类型归档、这意味着 MWR、 存储器写入请求。 这些写入按性质发布。 我无法想象、可以为存储器写入发出什么其他类型的 TLP。
您可能会将 PCIe 写入的布置性质与 CPU 行为混淆。 您可能会认为、存储到 PCIe 数据窗口会有效地将数据放入某个出站缓冲区中、该缓冲区的容量有限。 PCIe 子系统需要一些时间来准备接头并向下游传输数据字。
1.3每 DWORD 的美国也有点慢。 它提供32b/1.3E-6=24.6Mbps、或仅提供3Mbps。 我在 x1 gen1上看到了高达45MBps 的写入而没有突发。 我们也不知道您是使用32位还是64位寻址。 不过、您可以将事务层开销简单地估算为有效负载/(开销+有效负载)、而在32位寻址的最简单情况下、它会提供3dword 标头、并且事务利用率为1/4。 64位寻址中、该地址成为事务层上的1/5。