Aurora8B10B(一) 从IP配置界面学习Aurora

一. 简介

哈喽,大家好,好久没有给大家写FPGA技术的文章,是不是已经忘记我是做FPGA的啦,O(∩_∩)O哈哈~。

这里将会给大家分享我学习到的第一个高速接口Aurora8B10B,有点复杂,但不是特别复杂,对于第一次接触到高速接口的朋友来说,难点在于细节的把控上,由于资料并不是那么多(也挺多的 ̄□ ̄||),很多新的概念,结构和名词,是第一次接触到,不能够很好的吸收,加上网上的教程不全面,很难有一篇文章对它的各个详细作全面的介绍,而且仿真都是基于官方例程来的,直接忽视了里面的细节。

本篇文章的目的就是教会大家Aurora8B10B 和 Xilinx提供的IP,并且基于自己的工程来进行仿真,不copy官方例程中的任何文件。

二. 从IP配置界面学习Aurora

本次使用的VIvado版本为2022.2,IP的版本为11.1,不同的版本可能会有细微的区别,打开IP的配置界面后,有三个界面需要我们进行配置,下面就依次来介绍这三个界面。

1. Core Options

请添加图片描述

主要配置物理层 和 链路层 这两个模块,其它模块在在初学的时候,可以忽略。

  1. 物理层:
    1. Line Width(Bytes): 线的位宽,也就是你发送每笔数据的位宽
    2. Line Rate(Gbps) : 线速率
    3. GT Refclk(Mhz): GT收发器的参考时钟,它有一个点需要注意,等下会提到
    4. INIT clk(Mhz):对Aurora核进行初始化,一般为50M就可以了
    5. DRP Clk(Mhz): 动态配置时钟,在例化IP后,可以通过DRP接口来对其进行配置,一般例化IP后,其属性就不会动了,所以用的不是那么多,和INIT clk保持一致就可以了。

这里需要注意的一点就是GT Refclk这个信号,由于Aurora这个IP是在GT收发器的基础上再次封装了相关的东西,所以对GT收发器不是很了解的话,有些信号使用细节上会存在问题。通过下图可以知道这个信号需要经过一个IBUFDS_GTE2来进行输入,没有注意的话,可能就会有意想不到的问题。

请添加图片描述
请添加图片描述

  1. 链路层
    1. Dataflow Mode: 配置模式,只发,只收,同时收和发
    2. Interface: 可以理解为用户数据是一帧一帧来的,还是以数据流的形式来的,接口上有无tkeep和tlask信号的区别
    3. Flow Control: 流控制,可以选择两大类UFC和NFC,或者无,UFC就在数据发送的过程中,需要发送一些紧急的数据过去,通过UFC接口就可以将紧急数据发送出去,NFC在同时收和发的模式下才可以使用,发送方发送的过快,而接收方接收的比较慢的话,就需要通过NFC接口告诉发送方发送慢一点。两者在用户发送信号的表现均为将s_axi_tx_tready信号拉低。
    4. Back Channel: 在只发或只收的模式下可以选择,同时收和发的模式下只能为Sidebands,这里没有进行详细的研究。

这一页的配置和选项的理解上应该就没有什么问题了。


2. GT Selections

请添加图片描述

这里配置比较简单,主要是三个信息: 线数选择.GT收发器选择 和GT参考时钟选择。这里芯片我选择的是A7-100T,只有一个GT收发器,所以只需要选择Lanes数和Lanes与GT收发器通道的对应关系即可,参考时钟2是选择不了了,换到K7也是如此。


3. Shared Logic

请添加图片描述

这个界面就两个选项,共享逻辑是否包含在IP里面,这部分设计的知识也是GT收发器里面的,如果选择的是第一个选项包含在核里面,在生成IP的时候,会自动将GTPE2_COMMON这个原语包含在模块内,并且IP top模块会将其输出的gt时钟和其他相关信号在端口输出。如果选择的是第二个选项不包含在核里面,在生成IP的时候,就不会包含这个原语,那么gt相关的信号就需要外部进行输入。选择的时候可以观察一下IP端口信号的变动。

关于共享逻辑可以看下这幅图,共享逻辑的主要功能是将GTREFCLK0时钟通过QPLL后,生成QPLLCLK (QPLLOUTCLK)和QPLLREFCLK这两个时钟给GT收发器的Channel使用。

请添加图片描述

当然这里有点需要注意一下: GTP是没有QPLL和CPLL的,只有PLL0和PLL1,由于使用的是A7芯片,只有GTP,所以这里的细节需要注意一下。另外共享逻辑还可以选择外部输入的参考时钟,但在IP配置的只能选择GTREFCLK0。

请添加图片描述

为什么要叫它共享逻辑呢?怎样共享的呢?A7只有一个GT收发器,体现不了这一点。如果这里有两个GT收发器,第一个选择的是包含在核内,第二个选择的是不包含在核内,那么就可以向下面这样连接起来了,右边的Aurora里面的GT收发器使用的是左边的,而不是它自己的。

请添加图片描述

到这里,IP的配置界面以及相关的细节就给大家讲解清楚,有不对的地方,可以给我留言进行批评指正。


三.小结

本来想一篇文章写完的,但是太难了,太费时间了o(╥﹏╥)o,所以就到此结束啦。

本篇文章主要是通过Aurora8b10b IP创建界面,教大家如何进行配置,以及配置选项中涉及到的疑难点。

下篇文章,以及下下篇中,将带领大家了解Aurora8b10b 在GT的基础上做了那些事情 和 仿真。
欢迎关注公众号 FPGA之旅(下方公众号)。
qq交流群: 649098696

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA解决Git冲突详解

目录 前言: 何为冲突 冲突演示 IDEA冲突解决 小结: 前言: 相信大家多多少少都有了解和使用过Git,作为Java程序员idea可谓是无敌的存在了,那么如何使用idea解决Git冲突呢?不瞒大家前段时间在公司把同事…

颠覆性语音识别:单词级时间戳和说话人分离

vbenjs/vue-vben-admin[1] Stars: 19.7k License: MIT Vue Vben Admin 是一个免费开源的中后台模板,使用最新的 vue3、vite4 和 TypeScript 等主流技术进行开发。该项目提供了现成的中后台前端解决方案,并可用于学习参考。 使用先进的前端技术如 Vue3/…

VMware Linux(Centos)虚拟机扩容根目录磁盘空间

给VMWare虚拟机根目录扩容,简单有效!_迷倒万千少女的Csir的博客-CSDN博客 https://blog.csdn.net/m0_64206944/article/details/131453844?spm1001.2014.3001.5506 上述链接融合参考下面文章 VMware Linux(Centos)虚拟机扩容根目录磁盘空间 centosli…

软件集成指南

软件集成方法: 1、一次性集成方式 2、增殖式集成方式 2.1、自顶向下的集成方式 2.2、自底向上的集成方式 2.3、混合集成方式

PicoScope 7软件显示反应慢/卡滞的问题解决

一、问题症状 如果你的电脑安装了PicoScope 7 汽车专用软件,软件使用很卡滞。 波形显示的区域是灰色的,或显示不全,像下图1和图2所示这样。 图1 图2 二、问题原因 要解决这个问题,请先自查,确认你的电脑是否配置有In…

Python链式调用技巧:代码流畅无缝连接

更多资料获取 📚 个人网站:ipengtao.com 链式调用是一种编程风格,它允许将多个方法调用连接在一起,形成一个连贯的操作链。在Python中,链式调用常常用于使代码更简洁、易读,尤其在处理数据处理和函数式编程…

qt-C++笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString

qt-C笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString code review! 文章目录 qt-C笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString1.运行2.main.cpp3.qt_FileDialog.pro4.QFileDialog类详解 1.运行 2.main.cpp 代码 #inclu…

python用YOLOv8对图片进行分类

用yolov8的模型进行分类 先上效果图 图片资源 模型下载地址 https://github.com/ultralytics/ultralytics 代码 import matplotlib.pyplot as plt from ultralytics import YOLO from PIL import Image import cv2model YOLO(../ultralytics/yolov8n.pt)# print(model…

「Verilog学习笔记」状态机-重叠序列检测

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 读入数据移位寄存,寄存后的数据与序列数做对比,相等则flag为1,不等则为0 timescale 1ns/1nsmodule sequence_test2(input wire clk ,in…

【复位与释放(亚稳态)模为60的BCD码计数器_2023.11.22】

复位与释放&#xff08;异步复位&#xff0c;同步释放&#xff09; 同步复位rst、同步置数load&#xff08;置数信号只有在时钟上升沿到来时才能生效&#xff09;、同步清零clr 同步复位&#xff1a; always(posedge clk) if(!rst_n) b<1’b0; else b<a; 同步复位信号rs…

有什么值得推荐的node. js练手项目吗?

前言 可以参考一下下面的nodejs相关的项目&#xff0c;希望对你的学习有所帮助&#xff0c;废话少说&#xff0c;让我们直接进入正题 1、 NodeBB Star: 13.3k 一个基于Node.js的现代化社区论坛软件&#xff0c;具有快速、可扩展、易于使用和灵活的特点。它支持多种数据库&…

《opencv实用探索·五》opencv小白也能看懂的图像腐蚀

1、图像腐蚀原理简单理解&#xff1a; 腐蚀是形态学最基本的操作&#xff0c;都是针对白色部分&#xff08;高亮部分&#xff09;而言的。即原图像中高亮部分被蚕食&#xff0c;得到比原图更小的区域。 2、图像腐蚀的作用&#xff1a; &#xff08;1&#xff09;去掉毛刺&…