內容目錄
TL;DR(快速心得)
如果你想走 IC / Digital / ASIC / Timing / PD,
EE577A 算是 USC 必修的 VLSI 基礎課。
作業不算輕鬆,內容偏後端、偏電路實作,
但 timing、logical effort、SRAM、datapath 都是真的很實用。
教授聽誰的影響很大,我那年上課體驗有好有壞。
整體來說:痛苦指數高、收穫指數中上。
如果你的目標是 EE577B 或想往晶片領域走,這堂課基本上還是得上。
想看我修完 577B 後的完全心得,可以看下一篇:
USC EE577B VLSI System Design 評價(577A 的後續實作課)
(想看我更完整的心得、教授差異、踩雷故事 → 往下拉)
前言:為什麼 EE577A 這麼重要?
在 USC EE 的 VLSI/ASIC 系列課裡,EE577A Digital VLSI Design 算是偏後端、偏實作的那種。
主要用 Cadence Virtuoso、畫 layout、跑 timing、做 SRAM、小型 datapath 等等。
老實講,我原本是想逃這堂課的(怕跟 477 一樣又是 layout 地獄)。
但因為是 577B 的 prerequisite,只能乖乖上 XD。
577A 主要涵蓋什麼?
這堂課的主題非常廣,從最底層的電晶體一路到 IC flow:
- MOS theory
- CMOS inverter / NAND / NOR
- logical effort
- sequential circuits
- timing analysis
- power analysis
- SRAM 設計
- datapath(adder/multiplier)
- IC design methodology(口頭講講)
換句話說:
電晶體 → gate-level → timing → datapath → SRAM → IC flow
全部會走過一遍。
課程每週大綱
| Week | 主題 | 簡介 |
|---|---|---|
| 1 | Overview | 發 syllabus & 助教教你開 Cadence |
| 2–3 | MOS Theory | 477 的延伸版 |
| 3–5 | Logical Effort | 這堂課的精華 |
| 5–7 | Sequential | flop / latch / FSM |
| 6–7 | Timing | setup/hold、slack、skew |
| 8–9 | SRAM | 6T cell、sense amp、array |
| 10–11 | Power | dynamic / leakage / sizing |
| 11–13 | Datapath | adder / multiplier / pipeline |
| 14 | IC Flow | RTL → synthesis → STA(講概念) |
| 15 | Wrap-up | Final 前總複習 |
Prelab 心得
其實一開始助教說 Prelab 不算分,我懶得做。
結果一堆老印狂問「真的不算嗎?真的嗎??」
教授後來又突然改口:要算 XD
只好期中一次補完全部。
Prelab 1:MOS 基礎暖身
熟悉 Cadence,順便把 MOSFET 的 I–V 行為找回來。很簡單。
Prelab 2:Gate Delay 直覺
開始有 timing 味道了:slew、load、pattern 對 delay 的影響。
Prelab 3:AND16 Tree
做一個 AND16、多層 NAND/NOR Tree,順便感受 sizing。
Prelab 4:SRAM 6T
第一次看 6T cell 寫入/讀取的波形。蠻酷的。
作業心得(HW1–HW6)
HW1(MOS + basic VLSI)
前面有點幹話題,後面開始做 VGS–ID、energy、LVT/HVT,那些後面都會用到。算暖身。
HW2(delay + logical effort + architecture)
比 HW1 重很多。
logical effort、unified transistor model、AND16、priority encoder 都在這裡。
HW3(像工程師的作業)
MUX、complex gate、tree/linear、priority encoder、XOR tree。
第一次感覺到「電路不是只有 NAND/NOR」。
HW4(Timing Closure Mini Pack)
setup/hold、critical/min path、Vt swapping、useful skew。
完全就是 timing engineer 在做的事情。
HW5(SRAM + Cache 組織)
前半是 6T/8T、read/write stability,後半變 cache、banking、array partition。
超級 circuit → architecture 練習。
HW6(不計分但超硬)
像公司 take-home assignment。
priority encoder、counter、3X circuit、leakage reduction,全包。
Lab 心得(Lab1–3)
Lab 1:字串處理 + variation
Python/Perl 字串 parsing + VT variation 1000 次 sample。
第一部分 WTF,但後面超實用。
Lab 2:NAND + Latch timing
真正的 timing lab:pattern、skew、load、rise/fall delay、setup/hold。
超貼近 cell characterization。
Lab 3:Priority Encoder + Auto-Layout
先做 PE4→PE16,再用博士生做的 SKILL script 自動產生 layout。
會用的好爽,不會用的直接被 DRC/LVS 電爆。
助教也沒人會用,全靠你自己摸 XD。

考試心得
Midterm / Final 都是 closed-book,但可以用計算機。
全是手寫題,所以不會寫也能亂寫幾句,通常不會直接零分。
主要考:
- delay
- logical effort
- timing
- CMOS 行為
- SRAM/power
- datapath
基本上考 HW+Lab+講義的組合拳。
這堂課對找工作有什麼用?
非常有用,尤其:
- setup/hold、skew
- adder/multiplier
- SRAM 基本概念
- pipeline
- power
- timing 報告怎麼看
你現在在美國找 IC/ASIC/Verification/Timing,
面試非常容易碰到這些。
我自己後來工作也是有用到不少 577A 學的東西。
適合誰?不適合誰?
適合:
- 想做 Digital IC / ASIC / VLSI
- Timing / PD / Verification
- 之後要修 577B 的人
- 想補 VLSI 基礎
- 想面試比較有底氣的人
不適合:
- 想找水課
- 完全不想碰 layout
- 對 MOS、timing 無興趣
- 完全不考慮走硬體的人
我的完整修課心得與爆料
我那時上 EE577A 是 Sandeep Gupta 跟沙老師 (Shahin Nazarian) 合開的。
Gupta 不知道是從哪邊找來一個業界的叫做 Sridhar Narayanan(可以叫他沙老師 2 號?)一起教課。
其實第一個學期上完經典開局的 EE477 跟 457 後,經歷過 477 的 Layout 地獄,想說能不能不要上偏後端的 577A。但 577A 又偏偏是 577B 的 prerequisite,很靠北。我又對 577B 的 Verilog 與前端內容比較有興趣,所以其實在想能不能找堂別的課,例如 EE533。
結果 EE533 上了兩週我直接傻眼。教授幹話連篇,自吹幫公司抓專利、叫工程師多生小孩傳基因(七八個是不是真的我不知道 XD),投影片講一下、project 爆難、助教找不到、第一周作業還放錯放成 C++。我當下直接覺得:幹,這課真的不行。強迫 attendance教授又這個鳥樣,我直接退掉回來 577A。
因為是 Gupta 跟沙老師合開,所以有兩個時段。
我原本想選沙老師,至少講話清楚、給分好,不像 457 的普神不知道在供三小。
但因為退掉 533,要換課時沙老師的已經被選完,所以我只好選到 Gupta。
前幾週還好,內容基本上是 477 的複習再深入一下。
前半大多是沙老師 2 號講,他講得也還行,只是很愛突然問問題,我還沒醒來旁邊老印就已經唸出答案,真的蠻捲 XD。
577A 整體就是偏後端的課。HW/Lab 跟 477 有點像,算 voltage、current、CMOS、timing,加上 power、logical effort。
Lab 初期沒有太多 layout,但最後還是要畫 128-bit SRAM,只是這次有個自動 layout script某個USC博士生開發的。助教不會用,只能靠自己的悟性跟問那位博士生(大概全 USC 只有他會用 XD)。
後半段換 Gupta 上課後,我覺得他是全 USC Digital IC 最難懂的教授。
一張投影片講 30 分鐘,一直笑不知道笑啥意思的。
SRAM 那段完全聽不懂再講什麼鬼,好在沙老師有錄影補救,外加自己在Youtube找點相關影片,不然真的會爆炸。
考試都是手寫,題目有些看過、有些完全沒看過。建議不要留白,能寫什麼就寫什麼,多多少少會有分。
整體來說,課程結構是有東西的,比 EE533 那種亂七八糟好多了。
而且說不定你最後工作也不是做前端設計,可能去做 timing、PD、verification、memory,這些都多少會碰到 577A 教的內容。
總結:值得修,但要心理準備
EE577A 是 USC VLSI/ASIC 的基礎課,
內容完整、能學到的東西很多、也跟 577B 完美銜接。
只是:
- 作業不輕鬆
- Lab 會爆肝
- 教授看運氣
- Project 最後幾週會很硬
但如果你未來想走 IC / ASIC / Digital Design,
577A 是該修的。
而且最好找個能一起爆肝的隊友,
最後幾週真的會很需要 XD。
想看我同系列的課程心得:
USC EE577B Digital VLSI Design 評價(577A 的延伸與實作課)
如果你對 USC EE 課程或美國工程師生活有任何疑問,歡迎在下方留言,我會盡量回答。
想看更多留學、工程師、VLSI/SoC 相關內容,也歡迎追蹤本站其他文章。
如需引用或轉載本文,請附上原文連結:
https://rudderstyles.com/usc-ee577a-review/




