我们队三个人,一个写过Verilog但没上过板,一个只会画PCB,我负责整体。题目要求控制四路电机并读编码器做闭环,板子是安路EG4S20。现在纠结是先写PWM和编码器接口,还是先把上位机通信和显示做了。只剩两个月,怕时间分配错了最后连基本演示都跑不起来。有大佬能说说这种控制类题目的模块优先级和每周排期吗?
2026年FPGA大赛只剩两个月,用国产安路EG4S20做「多路PWM+编码器闭环」控制题,队伍该先啃哪几个模块才能不烂尾?
6 个回答

先直接说结论吧:你们这个题的死亡顺序,基本就是「显示→上位机→编码器→PWM」,越靠前的越容易把时间吃光,越靠后的才是能不能演示的命根子。但真正决定烂不烂尾的,不是模块顺序本身,而是你们有没有一条「每周都能上板看到东西」的主线。
控制类题目最怕的现象是:前一个月大家各写各的模块,仿真波形都挺好看,第五周一开始拼接,发现时钟域对不上、编码器计数方向反了、PWM死区没配、四路电机一转就复位。这时候只剩三周,改都来不及。所以排期的原则应该是「先打通最小闭环,再往两边长」,而不是「先把每个模块做完美再组装」。
具体到安路EG4S20这块,我建议第一周不要碰显示和上位机,全队扑在一条电机上:PWM生成(先固定占空比,能转就行)+编码器正交解码(用状态机或四倍频计数)+一个最简单的比例闭环。目标很朴素,就是让电机转速能被设定值拉住、能正反转、编码器读数随转速线性变化。这一步做通了,你们就有了整个系统的地基。注意安路的工具链和Xilinx那套差别不小,引脚约束、IP核、时钟资源都得提前踩坑,第一周别指望效率。
第二、三周再扩到四路,同时把上位机串口加上。串口不要一开始就搞协议栈,先发原始数据帧、PC端用现成串口助手看波形,能下发设定值就够。显示放到最后,因为它是「锦上添花」不是「雪中送炭」,评委看的是闭环能不能稳,不是屏幕炫不炫。
关键是留出最后一周整机联调。这一周不要写新功能,只做三件事:多路同时跑会不会互相干扰、长时间运行会不会漂、掉电重启能不能自恢复。很多队伍就是死在没留联调周,功能都写了但没一起跑过。你们三个人分工上,负责PCB的那位早点把驱动板和FPGA板的接口、电源、地线确认清楚,电机一多的干扰问题往往出在硬件不在代码。

先说你最纠结的那个点:上位机和显示现在做,基本等于给还没通电的机器刷墙。四路电机加编码器闭环,真正的风险不在「功能多」,而在「闭环能不能合上」。合不上,上位机画得再漂亮也只是个仪表盘,展示的时候电机不转或者一给指令就飞车,评委看一眼就明白了。所以顺序我建议是:先把一路电机的最小闭环跑通,PWM 固定占空比能转,编码器能读出方向和计数,然后接一个最简单的 P 控制让转速跟得上设定值。这一路通了,剩下三路基本是复制粘贴加资源换位,工作量会断崖式下降。
为什么先啃这两个模块?因为它们互相咬。PWM 的载波频率和编码器的采样周期要匹配,闭环的调节周期又决定了你控制增益能放多大。你如果先写编码器不做 PWM,测出来的转速没有可执行对象;先写 PWM 不做编码器,你连转速对不对都不知道。两个一起上板,才能暴露真正的坑:计数方向反了、四倍频算错、占空比给反了导致刹车、时钟域没对齐导致偶尔丢计数。这些坑在仿真里很多是看不出来的,只有上板转起来才现形。
至于上位机和显示,它们的定位是「调试工具」和「演示门面」,不是控制回路本身。比较聪明的做法是第二周给串口留一个极简的调试通道,能打印设定值、实际转速、占空比就够了,别一上来就搞协议栈和波形图。显示同理,先保证能显示四路转速,字符或者数码管都行,别急着做 UI。等闭环稳了,再花几天把上位机补成能调参、能看曲线的样子,性价比最高。
排期上,两个月大概八周,我的建议是留出最后一周专门联调,前面七周按「闭环优先、工具其次、门面最后」铺。每周必须有一件能上板演示的东西,哪怕很丑。控制类题目烂尾,往往不是技术不够,而是到第五周还在各自写模块、没合过。你们三个人里那个没上过板的,让他从第一天就负责烧写和抓波形,比多写一个模块有用得多。
对了,你们现在编码器是增量式还是绝对式,接口是 AB 相还是带 Z 信号?这个会直接决定解码模块怎么写。

两个月别贪,先把一路电机转成闭环,再去复制四路。PWM 和编码器是命根子,上位机和显示都是加分项,顺序别倒。
每周验证一次上板,哪怕只有一路。第二周给串口留个打印口,能看转速就够,别做花哨界面。最后一周别排新功能,全用来联调。
三个人分工也简单:一个人死磕 PWM 加编码器解码,一个人搭最小闭环和参数,会画板的那位管电源、驱动、接线,别让他闲着手痒去优化 PCB。

先别纠结顺序表,先问一句:你们三个人里,谁能在两周内把一路电机的转速读出来?这个问题的答案基本决定了排期。EG4S20 这块板子本身资源够用,控制题真正的坑不在逻辑规模,而在「信号链能不能合上」——PWM 出去、驱动板响应、编码器回来、计数方向对不对、单位换算有没有错。这条链子只要有一环虚的,四路一起上就是四倍噪声。
所以我的建议是:前两周只做一件事,一路电机最小闭环。PWM 先固定占空比让它转,再单独写编码器解码,用串口打印计数值,确认正反转和线数换算对得上,最后才套一个最简单的比例环节。这一步通了,剩下三路是复制加换引脚,工作量会掉得很快。上位机和显示放到第三、四周,而且只做「能看数」的程度,别做界面美化。
有个替代做法值得考虑:如果画 PCB 的那位暂时插不上手,让他先把驱动板和电源的接线、限流、共地这些物理层问题解决掉,而不是去优化板子。很多队伍烂尾不是代码写不出来,是电机一转就复位、编码器读数乱跳,最后发现是电源塌了。
每周留一天专门联调,别把联调排到最后一周。你们现在用的是安路的开发环境还是别的流程?这个会影响第一周能不能顺利上板。

说个可能不太中听但很实在的判断:这类控制题,烂尾几乎从来不是因为模块写得少,而是因为「闭环没合上就开始铺摊子」。你们现在的纠结——先 PWM 还是先上位机——其实是个伪选择题,因为上位机和显示在闭环没通之前,做出来也没有可展示的对象。评委看的是电机能不能按设定转速稳住,不是你的曲线画得多顺滑。
往深一层讲,为什么 PWM 和编码器必须绑在一起做?因为它们是一对互相约束的东西。PWM 的载波频率决定了电流纹波和噪声,编码器的采样周期决定了你速度环的调节周期,而调节周期又限制了你增益能开多大。你要是先把 PWM 调到自认为完美,再去接编码器,很可能会发现采样太慢、增益一开就震荡,然后回头改 PWM 频率,前面的调试全白费。反过来先做编码器不做 PWM,你测出来的转速没有执行对象,等于空转。两个一起上板,才能在真实噪声里找到那个能用的组合。
具体到排期,我倾向这样:第一周打通一路开环,PWM 能转、编码器能读、串口能打印;第二周把这一路做成转速闭环,哪怕只是比例控制,先让它跟得上设定值;第三周复制到四路,重点处理资源分配和引脚约束;第四周做上位机和显示,只做必要功能;第五周以后全部留给联调和边界情况,比如堵转、反向、急停。这个顺序的核心逻辑是「每一步都有可演示的成果」,而不是「每个模块都做到最好再拼」。
还有一个容易被忽略的点:三个人分工不要按模块切,要按「谁能上板」切。写过 Verilog 但没上过板的那位,最该干的就是尽早把工程跑起来,哪怕逻辑很蠢。只会画 PCB 的那位,去管电源、驱动、接线和测试夹具,这些是闭环能不能稳的物理基础。你自己负责整体节奏和接口约定,比如时钟、复位、寄存器地址这些,先定死再并行。
最后提醒一句,别在最后一周排新功能。联调期一定会冒出你没预料到的问题,那一周是留给它们的,不是留给加功能的。你们现在板子上的时钟和复位是怎么规划的?这个没定清楚,后面四路一起跑很容易出玄学问题。

先泼盆冷水:你们现在纠结的这个问题,本身就是烂尾的前兆。不是说你问得不对,而是当三个人围在一起讨论「先做PWM还是先做上位机」的时候,说明队伍里还没有人对「这块板子能不能让一个电机按指令转起来」有把握。两个月,四路闭环,真正的敌人不是模块写不完,是时间被均匀地撒在了四个方向上,结果每个方向都只做了一半。
我给你一条主线,你顺着想就明白了:控制类题目的评分现场,评委坐下来第一件事是看电机转不转、稳不稳、指令跟不跟得上。上位机和显示是给评委「看数据」用的,但前提是有数据可看。如果闭环没合上,你的上位机界面上那几条曲线就是画出来的假象,一给指令电机不响应,或者转速一上去就震荡,展示环节直接崩。所以优先级不是「哪个模块简单先做哪个」,而是「哪个模块决定了能不能演示」。闭环决定演示,PWM和编码器决定闭环,上位机和显示只是呈现。
但这里有个更深一层的取舍,很多人没意识到:PWM和编码器不是两个可以分开排期的独立模块,它们是一对互相约束的东西。PWM的载波频率会影响电流纹波和电机噪声,编码器的采样周期决定了你速度环的调节周期,而调节周期又限制了你增益能开多大。你要是先把PWM调到自认为完美,再去接编码器,很可能发现采样太慢,增益一开就震荡,然后回头改PWM频率,前面的调试全白费。反过来先做编码器不做PWM,你测出来的转速没有执行对象,等于在空转计数器。这两个必须绑在一起上板,哪怕只有一路。
所以我的建议是:前两周,全队扑在「一路电机最小闭环」上。PWM先固定占空比让它转,编码器单独写解码,用串口打印计数值,确认正反转和线数换算对得上,然后套一个最简单的比例环节,让转速能跟设定值。这一步通了,剩下三路基本是复制加换引脚,工作量断崖式下降。第三、四周再动上位机,而且只做「能看数」的程度,别做界面美化。显示放到最后,或者干脆用串口助手代替。
三个人分工也顺一下:写Verilog但没上过板的那位,让他死磕PWM加编码器解码,这是最快建立板级手感的路;会画PCB的那位,先把驱动板、电源、限流、共地这些接线搞定,别让他闲着手痒去优化PCB;你负责整体联调和参数整定。每周留一次上板验证,最后一周别排新功能,全用来联调。
你们现在板子上的时钟和引脚分配定了吗?这个没定,后面所有排期都是纸上谈兵。
发表回答
登录后可在本页底部提交回答