PCIe扫盲(九)

在这里插入图片描述

系列文章目录


PCIe扫盲(一)
PCIe扫盲(二)
PCIe扫盲(三)
PCIe扫盲(四)
PCIe扫盲(五)
PCIe扫盲(六)
PCIe扫盲(七)
PCIe扫盲(八)
PCIe扫盲(九)


文章目录

  • 系列文章目录
  • 物理层电气部分基础(一)
    • L0 模式下的链路结构图(状态图)如下:
    • L0s 模式下的链路结构图(状态图)如下:
    • L1 模式下的链路结构图(状态图)如下:
    • L2 模式的链路结构图(状态图)如下:
    • L3 模式的链路结构图(状态图)如下:
  • 物理层电气部分基础(二)之 De-emphasis
  • Lattice ECP3/ECP5 SerDes 简介
    • 参考阅读:
  • 转载链接


物理层电气部分基础(一)

  之所以把物理层电气部分的文章放在链路初始化与训练文章的后面,是因为这一部分涉及到一些相关的概念,如 Beacon SignalLTSSM 等等。

  前面已经多次提及,由于本次连载的文章主要是基于 Gen2 的,所以关于 Gen3 的相关内容只会提及,但是并不会深入的介绍,如果有兴趣的可以自行阅读 Gen3 的 Spec 。

  关于链路初始化与训练的文章中提到过,PCIe Spec 规定,支持新的标准的 PCIe 设备应当能够向前兼容。即 Gen2 的设备必须同时支持 2.5GT/s5GT/s

  注:当然这也不是绝对的,当每一个设备只支持 5GT/s 速率时,可以通过将 Link Capability 2 Reg 中的 Supported Link Speed 置为全 0,同时将 Link Control 2 Reg 中的 Hardware Autonomous Speed Disable1 。来禁止系统尝试将速率降为 2.5GT/s

  PCIe Spec 规定,PCIe 设备必须是 Short-Circuit Tolerant 的,这可以让 PCIe 卡支持热插拔的功能。此外,由于 PCIe 总线是一种高速的差分总线,因此,其收发两端是交流耦合的(AC-Coupled)。一般情况下,靠近发送端的链路上放置电容来滤除直流信号,如下图所示:

在这里插入图片描述

  详细的差分收发对模型如下图所示:

在这里插入图片描述

  当然,如果 PCIe 设备把电容集成到 Silicon(芯片)中,也是可以的(不过一般不会这么做,因为在芯片内部集成大电容成本很高)。使用交流耦合的另一个优势是,可以允许链路两端的设备使用不同的电源和地。

  注:关于半导体中的电容,以及芯片周围的一堆退耦电容是什么鬼,打算找个时间单独写一篇文章来详细地聊一聊。

  注:关于 PCIe 的热插拔实现机制,后续单独写一篇文章来介绍。有兴趣的读者也可自行阅读 PCIe Card Spec 的相关章节。

  需要注意的是,PCIe 总线采用的是嵌入式时钟,即只有数据 Lane,并没有时钟 Lane(对于Gen1/Gen2,是通过 8b/10b 编码来嵌入和恢复时钟的;对于 Gen3 及之后的版本,是通过扰码和 128b/130b 来实现嵌入和恢复时钟的)。

在这里插入图片描述

L0 模式下的链路结构图(状态图)如下:

在这里插入图片描述

L0s 模式下的链路结构图(状态图)如下:

在这里插入图片描述

L1 模式下的链路结构图(状态图)如下:

在这里插入图片描述

L2 模式的链路结构图(状态图)如下:

在这里插入图片描述

L3 模式的链路结构图(状态图)如下:

在这里插入图片描述

物理层电气部分基础(二)之 De-emphasis

  这一篇文章中,我们主要来聊一聊 PCIe 中的信号补偿技术(Signal Compensation)—— De-emphasis。需要注意的是,Gen1&Gen2 与 Gen3De-emphasis 实现机制差别较大,而本文只介绍 Gen1&Gen2 相关内容。如需了解 Gen3 的相关内容,可自行查阅 Gen3 的 PCIe Spec 。

  高速信号传输中有一个非常棘手的问题,就是当传输速率变得越来越高的同时,数据间隔单元(Unit IntervalUI)也会变得越来越小。这导致前一个 bit 的数据会对后面 bit 的数据造成影响,如果不去除这些影响,将会导致误码率飙升,甚至通信无法继续。

  此时,还存在另一个问题,如果系统中出现几个连续的 1(或者 0 ),而接下来的信号为 0(或者 1)时,信号的电压可能达不到要求,如下图所示。这种前面的信号会影响后面的现象,我们称之为 ISIInter-Symbol Interference)。产生这种现象的罪魁祸首是传输线的介质损耗,具体会在 SerDes 的专栏文章中详细介绍。

在这里插入图片描述

  注:虽然 PCIe 采用了 8b/10b 编码,但是仍然会出现连续的 5 个 0 或者 5 个 1 (一些控制字符,如 COM )。

  为了解决这个问题,PCIe 采用了一种叫做 De-emphasis 的技术,具体细节如下:

  • 当前后电平极性变化时,不使用 De-emphasis

  • 连续相同极性电平的第一个 bit,不使用 De-emphasis

  • 只有连续相同极性电平的第一个 bit 之后的 bit ,才使用 De-emphasis

  • 对于 2.5GT/sDe-emphasis 将电压较少 3.5dB 。对于 5GT/s ,则是 6dB;

  • Beacon 信号也需要进行 De-emphasis,但是规则稍有差别。

  注:Beacon 信号在之前关于 LTSSM 的文章中介绍过。

  如下图所示:

在这里插入图片描述

  一个 De-emphasis 的例子如下图所示:

在这里插入图片描述

  采用 De-emphasis 之后的 PCIe 设备接收端信号如下图所示:

在这里插入图片描述

  差分的例子:

在这里插入图片描述

  此外,对于部分使用低摆幅(Reduced Swing)的 PCIe 设备来说,一般不需要使用 De-emphasis。考虑到,这种低摆幅的设备一般传输线都比较短(甚至是同一颗芯片/封装里面),介质损耗相对较小。

在这里插入图片描述

Lattice ECP3/ECP5 SerDes 简介

  FPGA 发展到今天,SerDes (Serializer - Deserializer) 基本上是标配了。从 PCIPCI Express,从 ATA 到 SATA,从并行 ADC 接口到 JESD204,从 RIO 到 Serial RIO,……等等,都是在借助 SerDes 来提高性能。SerDes 是非常复杂的数模混合设计,用户手册的内容只是描述了森林里面的一棵小树,并不能够解释 SerDes 是怎么工作的。而本文也主要是基于 Lattice ECP3ECP5SerDes UG,来简单地介绍一下 Lattice ECP3&ECP5 SerDes 的一些基本特性。如需深入了解 SerDes ,可以参考一下我之前转发的博客:SerDes 扫盲 ,以及本文附件中的硕博论文。亦或者是到 IEEE Xplore 下载相关论文资料。

  废话不多说,进入正题。

  Lattice 的 ECP3/ECP5 系列 FPGA 内部集成了 SerDes/PCS 的硬核(Hard Core),其速率最高可达 3.2Gbps,而 ECP5-5G 系列的 SerDes 最高可达 5GbpsLatticeSerDes 是基于 CML 信号的,借助 PCS(物理编码子层,Physical Coding Sublayer)可以支持 PCI Express、JESD204A/B、SD-SDI、HD-SDI、3G-SDI、GbE、CPRI、Gigabit Ethernet (1GbE and SGMII)XAUI 等多种串行通信协议,具体如下图所示。

在这里插入图片描述

  就 PCIe(PCI Express)而言,ECP3/ECP5 可支持 1.0/1.1 版本(2.5Gbps),而 ECP5-5G 还可支持 2.0 版本(5Gbps)。借助 Lattice 提供的 PCIe 相关的 IP (Endpoint & Root),可以快速的完成基于 FPGAPCIe 设备的开发。

  Lattice ECP3,ECP5(ECP5-5G)的 SerDes/PCS 结构基本相同,区别主要在于 ECP5 将两个 SerDes/PCS 通道合并到一个叫做 DCU 的模块中去。ECP5 的每一个 DCU 均包含一个 AUX 通道(以及 TxPLL),而 ECP3 每四个 SerDes/PCS 通道才包含一个 AUX 通道。ECP3 和 ECP5 的结构图分别如下图所示:

在这里插入图片描述
在这里插入图片描述

  其中,ECP5SerDes/PCS 的单个通道的详细结构图如下图所示:

在这里插入图片描述

  ECP5SerDes 时钟结构图如下:

在这里插入图片描述

  注:本文只是对 Lattice ECP3/ECP5 器件中的 SerDes/PCS 进行了简要的介绍,具体还请阅读参考阅读中的相关 UG

参考阅读:

  1. Lattice ECP3 SerDes/PCS User Guide:
    LatticeECP3SerdesPCS UsageGuide.pdf

  2. Lattice ECP5/ECP5-5G SerDes/PCS User Guide:
    ECP5 and ECP5-5G SERDESPCS Usage Guide.pdf

  3. 10Gbps-SerDes中的高速接口设计:
    10Gbps-SerDes中的高速接口设计.pdf

  4. 高速SERDES接口芯片设计关键技术研究:
    高速SERDES接口芯片设计关键技术研究.pdf

转载链接

  1. 物理层电气部分基础(一)
  2. 物理层电气部分基础(二)之 De-emphasis
  3. Lattice ECP3/ECP5 SerDes 简介

  
 


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

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

相关文章

测试栏杆天线和金属圆管天线的差异

今天用网分测试了大约800mm的拉杆天线和800mm的金属圆管的s11的差异。 拉杆的最粗部分10mm,最细部分6mm。圆管的直径为均匀26mm。 两者的谐振频率在60Mhz左右。(这也说明了谐振频率只要由长度决定) 拉杆天线的swr 圆管的swr 注:上图因为网…

六个神级AI绘画技巧,让你的作品瞬间高级感爆棚!

大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 在艺术的世界里,AI绘画正成为一…

网络原理(4)——网络层(IP)、数据链路层

1. IP 协议 基本概念: 主机:配有 IP 地址,但是不进行路由控制的设备 路由器:即配有 IP 地址,又能进行路由控制 节点:主机和路由器的统称 IP 协议报头格式 1) 4 位版本:实际上只有两个取值&…

扣子智能体实战-快速生成公众号爆款标题的智能体

文章目录 一,创建一个智能体二,创建工作流1,开始结点增加一个theme变量2,新增一个大模型节点3,新增一个代码结点4,发布工作流5, 工作流概览 三,增加开场白 如果是做公众号&#xff0…

Linux线程基础

🌎 Linux线程 文章目录: Linux线程 线程概念       线程的理解 再谈地址空间 线程控制       线程等待       线程资源共享       线程退出       线程异常       线程分离       理解线程tid 线程切换 线程…

重修设计模式-设计原则

重修设计模式-设计原则 设计原则 设计原则是软件编码时所遵循的规则,旨在帮助开发者创建出既满足功能需求又易于维护、可扩展且美观的设计,理解设计原则可以提升代码质量、减少错误以及促进团队协作,但对设计原则的理解要灵活,不…

佩戴舒适且适合学生党的蓝牙耳机?分享开放式耳机排行榜前十名

对于追求佩戴舒适的学生党来说,高性价比的开放式耳机是一个不错的选择。因为这类耳机不仅提供了良好的通风性,还减少了长时间佩戴带来的闷热感。而且开放式耳机也通常具有轻巧的设计,能够减轻了耳朵的压力。而且,还需要考虑到学生…

CO82-工單號碼段配置

可以通過CO82查看工單號碼段。 配置工單號碼段: 1、首先配置一個號碼段。 2、將工單類型分配給號碼段。 此時工單類型ZP01號碼段即為41W000000-41W999999 3、可以點擊概覽按鈕,查看概覽。 可以看到不同號碼段下的所有工單類型。 *然後在前台就可以對Z…

怎么测开关电源效率?电源效率标准是多少?

在追求电子产品高性能与低功耗的今天,开关电源的效率成为了衡量其性能的一项重要指标。提高开关电源的效率,对于保障电子设备的稳定性和延长使用寿命具有重要意义。今天将为大家介绍开关电源效率的测试方法以及在不同负载条件下电源的效率标准。 一、开关…

「Netmarble 小镇」活动来了:踏上穿越标志性世界的旅程!

欢迎来到 Netmarble 小镇!本次活动从 9 月 13 日持续到 10 月 11 日,是你们体验 Netmarble 著名游戏世界最精彩内容的入口。在为期一个月的庆祝活动中,你们将体验到独家内容、惊险刺激的挑战和全新人物化身的发布! 探索 Netmarble…

高校宿舍电费管理怎么实现

1引言 在大学的象牙塔里,宿舍不仅是学子们休憩的港湾,更是青春记忆的重要载体。然而,随着科技的发展与生活习惯的改变,宿舍内的电器设备日益增多,电费管理成为了一个不可忽视的问题。本文将从高校宿舍电费管理的现状出…

【AI小项目6】QLoRA针对资源受限设备上的大模型微调和文本分类任务的推理

目录 一、项目简介概述时间主要工作和收获技术栈数据集结果参考 二、训练阶段的完整代码什么是 QLoRA 微调?注意 安装库导入包配置定义一个Config类配置训练参数配置Lora 初始化分词器和模型数据预处理计算模型评估指标交叉验证划分数据集举例: 创建Trai…

mycat双主高可用架构部署-ER表

MySQL5.7服务器IP是192.168.31.209及192.168.31.210 vi /usr/local/mycat/conf/schema.xml <?xml version"1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat"http://io.mycat/"><schema n…

Java通信协议—TCP协议上传文件(完整详解,附有案例+代码)

TCP协议上传文件 文章目录 TCP协议上传文件1.需求2.代码实现 1.需求 客户端&#xff1a;将本地文件上传到服务器。接收服务器的反馈。 服务器&#xff1a;接收客户端上传的文件&#xff0c;上传完毕之后给出反馈。 2.代码实现 public class Server {public static void main(…

fastson与jackson入门

一&#xff0c;简介 json: JavaScript Object Notation, JS对象简谱。 官网&#xff1a;JSON官网 二&#xff0c;使用场景 网络传输 ​ 描述同样的信息&#xff0c;json相比xml占用更少的空间, <?xml version"1.0" encoding"uTF-8"?> <pers…

电气自动化入门03:安全用电

视频链接&#xff1a;2.1 电工知识&#xff1a;触电原因与防触电措施_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1PJ41117PW/?p4&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.电流对人体的危害 电击&#xff1a;电流通过人体。 电伤&#xff1a;电流热效应…

魅族20机型 M2381“工程固件”作用分析以及写入步骤

在上期的博文中简单说明了工程固件的作用。对于资深玩家来说写入工程固件可以调试参数或者格机 误檫除全分区后的底层修复,但对于一般玩家来说不推荐写入。固件本身的作用是修复与调校。有些操作是不可逆。工程固件实际是用于机型开发到量产中帮助开发人员检查和修复软件中的问…

小米机型“工程固件” 小米13工程资源预览 写入以及nv损坏修复

目前各大品牌机型中。可以录数于小米机型的工程固件最全 最多。这个也由于小米机型的加密机制比较特殊 。每款新机型发布后不久。工程包就会出现。从小米5起始以及红米note4起始都有工程固件。另外在维修行业中。米系机型更换cpu都需要先写入对应的绑定包。然后才可以写入官方m…

Windows如何查看已缓存的DNS信息

Windows server 2016如何查看已缓存的DNS信息 在Windows server 2016系统下&#xff0c;如何查看已缓存的DNS信息呢? 1.打开“运行”&#xff0c;输入cmd&#xff0c;点击“确定” 2.在命令行界面输入ipconfig /displaydns&#xff0c;按回车即可查看已缓存的dns信息

企业如何做好B站信息流广告投放?

B站作为年轻人喜爱的视频分享平台&#xff0c;以其独特的弹幕文化、丰富的视频内容和活跃的社区氛围&#xff0c;成为了众多企业竞相追逐的流量高地。B站信息流广告凭借其精准投放、高互动性和强大的用户粘性&#xff0c;成为了企业实现营销目标的重要渠道。 一、B站信息流广告…