您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页fpga,学习心得体会

fpga,学习心得体会

来源:尚车旅游网
竭诚为您提供优质文档/双击可除

fpga,学习心得体会

篇一:FPGa学习心得大报告 《FPGa技术基础》学习报告 --课程内容学习心得 姓名:

学号:年级专业: 指导教师:

瞿麟20XX10401128自动化101薛小军

摘要从开始学FPGa到现在粗略算来的话,已经有3个多月了,就目前而言,我并不确定自己算不算高手们所说的入门了,FPGa学习总结。但是不管现在的水平如何,现在就总结一下自己学习它的感受或一些认识吧。 关键词

FPGadE2板Quartusii软件Verilog语言 引言

FPGa是什么?FPGa现状?怎样学习FPGa?

FPGa是现场可编程门阵列的简称,FPGa的应用领域最初为通信领域,但目前,随着信息产业和微电子技术的发展,可编程逻辑嵌入式系统设计技术已经成为信息产业最热门的技术之一,应用范围遍及航空航天、医疗、通讯、网络通讯、安防、广播、汽车电子、工业、消

竭诚为您提供优质文档/双击可除

费类市场、测量测试等多个热门领域。并随着工艺的进步和技术的发展,向更多、更广泛的应用领域扩展。越来越多的设计也开始以aSic转向FPGa,FPGa正以各种电子产品的形式进入了我们日常生活的各个角落。 正文

(1)掌握FPGa的编程语言

在学习一门技术之前我们往往从它的编程语言开始,如同学习单片机一样,我们从c语言开始入门,当掌握了c语言之后,开发单片机应用程序也就不是什么难事了。学习FPGa也是如此,FPGa的编程语言有两种:VHdL和Verilog,这两种语言都适合用于FPGa的编程。 (2)FPGa实验尤为重要

除了学习编程语言以外,更重要的是实践,将自己设计的程序能够在真正的FPGa里运行起来,这时我们需要选一块板子进行实验,我们选择使用dE2板才进行试验。 初识dE2开发板 dE2的资源

dE2的资源非常丰富,包括

1.核心的FPGa芯片-cycloneii2c35F672c6,从名称可以看出,它包含有35千个LE,在altera的芯片系列中,不算最多,但也绝对够用。altera下载控制芯片-EPcS16以及USB-Blaste对Jtag的支持。 2.存储用的芯片有:512-KBSRam,8-mbyteSdRam,4-mbyteFlashmemory

竭诚为您提供优质文档/双击可除

3.经典io配置:拥有4个按钮,18个拨动开关,18个红色发光二极管,9个绿色发光二极管,8个七段数码管,16*2字符液晶显示屏, 4.超强多媒体:24位cd音质音频芯片wm8731(mic输入+Linein+标准音频输出),视频解码芯片(支持nTSc/PaL制式),带有高速dac视屏输出VGa模块。

5.更多标准接口:通用串行总线USB控制模块以及a、B型接口,Sdcard接口,irda红外模块,10/100m自适应以太网络适配器,RS-232标准串口,PS/2键盘接口

6.其他:50m,27m晶振各一个,支持外部时钟,80针带保护电路的外接io

7.此外还有:配套的光盘资料,Qutuarsii软件,niosii6.0idE,例程与说明文档。 关于管脚分配

当我们创建一个FPGa用户系统的时候,到最后要做的工作就是下载,在下载之前必须根据芯片的型号分配管脚,这样才能将程序中特定功能的管脚与实际中的FPGa片外硬件电路一一对应。

FPGa简单的说,就是现场可编程逻辑阵列。它的内部是逻辑单元,它们之间可以用线连接,至于以怎样的形式相连,则可以根据应用者写入的逻辑决定。每次布线都会重新组合逻辑单元,从而可以任意的编写不同的逻辑。当然,前提是定义的逻辑块不超出它可读写的最大值。

总结在学习FPGa时,遇到的问题有许多,譬如,写代码时的警告,

竭诚为您提供优质文档/双击可除

特别是一些不能忽视的警告,每次遇到时,总是还要检查一会儿才能改过来,或者有的警告已经出现了几次,但是就是解决不掉。每次在学一个模块时,只要是看懂了,它的一些重点就没有及时的记录在本子上,只有个别的想起来时,才会做笔记。每做完一个模块,没有及时记录下自己从这个模块中学到了什么。上面的不足,都是在写模块的过程中,自己逐渐暴露出来的。我很庆幸自己的一些问题能及时的被发现,避免类似的事情再次发生。像遇到警告时,都要记录下来,通过改正后,要注释,写下警告的原因,定期看一下。每次写模块的时候,都要记下重点知识,即使是自己懂得的,好记性都是比不过烂笔头的。

关于以上的总结,我相信在以后的学习中一定会对自己有莫大的帮助,它会时刻警醒自己,在以前的学习中,自己有哪些不足,以后千万不能再去犯同样的错误,不断地纠正,不断地进步,相信自己一定会学好FPGa的。 篇二:FPGa学习心得

回想起自己学FPGa,已经有一段时间了,从开始的茫然,到后来的疯狂看书,设计开发板,调电路,练习各种FPGa实例,到最后能完成项目,一路走来,感受颇多,拿出来和大家分享,顺便介绍下自己的一点经验所得,希望对初学者有所帮助。

废话不说了,下面进入正题,学习FPGa我主要经历了这么几个阶段: ①、Verilog语言的学习,熟悉Verilog语言的各种语法。

②、FPGa的学习,熟悉Quartusii软件的各种功能,各种逻辑算法设

竭诚为您提供优质文档/双击可除

计,接口模块(RS232,Lcd,VGa,SPi,i2c等)的设计,时序分析,硬件优化等,自己开始设计简单的FPGa板子。

③、niosii的学习,熟悉niosii的开发流程,熟悉开发软件(SoPc,niosiiidE),了解niosii的基本结构,设计niosii开发板,编写niosiic语言程序,调试板子各模块功能。先来说说第一个阶段,现在主要的硬件描述语言有VHdL,Verilog两种,在本科时老师一般教VHdL,不过现在

Verilog用的人越来越多,其更容易上手(与c语言语法比较类似),也更灵活,现在的ic设计基本都用Verilog。像systemc,systemVerilog之类的应该还在萌芽阶段,以后可能会有较大发展。鉴于以上原因我选择了Verilog作为我学习的硬件描述语言。

其实有c语言的基础,学起Verilog的语言很简单,关键要有并行的概念,所有的module,assign,always都是并行的,这一点与软件语言有明显不同。这里推荐几本评价比较好的学习Verilog的书籍: ①、《verilog数字系统设计教程》,这本书对于入门是一本很好的书,通俗易懂,让人很快上手,它里面的例子也不错。但本书对于资源优化方面的编程没有多少涉及到。

②、《设计与验证VerilogHdL》,这本书虽然比较薄,但是相当精辟,讲解的也很深入,很多概念看了这本书有种豁然开朗的感觉,呵呵。 学习Verilog其实不用看很多书,基本的语法部分大家都一样,关键是要自己会灵活应用,多做练习。

Verilog语言学了一段时间,感觉自己可以编点东西,希望自己编的

竭诚为您提供优质文档/双击可除

程序在板子上运行看看结果,下面就介绍我学习的第二个阶段。 刚开始我拿了实验室一块cPLd的开发板做练习,熟悉Quartusii的各种功能,比如iP的调用,各种约束设置,时序分析,Logiclock设计方法等,不过做到后面发现cPLd的资源不太够(没有内嵌的Ram、不能用SignalTapii,LE太少等),而实验室没有FPGa开发板,所以就萌生了自己做FPGa开发板的意图,刚好cadence我也学的差不多了,就花了几天时间主要研究了FPGa配置电路的设计,在板子上做了Jtag和aS下载口,在做了几个用户按键和LEd,其他的口全部引出作为io口,电路比较简单,板子焊好后一调就通了(心里那个爽啊...)。我选的FPGa是cycloneii系列的EP2c5,资源比以前的FPGa多了好几倍,还有PLL,内嵌的Ram,可以试试SignalTapii,用内嵌的逻辑分析仪测试引脚波形,对于FPGa的调试,逻辑分析仪是至关重要的。利用这块板子我完成了项目中的几个主要功能:RS232通信,指令译码,配置ddS,ad数据高速缓存,电子开关状态设置等,在实践中学习起来真的比平时快很多,用到什么学什么动力更大。这个时候我主要看的数据有这几本感觉比较好:

①、《alteraFPGa/cPLd设计(基础篇)》:讲解一些基本的FPGa设计技术,以及Quartusii中各个工具的用法(iP,RTL,SignalProbe,SignalTapii,TimingclosureFloorplan,chipEditor等),对于入门非常好。

②、《alteraFPGa/cPLd设计(高级篇)》:讲解了一些高级工具的应用,LogicLock,时序约束很分析,设计优化,也讲述了一些硬件编程的

竭诚为您提供优质文档/双击可除

思想,作为提高用。

③、《FPGa设计指南--器件,工具和流程》:这本书看了他的目录忍不住就买了,这本书讲述了FPGa设计的各个方面,虽然每个方面都是点到为止,但能让你有个整体的概念,了解FPGa的所有设计功能,了解FPGa开发的整个流程。

④、在这里也推荐几个学习FPGa比较好的论坛

,不过很多人一看到英语就不想看,其实上面的英文很简单,很多时候不敢看是因为对自己没信心或心静不下来看。不过官方网站上资料很多,刚开始可能会觉得资料安排的有点乱,不方便查找,以后有时间我列个资料的链接目录,整理一下,方便大家查找。

到这里,自己最FPGa的学习有一段时间了,练习了很多实例,自己也编写了不少程序,也有了一些项目经验,算是对FPGa有些了解了。在不断的学习中发现FPGa不仅可以做逻辑设计,算法设计等,还能做嵌入式开发,altera先后开发了nios,niosii两款FPGa的嵌入式软核,并有配套的软件,刚开始看到这些我真是心中突然豁然开朗,学习真的是无止境,又一个全新的领域摆在我面前,我决定学习niosii,要学就要学最好。

刚开始入门是很痛苦的,嵌入式设计需要从硬件到驱动到软件全部熟悉,硬件系统问题还不是很大(以前做过单片机,dSP等mcU),处理器的架构心里还有点数,对于驱动和软件工程,刚开始学习真的很头痛。niosii应该还算比较新的内容(应该是20XX年出的),国内的书籍不算很多,网上这方面的资料也比较零碎,所以我就开始将altera网站上

竭诚为您提供优质文档/双击可除

这方面的资料系统的看一边,这里推荐几本网站上的handbook: ①、EmbeddeddesignHandbook ②、niosiiProcessorReferenceHandbook ③、niosiiSoftwaredeveloper'sHandbook ④、QuartusiiHandbook,Volume4:SoPcBuilder ⑤、QuartusiiHandbook,Volume5:EmbeddedPeripherals

看完这些handbook,总算基本明白整个架构,软硬件设计方法,驱动的编写等,感觉自己可以编一些嵌入式的程序了,不过虽然前面做的那块ep2c5的板子支持niosii系统,不过对于嵌入式设计来说还是显得单薄了一点,没有SdRam,Flash这两个比较基本的模块,Ep2c5内嵌的Ram太小,程序写不大,而且每次总要绞尽脑汁优化程序代码大小,很多时候优化了后函数功能会受到,不利于初学者,也不利于调试。所以到这里我有产生了自己做一块nios开发板的想法(直接买比较贵,自己做便宜,而且还能锻炼自己,一举两得),通过借鉴其他开发板,选择自己开发板上需要包含什么模块,确定各个模块使用什么芯片,阅读各个芯片的datasheet,画出原理图并做出PcB图,这块板子我选的是Ep2c8Q208,比上一块资源又将近多了一倍,板子上还有以下模块:SdRam,Flash,EPcS4,RS232,USB,VGa,PS2,ad,da,Lcd等,满足了一般开发板的配置要求。板子回来以后调试了四五天,(flash工作了,Lcd显示了,RS232通了,USB通了,ad,da工作了,SdRam正常了...),真是每天都有惊喜,每个模块都编写了niosii软件测试程序,调试硬件的时候对软件的运行也

竭诚为您提供优质文档/双击可除

更熟悉了。在这次调试的过程中真的学到了很多,为此专门写了好几页调试笔记,下次拿出来和大家一起分享。现在硬件平台有了,niosii也了解的差不多了,终于可以自己编写一些规模大一点的程序了。 学FPGa的一点心得

从去年开始学FPGa,以前一直做dSP,但因为项目的需要,在一个应用中只有FPGa才能解决问题,所以硬着头皮上FPGa,又因为结项目的时间比较紧,所以主要以解决问题为目的,说真的,项目做下来写了四千多行的代码,达到了设计目标,但对FPGa学习还不够系统,也正进一步的学习中.因为我是单干,没有团队,遇到问题只能在网上找资料,其难度可想而知,幸好以前用过cPLd,有一点基础,用的编程语言是aHdL,感觉aHdL写一点小程序还可以,但做复杂程序就有点费力了(应该是我的aHdL没学好),所以在做FPGa程序时我选择了比较简单的 verilog语言。

由于没人指导,所以买了一个简单的FPGa开发板,是cyclone的,开发板就是好,送了较多学习资料,用了一个星期的时间,学习了nioSii的基本应用,当然,我的需要就是知道如何在nioS里控制一个信号的高低电平变化就够了,其它全是c语言的东西,主要是熟悉了Quartus的开发平台,并用nioS程序把要实现的主要代码用c写了一遍,通过了,但速

度上不去。有这些知识做铺垫后,就开始了项目的设计。

项目要求将外部高速数据(40mB/s)进行存盘,并可以将存盘的数据在适当的时候原路返回(速度不变)。所以在硬件的设计上FPGa选

竭诚为您提供优质文档/双击可除

择了EP2c35F484c8n,外部有128m的SdRam做为数据的缓冲。所以FPGa的主要程序集中在aTaHoST控制器(实现Udma读写)、SdRam控制器(大容量循环缓冲)上,当然还包括一些其它的控制,如实时时钟,USB2.0芯片控制, RS232的通信及相应的通信协议。

硬件完成后,大部分的时间都在写程序,感觉verilog跟C差不多,就将原来写成的C代码翻译了一下,每写一段代码就测试一下。起初并不知道在Quartus里还有逻辑分析仪的功能,所以程序出了问题只能使劲的分析代码,猜想问题可能出在哪里,万不得已时才做一下仿真(后来看很多有做程序都先做仿真,仿真通过后再下载到目标板里运行测试,但到现在我的仿真关还没过),所以做得很累。我感到这样做下去到时间结点肯定结了不了项目,就找FPGa的QQ群向高手们请教经验,知道了可以Quartus的逻辑分析仪来观察信号,哈哈,爽了(感谢感谢)。后面的程序找问题就容易多了,按照aTa协议、SdRam手册、及各外围芯片手册一步步写下去,当然其中也遇到了各种各样的问题,但很快得到解决。一直到

项目结束,都是用逻辑分析仪来找问题,没做过仿真(所以现在仿真关还没过)。今年又用FPGa做了一些项目。简单说一下体会吧,归结起来就三个字:做、想、问。书读千遍,不如做一遍;看别人做百次,不如自己做一次;就是要实践。实践的动力一方面来自兴趣,别一方面来自己压力,我个人觉得后者更重要。有需求会容易形成压力,也就是说最好能在实际的项目开发中锻炼,而不是为了学习而学习。

竭诚为您提供优质文档/双击可除

在做的过程中要多想,多想想问题出现的原因,问题解决后要多问几个为什么,这也是经验积累的过程,最好要写项目日志,把问题及原因、解决的办法都写进去。还要多问,遇到问题经历了痛苦的思索后还得不到解决就要问了,问搜索引擎,问网友,问同学同行,一篇文章、朋友们的点拨都可能帮助 自己快速解决问题。 FPGa入门心得及系列资料

不知道为什么自己每次接受一个新事物,总要花上那么长的一段时间。每个东西,总要经过从一点都不了解,到有点了知道,到最后才想知道要来学学,但每次学习时也总是走马观花。可能真的受中国的教育思想束缚的太严重了吧。以前的人读书,好像也没有什么目标,只是知道上课要认真听,考试要考好。这样就可以了。也从来没想过,我学这个到底有什么用呢。

但是上了大学后,一切都改变了。我们的学习也不再是为了考试而考试了。尤其是像我们学电子,假如仅仅是为考试的话,那你的大学完全可以过得很轻松,整天睡觉,游戏,照样可以考高分。那样毕业了,你说你的大学学习是不是等于0。到头来还是什么也不是。所以当你进入大学,当你选择了电子,就决定了你从此要为之付出。不管将来怎样,只要你朝着自己的方向走,一定会成功的。

现在说说FPGa的学习吧,或许,很多人刚接触FPGa时,可能还在为到底什么是cPLd,什么时FPGa,我到底要学习哪门语言而苦恼,不知大家是不是这样,但是我曾经就是这样,也到网上去找过,最后

竭诚为您提供优质文档/双击可除

也终于找到了答案。因为那时身边的人都还没学过。其实cPLd,FPGa最大的区别也就是FPGa的程序必须由配置芯片经过上电后,将程序写入芯片中,也就是FPGa的内部存储器是相当于内存一样,一掉电就没了。而cPLd是像单片机一样,程序是存储存在内部中的,一上电就可以跑了。二者的功能差不多,但是FPGa的资源比cPLd更加丰富。在cPLd上可以实现的功能,在FPGa上基本都可以实现的。所以也不必去想太多什么是FPGa,cPLd了,只要弄懂了二者的内部结构就可以了。

至于学什么语言吗,首先要看你们在校老师上课是用什么语言,就先那个语言吧,我们学校老师是用VHdL语言的,所以一开始我也是先学VHdL语言,而且学习资料比较多,但是在网上看到,好像公司里面用的比较多的是VerilogHdL语言,为了能看懂一些资料,现在也在学VerilogHdL语言,学习中发现,要是学过c语言的人,会发现VerilogHdL好像更加好理解。

一旦你开始了学习FPGa,那就要坚持下去,因为语言这东西,要是不一下子把它强记住,过不了两天就又忘了,书本的东西,一定要越快消化越好,这样你看别人的程序时就不会有什么语言障碍了。之后就是编写程序,模仿别人的模块,仿真实验,这步很重要,要不你就不会发现FPGa功能的强大,你也不知道到底仿真的结果和实际是不是有差别。当你成功时,你一定会感到成功的喜悦。

当你基本的程序都看得懂时,有完整地编个程序,而且在硬件上实验过时,那么祝贺你入门了,之后的道路就是不断的实践,跟学习单片

竭诚为您提供优质文档/双击可除

机一样,只有不断的学习,不断的做东西,你的编程能力才会提高。 以上仅仅为作者本人的一点观点,本人现在还是一个电子白菜,只是苦于自己学习电子找不到捷径,不想还有更多的人跟我一样,在电子的道路中不断摸索,不断徘徊。

看过一个高手对FPGa的认识,自己对FPGa未来的发展更是看好,鉴定了学好的决心,FPGa在电子开发工作中已经上升到数字系统核心处理器,尽快掌握FPGa开发技术显得非常迫切。总结了一下: 传统的开发方式:一半固定,硬件cPU是不可编程的,另一半灵活是可编程的软件

FPGa新开发形式:两个部分都是可编程了,FPGa,它代表的就是硬件的编程。这两部分都可编程的一个结合点就是FPGa上的软核。另外可以根据需要通过外部单片机把合适的应用bit流写入到FPGa内,从而完成根据功能需要变更硬件。硬件可重构!

使计算机的能力越来越强,方法一:通过提高工艺来提高工作频率;方法二:通过优化系统体系,并行! 新学习思想:FPGa设计有点象围棋:易学难精 带着问题学习是最有效率的

时序性能的调整提高是FPGa开发能力的标志

多看书,但要注意,书当做字典,不是所有地方都去看。

目前,在FPGa上有三种类型开发方法和应用方向:a、逻辑类应用b、软核类应用c、dSP类应用。

逻辑类应用我们接触的最早,也是FPGa最初的应用领域,大的应用

竭诚为您提供优质文档/双击可除

上,一些数字ic设计可以在FPGa做前期的功能验证,在通信领域,FPGa做信号的编解码等等,小的应用上我们做的最多的实际是cPLd,完成信号的变换控制等等。软核应用是前几年才兴起,现在热门的开发应用方法,在原本需要FPGa结合cPU的地方有成本和灵活性优势。 FPGa的dSP应用是非常有潜力的,性能优势非常明显。开发方法是用matlab的simulink中嵌入厂商的开发工具包,算法验证在matlabsimulink工具下完成,在开发工具包的支持下生成HdL模块或者直接生成FPGa下载配置文件,这个方向是FPGa应用最有挑战能力领域。mathworks公司不久前也推出了于FPGa厂商的SimulinkHdLcoder工具,使的matlab在数字系统设计领域迈出了坚实的一步,把Simulink模型和Stateflow框图生成位真(Bit-Ture)、周期精确(cycle-accurate)、可综合的Verilog和VHdL代码,为matlabsimulink用户提供了通往FPGa设计实现的直接通道。 篇三:FPGa研发牛人心得总结 FPGa研发之道

FPGa是个什么玩意?FPGa是个什么玩意? 首先来说:

FPGa是一种器件。其英文名feildprogramablegatearry。很长,但不通俗。通俗来说,是一种功能强大似乎无所不能的器件。通常用于通信、网络、图像处理、工业控制等不同领域的器件。就像aRm、dSP等嵌入式器件一样,成为无数码农码工们情感倾泻而出的代码真正获得生命的地方。只不过,一样的编程,却是不一样的思想。嵌入式软件人

竭诚为您提供优质文档/双击可除

员看到的是c。而FPGa工程师看到是硬件描述语言,verilog或VHdL。软件看到是函数、对象、重构。FPGa工程师则是模块、流水、复用。从现象上看,都是代码到下载程序再到硬件上运行。不能只看现象而忽略本质。FPGa开发本质上是设计一颗ic,“**的身子,丫鬟的命”不是所有verilog/VHdL代码,都能获得青睐去流片成为真正的芯片,而更多的则成为运行在FPGa器件上,成为完成相同功能的替代品。其实现的功能却一点也不逊色于百万身价流片的近亲。从而成为独树一帜的行业。

FPGa开发的流程,是通过verilog/VHdL等硬件描述语言通过Eda工具编译、综合、布局布线成为下载文件,最终加载到FPGa器件中去,完成所实现的功能。那硬件描述语言描述的是什么?这里描述的就是组合逻辑电路和时序逻辑电路。组合逻辑电路就是大家所熟知的与门、或门、非门。时序逻辑电路则是触发器。数字芯片上绝大部分逻辑都是这两种逻辑实现的。也就是基本上每个电子行业的人所学过的数字电路。顺便说一下,感谢香农大师,在其硕士毕业论文就奠定了数字电路的的根基。只

不过在FPGa中,与或非的操作变成了查找表的操作。于是所有的数字电路变成了查找表和寄存器,这就构成了FPGa的基础。查找表负责逻辑实现,寄存器存储电路状态。二者配合,双剑合璧,天衣无缝。这是最初的FPGa的雏形。现代FPGa内部出了查找表和寄存器之外,还有Ram块,用于存储大量的数据块,这是因为Ram块较寄存器来存储大量数据更能节省芯片实现的面积。FPGa内部的时序电路则需

竭诚为您提供优质文档/双击可除

要时钟的输入,通常FPGa内部需要时钟种类较多,因此需要在片内产生所需的的相关的时钟,如不同频率,不同相位的时钟,因此时钟管理单元dcm/PLL也是必不可少的内部部件。除此之外,FPGa内部还包括接口i/o,i/o分为普通i/o和高速i/o,高速i/o支持例如高速的SERdES,用于实现XaUi,PciE等高速接口,这些接口动辄几Gbps到10Gbps以上。此外种类多种多样的硬核iP也是各FPGa厂商差异化竞争利器,例如PowERPc、aRm等硬核iP。从而构成cPU+FPGa于一体的集可编程性和可重构的处理平台。因此,相对来所,FPGa虽然发展有二三十年的历史,其基本架构一直不变不大。

回到问题开始的地方,FPGa的英文翻译过来是现场可编程门阵列。这是相对aSic来说的,aSic的硬件也可看做是门阵列,但是其是非可编程的器件。流片完成其功能就固化了,而FPGa的可编程性就在其能够重新下载配置文件,来改变其内在的功能,这就是其可编程性的由来。从前端开发流程来说,FPGa和aSic开发并无二至。由于aSic开发一次性投入成本较高,FPGa无疑是一种经济的替代方案,用于实现的高速的数据并行处理。如业务能够支撑大规模应用并且协议固化,则能够分摊成本的aSic实现就有成本的优势。FPGa作为一种器件,技术上主要垄断在少数大公司手中,那就是双巨头aLTERa和XiLinX。除此之外还有一些份额相对较小的公司,例如acTEL和LaTTicE。不止是FPGa的硬件芯片,其配套的Eda工具技术壁垒更高。因此相对于cPU来说,FPGa的国产化

更不乐观,不过已经有国内的厂商来从事这一行业,例如国微和京微

竭诚为您提供优质文档/双击可除

雅格等,也在一些细分市场上推出自己的FPGa产品。

FPGa和他那些小伙伴们(一)系统架构组成通常来讲,“一个好汉三个帮”,一个完整的嵌入式系统中由单独一个FPGa使用的情况较少。通常由多个器件组合完成,例如由一个FPGa+cPU来构成。通常为一个FPGa+aRm,aRm负责软件配置管理,界面输入外设操作等操作,FPGa负责大数据量运算,可以看做cPU的专用协处理器来使用,也常会用于扩展外部接口。常用的有aRm+FPGa,dSP+FPGa,或者网络处理器+FPGa等种种架构形式,这些架构形式构成整个高速嵌入式设备的处理形态。

不得不说的是,随着技术的进步,现在cPU中集成的单元也随之增加,例如Ti的“达芬奇”架构的处理器内部通常由aRm+dSP构成。同时异构的处理器形态业逐渐流行,如aRm9+aRm7的结构。这类一个主要处理系统(aRm9)外带辅助处理系统(aRm7)的设计,同样成为现在处理器设计的流行方向。主处理系统运行嵌入式操作系统,而辅助处理单元则专注某一些的专用领域的处理。这些系统的应用减少了FPGa作为cPU协处理单元的领域。因为毕竟FPGa相比aRm等流行嵌入式处理器价格要相对较高。

在这种情形下,FPGa的厂商似乎也感受到了压力,不约而同推出了带aRm硬核的FPGa,例如aLTE

Ra的和XiLinX的zYnQ和aLTERa的SocFPGa。这是即是互相竞争的需要,也是同众多cPU厂商一掰手腕的杰总。即使在这两种在趋势下,经典的处理器+FPGa的设计仍然可看做为高性能嵌入式系统的

竭诚为您提供优质文档/双击可除

典型配置。

经典的处理器+FPGa的配置中有多种的架构形式,即多个处理器单元,可能是aRm,miPS,或者dSP,FPGa也可能是多片的配置,具体架构形式于具体处理的业务相关和目标

设备的定位也相关。因为FPGa作为简单业务流大数据量的处理形态仍然是cPU无可比拟的优势,FPGa内部可以开发大量业务数据并行,从而实现高速的数据处理。

在实现高速处理方面,cPU的另一个发展趋势是多核,多核处理器也能处理大数据量的业务的并行,例如业界TERiLa已推出核的多核处理器,采用miPS处理器,通过二维maSH网络连接在一起,形成noc的结构。在性能上已经和现有的高速FPGa的处理能力上不相上下。但是多核处理器的不得不说的问题就是,同一业务流分配到多核处理上后,如需交互,例如访问同一资源,就会造成读写的缓存一致的问题,解决的这一问题的天然思路是加锁,即在变量访问上加自旋锁,但是带来的问题就是处理性能的急剧下降。而FPGa无论并行处理和同一变量的访问,都可以变成工程师的设计水平的问题,没有原理性的挑战。没有一种器件可以满足全人类的众多需求,因此不用担心FPGa没有用武之地。必定是一系列产品的组合。下面主要介绍一下FPGa可以作为现今热门场景的几种应用。

(1)网络存储产品,特别是现在的naS,或者San设备上,其存储的时间、接口、安全性等都要求较高,而FPGa无论处理性能还是扩展接口的能力都使其在这一领域大有作为。现在高端FPGa单片就可

竭诚为您提供优质文档/双击可除

以扩展32个或者更多4G或者8G的Fc接口。并且其协议处理相对的固定,也使FPGa在这一领域有大量的可能应用。

(2)高速网络设备,现在高速网络设备10G、40/100G以太网设备领域,同样FPGa也是关键的处理部件。特别是iPv6的商用化及大数据对于基础设施的高要求,都使这一领域的处理应用会逐渐广泛,这一领域通常是高速网络处理器(nP)+FPGa的典型架构。

(3)4G等通信设备,对于新一代通信基站的信号处理,FPGa+dSP阵列的架构就是绝配。特别是在专用处理芯片面世之前,这样的架构可以保证新一代通信基础设施的迅速研发和部署。

没有完美的架构,只有合适的组合,各种芯片和架构都是为应用服务,互相的渗透是趋势,也是必然。FPGa相对处理器的可编程领域,仍然属于小众(虽然人数也不少)。但是正像一则笑话所说:大腿虽然比根命根子粗,但决没有命子重要。这算开个玩笑。FPGa的实现为以后的芯片化留下了许多可能和想象空间,从而在应用大量爆发时通过芯片化来大幅降低成本,这这也正是其他可编程器件所不能比拟的。

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所设置的总线参数相关,如采样时钟较低,等控制信号稳定后在译码后输出,

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务