精华内容
下载资源
问答
  • 串行总线技术(一)-串行总线结构(以PCIe为例)串行总线的出现在早期的计算机系统中,多数外围设备使用并行总线结构。这些总线包括PCI和PATA(并行ATA)。当通信速率较低时,并行总线结...

    3bb40fa785e836bab1494a6103cfce2b.png

    串行总线技术(一)-串行总线结构(以PCIe为例)

    串行总线的出现

    在早期的计算机系统中,多数外围设备使用并行总线结构。这些总线包括PCI和PATA(并行ATA)。当通信速率较低时,并行总线结构可以设计得非常简单和有效,可以连接大量外围设备。通过使用中央仲裁机制,可以方便地实现总线设备间的通信:然而,当速率和带宽不断增加时,并行结构的潜力不断被发掘并不再能够满足系统设计要求。

    并行总线结构的带宽可以通过增加总线宽度或者提高总线的工作频率来实现,但这种增加带宽的方式会逐渐变得困难。并行总线会占用很多引脚,而对现代数字芯片来说,单一芯片中集成了大量的功能,引脚本身就是一种非常紧张的资源,这为继续增加总线宽度带来了困难。

    另外,总线频率已经进行了多次增加(如PCI-->PCIX),继续对大量信号线提高工作频率也变得更加困难。除此之外,并行结构还有一些固有不足,如没有包的概念,没有错误检验机制等。在并行总线中,传输的是数据突发片段,不是完整的数据包,也没有与所传输数裾 相关的CRC校验结果以进行差错控制。并行总线的不足促进串行总线结构的发展,这不仅克服了原有的缺陷,还带来了其他好处。如图所示为并行总线与串行总线示例。

    447b79565efe60fd75ab5f99374ac1e2.png 538966c2d406f5b4c3040a8ae4c835df.png

    现在的数字系统中有很多种串行总线。PCI Express(代替了并行PCI总线)、SATA(代替PATA)以及USB等就是一些常用的高速总线。这些总线的速率也从MHz达到了GHz。

    串行总线的优缺点

    优点

    • 占用引脚数量少

    串行总线使用一对信号线发送数据(TX+ TX-),使用一对信号线接收数据(RX+ RX-)。而PCI和PCIX等并行总线会占用大量引脚。

    • 差分信号

    TX和RX信号线上采用的是差分信号传输方式,这种传输方式具有很高的抗噪声能力。

    • 强错误检测能力

    串行协议使用基干包的数据传输方式,对数据包采用了CRC校验。相比于PCI中采用的奇偶校验,CRC校验具有很强的检错能力。

    • 纠错与恢复

    因为采用基于包的传输方式并且带有CRC校验,接收设备能够检测出接收数据包中的错误并通知发送端出现了传输错误,发送端可以重新发送出现错误的数据包。

    • 全双工数据和控制流

    数据包可以在TX信号线上传输,同时可以在RX信号线上接收控制信息。SATA使用类似HOLD的流控原语来实时阻止数据发送以避免数据溢出。

    • 分割式数据传输

    在分割式数据传输中,request和completion可以不出现在同一个数据传输操作中。这不是串行总线所特有的必要特征。所有的串行总线都使用包和分割式数据传输协议进行数据传输。多数早期的并行总线(PCI、AHB)不支持分割式数据传输。最新的并行总线,如AXI 开始支持这一协议。

    缺点

    串行总线也存在一些不利之处。

    • 只支持点到点连接

    通过串行总线只能连接两个设备,而对于并行总线,可以在单一总线上连接多个设备,并目.很容易增减总线上的设备。对于串行总线,我们需要使用交换机和多个总线设备连接。

    • 更大的延迟

    由于串行及分层结构特点,串行结构的总线延迟更大一些。

    串行总线结构

    串行总线结构只允许点到点连接,一条串行总线只能连接两个设备,而并行总线可以同吋连接多个设备。在串行总线结构中,总线设备中需要包括两个基本电路部件:MAC控制器(通常简称为控制器)和PHY(主要实现模拟收发功能)。MAC具有分层结构,通常包括三个 层次。PHY包括两个部分:PCS和PMA。PCS(Physical Coding Sublayer,物理编码子层)主要实现编解码等数字逻辑功能。PMA主要实现时钟恢复、均衡和信号电平检测等模拟功能。

    下面我们将以PCIe和SATA为例,对串行总线结构加以分析,如图所示。

    2c62c0ff59219bbf1c1f9f34e0f37b58.png

    MAC控制器包括三个层次:PHY逻辑层 、 数据链路层和事务层。每一层都有自己特定的功能。

    PHY逻辑层

    两个相互联接设备的PHY逻辑层之间使用PHY层包进行通信,称为有序训练集合,如图所示。PHY层包被用于建立链路和确定交互的操作速度,在训练阶段结束时,双方进入连接阶段,此时它们已经做好了传输数据链路层和事务层包的准备。PHY层包产生于PHY层,终结于另一侧的PHY逻辑层,不会上交给其他层次。

    c57f1de5cd76df56330b490ed5b0ffc6.png

    数据链路层

    数据链路层使用短的、固定长度(2个dword/8字节)的包在两个设备间交互链路信息,如图所示。这些包也被称为DLLP(Data Link Layer Packet,数据链路层包)。DLLP被用于交换信用信息、ACK、NAK和功率管理协议。DLLP在本层产生,终止于对端的同一层, 不会进一步向上提交。

    28e72432b2e5353c9821d6f296acd7ff.png

    事务层

    本层在两个设备间进行实际的数据交互,如下图所示。这些包被称为TLP(Transaction Layer Packet,事务层包),TLP为变长包。TLP包括头域、数据净荷和CRC校验。一个TLP由start-of-packet符号开始,以END符号结束。

    0d05b15fd1039fc03ccd92a570a89a89.png

    串行总线时钟

    在PCIe中,平台提供100MHz参考时钟,通过PCIe插槽提供给总线设备。PCIe端点设备从PCIe连接器处获取该参考时钟并将其交给PHY PMA层。PMA内部有一个PLL,它根据输入的100MHz时钟和输入的RX数据流生成250MHz的时钟PCLK。PHY将PCLK提供给MAC发送数据(从MAC到PHY)和接收数据(从PHY到MAC)都同步于PCLK。对于PCIe,MAC的接收和发送电路工作在同一个时钟域。对于其他串行总线结构,如SATA收发电路时钟可能不同。在SATA中,发送和接收时钟是不同的,属于异步时钟。

    发送路径的微结构

    MAC和PHY PCS之间的接口是标准的,虽然这不一定必要,但标准化有利于IP核的开发,可提高不同芯片厂商IP核之间的互操作性。对于PCIe来说,该接口被称为PIPE接口。

    MAC提供的发送数据的位宽为8比特或16比特。PCLK的频率与数据总线的位宽有直接关系,数据位宽为8比特时,PCLK为250MHz数据位宽为16比特时,PCLK为125MHz,如图所示。

    00ca7a2918b58ad29b3e0755584b5048.png

    这两个频率是PCIe Genl所使用的,在Gen2中,二者都进行了翻倍。位宽变换电路模块可以将16比特的数据位宽转换成8比特的位宽,接着将其送入8b/10b编码器。编码器将每个8比特的数据转换成为10比特的编码值并将其传递到PHY的PMA层。PMA层使用一个高速时钟(Genl时为2.5GHz,Gen2时为5GHz)进一步将10比特的编码结果转换为单比特串行数据并通过TX信号线发出。

    接收路径的微结构

    PMA接收电路实现比特提取和串并变换功能,将单比特的串行接收数据变换成为10比特的并行数据,如图所示。

    88466fc5bea9f359e763c6ba2d7f96c8.png

    10比特的数据流从PMA接收电路进入PCS接收电路。此时的10比特数据流并非是字符对准的。在PCS内部,10比特数据流先后进入字符对准电路、弹性缓冲区、10b/8b解码电路并最终进入可选的8b/16b转换电路。

    字符对准

    PCIe接收的数据是以10比特的字符为组成单位的。PMA接收电路将接收数据组成10比特字符时没有按照字符边界进行。字符对准逻辑电路查找COMMA字符并以它为基础进行字符边界对准。对准后的字符流被送入弹性缓冲区,如图所示。

    19976dbf9a65f8790824289f7f5fd492.png

    弹性缓冲区

    PCIe链路两端所使用时钟的标称值均为250MHz。它们可以使用平台提供的同一个时钟,或者选择它们自带的时钟源来生成250MHz的工作时钟。当使用相互独立的时钟时,它们之间会有微小的偏差(偏差可能非常微小,但不会为0),此时,经过一段时间之后,会造成数据的上溢或下溢。总线一端的时钟频率可能比另一端略微高一些,频率低的一端会出现数据缓冲区上溢,频率高的一端会出现数据缓冲区下溢。串行总线中使用弹性缓冲区来处理时钟频率上的微小差别。我们将对PCIe和SATA中的弹性缓冲区加以介绍。

    位宽为10比特的接收符号流被写入一个FIFO。按照PCIe协议,在发送数据时,会按照一定的间隔定期发送填充包(称为SKIP集合)。这些填充包可以在不影响数据净荷、编码/解码、扰码/解扰码的情况下快速插入和去除。写入逻辑持续将10比特的字符写入FIFO,读岀逻辑持续将FIFO中的字符读出。如果写入速度比读出速度快,FIFO中的数据深度将逐渐增加。

    当FIFO中的数据深度达到了预先设定的上限时,写入逻辑会丢弃1个或多个SKIP字符。类似地,当写入速度低于读出速度时,FIFO中的数据深度会逐渐降低,当深度降至预先设定的下限时,读出逻辑不再从FIFO中读出数据,它会暂停读出数据,同时向数据通路中插入一个SKIP符号。这里的FIFO就是弹性缓冲区,其内部数据深度是变化的,可以用于调整读写时钟频率的微小偏差,如图所示。

    4a1e61ba9fb2709ff8e331b7c8e7b38a.png

    需要说明的是,这种工作机制可以用于处理微小的读写频率偏差,不适合处理较大的频率偏差(较大的时钟偏差需要深度较大的弹性缓冲区并且会引入较大的延迟)。规范中对频率偏差会提出限制,例如,PCIe中的频率偏差应小于300PPM。当时钟偏差被限定在一定PPM之内时,SKIP出现的间隔就可以计算得到。

    SATA使用了类似的机制,它会在每256个双字之间插入两个ALIGH原语。ALIGN原语根据两边的频率差可以快速地被丢弃或插入。

    10b/8b解码和8b/16b转换

    弹性缓冲区的输出进入解码器电路,它会将10比特的字符转换成为8比特的数据。如果PCS-MAC接口数据通道宽度为16比特,那么需要将两个连续的8比特数据拼接起来构成16比特的数据并送给接收MAC如果数据通路宽度为8比特,那么不需要做任何处理,直接送给接收MAC。

    后面会继续讲讲《串行总线更多结构》,敬请期待。

    032f0b24a3963054f4579f492b607e8c.gif

    NOW

    学习Xilinx FPGA最好的资料其实就是官方手册,下表总结了部分手册的主要介绍内容,关注我,持续更新中......

    文件名主标题内容简单介绍是否有中文版
    UG4767 Series FPGAs GTX/GTH  TransceiversGTX和GTH介绍,PCIe、serdes等学习必备
    UG4717 Series FPGAs SelectIO Resources描述 7 系列 FPGA 中可用的 SelectIO资源。
    UG1114PetaLinux Tools DocumentatonPetaLinux 工具文档 参考指南是,V2019.2
    UG949UltraFAST 设计方法指南(适用于 Vivado  Design Suite)赛灵思® UltraFast™  设计方法是用于为当今器件优化设计进程的一套最佳实践。这些设计的规模与复杂性需要执行特定的步骤与设计任务,从而确保设计每一个阶段的成功开展。依照这些步骤,并遵循最佳实践,将帮助您以最快的速度和最高的效率实现期望的设计目标是,V2018.1
    IP手册pg057FIFO GeneratorFIFO生成器IP使用手册
    pg104Complex Multiplier复数乘法器IP使用手册
    pg122RAM-Based Shift Register 移位寄存器IP使用手册

    45ca22f429c9dfff436af538e7189353.png

    推荐阅读

    【Vivado那些事】如何查找官网例程及如何使用官网例程

    【Vivado使用误区与进阶】总结篇

    【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键

    SystemVerilog数字系统设计_夏宇闻 PDF

    图书推荐|ARM Cortex-M0 全可编程SoC原理及实现

    简谈:如何学习FPGA

    Github 上有哪些优秀的 VHDL/Verilog/FPGA 项目

    AD936x+ZYNQ搭建收音机(一)

    AD936x+ZYNQ搭建OpenWIFI

    无招胜有招-Vivado非工程模式下的详细设计

    面试中经常会遇到的FPGA基本概念,你会几个?

    推荐一些可以获取免费的国外的原版书籍(电子版)网站

    FPGA 的重构

    国产CPU概括

    从电子游戏历史看IC发展的助推剂

    80年代电子游戏及电脑游戏的发展历史

    PCIe总线的基础知识

    万字长文带你回顾电子游戏的七十多年历史(完整版)

    FPGA中异步复位,同步释放的理解

    OpenFPGA系列文章总结

    用Verilog设计一个16 位 RISC 处理器

    介绍一些新手入门FPGA的优秀网站(新增)

    Verilog数字系统基础设计-CR

    Verilog数字系统基础设计-奇偶校验

    建立和保持时间及时序简单理解

    (Xilinx)FPGA中LVDS差分高速传输的实现

    Xilinx Multiboot实例演示

    高速串行通信常用的编码方式-8b/10b编码/解码
    Verilog计时(微秒、毫秒和秒)脉冲的产生及同步整形电路

    图书推荐|一本图像/视频处理的强大工具书

    Verilog HDL-同步技术

    再说System Verilog 与 Verilog 的关系

    数模混合信号建模语言Verilog-AMS

    Intel/Altera 系列FPGA简介

    一块带给无数人年少欢乐的CPU,别说你没用过它

    Verilog在编写第一行代码之前

    【例说】Verilog HDL 编译器指令,你见过几个?

    穿越时空的爱恋-Z80 CPU的前世今生

    【Vivado】那些事儿-汇总篇

    古老CPU启示录-晶体管之路

    【Vivado那些事儿】约束的顺序

    童年修复系列-SNES芯片组介绍及FPGA实现

    优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V

    展开全文
  • 描述随着目前对通信和计算机系统速度与带宽的需求不断上升,系统设计师正面临着严峻的...并行总线宽度经多年不断增长之后,如今出现了另一种朝着相反方向发展的总线技术趋势,即窄串行总线开始取代宽并行结构。例如...

    描述

    随着目前对通信和计算机系统速度与带宽的需求不断上升,系统设计师正面临着严峻的考验。按时序进行测试的并行总线结构已接近其能力的极限,总线宽度现达到64位以上,致使电路布局异常复杂。此外,宽平行总线内的大量信号同步起来也非常麻烦,尤其是这些信号还会受到诸如噪声和串扰等随机因素的影响。

    并行总线宽度经多年不断增长之后,如今出现了另一种朝着相反方向发展的总线技术趋势,即窄串行总线开始取代宽并行结构。例如128位并行连接将变成一个四线串行 总线,当然这些变少的物理连线仍然必须传输与宽并行总线同样的数据,甚至还要更多。

    576020da4174ba997da82f3462556bf1.png

    串行总线一般以打包的形式传送数据,分包传输通过物理层技术完成,然后在协议层上实现。

    串行总线串行好处很多,如打包数据适应性更强(字符长度可随系统要求而呈动态变化)、可靠性更高,以及内置有误差发现和校正功能。此外,信号线越少说明需要布局的通路越少,因而弯曲、通孔和端点也越少。简言之,串行总线速度快、容易操作且可靠性高,恰好与系统对更高带宽和性能的需要保持一致。

    除了这些优点,串行总线也给系统设计师提出了一些新的挑战。

    设计人员在规划应用这些信号以及排除故障时,必须考虑到非常高的速度和新型动态性能,所选择的测试工具必须能够与快速信号保持一致,这些信号以复杂协议如RapidIO、PCI-Express和Hypertransport等传输大量信息。

    除了要跟上更快速度外,设计人员现在应付的是硬件、软件和固件的“设计融合”,嵌入式软件、数字逻辑、模拟电路和印制电路板等不再是分离的开发单元,需要同时考虑分析,以有效解决现在越来越多的信号完整性问题。数据内容按时间分割到不同的包上,出现错误的原因可能在应用软件本身,也可能是打包协议、数字逻辑或总线时序出错。

    纯粹的逻辑设计已不够用,如今的系统速度还有一些其它影响必须理解并考虑,但很多工程师却不习惯于这样思维。过去的数字设计师把精力主要放在信号之间的时序问题上,现在则必须考虑器件内部及之间的信号参数问题,这些因素综合起来导致信号完整性问题大幅度增加,使排除故障的工作比以前更难。

    多数数字故障排除工作的第一道防线是逻辑分析仪,这种通用仪器使用户能以多种格式存储、触发和观察数字信号。连接到被测系统的探针把数据送到逻辑分析仪多个不同的通道,然后通过逻辑分析仪按时序显示可及时看到数字脉冲串及其相关位置。状态显示格式以被测电路时钟信号决定的时序来观察数据,借助于反汇编程序和处理器软件支持包能进一步对这些结果进行说明,逻辑分析仪可用低级二进制方式表示高级指令。

    逻辑分析仪有着很高通道数、深存储记忆和高级触发,可从众多测试点上获得数字信息,然后连续显示信息。产生的时序图清楚且便于理解,易于与预先设计的数据进行比较,在二进制水平确定系统工作是否正常。这些时序图通常是寻找危及信号完整性问题的出发点。

    但不是每个逻辑分析仪都适合现代快速串行总线数据速率下的信号完整性分析,它必须具备一些先进的性能才能满足这些要求,包括8GHz采集速率(125ps 时序分辨率)、成千个可配置通道、256M以上存储深度、无转接器高密度压缩探针等等。除了这些硬件特性之外,目前高端逻辑分析仪还带有高级分析软件包,帮助用户从获得的二进制数据上得到高级代码并做出解释,后一种特性在分析信息打包串行数据时是不可缺少的。

    很多数字问题通过观察缺陷数字信号的模拟波形显示可以更好地理解,虽然问题以数字脉冲位置发生错误的形式出现,但原因可能与模拟特性有关。在小幅值信号转化为错误逻辑状态或当上升时间缓慢而引起脉冲时序转变时,这些模拟变化就会变成数字故障。

    数字存储示波器(DSO)可以捕捉每个数字周期的细节部分,直至一个脉冲或边沿。DSO能抓到其它工具无法得到的一次性事件,特别是在高速信号环境下,DSO是发现诸如瞬变和抖动等问题的最佳工具。

    与逻辑分析仪一样,示波器如果要用于信号完整性测量,则必须满足严格的性能指标。现在的高级示波器在全采样速率下多个采集通道上带宽高达6GHz,记录长度高达32M,另外还具有低电容移动探针以及多种自动化、分析和一致性测量软件,可以满足要求。

    逻辑分析仪和DSO是两种强大的信号完整性故障排除工具,随着整合技术的最新进展,将这两种工具合在一起使其功能又得到增强。

    数字信息和模拟波形都按时间排列,这样就能以模拟方式检查数字事件,例如数字波形中的突发脉冲错误,可以在示波器波形上看到信号上升沿异常,这种模拟信号异常可能是待测电路逻辑误差造成的原因或结果。但不管是哪种情况,发现内部模拟特性有助于设计人员更快追踪问题。

    信号完整性问题经常以间歇式数字故障的形式出现,例如与抖动相关的错误在上百万个周期中可能只出现一次,这类错误很难复制,因此难以发现。信号完整性测试可以发现电路板布局产生的最初问题,如端接不良的总线会产生反射和信号变形而影响数字性能,然后再一路追踪数字错误直到变形的模拟信号,通过整合的逻辑分析仪/示波器证明数字错误确实与布局相关,而与逻辑无关。

    打开APP阅读更多精彩内容

    点击阅读全文

    展开全文
  • 串行总线技术(二)-串行总线中的先进设计理念及SerDes/PMA介绍字节分割/链路聚合下面以PCIe为例对字节分割加以讨论,如图所示。PCIe使用链路和线路来发送串行数据。链路是一个逻辑...

    串行总线技术(二)-串行总线中的先进设计理念及SerDes/PMA介绍

    字节分割/链路聚合

    下面以PCIe为例对字节分割加以讨论,如图所示。

    PCIe使用链路和线路来发送串行数据。链路是一个逻辑实体,能够具有单个线路或多个线路。当逻辑链路包括一个线路时,TLP和DLLP通过单一的线路发送,每次发送一字节。当链路包括多个线路时,TLP和DLLP分布在多个线路中,此时不是在不同的线路中发送不同的TLP而是所有的线路共同发送TLP在一个x4 PCIe链路(拥有4条线路)中,第一字节通过线路0、第二字节通过线路1、第三字节通过线路2、第四字节通过线路3、第五字节又回到线路0进行传输。这种传输机制被称为字节分割,字节分割在连续的线路上持续进行,直到最后一字节被发送。

    c5f04a4aa0d160e8d0ef8ddfbb615852.png

    正如我们所注意到的,可以通过使用更宽的链路来增加带宽。一个X4链路发送数据的带宽是xl链路的4倍。虽然线路是并行使用的,宽链路需要更多的引脚,其与并行总线结构也是有本质不同的。宽链路中每个独立的线路仍然是以串行方式工作的。每个线路都有自己的差分传输信号线和独立的数据恢复电路,都具有串行传输所具有的优点。它们是独立的串行传输通道,通过使用字节分割机制合并起来作为一个逻辑实休使用。字节分割是MAC的功能。但是并不是所有的串行协议都使用字节分割,SATA和USB没有使用字节分割技术。

    如果希望增加SATA硬盘的传输带宽,需要使用多个相互独立的SATA驱动器,使用不同的事务层包 (FIS ) 进行通信,如图所示。USB也是采用类似的机制,每个USB设备采用单线路连接。e7bc3cb133d4a4606b8bc00144824f24.png

    通道绑定与去偏移

    前而我们讨论了字节分割技术,它将一个TLP分布到多个线路中进行传输。当接收电路从不同的线路收到这些分布传输的数据后,对其正确合路处理会遇到一些实际闲难,在电路板上,不同的传输路径会带来不同的传输延迟。当接收电路收到来自不同线路的数据时,它们 经过的延迟存在差异并且处于不同的时钟域。接收电路需要将不同线路上收到的数据进行级联,合并得到原始的TLP,此时所接收的数据之间已经失去了发送时相互之间的字节同步关系,需要使用通道绑定技术在接收端重新恢复不同线路之间的字节对准关系,如图所示。

    aa83092c6aec1444af2434e5c1ed8e9a.png在所有的线路上传输的数据流中有一种特殊的COMMA字符。在链路训练阶段,在所打线路上都会发送包含COMMA字符的用于训练的有序字符集合。与TLP和DLLP不同,训练字符集合不是以字节分割方式发送的。通道绑定逻辑在1个线路(例如,线路0)中査找COMMA,接着它在其他线路中定位COMMA字符并记录它们的相对位置。一旦它锁定了COMMA字符出现的位置,它就停止搜索COMMA字符并记录下这些相对位置信息。通道绑定逻辑使用这些相对位置信息来对准存在偏移的接收数据字节流。通道绑定逻辑会始终保持基线路(线路0)字节位置不变。对于其他线路,它会根据所检测到的COMMA的相对位置写入或读出数据,在此期间这些相对位置信息会保持不变。即使输入数据相对于通道绑定逻辑发生了延迟偏移,从通道绑定逻辑输出的数据仍然是对准的,TLP和DLLP能够被正确处理。通道绑定也被称为去延迟偏移操作。通道绑定逻辑通常属于MAC层功能,只应用于包含多个线路、采用字节分割技术的链路中。

    极性翻转

    串行数据比特通过TX+和TX-信号线发送。信号线在印制电路板(PCB)上布线时,TX+应该连接收端的RX+,TX-应该连接收端的RX-。但随着PCB板的层数不断增加,布线密度不断增大,走线距离可能较长,有时还可能要通过连接器,所以经常因为疏忽而发生TX+连接收端的RX-、TX-连接收端的RX+的情况。发生这种情况后,有时可以通过重新布线加以解决,但有时重新布线的代价会比较高。

    在PCIe中,使用了一种机制来解决极性连接错误问题。在链路训练阶段,接收端查找常规的训练练字符集合或者反相的训练字符集合。如果发生了极性翻转,那么接收的串行比特会发生逐比特翻转(1变为0,0变为1)。如果链路训练逻辑检测到了逐比特翻转的训练字符,那说明出现连线错误。发送电路无法获知是否发生了连接极性错误,接收电路检测到这一错误并通过逐比特取反在不进行硬件重新设计和PCB重新加工的情况下解决了这一问题,如图所示。

    c2990e73afa4ca69767d63300cdf667a.png

    线路翻转

    在多线路链路(例如,x8 PCIe有8条线路)中,数据包按照字节分割方式进行传输。所有的线路通过电路板连接到接收设备。正确的连接方式是TX线路0连接到RX线路0,TX线路1连接到RX线路1,以此类推。在实际设计和布线时,可能会因为疏忽造成收发之间没有正确对应的情况。这些线路在多层PCB上布线时,会在不同层次之间穿过,会进行90°弯曲,这些都可能导致连接失误。在某些情况下,常规连接会导致布线闲难,此时也会有意识地希望能够进行错序连接。PCIe采用了一种名为线路切换的技术来解决这种无意或有意的板级错 序连接。

    如图所示,其基本思路是在链路训练过程中发现错序连接并进行数据重排。

    5267baed62fc5dadd68bab5b4a576d1d.png

    属于一个链路的多个线路被编号为0、1、2、3、4、5、6、7等。当信号线两端试图发现线路编号时(在训练字符集中的特定区域内写入了所属线路的编号),它们各自都有期望的编号值。线路0希望收到的训练字符集合中的编号为0,线路7希望收到的编号为7。如果接收电路收到的编号与期望值不同,它会记录下来其实际连接的对端发送电路的编号。信号线两端的电路都可以根据实际连接的通道编号调整本端的实际编号,但需要注意的是,只能有一端可以进行调整,不能两端同时进行,否则会继续出错。双方选择的用于解决错序问题的一端在发送数据之前先要切换发送数据的通路(例如,线路0的数据切换到线路7上,线路7的数据切换到线路0上)。同时它还要切换接收通路RX通路0上的数据与通路7连接,通路7与通路0连接,剩余的通路依次切换)。正如我们所能看到的,这里没有逻辑修改,通过内部的连接重定位解决了板级连接存在的问题。

    锁相环 PLL

    PLL在数字系统中有很多应用,常见的典型重要应用如下:

    • 数据时钟恢复(Clock Data Recovery,CDR)

    • 去除时钟偏移

    • 作为倍频器使用

    CDR

    在很多高速串行数据传输应用中,数据在传输过程中没有伴随着时钟的传输。然而,在数据流中存在着足够的数据跳变(0到1和1到0的跳变),接收端电路可以据此提取与数据同步的时钟。在接收端,可以使用参考时钟为时钟提取提供帮助。在没有参考时钟的情况下也 可以提取接收时钟的。下面我们将针对这两种情况对PLL电路加以讨论。

    不带参考时钟的CDR(见下图)

    1d3817528f60084411919f57c1633ddf.png如果接收端接收的比特流速率为f,那么接收端的边沿检测器检测到的数据跳变频率为2f,VCO产生的自由震荡时钟频率为2f。

    带参考时钟的CDR (见下图)

    e06679d10300e5272c79de038ac99a6c.png

    这种方式就不需要过多介绍,常见的传输方式。

    使用PLL去除时钟偏移

    在SoC中,时钟树被用于将时钟信号分配给物理上分布在芯片各个区域的触发器。在时钟树的通路上,分布着带有延迟的驱动器。由于时钟分布路径上存在延迟,叶节点上的时钟与根节点上的时钟相比,存在相移(相位滞后)。此时,可以使用PLL消除叶节点上时钟的相移使之和根节点上的时钟相位对准,如图所示。

    a696e68d8957b9bdc7ccfa49447e4534.png

    PLL还可用于产生与输人时钟存在指定相移的输出时钟,例如,产生和输入时钟存在90°相移的输出时钟。

    使用PLL实现倍频器

    PLL可用于根据时钟源产生更高频率的时钟信号。将输岀时钟信号除以N作为PLL的反馈信号与时钟源相比较,可以得到N倍于时钟源的输出时钟信号,同时二者具有相同的相位。

    72abba51bb0e2d24d0d033919bc2c69a.png

    串行总线的PMA层功能

    PMA层主要实现模拟电路功能。PMA层电路也被称为SerDes(Serializer & Deserializer),是一个非常特殊的电路。我们的目标是从电路的系统设计层面对其加以介绍,以便对串行总线技术形成完整的理解。

    发送均衡

    采用串行传输机制时,数据以比特流的方式在差分对(TX+ TX-)上传输。在线路上传输的数据波形可以看成是大量不同频率、不同幅度的正弦波叠加作用的结果。

    当数据速率很高时,存在一个占主导地位的高频正弦波分量。在高速传输时,差分传输线路的通路特性与低通滤波器(RC滤波器)接近,但相对于低频成分,高频成分的衰减更大一些。这意味着在接收端,接收信号中的不同的频率成分所占的比例与发送时不同。接收到的信号与发送端信号相比会发生畸变,造成ISI(码间串扰),这会使得CDR恢复的数据中存在误码。

    什么是码间串扰?

    如果我们发送一个阶跃函数波形(在一个时钟周期内为1的脉冲信号),在接收端波形会发生变化。接收脉冲会展宽并进入相邻时钟周期中。从第N个时钟周期展宽到第N+1个时钟周期的信号与第N+1个时钟周期的信号波形叠加,使得第N+1个周期内的波形发生畸变,这种畸变可能会造成对该时钟周期逻辑值的判决发生错误,这被称为符号间的串扰,即码间串扰(IS1)。

    前有很多种技术可以解决传输线频率响应的问题。可以通过采用发送端均衡技术,或采用接收端均衡技术加以解决。

    发送端预加重技术

    发送驱动时,对高频成分的增益大于低频成分,频率越高增益越大。信号到达接收端时,所有的频率成分得到的总体增益相同。

    发送端后加重技术

    另一种技术是后加重技术。采用后加重技术时,边沿翻转(0到1或1到0)之后的比特被正常放大,但此后的其他比特(没有边沿翻转的比特)增益相对降低。由于信号的高频成分主要出现在信号翻转部分,这样做等效于为高频成分提供了更大的增益。当数据到达接收端时,所有比特位的最终等效增益是相同的。PCIe和SATA都使用了后加重传输技术。

    接收均衡

    在接收端,可以为高频成分提供相对于低频成分更大的增益。针对高频成分给予补偿的结果是整个传输系统为所有频率成分提供了相同的增益。经过补偿后,接收波形与发送波形更加相似。接收器均衡技术有利于减少1SI。

    端接电阻

    TX+和TX-信号是一对传输线,在发送端和接收端需要进行传输线阻抗匹配,以避免产生信号反射,使发送信号产生畸变。当信号发生反射时,它与原始的发送信号发生叠加,使发送信号增强或减弱。如果反射的信号强度较大,可能会使发送信号产生较大的畸变从而导 致接收错误。终端匹配的目的就是减少或消除接收端对发送信号的反射。

    31b2b2ef9dd8ce968786e72ed2fb68ba.gif

    NOW

    学习Xilinx FPGA最好的资料其实就是官方手册,下表总结了部分手册的主要介绍内容,关注我,持续更新中......

    文件名主标题内容简单介绍是否有中文版
    UG4767 Series FPGAs GTX/GTH  TransceiversGTX和GTH介绍,PCIe、serdes等学习必备
    UG4717 Series FPGAs SelectIO Resources描述 7 系列 FPGA 中可用的 SelectIO资源。
    UG1114PetaLinux Tools DocumentatonPetaLinux 工具文档 参考指南是,V2019.2
    UG949UltraFAST 设计方法指南(适用于 Vivado  Design Suite)赛灵思® UltraFast™  设计方法是用于为当今器件优化设计进程的一套最佳实践。这些设计的规模与复杂性需要执行特定的步骤与设计任务,从而确保设计每一个阶段的成功开展。依照这些步骤,并遵循最佳实践,将帮助您以最快的速度和最高的效率实现期望的设计目标是,V2018.1
    IP手册pg057FIFO GeneratorFIFO生成器IP使用手册
    pg104Complex Multiplier复数乘法器IP使用手册
    pg122RAM-Based Shift Register 移位寄存器IP使用手册

    32e25b54a5812eff7551d4c80b09764c.png

    推荐阅读

    【Vivado那些事】如何查找官网例程及如何使用官网例程

    【Vivado使用误区与进阶】总结篇

    【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键

    SystemVerilog数字系统设计_夏宇闻 PDF

    图书推荐|ARM Cortex-M0 全可编程SoC原理及实现

    简谈:如何学习FPGA

    Github 上有哪些优秀的 VHDL/Verilog/FPGA 项目

    AD936x+ZYNQ搭建收音机(一)

    AD936x+ZYNQ搭建OpenWIFI

    无招胜有招-Vivado非工程模式下的详细设计

    面试中经常会遇到的FPGA基本概念,你会几个?

    推荐一些可以获取免费的国外的原版书籍(电子版)网站

    FPGA 的重构

    国产CPU概括

    从电子游戏历史看IC发展的助推剂

    80年代电子游戏及电脑游戏的发展历史

    PCIe总线的基础知识

    万字长文带你回顾电子游戏的七十多年历史(完整版)

    FPGA中异步复位,同步释放的理解

    OpenFPGA系列文章总结

    用Verilog设计一个16 位 RISC 处理器

    介绍一些新手入门FPGA的优秀网站(新增)

    Verilog数字系统基础设计-CR

    Verilog数字系统基础设计-奇偶校验

    建立和保持时间及时序简单理解

    (Xilinx)FPGA中LVDS差分高速传输的实现

    Xilinx Multiboot实例演示

    高速串行通信常用的编码方式-8b/10b编码/解码
    Verilog计时(微秒、毫秒和秒)脉冲的产生及同步整形电路

    图书推荐|一本图像/视频处理的强大工具书

    Verilog HDL-同步技术

    再说System Verilog 与 Verilog 的关系

    数模混合信号建模语言Verilog-AMS

    Intel/Altera 系列FPGA简介

    一块带给无数人年少欢乐的CPU,别说你没用过它

    Verilog在编写第一行代码之前

    【例说】Verilog HDL 编译器指令,你见过几个?

    穿越时空的爱恋-Z80 CPU的前世今生

    【Vivado】那些事儿-汇总篇

    古老CPU启示录-晶体管之路

    【Vivado那些事儿】约束的顺序

    童年修复系列-SNES芯片组介绍及FPGA实现

    优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V

    串行总线技术(一)-串行总线结构(以PCIe为例)

    展开全文
  • 之前想学习一下总线相关的知识,就去图书馆搜,其中,有一本是: 《嵌入式高速串行并行技术——基于FPGA实现与应用(张锋著)》 看了一下前言、目录、自序、以及他本书创作过程中的随笔 (小编就决定把这本书分享...

    前言

    • 之前想学习一下总线相关的知识,就去图书馆搜,其中,有一本是:
    • 《嵌入式高速串行并行技术——基于FPGA实现与应用(张锋著)》
      在这里插入图片描述
    • 看了一下前言、目录、自序、以及他本书创作过程中的随笔
    • 小编就决定把这本书分享出来,也不知道这样做好不好。所以,在这里有个小请求,大家尽量低调食用,不要点赞收藏转发哈

    本书 自序 —— 张峰

    人是什么单位,人生又如何衡量?

    熊培云在《思想国》中讲,人是时间单位,因为我们在提到某人的时候,总是在人名后面跟上一个括号,并注明生卒年份,以示起止。

    除了这个差值,还用什么来衡量?

    数学上,通常将时间看成一个维度,即以时间为坐标系的横轴,那纵轴呢?见仁见智,人的选择和作为也应该是一个维度,人物传记是这样写的,什么时间做了什么事。

    那号称知识分子的我们,若早已过了彷徨的年龄,其使命又当如何?

    打破框架,探索未知。

    打破框架,何其难也。文明得以发展,在于经验和知识的累积,而这种累积,多数又来源于各种权威的言传身教,就像父母告诫小孩子,冰激凌吃多会肚子痛一样,一一得到了验证,长此以往,框架得以形成,触碰不得。框架有利于知识的传授,也会束缚人的头脑,意大利的水手Amerigo Vespucci发现了一个大的岛屿,而权威《圣经》中竟然没有记载,就觉得不可思议、不可理喻。

    而终有人会承认这种事实存在、证据确凿的未知,于是,框架终究会被打破,美洲America就此诞生。
    所以人虽无往不在枷锁之中,却是生而自由的;知识分子在解决温饱问题后,可以思其力之所不及,忧其智之所不能,嫦娥奔月不也从神话变成了现实吗!

    所以应心怀梦想,坚韧追寻,应具有王国维先生的“昨夜西风凋碧树,独上高楼,望尽天涯路”之境界,而社会的残酷、自扰、抵触、牵制、掣肘、诱惑终究共存,所以有隐忍、有退让;学胡适先生的“不降志、不屈身、不追赶时髦,也不回避危险”,虽有拘有束有碍,仍可自斟自饮自开怀。

    人总是会老的,所谓百忧感其心,万事劳其形,渥然丹者为槁木,黟然黑者为星星,纵然头发稀少,两眼昏花,颈肩酸痛,双腿僵直,仍不觉辛苦,因为余心所善,不想了无意义。

    本书的形成,历经波折,构思萌芽于2012年年底,苦于自身知识匮乏,算不上一份大餐,积累沉淀,到2014年年底渐觉内容充实,可一吐为快了,于是查阅典献,收集资料,匆忙恍惚间,2015年已过了大半,竟不能再迟疑。

    总线技术是在多个项目实践中提取出来的,如高速存储、图像处理、信号处理、系统集成等,亲力躬行,才知深浅。本文中提到的各种总线,并不是3年之功,从2006年算起,已有10年。10年时间积累了这300多页内容,也不知是多还是少?2006年第一次接触PCI总线;2007年将PCI提升到了PCIX,还用会了SRIO总线,当时还是Virtex-2Pro盛行,现在已不见踪影;2008—2009年主要是SATA、SAS;2010年接触了PCIE/CPCIE;2011年闲暇时摸透了Serdes技术,终于在2013年应用成熟,JESD204/Aurora也在这一年完成;2014年做了VPX架构的整机,2015年将SRIO的交换结构收入骰中。这就是本书的主体内容,并在此基础上增加了对总线的发展历程、现状及后续趋势的描述与预测。而最后则是关于目前嵌入式系统中常用的其他串行总线(FC、Infiniband)了,作者并没有亲身实现,只是自行理解并汇编资料罢了。

    当我们回首往事时,会发现很多激荡人心的故事,有的显焕一些,有的黯淡一些,当看到自己为发展而努力,为自由而奋斗,总是心底暖暖的。我们对于过去,固然可以看到无穷的光辉,对于将来,也必须抱着更大的期待。

    努力吧,勤能补拙,不致虚度。

    努力活吧,以时间的长度弥补智力的不足。

    怀念过去,不畏将来,是为序。

    或许某些人会觉得这部分是鸡汤。你说是,那就是了。

    总线概述及分类

    总线,英文为“Bus”,Bus一词最初起源于拉丁文“omnibus”,意为“for all”,有三个含义:公共汽车、作家的作品合集、作为形容词意为综合性多功能的。最早始用于计算机领域,总线是指汇集在一起的多种功能的线路。后经深化和延伸,指计算机内各模块及计算机之间的一种通信系统,涉及硬件(器件、线缆)和软件(通信协议)。

    IT行业以摩尔定律(Moore’s Law)在飞速发展,总线的性能也要与之适应并水涨船高。自从第一代计算机及总线问世以来,总线领域爆发了三次更新换代的革命:第一代总线以1984年IBM推出的PC/AT(Personal Computer/Advanced Technology)总线为蓝本,其速率最初不足1 Mbps,并最终形成了ISA(Industry Standard Architecture)标准,在1993年被PCI总线代替;PCI(Peripheral Component Interconnect Local Bus)总线是第二代总线的典型代表,2002年并行传输的PCI总线被串行传输的PCIE(PCI Express)总线代替;而目前PCIE 3.0版本的速率为8 Gbps,是最初的PC/AT总线的800倍,PCIE 4.0将支持16.0 Gbps,也即将问世。

    在总线的发展过程中,有多种分类方式。

    按传输速率分类:分为低速总线、高速总线。按业内规律,总线的传输时钟在66 MHz以下为低速总线,高于66 MHz为高速总线。

    按连接类型分类:分为系统总线、外设总线、扩展总线等。

    按适用范围分类:分为内部总线和外部总线。计算机机箱内的总线称为内部总线,如PCI;计算机机箱外的称为外部总线,如连接打印机的USB总线等。而有些总线内外都适用,如SATA为内部总线,而eSATA(external SATA)为外部总线。

    按应用领域分类:有计算机系统应用总线、嵌入式系统应用总线等,PCI为计算机类总线,而CPCI(Compact PCI)则归为嵌入式系统类的应用总线。

    按使用环境分类:分为航天、航空、车载、航载等总线,以满足不同的使用环境要求,如ARINC-429、ARINC-629、MIL-STD-1553B、CAN总线等。

    按传输方式分类:分为并行总线和串行总线,并行总线通常采用1个时钟信号+多位并行数据信号的方式传输数据,如前面的ISA、PCI都为并行数据总线,在一个时钟周期内,传输多位数据;串行总线则将时钟嵌入到数据内,在一个时钟周期内传输1 bit数据,以串行比特流的方式实现数据通信。

    本书关注的是嵌入式系统中的高速串行总线技术。

    串行总线通信正当时

    早期的总线多采用多位数据并行传输方式,通过提升并行数据位宽、数据运行频率,提升总线传输速率,如早期的PC/XT总线数据位宽是8 bit,运行频率为kHz级别,到1999年出现了PCIX总线,其数据位宽是64 bit,运行频率为133 MHz,总线的传输速率达到了1066 MBps。

    总线的并行数据位宽及频率的提升带来了数据传输速率的飞跃,但也带来了其他问题:总线并行数据信号间的同步变得日益困难,且无法解决串扰问题,这导致多种并行总线协议的更新速率越来越慢,耗时越来越长,限制了总线性能的进一步提升,影响处理器性能的发挥,即通过提升总线的并行数据位宽及运行频率,以提升总线速率的方法走到了“死胡同”,业内迫切需要一种新的变革方式。

    2000年前后,多个国际组织将眼光瞄向了基于比特流通信的串行总线结构,多种串行总线标准也如雨后春笋般出世,如现在大名鼎鼎的PCIE、SRIO、SATA、FC等总线,也有推出后不久就“夭折”的,如Starfabric总线。Starfabric总线当时吸引了大量的风投,还推出了Starfabric的协议转换芯片,而最终还是以失败告终——Starfabric总线技术针对性不足。

    目前,在PC领域和嵌入式系统中,基于比特流的高速串行通信总线正全面代替传统的并行数据总线方式,如前期广泛用于PC系统的并行数据总线PCI/PCIX,正被串行的PCIE总线所代替;曾经在存储领域独占江山的ATA(parallel ATA)总线、SCSI总线,分别被串行的SATA(Serial ATA)、SAS(Serial attached SCSI)所代替;与PC领域相对应的工业及嵌入式应用领域,串行总线的应用更是一发而不可收,出现了FC(Fiber Channel)、SRIO(Serial RapidIO)、Aurora等多种协议标准,即使针对ADC、DAC这种专用接口,也吸收了串行总线传输的思想,出现了JESD204协议,以代替传统的基于LVCMOS电平、多位数据线并行的ADC、DAC接口方式。鉴于目前高速串行总线的广泛应用,VITA组织推出了一种针对高速串行总线通信架构的标准——VPX,以规范上述多种串行总线的互连。

    与串行总线的高速、先进相对应的是其开发过程的困难重重,串行的二进制比特流不能提供更多有效参考信息,只能以眼图判断信号完整性,而各种总线的协议分析仪,价格却不够亲民,调试手段有限,针对常用的高速串行总线,如何进行快速开发,尤其是FPGA内的应用开发,一直是业内的难题。本书试图对多种高速串行的共性技术进行提取,并对具体协议加以具体分析,实现过程具体展现,以实现基于FPGA甚至于整个嵌入式系统的高速串行总线的通信。

    FPGA让一切皆有可能

    既然总线是现代通信系统的神经,那相应处理器是就关节了。目前主流的处理器厂商推出的PowerPC、DSP、FPGA等芯片,均含有一种或多种高速串行通信总线接口,如高端的PowerPC、DSP通常含有SRIO及PCIE,有的还含有SATA存储接口。ASIC厂商的目标就是将这些复杂的总线功能做成如傻瓜相机一样,只要存在就会使用,而FPGA则是另类,除了总线的简单验证,还提供了二次开发功能,甚至还能玩“深沉”,DIY一些自主的IP核,可谓男女老少都喜欢,满足高中低各个层次的需求。

    FPGA代替DSP完成密集型运算功能已多见不怪,甚至觉得不这样就是非主流。FPGA内嵌PowerPC及ARM处理器内核,代替外置的PowerPC及ARM独立芯片,完成一些协议/控制解析,似乎也很恰当,FPGA可谓功能强大。而对于各种高速总线接口,FPGA则提供了一种万全之策:基于FPGA内嵌的高速串行收发器GTX可实现多种高速串行总线接口,如SRIO、SATA、FC等。若资金充裕,可购买各种高速串行总线的IP核,使用时比傻瓜相机复杂一点;若智力充裕,则可自己理解协议,编写高速串行总线的IP核,卖给“帝王家”,也是一种生存方式;若资金、智力都不充裕,那是只能寄希望于时间充裕了,好在时间总是可以挤的,挤挤还是有的。

    基于FPGA研究高速串行总线技术,可攻可守,本书中SRIO、PCIE、Aurora为调用IP核方式,而SERDES、JESD204、SATA则为自主开发IP核,而最后的CPCIE、VPX、FC、Infiniband则侧重于嵌入式系统的实现,与FPGA无关。

    本书的内容结构安排

    小编前期只会更新前期关注的PCIE,如果有时间,并且自己确实需要,才会更新其他。

    本书内容分为三篇共11章,另有4个附录。第1章为第1篇,按时间的先后顺序梳理出计算机和嵌入式系统领域曾经出现过并各领风骚数几年的总线,并对总线领域的三次革命加以分析,以力证高速串行总线是目前通信架构的主流,并基于高速串行总线技术的特点及瓶颈,预测总线的后续发展趋势。

    第2篇包含第2~第7章,分别介绍并基于FPGA实现了目前嵌入式系统中常用的串行总线技术,涉及SERDES、JESD、SRIO、PCIE、Aurora、SATA总线。从行文方法上,以概述开篇,回答选题(做什么、为什么、性能如何);接以协议分析,力求简洁清晰,续以基于FPGA的具体工程实现,然后给出测试结果,验证思路,最后给出小结及展望,为嵌入式系统的专项高速串行总线应用提供参考。

    第3篇包含第8~第11章,涉及目前嵌入式系统中的常用总线架构,侧重于整机设计,内容有CPCIE、VPX、FC、Infiniband技术,为高速总线在嵌入式系统整机中的应用提供参考。

    附录A~附录D则收录了本书写作过程中的随笔,希望能从非技术角度讲一点技术问题。

    在整书的编写过程中,文吉、陈远参与编写第1章,任国强、吴威参与编写第6章,任国强、文吉完成全程校对。在整个编委会的共同努力下,我们尽可能多地呈献关于总线,以及IT技术甚至其他相关的知识,以物有所值,可覆盖面广也意味着增加了出错的可能性,我们期望通过本书对总线的基本原理、实现过程及应用实例的介绍,使读者对总线有一种宏观的把握,微观细节上的了解,以起到抛砖引玉的作用。由于作者水平和时间有限,一些不自知的错误,敬候高明的读者指正,作者联系方式为zhangfeng1186@163.com。

    关于参考文献

    本书的参考文献主要来源于Xilinx公司和其他一些官方组织公开的资料,如PICMG、SCSITA、VITA、FCIA等,还有一些引用来源于互联网,出处并不明显或难以联系作者,在此也一并感谢并希望原创作者与编者联系,以便再版时增补。

    关于写作风格

    书中的图表有些仍为英文原版,从技术角度考虑,英文更易理解,故没有译为中文。
    单纯技术是枯燥乏味的,本书在力求准确时,尽量以简洁、轻松的笔调论述,个人所好,不喜可喷。
    除了与总线相关的内容外,本书还以延伸阅读的方式展开了部分具体技术细节,以及对其他知识的扩展,以供感兴趣的读者赏阅。

    本书的读者对象

    本书定位于工程应用,主要针对从事嵌入式系统开发的整机设计人员、终端技术开发人员,以及那些对嵌入式系统、FPGA、总线有更深入理解需求的人员,包含职场新手、研究生和高年级本科生。

    作 者

    2016年10月

    本书创作过程中的随笔

    D.1 没落的贵族——Motorola

    爱君芙蓉婵娟之艳色,若可餐兮难再得,怜君冰玉清迥之明心,情不极兮意亦深。

    Motorola已难再见,多情公子已无情,落寞秀才让人叹。

    创业,冒险创新

    1928年,Paul Galvin创立了Galvin Manufacturing Corporation公司。

    1930年,公司迎来了首次重大突破,推出了首个可以消除引擎盖静电干扰的车载收音机,并且实现了大众市场的商业化,财富迅速积累。

    1947年,鉴于车载音响系统的成功,Galvin Manufacturing Corporation公司改名为Motorola,含义为运动中的声音。

    让Motorola得以维持生计的是他们不断创新的技术,Paul Galvin营造了一种企业文化,鼓励人们去发明、失败、学习、再发明。正是这种勇于承担风险的文化,让Motorola在业界闻名,他们在培训和开发上面投入了很多资源,而且近乎狂热地支持员工发明创造。所以Motorola在当时的消费者电子产品,包括家庭收音机和电视机,以及负责公共安全和防御的相关设备,如警用双向无线对讲机等,都占据绝对领导地位。

    1983年,Motorola推出第一款手机——DynaTAC,引爆了手机通信市场,从此移动手机业务吸引了整个公司、整个行业、整个国家,甚至整个世界,DynaTAC在中国,被称为“大哥大”。
    1994年,Motorola制造了美国市场上60%的移动手机,收入达220亿美元,利润接近20亿美元,在财富500强中排名第23。

    创新无处不在,除了手机业务上的成功,Motorola为质量管控开发了一套系统Six Sigma,可以确保99.99966%的产品没有品质问题。通用电气、IBM、波音等财富500强企业都采用了这套系统。

    守成,固步自封

    在1994年—1997年之间,手机业务让Motorola达到了生意上的顶峰,但成也萧何,败也萧何,手机业务也成为Motorola企业文化中的一颗毒瘤。当公共安全部的员工们还在给警察和消防员销售产品时,手机部门的人却在花天酒地,高唱“我们有的是钱”。

    Motorola一直是数字蜂窝技术的早期开发者,这一技术取代了传统的模拟蜂窝系统,他们的数字网络专利产生大量利润。然而令人不可思议的是,Motorola手机部门并不着急进行从模拟到数字的转型。于是数字蜂窝技术的工程师们发出了特有的抗议方式:不再使用自家手机,而使用由高通(Motorola在电信半导体行业里最大的竞争对手)制造的数字化手机。

    与此同时,一家芬兰的公司浮出水面,它花了四年时间开发数字蜂窝技术手机,并于1998年超过Motorola,成为世界上最大的移动手机制造商,这家芬兰公司就是Nokia。

    创新不再,官僚气息严重,手机技术和数字网络技术脱节,曾经红火的手机业务反而成了Motorola最大的拖累,Motorola在全球范围有60种不同业务,但每个都非常薄弱,没有核心竞争力,2001年,Motorola总收入额300亿美元,却亏损近40亿。

    2003年底开始,Galvin家族决定卖出拥有的Motorola 3%股份,并于数年后,彻底离开了Motorola。离开了创始人Galvin家族的Motorola还是Motorola吗?还是曾经玩命创新的Motorola吗?

    Galvin家族身退后,继任者是Ed Zander。他曾是Sun Microsystems的CEO。他接手Motorola工作之后,哭了,发现Motorola不仅发展缓慢,而且对未来电信技术的融合更是一塌糊涂,为了拯救公司,Zander集全公司于一点,推出了Motorola 的新款Razr手机,性感超薄可折叠,却叫好不叫卖。
    2005年,Zander与好朋友乔布斯合力开发了一款Rokr的手机,并手把手地教会乔布斯如何做手机。
    2007年,当苹果的第一部iPhone推出时,Motorola仍然在卖2年前的Razr手机。

    此后,Motorola决定采用Android系统,并于2009年10月推出Droid的新手机,并在发布的前几个月,销量超过了iPhone。截至2010年年底,经过四年的巨额亏损,手机部门又重新盈利了,但在2011年又被超越,这次不是Nokia,而是三星。

    衰退,鲜有声息

    铱卫星系统

    20世纪80年代末,Motorola推出了铱卫星系统Iridium,建设可以覆盖地球的卫星系统,以此实现蜂窝系统无法实现的通信能力。他们组织了50亿美元的财团进行开发,摩托罗拉自己投入了 26亿美元和许多工程师。90年代末,铱系统终于运行起来了,但是3000美元的手机和一分钟7美元的话费过于昂贵。铱计划在1999年宣布破产,最后以2500万美元被卖掉了,为了弥补财政赤字,Motorola以11亿美元出售了它的一部分半导体业务,这就是后来的ON Semiconductor。

    手机业务

    2011年1月,Motorola决定拆分为两个公司,Motorola Mobility(手机业务)和Motorola Solutions(企业级解决方案)。

    2011年8月,Google宣布以每股40美元,共125亿美元收购Motorola Mobility,并于2013年8月,推出了Google旗下的Motorola手机——Moto X。在美国销量不及预期情况下,Moto X占领了印度和巴西的市场。

    在拥有了Motorola Mobility最为得意的专利后,Google又在2015年1月将Motorola手机相关的业务甩卖给了联想,只有29亿美元,于是联想在国内推出了新Moto X、新Moto G及 Moto X Pro。

    半导体业务

    想当年,金戈铁马,气吞万里如虎。
    Motorola何其辉煌,其PowerPC架构处理器产品与IBM公司不相上下,除了IBM的PowerPC系列,还有Motorola公司的MPC(Motorola PowerPC)——MPC8548、MPC8572、MPC8641。

    2004年,Motorola决定将其半导体业务分拆为一个独立的公司——Freescale,虽然后来Freescale公司推出了P2020、P4080、P5020等处理器,MPC系列仍是其一大支柱,而2015年,Freescale 又被 NXP Semiconductor收购,现在输入www.freescale.com的网址,会自动跳转到www.nxp.com网址去,虽然MPC系列、P系列处理器还在,但已不能再称为是Freescale公司或者更早的Motorola公司的产品了。

    此外,被出售的还有它的电视和无线广播业务、政府与防务业务,以及赖以成名的汽车电子业务……

    除了正常的商业运作外,感情上我们还是不愿意看到Motorola被拆分与甩卖,尤其是像手机与Freescale这样被转手两次,毕竟一个时代就这样过去了。

    再见,Motorola,再一次重温一下经典的logo吧,也许再也不见。

    “灭六国者六国也,非秦也;族秦者秦也,非天下也。……秦人不暇自哀,而后人哀之;后人哀之而不鉴之,亦使后人而复哀后人也。”

    参考文献

    [1]摩托罗拉的衰败.百度文库.
    [2]摩托罗拉.百度百科.
    [3]Motorola.www.wikipedia.com.
    [4]www.freescale.com.
    [5]www.nxp.com.

    D.2 JESD204 协议IP核实现纪实

    2013年,前期跟踪的“十二五”项目陆续落地,对ADC采样技术提出了新的要求,某项目要求实现N(N>10)个ADC通道的160 MHz采样率,单板面积限制下72 mm×132 mm以下。

    已有成熟技术不满足需求:采样率不高,前期项目应用的最高采样率只有65 MHz,按改动最小原则查新后,发现确有类似的同类芯片,可满足采样率160 MHz要求,但N个通道,需要N个ADC芯片。带来了第二个问题,面积超标,无法解决,陷入停顿。

    经过大量调研,最终选取了基于JESD204协议的实现方案,(见书中图3-39和图3-40),难度大,却唯一可行。

    基于JESD204协议的ADC采样数据,可通过FPGA内的高速串行接口GTX(仅一对差分线)直接进入FPGA,完美的接口形式,看着就舒服,让人磨刀霍霍,跃跃欲试。

    问题来了,JESD204协议如何实现?购买国外的IP核,还是自已动手编写?鉴于项目无法忍受购买IP核的长周期,我们决定自己开发。

    资料不易得,得到JESD204协议的文档后,只有一个文档,上马开弓。

    人生不如意,十之八九。JESD204开发过程,一直不如意。先后遇到了电源驱动能力不够、纹波过大、器件损坏、风扇影响波形、线损过大等多种闻或未闻的疑难杂症,排除外围因素后,还有一个棘手问题,ADC不是智能器件,只能发送数据,在FPGA中如何判定解析出的ADC数据是正确的,若不对,是FPGA解析的不对,还是ADC本身发出的数据就不对?

    当山穷水复的时候,我们怀疑过,能否做出这种新出现的IP核,是否需要找人合作,再一想,不就是一个IP核吗,其文档也不过区区145页,连1000多页的SATA协议都做出来了,这个JESD204还能算什么?于是满血,start again,again and again……

    冲锋的号角毅然响起,坚定的信念没有动摇,在忙了近两个月之后,终于在FPGA中看到了一个让人心动的正弦波,那感觉真是平滑细腻有光泽,想不笑都难。

    临危不惧,受命即出,成功即归,不矜不伐。

    我们认为,采用高速串行传输方式,基于JESD204协议,是ADC采样数据传输方式的必然选择

    D.3 由而立到不惑

    当繁复的工作淹没了激情,最初的理想已渐行渐远,休戚与共,波澜不惊,甚至于连探索未知的勇气都没有,我不禁要问,这就是我曾经朝思梦想,为伊憔悴的科研工作,这就是我以后为之奋斗,实现价值的精神寄托?

    不,绝不!

    为什么会有焦虑?为什么会有不安?为什么会有不断的疑惑?为什么会不断地质询自己?因为我们还有理想,还在追寻,还要积跬步致千里,还要上九天揽月,下五洋捉鳖。

    我们为什么要创新,因为职业规化需要。

    已过而立之年,再三、五、十年之后,按正常的职业发展规化,40岁左右,应为单位中坚,中流砥柱,试问,凭什么?徒长的年龄?徒增的工龄?年龄再涨,也涨不过70后,精力自然也弱于了90后,在前有堵载(70后),后有追兵(90后)的现实面前,创新,唯有创新,去开拓一个新领域,研究一项新技术,占领技术制高点,尽可能高,尽可能多,才能笑傲江湖,独孤不败,那才是真正的科研工作,令人朝思梦想,为伊憔悴,为之振奋,奋斗终生。

    我们为什么要创新,因为心路成长需求。

    工作安排大多任务紧、强度大,有张没弛,但这仍然不能阻挡我们勇于创新的决心,在项目中要勇于攻克前辈还没有攻克的技术点,这才是技术发展的潮流。人云亦云,能有多少进步?有多大的风险就有多大的机遇,当你众里寻她千百度,找到一个突破点时,那才是燎原的星星之火。

    创新,直观感觉是解决了技术难题,转化了经济效益,更深入是对知其然,亦要知其所以然的遵循,以管窥蠡测,推陈出新;是对“路漫漫其修远矣,吾将上下而求索”的坚守,以有所寄托,有所突破。

    创新,对于个人,要有独立的人格,有灵魂,有独立空间,使思想自由,以充分发挥主观能动性;于单位,要给予个人相对宽松的环境,有激励,要充分信任,攻克难关非一日之攻,要集中人力/精力,一鼓作气,使技术见底,不可使之间断,反复。

    创新,要趁早,不能白了头,昔往日,忆流年,悔成伤。

    昔我去者,杨柳依依;今我来也,雨雪纷纷。当我们两鬓斑白业已成霜的时候,再回首,是谈笑风生一览众山小呢?还是临川慕鱼徒有感伤?

    有理想的人海阔天空。试问,你还有理想吗?是每年多出的几个铜钱吗?还是心系远方,志在高翔。

    D.4 思想自由

    君君、臣臣、父父、子子。

    语出《论语 颜渊》:齐景公问政于孔子(前551—前479),孔子对曰:“君君、臣臣、父父、子子”。

    300年后,西汉,董仲舒(前179—前104),提出“大一统”概念:将自然界的和谐统一运用到思想领域,要求思想统一,汉武帝推行“罢黜百家,独尊儒术”,从此,儒家思想成为正统、权威,惶惶不可欺,横行2000多年,直至公元后的1919年,五四运动,胡适提出“打孔家店”(是打,而非打倒),对以儒家文化为代表的旧文化、旧主义进行批判,从此拉开了新文化运行的大幕。陈独秀创刊《新青年》,宣传新思想,蔡元陪提出“思想自由,兼容并包”,多种主义迎来了黄金时期,再现百家争鸣,直到抗战的全面胜利。

    君君、臣臣、父父、子子。改朝换代了不止24史,而儒家文化却浸入骨髓,一枝独大了两千多年,究其原因,可能是习惯了“君权神授”,家长制,事事自上而下,一切行动听指挥,少动脑筋,大家都省事,就像安抚幼儿园的小娃娃一样,今天乖没乖,要听老师话。

    80年代后,社会逐渐步入正轨,即使要讨论姓资姓社的问题,也要先吃饱饭再说,逐渐归还了原本属于个体的自由,个体积极性调动了起来。而社会总是在不经意间又进步了一点点,不知不觉间请旨研究从幕后来到了台前,就如同猴子原本四条腿爬行,无意间发现三条腿也可以走,解放了一只手出来,可摘到更多的果子,屁颠屁颠地欢欣雀跃好大一阵子,旋即又哀伤了起来:只解放了一只手,可活动到更大的范围,吃到更多的果子,可如果想吃到更多更多的果子呢?另一只手为什么也不解放了呢?

    从四条腿爬行到三条腿半直立行走是积淀,从三条腿半直立到两条腿的直立行走,是自由。

    既然法无禁止则当行,那不奉旨,不请旨,先干了再说,是不是也可行呢?这就是本书的来由,突然发现这个看似按部就班的社会,已经越发开明,远比我们想像的自由。

    独立之精神,自由之思想。

    D.5 再议八股

    读书人,最不济,

    背时文,烂如泥,

    国家本为求才计,谁知道变成了欺人计,

    三句承题,二句破题,摇头摆尾,便道是圣门高第。

    流行于明清的八股文,起初只是文章的一种可选格式,由破题、承题、起讲、入题、起股、中股、后股、束股组成,后四部分均包含二股排比或对偶,其文字繁简、语句长短、声调高低要严格成文,选题也只有四书五经,观点须与圣人同,不能恣意推新,以免亵渎经典。

    作为一种可选的写作套路,本无可厚非。若只是存在,选或不选均可,就像诗词曲赋一样,但当八股成了取士的唯一标准时,同样也就走向了衰亡:八股的标准过于严苛完善,丧失了改进的余地,最终迎接它的只能是废除。所以当1911的辛亥革命爆发时,清朝廷东南自保,全国观望,革命之顺利,亦超出革命党人的预期,究其原因,在于民众未必都识得“民主、民权、民生”的先进性,只是对清廷审美疲劳,想迫不及待的换一个而已。

    所以八股文的命运同样如此,八股文断不可取,断不可再取。

    标准的技术文章,就像邻家之女一样“增之一分则太长,减之一分则太短”,要求简洁准确,婉约大方。当年大学的线性代数,一上来就是特征值、特征向量、奇异矩阵三个定义,紧跟着三个定律。足够简洁,却还是感觉云山雾绕脚不着地,直到最后要结课了,才发现线性代数原来是对线性方程组求解,所以力求简洁准确的前提条件是要先理解,好消化。

    按照这个思路,近年来出了一些看上去“风格模糊”的书,如《人类简历》,是历史却比教科书轻松;《明朝那些事儿》是纪实抑或小说还是玄幻?傻傻分不清;《数学之美》讲数学原理用的却是大白话而非公式;《盛世的疼痛》写史则具有散文的神美;甚至IT行业的专业技术书《5G通信之道》、《FPGA之道》、这个“道”是通信链路的Channel、Lane,还是老子的“道可道,非常道”?而《MFC之道》更是以“横看成岭侧成峰”开头,颠覆了我们对于专业书刊的认知,不仅仅在销量上。

    既然是科技图书,我们也在力求简洁准确,并增加了一些其他的Interesting的故事、纪实、感悟等,其目的就是要让这个专业书刊,有观点、有态度、有情感。

    附《时文叹》原文:

    时文叹

    (清)徐大椿

    读书人,最不济,

    背时文,烂如泥,

    国家本为求才计,谁知道变成了欺人计,

    三句承题,二句破题,摇头摆尾,便道是圣门高第,

    可知道三通四史,是何等文章,汉祖唐宗,是哪一朝皇帝?

    案头放高头讲章,店里买新科利器,

    读得来肩高背低,口角唏嘘,甘蔗渣儿嚼了又嚼,有何滋味!

    辜负光阴,白白昏迷一世,就教他骗得高官,也是百姓朝廷的晦气!

    后记

    展开全文
  • 并行方式主要用于近距离通信。计算 机内的总线结构就是并行通信的例子。这种方法的优点是传输速度快,处理简单。串行数据传输时,数据是一位一位地在通信线上传输的,先由具有几位总线的计算机内的发送设备,将几位...
  • 串行总线的概念

    2021-06-17 22:51:48
    由于并行总线会占用很多引脚,现在数字系统中有多种串行总线代替了一些并行总线。出去占用引脚少之外,串行总线还有别的有点,使用差分信号、检错纠错能力好、可以实现全双工数据和控制流,部分支持分割shi ...
  • 有时,需要移动的数据量超出一个串行链路所能容纳的范围。在这些情况下,并行使用多个链路来传输数据。完成此操作后,输入流必须对齐。此过程通常称为通道绑定
  • 可能对于数字工程师来说,本文过于硬件化,过于物理化,应该是一般硬件工程师应该关注的内容,但作为FPGA上的数字工程师来说,我们几乎每天都与高速串行总线打交道,而你却不知无论是X家提供的或者A家提供的...
  • 表1 车用串行总线标准概览表 表1是一张总表,我们分项介绍之: 一、APIX接口 APIX接口的全称是Automotive pixel link,是德国公司Inova主推的,发展到现在已经到了第三代,称之为APIX3接口标准,最高带宽可达12Gbps...
  • UART总线是异步串口,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上有两根线,一根用于发送,一根用于接收。 显然,如果用通用IO口模拟UART总线,则需一个输入口,一...
  • spa1)数据总线:数据总线用于传递数据信息。此处的“数据”是广义的,既能够是通常意义上的数据(例如送往打印机上的打印数据),也能够是指令代码(如将磁盘上的程序加载到内存),还能够是状态或控制信息(如外设送往...
  • 文档介绍:计算机组成原理(第六章系统总线第六章系统总线第一节总线的基本概念一、总线的分类1.总线:计算机中连接功能...4.总线的分类:①按传送格式分为:串行总线、并行总线;②按时序控制方式分为:同步总线、异步总...
  • 为了对芯片的资源更好地了解,开发者一般在系统设计前搭建一个简单的硬件电路并编制相应的软件对其测试,待性能验证后再确定最终的设计方案。本文根据这一需要设计了一个用于串行总线芯片测试的实验平台。该平台以PC...
  • 一、主板芯片组和总线的认识服务器的核心是主板,而主板的核心是芯片组。所以芯片组对于服务器而言十分重要。现在市场上绝大多数的服务器芯片组都是英特尔的芯片组如果把服务器比作一个人,那么CPU就是它的大脑,...
  • 【奥鹏】[吉林大学]吉大19秋学期《计算机接口技术》在线作业一试卷总分:100 得分:100第1题,串行通信主要用于( )A、近距离通信系统B、远程通信系统C、并行通信系统D、局域网通信系统正确答案:第2题,主机与外设传送...
  • A、计算机内多种设备共享的数字信号传输通路,B、广泛用于PC机,是与调制解调器或外围题目:系统总线通常采用()的方式传送数据。A、串行,B、并行,C、分时,D、分频考点:计算机体系结构题目:32位微处理器的32是指()。...
  • 总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号...
  • 挂个链接:15kg串行总线智能舵机数字 机器人机械手臂(没收钱哈,纯自己觉得挺好的,推荐一下) 舵机优势 有位置反馈,这对做机器人、机械臂十分有帮助,可以进行运动学解算。 驱动板 总线协议 驱动库 ''' @...
  • 前言SERDES可以工作在多吉比特的速率,同样作为串行总线的SPI却常常在十兆或数十兆比特的速率,为何差别这么大呢?SERDES的特别之处在哪里?用了什么技术?这里来揭秘SERDES高速面纱!多相数据提取电路采取多相位...
  • USB简介USB是英文UniversalSerialBUS(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB的电气特性USB连接器...
  • 系统总线包含有三种不同功能的总线,即数据总线DB(DataBus)、地址总线AB(AddressBus)和控制总线CB(ControlBus)”数据总线DB用于传送数据信息。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I...
  • 1、首先看看它名字真正的含义:  SPI(Serial Peripheral Interface:串行外设接口);  I2C(INTER IC BUS:意为IC之间总线)  UART(Universal Asynchronous Receiver ... USB:Universal Serial BUS(通用串行总线
  • AT24C02(I2C总线)_AT24C02数据存储&秒表(定时器扫描按键数码管)小白极客的51单片机笔记(自用)第一部分—存储器介绍第二部分—AT24C02存储芯片介绍第三部分—I2C总线介绍(重点)第四部分—AT24C02数据帧...
  • 简介1. 认识数据存储芯片HM62256、IP核、LPM开发流程和平台实操:C级任务(80%)实操:B级任务(90%)实操:A级任务(100%)2. IIC串行总线时序分析实操:S级任务(110%)3. 提交数字系统实验——硬件语言描述训练3...
  • 计算机总线-1-baike

    千次阅读 2021-06-17 12:43:22
    平时在板卡上的样子就是一根根的印刷线路,也就是导线,以及一些芯片(总线控制器74LS系列里面就有,其实就是一个个三态门,可控制通断,负责把一个器件连上总线或者与总线断开,保证总线上同时只有一个器件在发送...
  • 计算机组成原理(第六章系统总线 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!11.90 积分第六章 系统总线第一节 总线的基本概念一、总线的分类1.总线:计算机中...
  • 串口通信基本概念(一)——串行与并行通信,同步与异步通信 一、串口通信简介 串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)...它们的主要区别在于

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,386
精华内容 10,554
关键字:

串行总线主要用于_