笔记:从Aurora 8b/10b 到Aurora 64b/66b (一):64b/66b 基本知识

news/2024/11/13 13:58:55/文章来源:https://www.cnblogs.com/VerweileDoch/p/18335338

参考搬运:

https://mp.weixin.qq.com/s/ZSNyjpZpimjyxyO9riIRNQ

Aurora 64B/66B (xilinx.com)

https://docs.amd.com/r/en-US/pg074-aurora-64b66b

8/10:SATA SRIO

64/66:10G以太网

值得注意:

64b/66b 编码在多LANE模式下,EOF(T)仅在一个LANE上出现;

介绍

8B10B的开销比较大,每传输10位数据,就需要发送2位无效数据。

为了减小8B10B编码的开销,同时保留编码方案的优点,提出了64B66B编码。

64B66B编码与8B10B编码方式有本质区别,8B10B编码可以从码表中获取一个数据编码结果,而64B66B在发送前需要通过白噪声对数据加扰,在接收数据时也要先对数据解扰。

用户在实际使用时,GTX的64B66B编码会比8B10B更简单,因为64B66B会提供控制帧和数据帧,相比8B10B会简单一点点。

64B66B编码原理
下图是万兆网的数据编码框图,将两个32位的TXD数据拼接为64位,

然后经过加扰(Scrambling)来保证零一均衡,避免直流失调和时钟恢复困难。

之后在64位数据之前加入2位的同步头(Sync header),用来指示后面的64位数据是数据帧还是控制帧,

用户每发送64位数据,高速收发器需要传输64位数据和2位同步头。

变速器(Gearbox)可以看成一个深度为64位的存储器,

每个用户时钟输入64位数据,高速收发器在一个用户时钟内也只能发送64位编码后的数据,就会导致每个时钟会有2位数据没有被发送,暂存在变速器(Gearbox)。

经过32个时钟后,变速器(Gearbox)就会存满64位数据,用户下个时钟周期需要暂停输入数据,高速收发器在下个时钟将变速器(Gearbox)的64位数据发送,之后用户就可以继续输入需要发送的数据了,就这样循环往复。

编码过程是由加扰器(Scrambling)完成的,因此相同的数据经过加扰后会得到不同的数据,编码后的数据是不能预测的。

2位同步头有两个作用,可以用来指示帧类型,接收端也可以根据同步头来实现数据对齐,

同步头只有2’b01和2’b10两种取值,其余两种为无效取值。

01类型是需要全部加扰的,而10类型的TYPE部分则是不需要加扰的,因为涉及了一些指示字符;

当同步头为2’b01时,表示后面的64位数据是纯数据,不包含任何控制字符,如下图所示。

图2 纯数据帧格式

如果同步头为2’b10,则表示后面的64位数据是控制帧,可能是起始帧,也可能是结束帧,

如下图所示,注意同步码后面的第一字节数据表示控制帧的类型,根据该数据的值确定该帧数据内容。

下图是上面几种帧的一些格式,

D表示数据,C表示空闲字符(7位数据)或控制字符Z,

S表示帧起始字符,T表示帧结束字符。

其中当同步码为2’b01时,8字节全部为数据。

64B66B编码的起始帧有两种格式,

一种是起始位位于第一个字节,对应的类型字符为8’h78,

另一种是起始位位于第五字节,对应的类型字符为8’h33。

但是控制字符的具体数值可能不需要关心,因为不同协议之间是有差异的;

黄色部分是无效区,填充0;

RS Trans指的是RS(协调子层)发送的数据,D Z T S E均是其中的标识符;

D 数据

Z 空闲

T 结束

S 起始

E 控制

因为控制字符都是七位的,所以需要补0;每有一个数据字符,就可以少补充一个0;

夹带控制字符的帧最多只能传递7个字节的D;

由于用户每次可以传输任意字节数据,导致停止位可能出现在数据的任何字节,因此结束帧会有8种类型,类型字符不相同,接收端可以根据结束帧的类型判断这帧有多少有效数据。

下表是这些控制字符的具体取值,比如起始位S的取值是8’hfb,停止位T的取值是8’hfd,空闲字符C为8’h07。

在不同的TYPE类型下,空闲字符C的填充是可能不同的;

IDLE类型下填充的是7'h0,

ERROR类型下填充的是7'h1e,

开始和结束字符填充的字符根据具体的类型来决定,这是因为

开始类型的包有两种,而结束的有8种;

加扰

加扰和解扰一般使用的表达式为X^58+X^19+1,这部分内容可以在后续的示例工程中直接获取,也比较简单,实现方式与M序列类似。

GTX的64B66B编码发送原理
GTX内部不能对待发送数据加扰,也不能对接收的数据解扰,需要用户在FPGA逻辑中自己完成加扰和解扰。

由下图可知,8B10B经过蓝色走线后到达FIFO,而64B66B编码只经过了一个TX Gearbox,并没有经过什么编码模块,因此加扰和解扰相关操作需要用户在IP外部自己完成。

TX Gearbox的作用就是前文所说的变速器,工作方式如下图所示,

如果用户数据位宽设置成32位,并且PCS每次也只能传输32位数据,两个时钟才能发送一个64位数据。

因此需要两个时钟用户才能发送64位数据,

第一个时钟向GTX发送2位同步码和32位数据,变速箱先发送2位同步码和高30位数据,第2位数据留在TX Gearbox中。

第二个时钟用户发送剩余32位数据,TX Gearbox需要先把上个时钟剩余2位数据发送,然后发送本次接收的高30位数据,最后还是会剩余2位数据。

因此每经过2个时钟,TX Gearbox中就会增加2位数据,

当经过64个时钟后,TX Gearbox中存在64位数据,与一个用户数据位宽一致。

后两个时钟周期用户不能往GTX发送数据,TX Gearbox会将内部64位数据发送出去,完成清空。

在使用64B66B编码时,一般用户端口位宽使用64位,会更方便,原理都是一样的。

所以本质上是66个周期发送64个64位数据+2x64位gearbox,其中用户直接使用的是前64个。

 gearbox显然具有计数器,使用计数器来标记何时将其中的数据取出;

这个计数器可以使用内部的也可以使用外部的,这个设置在GT收发器中是可以修改的;

外部计数器需要用户提供和数据调控;

 在GT后面的版本里内部计数器被版本迭代取消,推荐使用外部计数器;

如果把用户数据带宽设置成64,这种情况下GTX内部的数据带宽只有32,我觉得会出现之前描述的USERCLK是USERCLK2两倍频率的情况;(确实如此,在SUMMARY中可以看到)

 

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

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

相关文章

matlab中用plotyy画双纵轴图

clear clcx1 = 1:0.1:6; x2 = 2:0.1:7; y1 = sin(x1); y2 = 0.5*x2; y3 = sin(x1)+x1; y4 = cos(x2)+x2;figure; [hAx,hLine1,hLine2] = plotyy([x1, x2],[y1, y2], [x1, x2],[y3, y4]); hold on; set(hAx(1), YColor, r); % 设置第一条y轴的颜色为红色 set(hAx(2), YColor, b)…

【专题】2023年中国数字金融调查报告PDF合集分享(附原数据表)

原文链接:https://tecdat.cn/?p=34685 原文出处:拓端数据部落公众号 随着数字化转型的深入推进,新客户的增长速度已达顶峰,用户运营成为推动存量增长的关键手段。调查数据显示,相比去年,网上银行用户比例有所下降,而手机银行用户比例基本持平。阅读原文,获取专题报告合…

在r语言中使用GAM(广义相加模型)进行电力负荷时间序列分析

原文链接:http://tecdat.cn/?p=9024 原文出处:拓端数据部落公众号最近我们被要求撰写关于GAM的研究报告,包括一些图形和统计输出。 用GAM进行建模时间序列 我已经准备了一个文件,其中包含四个用电时间序列来进行分析。数据操作将由data.table程序包完成。 将提及的智能电表…

饮冰十年-人工智能-Vue3-67-组件间数据交互

上一篇:饮冰三年-人工智能-Vue-66 Vue组件化很久以前我对Vue2的组件间数据交互做过学习,兜兜转转再用Vue已经是Vue3版本。 Vue3组件间数据交互 1、准备工作环境准备使用 Vite 创建一个新的 Vue 3 项目功能介绍该功能由APPVue+4个组件组成 头部组件(MyHeader) 主…

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-26 RS485串口程序收发环路设计

软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录"米联客"FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 1概述在…

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-25 ADC模块FEP-DAQ9248采集显示波形方案

软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录"米联客"FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 1 概述本…

UE4 C++ 多人游戏中的简单聊天窗口

本质 不管是客户端还是服务器在输入文字后,按下回车发送,将触发RPC调用。然后通过RPC将发送者,输入文本等信息,传入到服务器,然后通过多播RPC传播到所有客户端的聊天框。 UI UI利用三个组件 ScrollBox 用于在服务器以及每个客户端上显示消息的载体 TextBlock 本地将信息通…

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-24 基于FPGA简易示波器显示驱动设计

软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录"米联客"FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 1 概述F…

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-23 RGB转HDMI显示方案

软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录"米联客"FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 1概述本…

VU13载板,2个FMC和3个FMC+接口,一个QSFP28(100G)光纤口,一个千兆网接口

VU13载板,2个FMC和3个FMC+接口,一个QSFP28(100G)光纤口,一个千兆网接口,8GB内存。基于XILINX Virtex UltraScale+系列,芯片型号为XCVU13P-2FHGB2104I的一款高性能FMC+载板。该板卡集成了3个FMC+(Vita 57.4)和2个FMC(Vita 57.1)连接器。可以与各种FMC子卡进行完美匹配,为用…

无影云电脑设置开机启动项

在msconfig及任务管理器的选项卡中,不可设置启动项。可通过以下步骤设置。Windows设置 应用 启动 打开或关闭相应启动项版权木有,侵权不究,欢迎转载

企业数字化转型的必备钥匙:数据思维|专题报告集

原文链接:https://tecdat.cn/?p=37165 本质上来讲,企业数字化转型,不仅是技术方面的升级,更是企业文化、思维方式的转变。那么,企业数字化转型究竟需要什么样的思维方式? 企业数字化转型,需要什么样的思维方式? 不知道你有没有过这样的感觉:不知道从什么时候开始,和…