通过“FPGA基础知识”专栏的实践学习,相信朋友们已经踏上了有趣的FPGA学习之路,掌握了一些必备的FPGA基础知识、开发工具、代码技巧等等,是一个进阶提升的好契机,这里闲话不多说,开门见山笔者结合实际的项目工程经验,精心准备了20个经典的例程。
从例程选取、章节安排、文档说明、代码规范、工程实践等多个方面,笔者真的也用心做了很多功课,20个经典例程全部来源于实际项目,同时也把很多理念和思路完完全全传递给大家,代码书写整齐规范有相当的借鉴价值,另外针对一些晦涩的知识点,也竭尽全力为大家做到通俗易懂,扫清提高之路上的那些痛点和难点。真诚地希望如果说“FPGA基础知识”专栏陪伴大家步入FPGA探索的大门,那么“FPGA20个例程”则会真正地帮助大家逐渐成长为一名优秀的FPGA工程师,具备在实际项目中独当一面的能力,但依旧是那句老话:该你走的路,别人无法替代,这里还需要朋友们用更多的时间去实践和练习,才能够举一反三地逐步掌握其中一些细节和技巧,实现在项目工程中灵活二次开发的目标。
言简意赅地,站在学习实践的角度,既考虑了学习上的循循渐进,同时又包含了工程上的知识要点,我们把20个例程按照7大类具体分配如下:
一、典型基础入门,小试牛刀
1.不同按键控制不同LED亮灭;
2.按键控制蜂鸣器输出PWM波,发出不同频率响声;
二、常用通信协议,摸索探究
3.RS232通信缓存数据;
4.串行DAC输出模拟电压控制LED亮度;
5.温度传感器实时采集温度;
三、数据断电存储,工程必备
6.EEPROM的任意地址读写断电存储;
7.FLASH读写断电存储;
8.SD卡任意地址的读写;
四、内存颗粒缓存,进阶之路
9.DDR3内存颗粒初始化写入并通过RS232读取;
10.遍历DDR3内存颗粒读写循环校验;
五、外设接口通信,举一反三
11.USB2.0接收并回复CRC16位校验;
12.千兆网口实现MDIO接口读写;
13.千兆网口实现ARP通信协议;
14.千兆网口实现ICMP、UDP通信协议;
六、图像显示处理,经典再现
15.VGA显示八种颜色的彩条;
16.HDMI显示彩色风景图;
17.SD卡存放图片逐一VGA显示;
七、实战项目提升,完善简历
18.SD卡存放音频WAV播放;
19.OV7725摄像头实时采集送HDMI显示;
20.USB2.0/RS232/LAN控制并行DAC输出任意频率正弦波、梯形波、三角波、方波;
细心的同学可能会发现章节安排方面很有规律,因为笔者本身是一名工作多年的工程师,也经历了从学生时的懵懂到工作后的沉稳,一路磕磕绊绊地走过来被社会毒打,蓦然回首在技术摸索上确实走过了很多不必要的弯路。这里仅就FPGA学习而言,相信会有很多初学的朋友们,都会感到迷茫,一方面市面上大部分的教程内容基本雷同,而且确实代码质量参差不齐,甚至带入了一些不好的习惯和思想;另一方面市场培训价格不菲,但也过度形式和流程化,例程可能很多年都不没有更新,针对不同的同学,来来回回都在重复同样的内容。
最后就算大家硬着头皮通过一些付费教程或者高额培训入门FPGA这门技术了,但如何后期提高使得自己真正成长起来,在学会按键点灯串口VGA显示后面的道路应该怎么走,真的很少有优秀的资源帮助大家深入学习提高,仿佛陷入了一个死循环一样,学会了烂大街的各个版本demo程序还是不会写代码,参加了培训机构各种花样教学还没有真正掌握这门技术,转眼间时光飞逝到了想找工作换工作的时候,写到简历上的项目很牵强、很相似,没有加分项,面试官们甚至一眼看去就明白是通过培训等学到的,再问一些核心问题,毫无底气、吞吞吐吐、答非所问岂不尴尬。那么专栏里为什么这样安排章节呢,也是完全从实战提高的角度出发,所以请大家回头仔细看一下目录安排。
第一章、典型基础入门,小试牛刀通过两个入门程序帮助大家找到写代码的感觉,同时按键、蜂鸣器也是常用的基本外设;第二章、常用通信协议,摸索探究脍炙人口的UART、SPI、IIC简历上必写三大通信协议,在这里通过串行DAC、LM75温度传感器等底层驱动编写,为大家真正地梳理清楚其中细枝末节的知识点,并总结出规范化的代码结构;第三章、数据断电存储,工程必备中的EEPROM和FLASH是嵌入式开发当中必备的掉电存储IC,同时有少数项目实战中需要用到SD卡读取大量数据,在撰写简历时,简单提到有这些掉电存储外设开发经历也是一个重要技术的加分项;第四章、内存颗粒缓存,进阶之路中通过两个优秀的例程,帮助大家掌握DDR3内存颗粒基础的硬件知识,以及MIG IP核的使用技巧,同时更从PCB设计上为朋友们整理清楚地址和数据位宽与IP核上的关系,例程“遍历DDR3芯片颗粒读写循环校验”也可以单独表现在简历中,用以检查FPGA外接的DDR3内存颗粒硬件上是否正常,很新颖也是一个不错的加分项;第五章、外设接口通信,举一反三围绕两个常用外接接口USB2.0和千兆LAN口,通过对两个常用接口的编程实践,为大家归纳了FPGA对外设接口逻辑控制,数据收发的一般性代码编写;第六章、图像显示处理,经典再现,FPGA学习圈里有句流传很久的话,没玩过摄像头、没倒腾过DDR3、没做过图像视频处理就不算玩过FPGA,在这里为大家准备了三个典型的代码例程,由浅入深地掌握VGA、HDMI图像视频显示的时序逻辑,例程“SD卡存放图片逐一送VGA显示”,把前面的很多知识要点又做了复习和整合。
最后在第七章、实战项目提升,完善简历,实事求是地说每个例程都可以作为一个项目部分写入简历中,真的会让面试官眼前一亮,例程“SD卡存放音频WAV播放”比较偏向校园电子大赛项目,如果是刚毕业找工作的大学生朋友们,把这个例程动手实践学习好,通过电子大赛项目方式表述在简历里,例程本身比较新颖、涉及的知识点多,会给面试官们留下不错的印象,自然地认为大家在学校的时候就有良好的编程和动手能力;例程“OV7725摄像头实时采集送HDMI显示”虽然在一些其他开发板上有相似的例子,但笔者只想说会在这个例程中把CMOS摄像头下一般化的图像视频加速处理的方法写得通俗易懂,做好视频处理技术上的总结,帮助大家举一反三地实现其他图像前后处理、多帧缓存技术等应用,做到灵活二次开发和面试对答如流;例程“USB2.0/RS232/LAN控制并行DAC输出任意频率的正弦波、梯形波、三角波、方波“,这里有很多关键技术点,涵盖报文分割、报文解析、串口Modbus CRC校验、USB2.0 CRC校验、网口ARP/ ICMP/ UDP协议的实现,DDS IP核的应用等等,三个例程可以反应在简历中具备和上位机联调开发、FPGA视频加速运算、数字信号处理经历等,一句普普通通的话无形中又提高了市场竞争力。
在撰写博客的过程中,感谢女友的陪伴和等待,让我度过了每一个下班以后忙碌的日日夜夜,更给了我努力去写好这份专栏的勇气和信心;无数次被困难击倒想要得过且过、转头放弃不论在求学还是在求知的路上,感谢父母的帮助和养育,供养我上学读书接收更多的教育,静下心来去把心中想做的事做好做细;感谢其他同仁的信任和理解,在最困难的时候大家能彼此坦诚地走在一起,不放弃不抛弃,相互勉励共同进步,从他们身上我也学习到了很多其他领域的技术,不管是FPGA还是STM32专栏等的编写,其中经历了太多的坎坷、逆境、波折,反复调整修改,力求精益求精,同时也在不断持续更新更多有实战价值的项目例程!文章来源:https://www.toymoban.com/news/detail-452234.html
豌豆开发板20个例程上板现象文章来源地址https://www.toymoban.com/news/detail-452234.html
到了这里,关于FPGA20个例程专栏介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!