课程内容
主要围绕 Jan Rabaey 那本经典教材展开,从最 basic 的 MOS device 开始,到 inverter 引出 elmore delay chain , logic effort 等等概念(差不多就半学期了),后面讲了点 STA 的知识还有加法器设计,SRAM 的内容,上课内容不多,都非常简单,再加上周老师讲课非常细致认真,基本不存在听不懂的情况。
友情提醒
这门课还是偏向 fully customized circuit design 的,即对 standard cell 进行大信号分析和设计,没有任何 RTL coding、综合环节,也没有传统意义上的后端(大部分时间你是在搭建 transisitor level 的 std cell, 然后在 cadence virtuoso 里跑 tran,然后手动 layout,跑 drc、lvs、calibre 抽寄生在做 post-sim。
而不是我写了一个 RTL code,然后用 S 公司或者 C 公司或者开源综合器 进行一个综合,然后评估 PPA)。
所以
如果你对数字电路设计的理解或者偏好是 CPU,GPU 等方向的话,你更应该学习 CS 相关内容(计算机体系结构、操作系统,以获得更好的系统层面的认知),如果你对软硬件协同设计感兴趣,可以学习 HLS 还有 FPGA 相关的知识,如果你对通信、数字信号处理等方向感兴趣,应该学习通信原理、信息论、数字信号处理、数字图像处理等方面的知识。总之,这门课并不是教你 “数字 IC 设计” (毕竟课程名字里也没有设计二字),你还需要学习大量的特定领域知识才能有一个全面的认知。
作业、Lab 以及 Project
作业
作业印象不深,内容不多,每周花费 3 小时,大概四五次
Lab
Lab 主要是 inverter ,basic logic gate ,adder 的 pre-sim 然后画 layout,作 drc,lvs,pex,老 analog 人做起来非常快,一开始用 hspice 后面解放可以用 spectre 直接跑,这里建议呢 用 maestro 方便很多,virtuoso 内置的 calculator 也非常强大。总之花费的时间并不多,但我看群里很多之前没有接触过的同学好像比较 struggle,建议是多 google
Project
噔噔东,好像最后 3 人一组 30 多组就完成了个位数的组(完成 layout 并后仿 PPA 达到指标)。 是一个经典 5 级流水线 CPU,但是全定制设计(非综合)。主要五个 part,ALU,SRAM,register file,control unit 和 Program Counter。比较依赖队友之间的羁绊,我负责了 ALU 和 PC,还有两位分别 SRAM 和 RegFile ,CU。 项目花了一个月,前仿做了两周,然后后面 layout 花了快一个月,最后我来拼 top,三天没有睡觉,狂 layout,那一刻我即是后端,过 DRC 和 LVS 花了很久。然后抽出来 PEX 之后一直跑不出正确结果,哈哈。然后我把 wave dump 出来给两位队友看,不得不说,这门课 3 个人有一个混子 prj 就无了,幸运的是我的队友都工作坚硬。他们化身了 timing analysis tool,时刻 feedback 给我潜在的 timing issue。最后定位到 load store 过程中有几根 wire 走的太长了,然后 CC 和 C2G 比较大,时序没满足要求,于是我插了一组 buffer 成功解决了,成功跑通助教的 testbench。
后面发现 testbench 有些问题
跑通以后就想着能不能稍微卷一卷,因为好像有 ranking,然后惊喜的发现 TA 给的 tb 对功耗测试存在问题,report 并提出 pr 和助教沟通后解决了这个问题((一开始功耗低的可怕,我还以为我们做得无敌,结果是 tb 有问题,最后也是顺利提交了 prj,褪了一层皮,这,真的值得吗?
Exam
midterm 比较简单,好好听课或者本身就有基础都可以拿到体面的分数,因为可以带一张 cheat sheet 所以记忆性的东西,比如 logic effort,delay 这些公式都可以抄下来现推,考了大概 80 左右
final exam 难度很高(比如上课学 6-T SRAM,考试来个 8T-SRAM 让你大信号分析),题量大,题型没有那么应试了,开卷,东西随便带但是不能通信,时间是真的紧张,我最后只考了 60 分。。。。。。 可能 lab 和 prj 占比比较大,所以最后也勉强混到了 A+