11342|25

2113

帖子

0

TA的资源

裸片初长成(初级)

楼主
 

(转载)讲给初学者 [复制链接]

作为FPGA新人常常在论坛上问,用什么语言啊,用什么软件啊,用那个公司的芯片等问题。我个人人为学习FPGA和学习单片机有相同的道理:反复动手联系,有项目的跟着项目走,没有项目的买快开发板折腾!
下面是其它人写的关于如何学习FPGA的建议:
1、首先要理解 CPLD\FPGA器件的含义,主要是关于并行处理的理解。
2、编程语言,目前主要有2种,VHDL Verilog。其中用 Verilog的比较多,评价也很好。
3、最好能有一块开发板,不用太好的开发板,一般的就好(太好的也用不上),练练编程。
4、开始不要弄太复杂的功能(我说的是编译器上的功能),主要是功能仿真、和时许仿真。
5、目前国内市场上,altera的器件用的人多,xilinx用的相对少些,但是高端的一般用xilinx多些,但是个人认为做高端的最好用actel的。比较好,选用什么器件最好看公司用什么的,就选什么的,这样便于交流。
这是另一个高手写的:
回想起自己学FPGA,已经有一段时间了,从开始的茫然,到后来的疯狂看书,设计开发板,调电路,练习各种FPGA实例,到最后能独立完成项目,一路走来,感受颇多,拿出来和大家分享,顺便介绍下自己的一点经验所得,希望对初学者有所帮助。
废话不说了,下面进入正题,学习FPGA我主要经历了这么几个阶段:
Verilog语言的学习,熟悉Verilog语言的各种语法。
FPGA的学习,熟悉QuartusII软件的各种功能,各种逻辑算法设计,接口模块(RS232,LCD,VGA,SPI,I2c)的设计,时序分析,硬件优化等,自己开始设计简单的FPGA板子。
NiosII的学习,熟悉NiosII的开发流程,熟悉开发软件(SOPC,NiosII IDE),了解NiosII的基本结构,设计NiosII开发板,编写NiosII C语言程序,调试板子各模块功能。
先来说说第一个阶段,现在主要的硬件描述语言有VHDLVerilog两种,在本科时老师一般教VHDL,不过现在Verilog用的人越来越多,其更容易上手(C语言语法比较类似),也更灵活,现在的IC设计基本都用Verilog。像systemCsystemVerilog之类的应该还在萌芽阶段,以后可能会有较大发展。鉴于以上原因我选择了Verilog作为我学习的硬件描述语言。
其实有C语言的基础,学起Verilog的语言很简单,关键要有并行的概念,所有的moduleassignalways都是并行的,这一点与软件语言有明显不同。这里推荐几本评价比较好的学习Verilog的书籍:
①、《verilog 数字系统设计教程》,这本书对于入门是一本很好的书,通俗易懂,让人很快上手,它里面的例子也不错。但本书对于资源优化方面的编程没有多少涉及到。
②、《设计与验证Verilog HDL》,这本书虽然比较薄,但是相当精辟,讲解的也很深入,很多概念看了这本书有种豁然开朗的感觉,呵呵。
学习Verilog其实不用看很多书,基本的语法部分大家都一样,关键是要自己会灵活应用,多做练习。
Verilog语言学了一段时间,感觉自己可以编点东西,希望自己编的程序在板子上运行看看结果,下面就介绍我学习的第二个阶段。
刚开始我拿了实验室一块CPLD的开发板做练习,熟悉QuartusII的各种功能,比如IP的调用,各种约束设置,时序分析,Logiclock设计方法等,不过做到后面发现CPLD的资源不太够(没有内嵌的RAM、不能用SignalTapIILE太少等),而实验室没有FPGA开发板,所以就萌生了自己做FPGA开发板的意图,刚好Cadence我也学的差不多了,就花了几天时间主要研究了FPGA配置电路的设计,在板子上做了JtagAS下载口,在做了几个用户按键和LED,其他的口全部引出作为IO口,电路比较简单,板子焊好后一调就通了(心里那个爽啊...)。我选的FPGAcycloneII系列的EP2C5,资源比以前的FPGA多了好几倍,还有PLL,内嵌的RAM,可以试试SignalTapII,用内嵌的逻辑分析仪测试引脚波形,对于FPGA的调试,逻辑分析仪是至关重要的。利用这块板子我完成了项目中的几个主要功能:RS232通信,指令译码,配置DDSAD数据高速缓存,电子开关状态设置等,在实践中学习起来真的比平时快很多,用到什么学什么动力更大。这个时候我主要看的数据有这几本感觉比较好:
未完,待续




在此声明:在这里也推荐几个学习FPGA比较好的论坛http://www.eetop.cn/。属作者个人意见




soso姐姐不要封杀啊




咱们的论坛也很好的:(
此帖出自FPGA/CPLD论坛

最新回复

留名先...  详情 回复 发表于 2014-5-8 03:24
点赞 关注(1)
 

回复
举报

2113

帖子

0

TA的资源

裸片初长成(初级)

沙发
 
①、《Altera FPGA/CPLD 设计(基础篇)》:讲解一些基本的FPGA设计技术,以及QuartusII中各个工具的用法(IP,RTL,SignalProbe,SignalTapII,Timing Closure Floorplan,chip Editor等),对于入门非常好。
②、《Altera FPGA/CPLD 设计(高级篇)》:讲解了一些高级工具的应用,LogicLock,时序约束很分析,设计优化,也讲述了一些硬件编程的思想,作为提高用。
《FPGA设计指南--器件,工具和流程》:这本书看了他的目录忍不住就买了,这本书讲述了FPGA设计的各个方面,虽然每个方面都是点到为止,但能让你有个整体的概念,了解FPGA的所有设计功能,了解FPGA开发的整个流程。在这里也推荐几个学习FPGA比较好的论坛http://www.eetop.cn/。其实最好的学习网站莫过于Altera的官方网站http://www.altera.com,不过很多人一看到英语就不想看,其实上面的英文很简单,很多时候不敢看是因为对自己没信心或心静不下来看。不过官方网站上资料很多,刚开始可能会觉得资料安排的有点乱,不方便查找,以后有时间我列个资料的链接目录,整理一下,方便大家查找。
到这里,自己最FPGA的学习有一段时间了,练习了很多实例,自己也编写了不少程序,也有了一些项目经验,算是对FPGA有些了解了。在不断的学习中发现FPGA不仅可以做逻辑设计,算法设计等,还能做嵌入式开发,altera先后开发了Nios,NiosII两款FPGA的嵌入式软核,并有配套的软件,刚开始看到这些我真是心中突然豁然开朗,学习真的是无止境,又一个全新的领域摆在我面前,我决定学习NiosII,要学就要学最好。
        刚开始入门是很痛苦的,嵌入式设计需要从硬件到驱动到软件全部熟悉,硬件系统问题还不是很大(以前做过单片机,DSP等MCU),处理器的架构心里还有点数,对于驱动和软件工程,刚开始学习真的很头痛。NiosII应该还算比较新的内容(应该是2004年出的),国内的书籍不算很多,网上这方面的资料也比较零碎,所以我就开始将Altera网站上这方面的资料系统的看一边,这里推荐几本网站上的handbook:
①、Embedded Design Handbook
②、Nios II Processor Reference Handbook
③、Nios II Software Developer's Handbook
④、Quartus II Handbook, Volume 4: SOPC Builder
⑤、Quartus II Handbook, Volume 5: Embedded Peripherals
看完这些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/CPLD论坛
 
 

回复

2万

帖子

71

TA的资源

管理员

板凳
 

回复 楼主 heningbo 的帖子

收藏了,呵呵 可以多多学习
此帖出自FPGA/CPLD论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

265

帖子

0

TA的资源

五彩晶圆(初级)

4
 
quartusII详细使用指南.pdf

quartusII详细使用指南.pdf

2.44 MB, 下载次数: 45

售价: 2 分芯积分  [记录]

此帖出自FPGA/CPLD论坛
 
 
 

回复

250

帖子

0

TA的资源

五彩晶圆(高级)

5
 
FPGA是什么?FPGA现状?如何学习FPGA?
FPGA介绍
    FPGA是现场可编程门阵列的简称,FPGA的应用领域最初为通信领域,但目前,随着信息产业和微电子技术的发展,可编程逻辑嵌入式系统设计技术已经成为信息产业最热门的技术之一,应用范围遍及航空航天、医疗、通讯、网络通讯、安防、广播、汽车电子、工业、消费类市场、测量测试等多个热门领域。并随着工艺的进步和技术的发展,向更多、更广泛的应用领域扩展。越来越多的设计也开始以ASIC转向FPGA, FPGA正以各种电子产品的形式进入了我们日常生活的各个角落。
FPGA人才需求
中国每年对于FPGA设计人才的需求缺口巨大,FPGA设计人才的薪水也是行业内最高的。目前,美国已有FPGA人才40多万,中国台湾地区也有7万多,而中国内地仅有1万左右,可见中国渴望有更多的FPGA人才涌现出来。
如何学习FPGA?
    FPGA对我们如此重要,那么对于初学者来说,到底该如何学习FPGA呢?学习一门技术最好有合适的指导老师,这样对掌握FPGA技术更容易,可惜的是大部分的学校还未开设相关的课程,也缺少具有实践经验的老师,那么如何才能找到一种捷径帮助初学者快速学会如此具有竞争力的技术呢?
(1)掌握FPGA的编程语言
    在学习一门技术之前我们往往从它的编程语言开始,如同学习单片机一样,我们从C语言开始入门,当掌握了C语言之后,开发单片机应用程序也就不是什么难事了。学习FPGA也是如此,FPGA的编程语言有两种:VHDL和Verilog,这两种语言都适合用于FPGA的编程,VHDL是由美国军方组织开发的,在1987年就成为了IEEE的标准;而Verilog则是由一家民间企业的私有财产转移过来的,由于其优越性特别突出,于是在1995年也成为了IEEE标准。VHDL在欧洲的应用较为广泛,而Verilog在中国、美国、日本、台湾等地应用较为广泛,作者比较推崇是Verilog,因为它非常易于学习,很类似于C语言,如果具有C语言基础的人,只需要花很少的时间便能迅速掌握Verilog,而VHDL则较为抽象,学习的时间较长。
作为在校大学生,学习Verilog的最好时期是在大学二年级开设《电子技术基础(数字部分)》时同步学习,不仅能够理解数字电路实现的方式,更能通过FPGA将数字电路得以实现。大三、大四的学生还可以进一步强化学习Verilog,建议以北京航天航空大学出版社出版的由夏宇闻教授编写的《Verilog数字系统设计教程(第二版)》作为蓝本,本书比较全面地、详细地介绍了Verilog的基本语法。如果是其他初学者,可以直接借助《Verilog数字系统设计教程(第二版)》和本书即能全面掌握Verilog的语法,这是学习FPGA的第一步,也是必不可少的一步。
(2)FPGA实验尤为重要
     除了学习编程语言以外,更重要的是实践,将自己设计的程序能够在真正的FPGA里运行起来,这时我们需要选一块板子进行实验,一般的红色飓风的板子基本上可以满足大家的需求,大家感兴趣的不妨买一块做做实验。

(3)FPGA培训不可忽视
    在有条件的情况下,参加FPGA的培训可以在短时间内大幅提升自己的水平,因为有老师带着可以省去了很多弯路。笔者在网上发现国内第一家大学EDA实验室创始人之一的夏宇闻教授和未名芯锐搞了一个FPGA培训班(http://www.sinrel.com),感兴趣的朋友可以去看看,网上也有很多的视频资源,也可下下来看看.

我想只要大家想学FPGA,想从事FPGA工作,总会有办法找到适合自己的方法.
此帖出自FPGA/CPLD论坛
 
 
 

回复

94

帖子

0

TA的资源

纯净的硅(高级)

6
 
很好,说得很精辟
此帖出自FPGA/CPLD论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

7
 
谢谢!指点,正在学习中
此帖出自FPGA/CPLD论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(中级)

8
 
谢谢楼主的资料,正是一初学者!
此帖出自FPGA/CPLD论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(高级)

9
 
受益中,呵呵,谢谢分享
此帖出自FPGA/CPLD论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

10
 
学习中···呵呵
此帖出自FPGA/CPLD论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(高级)

11
 

回复 沙发 heningbo 的帖子

谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
此帖出自FPGA/CPLD论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(高级)

12
 

回复 楼主 heningbo 的帖子

谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
此帖出自FPGA/CPLD论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

13
 

感谢楼主

楼主写得真好,受益匪浅啊
此帖出自FPGA/CPLD论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

14
 
顶顶顶顶顶顶顶顶顶顶顶顶
此帖出自FPGA/CPLD论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

15
 
受益良多
此帖出自FPGA/CPLD论坛
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(初级)

16
 
收藏了,谢谢
此帖出自FPGA/CPLD论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

17
 
O(∩_∩)O谢谢
此帖出自FPGA/CPLD论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

18
 
受教了.....
此帖出自FPGA/CPLD论坛
 
 
 

回复

42

帖子

0

TA的资源

一粒金砂(初级)

19
 
自己正在学这个,公司要求的,可惜没人带啊。  好迷茫
此帖出自FPGA/CPLD论坛
 
 
 

回复

875

帖子

0

TA的资源

五彩晶圆(高级)

20
 

回复 19楼 yaxuangela 的帖子

:) 学习已经实现的程序,多联系联系
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表