zoukankan      html  css  js  c++  java
  • FPGA的学习过程

          一直以来在QQ、msn、校内网上面总有一些朋友问我fpga如何学习,其实我也是个菜鸟,很难回答大家找个问题,今天刚好在网上看到这篇文章,感觉和我学习FPGA的过程十分相似,就转载了下来,希望对大家有所帮助。(以下内容为转载)

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

    废话不说了,下面进入正题,学习FPGA我主要经历了这么几个阶段:

        ①、VHDL和Verilog语言的学习,熟悉VHDL和Verilog语言的各种语法。

        ②、FPGA的学习,熟悉QuartusII软件的各种功能,各种逻辑算法设计,接口模块(RS232,LCD,VGA,SPI,I2c,AD,DA等)的设计,时序分析,硬件优化等,大家可以先从简单的做起,复杂的电路一定要把芯片资料读懂,上面的时序分析一定要看明白,然后才能设计正确驱动。

        ③、NiosII的学习,熟悉NiosII的开发流程,熟悉开发软件(SOPC,NiosII IDE),了解NiosII的基本结构,编写NiosII C语言程序,调试板子各模块功能。NiosII软件调试要很费时间,大家要耐的住厌烦,如果对软件不熟悉会出现很多问题,自己遇到问题和解决问题的过程,也就是大家进步的过程,大家可以把NiosII内嵌的各种功能调试一遍,最后再移植C8051、uCOSII操作系统和uCLinux操作系统,估计你已经很熟悉了NiosII了。

        先来说说第一个阶段,现在主要的硬件描述语言有VHDL,Verilog两种,现在Verilog用的人越来越多,因为容易上手(与C语言语法比较类似),也更灵活,现在的IC设计基本都用Verilog。但是VHDL也有自己的优点,VHDL语言设计的程序很长,因为他本身语言比较严谨,在欧美一些国家还是比较喜欢VHDL语言。所以我希望大家对两种语言应该都比较熟悉。我们的开发板上都尽量把这两种语言进行完善。

        其中关于VHDL语言和Verilog HDL语言资料书很多,如果还没有入门的话,可以买一本相对通俗易懂和简单的书来看,书籍我们在这就不推荐了,因为市面上关于这两种语言的书很多。我们配套VHDL视频教程,VHDLppt教程,以及verilog HDL、QuartusII、NiosII入门的视频教程,让大家做为参考,方面大家快速掌握FPGA设计。

        我选的FPGA是cycloneII系列的FPGA(EP2C5/EP2C8),因为资源比以前的FPGA多了好几倍,还有PLL,内嵌的RAM,可以试试SignalTapII,用内嵌的逻辑分析仪测试引脚波形,对于FPGA的调试,逻辑分析仪是至关重要的。利用这块板子我完成了项目中的几个主要功能:RS232通信,指令译码,配置DDS,AD数据高速缓存等,在实践中学习起来真的比平时快很多,用到什么学什么动力更大。在这里给大家推荐两本官方的书:

        ①、《Altera FPGA/CPLD 设计(基础篇)》:讲解一些基本的FPGA设计技术,以及QuartusII中各个工具的用法(IP,RTL,SignalProbe,SignalTapII,Timing Closure Floorplan,chip Editor等),对于入门非常好。

        ②、《Altera FPGA/CPLD 设计(高级篇)》:讲解了一些高级工具的应用,LogicLock,时序约束很分析,设计优化,也讲述了一些硬件编程的思想,作为提高用。

          这两本书大家不一定要买,可以看一下PDF文档就可以了,如果你看PDF文档,感觉不舒服,肯定我们支持你买正版书,哈哈。

        ③、还有一些很好的FPGA和SOPC实际应用的书,在这想不起来书名了,很多书都是在书店看完了(书太贵,买不起哈,呵呵)。

        ④、还有大家多去逛一下一些国内比较好的FPGA论坛。例如:

                    http://www.edacn.net/bbs    http://bbs.eetop.cn   http://www.weierdadz.com/bbs  http://www.61eda.com/code

          我主要说一下Altera的官方网站http://www.altera.com/,如果学习的是XilinxFPGA的话,自然要登录http://www.xilinx.com不过很多人一看到英语就不想看,其实上面的英文很简单,很多时候不敢看是因为对自己没信心或心静不下来看。不过官方网站上资料很多,刚开始可能会觉得资料安排的有点乱,不方便查找,以后有时间我列个资料的链接目录,整理一下,方便大家查找。   

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

        刚开始入门是很痛苦的,嵌入式设计需要从硬件到驱动到软件全部熟悉,硬件系统问题还不是很大(以前做过单片机,DSP,ARM等),处理器的架构心里还有点数,对于驱动和软件工程,刚开始学习真的很头痛。NiosII应该还算比较新的内容(应该是2004年出的),国内的书籍不算很多,网上这方面的资料也比较零碎,在NiosII软件调试上,费了很多的功夫,我们这里给大家NiosII经典的教程(PDF),大家把这本书看完,估计大家对NiosII软件结构有一定的了解了,如果想深入了解NiosII软件,可以看一下NiosII软件结构解析这本书。

            对于初学者,如果只是用EP2C5内嵌的RAM太小,程序写不大,而且每次总要绞尽脑汁优化程序代码大小,很多时候优化了后函数功能会受到限制,所以很不利于初学者,所以我们的板子上都外扩了SDRAM,Flash这两个比较基本的模块,基本上可以满足用户各种的需求功能。

          大家想很熟悉FPGA和SOPC,以后的路还很长,不过每次程序的的调试成功都是一次喜悦,同时也有很多惊喜在等着我们,欢迎使用成都威尔达电子公司的开发套件,让我们一起学习和进步吧......

  • 相关阅读:
    BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
    codeforces 31C Schedule 解题报告
    codeforces 462C Appleman and Toastman 解题报告
    codeforces 460C. Present 解题报告
    BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告
    BestCoder3 1001 Task schedule(hdu 4907) 解题报告
    poj 1195 Mobile phones 解题报告
    二维树状数组 探索进行中
    codeforces 460B Little Dima and Equation 解题报告
    通过Sql语句控制SQLite数据库增删改查
  • 原文地址:https://www.cnblogs.com/nucfrank/p/1959364.html
Copyright © 2011-2022 走看看