前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求

高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求

作者头像
Reborn Lee
发布2020-12-29 10:09:54
1.1K0
发布2020-12-29 10:09:54
举报
文章被收录于专栏:用户7494468的专栏
  • 前言
  • 数据包介绍
  • 参考时钟要求
  • 参考文章

前言

上一篇文章:高速串行总线设计基础(五)揭秘SERDES高速面纱之多相数据提取电路与线路编码方案[1]这篇文章介绍了提出了问题,关于SERDES或者Transceiver为什么能跑这么高的速度?当然有它的独特技术特点,上篇文章中介绍了两种技术,一是多相提取技术,另一种是线路编码方案。本篇文章继续这个话题。

数据包介绍

熟悉Xilinx的Transceiver的工程师一定知道,Xilinx有很多基于Transceiver的高速串行协议,例如aurora,srio,pcie等,它们都有自己的数据包,当然自己还可以自定义协议,例如跑Transceiver裸核时候就可以自由定义协议,协议也定义数据包等,只要通信双方都按照这个协议走,就没有任何问题。下面给出数据包的定义:数据包即定义明确的字节集合,由头,数据和尾部组成。

一些设计人员认为,除了局域网(LAN)(local area network)以外,通过数据包发送数据都是一种浪费。真的是这样吗?我们接着看。

请注意,定义中没有关于源地址和目标地址,CRC,最小长度或开放系统互连(OSI)(Open Systems Interconnection)协议层的内容。数据包只是具有定义的起点和终点的数据结构。虽然LAN数据包通常具有许多这些特征,但还有许多其他更简单的数据包用法。

数据包和吉比特串行接口有什么联系呢?

大多数在千兆串行链路上传输的数据都嵌入在某种数据包中。SERDES需要一种方法将传入的数据流对齐成字,这是非常自然的。如果系统需要时钟校正,就必须发送这种特殊的位序列或逗号。逗号可以是一个帧的开始或结束的自然标记。这在上一节中:高速串行总线设计基础(五)揭秘SERDES高速面纱之多相数据提取电路与线路编码方案[2]

如果需要时钟校正,时钟校正序列通常是理想的字符。在添加几个有序集来表示数据包的结束或开始,以及一个有序集来表示特殊类型的数据包后,我们就有了一个简单而强大的传输路径。

空闲符号或序列是另一个重要的数据包概念。每当没有信息要发送时,就会发送这个符号。连续传输数据可以确保链路保持对齐,PLL保持恢复的时钟锁定。下图展示了一些来自不同标准的样本数据包格式。

数据包格式举例

注:Preamble为报文头,SF类似,EF为文件尾部,数据包其他部分具体看数据包定义格式或者数据包协议。

参考时钟要求

千兆位收发器(MGT)的输入或参考时钟具有非常严格的规格。它包括严格的频率要求,通常以频率误差的百万分之几(PPM)指定。它还将有严格的抖动要求,以时间单位(皮秒)或单位间隔(UI)来定义。下面介绍这几个专业术语:

PPM( Parts per million):百万分之一;一种描述很小比例的方法。PPM的应用很广泛,在其他领域也有应用,例如:

  • one inch in 16 miles,
  • one second in 11.5 days,
  • one minute in two years.

它是一个很小比例的概念。

UI(Unit intervals):单位间隔;与符号的时间长度相同,即0.2 UI =符号时间的20%。例如测量眼图的时候,就常用到UI的概念,如下图的中间一个眼的位置就是一个UI,一个符号的长度。

眼图示例

眼图示例

Jitter:抖动,理想过渡位置的变化。通俗点说:时钟抖动是时钟源和时钟信号环境的一种特性。它可以定义为 "时钟边缘与理想位置的偏差"。时钟抖动通常由时钟发生器电路、噪声、电源变化、附近电路的干扰等引起。抖动是导致时序闭合所规定的设计裕度的一个因素。

jitter定义

可参考:【 FPGA 】时钟抖动浅记[3]

Clock Jitter[4]

这样严格的要求使得PLL和时钟提取电路能够工作。这往往需要在使用MGT的系统中的每块印刷电路板(PCB)上安装一个精确的晶体振荡器。这些晶体振荡器比大多数用于数字系统的晶体振荡器高一档,成本会更高。

在很多情况下,时钟生成芯片和PLL的抖动太多,无法使用,因此需要选择一种低抖动的晶体振荡器。

低抖动石英振荡器

参考文章

  • Eye Diagram[5]
  • What does ppm mean?[6]
  • 【 FPGA 】时钟抖动浅记[7]
  • Clock Jitter[8]
  • Jitter[9]
  • Tutorial: Clock jitter measurement and effects[10]

注:本系列博文首发:https://www.ebaina.com/articles/140000005140

参考资料

[1]

高速串行总线设计基础(五)揭秘SERDES高速面纱之多相数据提取电路与线路编码方案: https://www.ebaina.com/articles/140000005095?utm_source=articleindex&utm_medium=list&utm_campaign=140000005095

[2]

高速串行总线设计基础(五)揭秘SERDES高速面纱之多相数据提取电路与线路编码方案: https://www.ebaina.com/articles/140000005095?utm_source=articleindex&utm_medium=list&utm_campaign=140000005095

[3]

【 FPGA 】时钟抖动浅记: https://blog.csdn.net/Reborn_Lee/article/details/84933106?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160752917019721940234520%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=160752917019721940234520&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~rank_blog_v1-1-84933106.pc_v1_rank_blog_v1&utm_term=%E6%8A%96%E5%8A%A8&spm=1018.2118.3001.4450

[4]

Clock Jitter: https://vlsi.pro/clock-jitter/

[5]

Eye Diagram: https://www.sciencedirect.com/topics/engineering/eye-diagram

[6]

What does ppm mean?: https://www.adelaide.edu.au/arcpoh/dperu/fluoride/ppm.html

[7]

【 FPGA 】时钟抖动浅记: https://blog.csdn.net/Reborn_Lee/article/details/84933106?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160752917019721940234520%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=160752917019721940234520&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~rank_blog_v1-1-84933106.pc_v1_rank_blog_v1&utm_term=%E6%8A%96%E5%8A%A8&spm=1018.2118.3001.4450

[8]

Clock Jitter: https://vlsi.pro/clock-jitter/

[9]

Jitter: https://en.wikipedia.org/wiki/Jitter

[10]

Tutorial: Clock jitter measurement and effects: https://www.planetanalog.com/tutorial-clock-jitter-measurement-and-effects/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA LAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 数据包介绍
  • 参考时钟要求
  • 参考文章
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档