五、一个quad同时支持pcie和sfp两种高速接口的ref时钟配置

项目描述

  1. 上位机将截图数据通过 XDMA 写入到 FPGA 侧的 DDR 内存区域 1 中
  2. 通过 axi_lite 接口给 axi_read_start 信号,通知 AXI_read 模块启动读取数据,然后通过 GTP TX 模块发送出去。
  3. 经过光纤回环,GTP RX 端接收到数据,送给 AXI_WRITE 模块,然后写入到 FPGA的内存的区域 2 中。
  4. 写完成后通过 AXI write end 的中断信号通知上位机读取区域 2 的数据。

结构框图

其中pc上位机与fpga之间通过pcie接口相连,axi_read模块读出的数据通过aurora8b10b模块实现并转串输出到光纤接口。

本次项目是在XDMA框架下的桌面采集和PCIE传输项目以及aurora8b10b ip的使用(framing接口下的数据回环测试)两个项目的基础上进行的。

本章内容:搭建适合pcie和sfp共用一个QUAD的框架

一、common与channel设置

本章重点:实现在a7板子上使用一个QUAD实现两种高速接口(pcie、sfp)框架的搭建。

需要先了解:
高速收发器的原理

分析

本次项目中XDMA和aurora 都需要用到高速接口:

分别是pcie(xmda使用)和sfp(aurora使用),且涉及到两个refclk,这里需要注意一下refclk如何通过QPLL路由到不同的channel。

本项目中两个PCIE通道使用QPLL0(100MHZ),一个SFP通道使用QPLL1(125MHZ)。

从图中可以看到:高速收发器的时钟从refclk路由到rx or tx接口需要经过两个部分的配置:
1.common 中: QPLL选择哪个refclk,以及提供给哪类高速接口使用(pcie or sfp)

2.channel 中:选择对应QPLL的哪一路(左端 or 右端)

所以重点在于这两个部分如何配置。

1.common的配置

1.1共享xdma的common逻辑:

将xdma中的common资源共享出来(如果不共享的话,common资源就只存在于xdma的ip核中,但是aurora的ip核也需要使用common资源,一个commom需要一个quad,a7开发板只有一个quad,因此如果遇到多个地方需要common资源时,需要将common从某个单独的ip中共享出来,共同使用。)

后续设计需要使用官方例程,在官方例程上改参数。

  • 生成xdma ip 的example design,打开工程文件,找到imports文件夹,将下图中的四个文件复制到一个新的文件夹中(新建一个gtp_common文件夹放进去),后续修完成后,作为自定义的ip使用

    四个文件的关系如下,其中gt_common为顶层

1.2修改xdma的qpll_wrapper文件

分析:

  • xdma共享出来的common需要给两个ip提供时钟(xdma、aurora)。
  • 而一个Qpll只能驱动一种类型的高速接口(例如QPLL0驱动pcie的高速接口,就不能驱动sfp光纤的高速接口了),因此common需要输出QPLL0和QPLL1两路时钟,分别驱动两种不同高速接口。
  • 两个高速接口依赖的refclk可以由电路原理图得知(refclk0驱动sfp,refclk1驱动pcie)。
  • 每个ip使用common时,默认情况下首先使用的是QPLL0,所以原项目的xdma模块中是使用QPLLO驱动pcie的channel,而aurora8b10b模块(官方例程)也默认使用PLL0。(因为xdma中QPLL0驱动了pcie的两个channel,而aurora8b10b中QPLL0驱动了sfp的一个通道,因此直接在xdma的文件中更改QPLL1的设置更方便)

共享出来的common接口情况如下,需要拓展接口:

查看xdma的qpll_wrapper文件初始情况:

Q:如何修改xdma的qpll_wrapper文件,QPLL1参数设置的依据是什么?

A:aurora8b10b的commom_wrapper文件(相当于apll_wrapper文件)

对比xdma的qpll_wrapper文件前后修改情况:

其中PLL0REFCLKSEL 和 PLL1REFCLKSEL的参数设置依据:

1.3修改xdma的gt_common(顶层)文件

1.4 gt_common ip的封装示意图,参考官方例程完成与XDMA模块和AURORA模块的连线。

2. channel的配置

xdma的两个pcie的channel已经默认与QPLL0相连了,因此只需要配置aurora的channel,使其连接QPLL1即可。

由手册可知:

当RXSYSCLKSEL和TXSYSCLKSEL都为1时,由PLL1OUTCLK 和 PLL1OUTREFCLK驱动channel。

具体操作如下:

打开aurora的ip,找到gt文件:

修改参数如下:

总结两个高速接口的ref时钟配置情况:


相关推荐
上理考研周导师4 小时前
第二章 虚拟仪器及其构成原理
fpga开发
FPGA技术实战6 小时前
《探索Zynq MPSoC》学习笔记(二)
fpga开发·mpsoc
bigbig猩猩16 小时前
FPGA(现场可编程门阵列)的时序分析
fpga开发
Terasic友晶科技21 小时前
第2篇 使用Intel FPGA Monitor Program创建基于ARM处理器的汇编或C语言工程<二>
fpga开发·汇编语言和c语言
码农阿豪1 天前
基于Zynq FPGA对雷龙SD NAND的测试
fpga开发·sd nand·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
江山如画,佳人北望1 天前
EDA技术简介
fpga开发
淘晶驰AK1 天前
电子设计竞赛准备经历分享
嵌入式硬件·fpga开发
最好有梦想~1 天前
FPGA时序分析和约束学习笔记(4、IO传输模型)
笔记·学习·fpga开发
檀越剑指大厂1 天前
【基于Zynq FPGA对雷龙SD NAND的测试】
fpga开发
9527华安2 天前
FPGA视频GTH 8b/10b编解码转PCIE3.0传输,基于XDMA中断架构,提供工程源码和技术支持
fpga开发·音视频·pcie·gth·xdma·pcie3.0