fpga,学习心得体会_第1页
fpga,学习心得体会_第2页
fpga,学习心得体会_第3页
fpga,学习心得体会_第4页
fpga,学习心得体会_第5页
已阅读5页,还剩48页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、fpga,学习心得体会篇一:FPGA学习心得大报告FPGA技术基础学习报告-课程内容学习心得姓名:学号:年级专业:指导教师:瞿麟XX10401128自动化101薛小军摘要从开始学FPGA到此刻粗略算来的话,已经有3个多月了,就目前而言,我并非确信自己算不算高手们所说的入门了,FPGA学习总结。可是不管此刻的水平如何,此刻就总结一下自己学习它的感受或一些熟悉吧。关键词FPGADE2板Quartusll软件Verilog语言引言FPGA是什么?FPGA现状?如何学习FPGA?FPGA是现场可编程门阵列的简称,FPGA的应用领域最初为通信领域,但目前,随着信息产业和微电子技术的进展,可编程逻辑嵌入式

2、系统设计技术已经成为信息产业最热点的技术之一,应用范围遍及航空航天、医疗、通信、络通信、安防、广播、汽车电子、工业、消费类市场、测量测试等多个热点领域。并随着工艺的进步和技术的进展,向更多、更普遍的应用领域扩展。愈来愈多的设计也开始以ASIC转向FPGA,FPGA正以各类电子产品的形式进入了咱们日常生活的各个角落。正文(1)把握FPGA的编程语言在学习一门技术之前咱们往往从它的编程语言开始,犹如窗习单片机一样,咱们从C语言开始入门,当把握了C语言以后,开发单片机应用程序也就不是什么难事了。学习FPGA也是如此,FPGA的编程语言有两种:VHDL和Verilog,这两种语言都适合用于FPGA的编

3、程。(2)FPGA实验尤其重要除学习编程语言之外,更重要的是实践,将自己设计的程序能够在真正的FPGA里运行起来,这时咱们需要选一块板子进行实验,咱们选择利用DE2板才进行实验。初识DE2开发板DE2的资源DE2的资源超级丰硕,包括核心的FPGA芯片-CycloneII2C35F672C6,从名称能够看出,它包括有35千个LE,在Altera的芯片系列中,不算最多,但也绝对够用。Altera下载操纵芯片-EPCS16和USB-Blaste对Jtag的支持。存储用的芯片有:512-KBSRAM,8-MbyteSDRAM,4-MbyteFlashmemory经典IO配置:拥有4个按钮,18个拨动开

4、关,18个红色发光二极管,9个绿色发光二极管,8个七段数码管,16*2字符液晶显示屏,超强多媒体:24位CD音质音频芯片WM8731(Mic输入+Lineln+标准音频输出),视频解码芯片(支持NTSC/PAL制式),带有高速DAC视屏输出VGA模块。5更多标准接口:通用串行总线USB操纵模块和A、B型接口,SDCard接口,IrDA红外模块,10/100M自适应以太络适配器,RS-232标准串口,PS/2键盘接口6其他:50M,27M晶振各一个,支持外部时钟,80针带爱惜电路的外接IO7.另外还有:配套的光盘资料,QutuarsII软件,NiosII,例程与说明文档。关于管脚分派当咱们创建一

5、个FPGA用户系统的时候,到最后要做的工作确实是下载,在下载之前必需依照芯片的型号分派管脚如此才能将程序中特定功能的管脚与实际中的FPGA片外硬件电路一一对应。FPGA简单的说,确实是现场可编程逻辑阵列。它的内部是逻辑单元,它们之间能够用线连接,至于以如何的形式相连,那么能够依照应用者写入的逻辑决定。每次布线都会从头组合逻辑单元,从而能够任意的编写不同的逻辑。固然,前提是概念的逻辑块不超出它可读写的最大值。总结在学习FPGA时,碰到的问题有许多,譬如,写代码时的警告,专门是一些不能轻忽的警告,每次碰到时,老是还要检查一会儿才能悔改来,或有的警告已经显现了几回可是确实是解决不掉。每次在学一个模块

6、时,只若是看懂了,它的一些重点就没有及时的记录在本子上,只有个别的想起来时,才会做笔记。每做完一个模块,没有及时记录下自己从那个模块中学到了什么。上面的不足,都是在写模块的进程中,自己慢慢暴露出来的。我很庆幸自己的一些问题能及时的被发觉,幸免类似的情形再次发生。像碰到警告时,都要记录下来,通过更正后,要注释,写下警告的缘故,按期看一下。每次写模块的时候,都要记下重点知识,即便是自己知道的,好记性都是比只是烂笔头的。关于以上的总结,我相信在以后的学习中必然会对自己有莫大的帮忙,它会时刻警醒自己,在以前的学习中,自己有哪些不足,以后万万不能再去犯一样的错误,不断地纠正,不断地进步,相信自己必然会学

7、好FPGA的。篇二:fpga学习心得FPGA学习心得学习fpga个多月以来,完全从零开始学习,感觉自己学到的东西真很多,尽管还不是很熟练,只是也对fpga有了专门好的了解。以前一直没有想过要来总结些什么,是感觉自己关于fpga全然就像是一无所知一样,尽管天天在学,只是确实没有一个整体观念,学的东西太混乱也没有一个整体的框架。到了今天终于感觉自己的学习已经小有成绩了,尽管仍是没有能够独立设计的自信。在最初学习的时候最要紧确实是关于fpga结构的一个大体熟悉和对硬件描述语言verilogHDL语言的学习。之因此选择学习fpga是因为在这一学期找工作中发觉,此刻很多公司都需要会一点fpga方面的知识

8、,在笔试的时候也会偶然碰到一些用HDL语言编程的试题。此刻很多硬件工程师已经再也不是单纯的用传统的方式进行电路的设计,至少此刻很多招聘的职位当中再也不是单纯的电路的设计了,很多都涉及到嵌入式和HDL语言。Fpga此刻正在以异样的速度进展,在08年全世界金融危机的时候大多数行业都呈此刻下滑的趋势,而fpga的厂商如xilinx和altera等公司的收入却呈现出增加的态势。在我眼里fpga必将是以后硬件工程师不可缺少的一项本领,这也确实是我学习fpga的缘故之一。一、硬件描述语言:关于硬件描述语言(HDL)语言我选择的是和C语言类似的verilogHDL语言,尽管VHDL语言在很多方面优于veri

9、logHDL语言,可是作为初学,仍是先学习一个简单一点的语言,尽可能先将所需要学习的东西过一遍,以后等时刻许诺的时候再去学习VHDL语言,在上有看到此刻出来了一个叫systemverilog的语言,听说融合了verilog和VHDL语言各自的优势,可能以后会成为行业统一的语言吧。verilogHDL现时期要紧接触的确实是对组合逻辑电路和时序电路的描述了。所接触的程序中以always(*)模块占多数,几乎是所见过模块的核心部份了,其实在学习那个语言上面也没有花太多的时刻,因为有对C语言的学习,因此就先入为主了。当了解了其大体语法事后就开始了实例的分析,在此进程中也有了解fpga的结构,只是感觉没

10、有真正利用过fpga因此关于那些什么pll、sram、sdram、norflash等都没有什么直观的感觉,因此关于程序也全然不明白如此些的缘故和到底能实现什么功能,这也成了我学习verilogHDL语言的一个障碍。二、fpga的大体结构:在那个地址仍是得熟悉清楚fpga的结构,记得有一个在外面去面试的时候,他人就问了我一个问题fpga和mcu的联系与区别?那时我全然都尚未接触过fpga,只明白fpga是属于硬件方面的开发板。后来通过自己对fpga的接触和上的相关说明终于有了一个初步的熟悉。接下来就具体说明一下:MCU又称为单片机,它为8位的微操纵器,要紧用在工业操纵,FPGA那么为可编程逻辑器

11、件的一种,拥有丰硕的硬件资源,可实现壮大的逻辑功能,由于其硬件重构的特性,适合各类领域的应用;MCU的编程语言要紧为C语言,以软逻辑实现,它通过顺序执行指令来实现特定功能,幸免不了低速的缺点,相较之下,FPGA它以Verilog或VHDL等硬件描述语言为编程语言,由于直接由硬件实现逻辑,因此它并行执行,从而使速度大大提高;MCU的这种同一时刻只能处置一条指令的特点也阻碍了它的应用,它只能用于一些算法的设计及简单的操纵,而FPGA由于并行执行的特性,大量应用于复杂逻辑操纵和大量的数据运算和处置。FPGA是在PAL、GAL、CPLD等可编程器件的基础上一步一步进展起来的。PAL是与阵列可编程或阵列

12、固定,它的缺点是:采纳熔丝工艺,只能一次编程,而且它的输出是固定的,不能编程;也确实是说芯片一旦选定,输出结构将不可改变。GAL是在PAL的基础上发展起来的,能够重复编程。与PAL的最大区别是:输出结构能够由用户自己概念。但它结构简单,I/O数量有限。CPLD是在GAL的基础上进展起来的。它要紧由输入输出操纵单元、宏单元和互连矩阵等组成。随着电子市场对功能要求的不断提高,CPLD愈来愈不能知足市场的需求。它最大只有512个宏单元,大部份是组合逻辑,难以实现复杂的时序逻辑设计,而且功耗专门大。随着工艺的进展,FPGA登上了历史舞台并成为主角,它内部资源丰硕,不管是时序逻辑仍是组合逻辑都很多。它是

13、作为专用集成电路领域中的一种半定制电路而显现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。三、altera公司的软件利用:其实真正对fpga有一个整体了解是在其软件的利用进程中。我在实验室里利用的是altera公司的sycloneII系列的EP2C35F484C8,因此利用的软件确实是altera公司提供的quartusll和niosEDS。在quartus的利用中其他的没什么说的,只是有几点需要注意:一确实是顶层文件名必然要和工程名一致;二确实是工程必然不能放在含中文的目录下,否者编译会犯错。在最初利用quartus的时候就涉及到仿真和引脚分派的问题。关于引脚分派,最

14、开始没人提示因此我以为只要弄上去不报错就好了,后来在下载到实验板上的时候,觉察全然就达不到预期的成效,于是在上找了很多相关的技术,也尝试过通过tcl脚本配置,上还特推荐这种方式。后来在handbook里面终于找到了相应的医治,觉察仍是我一个一个的敲进去方彪。然后确实是仿真了,在最初利用的quartusll版本中还自带仿真工具,因此就没有借用第三方的modelsim,因为感觉编写testbench也是一个很麻烦的情形,可是自从quartusII10版本以后altera公司就取消了仿真工具,而推荐大伙儿利用第三方的modersim,哎没方法只有再去研究一下modersim破解了方式和testben

15、ch的书写了。其实quartusII里面还有很多有效的工具,比如说像signaltapII、timeQuest、sopcbuilder等。此刻我还欠缺的确实是利用timeQuest进行时序收敛,那个在特权同窗的视频教程中有,还需要好好去学习,而关于signaltapII和sopcbuilder已经有了必然的了解。其实sopcbuilder确实是以前的nios和niosII的一个后继者,它要紧确实是挪用他人已经写好了的一些程序来操纵fpga的各个组件,固然也能够依照自己的需要进行自概念组件以达到自己的设计要求。在配置sopc的时候必然要依照自己所利用的fpga型号就行参数的设置,因此阅读开发板利

16、用手册就显得相当重要了。而我在配置sopc的进程中也碰到过很多的问题,此刻也还有很多技术没有学会,我在那个方面花费的时刻也是专门的多的,几乎用去了我2/3的时刻。刚开始配置的时候仍是感觉自己学到了很多东西,也作出了很多实际的成效,给自己带来了很多的信心,可是到后面觉察自己仿佛只是在做一个简单的仿照的工作,于是愈来愈感觉自己偏离了学习的重心,而且在那个进程中也碰到了很多没有解决的问题,于是学习就有点停滞不前了。很多器件什么缘故需要,什么缘故不需要?成了困扰我的要紧问题,而Nios_II_嵌入式软核SOPC设计原理及应用、NiosII的那些事儿和用户手册和友博客给了我专门大的帮忙,也补充了自己在这

17、方面的理论知识。在学习sopc进程中到此刻也还有很多难题没有取得解决,固然不必然确实是sopc的问题,也有HDL语言的问题:第一、在配置锁相环的时候碰到一个很奇怪的问题。第一来讲说锁相环的功能,锁相环要紧的功能是能够进行倍频和分频而且能够产生相移。而一样的niosII软核能够工作在100MHz的频率下,而sycloneII系列的晶振时钟是50MHz,因此一样在配置sopc的时候都需要用到锁相环,固然也能够不用。但是若是要用到SDRAM组件的时候就必然要用PLL了,因为SDRAM的时钟和系统时钟之间有一个相移,必需通过PLL来实现相移。而PLL的利用有两种方式,一种确实是在quartusII里面

18、添加,一种确实是在sopc里面添加PLLcontrol来生成。第一种没有多少好说的,那个地址要紧确实是说一下第二种方式,因为我在第二种配置下没有成功过。那时一直不明白缘故所在,也在上看了很多想过质料,依旧没有找到权威的说明,终于在特权同窗的博客上面取得了解答我觉察自己很多知识都是通过特权同窗的博客、书籍和视频而取得,看到很多友推荐购买特权同窗的书籍学习看来真是对的。第二、在观看了特权同窗的视频后,试着将那些繁琐的程序分模块来进行书写。可是关于顶层例化模块的书写一直还没来得及认真去学习。大多时候都是通过生成板块图在bdf文件里面用连线的方式来代替例化,关于我现时期这种小工程来讲如此还并无多大的阻

19、碍,也和同窗讨论过例化。他们的观点是那个东西能够通过连线的方式来完成,因此没必要再去做那个“麻烦而看似作用不大”的例化了。其实例化模块的存在是有专门大的意义的,或许在咱们现时期的这种小系统中还表现不出它的作用。咱们如此假想一下,假设在公司里面要做某个工程,那个工程由1000个模块组成,分给不同的小组完成,每一个小组负责一个模块,最后由总工程师将各个模块整合,若是没有例化文件那么总工程师就用对这1000个模块图进行连接,而通过例化模块对管脚进行分派后就只有一个模块图了,不同可想而知了吧。固然学习编写例化模块还有一个益处确实是能够让自己对所编写的程序有一个整体概念,增强自己关于程序的明白得能力,如

20、此能提高自己的编程能力。第三、确实是涉及到一个自概念组件的问题了,其实任何组件都能够通过PIO端口进行外加,可是那个和模块例化也有一样的问题。既然能够使模块的数量减少又何乐而不为呢?第四、确实是时序收敛了,那个真的尚未认真去研究过,只是观看了特权同窗的教学视频,感觉太繁琐了,仍是等以后又充沛的时刻的时候再去学习了。第五、而在我的毕业设计当中需要用到vga显示,这成了我这段时刻的要紧难题,刚开篇三:FPGA,学习心得体会篇一:fpga学习心得大报告fpga技术基础学习报告-课程内容学习心得姓名:学号:年级专业:指导教师:瞿麟XX10401128自动化101薛小军摘要从开始学fpga到此刻粗略算来

21、的话,已经有3个多月了,就目前而言,我并非确信自己算不算高手们所说的入门了,fpga学习总结。可是不管此刻的水平如何,此刻就总结一下自己学习它的感受或一些熟悉吧。关键词fpgade2板quartusii软件verilog语言引言fpga是什么?fpga现状?如何学习fpga?fpga是现场可编程门阵列的简称,fpga的应用领域最初为通信领域,但目前,随着信息产业和微电子技术的进展,可编程逻辑嵌入式系统设计技术已经成为信息产业最热点的技术之一,应用范围遍及航空航天、医疗、通信、络通信、安防、广播、汽车电子、工业、消费类市场、测量测试等多个热点领域。并随着工艺的进步和技术的进展,向更多、更普遍的应

22、用领域扩展。愈来愈多的设计也开始以asic转向fpga,fpga正以各类电子产品的形式进入了咱们日常生活的各个角落。正文(1)把握fpga的编程语言在学习一门技术之前咱们往往从它的编程语言开始,犹如窗习单片机一样,咱们从c语言开始入门,当把握了c语言以后,开发单片机应用程序也就不是什么难事了。学习fpga也是如此,fpga的编程语言有两种:vhdl和verilog,这两种语言都适合用于fpga的编程。(2)fpga实验尤其重要除学习编程语言之外,更重要的是实践,将自己设计的程序能够在真正的fpga里运行起来,这时咱们需要选一块板子进行实验,咱们选择利用de2板才进行实验。初识de2开发板de2

23、的资源de2的资源超级丰硕,包括核心的fpga芯片-cycloneii2c35f672c6,从名称能够看出,它包括有35千个le,在altera的芯片系列中,不算最多,但也绝对够用。altera下载操纵芯片-epcs16和usb-blaste对jtag的支持。存储用的芯片有:512-kbsram,8-mbytesdram,4-mbyteflashmemory经典io配置:拥有4个按钮,18个拨动开关,18个红色发光二极管,9个绿色发光二极管,8个七段数码管,16*2字符液晶显示屏,超强多媒体:24位cd音质音频芯片wm8731(mic输入+linein+标准音频输出),视频解码芯片(支持nts

24、c/pal制式),带有高速dac视屏输出vga模块。5更多标准接口:通用串行总线usb操纵模块和a、b型接口,sdcard接口,irda红外模块,10/100m自适应以太络适配器,rs-232标准串口,ps/2键盘接口6其他:50m,27m晶振各一个,支持外部时钟,80针带爱惜电路的外接io7.另外还有:配套的光盘资料,qutuarsii软件,niosii,例程与说明文档。关于管脚分派当咱们创建一个fpga用户系统的时候,到最后要做的工作确实是下载,在下载之前必需依照芯片的型号分派管脚如此才能将程序中特定功能的管脚与实际中的fpga片外硬件电路一一对应。fpga简单的说,确实是现场可编程逻辑阵

25、列。它的内部是逻辑单元,它们之间能够用线连接,至于以如何的形式相连,那么能够依照应用者写入的逻辑决定。每次布线都会从头组合逻辑单元,从而能够任意的编写不同的逻辑。固然,前提是概念的逻辑块不超出它可读写的最大值。总结在学习fpga时,碰到的问题有许多,譬如,写代码时的警告,专门是一些不能轻忽的警告,每次碰到时,老是还要检查一会儿才能悔改来,或有的警告已经显现了几回,可是确实是解决不掉。每次在学一个模块时,只若是看懂了,它的一些重点就没有及时的记录在本子上,只有个别的想起来时,才会做笔记。每做完一个模块,没有及时记录下自己从那个模块中学到了什么。上面的不足,都是在写模块的进程中,自己慢慢暴露出来的

26、。我很庆幸自己的一些问题能及时的被发觉,幸免类似的情形再次发生。像碰到警告时,都要记录下来,通过更正后,要注释,写下警告的缘故,按期看一下。每次写模块的时候,都要记下重点知识,即便是自己知道的,好记性都是比只是烂笔头的。关于以上的总结,我相信在以后的学习中必然会对自己有莫大的帮忙,它会时刻警醒自己,在以前的学习中,自己有哪些不足,以后万万不能再去犯一样的错误,不断地纠正,不断地进步,相信自己必然会学好fpga的。篇二:fpga学习心得回忆起自己学fpga,已经有一段时刻了,从开始的茫然,到后来的疯狂看书,设计开发板,调电路,练习各类fpga实例,到最后能独立完成项目,一路走来,感受颇多,拿出来

27、和大伙儿分享,顺便介绍下自己的一点体会所得,希望对初学者有所帮忙。废话不说了,下面进入正题,学习fpga我要紧经历了这么几个时期:、verilog语言的学习,熟悉verilog语言的各类语法。、fpga的学习,熟悉quartusii软件的各类功能,各类逻辑算法设计,接口模块(rs232,lcd,vga,spi,i2c等)的设计,时序分析,硬件优化等,自己开始设计简单的fpga板子。、niosii的学习,熟悉niosii的开发流程,熟悉开发软件(sopc,niosiiide),了解niosii的大体结构,设计niosii开发板,编写niosiic语言程序,调试板子各模块功能。先来讲说第一个时期,

28、此刻要紧的硬件描述语言有vhdl,verilog两种,在本科时教师一样教vhdl,只是此刻verilog用的人愈来愈多,其更易上手(与c语言语法比较类似),也更灵活,此刻的ic设计大体都用verilog。像systemc,systemverilog之类的应该还在萌芽时期,以后可能会有较大进展。鉴于以上缘故我选择了verilog作为我学习的硬件描述语言。其实有c语言的基础,学起verilog的语言很简单,关键要有并行的概念,所有的module,assign,always都是并行的,这一点与软件语言有明显不同。那个地址推荐几本评判比较好的学习verilog的书籍:、verilog数字系统设计教程这

29、本书关于入门是一本专门好的书,通俗易懂,让人专门快上手,它里面的例子也不错。但本书关于资源优化方面的编程没有多少涉及到、设计与验证veriloghdl这本书尽管比较薄,可是相当精辟,讲解的也很深切,很多概念看了这本书有种豁然爽朗的感觉,呵呵。学习verilog其实不用看很多书,大体的语法部份大伙儿都一样,关键是要自己会灵活应用,多做练习。verilog语言学了一段时刻,感觉自己能够编点东西,希望自己编的程序在板子上运行看看结果,下面就介绍我学习的第二个时期。刚开始我拿了实验室一块cpld的开发板做练习,熟悉quartusii的各类功能,比如ip的挪用,各类约束设置,时序分析,logiclock

30、设计方式等,只是做到后面发觉cpld的资源不太够(没有内嵌的ram、不能用signaltapii,le太少等),而实验室没有fpga开发板,因此就萌生了自己做fpga开发板的用意,恰好cadence我也学的差不多了,就花了几天时刻要紧研究了fpga配置电路的设计,在板子上做了jtag和as下载口,在做了几个用户按键和led,其他的口全数引出作为io口,电路比较简单,板子焊好后一调就通了(内心那个爽啊)。我选的fpga是cycloneii系列的ep2c5,资源比以前的fpga多了好几倍,还有pll,内嵌的ram,能够试试signaltapii,用内嵌的逻辑分析仪测试引脚波形,关于fpga的调试,

31、逻辑分析仪是相当重要的。利用这块板子我完成了项目中的几个要紧功能rs232通信,指令译码,配置dds,ad数据高速缓存,电子开关状态设置等,在实践中学习起来真的比平常快很多,用到什么学什么动力更大。那个时候我要紧看的数据有这几本感觉比较好:、alterafpga/cpld设计(基础篇):讲解一些大体的fpga设计技术,和quartusii中各个工具的用法(ip,rtl,signalprobe,signaltapii,timingclosurefloorplan,chipeditor等),关于入门超级好。、alterafpga/cpld设计(高级篇):讲解了一些高级工具的应用,logiclock

32、,时序约束很分析,设计优化,也讲述了一些硬件编程的思想,作为提高用。、fpga设计指南-器件,工具和流程:这本书看了他的目录忍不住就买了,这本书讲述了fpga设计的方方面面,尽管每一个方面都是点到为止,但能让你有个整体的概念,了解fpga的所有设计功能,了解fpga开发的整个流程。、在那个地址也推荐几个学习fpga比较好的论坛,只是很多人一看到英语就不想看,其实上面的英文很简单,很多时候不敢看是因为对自己没信心或心静不下来看只是官方站上资料很多,刚开始可能会感觉资料安排的有点乱,不方便查找,以后有时刻我列个资料的链接目录,整理一下,方便大伙儿查找。到那个地址,自己最fpga的学习有一段时刻了,

33、练习了很多实例,自己也编写了很多程序,也有了一些项目体会,算是对fpga有些了解了。在不断的学习中发觉fpga不仅能够做逻辑设计,算法设计等,还能做嵌入式开发,altera前后开发了nios,niosii两款fpga的嵌入式软核,并有配套的软件,刚开始看到这些我真是心中突然豁然爽朗,学习真的是无止境,又一个全新的领域摆在我眼前,我决定学习niosii,要学就要学最好。刚开始入门是很痛楚的,嵌入式设计需要从硬件到驱动到软件全数熟悉,硬件系统问题还不是专门大(以前做过单片机,dsp等mcu),处置器的架构内心还有点数,关于驱动和软件工程,刚开始学习真的很头痛。niosii应该还算比较新的内容(应该

34、是XX年出的),国内的书籍不算很多,上这方面的资料也比较零碎,因此我就开始将altera站上这方面的资料系统的看一边,那个地址推荐几本站上的handbook:、embeddeddesignhandbook、niosiiprocessorreferencehandbook、niosiisoftwaredevelopershandbook、quartusiihandbook,volume4:sopcbuilder、quartusiihandbook,volume5:embeddedperipherals看完这些handbook,总算大体明白整个架构,软硬件设计方式,驱动的编写等,感觉自己能够编一些

35、嵌入式的程序了,只是尽管前面做的那块ep2c5的板子支持niosii系统,只是关于嵌入式设计来讲仍是显得单薄了一点,没有sdram,flash这两个比较大体的模块,ep2c5内嵌的ram过小,程序写不大,而且每次总要绞尽脑汁优化程序代码大小,很多时候优化了后函数功能会受到限制,无益于初学者,也无益于调试。因此到那个地址我有产生了自己做一块nios开发板的方式(直接买比较贵,自己做廉价,而且还能锻炼自己,一箭双雕),通过借鉴其他开发板,选择自己开发板上需要包括什么模块,确信各个模块利用什么芯片,阅读各个芯片的datasheet,画出原理图并做出pcb图,这块板子我选的是ep2c8q208,比上一

36、块资源又快要多了一倍,板子上还有以下模块:sdram,flash,epcs4,rs232,usb,vga,ps2,ad,da,lcd等,知足了一样开发板的配置要求。板子回来以后调试了四五天,(flash工作了,lcd显示了,rs232通了,usb通了,ad,da工作了,sdram正常了),真是天天都有惊喜,每一个模块都编写了niosii软件测试程序,调试硬件的时候对软件的运行也更熟悉了。在这次调试的进程中真的学到了很多,为此专门写了好几页调试笔记,下次拿出来和大伙儿一路分享。此刻硬件平台有了,niosii也了解的差不多了,终于能够自己编写一些规模大一点的程序了。学fpga的一点心得从去年开始学

37、fpga,以前一直做dsp,但因为项目的需要,在一个应用中只有fpga才能解决问题,因此硬着头皮上fpga,又因为结项目的时刻比较紧,因此要紧以解决问题为目的,说真的,项目做下来写了四千多行的代码,达到了设计目标,但对fpga学习还不够系统,也正进一步的学习中因为我是单干,没有团队,碰到问题只能在上找资料,其难度可想而知幸亏以前用过cpld,有一点基础,用的编程语言是ahdl,感觉ahdl写一点小程序还能够,但做复杂程序就有点费力了(应该是我的ahdl没学好),因此在做fpga程序时我选择了比较简单的verilog语言。由于没人指导,因此买了一个简单的fpga开发板,是cyclone的,开发板

38、确实是好,送了较多学习资料,用了一个礼拜的时刻,学习了niosii的大体应用,固然,我的需要确实是明白如安在nios里操纵一个信号的高低电平转变就够了,其它满是c语言的东西,主若是熟悉了quartus的开发平台,并用nios程序把要实现的要紧代码用c写了一遍,通过了,但速度上不去。有这些知识做铺垫后,就开始了项目的设计。项目要求将外部高速数据(40mb/s)进行存盘,并能够将存盘的数据在适当的时候原路返回(速度不变)。因此在硬件的设计上fpga选择了ep2c35f484c8n,外部有128m的sdram做为数据的缓冲。因此fpga的要紧程序集中在atahost操纵器(实现udma读写)、sdr

39、am操纵器(大容量循环缓冲)上,固然还包括一些其它的操纵,如实不时钟,芯片操纵,rs232的通信及相应的通信协议。硬件完成后,大部份的时刻都在写程序,感觉verilog跟c差不多,就将原先写成的c代码翻译了一下,每写一段代码就测试一下。起初并非明白在quartus里还有逻辑分析仪的功能,因此程序出了问题只能使劲的分析代码,猜想问题可能出在哪里,万不得已时才做一下仿真(后来看很多有做程序都先做仿真,仿真通事后再下载到目标板里运行测试但到此刻我的仿真关还没过),因此做得很累。我感到如此做下去到时刻结点确信结了不了项目,就找fpga的qq群向高手们请教体会,明白了能够quartus的逻辑分析仪来观看

40、信号,哈哈,爽了(感激感激)。后面的程序找问题就容易多了,依照ata协议、sdram手册、及各外围芯片手册一步步写下去,固然其中也碰到了各类各样的问题,但专门快取得解决。一直到项目终止,都是用逻辑分析仪来找问题,没做过仿真(因此此刻仿真关还没过)。今年又用fpga做了一些项目。简单说一下体会吧,归结起来就三个字:做、想、问。书读千遍,不如做一遍;看他人做百次,不如自己做一次;确实是要实践。实践的动力一方面来自爱好,别一方面来自己压力,我个人感觉后者更重要。有需求会容易形成压力,也确实是说最好能在实际的项目开发中锻炼,而不是为了学习而学习。在做的进程中要多想,多想一想问题显现的缘故,问题解决后要

41、多问几个什么缘故,这也是体会积存的进程,最好要写项目日记,把问题及缘故、解决的方法都写进去。还要多问,碰到问题经历了痛楚的思索后还得不到解决就要问了,问搜索引擎,问友,问同窗同行,一篇文章、朋友们的点拨都可能帮忙自己快速解决问题。fpga入门心得及系列资料不明白什么缘故自己每次同意一个新事物,总要花上那么长的一段时刻。每一个东西,总要通过从一点都不了解,到有点了明白,到最后才想明白要来学学,但每次学习时也老是走马观花。可能真的受中国的教育思想束缚的太严峻了吧。以前的人念书,仿佛也没有什么目标,只是明白上课要认真听,考试要考好。如此就能够够了。也从来没想过,我学那个到底有什么用呢。可是上了大学后

42、,一切都改变了。咱们的学习也再也不是为了考试而考试了。尤其是像咱们学电子,假设仅仅是为考试的话,那你的大学完全能够过得很轻松,成天睡觉,游戏,照样能够考高分。那样毕业了,你说你的大学学习是不是等于0。到头来仍是什么也不是。因此当你进入大学,当你选择了电子,就决定了你从此要为之付出。不管以后如何,只要你朝着自己的方向走,必然会成功的。此刻说说fpga的学习吧,或许,很多人刚接触fpga时,可能还在为到底什么是cpld,什么时fpga,我到底要学习哪门语言而苦恼,不知大伙儿是不是如此,可是我曾经确实是如此,也到上去找过,最后也终于找到了答案。因为那时身旁的人都还没学过。其实cpld,fpga最大的

43、区别也确实是fpga的程序必需由配置芯片通过上电后,将程序写入芯片中,也确实是fpga的内部存储器是相当于内存一样,一掉电就没了。而cpld是像单片机一样,程序是存贮存在内部中的,一上电就能够够跑了。二者的功能差不多,可是fpga的资源比cpld加倍丰硕。在cpld上能够实现的功能,在fpga上大体都能够实现的。因此也没必要去想太多什么是fpga,cpld了,只要弄懂了二者的内部结构就能够够了。至于学什么语言吗,第一要看你们在校教师上课是用什么语言,就先那个语言吧,咱们学校教师是用vhdl语言的,因此一开始我也是先学vhdl语言,而且学习资料比较多,可是在上看到,仿佛公司里面用的比较多的是ve

44、riloghdl语言,为了能看懂一些资料,此刻也在学veriloghdl语言,学习中发觉,若是学过c语言的人,会发觉veriloghdl仿佛加倍好明白得。一旦你开始了学习fpga,那就要坚持下去,因为语言这东西,若是不一下子把它强记住,过不了两天就又忘了,书本的东西,必然要越快消化越好,如此你看他人的程序时就可不能有什么语言障碍了。以后确实是编写程序,仿照他人的模块,仿真实验,这步很重要,要不你就可不能发觉fpga功能的壮大,你也不明白到底仿真的结果和实际是不是有不同。当你成功时,你必然会感到成功的喜悦。当你大体的程序都看得懂时,有完整地编个程序,而且在硬件上实验过时,那么祝贺你入门了,以后的

45、道路确实是不断的实践,跟学习单片机一样,只有不断的学习,不断的做东西,你的编程能力才会提高。以上仅仅为作者本人的一点观点,本人此刻仍是一个电子白菜,只是苦于自己学习电子找不到捷径,不想还有更多的人跟我一样,在电子的道路中不断试探,不断彷徨。看过一个高手对fpga的熟悉,自己对fpga以后的进展更是看好,鉴定了学好的决心,fpga在电子开发工作中已经上升到数字系统核心处置器,尽快把握fpga开发技术显得超级迫切。总结了一下:传统的开发方式:一半固定,硬件cpu是不可编程的,另一半灵活是可编程的软件fpga新开发形式:两个部份都是可编程了,fpga,它代表的确实是硬件的编程。这两部份都可编程的一个

46、结合点确实是fpga上的软核。另外能够依照需要通过外部单片机把适合的应用bit流写入到fpga内,从而完成依照功能需要变更硬件。硬件可重构!使运算机的能力愈来愈强,方式一:通过提高工艺来提高工作频率;方式二:通过优化系统体系,并行!新学习思想:fpga设计有点象围棋:易学难精带着问题学习是最有效率的时序性能的调整提高是fpga开发能力的标志多看书,但要注意,书当做字典,不是所有地址都去看。目前,在fpga上有三种类型开发方式和应用方向:a、逻辑类应用b、软核类应用c、dsp类应用。篇四:个人FPGA学习心得回忆起自己学FPGA,已经有一段时刻了,从开始的茫然,到后来的疯狂看书,设计开发板,调电

47、路,练习各类FPGA实例,到最后能独立完成项目,一路走来,感受颇多,拿出来和大伙儿分享,顺便介绍下自己的一点体会所得,希望对初学者有所帮忙。废话不说了,下面进入正题,学习FPGA我要紧经历了这么几个时期:、Verilog语言的学习,熟悉Verilog语言的各类语法。、FPGA的学习,熟悉QuartuslI软件的各类功能,各类逻辑算法设计,接口模块(RS232,LCD,VGA,SPI,I2c等)的设计,时序分析,硬件优化等,自己开始设计简单的FPGA板子。、NiosII的学习,熟悉NiosII的开发流程,熟悉开发软件(SOPC,NiosIIIDE),了解NiosII的大体结构,设计NiosII开

48、发板,编写NiosIIC语言程序,调试板子各模块功能。先来讲说第一个时期,此刻要紧的硬件描述语言有VHDL,Verilog两种,在本科时教师一样教VHDL,只是此刻Verilog用的人愈来愈多,其更易上手(与C语言语法比较类似),也更灵活,此刻的IC设计大体都用Verilog。像systemC,systemVerilog之类的应该还在萌芽时期,以后可能会有较大进展。鉴于以上缘故我选择了Verilog作为我学习的硬件描述语言。其实有C语言的基础,学起Verilog的语言很简单,关键要有并行的概念,所有的module,assign,always都是并行的,这一点与软件语言有明显不同。那个地址推荐几

49、本评判比较好的学习Verilog的书籍:、verilog数字系统设计教程这本书关于入门是一本专门好的书,通俗易懂,让人专门快上手,它里面的例子也不错。但本书关于资源优化方面的编程没有多少涉及到、设计与验证VerilogHDL这本书尽管比较薄,可是相当精辟,讲解的也很深切,很多概念看了这本书有种豁然爽朗的感觉,呵呵。学习Verilog其实不用看很多书,大体的语法部份大伙儿都一样,关键是要自己会灵活应用,多做练习。Verilog语言学了一段时刻,感觉自己能够编点东西,希望自己编的程序在板子上运行看看结果,下面就介绍我学习的第二个时期。刚开始我拿了实验室一块CPLD的开发板做练习,熟悉Quartus

50、lI的各类功能,比如IP的挪用,各类约束设置,时序分析,Logiclock设计方式等,只是做到后面发觉CPLD的资源不太够(没有内嵌的RAM、不能用SignalTapII,LE太少等),而实验室没有FPGA开发板,因此就萌生了自己做FPGA开发板的用意,恰好Cadence我也学的差不多了,就花了几天时刻要紧研究了FPGA配置电路的设计,在板子上做了Jtag和AS下载口,在做了几个用户按键和LED,其他的口全数引出作为IO口,电路比较简单,板子焊好后一调就通了(内心那个爽啊)。我选的FPGA是cyclonell系列的EP2C5,资源比以前的FPGA多了好几倍,还有PLL,内嵌的RAM,能够试试S

51、ignalTapII,用内嵌的逻辑分析仪测试引脚波形,关于FPGA的调试,逻辑分析仪是相当重要的。利用这块板子我完成了项目中的几个要紧功能:RS232通信,指令译码,配置DDS,AD数据高速缓存,电子开关状态设置等,在实践中学习起来真的比平常快很多,用到什么学什么动力更大。那个时候我要紧看的数据有这几本感觉比较好:、AlteraFPGA/CPLD设计(基础篇):讲解一些大体的FPGA设计技术,和QuartusII中各个工具的用法(IP,RTL,SignalProbe,SignalTapII,TimingClosureFloorplan,chipEditor等),关于入门超级好。、AlteraF

52、PGA/CPLD设计(高级篇):讲解了一些高级工具的应用,LogicLock,时序约束很分析,设计优化,也讲述了一些硬件编程的思想,作为提高用。、FPGA设计指南一器件,工具和流程:这本书看了他的目录忍不住就买了,这本书讲述了FPGA设计的方方面面,尽管每一个方面都是点到为止,但能让你有个整体的概念,了解FPGA的所有设计功能,了解FPGA开发的整个流程。、在那个地址也推荐几个学习FPGA比较好的论坛,只是很多人一看到英语就不想看,其实上面的英文很简单,很多时候不敢看是因为对自己没信心或心静不下来看只是官方站上资料很多,刚开始可能会感觉资料安排的有点乱,不方便查找,以后有时刻我列个资料的链接目

53、录,整理一下,方便大伙儿查找。到那个地址,自己最FPGA的学习有一段时刻了,练习了很多实例,自己也编写了很多程序,也有了一些项目体会,算是对FPGA有些了解了。在不断的学习中发觉FPGA不仅能够做逻辑设计,算法设计等,还能做嵌入式开发,altera前后开发了Nios,NiosII两款FPGA的嵌入式软核,并有配套的软件,刚开始看到这些我真是心中突然豁然爽朗,学习真的是无止境,又一个全新的领域摆在我眼前,我决定学习NiosII,要学就要学最好。刚开始入门是很痛楚的,嵌入式设计需要从硬件到驱动到软件全数熟悉,硬件系统问题还不是专门大(以前做过单片机,DSP等MCU),处置器的架构内心还有点数,关于

54、驱动和软件工程,刚开始学习真的很头痛。NiosII应该还算比较新的内容(应该是XX年出的),国内的书籍不算很多,上这方面的资料也比较零碎,因此我就开始将Altera站上这方面的资料系统的看一边,那个地址推荐几本站上的handbook:、EmbeddedDesignHandbook、NiosIIProcessorReferenceHandbook、NiosIISoftwareDevelopersHandbook、QuartusIIHandbook,Volume4:SOPCBuilder、QuartusIIHandbook,Volume5:EmbeddedPeripherals看完这些handbo

55、ok,总算大体明白整个架构,软硬件设计方式,驱动的编写等,感觉自己能够编一些嵌入式的程序了,只是尽管前面做的那块ep2c5的板子支持NiosII系统,只是关于嵌入式设计来讲仍是显得单薄了一点,没有SDRAM,Flash这两个比较大体的模块,Ep2C5内嵌的RAM过小,程序写不大,而且每次总要绞尽脑汁优化程序代码大小,很多时候优化了后函数功能会受到限制,无益于初学者,也无益于调试。因此到那个地址我有产生了自己做一块Nios开发板的方式(直接买比较贵,自己做廉价,而且还能锻炼自己,一箭双雕),通过借鉴其他开发板,选择自己开发板上需要包括什么模块,确信各个模块利用什么芯片,阅读各个芯片的datash

56、eet,画出原理图并做出PCB图,这块板子我选的是Ep2c8Q208,比上一块资源又快要多了一倍,板子上还有以下模块:SDRAM,Flash,EPCS4,RS232,USB,VGA,PS2,AD,DA,LCD等,知足了一样开发板的配置要求。板子回来以后调试了四五天,(flash工作了,LCD显示了,RS232通了,USB通了,AD,DA工作了,SDRAM正常了.),真是天天都有惊喜,每一个模块都编写了NiosII软件测试程序,调试硬件的时候对软件的运行也更熟悉了。在这次调试的进程中真的学到了很多,为此专门写了好几页调试笔记,下次拿出来和大伙儿一路分享。此刻硬件平台有了,Niosll也了解的差不

57、多了,终于能够自己编写一些规模大一点的程序了。学FPGA的一点心得从去年开始学FPGA,以前一直做DSP,但因为项目的需要,在一个应用中只有FPGA才能解决问题,因此硬着头皮上FPGA,又因为结项目的时刻比较紧,因此要紧以解决问题为目的,说真的,项目做下来写了四千多行的代码,达到了设计目标,但对FPGA学习还不够系统,也正进一步的学习中.因为我是单干,没有团队,碰到问题只能在上找资料,其难度可想而知幸亏以前用过CPLD,有一点基础,用的编程语言是VHDL,感觉AHDL写一点小程序还能够,但做复杂程序就有点费力了(应该是我的AHDL没学好),因此在做FPGA程序时我选择了比较简单的verilog

58、语言。由于没人指导,因此买了一个简单的FPGA开发板,是Cyclone的,开发板确实是好,送了较多学习资料,用了一个礼拜的时刻,学习了NIOSII的大体应用,固然,我的需要确实是明白如安在NIOS里操纵一个信号的高低电平转变就够了,其它满是C语言的东西,主若是熟悉了Quartus的开发平台,并用NIOS程序把要实现的要紧代码用C写了一遍,通过了,但速度上不去。有这些知识做铺垫后,就开始了项目的设计。项目要求将外部高速数据(40MB/s)进行存盘,并能够将存盘的数据在适当的时候原路返回(速度不变)。因此在硬件的设计上FPGA选择了EP2C35F484C8N,外部有128M的SDRAM做为数据的缓

59、冲。因此FPGA的要紧程序集中在ATAHOST操纵器(实现UDMA读写)、SDRAM操纵器(大容量循环缓冲)上,固然还包括一些其它的操纵,如实不时钟,芯片操纵,RS232的通信及相应的通信协议。硬件完成后,大部份的时刻都在写程序,感觉verilog跟C差不多,就将原先写成的C代码翻译了一下,每写一段代码就测试一下。起初并非明白在Quartus里还有逻辑分析仪的功能,因此程序出了问题只能使劲的分析代码,猜想问题可能出在哪里,万不得已时才做一下仿真(后来看很多有做程序都先做仿真,仿真通事后再下载到目标板里运行测试,但到此刻我的仿真关还没过),因此做得很累。我感到如此做下去到时刻结点确信结了不了项目

60、,就找FPGA的QQ群向高手们请教体会,明白了能够Quartus的逻辑分析仪来观看信号,哈哈,爽了(感激感激)。后面的程序找问题就容易多了,依照ATA协议、SDRAM手册、及各外围芯片手册一步步写下去,固然其中也碰到了各类各样的问题,但专门快取得解决。一直到项目终止,都是用逻辑分析仪来找问题,没做过仿真(因此此刻仿真关还没过)。今年又用FPGA做了一些项目。简单说一下体会吧,归结起来就三个字:做、想、问。书读千遍,不如做一遍;看他人做百次,不如自己做一次;确实是要实践。实践的动力一方面来自爱好,别一方面来自己压力,我个人感觉后者更重要。有需求会容易形成压力,也确实是说最好能在实际的项目开发中锻

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论