初次接触FPGA,到如今也有四年多了,当时读大二,暑假在学校准备光电设计竞赛,指导老师让用单片机作,前期向咱们推荐FPGA,但愿咱们有时间去学学FPGA,记得当时买了块黑金核心板,下载了特权同窗的《深刻浅出玩转FPGA》视频教程,买了特权同窗写的《深刻浅出玩转FPGA》和夏宇闻老师编写的《Verilog数字系统设计教程》。那时把大部分时间都花在了单片机上,对于FPGA,只是作了几个基本的实验,像计数器,二分频等。步入大三,专业课比较多,当时也是比较懒,身边也没有人作FPGA,始终仍是没有坚持下来,下学期出去实现了3个月,大四,步入考研大军……ios
14年秋季上研究生,研究方向是FPGA图像处理,这时才算是真正开始作FPGA,这期间作了一些工程项目,也读了很多书,掌握了FPGA硬件电路设计、Verilog程序编写(包括一些图像处理算法的硬件实现)、简单的上位机控制界面的制做(使用C#)。这时才以为,作工程,最重要的莫过于坚持下去。算法
如下几本书,我以为写的比较好,跟你们推荐推荐(大牛勿喷),书单以下:编程
1. 深刻浅出玩转FPGAwindows
-
ISBN:9787512411616缓存
2012年买了一本,后来本科毕业时弄丢了,前段时间又买了一本,毕竟,大神写的书嘛。书中讲了FPGA的基本概念、Verilog语法、重要的设计思想、时序约束以及一些简单的项目应用。异步
我一直认为FPGA设计思想很是重要,我在作图像处理时,常用乒乓操做,好比我以前写直方图均衡算法时,就是开辟两块存储区域A、B,区域A统计时区域B映射,区域A清零时区域B累加,占用的存储空间也很少(对于24bit RGB图像,分辨率为640×480时,占用256*19=4864bit),而且算法执行效率高。函数
时序约束的重要性就不用多说了,以前听别人说过一个工程项目,同一个程序,每次编译后现象都不太同样(体如今图像噪声上),估计是时序约束的问题,我如今在时序约束方面算是小白,只会对工程作一些简单的时钟约束,在编写算法时,我也只是尽可能减少判断语句嵌套。工具
书中包括了一些项目应用,经过这些应用,相信有开发板的初学者应该能掌握PLL的配置、FIFO的使用、移位寄存器的使用、双口RAM的使用包括片外存储器SDRAM及Flash的使用,这些算是FPGA开发的基本功吧,进行快速操做时,通常使用片上RAM完成;跨时钟域处理时,通常使用双口RAM或者异步fifo;中值滤波时,要用到移位寄存器生成3×3或者5×5矩阵;VGA输出图像时,要用到外部存储器缓存图像;Flash可用来存储配置程序。把这些掌握了,基本上就能够着手作工程咯。性能
2. 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例学习
-
ISBN:9787121257735
-
做者pong p.chu的我的网页:http://academic.csuohio.edu/chu_p/
在作FPGA实时图像处理时,有时须要计算一些参数,好比Gamma值、校订矩阵等,这些参数在逻辑中计算会很是复杂,而且因为这些参数不须要一直计算,所以彻底没有必要在逻辑中实现。
32位的NIOS II系列软核处理器是Altera公司研制的第二代嵌入式处理器,它具备很高的性能、方便的软件开发工具和很大的灵活性,而且占用很小的FPGA资源,它能够与各类各样的外设、定制的硬件加速单元组合,构成一个定制的片上可编程系统。若是使用Nios II,那么事情就将会变得很是简单。逻辑正常处理数据的同时,Nios II经过访问存储器,读取图像进行分析,使用Nios能够像C语言编程同样进行操做,获得参数值,再经过寄存器映射的方式映射到逻辑中的某些寄存器。
这本书有点贵,80多块钱,隔壁实验室有个同窗买了本,以前我借着看过一段时间,书写的很nice,对Nios讲的还不错,而且还有一些例程,学习sopc系统设计的朋友能够参考。
3. 数字图像处理
-
ISBN:9787121110085
作图像处理的人,我想应该都接触过这本书吧,书中主题不少,从理论到实践,讲的很透彻,这是我在图像处理方面见过的最好的书,没有之一。我学的时候大部分时候是要用到哪一个知识点,才去看相关部分。
我如今写过的一些图像处理算法(中值滤波、直方图均衡、高斯滤波、双边滤波、线性变换)也基本上都是基于此书,好比空间域图像加强、频率域图像加强、彩色图像处理、图像检测等。图像加强对视觉冲击比较大,使用中值滤波可下降随机噪声,频率滤波可用来下降图像中的周期噪声,后面有空再学学图像存储、分割、配准、合成。
4. 数字图像处理matlab版
-
ISBN:9787121201974
这本书讲的主要是相关图像处理算法的matlab实现,图像图像处理偏向于理论解释,而这本书主要讲工程实现。本书一样适用于matlab初学者,即便以前没有学过matlab,直接上手这本书也没有关系,书中第一章讲了matlab的使用,全书按部就班,由浅入深,对图像处理工程师来讲,这两本书不容错过。
5. C#入门经典
-
ISBN:9787302343394
学C#,主要是工程须要,当时写了一个串口控制界面的上位机程序,上位机经过uart与FPGA通讯,实现对硬件系统的控制。
当时也是主要看了看一些基本的语法和windows窗体编程,不得不说,界面编程真方便,所见即所得,将一些控制摆上去,再编写一些响应函数便可。闲暇之余写了个界面,有时验证一些算法适用性时,使用下面的小软件将会显得很是方便。
这本书讲的大都是些基础性的知识,若是有时间和精力,能够学学《C#高级编程》,这本书我也没读过,因此就很少说咯。
6. 于博士cadence视频教程
前面推荐的都是纸质教程,最后推荐一份电子教程,总共60集。须要的直接百度哈。我当时画PCB也是看的这个教程,讲的很不错,比较详细,基本上看完就能够设计FPGA处理板了。
在电子设计领域,要走的路还很长,后期准备深刻学习Nios、图像处理算法的硬件化实现、基于C#的软件开发,有空了了解了解FPGA异构计算。