原创 基于Xilinx FPGA的PCIE接口硬件设计

2021-6-22 14:12 1054 2 3 分类: FPGA/CPLD

最近一个项目中,需要在xilinx v7690t的FPGA高速接口上挂载PCIEx8接口,基于此项目,和大家分享一下在xiinx FPGA上如何挂载PCIE接口。

首先,要在FPGA上挂载PCIE接口,必须明确的是挂载在GTH或GTX高速Bank上。而对于690t-fgg1927器件,有20个高速bank,分别为bank110-bak119和bank210-bank219,那么我们在硬件设计中,PCIE接口该接到哪个bank呢?

本项目中,我们需要的是PCIEx8接口,也就是说需要8通道高速收发器,而690t的每个高速bank只有4通道收发器,所以需要2个bank来实现。在硬件设计中,那么该接哪两个高速bank呢?不妨先从逻辑着手,打开vivado软件,搜索PCIE IP核,出现如下几个选项,我用的vivado软件版本为2018.2。

我们选择最后一个ip,双击之后显示界面如下。

 在该界面中,对于硬件设计而言,我们只关注两部分,分别是Lane Width和PCIe Block Locatin这两个参数,第一个参数为PCIe的通道数,也就是实际的PCIe x1,x2,x4,x8。第二个参数就是我们的PCIe高速接口在FPGA高速bank上的连接位置,该参数有三个选项,分别为X0Y0,X0Y1,X0Y2。每个选项对应着不同的单个或相邻的bank。以下是我分别选择三个选项,vivado自己生成的xdc文件。

X0Y0:


X0Y1:


X0Y2:


我们从上图中可以看出,无论我们选择三个选项中的哪一个,在xdc文件中,体现的只有X1Y4之类的约束,并没有像我们之前编写逻辑时约束的具体管脚号。那么我们怎么去查X1Y4这类约束对应的bank呢?这个时候我们需要去xilinx的官网查找GTX/GTH手册了。

在xilinx官网有一个ug476手册,在该手册中详细的描述了每一个location。

由于本次项目中使用的是v7690t-ffg1927器件,所以在ug476手册的416页到425页可以查到具体对应的bank。

例如之前生成的xdc文件中的X1Y4,对应的是bank111的AW2,AW1,AV8,AV7四个引脚。所以我们在IP配置界面选择PCIEx8选项,X0Y0时,此时8通道高速收发器对应的是bank111-bank112;选择PCIEx8选项,X0Y1时,此时8通道高速收发器的是bank114-bank115;选择PCIEx8选项,X0Y2时,此时8通道高速收发器的是bank117-bank118。

通过以上查找分析,我们确定了当使用PCIEx8高速接口时,具体应该连接到了那两个bank,那么8通道差分收发器在这两个bank上怎么连接呢?例如我们选择了bank111-bank112,lan0-lan7是从bank111的MGTHT/RXP/N0开始到bank112的MGTHT/RXP/N3正向连接呢还是逆向呢?其实从前面生成的xdc文件我们可以看出,选择X0Y0时,对应的bank为bank111-bank112。

 我们可以看出Lane0对应的是X1Y11,也就是bank112的MGTHT/RXP/N3差分对儿,而Lane7对应的是X1Y4,也就是bank111的MGTHT/RXP/N0CH差分对儿。所以在官方推荐中,是逆序引脚连接,也就是PCIE_T/RXD_0_P/N连接至bank112的MGTHT/RXP/N3,依次递减,PCIE_T/RXD_7_P/N连接至bank111的MGTHT/RXP/N0。

 那么如果在硬件设计中,我们的引脚是正序连接的,PCIE_T/RXD_0_P/N连接至bank111的MGTHT/RXP/N0依次递增PCIE_T/RXD_7_P/N连接至bank112的MGTHT/RXP/N3,该怎么办,此时只需修改IP生产的xdc文件,把对应的Lane改成对应的Location即可。

通过以上分析理解,我们知道了在硬件设计中,xilinx FPGA的V7690T-FGG1927器件如何连接高速PCIEx8接口。如有理解不到位的地方,还请各位大佬不吝指导。

关注小编的微信公众号查看更详细的内容哟:xiaomage_group。

作者: 小马哥电子, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1761950.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论1条评论)

登录后参与讨论

jieranerabc 2021-7-9 10:00

V7的PCIE可以跑到Gen3,还是很厉害的,也不便宜哈哈
相关推荐阅读
小马哥电子 2017-08-17 17:17
数字收音机制作(1)
之前一直想做一款数字收音机来着,但是由于各种原因,刚画完原理图就放弃了。这次抽出时间,重新设计方案,制作一款小巧mini型的数字收音机。    本次重新设计方案之后,该收音机目前可具备的功能有:   ...
小马哥电子 2017-06-06 12:11
项目实战之MOS管啸叫
最近做一个点火器项目时要使用单片机的IO口控制一个36V的P沟道MOS管的开关,但是在电路的设计验真阶段,出现了MOS管的啸叫。MOS管竟然啸叫,我的天,这还是第一次碰到。下面我来还原一下场景。 首先...
小马哥电子 2017-05-23 22:21
FPGA学习之基于TLC549的直流电压采集及显示
最近由于毕业论文的事,小编是忙的不可开交,今天抽出点时间写篇文章,冒个泡,以防大家把我给遗忘了,哈哈哈哈~ 言归正传,今天我们的任务是通过FPGA控制TLC549模数转换芯片(ADC)采集直流电压值,...
小马哥电子 2017-05-18 18:55
FPGA学习之高速ADC采集
ADC(Analog-to-Digital Converter,模拟-数字转换器)在硬件电路中是经常见到的器件,音频信号的采集、温度的采集等等,凡是涉及到模拟信号转数字信号的电路,都会用到ADC。 A...
小马哥电子 2017-05-15 11:19
FPGA学习之基于动态数码管的时钟显示
动态数码管的原理之前已经说过,但是之前说的只是它的工作原理,今天我们来说说动态数码管的应用。今天通过FPGA编程,驱动8个动态数码管显示“时-分-秒”。 下图是4位共阳动态数码管的工作时序。某一时刻控...
广告
我要评论
1
2
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /3 下一条