FPGA与各组成器件之间互联的问题

系统架构确定,下一步就是fpga与各组成器件之间互联的问题了。通常来说,cpu和fpga的互联接口,主要取决两个要素:
(1)cpu所支持的接口。
(2)交互的业务。
通常来说,fpga一般支持与cpu连接的数字接口,其常用的有emif,pci,pci-e,upp,网口(mii/gmii/rgmii),ddr等接口。作为总线类接口,fpga通常作为从设备与cpu连接,cpu作为主设备通过访问直接映射的地址对fpga进行访问。根据是否有时钟同步,通常总线访问分为同步或异步的总线,根据cpu外部总线协议有所不同,但数据、地址、控制信号基本是总线访问类型中总线信号所不能省略的。cpu手册中会对信号定义和时序控制有着详细的说明,fpga需要根据这些详细说明来实现相应的逻辑。同时cpu还可以对访问时序进行设置,比如最快时钟,甚至所需的最小建立时间和保持时间,这些一般cpu都可以进行设置,而这些具体参数,不仅影响fpga的实现,也决定总线访问的速度和效率。对于同步总线,只需要根据输入时钟进行采样处理即可,但对于异步总线,则需要的对进入的控制信号进行同步化处理,通常处理方式是寄存两拍,去掉毛刺。因此用于采样的时钟就与cpu所设置的总线参数相关,如采样时钟较低,等控制信号稳定后在译码后输出,一个总线操作周期的时间就会相对较长,其处理的效率也相对较低;假如采样时钟过快,则对关键路径又是一个挑战,因此合理设定采样频率,便于接口的移植并接口的效率是设计的关键点和平衡点。
对于总线型的访问来说,数据信号通常为三态信号,用于输入和输出。这种设计的目的是为了减少外部连线的数量。因为数据信号相对较多一般为8/16/32位数据总线。总线的访问的优势是直接映射到系统的地址区间,访问较为直观。但相对传输速率不高,通常在几十到100mbps以下。这种原因的造成主要为以下因素(1)受制总线访问的间隔,总线操作周期等因素,总线访问间隔即两次访问之间总线空闲的时间,而总线操作周期为从发起到相应的时间。(2)不支持双向传输,并且fpga需主动发起对cpu操作时,一般只有发起cpu的中断处理一种方式。这种总线型操作特点,使其可以用作系统的管理操作,例如fpga内部寄存器配置,运行过程中所需参数配置,以及数据流量较小的信息交互等操作。这些操作数据量和所需带宽适中,可以应对普通的嵌入式系统的处理需求。
对于大数据流量的数据交互,一般采用专用的总线交互,其特点是,支持双向传输,总线传输速率较快,例如gmii/rgmii、upp、专用lvds接口,及 serdes接口。专用serdes接口一般支持的有pci-e,xaui,sgmii,sata,interlaken接口等接口。gmii/rgmii,专用lvds接口一般处理在1gbps一下的业务形式,而pci-e,根据其型号不同,支持几gbps的传输速率。而xaui可支持到10gbps的传输速率,lnterlaken接口可支持到40gbps的业务传输。
对于不同所需的业务形式及处理器的类型,则可选择相应的接口形式,来传输具体的业务。现今主流fpga中都提供的各种接口的ip。选择fpga与各型cpu互联接口,一般选择主流的应用交互方案,特殊的接口缺少支撑ip,导致开发、调试、维护和兼容性的成本都较大,同时注意系统的持续演进的需要,如只在本项目使用一次,而下一项目或开发阶段已摒弃此类接口,则需提前规划技术路线。毕竟一个稳定、高效的接口互联是一个项目成功的基础。
不是所有的嵌入式系统都需要“高大上”的接口形式,各类低速的稳定接口也同样在fpga的接口互联中有着重要的角色,其中uart、spi、i2c等连接形式也非常的常见。毕竟,一个优秀的设计不是“高大上”的堆积,而是对需求最小成本的满足。适合的才是最美的。
fpga与各组成器件之间互联 - fpga的系统架构组成和器件互联问题---fpga通常作为从设备与cpu连接
serial rapidio (srio)与pcie
1.1    与pcie的差异
典型的pcie结构定义了一个以单个中央处理器为核心的计算机系统,比如我们常见的工控机、pxie机箱控制器、服务器内的io设备。从系统架构来看,这个结构的优势在于可有统一的软件驱动,软件模型,设备间具备优异的兼容性。兼容性才是王道,厂商就可以用一个标准包打天下。
图 1‑1 pcie 互联架构
pcie 的帧格式如下图所示。帧由 1 字节的帧起始、2 字节的序列号、16 或 20 字节的报头、0 到 4096 字节的数据字段、0 到 4 字节的 ecrc 字段、4 字节的 lcrc、和 1 字节的帧结束。数据字段中传输的位数越少,开销就越大。零字节数据字段会导致 100% 的开销,因为没有传输数据。
图 1‑2 帧格
rapidio定义了一种高性能、分组交换互连技术,用于在微处理器、dsp、通信和网络处理器、系统内存和外围设备之间传递数据和控制信息。rapidio 适用于点对点的设备间通讯,不需要经过一个中央处理器进行调度,就可以完成设备间的通讯,并且包长度简单,效率相对于pcie要更高,有效数据传输速度更快。但是rapidio没有定义标准的软件模型,这就导致厂家之间的设备大概率无法兼容,从而只能在某些领域进行部署,不易推广。
图 1‑3 rapidio 互联架构
rapidio 由于比pcie更简单、更高效、延迟更低等特点,已经在嵌入式领域、图像处理、通讯系统、军工航天有了大量的应用。
我们来看一个应用场景,在医学影像等图像处理领域,经常需要扩展单块dsp、fpga的计算能力,这时候需要将多个dsp或者fpga通过高速串口进行互联,此时rapidio就是当前互换性最好的一个最佳选择,因为pcie太过复杂,xilinx的auraro效率也不满足要求,并且互换性不好。
我们来看一下在rapidio之前,实现多个dsp系统互联的方法:
图 1‑4 多个dsp设备通过网络互联
图 1‑5 多个dsp设备可以通过rapidio 实现任意互联通讯
2     可用的验证硬件
目前具备srio接口的硬件不多,我们推荐2类可用的开发板:
1、创龙科技开发的ti dsp开发板 也可用于评估emif等接口
2、xilinx 的kc705等具备高速gtx/gtp接口的开发板,xilinx提供了兼容srio 2.2的ip可供评估;


节后家中乱糟糟?莱克立式吸尘器帮你“一尘不染”
5G时代的700MHz需面对的三大新挑战
快干胶使用
诺基亚CEO:手机市场是“三匹马的较量”
电感镇流器电路图
FPGA与各组成器件之间互联的问题
国芯思辰 |混合碳化硅分立器件BGH75N120HF1可用于DC-DC电源转换
面对示波器的波形死区,工程师们怎么选择
续流二极管选择次级的基础知识介绍
iphone8或将回归初代设计,以水滴形设计以致初代iphone
智能交通RFID智能系统特点及作用
电阻箱怎么读数_电阻箱怎么用
索尼LT29i行货真机亮相 4.6英寸全触控双核
亿晟科技YS-F3568开发板通过OpenHarmony兼容性测评
基于DSP嵌入式技术的智能刹车控制系统研究
压接模具是满足压接质量规格的最重要因素之一
国内为什么没有高端示波器?
激光锡膏焊的原理及优势
雷达的功能,你知道多少?
32位嵌入式处理器与8位处理器的不同之处