# IC Design Overview
## Introduction
如果不喜歡看文字的話,歡迎看這部影片[阿嬤都能懂的 IC 設計流程](https://www.youtube.com/watch?v=kYUhk6FQwBc)講解的非常清楚,可以看過這個影片就很了解IC design的流程了,本文章會統整看到的資料來寫成一個筆記,供自己回來察看以及分享給大家,後面會著重在軟韌體的部分,也是自己目前想去做的工作。
## IC Design Flow Chart

一顆IC從無到有的過程中就猶如上圖所示,這樣做出來的IC就會稱為特殊應用積體電路(ASIC, Application Specific Integrated Circuit)
**1.Design Specification**
要做一顆IC或IP(Intellectual Property一種事先定義、曾經驗證、可以重複使用的功能組塊),或是單純一個IC中的元件,就需要了解到底要做什麼,以及如何去做這樣的過程,我們可以稱之為叫做spec,定義Designer必須要在這個過程,把spec規格開出來,並且詳細地寫成一份文件讓相關人員,所以常會聽說要讀SPEC內的datasheet,就是這樣來的。
**2.RTL coding**
暫存器傳輸級(RTL, register-transfer level)大量的使用暫存器與算數邏輯元件(ALU或FU)來描述電路,是最廣泛被運用的初期IC設計和驗證的方式,最熱門的語言莫過於VHDL與Verilog HDL,利用硬體描述語言來描述電路的行為,並且將這些資料傳送的情形詳細的描述出來,這部分就是digital designer開始工作的地方啦!
```verilog=
//verilog範例
module <name> // 模組名稱
parameter ... // 參數宣告
port ... // 腳位宣告
wire ... // 線宣告
reg ... // 暫存器宣告
initial begin // 初始化設定區塊
end
assign ... // 資料處理層級之描述
... // 引用較低階模組別名
always begin // 行為層級之描述區塊
// 資料處理與指定等描述
// task與function的使用
end
function // 函數宣告
task // 作業宣告
endmodule
```
**3.Functional verification**
當程式寫完後就要進行確認,看看程式部分有沒有問題,例如預期硬體需要1+2=3,那麼進行模擬時就要去確認是否正確,這時候就是寫一堆testbench驗證行為正確性。
**4.Synthesis**
寫完的code需經過合成,把寫的HDL轉換成netlist 形式(gate-level),Gate-level指的是把全部描述語言轉換成邏輯表示式XOR、NOT等,之後再做place&route時,就是以netlist為輸入檔。

**5.Placement**
Digital IC desgin的過程差不多之後就會針對physical design部份去優化,這時候通常會請APR部門幫忙,因為像是IC的timing, performancer及決定各個module裡面邏輯閘的擺放位置以及繞線(Route)等等的調整,都可以在這個stage做調整,配合EDA tool的演算法最終才能完成一個及格的電路,有些特別的routing不會自動拉而是要手動設計,如:RF等。
**6.Tape-out**
將沒有問題的IC設計圖交給IC製造公司(UMC、TSMC),請他們幫忙做出來,根據確認好的製程(28、14、7、5奈米等)去真正將IC給生產出來,每次Tape-out後會花很大量資源,所以以上過程都要確定好是完善的才能進行到這步,所以不論是數位IC設計或是驗證、測試部門都非常非常重要。
**7.Fabrication、Packaging & Testing**
生產完IC後,接下來通常會經過封裝測試相關的公司(日月光等)來幫忙驗證說這顆生產出來的IC是否有什麼問題,以及將它給封裝好,最後再回到原廠,或是客戶手上。
*註 : 以上部分大部分都剪剪貼貼,把資料統整得更好而已,下方都有參考的地方!*
## IC 產業結構 & 特色
### IC產業鏈
IC 產業鏈中可以簡單的由上述去做拆分成三大類,IC設計、IC製造、IC封裝與測試

IC設計就是Design House,就是國內俗稱豬屎屋的公司,每間公司都各有所長,分別負責了不一樣的IC,我們也稱為晶片設計的上游公司
IC製造就是IC設計圖畫好了要怎麼樣產生出實體的IC呢,那就是IC製造的公司要做的事情也就是上面提到的Tape-Out
IC封裝與測試就是前面提到的驗證生產出來的IC是否有問題,將其封裝好,最後回到原廠客戶手上囉!
### IC公司名詞解釋
**Fabless** : 無廠半導體Fabrication(製造)和less(沒有)的組合字,專門做設計的公司,所以就是上述的Design house,如 : 聯發科技、聯詠科技、瑞昱半導體等。

**Foundry** : 負責製造、生產晶片的公司,Foundry原意為鑄造工廠,從它的字面意思可以看出其與集成電路的聯繫,如 : 台積電、聯電等。

**IDM** : 垂直整合模式(IDM, Integrated Design and Manufacture)一個公司包辦從設計、製造到銷售的全部流程,需要雄厚的運營資本才能支撐此營運模式,如英特爾和三星。

**ODM** : 委託設計製造商(ODM, Original Design Manufacturer)除了提供生產製造還提供設計,如 : 廣達、友達、緯創、和碩、仁寶等。產品由ODM代工廠設計並生產。

**OEM** : 委託成品製造商(OEM, Original Equipment Manufacturer),以提供生產製造為主不提供設計服務。OEM代工廠負責生產,如IPHONE是由APPLE設計交由鴻海生產。

**OBM** : 自有品牌之設計製造商(Own Brand Manufacturer)除了具備設計製造外,還有自有品牌行銷能力,如 : ASUS、ACER、Lenovo等。可提供ODM及OEM代工服務,容易產生自有品牌和客戶競爭的疑慮,因此OBM會把ODM、OEM分開,如ASUS分出純代工廠和碩。

**IP** : 矽智財(Silicon intellectual property)這些公司只負責設計電路,不負責製造、銷售的公司稱為矽智財提供商,自己設計IP,包括指令集架構、微處理器、圖形核心,然後誰喜歡就把授權賣給誰。如 : ARM、Synopsys、Imagination Technologies、智原、M31等。

**EDA** : 電子設計自動化(EDA, Electronic design automation)是指利用計算機輔助設計(CAD)軟體,來完成超大型積體電路(VLSI)晶片的功能設計、綜合、驗證、物理設計(包括布局、布線、版圖、設計規則檢查等)等流程的設計方式。如 : 新思、Cadence。

### 台灣IC公司類型分類
分類中會以公司負責最大量負責的部分進行撰寫,如有寫錯還請指教。

**IP設計、晶片設計服務提供商** : 億而得 (6423)、智原(3035)、力旺(3529)、世芯-KY(3661)、晶心科(6533)、巨有科(8227)、全訊(5222)、一元素(6842)
**多媒體晶片** : 聯發科(2454)、瑞昱(2379)、立積(4968)、信驊(5274)、神盾(6462)
**記憶體晶片** : 群聯(8299)、旺宏(2337)、華邦電(2344)、南亞科(2408)、晶豪科(3006)、鈺創(5351)、凌泰(6198)、全宇昕(6651)
**微控制器IC** : 凌通(4952)、盛群(6202)、義隆(2458)、通泰(5487)、新唐(4919)
**驅動IC** : 聯詠(3034)、瑞鼎(3592)、敦泰(3545)、天鈺(4961)、致新(8081)、矽創(8016)、茂達(6138)
**電源IC** : 台達電(2308)、立錡(2454)、茂達(6138)、致新(8081)、凌通(4952)
## Reference
[心得](https://www.ptt.cc/bbs/Tech_Job/M.1602809917.A.861.html)
[flow](https://ithelp.ithome.com.tw/articles/10195959)
[名詞](https://davidhuang1219.pixnet.net/blog/post/331310155-oem%E3%80%81odm%E3%80%81obm%E5%8F%8Aems%E7%9A%84%E5%B7%AE%E7%95%B0%EF%BC%8C%E4%B8%80%E6%AC%A1%E6%90%9E%E6%87%82%EF%BC%81)
[產業鍊](https://www.inside.com.tw/article/9029-structure-of-ic-industry)
###### tags: `IC` `Note` `introduction`