2022FPGA创新设计竞赛选题分析与建议——写给大一大二学弟学妹

0 写在最前

老师新带了几个大一大二的同学准备参加FPGA创新设计竞赛,他们不具备太多的参赛经验,往往专业知识也没有学太多。有一颗想参赛的心,却又茫然不知所措。因此,此文希望对于大一大二的科创萌新有所帮助。

1 关于选题

1.1 选题分析

2022FPGA创新设计竞赛 比赛官网

高云半导体的选题包括语音识别、声场摄像头、物体识别、加密。专业性比较强,在了解FPGA基础的同时,需要有机器学习算法的基础,了解一些语音、视觉、加密相关的知识。不过赛题给了设计思路,可以利用给的IP核,加快开发速度。需要在推理算法的开发移植上花比较多的功夫。

紫光同创选题有RISC-V架构处理器的实现,实现一个片上操作系统。说明白一点,就是让你们做一个CPU,能够在上面跑一些程序。网上有不少的关于用FPGA实现精简指令集架构处理器的开源项目,可以进行参考移植。如何想要效果更好,涉及处理器架构的优化,专业性较强。

色度亮度提取,任务规定很明确,根据色度亮度去控制led灯,可能需要绘制电路板,掌握简单的PCB绘制即可。

安路科技和Xilinx赛道没有给定具体选题方向,是开放性选题。安路科技建议方向包括移植成熟的应用生态、实现一些开源项目等等,可以利用网上的一些资料以及现有的成果。Xilinx是老牌FPGA厂商,网上相关的培训视频资料比较丰富,能够比较方便地跟着视频学习。

从难度上看,高云半导体题目难度最大,紫光同创其次,安路科技和Xilinx由于是开放性选题,可以制作技术难度不高的参赛作品。同时,根据经验,一般难度和参赛人数都是成反比的,即安路科技和Xilinx的参赛人数将会比较多,紫光同创其次,高云半导体题目参赛人数最少。

但是,赛题难,可能实现一两个基本功能,就可以获奖;赛题简单,特别是开放性赛题,需要作品的功能比较完整,完成度比较高,导致赛道可能比较“卷”。希望大家根据自己团队的情况和兴趣进行选择。

如果想要挑战自己,促进自己多学一点新知识,可以选择高云半导体、以及紫光同创。如果已经有了比较成熟的想法,或者已经有了一些作品想要继续参赛,不想收到赛题的限制,就可以选择安路科技和Xilinx这两个开放赛道。

同时,Xilinx是老牌的FPGA厂商,可能很多学生都选择使用Xilinx的FPGA入门(ZYNQ),其开发生态也比较好,网上有很多的资料。这可能也会导致Xilinx赛道的参赛人数比较多。相反,安路科技是国产半导体厂商,缺点是资料比较少,遇到问题只能够自己想办法解决。

1.2 开放性选题如何选

这是我以前参加集创赛,一开始所遇到的问题。赛题开放,大脑空白没想法,不知道要去做什么。当时我找程老师,让她给我找了一个想法,将开放性题目变成了命题式。

希望你们能够多观察社会,对生活保持热爱。能够发现人类未被满足的需求。在“拿着锤子找钉子”未果之后,不乏倒转思维,去“对着钉子找锤子”。钉子就是需求,锤子就是你所掌握的技能。

当时不知道你的技能能够导向什么产品的时候,不妨去从需求出发,看看社会到底需要什么。再去思考以我的技能,能够做出什么样的产品。

一个需求可以用多种产品形态去解决,蕴含着巨大的创新潜力。

关于解决帕金森老人吃饭的问题
![智能防抖勺](https://img-blog.csdnimg.cn/img_convert/da7bbabaf0351fe5e729e96e054c15a4.jpeg#clientId=uf7eef1f9-22da-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=300&id=u97e71bb2&margin=[object Object]&originHeight=800&originWidth=800&originalType=url&ratio=1&rotation=0&showTitle=true&status=done&style=none&taskId=uae60ffd4-5b9f-4270-aed4-261bf34c4ad&title=智能防抖勺&width=300 “智能防抖勺”)
![Emma Watch](https://img-blog.csdnimg.cn/img_convert/78bd6bc3067026efcaef01778172b339.png#clientId=uf7eef1f9-22da-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=169&id=u87c7a2e4&margin=[object Object]&originHeight=674&originWidth=1200&originalType=url&ratio=1&rotation=0&showTitle=true&status=done&style=none&taskId=u6aaeb92a-8640-48e5-9146-1dc6fc286da&title=Emma Watch&width=300 “Emma Watch”)
为解决帕金森老人吃饭的问题,有智能防抖勺;也有通过震动手腕,减弱导致手抖的神经信号的Emma watch。

从中可以看出,对着钉子找锤子,可以有多种解决方案,我相信其中一定有可以用上你的技术的地方。同时,奇思妙想在比赛评审中,也是很重要的加分项。

如何开拓思维呢?可以看一看每年的“互联网+”比赛,看一看别人发现了哪些需求,他们导出了哪些产品形态?我能不能把他实现,或者我有更好的解决方案。

同时,也可以关注一些科技众筹网站,看一看别人的创意。

Kickstarter

2 如何入门嵌入式开发

2.1 嵌入式开发有哪些知识要学——从点灯出发

后续或许有很多类嵌入式开发类的比赛,核心都是用一个芯片控制一些外部硬件,从而实现一些具体功能。

针对目前低年级同学参赛经验比较少,对于嵌入式开发了解不多,我整理了嵌入式开发需要学习的知识点,可以作为同学日后的学习路线。

梦的开始,从点灯出发。

  1. 简单电平输出,可以点亮一个LED了,以及控制暗灭。
  2. PWM输出(控制LED、电机)。这时,可以自己制作一个炫酷的呼吸灯了。
  3. 定时功能的实现。单片机通过定时器,FPGA可以通过分频器实现。这时候,可以实现更加复杂的程序了。
  4. 通信协议的掌握:串口、IIC、SPI、SBUS等等。掌握了这些,即可以控制显示屏、蓝牙WIFI模块、语音模块等等很多集成功能块。
  5. ADC、DAC的使用。涉及模拟电路会用。

掌握了这5点,基本上就比较系统的熟悉了整个嵌入式开发,可以在控制的基础之上,开始实现复杂的算法。

再具体一点,第一步应该干什么?
报名参赛,借用或者购买对应开发平台,下载对应开发软件,点亮一个LED灯。

多做实验,当一些具体功能实现时,享受成就感带来的快乐。

2.2 FPGA与单片机开发的区别

![image.png](https://img-blog.csdnimg.cn/img_convert/a4416b876a5f529cc7a01db23781100d.png#clientId=uf7eef1f9-22da-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=322&id=u72dd1b36&margin=[object Object]&name=image.png&originHeight=854&originWidth=1180&originalType=binary&ratio=1&rotation=0&showTitle=false&size=228863&status=done&style=none&taskId=uc0c0e24b-023e-40e9-b169-7116a0579aa&title=&width=444.5)
FPGA,可编程逻辑门阵列。实际上,是数字芯片设计中,用来验证前端开发可行性的。数字后端在前端开发的基础之上,进行布局布线,之后,就可以拿去生产芯片了。

因此,虽然FPGA功能强大,单片机能做的它都能做,但是使用起来,还是有很大不同的。

  1. FPGA编程对应的是一个个硬件门电路,具有实时并发性。不像单片机程序,具有顺序逻辑,一般写在前面的代码先执行。而FPGA对应的硬件电路,电子以光速运动,基本上是瞬间,同时运行的。
  2. FPGA依赖时序逻辑电路来实现顺序逻辑。其中有一个很重要的部件叫做触发器,依赖一次又一次的脉冲出发,来区别前后顺序。因此,时序特别重要,一旦时间顺序没有考虑清楚,程序功能无法实现。开发起来,要比单片机难。

跟单片机代码可以拷贝参考别人的一样,FPGA开发同样有许多开源的IP软核,不用从底层去一步步实现已有的功能,直接调用别人的IP即可。

参加FPGA比赛,你需要学习基础的Verilog语法。会调用公用IP,会用图形化的界面设计大规模FPGA。

3 其他

学会自上往下的学习。

现在知识已经筑起了高楼大厦,像高中那种由前因导出后果的自底层开始的学习,在比赛过程中是行不通的。比赛要求你们具备快速学习的能力,而快速学习,要求自上而下的学习。

不用知道为什么,会用就行。快速学习、掌握新技能,能够学以致用,直接“现学现卖”,用在比赛当中。不用纠结于某些细节是为什么,不代表阻止你们求知。往往技术用着用着,就知道为什么了。某一天突然发现,跟你学的某些知识对应上了。

交流促进技术增长

费曼学习法,有所输出。

你可能感兴趣的:(fpga开发,嵌入式硬件)