近年来随着Bluespec、Chisel、SpinalHDL、PyMTL等一众新一代HDL的推出,业界逐步感受到新一代HDL在数字芯片设计效率方面的提升。相比Verilog和VHDL,这些新一代HDL在语法表达能力、代码简洁程度、错误检查等方面有不小的提升;相比高阶综合HLS,这些新一代HDL支持RTL级描述能力,在芯片性能的把控方面远超HSL。数字芯片的敏捷设计,其目的就是为了提升硬件设计效率,减少人为错误。无论用哪一种语言进行硬件设计,背后扎实的硬件设计相关知识是必不可少的,特别是体系结构,因为体系结构专门研究CPU设计,而CPU是当今最复杂的数字芯片之一,各种常见的数字芯片设计问题在体系结构领域都能找到对应的参照,诸如流水线、缓存、内存管理、缓存一致性、异常处理等等。
虽然国内大专院校计算机科学和电子工程专业都有开设体系结构或组成原理等相关课程,但是在实操环节缺失很多内容,特别是CPU里缓存、内存管理、异常处理相关的部分,基本上都不涉及。但是随着数字芯片的规模越来越大,芯片设计的复杂度指数级上升,对数字芯片的设计人员有很高的要求。当有志从事数字芯片设计的同学从学校走向社会,如何理解数字芯片设计的精髓,提升设计能力,成为能否胜任数字芯片设计工作的关键。
为此,达坦科技在2023年始,发起成立硬件设计学习社区,诚邀所有对硬件敏捷开发设计感兴趣的同学加入我们的学习社区。这里有志同道合的小伙伴,共同学习目标的互助自学小组,有耐心答疑的助教。我们一起花一个月的时间,系统地学习计算机体系结构相关知识,并且通过动手项目来验证学习的成果。
学习目的
- 培养数字芯片设计人员对数字芯片设计的深入理解,强化理论知识的同时提升实操技能,继而整体提升设计能力;
培养出兼具理论和实操能力的数字芯片设计人才
学习内容
基于MIT的三门课程6.004、6.175以及6.375的内容和Lab实践。之所以选择这三门课,主要是因为这三门课分别是初级、中级、高级计算机体系结构相关内容。特别的,6.175和6.375的Lab和课程项目有一定的难度,要求采用Bluespec语言实现RISC-V处理器,并支持多级流水、分支预测、缓存、异常处理、缓存一致性等功能。此外,Lab环节还涉及软硬件联合开发,要求基于所实现的RISC-V处理器运行真实的RISC-V程序,并给出性能评估。
因此,达坦科技选择这三门课作为学习内容,以此帮助有志从事数字芯片设计的同学强化体系结构基础知识,提升数字芯片设计能力,为将来走上数字芯片设计岗位打下坚实的基础。
基础入门:
【MIT 6.004】https://b23.tv/o7YjSkA
进阶提升:
【MIT 6.175】共23个lecture,8个lab,1个project
【MIT 6.375】共13个lecture,5个lab,1个project
考核:
本学习社区自学课程的考核以Lab实践的完成度作为标准,要求所有Lab和project实现既定功能并通过仿真验证。
适合人群
- 具备一定的HDL语言基础,诸如Verilog、VHDL、SystemVerilog等;
- 具备较强的自学能力;
- 需要一个月时间全职学习。
学习方式
- 自学为主,社区内大家相互监督和交流,社区提供助教在线答疑;
- 项目完成提供专家点评与指导。
学习规划
- MIT 6.004(有基础的同学可以跳过):正常需要1~2天时间,不涉及Lab实践;
- MIT6.175+6.375前半部分:大约需要2周时间,学习6.175的前8个Lecture以及6.375的前9个Lecture,并完成6.175的前4个Lab以及6.375的前4个Lab;
- MIT6.175+6.375后半部分:整体难度升级,大约需要3周时间,学习6.175和6.375剩下的内容,并完成6.175的后4个Lab、6.175的课程project以及6.375的第5个Lab;
- Lab和project完成后把代码提交到GitHub上,以备审核;
- 过程中有问题可以随时在群里向助教提问。
参与方式
- 准备好个人的简历,内容包括但不局限于:学校/专业、过往学术/项目经验
- 扫码联系小助手报名,注册学习档案,通过后加入硬件设计学习社区群即参与成功。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。