YPCB-00338-1P1 FPGA 板卡 逆向

1. 板卡基本信息介绍

前一段时间在网上看到了这样一张板卡,主芯片是Xilinx的 XC7K480T-2FFG1156I ,是一张 PCIE x8 接口的加速卡,板卡上面还有18片DDR3-1600的内存。除了DDR内存、LED指示灯和传感器以外板卡上没有别的外部接口,因此推测可能是一张计算加速卡,可玩性比较有限,但其主芯片的资源量相对来说又很多,结合价格等因素考虑下来,还是值得一玩的。于是我购买了一些板卡,并将其中一片拆开并逆向了所有的接口,下面就是详细的介绍。

下图是YPCB-00338-1P1这张卡的正反面图:

YPCB-00338-1P1 板卡正反面图及功能块介绍

可以看到在板卡上正面最中间的就是FPGA主芯片,型号:XC7K480T-2FFG1156I,下图是其基本参数。具体其它详细参数可以查看Xilinx官网的相关手册。

XC7K系列选型表

FPGA的右侧,就是非常明显的内存颗粒组,一共有两组,其型号均是MT41K256M8DA-125:K,是DDR3 1600MT/s 的 256M x8 颗粒,每组9颗组成一个72bit的ECC内存通道,具体参数可以参考芯片的手册。

最右侧是FPGA的FLASH芯片,用于存储程序等数据,其型号为是MT28GU512AAA1EGC-0SIT,是512Mb的NOR FLASH (32M x16),具体参数可以参考芯片手册。

主芯片上方和下方分别是两个200MHz的差分有源晶振,为芯片的DDR控制器提供参考时钟。

板卡的左侧还有两个按钮,其中SW2连接至GPIO,可以作为程序内复位,SW1连接至FPGA的 INIT_B 引脚,按下后整个芯片会复位。

除此之外板上还有三个LED指示灯,由GPIO控制,一个JTAG调试口,一个PCIE x8接口,还有一个温度传感器。

所有的相关资料和样例工程都已经打包进GitHub的工程项目中,项目链接:ypcb_00338_1p1_hack

2. 建立板卡工程

首先,将文件夹ypcb003381p1复制进板卡文件位置,如果没有board_files目录,请自行新建一个:

Vivado/<version>/data/boards/board_files/

打开Vivado,新建工程,在选择器件型号界面,选择“YPCB-00338-1P1 Accelerator Card”,如果板卡较多,可以通过筛选Vendor “tiferking.cn” 来快速查找:

选择“YPCB-00338-1P1 Accelerator Card”

建立好工程后,新建一个Block Design,然后就可以在Boards选项卡中选择需要的接口进行连接,例如下图是连接MIG的操作方法:

选择连接板子器件
选择接口模式

通过同样的方法,可以选择需要的接口进行开发配置,样例中的工程使用了所有可用的接口:

调整好所有待开发内容后,生成工程bit文件。

需要注意的是,目前由于一些未知的原因,PCIE的收发器端口可能会约束失败,如果发生了约束失败的情况,请手动添加图中的约束:

后续我将继续尝试解决这个问题,如果可以通过修补板卡文件解决,我将直接在GitHub上更新。

3. 样例工程

在安装好板卡文件后,使用不低于2022.2版本的Vivado即可打开example中的样例工程。“YPCB_00338_1P1_software.zip”可以通过工程导入的方式导入至Vitis,其中包含了LED、温度传感器、PCIE XDMA和内存测试的程序。

4. 通过JTAG调试板卡

使用Xilinx USB Cable连接板卡的JTAG接口,使用 Vivado Hardware Manager 即可将程序加载进FPGA中,其JTAG接口的定义如下:

5. 将程序固化到板卡

使用Xilinx USB Cable连接板卡的JTAG接口,可以使用 Vivado Hardware Manager 将程序文件烧录进Flash中,具体器件选择如下:

6. 请求赞助

如果你认为这份资料对你有帮助,希望能给予我一些赞助支持,你的一份支持可以让我走的更远。谢谢!

赞助链接:【闲鱼】https://m.tb.cn/h.T5I9wQG?tk=nYF73BYwS9j

(完)


Posted

in

by

Tags: