我是电子信息大三,课程设计做过交通灯和简易计算器,板子是正点原子Zynq,买回来只跑通过例程。投了几家FPGA实习都卡在简历关,HR说没有项目亮点。想问下2026年实习简历到底怎么写,课程设计怎么包装成能打的工程经历?
2026年大三想找FPGA实习,简历里只有课程设计和一块吃灰的板子,怎么写才能过HR初筛?
8 个回答

先说结论:HR初筛看的不是你会不会FPGA,而是你有没有把一件事从需求做到验证的完整闭环。交通灯和计算器不是不能写,是写法太像实验报告。你试试把课程设计按四段拆:需求(要解决什么问题、指标是什么,比如灯切换周期、手动紧急模式)、架构(状态机怎么划分、时钟域、复位策略)、接口(按键消抖、数码管/led驱动、是否留了UART调试口)、验证(testbench怎么写的、覆盖率、有没有做时序约束和上板实测)。这么一拆,交通灯也能写出工程味。
但光包装课设不够,你还缺一个能上板的小系统。Zynq吃灰太可惜,挑一条视频通路做:OV5640或HDMI输入,经VDMA或自己写的AXI-Stream通路,做灰度或边缘检测,再送到HDMI/VDMA显示。这条链路会逼你碰AXI总线、DDR带宽、跨时钟域、时序收敛,比十个交通灯都有说服力。或者走总线外设方向:自己写一个AXI-Lite从机IP,接PL端寄存器控制,再用SDK写驱动验证。
关键是量化。简历上别写「熟悉Verilog」,写「实现XX,LUT约X千、BRAM X块、Fmax约XX MHz、时序收敛无违例」。数字不用多精确,但要能自圆其说,面试官一问你就得讲清楚怎么得到的。
一个风险提醒:别把例程改个参数就说是自己做的,Zynq的例程网上一搜就有,面试官见多了。替代做法是哪怕功能小,也要有自己写的模块和踩坑记录。你现在板子跑到哪一步了,是连Vivado版本都没确定,还是已经能跑通裸机?

我按一条主线帮你捋:从「跑通例程」到「能打的工程经历」,中间差的其实是一个完整的因果链,而不是功能数量。
你现在的问题是,交通灯和计算器在面试官眼里属于「跟着教程能复现」的东西,它证明你上过课,不证明你能独立做工程决策。而实习岗真正想筛的,是这个人能不能把模糊需求变成可验证的实现。所以包装的核心不是把课设吹大,而是补上它天然缺失的部分:约束、验证和量化。
具体怎么走。第一步,把交通灯重写一遍,但这次先写需求文档:几个方向、有没有黄灯、紧急按钮优先级、时钟频率假设。然后画状态机,明确Moore还是Mealy,为什么。接着写testbench,别只看波形,用自检式testbench跑若干场景,打印pass/fail。最后加时序约束,看综合实现报告里的WNS和资源。这一套下来,同一个交通灯,你讲的东西完全不一样了。
第二步,必须补一个上板系统,这是分水岭。Zynq是好东西,别只跑例程。建议走视频通路:摄像头或HDMI输入,AXI-Stream做图像处理,VDMA过DDR,再输出显示。这条链路的价值在于它会强迫你遇到真实工程问题,比如跨时钟域同步、AXI握手反压、DDR带宽不够导致撕裂。你解决这些问题的过程,就是简历上最值钱的部分。如果视频太难,退一步做AXI-Lite自定义IP加SDK驱动,同样能碰到总线协议和软硬协同。
第三步,量化。面试官对「熟悉」「掌握」这类词已经免疫,但对数字敏感。你可以在简历里写:LUT约X千、FF约X千、BRAM X块、Fmax约XX MHz、时序无违例。这些数字从Vivado实现报告里抄就行,不用背。面试时被追问,你要能解释为什么Fmax上不去、是不是关键路径在乘法器或者跨时钟域。
一个常见误区是贪多。有人一口气列五六个项目,每个都一句话,反而显得都没做深。个人感觉,两个项目讲透,比六个项目泛泛而谈强得多。另一个误区是只写结果不写取舍,比如为什么选VDMA而不是自己写DMA,这种取舍恰恰是工程能力的体现。
最后说投入产出。大三到实习面试大概还有几个月,别指望把Zynq全栈吃透,聚焦一条链路做深,同时把Verilog基础、时序概念、AXI握手这几个高频考点过一遍,性价比最高。你现在的Vivado是哪个版本,板子是7020还是更大规模的型号?这会影响你选哪条视频通路方案。

先说个容易被忽略的点:HR初筛其实很少真的去判断你FPGA水平高低,他们看的是「这个人有没有把一件事做出闭环」的信号。交通灯本身没错,错在简历里只写了「实现交通灯控制」,这句话在HR眼里等于「做过实验」。你要做的是把同一件事换一种叙述:这个系统有几个方向、有没有紧急模式、时钟假设是什么、状态机为什么用Moore、按键怎么消抖、testbench怎么自检、综合后WNS多少、LUT和BRAM用了多少。哪怕数字很朴素,只要有具体数值,可信度立刻不一样。
但光改叙述不够,会露馅。面试官顺着问两句就穿帮了,所以改简历之前先把课设真的重做一遍:补自检式testbench、加时序约束、上板实测。Zynq那块板子吃灰太可惜,别急着上复杂视频通路,先做个能跑通的小闭环,比如用AXI-Lite挂一个自己写的PWM或UART外设,从PS端读写寄存器,这条链路会逼你碰总线、地址映射、跨时钟域,比十个交通灯有用。
风险在于:别为了「亮点」硬编一个你没做过的项目,面试现场被追问架构细节会非常尴尬。替代做法是把课设做深,而不是做多。另一个常见误区是堆工具名词,Vivado、Vitis、SDK写一堆,但说不清哪一步遇到什么问题、怎么定位的,这反而暴露你只是跑例程。
你板子的具体型号是哪一档,PS端和PL端资源差挺多,这会决定你第一个上板项目选什么,方便的话说下?

我按一条主线说,可能有点长,但这条线想清楚了,你后面半年都不慌。
核心矛盾不是「项目不够多」,而是你目前所有经历都停在「功能能跑」这一层,没有往上走到「工程决策」这一层。面试官筛实习,本质是在赌一件事:给你一个模糊需求,你能不能自己拆成可验证的实现。交通灯和计算器恰好是教程里需求已经帮你拆好的东西,所以你做得再熟,也证明不了这个能力。
那怎么补?我的建议是拿一个课设当载体,走一遍完整的因果链,而不是再开新项目。以交通灯为例:先写需求,几个方向、周期多长、有没有黄灯、紧急按钮优先级怎么定;再定架构,为什么用状态机、Moore还是Mealy、复位策略是什么;然后定接口,按键消抖放哪、显示怎么驱动、要不要留UART调试口;最后验证,自检testbench跑几个场景打印pass/fail,加时序约束,看综合报告的WNS和资源占用。同样一个交通灯,走完这四步,你讲出来的东西和「跟教程复现」完全是两个物种。
这里有个取舍要提醒:不要贪多。很多同学一看简历单薄,就同时开视频通路、以太网、DDR几个方向,结果每个都半途而废,面试一问就卡。正确顺序是先打通一个小闭环,把它讲透,再横向扩。Zynq这块板子的价值在于PS-PL协同,你可以先做一个AXI-Lite的简单外设,从PS写寄存器控制PL的LED或PWM,这条链路短、可上板、能讲清楚地址映射和总线时序,性价比很高。等这条稳了,再考虑视频通路那种吃DDR带宽的大项目。
还有一个隐性收益:走完这条链,你面试时被追问「为什么这么设计」「遇到什么问题怎么定位」时,是有真实素材的,而不是背话术。这比简历上多写两行字重要得多。
你现在是打算先重做课设,还是想直接开一个新项目?这两个路线的节奏不太一样,可以先定下来再动手。

先说一个反常识的判断:你现在缺的不是第三个项目,而是把已有的东西讲到能被人追问三层还不露馅。交通灯和计算器之所以在简历上显得单薄,是因为你只写了结果层,没写决策层。面试官筛实习生,赌的是「给你一个模糊需求,你能不能自己拆出可验证的实现」,而教程类项目恰恰把需求拆解这一步替你做完了,所以你越熟练,越证明不了这个能力。
那怎么补?别急着开新项目,拿交通灯当载体重走一遍因果链。第一步写需求:几个方向、周期多长、黄灯几秒、紧急按钮优先级怎么定、时钟频率假设是多少。第二步定架构:为什么用状态机、选Moore还是Mealy、复位策略是同步还是异步、要不要留调试口。第三步定接口:按键消抖放在哪里、数码管或LED怎么驱动、是否预留UART。第四步验证:写自检式testbench跑几个场景打印pass/fail,加时序约束,看综合实现报告里的WNS和资源占用。这一套下来,同一个交通灯你讲出来的东西完全不一样,因为它从「实验」变成了「有约束、有取舍、有量化」的工程闭环。
板子吃灰这件事,我建议你别一上来就冲视频通路。Zynq的坑在于PS和PL交互、AXI总线、DDR带宽,随便一个都能卡你两周。更稳的路径是先做一个小的总线外设闭环:用AXI-Lite挂一个自己写的PWM或UART,从PS侧配置寄存器、PL侧输出波形,再回读状态。这个小系统能让你真正碰到地址映射、时序握手、跨时钟域这些面试常问的点,而且一两天就能出结果,性价比远高于直接啃VDMA。
简历叙述上,把「实现交通灯控制」改成带数字的句子,比如时钟假设、状态机类型、testbench场景数、WNS数值、LUT和BRAM用量。数字朴素没关系,有具体值可信度就上来了。HR初筛其实很少判断你FPGA水平高低,他们看的是「这个人有没有把一件事做出闭环」的信号。你先把课设按需求-架构-接口-验证四段重写一遍,再补一个能上板的小外设,这两步做完再投,反馈会明显不同。你现在这块Zynq具体是哪个型号,跑例程时用的是Vitis还是纯PL工程?这个会影响下一步该往哪条路走。

简历卡关,八成不是项目太少,是叙述太像实验报告。你试着把交通灯按四段拆开写:需求(切换周期、紧急模式优先级)、架构(状态机划分、复位策略)、接口(消抖、显示驱动、调试口)、验证(自检testbench、时序约束、上板实测)。同一件事换这种写法,HR看到的就不是「做过实验」,而是「能把模糊需求拆成可验证实现」。板子别急着上视频通路,先用AXI-Lite挂个自己写的PWM或UART外设,从PS配置、PL输出、回读状态,一个小闭环就够撑起面试追问了。你目前Vivado是哪个版本,这会影响IP封装的操作细节。

你缺的不是第三个项目,是把交通灯讲出决策层。需求、架构、接口、验证四段一拆,再补个能上板的AXI-Lite小外设,资源WNS一量化,简历立刻不一样。你板子例程跑通的是哪个IP?

先别急着加第三个项目。你现在卡在简历关,根子不在项目数量,而在于你看待课程设计的方式还停留在「实验报告」那一层。我按一条主线往下讲,你顺着想一遍就明白了。
HR初筛其实很少真去判断你的FPGA水平。他们判断的是信号:这个人有没有把一件事从模糊需求推到能上板验证的完整闭环。交通灯和计算器之所以显得单薄,不是题目小,而是教程已经替你把需求拆好了,你只做了「实现」这一步。做得再熟,也证明不了你能自己拆需求。而实习岗招人,赌的恰恰就是这个能力。
所以包装的第一步不是改措辞,是拿交通灯当载体,把缺失的环节补回来。先写需求:几个方向、周期多长、黄灯几秒、紧急按钮优先级怎么定、时钟频率假设是多少。这一步看着虚,但它决定了你后面所有决策有没有依据。然后是架构:为什么用状态机、Moore还是Mealy、复位用同步还是异步、要不要留调试口。你会发现光是「为什么选Moore」这一个问题,就能撑起面试官三轮追问。
接着是接口和验证。按键消抖放在哪里、显示怎么驱动、有没有预留UART。验证这段最容易被跳过,也最值钱:写自检式testbench,跑几个场景打印pass/fail,而不是盯着波形看。再加时序约束,看综合实现报告里的WNS和LUT/BRAM占用。哪怕数字很朴素,只要具体,可信度立刻不一样。
做完这一轮,你会发现自己能讲的东西完全变了。同一个交通灯,从「实现了红绿灯切换」变成「我如何在时钟假设和优先级冲突之间做取舍,又怎么验证它」。后者才是工程经历。
那板子呢。Zynq吃灰太可惜,但也别一上来就搞视频通路,那条线对现在的大三来说太重。先做个能闭环的小外设:用AXI-Lite挂一个自己写的PWM或UART,从PS配置、PL输出、再回读状态。这个小系统会逼你碰总线、地址映射、跨时钟域,比十个交通灯都有说服力。视频通路留到你能把这条小闭环讲清楚之后再说。
最后提醒一个误区:别把精力花在把课设吹大,而要花在把课设做完整。面试官顺着问两句就穿帮的包装,不如朴素但真实的闭环。你现在用的是哪个版本的Vivado?这会影响IP封装和时序报告的具体操作,先确认一下再动手。
发表回答
登录后可在本页底部提交回答