注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
蝴蝶好小子的个人空间 https://home.eeworld.com.cn/space-uid-150659.html [收藏] [复制] [分享] [RSS]
日志

FPGA-从头学起

已有 2514 次阅读2013-7-3 21:51 |个人分类:FPGA学习之路

从头学起FPGA

最近几天看了挺多的论坛,也发现很多人在博客或者论坛中,开始着自己的学习,然后记录下这些进步和过程。于是,我也想借助于这种形式,记录学习的步骤,以及收获的点滴,督促自己可以好好学下去。

首先介绍一下自己的情况。我现在研一,差不多从大二开始接触电子设计方面的东西,一开始学习了单片机,最初的入门还是从郭天祥老师的教程开始的(郭老师真是楷模,他的教程让一个个热爱电子的我们有了最开始的认知和基础),之后参加了各种比赛,也获得了不少荣誉,但更多的是认识了一批优秀的学长、学姐。之后学习了AVR和自己DIY开发板,用一些最简单的设备来制作电路板(熨斗、三氯化铁,铜板、自己做的小电钻)。一开始学起来确实很吃力,但还是坚持了下来。后来随着一些后续如单片机、电路、模电、数电,DSP,可编程逻辑器件等课程的学习,对自己掌握的知识有了更深入的理解。现在研一快结束了,很遗憾自己找了一个纯做雷达数据处理算法的老师,这一年来,基本是在上课,看论文,做matlab仿真,硬件的东西都是零散着学,学的不系统。虽然上学期自己总是泡图书馆,看各种硬件设计书籍,但理论终究是理论,并没有带来实质性的提高。直到最近看了阿莫论坛中静静的ARM学习笔记,突然醒悟,觉得自己不能就这样过完研究生生活,毕竟自己以后还是希望以硬件研发为职业的。记得看过这样一句话:找工作一定要找一个自己喜欢的,这样一整天的生活都是快乐的。在这里,我挺想对前辈们说,你们其实是挺幸福的,每天为了自己喜欢的事业而努力的日子是充实的。似乎是有点跑题了,毕竟第一次这么写东西,感觉还是有些拘谨~下面步入正题:

之所以命名为从头学起FPGA,是因为自己在本科时已经接触了它,而且毕业设计做的也是关于FPGA的,其中时许约束、状态机等都没有涉及到,自己对它不是很满意,总之还是忽略了它吧。首先还是学习一些FPGA的基本概念吧:

1.    FPGA介绍(部分参考百度百科O(_)O

FPGA是英文Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在PALGALPLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCALogic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLBConfigurable Logic Block)、输出输入模块IOBInput Output Block)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。

FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积(最开始还是从郭老师的书中得知的),提高系统的可靠性。

2 AlteraXilinx

现在市场FPGA主流供应商是这两家公司,个人感觉两家的产品差不多,一般这家公司推出新的产品,另一家必定会有与之对应的产品。Altera在国内的公司应用特别广泛,而Xilinx在高校和研究所中露脸机会较多。记得上课老师解释这种现象时说,Xilinx做的产品比Altera更稳定,更符合军方的要求和适用条件。这两家公司的产品我都用过,但接触更多的还是A个人感觉A做的软件QuartusISE好用多了,更符合国人的习惯~有一次要做实验,老师实验指导书中都是基于ISE的,我一开始是用的ISE,后来觉得不舒服,还是换做Quartus完成的作业,也许这就叫先入为主的,O(_)O。还记得,当时一开始学习FPGA时,用的就是X家的,我画了接近一周多,才有点弄明白建工程啥的囧。对于刚开始学习FPGA时,我的建议是学习Altera的,不是打广告,前辈们口下留情~

3 Verilog or VHDL

两者都是硬件描述语言,具体渊源大家可以自行问度娘,其中VHDL是军方出品,所以在语法等方面会更严格些,在很多高校都是教授的VHDL,至少我们学校时这样的;verilogc语言很相近(我现在觉得好多编程语言都是大同小异的吧),在公司中比较流行。我一开始接触的是VHDL,感觉网上对verilog的资料会更多一些,因此我决定开始学习verilog,这个笔记也将用verilog来作为编程语言(不过,这段时间确实有点不适应,总是想用vhdl来写)。

第一部分就写这么多了,软件开发平台和语言都有了,剩下的就是开始学习如何使用啦!那也是下面的一节将要一起学习的内容~

第一次这么正式的写学习笔记,很多方面会有错误,还请各位前辈指出来,小弟在此先谢过啦O(_)O

最后的最后,送上一句最近迷上的话:

人一切的痛苦,本质上都是对自己的无能的愤怒。

发表评论 评论 (3 个评论)
回复 eric_wang 2013-7-4 09:16
写得 不错啊!
回复 freguhao 2013-7-10 23:22
LZ什么时候写第二部分嘛
回复 wateras1 2013-7-11 09:30
写的不错,加油。关注中。。。。。

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章