基于ZCU106实现PL PCIE Tandem PROM功能 从而满足100MS之内主板能识别PCIE接口

接口/总线/驱动

1114人已加入

描述

根据PCIE规范对设备的要求是PERST# must deassert 100 ms after the power good of the systems has occurred, and a PCI Express port must be ready to link train no more than 20 ms after PERST# has deasserted.

现在大规模FPGA的bitstream比较大导致板卡从上电到FPGA配置完成的时间远远超过100MS的要求,从而电脑端无法正常识别到PCIE设备。

为此Xilinx的PCIE Tandem(详见PG156)功能是专为满足PCIe设备在100ms之内枚举起来要求而设计的。

PCIe

Zynq UltraScale+ MPSoC是Xilinx推出的第二代多处理SoC系统,其PL提供高性能的PCIE GEN3 IP core给客户使用。

PCIe

如下图所示,由于MPSOC的启动加载image方式是跟纯FPGA器件是有所差异,MPSOC器件是需要从PS部分先去加载bootrom里面内容,然后按顺序去加载FSBL\Bitstream等等内容。

PCIe

从上图看来MPSOC加载是比纯FPGA器件复杂很多同时差异也比较大,所以本文主要是介绍如何在MPSOC的器件里面实现PL PCIE tandem的加载方式来满足PCIE规范里面对设备100ms的加载时间要求。

此设计流程是James Shen基于Xilinx AE Iris Yang提供的方法上面完善设计并进行板卡验证。

详细操作步骤请按照下面流程来进行:

PCIe

1、测试环境为ZCU106 V1.1板卡和Vivado 2019.1软件;

2、由于ZCU106的PS DDR4 DIMM中间换过,所以新的DIMM需要按照下面参数来进行修正,不然系统会无法启动;

PCIe

PCIe

PCIe

3、在PL里面搭建PCIE XDMA架构;

PCIe

4、根据ZCU106板卡硬件做XDMA配置;

PCIe

PCIe

5、根据Xilinx的PCIE example design修改XDC约束;

PCIe

6、把ZCU106的QSPI配置同时提高时钟频率到300MHZ;

PCIe

PCIe

7、在XDMA界面设置Tandem PROM;

PCIe

8、设置XDC里面相关约束文件;

PCIe

9、修改xfsbl_qspi.c里面时钟计算相关值;

PCIe

10、去掉打印Debug等信息,从而节约加载时间;

PCIe

11、修改xfsbl_partition_load.c来支持加载两个阶段的bitstream文件;

PCIe

PCIe

PCIe

PCIe

12、对ZCU106的硬件需要进行设置;

PCIe

PCIe

PCIe

13、生成相关boot image;

PCIe

PCIe

PCIe

14、根据ZCU106板卡硬件选择下载方式去下载bit到板卡上面就实现本文目的。

PCIe

根据上文的流程和要求,经过硬件板卡实际验证可以满足PCIE在100ms之内枚举的要求。供大家参考。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分