《SRIO网络的设计与应用》由会员分享,可在线阅读,更多相关《SRIO网络的设计与应用(69页珍藏版)》请在金锄头文库上搜索。
1、SRIOSRIO网络的设计与应用网络的设计与应用主要内容nRapidIO概述概述nC6000DSP的SRIO接口设计nSRIOSwitch的电路设计nSRIO网络路由的配置nSRIO接口的使用方法nSRIO电路PCB设计与调试nC6000DSPS的SRIO软件设计n基于SRIO互联的系统实例1.RapidIO概述n业界开放标准,点对点嵌入式互联技术;n具有低时延、宽带宽、低传输开销、低管脚数等特点;n采用硬件进行错误检测和恢复具有很高的可靠性;n工作频率和端口宽度具有可升级性;n采用分层的架构,物理层、传输层和逻辑层,层与层之间的功能相对独立,便于各层灵活扩展。1.RapidIO概述nRapi
2、dIO在嵌入式系统中的位置1.RapidIO概述n基于RapidIO互联的系统结构1.RapidIO概述nRapidIO协议的分层结构1.RapidIO概述nRapidIO系统中数据包的传输流程WhenToUseRapidIORapidIOOnthebackplane-Futureproof-Highthroughput-Lowdeterministiclatency-Guaranteedpacketdelivery-PrioritizedtrafficRapidIOforfaulttolerantSystems-Flexiblesparingstrategies-Continuedsyste
3、moperationintheeventofsinglefaults-Rapiddetectionoffaults-FlexibleresponsetofaultsRapidIOonboardasthesingle,simpleinterconnectamongallboardcomponentsProtectyourSWinvestment-S-RIOlogicallayerremainsthesameacrossdifferentphysicallayer-RapidIOscalesperport-SavessystemtotalpowerSerialRapidIOEcosystemTI,
4、Freescale,AlteraandLSIhaveannouncedS-RIOGen2productsothersuppliersofS-RIO1.3haveGen2informationavailableunderNDAAxxiaCommunicationsProcessorDSP:severalproductsInTCI64xxfamilyDSP,PowerQUICC&QorIQmulticoreXLS416familyMulticoreProcessorFPGA:ArriaandStratixFamilyFPGA:Virtex4/5/6familiesFPGAWirelessBaseb
5、andProcessorDSPOct22xxPowerPCbasedprocessors460GTSwitches,Bridges&IPCPSandTsiFamilyNetworkProcessorOcteon2familyNetworkProcessorWinPath3RapidIOEnabledEndpointsVendorDeviceS-RIO GenMax S-RIO SpeedDigital Signal ProcessorsTexas InstrumentsTCI6482 (Himalaya)13.125GbpsTexas InstrumentsTCI6487/6488 (Fara
6、day)13.125GbpsTexas InstrumentsTCI645513.125GbpsTexas InstrumentsTCI6484 (Curie)13.125GbpsTexas InstrumentsTMS320C66x (Nyquist)25GbpsFreescaleMSC8144, MSC815625GbpsFreescaleMSC8157/MSC815825GbpsProcessorsFreescaleP4080 QorIQ13.125GbpsFreescaleMPC854313.125GbpsFreescaleMPC854813.125GbpsFreescaleMPC86
7、41/D13.125GbpsFreescaleMPC857213.125GbpsCaviumOcteon II CN66XX, CN63XX25GbpsAMCC / Applied MicroPPC460GT13.125GbpsNetlogic / BroadcomXLS 616/416/40813.125GbpsLSI LogicStarCore SP2704/SP217613.125GbpsMindspeedTranscede 400013.125GbpsWintegraWinpath 313.125GbpsFPGAsXilinxVirtex II, Virtex II Pro, Virt
8、ex 4 FX/5LXT, Virtex 5, Virtex 6, Spartan 61/23.125Gbps/6.25GbpsAlteraArria II, Stratix/Stratix II GX, Stratix IV GX, Stratix V GX1/23.125Gbps/5GbpsLatticeLatticeECP3, LatticeECP41/23.125Gbps/6.25Gbps主要内容nRapidIO概述nC6000DSP的的SRIO接口设计接口设计nSRIOSwitch的电路设计nSRIO网络路由的配置nSRIO接口的使用方法nSRIO电路PCB设计与调试nC6000DS
9、PS的SRIO软件设计n基于SRIO互联的系统实例2.C6000DSP的SRIO接口设计nC6455SRIO接口简介符合RapidIO互联协议1.2标准;在逻辑层上支持I/Osystem和Messagepassing,不支持GlobalSharedMemory;可配置为1个4X的端口或4个1X的端口,端口速率1.25Gbps、2.5Gbps或3.125Gbps;能够响应和发送门铃方式的中断;支持8bits和16bits两种大小的器件ID;2.C6000DSP的SRIO接口设计nC6455SRIO外设结构2.C6000DSP的SRIO接口设计nC6455SRIO管脚与互联2.C6000DSP的S
10、RIO接口设计n基于SRIO互联的4C6455板卡2.C6000DSP的SRIO接口设计nC6678SRIO接口简介符合RapidIO互联协议2.1.1标准;在逻辑层上支持I/Osystem和Messagepassing,不支持GlobalSharedMemory;可配置为1个4X、4个1X、2个2X、1个2X+2个1X端口,端口速率1.25Gbps、2.5Gbps、3.125Gbps和5Gbps;能够响应和发送门铃方式的中断;支持8bits和16bits两种大小的器件ID;支持组播ID;2.C6000DSP的SRIO接口设计n基于SRIO互联的5C6678板卡主要内容nRapidIO概述nC
11、6000DSP的SRIO接口设计nSRIOSwitch的电路设计的电路设计nSRIO网络的配置nSRIO接口的使用方法nSRIO电路PCB设计与调试nC6000DSP的SRIO软件设计n基于SRIO互联的系统实例3.SRIOSwitch电路设计nTundraTsi568Switch芯片3.SRIOSwitch电路设计n面向DSPFarm应用3.SRIOSwitch电路设计n主要电路设计JTAG电路I2C电路工作模式选择端口开关控制主要内容nRapidIO概述nC6000DSP的SRIO接口设计nSRIOSwitch的电路设计nSRIO网络的配置网络的配置nSRIO接口的使用方法nSRIO电路P
12、CB设计与调试nC6000DSP的SRIO软件设计n基于SRIO互联的系统实例4.SRIO网络的配置n交换机与节点的区别交换机:路由表;存储与转发;没有ID,Hopcnt;节点:数据包与维护包收发;有ID;n节点ID的配置唯一性;自行分配或者Host分配;源ID与目的ID;大ID和小ID4.SRIO网络的配置nC6455SRIO的初始化4.SRIO网络的配置nSwitch路由表的配置1)JTAG配置;2)EEPROM配置;3)Host维护配置。5.SRIO接口的使用方法主要内容nRapidIO概述nC6000DSP的SRIO接口设计nSRIOSwitch的电路设计nSRIO网络的配置nSRIO
13、接口的使用方法nSRIO电路电路PCB设计与调试设计与调试nC6000DSP的SRIO软件设计n基于SRIO互联的系统实例6.SRIO电路PCB设计与调试n设计高速串行电路的相关基本知识;n高速串行电路的设计流程;n高速串行电路PCB设计注意事项;nSRIO的调试方法;nSRIO调试可能出现的问题及解决n其它6.1设计高速串行电路的相关基本知识1).SRIO信号特性:a.频率高:1.25Gbps,2.5Gbps,3.125Gbps.b.信号翻转快:8b/10b编码的目的是通过足够的翻转来提取时钟;c.利用模拟的SERDES驱动低摆幅的CML缓冲器,在特性上类似于模拟和射频信号;CML(Curr
14、entModeLogic)n与LVDS,ECL同为高速信号传输电平标准;nCML:CML电平是所有高速数据接口中最简单的一种。其输入和输出是匹配好的,减少了外围器件,适合于更高频段工作。nVPP一般为800mV,可以通过芯片内部寄存器设置,SRIO物理层规范规定ShortRun情况下为500,1000mVpp,LongRun情况下为n800,1600mVpp,nCML之间的连接分两种情况:当收发两端的器件使用相同的电源电压时(收端和发端具有相同的共模电压),CML到CML可以采用直流耦合方式,信号线上可以不加任何耦合器件;当收发两端器件采用不同电源电压时,必须使用交流耦合,中间加隔直电容。一般
15、为0.1u或0.01uf0402封装或者更小封装的陶瓷电容。以C6455和Tsi568为例。C6455SRIO供电为1.25V,Tsi568SRIO供电为1.2,1.5V,它们之间互联就应该加隔直电容;C6455之间互联可以不加隔直电容。6.1高速电路设计流程1)制定设计目标:计算能力、互联带宽、接口形式、拓扑结构、板型、功耗等等;2)芯片选型和实施方案:确定主要器件型号,围绕设计目标制定实施方案,越详细越好;最好是根据实施方案就能够画出原理图;3)充分挖掘芯片的详细资料和调试工具EVM板的原理图、PCB及器件选型,如SpectrumC6455EVM板的资料就非常全面;Tsi568A这方面的资
16、料也很全面。芯片的勘误表等;勘误表有效的避免设计失误。如C6455关于PCIReset,WarmReset和PoweronReset的勘误。在调试工具上,Tsi568的主机调试软件就很好用。4)原理图设计(细节决定成败!)充分参考EVM的设计(能抄的就抄);有效避免芯片的勘误;去藕电容的数量、容值和封装等严格按照芯片手册设计;检查交流耦合电容、LVDS端接、LVPECL端接、Open-drain的上下拉电阻、电源的虑波等细节。画完之后除了自己检查最好还有其他人Review。5)PCB设计a.建立封装;(每一个工程都应有独立的PCB库)b.绘制板框;设置禁布区;c.合理布局主要器件并估计走线层数
17、;d.综合各芯片对电源/地的要求确定平面层数;e.按照SI的原则考虑叠层,优先保证高速串行电路的SI;f.确定好每层的走线,电源地平面的划分,形成文档;g.设计单端走线线宽、差分线的线宽和间距、过孔的参数;(差分线线宽和间距设置的考虑因素)h.把叠层、各层单端线宽、差分线宽和间距、阻抗控制要求、板厚要求及其他要求发送给制板商,要求他们评估可行性,按照他们的反馈作调整,达到满足己方的设计目标并且制板商也能制造的目的。(这个过程很重要)l.前仿真,确定端接形式、阻值大小等m.开始小器件的布局,包括电容、电阻;(注意端接电阻、交流耦合电容、去藕电容的位置)n.设置DesignRules,包括各种间距
18、;o.开始PCBLayout,走线并划分电源地平面;p.连接性和设计规则检查;q.后仿真,局部调整;r.出Gerber文件;s.用CAM350检查Gerber文件;t.投板(Gerber文件+制板要求);几点说明:1).阻抗控制不需要自己根据制板商提供的资料在hyperLynx里设置和调整,不同制板商的工艺不尽相同,只有他们最了解自己的工艺,所以对于客户只需跟制板商提需求,然后根据制板商的反馈设计板卡;2).SRIO和GbE的仿真,一般的研发者不具备条件。C6455的IBIS模型里没有SRIO管脚的仿真模型,Tsi568的IBIS是模型不是Tundra提供的,而是由第三方公司建立的,一般客户很
19、难得到。HyperLynx在超高速信号的仿真上准确性受到质疑。3).芯片厂商的器件手册提供了完整的SRIO信号在PCBLayout指导,结合设计者在SI方面的知识完全可以在不仿真的情况得到较好的效果。4.高速串行电路PCB设计注意事项1).从TI推荐的C6455板卡最小叠层看SRIO走线层的分布SRIO信号走在顶层和底层,其他慢速信号走在内层。原因有二:1.表层的微带线有利于高速信号的传输,并且抗干扰性较好;2.紧挨着完整的地平面作为参考平面,有利于信号的回流和屏蔽;2).SRIO的差分阻抗必须保持在100欧;3).TIC6455的封装可以直接从网站下载;4).过孔对阻抗和SI有影响(如何设计
20、合理的孔的大小和铜环的厚度可以参考文献:Tsi568ASerialRapidIOMulti-PortSwitchLayoutGuidelines),TI推介了8-18的过孔;5).TI推荐AC耦合电容为容值为0.1uf,封装0402或者更小封装电容,AC耦合电容放置越靠近接收端越好。而Tsi568推荐0.01uf。实际调试中两种容值都用过,很难区分哪一个更好;最好的办法是C6455用0.1uf,Tsi568用0.01uf;6).TI在说明SRIO信号走线的时候,把信号线分为三段:接收端,发送端和中间联线;(接收端:接收焊盘到耦合电容;发送端:发送焊盘到BGA区域之外);它希望发送端和接收端的走
21、线能够直接拷贝它的;接收端,BGA焊盘到电容焊盘直接的走线必须在TOP层(即没有过孔),电容的另一端可以存在过孔;走线的宽度和间距设置原则为保持差分阻抗100欧姆;发送端的出线采用屏蔽效果较好的内层;从实际情况看也是有效的。7).中间连线的走线与相关器件的位置有关,但是必须遵守以下原则:n差分对内两根线的长度差在保持在50mils之内;(最好能够控制完全等长;1.长度差异比间距变化更能影响信号质量;2.特别是板间互联的时候会加剧长度的差异,造成信号质量的进一步恶化)n没有分叉;n不要长于12inches;(不同的器件会有不同的要求,一般Switch芯片驱动能力更强,信号质量更好)n保持100欧
22、的差分阻抗;n不要有多于两套的过孔(发送端的过孔除外)n与其它信号线保持2倍差分间距以上的距离;(Tsi568推荐的是5倍)n只在板内连接,不能用电缆或者连接器;(这一条基本无效,TIDSK上的SRIO通路就是两块子板通过AMC连接器连接;另外做过试验将TMS320C6455与TSI568通过cPCI机箱二次底板互联在3.125Gbps的速率下仍能保持较好的通信质量;但是另外一个试验室的FPGAVII-PRO与TSI568通信,在2.5Gbps的情况下连接不稳定;所以跟具体器件的信号质量有很大的关系)8).时钟设计时钟设计在高速串行电路设计中尤为重要。时钟的稳定性决定了高速串行电路的稳定性。J
23、itter如下所示:C6455的对SRIO时钟的要求:Tsi568对时钟的要求:S_CLK_1:312.5MHzS_CLK_2:250MHz时钟的支持的电平标注:LVDSLVPECL高频时钟的产生:1.直接使用高精度的差分晶振;2.高稳定性的晶体+高性能的时钟合成器件;9).DSP和Switch使用同一个复位;10).PHY芯片是数模混合芯片,PHY芯片的资料会对器件布局、电源/地平面处理作出要求,PHY芯片的模拟端为四对差分线,一般要求在PHY芯片管脚处有上拉和去藕,并且差分阻抗保持为100欧姆6.5SRIO调试方法1).正确配置DSP和SwitchSRIO的工作模式;如都工作在4Lanes
24、,1.25Gbps(注:DSP的配置程序在其SRIO的文档中有详细的介绍,拷贝之后根据实际情况稍作改动就可使用;Switch的配置可以通过配置引脚)2).如何判断SRIO物理层的连接已经建立;查询SPn_ERR_STAT的PORT_OK位;或者查询Switch中相应的寄存器;3).访问Switch中的寄存器两条途径:a.DSP作为Host发起对Switch的配置访问;b.通过JTAG访问;Tundra公司提供了主机软件,可以通过并口访问Switch,但是需要制作/购买一条下载线;4).如何通过Switch进行数据包的传输;路由表的配置;5).路由表配置的三条途径:a.DSP作为Host的动态配
25、置;b.主机软件通过下载线实时配置;c.将路由表信息存在EEPROM中,上电后自动加载;6.6SRIO调试中可能的问题及解决1.物理层上建立连接a.确认DSP和Switch物理层配置是否正确;b.用高采样率的示波器观察波形和眼图;(泰克)c.如果DSP与Switch之间的SRIO信号线很长,可以考虑调整它们驱动信号的幅度;c.采用芯片提供的传输预加重和接收均衡功能传输预加重:传输预加重:将高频加入传输信号,以解决信号衰减及端点间相移的问题接收均衡:接收均衡:运用增强器传输功能,补偿因电路板及背板引起的高频传输损耗及相移主要内容nRapidIO概述nC6000DSP的SRIO接口设计nSRIOS
26、witch的电路设计nSRIO网络的配置nSRIO接口的使用方法nSRIO电路PCB设计与调试nC6000DSP的的SRIO软件设计软件设计n基于SRIO互联的系统实例C6455的的SRIO软件开发软件开发nSRIO模块的初始化nDirectIO模式下的数据传输nDoorbell中断的实现7.1SRIO模块的初始化nC6455SRIO模块框图7.1SRIO模块的初始化nC6455SRIO初始化过程使能相关模块n全局使能nPort03使能nLSU,MAU;TXU,RXU使能SERDES的配置nPLL配置:配置link速率nReceiver配置:EQ,INVPAIR,RATEnTransmit配置
27、:DE,SWING,INVPAIR,RATE7.1SRIO模块的初始化nC6455SRIO初始化过程SourceID的配置nRIO_DEVICEID_REG1nRIO_DEVICEID_REG2nRIO_BASE_ID操作能力的配置n源操作能力:RIO_SRC_OPn目的操作能力:RIO_DEST_OP使能IOnRIO_SPn_CTL7.1SRIO模块的初始化nC6455SRIO初始化过程等待底层连接建立nRIO_SP0_ERR_STAT:Portok!使能逻辑层数据流7.1SRIO模块的初始化nC6678SRIO初始化过程与C6455的不同只能选择Core0进行SRIO初始化需要对PSC进行
28、配置,以使能SRIOPowerDomain和时钟对TX、RX和PLL的设置之前需要通过KICK寄存器进行解锁,配置完后需要锁定;7.2C6455DirectIO数据传输nLoad/Store数据传输框图数据传输框图7.2C6455DirectIO数据传输nLoad/Store模块的数据流模块的数据流7.2C6455DirectIO数据传输nLoad/Store寄存器寄存器7.2C6455DirectIO数据传输nLoad/Store寄存器的时序寄存器的时序7.3C6678DirectIO数据传输nLoad/Store寄存器寄存器17.3C6678DirectIO数据传输nLoad/Store寄
29、存器寄存器27.3C6678DirectIO数据传输nC6678DirectIO的特点SrcID_MAP选用16个RIO_DEVICEID_REGn的内容作为SOURCEID,针对多核应用;C6678的LSU一次最多可发送1MB,效率高(C6455为4KB)C6678具有32组shadowregister,每个LSU可对应若干组shadowregister,可同时启动多组传输设置;具有具有LCB和LTID,可区别对同一LSU不同shadowregister的操作及其返回结果;当传输不成功的时候,具有RESTART和Flush的功能。7.3Doorbell中断的实现n初始化Doorbell中断与
30、一般的中断初始化基本相同有8个INTDST,分别为07,它们可选择的中断事件为20,21和22,通过INTMUX选择具体的中断号需要额外设置的寄存器:nDOORBELL0_ICCR:InterruptConditionClearRegisternDOORBELL0_ICRR:InterruptConditionRoutingRegistersnINTDST0_RATE_CNTL:InterruptRateControlRegister7.3Doorbell中断的实现n发送Doorbell中断在LSU_reg5中设定Packettype=0xA0;在LSU_reg5的DrbllInfo中添加信息;nDoorbell中断服务子程序与普通中断服务子程序相同通过DOORBELL0_ICCR清除中断标志通过设置INTDSTn_RATE_CNTL以便及时响应下一个中断8基于SRIO互联的系统实例nSAR-GMTI处理机8基于SRIO互联的系统实例nISAR实时成像处理机8基于SRIO互联的系统实例n图像处理子系统实物照片8基于SRIO互联的系统实例n图像处理子系统原理框图结束语结束语谢谢大家聆听!谢谢大家聆听!69