18级种子班SoC课程结课感想二则


时间:2021-12-10

18级种子班SoC课程结课感想二则

(一)

| 689号队员 蒋浩懿

经过两周的课程与实验,18级种子班的SoC课程迎来了圆满结课。SoC软硬件协同设计(Hardware and Software Co-Design)是种子班的特色课程,由Dian团队05号顾问、罗斯-霍曼理工学院终身教授宋建建老师授课。自从种子班成立伊始,宋老师每年都坚持回母校为种子班同学授课,迄今已是第15年。今年由于疫情影响,授课形式改为线上。

软硬件协同设计课如其名——用编程语言描述真实的硬件物理电路、手动搭建IP电路和设置约束;再基于SDK进行软件编程、需求实现,从ARM Cortex“硬件”处理器与FPGA“软件”可编程引脚的结合,体现了真正的system on a chip”。

此外,SoC课程将实验与教学紧密地结合在一起——在每天的课程教学之余,都需要基于Xilinx Zybo开发板完成一系列课程实验,包括了从基本的Verilog模块实现、IP核设计,到ARM开发UART通信、VGA显示设计Linux搭建。课程以学生自主学习、动手实践为主,老师讲授为辅,让同学们一步步在不依赖指导的情况下根据讲义完成任务,通过自己不断地研究、探索,进而设计实验、分析现象,这也是种子班一直以来的“干中学”培养模式。

在为期两周的学习和实践中,同学们也逐渐习惯了左手Zybo Board、右手Vivado的软硬件协同开发流程,培养起软硬件协同设计的思维,从底层到上层对计算机系统建立了系统性的认知。、

宋老师教学授课十五载,在此,全体18级种子班同学向宋老师表示最诚挚的感谢!

 

(二)

| 707号队员 侯京华

跟历届种子班一样,SoC课程被安排在了暑假。8月9号的早上9点我们开始了第一天的课程,宋建建老师全程使用英语授课,这对我是一个不小的挑战。SoC是什么?这是我在最开始的疑问。SoC含义很多,有一种定义是一个有专用目标的集成电路,是一个包含嵌入式软件的完整系统。而我与硬件的第一次接触还是在去年暑假的微机原理课程。直到我们开始了第一个实验,我才真正体验到这门课程的独特之处——我发现我在使用软件设计电路。我感到这种方法有着巨大的意义,软硬件设计不再是“先硬件、后软件”两个独立的部分,而是相互作用、相互支持的部分,所以才叫作软硬件协同设计。

之后的每天,上完课都会有实验任务,宋建建老师把实验指导书写得十分详细,这是我见过最详细的指导书,精细到每一个步骤,着实令人倾佩。这门课一共有10个实验,正是因为有着这样的指导书,我一个不怎么会硬件的人都可以顺利地完成实验。整个课程中主要使用Vivdo和Xilinx SDK这两个软件做软硬件协同设计。我学会了如何使用Vivdo设计block、自定义IP、设置约束,我学会了如何使用Xilinx SDK做硬件上的软件开发。最让我印象深刻的是乒乓球程序设计实验,硬件设计上我们使用了按键、开关、自定义的LED这些IP,最让人欣喜的就是validate design顺利通过、编译bitstream没有问题出现,并且最终成功导出硬件工程。软件设计上我们使用了轮询和中断两种方式,这和当初的微机原理一样。有了微机原理的基础,这个乒乓球程序做起来变得相对轻松了一些。

为期12天的SoC课程匆匆结束了。总的来说,这门课让我对嵌入式有了一个全新的认识,全英文的授课、指导书、报告撰写也让我的英语听读写能力有了一定的提升。