您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

FPGA与DSP的高速通讯接口计划与实现

发布日期:2011-05-25

  在雷达信号处理惩罚、数字图像处理惩罚等范畴中,信号处理惩罚的及时性至关紧张。由于FPGA芯片在大数据量的底层算法处理惩罚上的上风及DSP芯片在巨大算法处理惩罚上的上风,DSP+FPGA的及时信号处理惩罚体系的应用越来越遍及。
 
  ADI公司的TigerSHARC系列DSP芯片浮点处理惩罚性能良好,故基于这类。DSPDSP+FPGA处理惩罚体系正遍及应用于巨大的信号处理惩罚范畴。同时在这类及时处理惩罚体系中,FPGADSP芯片之间数据的及时通讯至关紧张。
 
  TigerSHARC系列DSP芯片与外部举行数据通讯重要有两种方法:总线方法和链路口方法。链路口方法更得当于FPGADSP之间的及时通讯。随着及时信号处理惩罚运算量的日益增长,多DSP并行处理惩罚的方法被广泛采取,它们共享总线以相互映射存储空间,要是再与FPGA通过总线连接,势必导致FPGADSP的总线竞争。同时采取总线方法与FPGA通讯,DSP的地点、数据线引脚很多,占用FPGA的I/O引脚资源太多。而采取链路口通讯不但能有效缓解DSP总线上的压力,并且传输速率快,与FPGA之间的连接相对也少得多,故链路口方法更得当于FPGADSP之间举行及时数据通讯。
 
  参考文献[3]给出TS201与TS101的性能比较,但没有针对两者的链路口举行细致先容,本文对两者的链路口举行了过细的阐发和比较。文献[4]所计划的征求体系中,DSP与FGA的通讯仅限于FPGA发、TS101收的单工通讯;文献[5]给出了FPGA内部没计TS101链路口的框图,但只给出了大略的先容,无法给计划者以参考。本文采取Altera公司Cyclone系列芯片EP1C12实现了与TS101/TS201两种芯片的链路口的双工通讯,并给出了详细的计划实现要领。此中TS101的计划已经告成应用于某信号处理惩罚机中。
 
  1 TS101和TS201的链路口阐发与比较
 
  TS101和TS210都是高性能的浮点处理惩罚芯片,如今两者都遍及应用于巨大的信号处理惩罚范畴。TS201是继TS101之后推出的新型芯片,核时钟最高可达600MHz,其种种性能也相对优于TS101,并且TS201的链路口采取了低压差分信号LVDS技能,功耗更低、抗噪声性能更好。表1列出了两种芯片链路口性能的细致比较,此中TS101核时钟事变在250MHz,TS201核时钟事变在500MHz。
 

  限于篇幅,TS101、TS201的链路口布局请参阅参考文献[1][2]。由于TS101收发轫共用一个通道,以是只能实现半双工通讯。而TS201将收发轫做成两个独立通道,可实现全双工通讯,理论上数据的传输速率可以进步一倍。固然TS201的链路口收发通道独立,但实际上二者的收发机制大概雷同,都是靠收发缓存和移位寄存器收发数据。然而FPGA内部的链路口计划不必拘泥于此,只要切合链路口通讯协议并达成通讯即可。
 
  2 FPGADSP的链路口通讯
 
  2.1 链路口通讯协议阐发
 
  TS101的链路口共有11根引脚,通过8根数据线(LxDAT[7..0],这里x可以是0、1、2或3,代表TS101或TS201的0号~3号链路口中的一个,以下同)举行数据传输,并采取3根控制线(LxCLKOUT、LxCLKIN、LxDIR)来控制数据传输时钟、通讯的握于和数据传输方向。此中LxDIR为关照链路口当前事景况态是吸取或发送的输出引脚,可悬空不消。TS201的链路口共24根引脚,吸取和发送各12根引脚,通过LVDS情势的数据线(LxDAT_P/N[3..0])和时钟线(LxCLK_P/N)举行数据传输,并采取LxACK和LxBCMP#(‘#’代表信号低有效)来关照吸取准备好和数据块传输结束。
 
  采取FPGADSP通过链路口通讯的关键是令两边通讯的握手信号达成协议,促使数据传输的举行。实际上,要是思量TS201的LVDS信号情势已经被转换完毕,则TS101和TS201链路口传输的数据情势是一样的,都是时钟双沿触发的DDR数据,并且每次传输的数据个数都是4个长字(即128bit)的整数倍。鉴于以上两种芯片链路口数据的共同点,以是采取FPGA与两类芯片通讯时,吸取和发送的数据缓存部分的计划应该是很相近的,只是通讯握手信号部分的计划应当分别加以思量。下面分别赐与先容。
 
  2.2 基于FPGA的TS101链路口计划
 
  图1给出了FPCA与TS101举行半双工链路口通讯的计划(对LxCLKOUT、LxCLKIN均以FPCA的角度来叙述),该接口由吸取、控制和发送三部分构成。本计划FPGA时钟为40MHz,TS101核时钟上作在250MHz,链路口时钟设置为DSP核时钟的8分频,FPGADSP的实际数据传输率为62.5MBps。

  (1) 吸取部分:由编码温和存两部分构成。由于链路口的数错是DDR情势的,不方便数据的缓存,本文采取QuartusII Megafunctions中的altddio模块将上升沿数据和降落沿数据退出。细致这个模块的降落沿数据输出会滞后上升沿数据1个时钟周期,输出时应该用链路口时钟信号(LxCLKIN)通过D触发器来将数据对齐。该模块的inclock肯定要用链路口时钟信号以包管数据的精确读取,如图2所示。又由于DSP内部数据是32位的长字,以是写入吸取缓存前应该用一组D触发器将数据举行32bit对齐,这里细致DSP链路口先传输32位数据中的低8位。

  (2) 控制部分:由令牌转换模块和控制模块构成,是整个计划的内核部分,完成对各部分的控制和与FPGA内部举行通讯(通过CTL一组信号)。TS101的链路口通讯握手是靠两根时钟信号验证令牌指令完成,即当发送端驱动本来为高的LxCLKOUT信号为低电平,以此作为令牌恳求向吸取端发出。要是吸取端准备好吸取,则吸取端驱动LxCLKIN为高;要是令牌发出6个时钟周期后,LxCLKIN信号仍旧为高,则肩动数据传输(以上时钟信号都以发送端视角阐发)。
 
  本计划中,令牌转换模块认真验证令牌和发送令牌。这里要细致,由于用来验证令牌低电平个数的时钟信号(PLL_32ns)是由FPGA时钟信号(CLK)通过锁相环倍频得到,与DSP链路口时钟异步,故验证令牌时,当计数器计到5个低电平常即可以为已达成通讯握手,不然大概会丢失数据。达成握手后关照控制模块向吸取或发送缓存输出控制信号,此中吸取控制信号包括写缓存时钟和写使能。发送控制信号包括读缓存时钟、读使能和DSP停止信号(DSP_IRQ),此中写缓存时钟通过对链路口时钟分频得到,读缓存时钟由锁相环倍频FPGA事变时钟得到。
 
  (3) 发送部分:与吸取部分雷同,也南编码温和存两部分构成,相应的计划基真雷同,这里不作过多先容。由于DSP链路口每次传输数据个数的最小单位是4个32位字,即8个链路时钟周期,以是发送时钟廊该每8个时钟周期一组,以凑够128bit,克制传输错误,此中多余无效的数据DSP可以自行舍去。发送部分采取DSP外部停止方法而不是链路口停止方法关照DSP吸取数据。
 
  TS101的链路口通讯协议请求链路口吸取端在传输启动一个周期后,将其LxCLKOUT拉低,若可以连续吸取,在下一个周期再将其拉高,以此作为连接测试。实际运行中发明,当FPGA吸取数据时,可将LxCLKOUT信号不停驱动为高,不必做特别的连接测试也能精确吸取数据。
 
  别的,发送链路口数据时,由于发送缓存中已经映射仔好了要发送的8bit数据,故可以利用对FPGA时钟信号(CLK)倍频得到的PLL_16ns信号来读发送缓存,读出的数据即链路口发送数据,再对PLL_16ns信号的降落沿分频得到链路口的发送时钟信号。
 
  限于篇幅,本文只给出FPCA吸取TS101数据的时序图,如图3所示。LxCLKIN、LxDAT[7..0]是DSP的链路口输出时钟和数据,LxCLKOUT是FPGA的回馈准备好信号。仿真中链路口数据采取1F~3E(十六进制)的32个8bit数据,即从2221201F到3E3D3C3B的8个32bit数据;PLL_32ns信号是FPGA内部锁相环孕育产生的与DSP链路口时钟异步的32ns时钟信号,用来校验令牌指令;W_FIFO_EN信号足写缓存使能信号,适时牌验证后使能吸取缓存;DSP_DAT信号是DSP通过链路门传输的32bit数据,通过对链路口数据的编码得到;W_BUF_CLK信号由链路口时钟分频处理惩罚得到,将上升沿映射的32bit DSP数据写入吸取缓存,完成吸取进程。

  2.3 基于FPGA的TS201链路口计划
 
  图4给出了FPGA与TS201举行链路口通讯的计划框图。由于TS201的握手信号较多,以是相对TS101的链路口计划容易些。本计划FPGA时钟50MHz,TS101核时钟500MHz,链路口时钟为DSP核时钟的4分频,采取4bit方法,单向实际数据传输速率为125MBps。

  TS201的链路口数据和时钟采LVDS信号,具有速率高、功耗低、噪声小的好处。Cyclone系列芯片不但支持LVDS信号,还集成了LVDS转换模块,这给计划提供了很大方便。应该细致的是,在硬件计划时LVDS信号两极的PCB走线要立室,并且细致立室电阻网络的接入。
 
  详细请参考文献[6]-9 Implementing LVDS in Cyclone De-vices。
 
  TS201的链路口有1bit和4bit两种传输方法,本文以4bit为例举行计划。图4给出的信号都是经LVDS转换后的信号。由于TS201的收发做成了两个单独的通道,FPGA的计划也应该相应地计划为两个通道,真正做到全双工通讯,收发互不影响。
 
  吸取与发送部分与TS101的计划基真雷同,发送部分也采取外部停止方法关照DSP吸取链路口数据。TS201的通讯握手信号有ACK和BCMP#信号。此中ACK信号用来关照吸取准备好,在及时信号处理惩罚中,一样平常不容许数据传输的等待,故将这个信号置为准备好。
 
  BCMP#信号用于关照数据块传输的结束,当能确定DMA传输数据个数时,可以将此引脚悬空。
 
  TS201链路口的收发机制非常相似,本文仅给出发送数据时序图,如图5所示。L1_IRQ是FPGA发给DSP的外部停止,用来关照DSP收数据;L1_ACKI是DSP的吸取准备好信号;R_BUF_EN是读发送缓存使能信号;链路口时钟L1_CLKOUT因此读缓存时钟R_CLK降落沿的二次分频,映射从缓存中读出的4bit链路口数据L1_DA-To。细致这里读缓存及时钟分频时会有纳秒级的耽误。

 
  3 DSP的相应设置
 
  TS101和TS201的链路口都配置了控制寄存器(LCTLX)和状态奇存器(LSTATx)两组寄存器。LCTLx用来控制链路口的传输,LSTATx用来关照链路口的事景况态。TS101链路口时钟频率可以是核时钟的8、4、3或2分频,通过设置LCTLx中的SPD位米完成,本文计划将SPD位置000,即为核时钟8分频。
 
  由于TS201的吸取发送通道独立,以是其控制寄存器分为吸取控制寄存器(LRCTLx)和发送控制寄存器(LTCTLx)。TS101链路口发送时钟频率可以与核时钟雷同或为其4、2、1.5分频,通过设置LTCTLx中SPD位来完成。本文计划将SPD位置100,即为核时钟4分频,并将LRCTLx/LTCTLx中(接TDSIZE位置1,设置成4bit传输方法。要是BCMP#信号悬空,细致肯定要将LRCTLx巾RBCMPE位置0。
 
  有两种要领启动DSP的链路口DMA传输:利用链路停止和利用DSP的四个外部停止(IRQ0~IRQ3)。两种停止方法都必要在停止办事步伐中对DMA的TCB寄存器举行配置来启动链路口的吸取DMA通道。鉴于外部停止的优先级高于链路口停止,可以克制数据丢失,本文计划的通讯方法均以外部停止方法关照DSP吸取数据。在DMA的TCB寄存器配置进程中,为了包管步伐不被其他停止打断,可以在停止办事步伐开始时就把全部其他停止屏蔽失,存停止办事步伐返回之前再把屏蔽失的停止位恢复。
 
  本文对TigerSHARC系列的两种典范DSP芯片的链路口举行了阐发和比较,并给出了FPGA与这两种DSP芯片举行链路口通倍的详细要领。在FPGA内部实现了DSP链路口的计划,同时给出了DSP举行链路口通讯的详细设置要领。由于及时处理惩罚中数据的重发会紧张影响处理惩罚的及时性,故本文的链路口通讯计划没有对所传输的数据举行校验。
 
  本文给出的基于FPGA路口计划具有很强的通用性,可以应用于基于TS101/TS201的多种应用体系中,进步体系内部的通讯本领;也可用于板间DSP的数据传输,进步体系外部的通讯本领。