五、一个quad同时支持pcie和sfp两种高速接口的ref时钟配置
项目描述
- 上位机将截图数据通过 XDMA 写入到 FPGA 侧的 DDR 内存区域 1 中
- 通过 axi_lite 接口给 axi_read_start 信号,通知 AXI_read 模块启动读取数据,然后通过 GTP TX 模块发送出去。
- 经过光纤回环,GTP RX 端接收到数据,送给 AXI_WRITE 模块,然后写入到 FPGA的内存的区域 2 中。
- 写完成后通过 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时钟配置情况:


相关文章:
五、一个quad同时支持pcie和sfp两种高速接口的ref时钟配置
项目描述 上位机将截图数据通过 XDMA 写入到 FPGA 侧的 DDR 内存区域 1 中通过 axi_lite 接口给 axi_read_start 信号,通知 AXI_read 模块启动读取数据,然后通过 GTP TX 模块发送出去。经过光纤回环,GTP RX 端接收到数据,送给 AX…...
AI辅助教育:九章大模型的数学辅导功能解析
1.简介 九章大模型是学而思为学习研发的模型,该模型对于数学做了很多专门的训练,在题目推荐方面做得比较好。 同时,这个模型也能支持上传图片,对图片内容进行分析,然后针对内容进行校对,推荐相识题目。 支…...
力扣刷题之3128.直角三角形
题干描述 给你一个二维 boolean 矩阵 grid 。 请你返回使用 grid 中的 3 个元素可以构建的 直角三角形 数目,且满足 3 个元素值 都 为 1 。 注意: 如果 grid 中 3 个元素满足:一个元素与另一个元素在 同一行,同时与第三个元素…...
OD C卷 - 机场航班调度
机场航班调度(100) 航班组成:前两个大写字母代表航空公司缩写,后面4个数字代表航班信息;对输入的航班排序 首先按照航空公司缩写升序排序;同一航空公司的按照航班信息升序排序; 输入描述&…...
uni-app中使用支付宝扫码插件并且在真机调试时使用(详细教程)
前言:uni-app自带的扫码api 识别不灵敏,每次都得扫很长时间且不断调整才能扫出来码,所以决定使用支付宝扫码插件,官方插件地址:https://ext.dcloud.net.cn/plugin?id2636#detail 使用步骤: 1、下载插件到项目中 2、…...
每日学术速递8.5—1
1.SV4D: Dynamic 3D Content Generation with Multi-Frame and Multi-View Consistency 标题: SV4D:具有多帧和多视图一致性的动态 3D 内容生成 作者:Yiming Xie, Chun-Han Yao, Vikram Voleti, Huaizu Jiang, Varun Jampani 文章链接&…...
1、操作系统相关概念
1、操作系统是计算机上的第一层软件,用于管理计算机硬件设备,提高他们的利用率和通吐量,并为用户和应用程序提供一个接口。不同操作系统目标不同,查询设备的操作系统,侧重人机交互性;武器控制操作系统&…...
【ModelSim】仿真问题记录
1、波形出不全: 1、甚至连clk波形都出不来 2、个别波形只有到仿真结束的时候才出现 解决办法: 1、添加波形需要是实例中的net 2、排查是否存在声明与示例的位宽不一致的信号 3、观察是否存在未初始化的变量寄存器 4、缩短整个仿真的步长 2、Instance列…...
如何提高深度学习中数据运行的稳定性
在深度学习中,模型的训练通常会受到随机性因素的影响,如参数初始化、数据加载顺序等。这会导致每次训练得到的结果有所不同。要减少这种不稳定性,可以采取以下措施: 1.固定随机种子 通过设置随机种子,可以使得每次训…...
【连续数组】python刷题记录
R3-前缀和专题 绝对要用字典记录 ben神,前缀和字典 class Solution:def findMaxLength(self, nums: List[int]) -> int:#前缀和字典,key为差值,value为坐标dict{0:-1}#当前1和0的差值counter0ret0for i,num in enumerate(nums):#多1+1if…...
JavaScript青少年简明教程:DOM和CSS简介
JavaScript青少年简明教程:DOM和CSS简介 DOM简介 DOM(Document Object Model)将文档表示为一个树形结构,其中每个节点都是一个对象,每个对象都有其自身的属性和方法。 通过对DOM的操作,开发者可以使用编…...
架构师知识梳理(一):计算机硬件
目录 计算机硬件组成 CPU CPU的组成 CPU的功能 校验码 奇偶校验 CRC CRC计算案例 指令 指令指行过程 指令系统 指令系统分类 指令流水线技术 流水线技术相关计算公式 存储 计算机存储系统设计 高速缓存Cache 缓存的局部性原理 地址映射 替换算法 关于命中…...
从根儿上学习spring 四 之run方法启动第一段
图1 由上图我们可以看到,我把run方法分成了5个小段,每小段使用红框圈了起来,这一篇我们先开始讲第一段。大家需要关注下行号,我讲的时候可能会使用行号对应具体某行代码。 图1-289-290行: 没啥好说的定义了两个变量&…...
智能闹钟如何判断用户已经醒了?
智能闹钟判断用户是否已经醒来的方式主要依赖于其内置的传感器和算法系统。以下是一些常见的判断方法: 一、传感器监测 体动传感器:智能闹钟通常配备有体动传感器,用于监测用户的身体运动。当用户从睡眠状态转变为清醒状态,并开始…...
【算法】动态规划解决背包问题
应用场景——01背包问题 有一个背包,背包的容量为 4,现有如下物品 要求 1.目标为装入背包的总价值最大,并且重量不超出 2.要求装入的物品不能重复 动态规划算法介绍 1.动态规划算法的核心是:将大问题划分为小问题进行解决&…...
day09 工作日报表
日期 30日07月2024年 任务安排 今天主要就是讲了security类工作的原理,然后就是让我们自己做项目 工作中的问题 今天做项目的时候发现有时候用postman测试返回20001,说错误见控制台,但是控制台一片祥和,于是就尝试用tr…...
C++学习之路(1)— 第一个HelloWorld程序
C学习之路(1)— 第一个HelloWorld程序 一、前言 C在C语言的基础上添加了对面向对象编程和泛型编程的支持,在 20世纪90年代便是最重要的编程语言之一,并在21世纪仍保持强劲势头。C继承了C语言高效、简洁、快速和可移植性的传统。 …...
python3 pyside6图形库学习笔记及实践(三)
目录 前言菜单栏相关控件使用QtDesigner快速构建菜单栏结构语法 上下文菜单概念为窗体添加上下文菜单为控件添加上下文菜单 折叠菜单资源的加载内置图标Rcc的使用创建资源文件加载资源文件 前言 本系列文章为b站PySide6教程以及官方文档的学习笔记 原视频传送门:【…...
03 库的操作
目录 创建查看修改删除备份和恢复查看连接情况 1. 创建 语法 CRATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] …] create_specification: CHARACTER SET charset_name CPLLATE collation_name 说明: 大写的标识关键…...
嵌入式人工智能(44-基于树莓派4B的扩展板-LED按键数码管TM1638)
树莓派性能非常强悍,但是对于某些复杂的项目来说,会出现心有余而口不足的情况,为了解决这类问题,可以在树莓派上使用扩展板,我们介绍几款常见的扩展板,不仅可以扩展到树莓派,其他单片机或嵌入式…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...
工厂方法模式和抽象工厂方法模式的battle
1.案例直接上手 在这个案例里面,我们会实现这个普通的工厂方法,并且对比这个普通工厂方法和我们直接创建对象的差别在哪里,为什么需要一个工厂: 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类: 两个发…...
接口 RESTful 中的超媒体:REST 架构的灵魂驱动
在 RESTful 架构中,** 超媒体(Hypermedia)** 是一个核心概念,它体现了 REST 的 “表述性状态转移(Representational State Transfer)” 的本质,也是区分 “真 RESTful API” 与 “伪 RESTful AP…...
电脑定时关机工具推荐
软件介绍 本文介绍一款轻量级的电脑自动关机工具,无需安装,使用简单,可满足定时关机需求。 工具简介 这款关机助手是一款无需安装的小型软件,文件体积仅60KB,下载后可直接运行,无需复杂配置。 使用…...

