基于FPGA设计PCIE接口设计(数据有效位判定)
PCIE和CPU之间通信,当FPGA发送一个存储器读请求(MRd)后,将收到CPU返回的带数据读完成报文(Cpld)。根据带宽的不同,接口数据位宽可以选择为64bit、128bit、256bit。在PCIE协议中,数据传输最小单位是双字(DW),所以FPGA收到Cpld报文后需要判断数据的哪个双字有效。Cpld报文的TLP头部长度为3DW。
1. 接口数据位宽为64bit
根据s_axi_rx_tkeep信号来判断哪个双字有效。
(1)判断最后64bit数据有效双字:
当s_axi_rx_tlast信号和s_axi_rx_tvalid信号同时拉高时,表示为最后一拍数据,根据s_axi_rx_tkeep[7:0](0xFF或0x0F)信号来判断哪个双字有效;其它情况下,s_axi_rx_tkeep[7:0]=0xFF,根据s_axi_rx_tvalid信号来判断64bit数据是否有效。
s_axi_rx_tdata[63 |