浪潮加速卡XC7K480T搭建PCIE测试工程

浪潮加速卡XC480T搭建PCIE测试工程

背景

前面我们使用小黄鱼淘到的板子并且使用JTAG探测了板上所有芯片的管脚,之前建立了MicroBlaze软核成功驱动了板上的DDR和LED,接下来准备搭建一个工程用来测试板上PCIE。板上的各个资源和FPGA的连接关系如下图

graph LR 50M单端时钟-->FPGA 200M差分时钟*2-->FPGA FPGA[XC7K480TFFG1156]<--72bit-->DDR3_1[2GB 64bit+ECC] FPGA[XC7K480TFFG1156]<--72bit-->DDR3_2[2GB 64bit+ECC] FPGA[XC7K480TFFG1156]--GPIO-->LED[LED*3] FPGA[XC7K480TFFG1156]<--I2C-->LM32[LM32 温度传感器] 按键--GPIO-->FPGA PCIE接口<--PCIE X8+I2C+100M时钟-->FPGA

本次工程打算使用PCIE DMA核的测试工程来跑通PCIE接口,让板子插在电脑主板上能识别到我们配置的PCIE设备ID。

本次开发基于Vivado2024.1。

创建PCIE例程

先新建一个空白工程,器件选择XC7K480TFFG1156,工程新建完后在block design中调用PCIE IP

image-20241110000718187

点击IP,配置PCIE参数,首先配置PCIE宽度为X8,速率为5G

image-20241110000819830

接着配置设备ID和厂家ID,这里随便修改为一个自定义的ID

image-20241110001009978

剩下的部分先使用默认参数,一路Next下去直到完成配置。对IP右键打开例子工程,填写完工程目录和名称后Vivado会自动根据配置的IP生成一个例程

image-20241110001148642

image-20241110001427904

Open Elaborated Design中分配PCIE、时钟和复位信号管脚

image-20241110002337624

点击**Generate Bitstream综合、实现并生成比特流文件。

image-20241110002747672

使用电脑测试

板子买回来自带的程序里面也是例化了PCIE设备的,可以把板子直接插在电脑主板的PCIE槽位中,开机启动后在设备管理器中可以看到一个PCIE设备,只是由于没有对应的驱动程序,所以会报没有驱动的警告,先忽略这个问题。

image-20241110002805254

查看设备属性,可以看到原版程序的PCIE厂家ID是10EE,设备ID是7028,子系统厂家ID是10EE,子系统ID是0007

image-20241110002948042

将仿真器连上板子,使用Vivado将上一步生成的比特流文件加载进FPGA,在设备管理器中右键重新扫描检测硬件设备改动,没问题的话会成功扫描到PCIE设备,查看ID与我们在IP核中配置的ID也是一致的,证明电脑已经成功扫描到了FPGA内部的PCIE设备了。

image-20241110004003680

总结

使用Vivado自带的例程搭建PCIE测试工程还是比较简单的,下一步就是使用软件操作PCIE设备,实现PCIE数据传输,这又涉及在Linux中开发驱动和编写测试程序,再后面再实现这个需求了。

posted @ 2024-11-10 00:39  LM358  阅读(1547)  评论(4)    收藏  举报