FPGA来搭建交通灯,书本中用的是VHDL而不是Verilog,因为VHDL更接近底层,通过HDL编程来让我们明白硬件描述语言这个强大的工具,能不能弄透HDL决定你是否完全入门FPGA;
接着是使用单片机来实现交通灯,这个时候我们用的是汇编或者C来实现的,其实最好的过程还是先汇编后C来实现,因为这门课程是单片机原理,目的是让大家学习后懂了单片机原理。
而现在的FPGA应用中不光是HDL的开发,而是HDL+CPU开发,已经越来越是嵌入式的集合体,所以我们思路更需要打开:
现在回想起来,大学里面学的数字电路都是重要的基础理论知识,懂得数字电路和单片机原理,才能更好的用来学习FPGA、单片机、DSP等。但是从来没有老师告诉我们交叉学习这些理论的重要性,而只是玩玩混混实验。
3. 数字信号处理、通信理论等
还记得数字信号处理一开始接介绍了ADC,接着就是各种看不懂而没意思的公式,卷积、傅里叶等等。那时候,唯一的有点实践的操作就是MATLAB上机实验,但大多是抄抄抄。更不用说通信理论了,那东西更是空空空,感觉一辈子也不会用上。
但是,我们发现随着工作年限和能力的提升,我们也后悔当初没学好这些理论知识,工程实践没了这些理论知识,身价掉好多,FPGA做算法的待遇你懂的,但是要做好需要很强的数学等理论功底。
比如:下面的FFT的IP核使用,IP核例化使用没什么难的,但是对应的原理和如何进行信号处理的话,就需要我们去补补相关的理论:
同样,H.264视频压缩相关的概念也和信息论理论有很大的关系,虽然说我会用就行了,不一定要懂的理论知识,但是玩的转的大牛都是对理论理解很彻底的。
4. MATLAB和PYTHON
MATLAB是之前我们做嵌入式常用的高级语言验证工具,用来学习理解线性函数等数学原理,验证算法,生成ROM的参数表等。现在比较火的Python也是一个不错的选择,而且还非常容易上手,可以用它做一些简单的操作来加速工程开发,下面是通过Python的PIL库做的一些简单图像处理的效果图,有兴趣的话,大家可以去做更深入的研究:
RGB转灰度图效果:
边缘检测效果:
直方图均衡效果:
5. 个人感触
回顾大学数模电,觉得以前没用的东西,现在很有用而不得不得去重弄。所以,不管你现在在做什么,做的并不是感觉上的毫无用处,指不定未来就靠它来改变你的命运,为了以后的自己,做最好的现在。
如果你很幸运,还在上大学,就应该把大学所学的东西当成一个整体,学以致用,比同龄人再走远一步。