EE学生一枚
哈喽,同行!我也是从硬件转FPGA的,说点实在的。
挑战嘛,我觉得最大的倒不一定是思维,而是“验证和调试方法”的不同。画板子,调不通了可以拿示波器量。搞FPGA,大部分时间是在看仿真波形和看代码,你得习惯这种“虚拟调试”。而且FPGA问题经常是隐蔽的时序问题,这和你之前处理的信号完整性有点像,但分析工具完全不同。
Verilog程度,能独立写FIFO、UART绝对够初级门槛了。但别光学写,更要学怎么验。公司里最看重的是验证能力。所以,学Verilog的同时,必须把仿真工具(如ModelSim/QuestaSim)和怎么写testbench一起学了。能给自己写的模块搭个像样的测试平台,比会写十个模块还重要。
拿项目经验,我的路径是:先花一个月刷完一本经典教材(比如《Verilog数字系统设计教程》),把书上的例子都在开发板上跑通。然后,我去GitHub找了个开源的简易CPU项目(比如一个8位的RISC),把它在开发板上跑起来。这个过程极其痛苦,但收获巨大,你被迫去理解总线、流水线、存储器映射这些概念。面试时,我就主要讲了这个项目,把遇到的时序违例、资源优化问题讲清楚,效果很好。
另外,既然你经常和FPGA工程师打交道,这是绝佳资源!多请教他们,看看公司的FPGA项目代码(如果有权限),甚至问问能不能帮他们做一些简单的测试或文档工作,慢慢切入,这比闭门造车强多了。
