E5--Aurora 8/10Bip核实现光纤接口通信2023-04-22

news2024/9/20 14:57:02

1.场景

使用两块开发板A和B,通过光纤接口将在A板上ROM中存储的图片数据转发到B板并显示在B板连接的显示屏上,实现光纤接口通信。 具体场景是,由于A735T片上资源有限,因此ROM IP存储了一张1024*600(LVDS屏幕)分辨率图像的1/16,在发送端添加按键,第一次按键按下,将发送这1/16的数据到接收端,第二次按下,发送的则是每个像素取反后的数据,同时接收端每收到一张图片都会发送一个长达2s的“1“,发送端接收到此数据驱动LED亮2s。接收端使用RAM IP作为数据缓存实时更新来自光口的数据,读出端则是根据LVDS驱动模块产生的数据请求信号读出,最后达到的效果是发送端按一次按键,接收端切换一张图片,发送端led亮持续2s。与链接相比,主要的不同在于,实现光口通信可以有多种方式,例如使用快速GT收发器采用万兆以太网协议通信,使用aurora协议(使用GT ip或本文使用aurora协议)GT ip核实现光口通信是使用GT IP核,本文使用auraro IP核实现光纤通信,本质是一样的,使用的硬件环境、实现的效果,连接的方式都是一样的。但具体的实现方式上略有差别。

2.Auraro简介

Aurora 接口是Xilinx公司提供的开放、免费的点对点的链路层高速串行总线协议,说白了,就是个并行转串行,然后串行信号用xilinx的高速收发器传输,支持全双工模式,如图所示。支持AXI & ACE总线,Aritx-7、Kintex-7、Virtex-7 families、UltraScale器件、UltraScale+器件支持该协议。

 

其主要的模块图如下,Aurora 8B/10B核的主要功能模块包括:

Lane Logic: 每条lane都包含一个GT,Lane逻辑模块实体驱动每个GT,并初始化每个GT收发器,处理编解码及错误检测等。从宏观角度理解,这也是该协议最本质的特征。

Global Logic: 全局逻辑模块执行通道初始化的绑定和验证阶段。 在运行过程中,模块生成Aurora协议所需的随机空闲字符,并监控所有lane逻辑模块的错误。 

RX User Interface: 接收端用户接口使用AXI4-S接口将数据从channel传到用户应用并可进行接收流控功能。

TX User Interface: 发送端用户接口使用AXI4-S接口将数据从用户应用传到channel并进行发送流控功能。标准时钟补偿模块嵌入在核中。这个模块控制时钟补偿(CC)字符的周期性传输。

此外,aurora定义了物理层的电器接口以及链路层数据的封装方式,加入了流控,初始化的机制,保障了更好的总线效率和传输的准确性。

 

3.AXI时序

Aurora提供了两种接口形式,一种是streaming,另一种是framing,现在列出streaming接口的读写时序,但工程中配置了framing接口。Aurora接口采用AXI总线面向用户侧,AXI4总线写时序图如下所示。

AXI4总线读时序图如下所示

 

4.关于ip核配置

本例中的配置及其含义已简单说明

 

 

 IP核的使用通过example design来完成,这是因为例程中将共享逻辑设计完成,使用时只需要修改部分地方即可。

5.源代码修改说明

①support模块输入的初始化差分时钟改为单端时钟init_clk,从时钟ip核出来;

②顶层中的reset信号和GT_reset信号一个是复位ip核,一个是复位GT收发器,这两个信号怎么给需要设计,总归遵循以下要求,如图所示。CHANNEL_UP:置位表示此时对应的channel初始化完成,处于正常工作的状态,lane_up:当对应的Lane初始化完成后,会断言对应的lane_up,根据这两个信号完成复位模块的设计。

 

 Reset信号、gt_reset信号的复位应该至少持续6个时钟周期;

 上电初始化时,应该保持高电平,并且gt_reset应该先于reset解复位,并且二者都同步于初始化时钟。

 

使用过程中做复位操作,应该是reset先于gt_reset至少128个用户时钟,保证在gt_reset复位时,也就是user_clk消失之前,所有的ip进入复位状态,然后gt_reset复位至少持续1sec。

③drpclk由差分改为单端从时钟ip核进入。

④其他ip核端口的设计,power down,高电平有效。当其为高时,GT会进入非工作、低功耗的模式(类似睡眠模式)。我们使用的时候一般直接拉低。此处输入为0loopback:回环模式,实际使用一般接到0hard_err:错误表征应信号,主要是硬件类错误。soft_err:错误表征应信号,主要是软件类错误。frame_err:错误表征应信号,主要是帧类错误,可根据实际情况判断将这些信号接到哪里。关于Drp接口除了时钟全部设置为0即可。

⑤设计数据产生模块aurora_tx模块,代码简单清晰,直接参看代码即可。

⑥设计数据接收模块aurora_rx模块,生成有效数据和同步数据信号。代码简单清晰,参看本例工程链接。

⑦关于代码中其他模块的设计,同GT部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

集成光子学在计算领域的机会与挑战【光子学公开课 第133期】

没有听懂,自己浅浅记录一下 背景 深度学习与大模型带来的算力需求(需要的算力指数型提高) 解决方案 算力池化和算力网络 传统的主机服务,可能会存在闲置资源。 ->改变商业模式:不是出售硬件服务,…

【Makefile通用模板】入门必看篇,超详细

工程目录 假如我们有以下目录结构&#xff1a; . ├── inc │ ├── add.h │ └── sub.h ├── main.c └── src├── add.c└── sub.c文件中的内容如下&#xff1a; //main.c #include <stdio.h> #include "add.h" #include "sub.h&q…

nodejs+vue 智慧餐厅点餐餐桌预订系统

现在社会的生活节奏越来越快&#xff0c;人们对互联网的需求也越来越大&#xff0c;不仅要求使用方便&#xff0c;而且对于功能及扩展性也有了更高的要求&#xff0c;最能达到要求莫过于利用计算机网络&#xff0c;将所需功能要求和计算机网络结合起来&#xff0c;就形成了本智…

FOSSASIA Summit 的参会为 openEuler 全球化注入强心剂

2023年4月15日&#xff0c;亚洲顶级开源盛会FOSSASIA Summit 2023在新加坡落幕。openEuler作为白金赞助级别参会。 自2009年成立以来&#xff0c;除因疫情中断3年之外&#xff0c;FOSSASIA Summit已累计举办11年。作为亚洲年度开源技术旗舰活动&#xff0c;FOSSASIA Summit吸引…

C/C++ 常见编译器说明

文章目录 window下常用的编译器如何获取MSVCMinGW Linux和MaxOS下的编译器gcc和g的区别 window下常用的编译器 window下并不提供原生的类似gcc/g的类unix系统下的C/C编译器。常用的是 MSVC&#xff08;Microsoft Visual C/C&#xff09;编译器&#xff0c;在我们安装完visual …

python 获取脚本所在存储目录

获取.py文件所在目录 问题背景问题原因解决方法 问题背景 项目需要使用到当前脚本所在的目录然后保存文件 我像之前一样&#xff0c;使用了os.getcwd() 去获取脚本目录&#xff0c;保存文件&#xff0c;程序正常运行&#xff0c;但设定路径下没有任何文件&#xff0c;没有头脑…

读 AI学者生存策略

链接&#xff1a;https://arxiv.org/pdf/2304.06035.pdf 作者&#xff1a;Julian Togelius and Georgios N. Yannakakis 随着大模型 和 大数据的出现&#xff0c; AI研究者 都会感到焦虑。 没有计算资源 &#xff0c;没有标注的人力&#xff0c;很难做出突破性的研究。即使很多…

FFmpeg 中 RTSP推流桌面和Android设备延时测试

文章目录 1. FFMPEG 推流&#xff1a;1.1 FFmpeg 源码准备1.2 RTSP 推流服务器 2. 执行流程2.1 启动服务器2.2 执行桌面推流2.3 播放 3. 安卓测试 1. FFMPEG 推流&#xff1a; 1.1 FFmpeg 源码准备 官网&#xff0c;GitHub&#xff0c;CSDN中选一个就好&#xff1a; ● 官网…

在线图片编辑网站汇总

目录 前言一、在线抠图工具1. 佐糖2. remove.bg3. Clipping Magic4. 起兮深深5. BgSub6. 改图神器7. PIXLR 二、其他工具1. 压缩图2. AI人工智能图片放大 前言 本文收录了多个可以在线抠图、在线编辑图片的网站。 一、在线抠图工具 1. 佐糖 官网&#xff1a;链接 特点&#x…

一本通 3.4.4 并查集

1346&#xff1a;【例4-7】亲戚(relation) 【题目描述】 或许你并不知道&#xff0c;你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱&#xff0c;判断两个人是否是亲戚应该是可行的&#xff0c;但如果两个人的最近公共祖…

企业想注销境外投资备案应该怎么做?

我们今天就来说一下关于境外投资备案的注销&#xff0c;有办理的需求&#xff0c;当然就有注销的需求。如果您当初想去海外投资并购一家公司&#xff0c;因此办理了境外投资备案&#xff0c;但是由于种种原因可能没有办法投资下去了&#xff0c;那么这个时候我们就需要做境外投…

【Linux网络服务】SSH远程访问及控制

一、openssh服务器 1.1ssh协议 SSH&#xff08;Secure Shell&#xff09;是一种安全通道协议&#xff0c;主要用来实现字符界面的远程登录、远程 复制等功能&#xff1b; SSH 协议对通信双方的数据传输进行了加密处理&#xff0c;其中包括用户登录时输入的用户口令&#xff1…

测试月入30K,Soeasy?测试这一行涨薪机制被我摸透了...

1.软件测试如何实现涨薪 首先涨薪并不是从8000涨到9000这种涨薪&#xff0c;而是从8000涨到15K加到25K的涨薪。基本上三年之内就可以实现。 如果我们只是普通的有应届毕业生或者是普通本科那我们就只能从小公司开始慢慢往上走。 有些同学想去做测试&#xff0c;是希望能够日…

nodejs+vue 智能餐厅菜品厨位分配管理系统

系统功能主要介绍以下几点&#xff1a; 本智能餐厅管理系统主要包括三大功能模块&#xff0c;即用户功能模块和管理员功能模块、厨房功能模块。 &#xff08;1&#xff09;管理员模块&#xff1a;系统中的核心用户是管理员&#xff0c;管理员登录后&#xff0c;通过管理员功能来…

BPF之前端工具BCC与bpftrace

BPF前端工具BCC与bpftrace 一、概述 BCC和bpftrace到底是什么&#xff0c;与BPF是什么关系呢&#xff1f; 经过上一篇的介绍&#xff0c;BPF是内核中的执行引擎&#xff0c;BCC和bpftrace则是两个前端工具&#xff0c;比如用户可以直接使用的命令行工具。 BCC与bpftrace又有…

Stable Diffusion Lora模型训练详细教程

1. 介绍 通过Lora小模型可以控制很多特定场景的内容生成。 但是那些模型是别人训练好的&#xff0c;你肯定很好奇&#xff0c;我也想训练一个自己的专属模型&#xff08;也叫炼丹&#xff5e;_&#xff5e;&#xff09;。 甚至可以训练一个专属家庭版的模型&#xff08;fami…

JDK JRE JVM之间的关系

文章目录 1.从定义的角度解释JDK、JRE、JVM2、详细介绍JDK3、详细介绍JRE4、详细介绍JVM1、JVM内部区域划分 5、如何运行一个java程序&#xff1f; 本篇文章仅仅是个人片面观点&#xff0c;可能有错误或者表述不清的地方 1.从定义的角度解释JDK、JRE、JVM JDK&#xff1a;Java…

ArcGIS面要素最小外接矩形、外接圆的绘制方法

本文介绍在ArcMap软件中&#xff0c;基于一个面图层&#xff0c;绘制其中面要素的最小外接矩形、最小外接圆等的方法。 首先&#xff0c;我们来看一下本文需要实现的需求。现有一个面要素图层&#xff0c;其中包含多个面要素&#xff0c;如下图所示。我们希望绘制这个面要素图层…

【Redis】Redis十大数据类型—列表List

介绍 List列表是简单的字符串列表&#xff0c;按照插入顺序排序&#xff0c;可以从头部或尾部向List列表添加元素。 列表的最大长度是2^32-1&#xff0c;也就是每个列表支持超过40亿个元素。 实现 底层数据结构是由双向链表或压缩列表实现。 如果列表的元素个数小于 512 个…

Python获取某乎问答区计算机专业学生应聘保洁这一内容,看看为啥会有此事发生

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 不知道现在还有多少人玩知某乎&#xff0c; 今天刷话题的时候看到这么一个问答&#xff0c; 这么有趣的话题&#xff0c;咱们就对其问答内容进行采集一下&#xff1f;&#xff1f; 效果展示 可以看到&#xff0c;数据…