本人本科是机械专业的,因为对芯片感兴趣,自学了Verilog和FPGA,现在想转行找FPGA相关的工作。但是简历上不知道写什么项目,感觉网上那些流水灯、数码管的项目太low了,写上去反而减分。想问问各位大佬,非科班出身,简历上写什么FPGA项目才能让HR觉得靠谱,愿意给面试机会?有没有什么适合自学者做的、能体现工程能力的项目推荐?
2026年了,非科班出身自学FPGA,简历上写什么项目才能让HR觉得靠谱?
10 个回答

说实话,HR筛简历看非科班,第一眼不是看项目多炫,而是看你能不能把一件事讲圆。与其堆三个半吊子,不如只写一个完整链路:比如OV5640摄像头采集,经过你自己的图像处理模块,再通过HDMI显示出来。这个项目里自然带出I2C配置摄像头寄存器、像素时钟的跨时钟域处理、HDMI的TMDS编码和时序约束。面试官问起来,你能说出每根线为什么这么连、时序违例怎么解的,比写十个流水灯有用得多。简历上就放这一个,附上波形截图和调试笔记链接,比什么都靠谱。你现在手头有板子了吗?还是纯仿真阶段?

个人感觉你思路有点偏了。HR和面试官其实不怕你项目小,怕的是你讲不出工程味儿。机械转行,简历上最忌讳的就是罗列一堆『我实现了UART』『我写了SPI』,那跟培训班结业作业没区别。你要做的是选一条完整的数据通路,把它当成一个小产品来做。我建议你搞一个RISC-V软核,不用太复杂,能跑简单的汇编指令就行,然后挂上UART和GPIO,让CPU能通过串口控制LED或者读按键。这个项目的好处是:第一,它逼你理解总线仲裁和地址映射,这是面试高频考点;第二,你写代码的时候自然会遇到复位同步、亚稳态、FIFO空满这些实际问题;第三,你可以在简历里写『设计并调试了基于AXI-Lite总线的外设接口,解决了跨时钟域数据丢失问题』,这句话比任何炫技都实在。做的时候记住,不要用现成的开源核改两行就完事,一定要自己搭ALU和寄存器堆,哪怕性能烂,但你能讲清楚每条指令怎么取指、译码、执行的。面试官问起来,你可以从RTL设计讲到上板调试,从时序分析讲到功耗估算,整个链路都是你自己的,谁还管你本科是不是机械的。另外,简历上最好附一个GitHub链接,把工程目录截图放上去,代码要有注释,README写清楚怎么仿真怎么跑,这能直接打消HR对非科班动手能力的疑虑。你现在是打算投实习还是全职?项目时间安排上大概能投入多少?

补一个可能被忽略的点:项目做完不是终点,你得留一份『调试记录』。我当年面试时,讲完项目功能后,主动说了一句『这个项目我花了两周在调DDR3读写时序,最后发现是bank管理策略的问题』,面试官眼睛一下就亮了。对于非科班,HR最怕的是你只会照着教程敲代码,所以你在简历里可以单独列一个小节叫『关键问题排查』,写两三条你真实踩过的坑,比如:摄像头像素时钟和DDR时钟相位不对导致图像撕裂,最后用异步FIFO解决;或者RISC-V的load指令在流水线里写回冲突,加了forwarding逻辑才跑通。这些细节比项目名字本身更有说服力。另外,别只写Verilog,可以提一句你用Python写了个脚本自动生成测试向量,或者用TCL脚本跑时序约束,这能体现工具链的完整度,也是科班生容易忽略的加分项。最后提醒一句,OV5640这种摄像头模块,网上资料多但坑也多,如果你时间紧,优先保RISC-V软核,因为那个更能体现计算机体系结构的底子,面试官聊起来也更有深度。你现在是打算重点冲软核还是图像这条线?

个人感觉你现在的核心问题不是缺项目,是缺一个能讲出因果链的故事。选OV5640+HDMI这条路没错,但别一上来就啃官方例程,那东西跑通了你也说不清。我给你个笨办法:先把摄像头输出的RGB数据用FIFO缓存,再按HDMI的时序要求逐行读出,中间故意留一个不处理像素时钟域转换的版本,让画面出现撕裂,然后你再去查VESA时序、算行场消隐,把异步FIFO加上。整个调试过程写进简历的『问题排查』栏,比任何项目名都有说服力。面试官问起来,你就说『我一开始以为只要数据对就行,后来发现像素时钟和显示时钟必须严格同步,否则每帧错位』——这句话直接证明你踩过真实的坑。

补充一个很多人忽略的视角:HR看非科班简历,其实是在赌你的学习能力和抗压性。所以与其堆项目,不如做一个『半成品但有明确下一步』的RISC-V软核,比如只支持十几条指令、能跑冒泡排序,但你在简历里写清楚『当前未实现中断控制器,计划用向量中断替代轮询』。这反而比写『完成了一个五级流水线CPU』更真实,因为面试官追问下去,你至少能说出中断延迟和仲裁优先级的关系。另外,机械背景有个隐藏优势:你对时序图的理解可能比纯CS的强。你可以主动画一个SPI读传感器寄存器时的时序图,标出CS拉低到第一个SCK上升沿之间的建立时间,然后说『这就像机械加工里的定位基准,时序容差就是公差带』。这种类比能让面试官记住你。最后提醒一句,别在简历上写『精通』,写『熟悉并调试过』,非科班最怕被追问到翻车。你手头是买的哪块板子?如果是纯仿真的,建议至少跑通一次上板验证,哪怕只是把LED用PWM调亮度,也能证明你有硬件调试的常识。

直接说结论:写一个你能把每个引脚为什么这么连、每个时序约束为什么这么设讲清楚的项目,哪怕它只是UART+SPI双接口。HR筛简历看的是你有没有工程闭环意识——比如你写了SPI,能不能说出CPOL和CPHA四种模式的差异,以及你选哪种、为什么?能说出『我一开始用模式0,结果从设备采不到数,查手册发现它要求模式3,改完就好了』,这比写一百行代码都顶用。另外,别忽略文档能力,非科班最容易被质疑的就是『会不会写测试报告』。你可以附一页PDF,画个简单的状态机图,标出每个状态跳转的条件,再写一段『实测误码率在115200波特率下为0』的结论。这比截图波形更有说服力。

从机械转过来,你最大的短板不是不会写代码,而是没经历过一个信号从产生到被正确采样、再到被处理的完整链路。所以项目不用贪大,但一定要有一条能讲透的因果链。我个人建议做UART+SPI双接口的通信模块,但别停留在收发数据,要往深处挖一层:比如你写SPI主机时,有没有想过从设备的CPOL/CPHA配置和你代码里的相位关系?我见过很多人用模式0跑通就完事,结果换个传感器就采不到数,查手册才发现要模式3。你要是能在简历里写一句『通过查阅从设备手册,将SPI模式从0调整为3,解决数据采样错误』,这比写十个流水灯都强。再进一步,你可以给这个模块加上FIFO缓冲和简单的校验位,然后写一个Python脚本自动生成测试向量,回读比对结果。这能体现两件事:一是你有验证意识,不是跑通仿真就收工;二是你有工具链思维,知道用脚本提高效率。面试官问起来,你还能顺势讲讲FIFO空满标志怎么处理、跨时钟域时亚稳态怎么避免——这些才是工程里真正会踩的坑。最后,哪怕项目做完,也要留一份调试笔记,记录你当时是怎么定位问题的。比如你发现接收端偶尔丢字节,最后用逻辑分析仪抓波形,发现是起始位采样点偏了,于是调整了波特率时钟的分频方式。这种具体的排查过程,比任何项目标题都有说服力。对了,你手头有板子吗?还是打算纯仿真?如果有板子,建议把实际波形截图放简历里,HR看到真实硬件调试痕迹,信任度会高不少。

个人感觉机械背景转FPGA,最容易被低估的是你对物理世界的直觉。比如做OV5640+HDMI这个项目,别只跑通官方例程,可以故意留一个不做跨时钟域处理的版本,让画面出现撕裂,然后你再去查VESA时序、算行场消隐,把异步FIFO加上。这个调试过程写进简历的问题排查栏,面试官一看就知道你踩过真实硬件坑。另外提醒一句,HR筛简历时,项目名不重要,重要的是你有没有工程闭环——比如你说用了I2C配置摄像头寄存器,能不能说出SDA在SCL低电平时才能变化?这种细节才是非科班和培训班作业的分水岭。

如果你时间有限,我建议只做一个RISC-V软核,但别用开源代码改两行就交差。自己搭ALU和寄存器堆,哪怕只支持十几条指令、能跑冒泡排序就行。这个项目的好处是:它逼你理解总线仲裁和地址映射,这是面试高频考点;而且你写代码时自然会遇到复位同步、FIFO空满、load指令写回冲突这些问题,每个都能讲出一段调试故事。简历上你可以写『设计并调试了基于简单总线的外设接口,解决了跨时钟域数据丢失问题』——这句话比任何炫技都实在。但要注意,别在简历上写『精通』,写『熟悉并调试过』就好,非科班最怕被追问到翻车。你打算用哪家的板子?如果是Intel的,时序约束工具链和Xilinx的差别还挺大,建议提前确认目标公司常用的平台。

机械转FPGA,简历上写什么项目,关键不在于项目名字多唬人,而在于你能不能讲清楚一条完整的信号链路。HR看简历那十几秒,其实就是在找两个词:闭环和调试。闭环是指你的项目有输入、有处理、有输出,能跑通一个真实的功能;调试是指你遇到过问题,并且用工程手段解决了它,而不是改两行代码碰运气跑通。
我给你一个具体的建议:做一个基于RISC-V软核的串口通信控制器,但别用开源核改两行就交差。自己写寄存器堆和ALU,哪怕只支持十几条指令,能通过串口接收数据、解析命令、控制LED或者回显字符串就行。这个项目的好处是,它逼着你把CPU、总线、外设三个层面串起来。你会遇到地址映射怎么分配、寄存器读写时序怎么对齐、串口接收和CPU取指之间怎么同步这些问题。每一个问题都能单独写成一段调试故事,比如你发现CPU主频和串口波特率不同步,导致丢字符,最后加了FIFO缓冲才解决——这种细节,面试官一听就知道你是真做过,不是背教程。
做的时候有个常见误区:很多人喜欢直接上AXI总线或者复杂SoC,觉得这样显得高级。但非科班转行,面试官其实更怕你堆砌名词。你写『设计并调试了基于简单总线的RISC-V软核,解决跨时钟域数据丢失问题』,比写『搭建了基于AXI-Lite的SoC系统』要可信得多。前者你能讲出具体波形和时序,后者大概率一追问就露馅。
另外一个容易被忽略的点是文档能力。项目做完后,花半天时间写一份两页的调试报告,画一个简单的状态机图,标出每个状态跳转条件,再写一段『实测在115200波特率下,连续收发10000字节无错误』的结论。这份报告打印出来,面试时直接递给面试官,比你在简历上写十行项目描述都管用。它传递的信号是:你不光会写代码,还知道工程需要可追溯的记录。
最后提醒一句,别在简历上写『精通Verilog』,写『熟悉并调试过』。非科班最怕被追问到翻车,你主动降低姿态,反而显得踏实。你打算用哪家的板子?如果是Intel的,时序约束工具链和Xilinx差别挺大,建议提前确认目标公司常用平台,别到时候面试官问起Vivado的XDC约束,你答的是Quartus的SDC,那就尴尬了。
发表回答
登录后可在本页底部提交回答