FPGA研发牛人心得总结

上传人:博****1 文档编号:493251175 上传时间:2023-01-01 格式:DOC 页数:46 大小:200KB
返回 下载 相关 举报
FPGA研发牛人心得总结_第1页
第1页 / 共46页
FPGA研发牛人心得总结_第2页
第2页 / 共46页
FPGA研发牛人心得总结_第3页
第3页 / 共46页
FPGA研发牛人心得总结_第4页
第4页 / 共46页
FPGA研发牛人心得总结_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《FPGA研发牛人心得总结》由会员分享,可在线阅读,更多相关《FPGA研发牛人心得总结(46页珍藏版)》请在金锄头文库上搜索。

1、-FPGA研发之道FPGA是个什么玩意.FPGA是个什么玩意.首先来说:FPGA是一种器件。其英文名 feild programable gate arry 。很长,但不通俗。通俗来说,是一种功能强大似乎无所不能的器件。通常用于通信、网络、图像处理、工业控制等不同领域的器件。就像ARM、DSP等嵌入式器件一样,成为无数码农码工们情感倾泻而出的代码真正获得生命的地方。只不过,一样的编程,却是不一样的思想。嵌入式软件人员看到的是C。而FPGA工程师看到是硬件描述语言,verilog或VHDL。软件看到是函数、对象、重构。FPGA工程师则是模块、流水、复用。从现象上看,都是代码到下载程序再到硬件上运

2、行。不能只看现象而忽略本质。FPGA 开发本质上是设计一颗IC,*的身子,丫鬟的命不是所有verilog/VHDL代码,都能获得青睐去流片成为真正的芯片,而更多的则成为运行在FPGA器件上,成为完成一样功能的替代品。其实现的功能却一点也不逊色于百万身价流片的近亲。从而成为独树一帜的行业。FPGA开发的流程,是通过verilog/VHDL等硬件描述语言通过EDA工具编译、综合、布局布线成为下载文件,最终加载到FPGA器件中去,完成所实现的功能。那硬件描述语言描述的是什么.这里描述的就是组合逻辑电路和时序逻辑电路。组合逻辑电路就是大家所熟知的 与门、或门、非门。时序逻辑电路则是触发器。数字芯片上绝

3、大局部逻辑都是这两种逻辑实现的。也就是根本上每个电子行业的人所学过的数字电路。顺便说一下,感香农大师,在其硕士毕业论文就奠定了数字电路的的根基。只不过在FPGA中,与或非的操作变成了查找表的操作。于是所有的数字电路变成了查找表和存放器,这就构成了FPGA的根底。查找表负责逻辑实现,存放器存储电路状态。二者配合,双剑合璧,天衣无缝。这是最初的FPGA的雏形。 现代FPGA部出了查找表和存放器之外,还有RAM块,用于存储大量的数据块,这是因为RAM块较存放器来存储大量数据更能节省芯片实现的面积。FPGA部的时序电路则需要时钟的输入,通常FPGA部需要时钟种类较多,因此需要在片产生所需的的相关的时钟

4、,如不同频率,不同相位的时钟,因此时钟管理单元DCM/PLL也是必不可少的部部件。除此之外,FPGA部还包括接口I/O,I/O分为普通I/O和高速I/O,高速I/O支持例如高速的SERDES,用于实现*AUI,PCIE等高速接口,这些接口动辄几Gbps到10Gbps以上。此外种类多种多样的硬核IP也是各FPGA厂商差异化竞争利器,例如POWERPC、ARM等硬核IP。从而构成CPU+FPGA于一体的集可编程性和可重构的处理平台。因此,相对来所,FPGA虽然开展有二三十年的历史,其根本架构一直不变不大。回到问题开场的地方,FPGA的英文翻译过来是现场可编程门阵列。这是相对ASIC来说的,ASIC

5、的硬件也可看做是门阵列,但是其是非可编程的器件。流片完成其功能就固化了,而FPGA的可编程性就在其能够重新下载配置文件,来改变其在的功能,这就是其可编程性的由来。从前端开发流程来说,FPGA和ASIC开发并无二至。由于ASIC开发一次性投入本钱较高,FPGA无疑是一种经济的替代方案,用于实现的高速的数据并行处理。如业务能够支撑大规模应用并且协议固化,则能够分摊本钱的ASIC实现就有本钱的优势。 FPGA作为一种器件,技术上主要垄断在少数大公司手中,那就是双巨头ALTERA和*ILIN*。除此之外还有一些份额相对较小的公司,例如ACTEL和LATTICE。不止是FPGA的硬件芯片,其配套的EDA

6、工具技术壁垒更高。因此相对于CPU来说,FPGA的国产化更不乐观,不过已经有国的厂商来从事这一行业,例如国微和京微雅格等,也在一些细分市场上推出自己的FPGA产品。FPGA和他那些小伙伴们 一 系统架构组成通常来讲,一个好汉三个帮,一个完整的嵌入式系统中由单独一个FPGA使用的情况较少。通常由多个器件组合完成,例如由一个FPGA+CPU来构成。通常为一个FPGA+ARM,ARM负责软件配置管理,界面输入外设操作等操作,FPGA负责大数据量运算,可以看做CPU的专用协处理器来使用,也常会用于扩展外部接口。常用的有ARM+FPGA,DSP+FPGA,或者网络处理器+FPGA等种种架构形式,这些架构

7、形式构成整个高速嵌入式设备的处理形态。 不得不说的是,随着技术的进步,现在CPU中集成的单元也随之增加,例如TI的达芬奇架构的处理器部通常由ARM+DSP构成。同时异构的处理器形态业逐渐流行,如ARM9+ARM7的构造。这类一个主要处理系统(ARM9)外带辅助处理系统(ARM7)的设计,同样成为现在处理器设计的流行方向。主处理系统运行嵌入式操作系统,而辅助处理单元则专注*一些的专用领域的处理。这些系统的应用减少了FPGA作为CPU协处理单元的领域。因为毕竟FPGA相比ARM等流行嵌入式处理器价格要相对较高。 在这种情形下,FPGA的厂商似乎也感受到了压力,不约而同推出了带ARM硬核的FPGA,

8、例如ALTERA的 和*ILIN*的ZYNQ和ALTERA的SOC FPGA。这是即是互相竞争的需要,也是同众多CPU厂商一掰手腕的杰总。即使在这两种在趋势下,经典的处理器+FPGA的设计仍然可看做为高性能嵌入式系统的典型配置。 经典的处理器+FPGA的配置中有多种的架构形式,即多个处理器单元,可能是ARM,MIPS,或者DSP,FPGA也可能是多片的配置,具体架构形式于具体处理的业务相关和目标设备的定位也相关。因为FPGA作为简单业务流大数据量的处理形态仍然是CPU无可比拟的优势,FPGA部可以开发大量业务数据并行,从而实现高速的数据处理。 在实现高速处理方面,CPU的另一个开展趋势是多核,

9、多核处理器也能处理大数据量的业务的并行,例如业界TERILA已推出64核的多核处理器,采用MIPS处理器,通过二维MASH网络连接在一起,形成NOC的构造。在性能上已经和现有的高速FPGA的处理能力上不相上下。但是多核处理器的不得不说的问题就是,同一业务流分配到多核处理上后,如需交互,例如访问同一资源,就会造成读写的缓存一致的问题,解决的这一问题的天然思路是加锁,即在变量访问上加自旋锁,但是带来的问题就是处理性能的急剧下降。而FPGA无论并行处理和同一变量的访问,都可以变成工程师的设计水平的问题,没有原理性的挑战。 没有一种器件可以满足全人类的众多需求,因此不用担忧FPGA没有用武之地。必定是

10、一系列产品的组合。下面主要介绍一下FPGA可以作为现今热门场景的几种应用。1网络存储产品,特别是现在的NAS,或者SAN设备上,其存储的时间、接口、平安性等都要求较高,而FPGA无论处理性能还是扩展接口的能力都使其在这一领域大有作为。现在高端FPGA单片就可以扩展32个或者更多4G或者8G的FC接口。并且其协议处理相对的固定,也使FPGA在这一领域有大量的可能应用。2高速网络设备,现在高速网络设备10G、40/100G以太网设备领域,同样FPGA也是关键的处理部件。特别是IPv6的商用化及大数据对于根底设施的高要求,都使这一领域的处理应用会逐渐广泛,这一领域通常是高速网络处理器NP+FPGA的

11、典型架构。34G等通信设备,对于新一代通信基站的信号处理,FPGA+DSP阵列的架构就是绝配。特别是在专用处理芯片面世之前,这样的架构可以保证新一代通信根底设施的迅速研发和部署。 没有完美的架构,只有适宜的组合,各种芯片和架构都是为应用效劳,互相的渗透是趋势,也是必然。FPGA相对处理器的可编程领域,仍然属于小众虽然人数也不少。但是正像一则笑话所说:大腿虽然比根命根子粗,但决没有命子重要。这算开个玩笑。FPGA的实现为以后的芯片化留下了许多可能和想象空间,从而在应用大量爆发时通过芯片化来大幅降低本钱,这这也正是其他可编程器件所不能比拟的。FPGA和他那些小伙伴们 二 器件互联系统架构确定,下一

12、步就是FPGA与各组成器件之间互联的问题了。通常来说,CPU和FPGA的互联接口,主要取决两个要素: 1CPU所支持的接口。 2交互的业务。 通常来说,FPGA一般支持与CPU连接的数字接口,其常用的有EMIF,PCI,PCI-E,UPP,网口MII/GMII/RGMII,DDR等接口。作为总线类接口,FPGA通常作为从设备与CPU连接,CPU作为主设备通过访问直接映射的地址对FPGA进展访问。根据是否有时钟同步,通常总线访问分为同步或异步的总线,根据CPU外部总线协议有所不同,但数据、地址、控制信号根本是总线访问类型中总线信号所不能省略的。CPU手册中会对信号定义和时序控制有着详细的说明,F

13、PGA需要根据这些详细说明来实现相应的逻辑。同时CPU还可以对访问时序进展设置,比方最快时钟,甚至所需的最小建立时间和保持时间,这些一般CPU都可以进展设置,而这些具体参数,不仅影响FPGA的实现,也决定总线访问的速度和效率。对于同步总线,只需要根据输入时钟进展采样处理即可,但对于异步总线,则需要的对进入的控制信号进展同步化处理,通常处理方式是存放两拍,去掉毛刺。因此用于采样的时钟就与CPU所设置的总线参数相关,如采样时钟较低,等控制信号稳定后在译码后输出,一个总线操作周期的时间就会相对较长,其处理的效率也相对较低;假设采样时钟过快,则对关键路径又是一个挑战,因此合理设定采样频率,便于接口的移

14、植并接口的效率是设计的关键点和平衡点。 对于总线型的访问来说,数据信号通常为三态信号,用于输入和输出。这种设计的目的是为了减少外部连线的数量。因为数据信号相对较多一般为8/16/32位数据总线。总线的访问的优势是直接映射到系统的地址区间,访问较为直观。但相对传输速率不高,通常在几十到100Mbps以下。这种原因的造成主要为以下因素1受制总线访问的间隔,总线操作周期等因素,总线访问间隔即两次访问之间总线空闲的时间,而总线操作周期为从发起到相应的时间。2不支持双向传输,并且FPGA需主动发起对CPU操作时,一般只有发起CPU的中断处理一种方式。这种总线型操作特点,使其可以用作系统的管理操作,例如F

15、PGA部存放器配置,运行过程中所需参数配置,以及数据流量较小的信息交互等操作。这些操作数据量和所需带宽适中,可以应对普通的嵌入式系统的处理需求。 对于大数据流量的数据交互,一般采用专用的总线交互,其特点是,支持双向传输,总线传输速率较快,例如GMII/RGMII、Upp、专用LVDS接口,及SERDES接口。专用SERDES接口一般支持的有PCI-E,*AUI,SGMII,SATA,Interlaken接口等接口。GMII/RGMII,专用LVDS接口一般处理在1GbpS一下的业务形式,而PCI-E,根据其型号不同,支持几Gbps的传输速率。而*AUI可支持到10Gbps的传输速率,lnterlaken接口可支持到40Gbps的业务传输。 对于不同所需的业务形式及处理器的类型,则可选择相应的接口形式,来传输具体的业务。现今主流FPGA中都提供的各种接口的IP。选择FPGA与各型CPU互联接口,一般选择主流的应用交互方案,特殊的接口缺少支撑IP,导致开发、调试、维护和兼容性的本钱都较大,同时注意系统的持续演进的需要,如只在本工程使用一次,而下一工程或开发阶段已摒弃此类接口,则需提前规划技术路线。毕竟一个稳定、高效的接口互联是一个工程成功的根底。 不是所有的嵌入式系统都需要高大上的接口形式,各类低速的稳定接口也同样在FPGA的接口互联中有着重要的角色,其中UART、SPI

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号