10分鐘認識IC開發流程(IC Design Flow)

閱讀時間約 8 分鐘
回想不久前還是IC小白的我,充滿困惑、這不懂那不懂、搞不清楚很多東西,還每天厚著臉皮去公司坐著(?),經歷一段時間的學習和成長,到現在我還是常常不確定自己在幹嘛,能夠聽懂各種專業術語,隨著專案推進掌握進度,在會議上能抓到重點紀錄,總算是敢承認自己有在IC公司當PM(明明之前也有承認哈哈哈但是心比較虛咩),本文主要是透過自己對於IC開發的理解,用最最簡化、白話文方式摘要出IC開發流程中的相關知識,幫自己的成長做個紀錄,也分享給剛加入半導體/IC產業的小白們,希望這篇文章可以提供幫助。

抽象化(abstraction)

在進入IC開發流程前,先了解一個重要的概念"抽象化(abstraction)",維基百科上的解釋是"把一個概念或是一個現象的資訊含量縮減,為了只保存和特定目的有關的資訊"(https://zh.m.wikipedia.org/zh-hant/%E6%8A%BD%E8%B1%A1%E5%8C%96);
舉個較好聯想的例子-
進行一座城市規劃:左邊住宅區,右邊工業區;
->進到住宅區後:上方是獨棟透天區,下方是電梯大樓區;
->再進到獨棟透天區:第三排第一棟是我家,要有五層樓以及前院後院;
->再進到房子內部:二樓靠陽台的房間我就坐在這;
當討論城市規畫這一層級的時候,我們不看往下層級的細節,只要知道左邊這區塊是住宅區右邊是工業區,住宅區規劃60%,工業區規劃40%,中間要建三條大道連接;當討論住宅區規劃這一層級,上方透天佔30%,下方大樓佔60%,中間10%來蓋美術館博物館藝術中心劇院,我們也不再往下一層級看,把其他層級模糊化,以方便聚焦在關注的層級中;或許可以想成有點縮放的概念。
Abstraction

IC開發流程圖

那理解IC開發流程,先要有抽象化概念,IC設計包含太多複雜的細節,當我們關注某一層級的時候,就模糊其他層級的資訊,專注在當下的層級討論,先看張流程圖:
IC Design Flow

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王俊堯教授的數位邏輯設計課,看個幾集大概知道在幹嘛就可以。
Gate Level Netlist

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就可以看到一大堆這種很炫的圖,多看一些培養感覺。
IC Layout

GDSII for manufacturer(Tape out):

最後畫好的這些設計圖,要轉成GDSII檔案,就像圖檔是JPEG格式、影片檔是mp4格式,GDSII是一個二進制充滿010101010100100011的檔案,交到晶圓廠(如護國神山)去下線生產,叫做Tape out,晶圓廠就一步步按圖施工,堆疊出3D結構;晶圓剖面圖例如下,n+、p+寫什麼都看不懂沒關係,就想成不同的材料,材料一層一層往上鋪,鋪一層挖幾個洞,再鋪一層再挖幾個洞,幾百道工序之後才能成為一顆IC。
IC Fabrication
再整張看一次流程圖,再把城市規劃拿來類比一下,是不是有加深印象更加了解一些(嗎?):
IC Design Flow
每顆IC都是非常多人努力的結果,從設計開始就是一個龐大的團隊,到生產過程中更是層層把關,才能做出這麼小這麼精密的東西,隨著技術越來越先進,新聞上常常聽到的28奈米7奈米5奈米到現在3奈米(幾奈米就想成用多細的筆來畫設計圖,一樣面積下,是不是越細的筆可以畫越多東西),越縮越小製程越來越難,設計檔案交到晶圓廠後要半年才能做出來,後面還要進行封裝、測試等等,我還沒涉略IC設計領域知識的時候沒想過是這麼難,了解之後真的很佩服人類的聰明才智。

半導體知識學習網站

最後再分享幾個我自己很有收穫的網站,都寫得很棒很容易理解,如果完全不在電子業領域,可以先去前導科普一下這些半導體知識,再回來看看本文(又或者是我寫得太難以理解,最少還可以收穫這幾個很棒的網站來學習哈哈哈):
蔥寶說說
https://www.macsayssd.com/ 裡面的半導體與IC章節
作者的文筆很有趣,圖也選得很好,關於半導體製程的解說非常棒,非常淺顯易懂;不過網站已經停更好一陣子,由於製程與產業消息每年的進步與變換神速,可以再看以下的網站
周國華老師的半導體產業分析
http://www.ais.nptu.edu.tw/SemiCon/SemiCon.html
老師講了很多半導體產業新聞與分析,並且持續更新中,有在玩股票的同學也可以參考吸收點產業知識
寫點科普
https://kopu.chat/ 裡面的半導體章節下的晶圓代工
超級佩服這個作者,不是相關背景又很年輕,整個網站寫的東西都很硬,涉略領域又超多,絕對花非常多時間做功課和前置作業(感覺超級聰明智商超過157!!!),內容很豐富,可以幫助不同領域的很多同學
最後的最後,希望這篇文章給你帶來收穫,如果有任何想法想分享,都歡迎告訴我~
avatar-img
42會員
15內容數
Sharing
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
FEINNOTE 的其他內容
從系統廠進入半導體產業中的IC設計服務公司,粗略地說都是做硬體的專案管理,不過有很多文化、著重點、思考邏輯真的非常不同,分享一點我的自身經歷,看看不同產業不同公司的差異。
我想半導體產業大概是所有產業之中最愛用晶晶體的產業,中英夾雜的程度已經是創造第三種語言的等級,新加坡有Singlish,中文是Chinglish,Techlish被用走,那半導體業也要時尚一點:Semiconlish,挺潮的?
去年表弟剛進入職場,聊天過程中讓我有機會回想當初,思考我可能會告訴過去的自己什麼,藉以跟他分享並提供一點鼓勵。 第一個提醒是很殘酷的老生常談,職場真的不是學校; 第二個提醒是不用太害怕犯錯; 第三個提醒是臉皮真的要厚一點; 如果有人能夠借鑒我的經驗被鼓勵到,那就太好了, 祝福所有的新鮮人。
我樂於分享自己的職場經驗,也喜歡與人交流,如果你對PM這個職務感到好奇,可以透過我的分享了解一點工作內容,如果你也擔任這個角色,感到心很累的時候,可以找我一起取暖。
從系統廠進入半導體產業中的IC設計服務公司,粗略地說都是做硬體的專案管理,不過有很多文化、著重點、思考邏輯真的非常不同,分享一點我的自身經歷,看看不同產業不同公司的差異。
我想半導體產業大概是所有產業之中最愛用晶晶體的產業,中英夾雜的程度已經是創造第三種語言的等級,新加坡有Singlish,中文是Chinglish,Techlish被用走,那半導體業也要時尚一點:Semiconlish,挺潮的?
去年表弟剛進入職場,聊天過程中讓我有機會回想當初,思考我可能會告訴過去的自己什麼,藉以跟他分享並提供一點鼓勵。 第一個提醒是很殘酷的老生常談,職場真的不是學校; 第二個提醒是不用太害怕犯錯; 第三個提醒是臉皮真的要厚一點; 如果有人能夠借鑒我的經驗被鼓勵到,那就太好了, 祝福所有的新鮮人。
我樂於分享自己的職場經驗,也喜歡與人交流,如果你對PM這個職務感到好奇,可以透過我的分享了解一點工作內容,如果你也擔任這個角色,感到心很累的時候,可以找我一起取暖。
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
現代很多資訊科技產品內,有安裝英文簡稱IC的積體電路晶片,但IC產業牽涉技術、對社會的影響複雜,對一般民眾來說較不易理解。 身為社會人文專業背景出身的我,最近試單投資IC產業,對此嘗試用毫芒雕刻比喻說明IC產業上下游的關係,希望讓更多人理解,也搏君一笑:
Thumbnail
數位IC裡我們關注的都是0或1, 大家都知道電腦是0101在做二進位的運算, 在晶片裡又是怎麼做到的? 實際上我們在設計晶片時,會給他一個VDD跟GND, VDD-GND給的是預期的Driving volatge, 像是5V或9V 以5V為例 0或1物理上就是目前的電壓靠近0V或5
IC設計流程大致如下 每個步驟都是必經過程,走完整個過程後輸出一版real chip |-----------------------| | 定SPEC | --- 決定 Function/clk period/製程liberary .
數學系的訓練,與上面閱讀原始碼的優先順序,本質上是反過來的。在數學的訓練中,是先把函數定義的非常清楚,再進一步去看函數應用在具體的數據上會發生什麼行為,然後就到此為止,不太會再有進一步的討論。但如上面西尾泰和所述,工程師看事情的角度,是先掌握全局,然後再進一步細化每一層的細節。
Thumbnail
瞭解IC和IP的區別、晶圓代工的角色,以及芯粒和小晶片對半導體製造的影響。此外,探討了人工智慧對電子設計的影響。
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
在物件導向程式設計的進階階段,學生將學習繼承、介面、抽象類別等核心概念。繼承允許類別共享屬性和方法,介面確保實現類別提供特定的方法實現,而抽象類別定義了基本結構供子類別擴展。這些知識點有助於提升程式碼的重用性、擴展性和維護性。
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
替產業做設計 有人要我談程式設計,那我就稍微談一下。我從事的大都是產業的工作,所以我們也從如何替產業做設計來談起。基本上,每個產業都會有自己的作業流程,大同小異。但是基礎來做都是一樣的,都會有客戶、物料、產品、供應商、員工等資料。不同的是,由於企業型態的不同,他們每個人有不同的作業流程。這個作業流
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
現代很多資訊科技產品內,有安裝英文簡稱IC的積體電路晶片,但IC產業牽涉技術、對社會的影響複雜,對一般民眾來說較不易理解。 身為社會人文專業背景出身的我,最近試單投資IC產業,對此嘗試用毫芒雕刻比喻說明IC產業上下游的關係,希望讓更多人理解,也搏君一笑:
Thumbnail
數位IC裡我們關注的都是0或1, 大家都知道電腦是0101在做二進位的運算, 在晶片裡又是怎麼做到的? 實際上我們在設計晶片時,會給他一個VDD跟GND, VDD-GND給的是預期的Driving volatge, 像是5V或9V 以5V為例 0或1物理上就是目前的電壓靠近0V或5
IC設計流程大致如下 每個步驟都是必經過程,走完整個過程後輸出一版real chip |-----------------------| | 定SPEC | --- 決定 Function/clk period/製程liberary .
數學系的訓練,與上面閱讀原始碼的優先順序,本質上是反過來的。在數學的訓練中,是先把函數定義的非常清楚,再進一步去看函數應用在具體的數據上會發生什麼行為,然後就到此為止,不太會再有進一步的討論。但如上面西尾泰和所述,工程師看事情的角度,是先掌握全局,然後再進一步細化每一層的細節。
Thumbnail
瞭解IC和IP的區別、晶圓代工的角色,以及芯粒和小晶片對半導體製造的影響。此外,探討了人工智慧對電子設計的影響。
Thumbnail
在設計有四年快五年的時間,大部分都是從實戰經驗中去不斷摸索產品開發的流程。從視覺傳達的背景出來,在用戶體驗的經驗都是在實際開發中去摸索出來的。不是理論派,只是根據我本人的經驗摸索出來的設計方法,也不會用太多高深的詞彙說明。 以前搜尋怎麼做產品設計?究竟是要從什麼步驟開始的這件事情,大部分看到的
Thumbnail
在物件導向程式設計的進階階段,學生將學習繼承、介面、抽象類別等核心概念。繼承允許類別共享屬性和方法,介面確保實現類別提供特定的方法實現,而抽象類別定義了基本結構供子類別擴展。這些知識點有助於提升程式碼的重用性、擴展性和維護性。
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
替產業做設計 有人要我談程式設計,那我就稍微談一下。我從事的大都是產業的工作,所以我們也從如何替產業做設計來談起。基本上,每個產業都會有自己的作業流程,大同小異。但是基礎來做都是一樣的,都會有客戶、物料、產品、供應商、員工等資料。不同的是,由於企業型態的不同,他們每個人有不同的作業流程。這個作業流