2013年5月19日

系列文2: IC 設計流程簡介

承續上一篇,接下來就來簡單說一下 IC 的設計流程
不過這東西當然只能很概要的說,因為這會隨著不同的設計、公司而有所變化
但再怎麼變還是會有ㄧ些共通的東西,所以就來講一下通常會有哪些步驟
順便介紹 EDA 在這之中做了哪些事
(這篇要先講完才能繼續往下講我碩士期間做了什麼鬼東西.....)




之前修課時有看到一個弄得不錯的流程圖


第一張圖是大家都比較熟悉的部分:
開 spec -> 架構設計 -> 電路合成 (將前一步用 HDL 設計的好的東西轉承實際的電路圖)
這幾步是將原本的 spec 轉換成實際的電路圖,但這電路圖僅僅只有說明用了哪些邏輯閘、彼此之間的連線關係是怎樣,邏輯閘並沒有實際的確定要擺放在 IC 中的哪個位置,那當然也就無法得知最後彼此之間線路的長或短、要怎麼走。因此在這步之後的一連串的步驟其實就是再處理這些事,所以這步之前的一般被叫做前端 (frond-end),這步之後被叫做後端 (back-end),back-end 這邊有些公司的職缺是叫做 physical design (實體設計),或者是更精確一點的是專指 APR (auto place and route,後面會說明),不過這支後會需要很多套軟體來支援,每一套都貴的嚇死人,所以在業界有些公司只專心做前段的 HDL,後面這邊則是委託給其他公司來負責,而這些專門負責這類工作的公司就是所謂的 design service,如創意 (GUC-global unit chip) 或智源 (Faraday)。順帶一提,GUC 是台積這邊的副總跑出去開的公司,台積在 GUC 投資了不少,所以 GUC 的單一般都是下給 TSMC 製造這樣,而且兩家的管理風格好像也滿接近的。

EDA 在 frond-end 的工作簡單來說就是負責把 HDL 轉成電路圖(這邊的專有名詞是叫 net-list),轉的過程中當然也就包含叫對轉出來的電路圖做最佳化,最佳化的內容可以簡單的區分成兩個:對面積做最佳化、對時間做最佳化。當然,合成完後必定會測試合成後的電路有沒有 bug,所以也就會有 simulation tool 來模擬電路的行為、verification tool 做更完整的驗證、以及各種用來輔助計算電路各項特性的軟體。

back-end (或是說 physical design)這邊就如上面所說,是要把 net-list 變成實際上可以真的拿去製造用的電路圖,簡單來說也就是每個電晶體的確定位置及彼此之見的連線方式都要確定,wiki 上有詳細流程說明。而前面提到的 APR 指的 placement & routing 這兩階段,分別代表的是決定擺放位置及實際的把線路讓上去 IC 這兩步驟。這兩塊的發展已經很久了,但是製程進步代表著每年都會有新的問題要考慮,所以至今仍然是很重要的主題。

在後段這邊因為是要決定 IC 最後的長相,所以會有很多的分析、模擬、驗證軟體來幫忙處理,同時也會有相當多的電子、電路、電磁特性要考慮,所以才會拆成這麼多塊,而且很有可能後面有一步怎麼做都過不了的時候要全部重來,所以其實是還滿花時間的,而且也因為有很多問題要同時考量,所以每一步的問題也就都變得頗複雜(不過這也代表有源源不絕的研究主題)。而我做的題目則是再更之後的 DFM (Design for Manufacturability) 那塊,這邊面對的問題則是實際的 IC 長相已經確定了,但隨著製程的進步,一點點的小問題就有可能會讓做出來的 IC 出錯,因此為了提高製造的良率,所以用一些方法來避免這類問題,因此這邊多半已經跟 foundry 及設備廠那邊有關了,像我做的題目就是 TSMC 那邊遇到的問題。

下一篇就會開始介紹 DFM

沒有留言:

張貼留言