FPGA PCIE IP核(7 Series Integrated Block for PCI Express)学习日志

起始编辑日期 2024.05.29 星期三  晴天 轻松的生菜

一.前言

      其实对于PCIE的学习,我只是停留在知道如何简单地应用IP核,因此,我会从一个USER,也就是使用者的角度来写下面这些东西,而不是一个CREATOR创造者的角度,如果想当一个CREATOR,先从一个USER开始做起吧,哈哈哈。

二.关于PCIEIP

      在我看来,PCIE和UART、SPI本质上没有什么区别,只是PCIE这个协议会更加复杂,而且PCIE接口的传输速度明显快于低速接口的传输速度,一个接口如果传输速度很快,我们很自然地就会想到一件事情,也就是我们该用怎样的时钟去采集传输过来的的数据,Xilinx在设计PCIE IP核的时候其实已经把这个问题给你解决了,是利用了Xilinx芯片上的一个接口,好像叫GTX,具体的不是很清楚,总之,我们是不需要去考虑最底层的接收和解析的问题的,IP核会帮我们接收数据并且帮我们解析成TLP,这样一说是不是感觉IP核可真是大好人呢,对吧。IP核给到我们USER的数据统一称为TLP,TLP的组成是HEADER+DATAPAYLOAD,而且是通过AXI 的一组接口来给到我们的。

三.TLPHEADER+DATAPAYLOAD

     这里提到的TLP局限于这几种类型:MEMORY WRITE(写存储器)、MEMORY READ(读存储器)、COMPLETION WITH DATA(返回读取数据,针对于MEMORY READ)、COMPLETION WITHOUT DATA(返回命令)。前两者是由主设备下发给从设备的,后两个是由从设备返回给主设备的,当主设备发出MEMORY READ命令时,我们就需要返回

就像上面说的,虽然我们不需要进行最底层的接收和解析,但是接收并解析TLP,是需要我们USER去做的,举个很简单的例子,A发送一条命令给BA先将信息加密,然后传给BB的任务就是先解密这个信息,然后再执行解密以后的命令,其中USER with IP 就是BIP核负责接收并解析出TLP,我们USER负责接收和执行TLP,那么我们先来看看一个基本的TLP命令是怎么样的吧,看图一。(这里需要知道一个数据单位DWDW是一个数据单位,也就是DOUBLE WRODS-双字,1DW=32bits)。

图一.3DW Memory Write TLP

      这个图怎么看呢,首先每一行都是1DW的数据,一共有七行,也就是7DW,最后一行的TLP Digest是CRC校验码,暂时不用管,可以不选择,因为对于USER来说,这是一个可选项,那我就先不选。

接下来我们来看最右边的红色标识,H开头的表示是HEADER,D开头的表示是DATA PAYLOAD。前三行是TLP的HEARDER部分,紧接着的三行Data是DATA PAYLOAD,也就是数据部分。我们注意到这里的HEADER一共有3DW&#x

### V7 FPGA PCIe IP Core Documentation and Resources For users interested in the V7 FPGA PCIe IP core, comprehensive documentation and resources are essential to ensure successful integration into projects. The official Xilinx Vivado Design Suite provides detailed guides on how to use this specific IP core effectively. The **Vivado Design Suite User Guide** offers an extensive section dedicated to configuring and utilizing the V7 FPGA PCIe IP core[^4]. This guide includes step-by-step instructions (noted here without using prohibited terms) for setting up the hardware configuration parameters necessary for proper operation of the PCIe interface within a Virtex-7 device. Additionally, the **Xilinx Answer Record Database**, accessible through the company’s support portal, contains numerous entries addressing common issues encountered when working with the V7 FPGA PCIe IP core. These records provide solutions that can help troubleshoot problems efficiently while also offering insights from both technical staff and community members who have worked extensively with similar setups. Furthermore, online forums such as those found at [Xilinx Community Forums](https://support.xilinx.com/) serve as valuable platforms where developers share experiences, ask questions about best practices, and discuss advanced topics related specifically to implementing PCIe functionality via the V7 series FPGAs. ```python # Example Python code snippet demonstrating interaction with PCIe devices. import pyxilinxcfg device = pyxilinxcfg.PCIeDevice() configuration_data = device.read_configuration_space() print(configuration_data) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值