我正在緩慢更新中
勘誤 & 疑難雜症歡迎聯繫我 kevin861222@gmail.com
幫我按 star 是我持續更新的動力
更新日誌: 10.22 03_Violation解法
+--- ~
| README.md
|
+---心得
| | README.md
|
+---修課指南
| | README.md
| |
| +---最齊全のICLAB準備事項
| | | README.md
| |
| +---Verilog_小知識
| | | README.md
| |
| +---Verilog_黑魔法
| | | README.md
| |
| +---ICLAB_高分攻略
| | | README.md
| |
| +---03_Violation解法
| | | README.md
|
\---Mycode
| README.md
+---Lab01
+---Lab02
.
.
.
- 課程名稱:積體電路設計實驗 Integrated Circuit Design Laboratory
- 課程簡評:這是一門非常精實的數位 IC 設計課程,設計流程從 RTL 到 GDS 皆會接觸,實驗使用商用設計軟體以及 .18 製程合成,以 PPA 排名做為評分準則。
- 扣除退選全班平均:78.92 分
- 學期初總修課人數:127 人
- 退選人數:38 人
- 調分:約莫 2 分
- 授課語言:英文
退選人數是用期末考缺考人數估計
每人調分幅度未必相同,僅供參考
期中期末考無額外加分
部分實驗題目是考古題,通過率提升但 RANK 更競爭
- 原始分數:87.14
- 等第:A+
- 結算名次:23 / 127
Lab01 | Lab02 | Lab03 | Lab04 | Lab05 | Lab06 | OT | MIDTERM PROJECT | MID EXAM | |
---|---|---|---|---|---|---|---|---|---|
Score | 94.74 | 95.87 | 100 | 93.37 | 66.08 | 82.12 | 50 | 82.07 | 76.5 |
Lab07 | Lab08 | Lab09 | Lab10 Bonus | Lab11 | Lab12 | LAB13 | FINAL PROJECT | FINAL EXAM | |
---|---|---|---|---|---|---|---|---|---|
Score | 97 | 40 | 100 | 100 | 98.95 | 99.37 | 100 | 99.3 | 95.5 |
This course aims to convey the senior and graudated EE students techniques to design the VLSI chips using state-of-the-art CAD tools. In addition to learning CAD tools for performance-driven and cost-effective IC designs, a top-down design flow and related environment will also be addressed. Upon completion of the course, the student will be able to design the integrated circuits and systems based on standard cell library as well as full-custom layout approaches. As such he/she will be able to work in a team of designers or stand alone. The course starts from system design specs of an application which demands the need of developing specific hardwares or application specific integrated circuits (ASIC) or application processors. Then followed by the presentation of architectural proposals, an optimal architecture leading to performance-driven and cost-effective realization can be derived based on both sampling rate and system clock rate. With the support of Verilog-HDL, designers can describe their designs either in behavioral level or structural level. Before going down to the lower level design, one has to do initial floorplan to estimate both routing style and module aspect ratio which provide some area constraints for later designs. Then the partitioned blocks can be conducted hierarchically and with the support of synthesis as well as P&R routing tools, physical layout can easily be achieved if cell-based design approach is exploited. Finally through layout verification and post-layout simulation, the design can be verified before fabrication.
本課程旨在教導高年級及碩士班之電子工程學生使用最先進 CAD 工具設計 VLSI 晶片的技術。本課程學生須具備電腦輔助設計(CAD)工具之使用能力。完成課程後,學生將能夠根據標準單元庫以及全客製化佈局方法設計積體電路和系統。因此,他/她將能夠在設計師團隊中工作或單獨工作。 本課程從應用程式的系統設計規格開始,這些應用程式需要開發特定的硬體或特定應用積體電路 (ASIC) 或應用處理器。接下來是架構提案的介紹,可根據取樣率和系統時脈率來推導出最佳架構,以達到效能驅動和成本效益的實現。在 Verilog-HDL 的支援下,設計人員可以在行為層級或結構層級描述他們的設計。在進入較低層次的設計之前,設計人員必須先進行 floorplan 設計,以估算路由方式和模組寬高比,為後續設計提供一些面積限制。然後,可以分層進行區塊分割,在合成以及 APR 工具的支援下,如果採用基於單元的設計方法,則可以輕鬆實現實體佈局。最後,透過佈局驗證和佈局後模擬,可以在製造前驗證設計。
Lecture | Topic |
---|---|
Lecture01 | Cell Based Design Methodology + Verilog Combinational Circuit Programming |
Lecture02 | Finite State Machine + Verilog Sequential Circuit Programming |
Lecture03 | Verification & Simulation + Verilog Test Bench Programming |
Lecture04 | Sequential Circuit Design II (STA + Pipeline) |
Lecture05 | Memory & Coding Style (Memory Compiler + SuperLint) |
Lecture06 | Synthesis Methodology (Design Compiler + IP Design) |
Lecture07 | Timing: Cross Clock Domain + Synthesis Static Time Analysis |
Lecture08 | System Verilog - RTL Design |
Lecture09 | System Verilog - Verification |
Lecture10 | System Verilog - Formal Verification |
Lecture11 | Power Analysis & Low Power Design |
Lecture12 | APR I : From RTL to GDSII |
Lecture13 | APR II: IR-Drop Analysis |
Lab | Topic | RANK | Pass Rate |
---|---|---|---|
Lab01 | Code Calculator | 21 | 89.76% |
Lab02 | Enigma Machine | 16 | 85.83% |
Lab03 | AXI-SPI DataBridge | NA | 75.59% |
Lab04 | Convolution Neural Network | 22 | 74.80% |
Lab05 | Matrix convolution, max pooling and transposed convolution | 15 | 59.06% |
Lab06 | Huffman Code Operation | 60 | 77.95% |
Lab07 | Matrix Multiplication with Clock Domain Crossing | 58 | 74.80% |
Lab08 | Design: Tea House | NA | 66.14% |
Lab09 | Verification: Tea House | 1 | 66.14% |
Lab10 | Formal Verification | NA | 76.38% |
Lab11 | Low power design: Siamese Neural Network | 4 | 67.72% |
Lab12 | APR: Matrix convolution, max pooling and transposed convolution | 3 | 68.50% |
Lab13 | Train Tour APRII | NA | 68.50% |
Online Test | Infix to prefix convertor and prefix evaluation | NA | 2.36% |
Midtern Project | Maze Router Accelerator | 53 | 68.50% |
Final Project | single core CPU | 3 | 67.72% |
雖然網路上已經有非常非常多關於這門課程的評價以及心得文,但是我覺得我的身份比較特別,再加上這一路上踩過不少別人沒有遇到的坑,所以打算用不同的角度詮釋一下這門課程的價值,也記錄一下不是天才的我是怎麼活過這學期的,姑且算是一個窺視孔,讓有遠大抱負的學弟妹們可以好好衡量自己是否真的準備好了,以及理性的評估這門課程的價值。
- 電子碩-CA 計算機結構
- 電控碩-VLSI 超大型積體電路設計
- 電子碩-SOC 系統晶片設計
- 電子碩-DIC 數位積體電路
- 資工科碩-AAML 機器學習晶片架構設計
- 電控碩-AFPGA 進階可程式邏輯系統設計與應用
- HDLbits 全刷完
- 2學期 FPGA 應用相關的大學部專題
- 張添烜教授數位電路與系統的YT影片
- 通透 Verilog
- 略懂 System Verilog
-- 整學期會有兩個 Lab 使用 System Verilog - 通透 Python
-- Python 在這門課主要是用來產 pattern 或是爆裂 case - 略懂 shell script
-- 可以寫腳本加速驗證流程,不用每次都一條一條跑,省超級多時間 - 略懂 Linux 指令
-- server 很多操作都需要用到這些指令,如果不會這些指令也能通過這門課
-- Tmux 搭配後台運行能有效率地探索 02 極限 cycle period (詳見修課指南)
揭曉開頭所言,我算是背景不太吻合設定的學生,我大學不是電機系,研究所也不是 ics 實驗室,我只是一個毅力過人的路人,單純覺得數位電路很有挑戰性,再加上源源不絕的興致,秉持著一句富貴險中求,賭上我的愛、勇氣、希望,一路闖關至此,我是真的好累,但我還想往更高的地方前進。
這門課的 Loading 前面都感覺不出來,起初我修了 iclab 以及一門據說很輕鬆的電腦視覺(CV),但是 Lab5 到期中考、期中 Project 的負擔實在太重,難度一口氣飆升到最高點,Maze routing 讓我差點往生,所以後來把 CV 退掉了。
實驗室挺自由,每週有團咪,差不多一個學期我要報告三篇論文,學一些研究工具,以碩一來說算滿輕鬆了,謝謝天使老闆,讚嘆天使老闆。
以下是我修完這門課程,出於自身經驗的評價
這個問題取決於心態,畢竟每年都會有一些題目有些和去年一樣,這些lab是非常好拿分的,但若你能秉持自我訓練的精神,當個苦行僧,自己想架構、算法,不魔改別人的 code ,雖然傻了點不過肯定滿載而歸,在求職面試上都能如魚得水,硬實力和心理素質都能邁向更高層次。
反之,如果每次都無腦看著 best code 的投影片開始刻架構,你能保住髮量和睡眠時間,不過 coding 和設計能力很難跳耀式的提升,你能帶走的就是一些電路觀念還有走完 cell-base 的設計流程,多少有點空虛。
對於參考前人 code 這件事情,我是抱持支持態度的,理解別人的設計也是一種非常重要的軟實力,但是出於時間緊湊,前人的code多半都有註解不夠清楚的問題,再加上很少人會投注時間回頭寫很詳細的README給學弟妹看,能快速吸取的資訊只有設計TIP、pipeline 切法以及 cycle period ,想要在短時間看懂高人的作品,加入自己的想法進一步的優化,更勝於藍,我認為是相對困難的。
這門課提供了很好的管道讓非 ics 實驗室的學可以更深入的接觸設計流程,像是 Jasper Gold / innovus 以及真實的 SRAM macro ,18週的課程洗禮也能讓 PPA 掌控能力大幅提升,加分效果不可忽視。
以求職來說,對於底子好的學生能錦上添花,相信能非常順利找到心儀的工作,反觀血統不純正或是其他系所的學生我認為是必要經歷,因為沒有修過這門課程根本不算真正的瞭解設計晶片,不過目前景氣不存在「修過iclab就能進入XXX公司」的說詞,僅僅只有這門課程的加持是遠遠不夠的,還需要更多歷練才能把這得來不易的敲門磚昇華成入場券。
最後,數位電路工程師本身就是壁壘很高的職位,以我非電子所亦非電機所的背景修完這門課,再加上先前的其他經歷,我也未能肯定自己能因此突破高牆,一些很重視學歷的公司,我連面試機會都拿不到,我也沒有辦法展現我是有實力的學生,但凡事不試試看怎麼知道結果呢,曾經的我很努力,現在的我也還在努力,未來的我也會繼續努力下去,路是自己選的,就算被拒絕了、遇到挫折了也不要輕易放棄,希望螢幕前的你還有所有在這條路追逐夢想的你們都能不忘初衷,念念不忘,必有迴響。
對於原先底子就很強的學生來說,這門課可能無法進一步的培養你寫 verilog 或是設計硬體的能力,因為再複雜的題目,verilog 的變化性也就那樣,而且這門課程的設計偏向競賽導向,也就是說題目設計以及計算 perf 的公式無法比擬現實遇上的真實問題,很多題目一看就是拿來練手用的,現實中不可能用硬體實現,現實也不會一昧追求 perf 不計 Area 只為了設計出 latency=1 的電路,或是不計 power 瘋狂存取,做出一塊一上電直接燒掉的電路。
但這門課完全可以激起爆發性,要在這麼短的時間內設計出一個 bug-free 的電路,已經很不容易了,還要集成眾多黑魔法才能取得出眾的表現,腦袋長時間超頻運轉,思路不斷突破上限,激發出不少潛力,個人非常有感。
這門課不歡迎單打獨鬥,如何洞見問題、有效傳達與討論、清楚說明疑點...的能力都在這學期得到的實踐。
最後是心靈層面的磨練,修課當修心,多跌倒幾次就不怕痛了。
在挑戰 iclab 之前,聽到不少傳聞都說修完這門課就具備工作的能力了,是修課版圖的最後一片拼圖,對於這些說法,我的答案是「大確實」,經過這一學期的洗禮,不論抗壓性或是設計能力都得到了顯著的提升,題目的多樣性也能讓學生接觸到各種層面的問題,一些業界要求的能力(AMBA/CDC/Low power...)在這門課中也都接觸過了,絕對有十足的能力面對職場上的挑戰。
不過修完這門課我感到自己非常渺小,有非常多不足的地方,自己和天才還是有很大一段差距,能進步的空間綽綽有餘,目前所接觸到的知識也只是數位電路中的冰山一角,即便對PPA的掌控游刃有餘,但是對於驗證、以及系統層的設計,都是未曾深入瞭解過的領域。
這門課可以帶你體會成為大師的三個境界,見自己、見天地、見眾生,講白話一點就是讓你知道自己的不足,從錯誤中學習,和各路高手切磋,激發遇強則強的潛力,隨後悟出門道,成人之美,普渡眾生。
感謝誰又開小圈圈(9)裡面的每一個人以及管神還有2024s每一位助教,你們是最棒的。