做芯片,兰州大学本科生是认真的
需要Silicon Labs 芯科科技品牌产品可找现代芯城
又是一个午夜,错误究竟出在哪儿?一遍遍检查调试代码,依然没有发现问题所在,一筹莫展之际,兰州大学信息科学与工程学院2019级本科生陆钇桦向“战友们”电话求助。待电话挂断,陆钇桦长舒一口气,时间已是凌晨三点。过去一年,这样的场景不知上演了多少次。
一分耕耘一分收获。近日,由兰州大学“一生一芯一系统”本科生团队自主研发设计的基于RISC-V指令集的嵌入式处理器已完成流片并回片,经测试,该芯片功能正常,达到设计预期目标,可用于控制智能家电、医疗设备、汽车工业等场景。目前,该项目已在Gitee网站上开源,供全世界芯片设计爱好者参考。
“一生一芯一系统”项目第2期成员在研讨中。兰州大学党委宣传部供图
时光回溯到2020年,兰州大学信息科学与工程学院副教授何安平了解到,部分高校在尝试让本科生做CPU(中央处理器)芯片研发工作。“当前培养计算机人才强调计算机系统能力,也就是说,既要培养同学们的软件开发能力,也要加强同学们对硬件的理解。研发芯片就是认识硬件的有力抓手。”何安平说。
2021年6月,信息科学与工程学院启动了“一生一芯一系统”研发项目。经过同学们自主报名,第一期项目共吸纳了计算机类专业、电子信息类专业和物理学院微电子专业的7名本科生。
对于没有任何CPU芯片开发经验的本科生来说,确定研发目标是个大难题。何安平说:“一方面我们考虑了学生的实际情况,另一方面我们也希望把目标定高一点,让学生踮起脚、伸长手臂才能够得着。”
经过广泛阅读国内外优秀论文案例,团队决定从嵌入式CPU做起。嵌入式CPU设计相对简单,也是目前使用最广泛的中央处理器,全球每年的出货量可达上百亿颗。指令集架构是CPU设计的核心,CPU各个模块之间相互协作依赖共同的指令集。目前大部分指令集架构,要么需要昂贵的授权费,要么不适用于嵌入式系统开发,而RISC-V指令集具有低功耗、低成本、全面开源等特性。综合考虑下,团队选择使用RISC-V指令集。
CPU核、总线和外设三部分构成一个简单的系统级芯片。CPU核是整个运算处理单元的核心,采用两级流水单发射架构,包括第一级流水模块、第二级流水模块、中断异常模块三部分。“这种两级流水架构相当于工厂中的流水线,且两级流水的电路能够同时执行不同的指令,有效提高了指令执行
的效率和电路的利用率。中断异常处理模块可以处理异常情况和中断请求,根据中断源和异常源执行相应的程序。”陆钇桦介绍,总线上挂载了4个外设,数据通过总线在CPU核和外设之间进行传输。
项目组对芯片进行性能测试。兰州大学党委宣传部供图
芯片系统整体架构设计阶段结束后,团队迅速进入编码阶段。队员们利用课余时间定期沟通,遇到问题及时协调解决。“过程很难,攻克之后就很了不起。”尽管编码调试阶段遇到了重重困难,但是队员们总是相互鼓励,从不轻言放弃。“累了我们就一起出去吃顿饭,或者爬爬萃英山,回来之后继续攻关。”2018级信息科学与工程学院本科生张灵壮笑着回忆。
在芯片临近流片之际,为了保证芯片质量,队员们夜以继日地泡在实验室里反复验证测试。“白天做不完就熬夜做,大家自愿留在实验室通宵。当时什么也顾不得,只想着一定要做到最好,不能让之前的努力付诸东流。”2019级信息科学与工程学院本科生李勋说。
部分成功流片的芯片。兰州大学党委宣传部供图
这支本科生团队从零开始,经过一年时间,一步步完成了芯片设计全流程工作。“芯片最大的突破在于采用了同异步混合电路。CPU核运用同步电路设计,使用统一的时钟驱动,这也是目前较为主流的设计方式;总线采用全异步电路,设计起来比同步电路更加复杂,具有低功耗、高功效的特点。”何安平说。2022年7月,芯片顺利送往代工厂进行流片。
“很多同学认为CPU芯片研发是极难的工作,事实证明本科生完全有能力完成。‘一生一芯一系统’第一期项目的成功,改变了同学们重软件、轻硬件的观念,提升了大家的计算机系统能力。设计制造中国芯片离不开人才,芯片制造者既是基础理论扎实的科学家,也是技艺精湛、精通编程的工程师,这些人才需要从本科阶段开始培养。”兰州大学信息科学与工程学院党委书记陈文波说,之后的项目将逐渐加大难度,让学院所有同学参与其中。
经过半年的等待,兰州大学本科生研发的嵌入式芯片成功流片,被命名为“兰州大学RISC-V处理器1号”。陆钇桦小心翼翼地将4.4平方毫米大小的芯片捧在手心,那一刻,感到所有辛苦都得到了回报。
需要Silicon Labs 芯科科技品牌产品可找现代芯城
Silicon Labs 芯科科技热销型号:
MCU-EMBPROGBOOK2
SI8540-B-FW
SI8540-B-FWR
SI8540-B-FSR
SI8540-B-FS
SI3480-A01-GMR
SI3462-E01-GMR
SI3402-A-GMR
SI3402-A-GM
SI3403-A-GM
SI3480-A01-GM
SI3482-A01-GMR