您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 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针带保护电路的外接io7.此外还有:配套的光盘资料,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软件测试程序,调试硬件的时候对软件的运行也更熟悉了。在这次调试的过程中真的学到了很多
本文标题:fpga学习心得体会
链接地址:https://www.777doc.com/doc-7944939 .html