FPGA与DSP的高速通信接口设计与实现

发布者:Leishan最新更新时间:2007-05-18 来源: 电子技术应用关键字:存储  总线  实时  链路 手机看文章 扫描二维码
随时随地手机看文章

  在雷达信号处理、数字图像处理等领域中,信号处理的实时性至关重要。由于FPGA芯片在大数据量的底层算法处理上的优势及DSP芯片在复杂算法处理上的优势,DSP+FPGA的实时信号处理系统的应用越来越广泛。ADI公司的TigerSHARC系列DSP芯片浮点处理性能优越,故基于这类。DSP的DSP+FPGA处理系统正广泛应用于复杂的信号处理领域。同时在这类实时处理系统中,FPGA与DSP芯片之间数据的实时通信至关重要。

  TigerSHARC系列DSP芯片与外部进行数据通信主要有两种方式:总线方式和链路口方式。链路口方式更适合于FPGA与DSP之间的实时通信。随着实时信号处理运算量的日益增加,多DSP并行处理的方式被普遍采用,它们共享总线以互相映射存储空间,如果再与FPGA通过总线连接,势必导致FPGA与DSP的总线竞争。同时采用总线方式与FPGA通信,DSP的地址、数据线引脚很多,占用FPGA的I/O引脚资源太多。而采用链路口通信不但能有效缓解DSP总线上的压力,而且传输速度快,与FPGA之间的连线相对也少得多,故链路口方式更适合于FPGA与DSP之间进行实时数据通信。

  参考文献[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 FPGA与DSP的链路口通信

  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#(‘#’代表信号低有效)来通知接收准备好和数据块传输结束。

  采用FPGA与DSP通过链路口通信的关键是令双方通信的握手信号达成协议,促使数据传输的进行。实际上,如果考虑TS201的LVDS信号形式已经被转换完毕,则TS101和TS201链路口传输的数据形式是一样的,都是时钟双沿触发的DDR数据,并且每次传输的数据个数都是4个长字(即128bit)的整数倍。鉴于以上两种芯片链路口数据的共同点,所以采用FPGA与两类芯片通信时,接收和发送的数据缓存部分的设计应该是很相近的,只是通信握手信号部分的设计应当分别加以考虑。下面分别给予介绍。

  2.2 基于FPGA的TS101链路口设计

  图1给出了FPCA与TS101进行半双工链路口通信的设计(对LxCLKOUT、LxCLKIN均以FPCA的角度来叙述),该接口由接收、控制和发送三部分组成。本设计FPGA时钟为40MHz,TS101核时钟上作在250MHz,链路口时钟设定为DSP核时钟的8分频,FPGA与DSP的实际数据传输率为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的数据传输,提高系统外部的通信能力。

关键字:存储  总线  实时  链路 引用地址:FPGA与DSP的高速通信接口设计与实现

上一篇:FPGA与DSP的高速通信接口设计与实现
下一篇:量身订制的DSP元件设计策略

推荐阅读最新更新时间:2024-05-02 20:35

细谈云存储架构,公共云与私有云哪个好
云存储作为一个新兴的研究和应用领域,由于其快速部署、低成本、灵活调整规模等优势被越来越多的企业应用。 云存储(CloudStorage)”承担着最底层以服务形式收集、存储和处理数据的任务,并在此基础上展开上层的云平台、云服务等业务。 公共云和私有云基础架构灵活,可扩展,成本相对较低。然而,每个云的实施都有其熟悉的和鲜为人知的缺点。 许多IT专业人士认为,私有云存储只是其当前基础设施的另一个名称,公共云存储也是同样如此,而只是在某公司的公共数据中心实施。那些存在这些想法的供应商通常缺乏云存储基础设施技术,或者试图在技术上赶上其他市场的发展。 传统的IT基础架构将数据中心分为多个功能:应用,计算,网络,存储和设施以及专
[网络通信]
DDR4、NAND Flash存储器芯片发展趋势
   DDR4以前瞻性的高传输速率、低功耗与更大记忆容量,在2014年下半将导入英特尔工作站/伺服器以及高阶桌上型电脑平台,并与LP-DDR3记忆体将同时存在一段时间;至于NAND Flash快闪记忆体也跨入1x奈米制程,MLC将以iSLC/eSLC自砍容量一半的方式,提升可抹写次数(Program Erase;P/E)来抢占极端要求耐受度的军方与工控市场,而C/P值高的TLC从随身碟、记忆卡的应用导向低阶SSD… DDR4伺服器先行  2016超越DDR3成为主流 处理器(CPU)、绘图晶片(GPU)运算效能随摩尔定律而飞快进展,加上云端运算、网际网路行动化浪潮下,持续驱动动态记忆体(Dynamic RAM;DRAM)的规格进
[手机便携]
嵌入式实时操作系统μC/OS-II及其应用
早在上世纪六十年代,就已经有人开始研究和开发嵌入式操作系统。但直到最近,它才在国内被越来越多的提及。其在通信、电子、自动化等需要实时处理的领域所日益显现的重要性吸引了人们越来越多的注意力。针对国内大部分用户使用的51系列的8位处理器,我们可以选择μC/OS-II 。 μC/OS-II是由Labrosse先生编写的一个开放式的内核,它最主要的特点就是源码公开的自由软件。这一点对于用户来说可谓利弊各半;好处在于,一方面它是免费的;另一方面用户可以根据自己的需要对它进行修改。坏处在于,它缺乏必要的支持。它没有功能强大的软件包,用户通常得自己编写驱动程序,特别当用户使用的是不太常用的单片机,还必须自己编写移植程序。   μC/OS-I
[应用]
基于凌华MIX-110的实时远程医疗系统
对于救灾行动或紧急医疗服务(EMS,Emergency medical Services),时间比金钱更重要,因为它关乎生与死。配备有远程医疗系统的救护车即是移动技术挽救生命的一个最好的例子。救护车在去往医院的途中,可以通过无线通信技术提供实时的病人信息,同时还可以实现远程诊断与初级的看护,从而大幅缩减救援的响应时间,为病人的进一步抢救赢得宝贵的时间。   远程医疗是由美国远程医疗协会(ATA,American Telemedicine Association)提出的概念。它借助电子通信技术,将医疗信息从一个地点交换至另外一个远端,进而有效地改善病人的临床健康状况。   远程医疗包括了越来越多的各种应用和服务,如远程健康检测和
[医疗电子]
单片机定时器实现实时时钟程序-lcd1602显示
本程序所用的原理图下载: http://www.51hei.com/f/HL-1V6.5.pdf ,单片机芯片使用的stc89c52;找到1602液晶部分的原理图即可.这是一张单片机开发板的整体图. 下面是程序的源代码: /** *功能:在LCD1602上显示当前时间(Time)和日期(Date) * 自动计时,可计时年月日(包括平年和闰年) * 可用按键调整时间和日期 * L ***************************** * C * Time: 00 Date: * * D * 00:00 2013-06-05 * * ****************************** *作者:徐冉
[单片机]
PCIe®结构和RAID如何在GPUDirect存储中释放全部潜能
PCIe®结构和RAID如何在GPUDirect存储中释放全部潜能 随着更快的图形处理单元(GPU)能够提供明显更高的计算能力,存储设备和GPU存储器之间的数据路径瓶颈已经无法实现最佳应用程序性能。NVIDIA的Magnum IO GPUDirect存储解决方案通过在存储设备和GPU存储器之间实现直接路径,可以极大地帮助解决该问题。然而,同等重要的是要使用容错系统来优化其已经非常出色的能力,从而确保在发生灾难性故障时备份关键数据。该解决方案通过PCIe®结构连接逻辑RAID卷,在PCIe 4.0规范下,这可以将数据速率提高到26 GB/s。为了解如何实现这些优势,首先需要检查该解决方案的关键组件及其如何协同工作来提供结果。
[嵌入式]
PCIe®结构和RAID如何在GPUDirect<font color='red'>存储</font>中释放全部潜能
SK海力士宣布向英伟达提供业内首批HBM3 DRAM
SK 海力士刚刚宣布,其已开始量产业内性能领先的 HBM3 DRAM 存储器。去年 10 月,该公司率先发布了 HBM3 开发公告。七个月后,SK 海力士再次传达了巩固其在高端 DRAM 市场的领导地位的想法。 随着人工智能和大数据等尖端技术的加速发展,全球主要科技公司也在积极寻求应对快速增长的数据量的方法。 与传统动态随机存储器(DRAM)相比,高带宽缓存(HBM)在数据处理的速度和性能方面都具有显著的竞争力。 从诞生之初,它就引起了行业内的广泛关注,且近年得到了越来越多的采用。 以英伟达为例,这家 GPU 巨头于近期完成了对 SK 海力士 HBM3 样品的性能评估,预计相关产品可于今年 3 季度开始出货。 为
[手机便携]
SK海力士宣布向英伟达提供业内首批HBM3 DRAM
BCD码借用十六进制形式表示引出的单片机存储数据
BCD码借用十六进制形式表示引出的单片机存储数据,数据数制,数据类型,数据编码分析 单片机存储数据都是二进制存储的。 数据数制:二进制、十进制、十六进制等。 数据类型:字符类型(一个字节)、整型(两个字节)、浮点类型(四个字节)。有无符号。 数据编码:8421码,ASCII码,LED等显示字形编码。 BCD码借用十六进制形式表示,只是意义不同24H写到寄存器里面也是24H,读出的也是24H,只不过代表的是十进制的24,而不是十进制的36.书写形式和十六进制一样,但是代表的十进制数就不一样了 对类似DS1302中寄存器的操作,虽然存放的数据是以BCD编码的意义,但是对这类寄存器的读写操作也是以二进制或者以十六
[单片机]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved