本文是自己初步学习fpga的一个计划,由于这个月才开始接触的fpga所以可能有认识不足的地方 还请各位大侠指点
1,写在前面的话
为啥想学fpga?
其实上大学的时候就看到一些人在学习cpld,参加比赛,出cpld的开发板和书籍
当时对它的认识不以为然总觉得单片机和arm才是王道 (那个时候刚开始流行ARM7
毕业后也一直使用单片机和M3在做开发 没有涉及到大的和高速的系统
所以自己的知识勉强也够工作用 单片机 cortex-M3 双层pcb设计
因为公司是做安防的看到别人的视频处理和显示采用的fpga和dsp
另一方面自己也想提高下自己 所以也是在犹豫学fpga还是cortex-A8
这些天了解了下A8开发流程和fpga开发流程
后来决定学习fpga而不去学ARM LINUX原因有以下几点
1,ARM LINUX开发涉及到高速pcb设计,系统移植,驱动编写,应用程序设计等流程复杂,适合多人协同设计
自己学的话至少需要一年甚至更久才能实际开发做产品
2,fpga目前已经可定制的软核,CORTEX M系列硬核,CORTEX A9硬核,更有dsp块可供使
即可当逻辑用,也可作控制和应用用,一举三得,从这几点不难看出fpga的野心和前景之大
3,公司实际产品线情况未来可能要用到fpga开发
4,即便是将来要用arm开发我也只负责硬件设计即可 系统和软件可以交给计算机系的人来做 他们肯定比我更擅长
所以自己决定学习fpga另外在学习下高速pcb设计
从今年8月份开始到年底
学习方法:
开发板 书籍 视频 网络
核心内容
》》》verilog
》》》fpga设计思想,原则和技巧
》》》数字信号处理,音频,图像处理
学习的方向和内容主要参考
1,altera官方资料和应用
2,常见开发板资源
3,其他培训机构培训内容
4,招聘需求
5,其他网络资源和书籍
------------学习流程------------
》》》》第一步,fpga基础学习(重点)
2,开发工具学习Quartus II,modelsim,synplify
3,verilog学习,基本组合逻辑,时序电路,有限状态机学习
4,存储器,cpu,VGA,常见外围电路驱动
数字信号处理,数字滤波器,通信,音频图像处理
学习本书(Altera FPGA/CPLD设计(高级篇)(第2版)
系统时序分析及处理系统时序分析及处理
其他学习内容参考:http://www.zxopen.com/fpga_gj.html
》》》》第二步,软核学习(会用即可,自己更倾向于用mcu或arm做控制)
5,dsp块、nios ii学习
6,基于nios ii的实战
》》》》第三步,硬核学习(了解)
7,arm A9内核fpga学习
8,基于arm A9内核fpga实战
》》》》参考博文,论坛:
从零开始走进FPGA.pdf
深入浅出玩转FPGA(第2版).pdf
黑金动力社区资料和教程
其他开发板教程
继续完善中。。。。。
》》》》视频:
altera官网视频和资料
华清远见fpga视频
特权fpga视频
其他网络视频
》》》》觉得不错的书籍:
-----------入门-------------------------------------:
《基于Quartus II的FPGA/CPLD数字系统设计实例(第2版)》
《Verilog数字系统设计教程(第2版)》
《基于Quartus II的数字系统Verilog HDL设计实例详解》
《零基础学FPGA:基于Altera FPGA器件&Verilog HDL语言》
------------深入------------------------------------:
《Altera FPGA/CPLD设计(高级篇)(第2版)》
《FPGA权威指南》
《基于FPGA的嵌入式图像处理系统设计》
《数字信号处理的FPGA实现(第3版)》
资料下载地址