01 实习单位
重庆海云捷讯科技有限公司(简称:海云捷讯),重庆海云捷迅科技有限公司于2018年10月31日成立。位于重庆市沙坪坝区,以FPGA与人工智能技术为核心,致力于研究智能硬件高效使用,提供多种智慧场景解决方案,助力智慧城市及相关智能行业升级改造,推动中国FPGA及人工智能生态建设发展。并通过与众高校开展合作,助力高校FPGA和人工智能相关专业的课程体系及人才培养支撑平台建设,加速技术应用落地及FPGA产业和人才培养的发展。
02 实习内容
❖前期
学生自学预习FPGA的基础初学知识,Verilog语言的基础简单语法,在Quartus软件中学习仿真测试、时序分析等相关FPGA开发的相关知识。线下实际进入企业,实地了解项目文化以及企业本身的规章管理制度,并举行开营仪式。
❖线下
线下实地学习,由老师讲解FPGA开发所需要的基础知识,即FPGA的器件原理、资源构成、Verilog语言基础语法。硬件开发所需的基础知识:数字电路的简单基础,Verilog语言和数字电路之间的有机联系和映射关系。学习认识FPGA开发所需的硬件环境,初步简单的了解FPGA开发项目的开发流程,并进行简单的点亮板载的四个LED的实验。在老师演示下学习在FPGA开发板中实现流水灯实验实际操作,并根据跑马灯的设计要求完成在FPGA里实现跑马灯试验实操。学习FPGA项目开发中所需的Testbench编写、Modelsim、Signal-Tap仿真,并在3-8译码器实验中进行代码的编写、仿真和调试。学习有限状态机、按键消抖的基础知识和设计思路,并完成有限状态机和按键消抖的实验详解、实操。学习使用FPGA板载的蜂鸣器,认识蜂鸣器的基础原理,完成板载蜂鸣器的发声验证,设计、完成简易的音乐播放器。
学习数码管的显示原理、动态扫描的原理,设计、完成数字电子时钟的实验项目。基于前面已学的内容进行简易售货机的设计、代码实现和开发板验证。学习基础的串口通信相关知识,其中重点较为细致地讲解了UART串口通信协议的解析。进行串口通信的接收(UART_RX),发送(UART_TX)模块详细讲解、并以小组的形式进行实操。学习FIFIO IP的相关定义等基础知识以及应用方向和环境,学习串口联合知识。学习SoC的环境搭建,以及外设的讲解,并进行实际操作,也就是通过搭建的SoC环境实现hello world的编程和验证实现。基于SoC环境完成前面quartus编程中已经实现的项目,本次是以实际操作完成流水灯和按键点灯的操作。
学习在SoC环境中生成所需的PWM波并在实际项目中利用PWM波实现呼吸灯。后续的实验学习中将学习使用python开发实现全连接神经网络,学习卷积神经网络基础,实现卷积网络算子,学习使用C语言进行图像数组预处理:图像缩放、图像二值化。完成手写体项目,其中包含以下内容:C语言实现及其调试,HLS模块实现及其调试,SoC+HLS模块调试,SoC调度+HLS算子调试。
03 实习情况
ü第一阶段
动员准备阶段:召开实习准备会和动员大会。
ü第二阶段
正式实习阶段:时长共8周。
基础知识学习1周(6.20——6.24);
公司实习3周(6.27——7.15);
线上项目3周(7.18——8.5);
项目答辩,验收,完善、总结:1周(8.8——8.12)。学生自我总结,写实习报告,评定实习成绩,评选优秀实习生。
实习过程迄今为止总的来说是对过去已经学习的嵌入式开发课程,数字电子课程,C语言、数据结构、微机原理等开发课程的一个总结和向实际应用的一个延申。
实习所用的FPGA开发板虽然和以往所用的STM32系列、Arduino系列开发板有很大区别,但是总体的开发流程、开发逻辑上是由很大的共同之处的。FPGA开发板本身的性质决定了它在开发过程中需要更多的细心和耐心程度。而Verilog语言在上手的时候和我们原先较为熟悉的C语言、JAVA语言以及汇编语言有很大的相同之处,但是同时在细节的语言逻辑、语言框架上有着很多的差异。因此在初期的学习过程、开发过程中,开发板和所需要使用的编程语言,也即FPGA开发板和Verilog编程语言与原先的硬件设备、使用过的语言存在的差异是实训过程中存在的最大差异和难点。
在上手之后,项目本身设计要求就成为了新的所需要掌握的部分,比如把按键消抖、数字电子钟设计、有限状态机的设计调试之间进行重新封装、设计,最终在FPGA开发板上通过使用板载电子数码管、按键等通过编程逻辑处理完成了一个简单的售货机的逻辑处理。而在接下来的线上实习过程中,必然会学习更多的相关知识,也会对原理相关的部分有着更加深入的学习。
04 实习感受
本次实习实训中的项目实操让我明白,要去做好,需要付出很多,同时也会学到很多的东西,以前觉得去做一个项目是比较轻松的,但是在学校的时候我也是感受到,要做好一个项目,从无到有并不简单,真的自己开始做一个实际的项目的时候才会发现每一步存在的难度,我也是不断的去跟着同学,老师,积极的去做好项目中每一步需要完成的事情,让自己有更大的收获,同时也是在项目进行的过程中发现,和学校实操是有一些区别的,或许每个公司的情况是不同的,在做事情的过程之中,一些对接,一些流程会有一些区别,我也是只有渐渐的熟练之后,才能把一个项目完成。
学习不能停止,自己的经验不足,那么就要多和同学去交流,不懂的问题也是要多去问,去找资料。我也是在实习里认真的去听,不太清楚,或者有疑惑的地方就去多问,并且我也是在实习里感受到,如果自己停止了学习,可能以前会的事情能做好,但是遇到新的就不行了,而且一些问题的出现也是处理不了,不能觉得在学校学习了那么多就够了,其实还有很多的方面是可以去提升的,特别是实际的工作方法,要做好需要有方法。