整体学习路线
首先先从基础入门开始,linux、数字电路基础、verilog、c语言等,在这些课程中重点学习linux 和verilog,数电也需要掌握,基础概念至少要了解,在面试时会经常问到。
verilog作为目前最主流的硬件描述语言,它的语法并不复杂,学完我就开始实际地去写去用了。在这个过程中,多去思考和总结,像我一开始就过于追求速度,想很快上手,导致有的地方一直理解的都不是很到位,比如阻塞赋值和非阻塞赋值这样的问题,所以认真地去把每一个点去想清楚,形成一定的代码风格和硬件思维,这会后面是非常有好处的。
专业课阶段通过直播上课,重点学习sv和uvm,这个两门课也是ic验证的看家本领,一定一定一定要好好学习。在学习的过程中一定要动手多练习,尤其是专业课阶段的异步fifo项目和uvm中的uart项目一定要认真做,这个是可以写到简历中的内容。尤其是uart中的一定要自己先做,提取验证点/画框架图/写case这些都是面试中的重点,还有各种协议,uart sip apb i2c等协议。
除此之外推荐几本我面试和工作过程中觉得有用的书籍:
1、《FPGA深度解析》,这本书的FIFO部分我觉得讲得很好
2、《verilog数字系统设计教程》,夏宇闻老师的蓝皮书,这本书里包含很多考试知识点
3、《SOC设计方法和实现》,郭炜老师写的,我觉得他的低功耗设计讲得很好;
4、《高级FPGA设计结构、实现和优化》,我主要看了第一章时序优化的内容,我觉得讲得很好,结合代码讲解时序优化的各个方法。
5、《数字电子技术基础》,阎石,看一遍这本书,我感觉心里很踏实。很多基础笔试题,画图题都源于这本书,可以反复看。
5、《硬件架构的艺术》,每一届都有人推荐这本书,值得拥有,我主要看了亚稳态和跨时钟域部分的内容。
总的来说还是要靠自己多下功夫,有多少努力就有多少收获。最后结果也不错,面试手握3-4个offer。我想这也是靠我的努力换来的,面试的内容基本都是老师课上讲的,基础知识掌握好,项目多深挖,多思考。面试基本没有问题。剩下的可能就是企业需求,学历门槛等客观因素了。