【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解

1. 概述:本文从系统方面入手,利用vivado丰富的IP资源,设计一个链路可配置的PCIe EP(当然RC也可,IP支持,在此以EP为例)。

2. 参考文件:Xilinx vivado的各类参考文件

                      PCIe 2.0 Spec

                      Xilinx PCIe IP

3. 环境:如下图:采用V7485t,FPGA内置PCIe IP以及48个GTX模块

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第1张图片

4. Design:

(1)generate 一个 IP block(这种IP block特别适合直接采用各种IP生成模块)

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第2张图片

(2)基于IP block 界面加入IP核

i:add IP

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第3张图片

ii:choose IP(在这里基于V7 FPGA的pcie IP有三个,其中第一个是仅有PCIe,第二个挂在了AXI总线上,第三个集成了DMA功能,由于本题功能需求仅为生成PCIe EP,只具备端点的接受功能,不需要主动发送,RC需要给EP写数据,所以选用第二个)

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第4张图片

iii:加入其他IP(只需要手动添加红框的IP之后自动布线,就会生成如下如,点击工具栏红框,自动布局,把输入输出接出来即可)

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第5张图片 

3. 配置PCIe IP

i:配置为EP模式,时钟为100MHz

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第6张图片

ii:第一个是选择GTX bank的,可以使用默认的,具体要和板子相对应;之后选择链路宽度X1;链路速率Gen2

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第7张图片 

iii:厂商号可以使用默认的(当然可以任意设置哈哈哈哈)

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第8张图片 

iv:BAR配置(可以开的大一些,利于debug,后面axi转换地址可以不用)

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第9张图片 

v:之后就一直下一步下一步结束,注意mem的位宽。

vi:配置一下地址,也是之后访问的地址 。

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第10张图片 

然后就成功了,生成一下

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第11张图片 

4. 添加顶层(点击source,然后在block上右键,选择添加顶层)

【例程+代码】基于Xilinx FPGA开发软件Vivado生成PCIe EP例程详解_第12张图片

5. 综合 布局布线 下载 OK

后面会附加工程文件链接

武汉加油!

疫情当前也在家做做贡献,之前做过这个,经过回忆理解写下来,有问题联系。

你可能感兴趣的:(FPGA,Xilinx,FPGA,PCIE,EP)