首先定下评价基调:讲的很全面,且哈老师的授课水平非常不错;实践工作偏少;区分度主要看期中期末考试。给分据传闻一般。
FPGA 的全称是 “基于 FPGA 的硬件系统设计”,虽然提到了 FPGA,但主要内容并不是 FPGA 的使用或 RTL 的代码编写,而是关于 FPGA Hardware System Design 相关的知识。
本人 CS 背景,学这门课主要是为了提升自己架构方面的知识和能力,同时对硬件设计有一个完整的了解。如果是 EE 的同学,可能上课的切入点和我不大一样。
课程内容介绍
首先列举课程内容如下:
- Verilog Programming:会简单介绍 Verilog 的语法等等,个人感觉在教学里还算是比较有逻辑比较清楚的一档。如果不是老 RTL 码农,可以自己先学着写写再听一听讲的内容。
- Design Specification and Modelin:讲一些设计流程和基本概念,算是为后续内容做铺垫。
- Behavioral Synthesis:高层次综合。这个比较有意义,可以说是理解算法到硬件的最重要的一步。
- Combinational Optimization:组合逻辑的优化,就是学一些简单的优化算法。
- Sequential Optimization:时序逻辑优化。个人感觉这个还蛮重要的,对理解时序逻辑的性能等等很有帮助。
- Technology Mapping:工艺映射,是从逻辑门电路到具体的硬件电路的映射过程。到这里其实 CS 架构背景就已经不太涉及到了,我抱着图一乐的心情去听的,感觉也蛮有意思,到了底层之后视角就完全不一样了。
- Physical Synthesis:具体的综合过程,算是一笔带过吧,毕竟有点太复杂了。
总体来说还是很全面的,想做数字系统设计的同学应该早点学(大二下),以此为基础再去学专业课会更舒服。感觉和 CA 搭配互补性很强,但并非人人都是超老师可以一学期课程无数 x
考核方式
- Lab & Project:做一些不太难的代码作业。相对而言,只有第三次的作业(需要上板的自动售货机模拟)和第四次的作业(脉动阵列)有点难度;最后的 Project 如果不去卷优化性能,就是一坨无比巨大的组合电路,反而没什么思维上的难度。
- 考试:考试有点像 CS 的 AI 课,简单的说就是手跑算法。点名 2024 Final 的这个考试出了个不能优化的状态机优化问题,浪费了我一个小时,痛失前面的时序逻辑优化问题的时间。
- 听上一届学长说给分一般。哈老师说想进他的组,这门课就需要好好上,最好拿个 A。
是否应该选课?
For CS
- 如果你想做数字系统设计的架构:建议选,但不建议卷,上完就行
- 建议大二上速通 101 + 概率论 + 信号,然后大二下上 CA + FPGA,工作量很均衡,而且上完之后大三就能开始正式进组科研
- 如果你想去做 EDA(电子设计自动化):建议选且卷
For EE
- 数字方向的话同 CS 做架构,且建议大二选
- 想扩展眼界,了解数字方向,可以好好上,会有收获
- ……
后续可能会在我的 Blog 上更新一些题解。我是 Hypoxanthine,祝大家好运。