202X年fpga工程师年终总结

上传人:tang****xu6 文档编号:134440201 上传时间:2020-06-05 格式:DOCX 页数:39 大小:49.11KB
返回 下载 相关 举报
202X年fpga工程师年终总结_第1页
第1页 / 共39页
202X年fpga工程师年终总结_第2页
第2页 / 共39页
202X年fpga工程师年终总结_第3页
第3页 / 共39页
202X年fpga工程师年终总结_第4页
第4页 / 共39页
202X年fpga工程师年终总结_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《202X年fpga工程师年终总结》由会员分享,可在线阅读,更多相关《202X年fpga工程师年终总结(39页珍藏版)》请在金锄头文库上搜索。

1、fpga 工程师年终总结篇一:FPGA研发牛人心得总结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块较寄存器来存储大量 数据更能节省芯片实

4、现的面积。 FPGA内部的时序电路则需要 时钟的输入,通常 FPGA内部需要时钟种类较多,因此需要 在片内产生所需的的相关的时钟,如不同频率,不同相位的 时钟,因此时钟管理单元 DCM/PLL也是必不可少的内部部件。 除此之外,FPGA内部还包括接口 I/O,I/O分为普通I/O和 高速I/O,高速I/O支持例如高速的 SERDES用于实现XAUI, PCIE等高速接口,这些接口动辄几 Gbps到lOGbps以上。此 外种类多种多样的硬核IP也是各FPGA厂商差异化竞争利器, 例如POWERPCARM等硬核IP。从而构成 CPU+FPG于一体的集可编程性和可重构的处理平台。因此,相对来所,FP

5、GA虽然发展有二三十年的历史,其基本架构一直不变不大。回到问题开始的地方,FPGA的英文翻译过来是现场可编 程门阵列。这是相对 ASIC 来说的, ASIC 的硬件也可看做是 门阵列,但是其是非可编程的器件。流片完成其功能就固化 了,而FPGA的可编程性就在其能够重新下载配置文件,来 改变其内在的功能,这就是其可编程性的由来。从前端开发 流程来说,FPGA和ASIC开发并无二至。由于ASIC开发一次 性投入成本较高,FPGA无疑是一种经济的替代方案,用于实现的高速的数据并行处理。如业务能够支撑大规模应用并且 协议固化,则能够分摊成本的 ASIC 实现就有成本的优势。 FPGA作为一种器件,技术

6、上主要垄断在少数大公司手中,那就是双巨头ALTERA和XILINX。除此之外还有一些份额相对 较小的公司,例如ACTEL和 LATTICEo不止是FPGA的硬件芯 片,其配套的EDA工具技术壁垒更高。因此相对于CPU来说, FPGA的国产化更不乐观,不过已经有国内的厂商来从事这一行业,例 如国微和京微雅格等, 也在一些细分市场上推出自己的 FPGA 产品。FPGA和他那些小伙伴们(一)系统架构组成通常来 讲,“一个好汉三个帮” ,一个完整的嵌入式系统中由单独一 个FPGA使用的情况较少。通常由多个器件组合完成,例如 由一个FPGA+CP来构成。通常为一个 FPGA+AR,ARM负责 软件配置管

7、理,界面输入外设操作等操作,FPGA负责大数据 量运算,可以看做 CPU的专用协处理器来使用,也常会用于 扩展外部接口。常用的有 ARM+FPGADSP+FPG,或者络处理 器+FPGA等种种架构形式,这些架构形式构成整个高速嵌入 式设备的处理形态。不得不说的是,随着技术的进步,现在CPU中集成的单元也随之增加,例如 TI 的“达芬奇”架构的处理器内部通 常由ARM+DS构成。同时异构的处理器形态业逐渐流行,如 ARM9+ARM的结构。这类一个主要处理系统 (ARM9 )外带辅助 处理系统(ARM7)的设计,同样成为现在处理器设计的流行方 向。主处理系统运行嵌入式操作系统,而辅助处理单元则专

8、注某一些的专用领域的处理。这些系统的应用减少了FPGA作为CPU协处理单元的领域。因为毕竟FPGA相比ARM等流行嵌入式处理器价格要相对较高。在这种情形下,FPGA的厂商似乎也感受到了压力,不约 而同推出了带 ARM硬核的FPGA例如 ALTERA勺 和XILINX 的ZYNQ和ALTERA的 SOC FPGA这是即是互相竞争的需要, 也是同众多CPU厂商一掰手腕的杰总。即使在这两种在趋势 下,经典的处理器+FPGA的设计仍然可看做为高性能嵌入式 系统的典型配置。经典的处理器+FPGA的配置中有多种的架构形式,即多 个处理器单元,可能是ARM MIPS,或者DSP FPGA也可能是 多片的配置

9、,具体架构形式于具体处理的业务相关和目标设备的定位也相关。因为 FPGA作为简单业务流大数据 量的处理形态仍然是 CPU无可比拟的优势,FPGA内部可以开 发大量业务数据并行,从而实现高速的数据处理。在实现高速处理方面, CPU 的另一个发展趋势是多核, 多核处理器也能处理大数据量的业务的并行,例如业界 TERILA已推出64核的多核处理器,采用MIPS处理器,通过 二维MASH络连接在一起,形成 NOC的结构。在性能上已经 和现有的高速 FPGA的处理能力上不相上下。但是多核处理 器的不得不说的问题就是,同一业务流分配到多核处理上后, 如需交互,例如访问同一资源,就会造成读写的缓存一致的 问

10、题,解决的这一问题的天然思路是加锁,即在变量访问上 加自旋锁,但是带来的问题就是处理性能的急剧下降。而 FPGA无论并行处理和同一变量的访问,都可以变成工程师的设计水平的问题,没有原理性的挑战。没有一种器件可以满足全人类的众多需求,因此不用担心FPGA没有用武之地。 必定是一系列产品的组合。下面主要介绍一下FPGA可以作为现今热门场景的几种应用。(1)络存储产品,特别是现在的NAS或者SAN设备上, 其存储的时间、接口、安全性等都要求较高,而FPGA无论处理性能还是扩展接口的能力都使其在这一领域大有作为。现在高端FPGA单片就可以扩展32个或者更多4G或者8G的 FC接口。并且其协议处理相对的

11、固定,也使 FPGA在这一领 域有大量的可能应用。(2) 高速络设备,现在高速络设备 10G、40/100G 以太 设备领域,同样 FPGA也是关键的处理部件。特别是 IPv6的 商用化及大数据对于基础设施的高要求,都使这一领域的处 理应用会逐渐广泛,这一领域通常是高速络处理器(NP) +FPGA勺典型架构。(3)4G等通信设备,对于新一代通信基站的信号处理, FPGA+DS阵列的架构就是绝配。 特别是在专用处理芯片面世 之前,这样的架构可以保证新一代通信基础设施的迅速研发 和部署。没有完美的架构,只有合适的组合,各种芯片和架构都 是为应用服务,互相的渗透是趋势,也是必然。 FPGA相对处 理

12、器的可编程领域,仍然属于小众(虽然人数也不少)。但是正像一则笑话所说:大腿虽然比根命根子粗,但决没有命 子重要。这算开个玩笑。FPGA勺实现为以后的芯片化留下了 许多可能和想象空间,从而在应用大量爆发时通过芯片化来 大幅降低成本,这这也正是其他可编程器件所不能比拟的。FPGA和他那些小伙伴们(二)器件互联系统架构确 定,下一步就是 FPGA与各组成器件之间互联的问题了。通 常来说,CPU和FPGA的互联接口,主要取决两个要素:(1) CPU所支持的接口。( 2 )交互的业务。通常来说,FPGA一般支持与CPU连接的数字接口,其常 用的有 EMIF, PCI,PCI-E,UPP, 口( MII/

13、GMII/RGMII ), DDR 等接口。作为总线类接口,FPG/通常作为从设备与 CPU连接, CPU作为主设备通过访问直接映射的地址对FPGA进行访问。根据是否有时钟同步,通常总线访问分为同步或异步的总线, 根据CPU外部总线协议有所不同,但数据、地址、控制信号 基本是总线访问类型中总线信号所不能省略的。CPU手册中会对信号定义和时序控制有着详细的说明,FPGA需要根据这些详细说明来实现相应的逻辑。同时CPU还可以对访问时序进行设置,比如最快时钟,甚至所需的最小建立时间和保持 时间,这些一般 CPU都可以进行设置,而这些具体参数,不 仅影响FPGA的实现,也决定总线访问的速度和效率。对于

14、 同步总线,只需要根据输入时钟进行采样处理即可,但对于 异步总线,则需要的对进入的控制信号进行同步化处理,通 常处理方式是寄存两拍,去掉毛刺。因此用于采样的时钟就 与CPU所设置的总线参数相关,如采样时钟较低,等控制信 号稳定后在译码后输出,篇二:最近也面试了很多 FPGA工程师最近也面试了很多 FPGA工程师,没找到合适,我觉得 很多人从开始的时候就误入歧途了,对新手学习FPGA设计 我也说一点看法吧。我认为要从基础开始做,基础牢,才有 成为高手的可能。我觉得有以下几步必须要走:第一步:学习了解 FPGA结构,FPGA到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去 编程

15、。很多开发板的程序写的很烂,我也做过一段时间的开 发板设计,我觉得很大程度上,开发板在误人子弟。不过原 厂提供的正品开发板,代码很优秀的,可以借鉴。只有了解 了 FPGA内部的结构才能明白为什么写Verilog 和写C整体思路是不一样的。第二步:掌握FPGA设计的流程。了解每一步在做什么, 为什么要那么做。很多人都是不就是那几步吗,有什么奇怪 的?呵呵,我想至少有一半以上的人不知道 synthesize 和 traslate 的区别吧。了解了 FPGA的结构和设计流程才有可能知道怎么去优化设计,提高速度,减少资源,不要急躁,不要去在为选择 什么语言和选择哪个公司的芯片上下功夫。语言只是一个表

16、达的方式,重要的是你的思维,没有一个好的指导思想,语 言用得再好,不过是个懂语言的人。第三步:开始学习代码了。我建议要学代码的人都去Altera 或 Xilinx 的站上下原厂工程师的代码学习。不要一 开始就走入误区。个人愚见,欢迎大家讨论。做 fpga 主要是要有电路的思想,作为初学者,往往对 器件可能不是熟悉 ,那么应该对于数字电路的知识很熟悉 吧, fpga 中是由触发器和查找表以及 互联线等基本结构组 成的,其实在我们在代码里面能够看到的就是与非门以及触 发器,不要把 verilog 和 c 语言等同起来,根本就是不同的 东西,没有什么可比性,在写一句程序的时候应该想到出来 的是一个什么样的电路,计数器 选择器 三态门等等,理解 时序,逻辑是一拍一拍的东西,在设计初期想的不是很清楚 的时候可

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

当前位置:首页 > 办公文档 > 其它办公文档

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