回想不久前還是IC小白的我,充滿困惑、這不懂那不懂、搞不清楚很多東西,還每天厚著臉皮去公司坐著(?),經歷一段時間的學習和成長,到現在我還是常常不確定自己在幹嘛,能夠聽懂各種專業術語,隨著專案推進掌握進度,在會議上能抓到重點紀錄,總算是敢承認自己有在IC公司當PM(明明之前也有承認哈哈哈但是心比較虛咩),本文主要是透過自己對於IC開發的理解,用最最簡化、白話文方式摘要出IC開發流程中的相關知識,幫自己的成長做個紀錄,也分享給剛加入半導體/IC產業的小白們,希望這篇文章可以提供幫助。
抽象化(abstraction)
舉個較好聯想的例子-
進行一座城市規劃:左邊住宅區,右邊工業區;
->進到住宅區後:上方是獨棟透天區,下方是電梯大樓區;
->再進到獨棟透天區:第三排第一棟是我家,要有五層樓以及前院後院;
->再進到房子內部:二樓靠陽台的房間我就坐在這;
當討論城市規畫這一層級的時候,我們不看往下層級的細節,只要知道左邊這區塊是住宅區右邊是工業區,住宅區規劃60%,工業區規劃40%,中間要建三條大道連接;當討論住宅區規劃這一層級,上方透天佔30%,下方大樓佔60%,中間10%來蓋美術館博物館藝術中心劇院,我們也不再往下一層級看,把其他層級模糊化,以方便聚焦在關注的層級中;或許可以想成有點縮放的概念。
IC開發流程圖
那理解IC開發流程,先要有抽象化概念,IC設計包含太多複雜的細節,當我們關注某一層級的時候,就模糊其他層級的資訊,專注在當下的層級討論,先看張流程圖:
System Specification & Functional Design:
前兩步驟就用直覺理解,從應用層面的需求、規格定義開始,到應該要有哪些行為表現,比如要設計給筆電用的CPU,往下規格展開要有多少位元的運算能力、能處理到多複雜的邏輯運算、讀寫指令的速度要多快...等。
Logic Design/RTL(=Register Transfer Level, 暫存器傳輸級) Description:
這個層級是把上層定義好的功能拆解成更細的步驟,把要做的事每一步coding出來。Register是暫存器,叫暫存器表示它可以存值,把它想成一個個模組(你coding進去要它做的事),可能是加法器、乘法器、比較器...等等,並且帶有時序的概念在裡面,輸入一些東西進去這個模組,就會得到對應的輸出,比如訊號A在第0.000000000001到0.000000000002秒間進入這個模組,那就輸出0,如果在第0.000000000002秒以後進入,那就輸出1,電腦的世界只有0和1,經過層層暫存器0101010101的排列組合輸出各種結果;在這裡工程師用的程式語言叫硬體描述語言,大宗使用Verilog,跟一般常聽到的Python、Java、C不太相同,反正它就是專門設計IC的程式語言。
做簡報用PPT、做樞紐表格用Excel、畫圖用小畫家,那麼設計IC用各種EDA工具(Electronic Design Automation, 電子設計自動化),EDA工具會幫忙把RTL code轉成上百萬個邏輯閘(logic gate)組成的連線圖"netlist",如下方右圖;邏輯閘想成一些數學運算子,有NOT gate/OR gate/AND gate.....,丟進去一個/些值,經過邏輯閘會出來一個值,看下方左圖;邏輯閘的運算就是布林代數Boolean algebra,可以搜尋Youtube王俊堯教授的數位邏輯設計課,看個幾集大概知道在幹嘛就可以。
Circuit Design:
再往下一層,是轉出以電阻、電容、電晶體等電子元件符號表示的電路圖(Schematic Circuit Diagram),在上層同樣的邏輯(logic),可以用不同的電路來設計,這階段會決定要用哪些電路。這個電路圖或許大家會感到稍微熟悉(?),國高中物理課有學過一咪咪:
Schematic Circuit Diagram
一般IC設計分為前端(front-end)和後端(back-end),到此階段為止算是前端工程師的任務,在每一階段,會透過各種模擬來確認這一步驟的產出和上一步驟的設計是相符的。
Physical Design:
接下來進到了物理上具體實現的階段(Physical implementation),到底要怎麼樣在矽晶圓(wafer)上把這個電路做出來?矽晶圓生產是一層層堆疊的概念,可以用3D列印機來想像一下,後端工程師使用EDA工具,一層一層畫出很多張2D圖(叫做IC layout),生產製造時照著圖一層一層做,把不同材料往矽晶圓上疊,疊出3D複雜結構,做成晶片。
下方圖示是一個電路圖畫成layout,除了電路概念,這還要有一點想像力和空間感,我們就先大概好像有看懂看個感覺就好,不同顏色表示在不同圖層上畫的,生產時要用不同的材料做,實際畫layout真的是用一些長條型方型圓型去畫出來,我想了很久到底是怎麼畫的,還是處在一種好像有感覺又好像沒很清楚的狀態,總之工程師就是知道左邊電路圖要怎麼畫成右邊的2D圖,google IC layout/ CMOS layout/ transistor layout就可以看到一大堆這種很炫的圖,多看一些培養感覺。
GDSII for manufacturer(Tape out):
最後畫好的這些設計圖,要轉成GDSII檔案,就像圖檔是JPEG格式、影片檔是mp4格式,GDSII是一個二進制充滿010101010100100011的檔案,交到晶圓廠(如護國神山)去下線生產,叫做Tape out,晶圓廠就一步步按圖施工,堆疊出3D結構;晶圓剖面圖例如下,n+、p+寫什麼都看不懂沒關係,就想成不同的材料,材料一層一層往上鋪,鋪一層挖幾個洞,再鋪一層再挖幾個洞,幾百道工序之後才能成為一顆IC。
再整張看一次流程圖,再把城市規劃拿來類比一下,是不是有加深印象更加了解一些(嗎?):
每顆IC都是非常多人努力的結果,從設計開始就是一個龐大的團隊,到生產過程中更是層層把關,才能做出這麼小這麼精密的東西,隨著技術越來越先進,新聞上常常聽到的28奈米7奈米5奈米到現在3奈米(幾奈米就想成用多細的筆來畫設計圖,一樣面積下,是不是越細的筆可以畫越多東西),越縮越小製程越來越難,設計檔案交到晶圓廠後要半年才能做出來,後面還要進行封裝、測試等等,我還沒涉略IC設計領域知識的時候沒想過是這麼難,了解之後真的很佩服人類的聰明才智。
半導體知識學習網站
最後再分享幾個我自己很有收穫的網站,都寫得很棒很容易理解,如果完全不在電子業領域,可以先去前導科普一下這些半導體知識,再回來看看本文(又或者是我寫得太難以理解,最少還可以收穫這幾個很棒的網站來學習哈哈哈):
寫點科普
https://kopu.chat/ 裡面的半導體章節下的晶圓代工
超級佩服這個作者,不是相關背景又很年輕,整個網站寫的東西都很硬,涉略領域又超多,絕對花非常多時間做功課和前置作業(感覺超級聰明智商超過157!!!),內容很豐富,可以幫助不同領域的很多同學
最後的最後,希望這篇文章給你帶來收穫,如果有任何想法想分享,都歡迎告訴我~