隨著半導體製程技術的進步,及電腦/電子產品對高速與高整合度晶片的殷切需求,越來越多的系統與周邊功能經由更細微的製程及封裝技術,結合而成為一顆擁有完整架構的單晶片成品。舉例而言,個人電腦的系統晶片廠商非但已成功地運用0.25微米製程,將圖形顯示、影像次系統與核心邏輯主系統整合為一,更嘗試進一步加入微處理器方塊,以提供「資訊家電」產品快速輕巧而又低價的強力引擎。
相對於晶片密度的日益提高,製程精密度勢必要不斷地壓低,以取得合理的晶片面積和可接受的市場價格。然而,當製程技術達到0.35微米或更小的尺寸時,便會引發一些顛覆傳統設計觀念的議題。其中最重要一項變化為電路閘級間的接線延遲時間將會大過電路閘本身的延遲時間,導致舊有的時序模擬程序會造成極大的誤差,無法準確地顯示電路設計上實際的運作速度及時序,進而影響晶片實際生產時的產出量率及功能指標。
時序驅動設計流程
有鑑於此,一些知名的EDA廠商(圖一)即開始研發新一代的「時序驅動設計(Timing Driven Design)流程」,以幫助系統設計公司能走過一次模擬,佈局繞線與驗證程序即達成深次微米設計的時序收斂性,避免不斷重覆來回調整時序的過程。在各種時序驅動設計流程中,有一種公認較為穩定的概念,就是以連貫的建模(Modeling)、建庫(Libraing)、分析及設限資料庫,跨越至晶片實作的領域,以確保時序能快速地收斂。而根據已採用這類流程的公司所提的數據顯示,大約可縮短2倍至10倍的設計時程,並可提昇10﹪至25﹪的時脈速率(Clock Cycle)及縮小1﹪至5﹪的晶片面積。
今天的超高複雜度深次微米晶片設計所要求的設計流程,其複雜度比過去高了數十倍,甚或數百倍。一個可行的設計流程方可確保準時上市,符合性能要求以取得最大的利潤。由一些大型EDA公司所開發的時序驅動設計(TDD)流程正是利用進步的技術及資料連貫性,在晶片實作上獲得快速時序收斂,準時完成及縮小晶元面積等優異的成果。
軟體多不一定能做好設計流程
然而,有許多電路設計工程師往往會誤以為只要買齊了各種軟體設計工具,就一定能建構成功的設計流程,這其實是不正確的觀念。不同的設計流程通常會適用於不同的設計領域,舉例來說,高階圖形運算引擎(Graphic Engine)的設計程序,與無線或有線通訊產品的設計程序便截然不同。一個成功的工作流程必須具有一套持續開發、整合、驗證及提昇功能的嚴謹法則,並非只是把所有的設計工具拼湊起來即可。
以EDA業界知名的Cadence(益華電腦)所提出的時序驅動設計(TDD)流程為例,它的第一階段開發目標,就是定義出完整設計流程的基本要求。這些要求包括設計流程的目標、使用模式、晶圓製程技術、核心設計工具種類、自動化程度及使用介面等項目,所有這些要求將會促成整體流程的整合與發展。Cadence所建議的一個基本的TDD流程,其核心工具包括Ambit或Synopsis Design Compiler電路合成器,及Cilicon Ensemble佈局及繞線工具,再依據使用者各自的需求,增加不同的輔助項目。例如前端的邏輯設計工程師可能會需要一套Design Planning工具,以準確地預測接線的延遲時序。理想的工具採購程序應是先定義工作流程後,再購入適當的工具,若非如此,則往往需耗費極大的人力與物力,才能完成整合的工作。
確定所有的核心工具後,下一步是準備Library及Design資料檔,Library數據須以設計流程中的各個工具,所要求的來源加以計算並調校後才能使用。而Design數據則須能適應於整個設計流程中、不停地搬動及修改的需求。除此之外,使用模式及設計者的需求也是重點,這部份的工作是為核心工具無法連結的路徑提供一套用具(Utility),以打通特定的設計需求所做的額外整合。
使用介面與自動化執行機制
還有一種常見的情況就是基本的TDD流程,往往是由不同廠商所供應的工具組合而成,因此若能開發一套好的使用介面及重覆動作的自動化執行機制,更可大幅提昇生產力。使用介面的例子:如重行整理某一類分析工具的輸出格式,以做為設計工程師的偵錯工具。而建立自動化流程,則是類似編寫批次檔(Batch File),以重覆執行佈局與繞線等工作為最佳例子。
架構好完整的TDD流程後,接下來要做的工作是認證該流程是否可行。在這當中須要確認幾件事情:
- 1.先選擇可代表設計工程師挑戰此一流程的認證載具。
- 2.確定認證步驟在設計流程新加入高階功能,並更改需求規格後仍能重新完成全部測試工作。
- 3.以常用及少見的範例一起確認流程的可靠度。
- 4.最後是將認證步驟及接受的規範加以紀錄並存檔。
唯有確實執行前述要項,才能確保設計流程的生產力,並且持續地提昇其功能。
如同前所敘述的觀點,一套基本的TDD設計流程只是最低的設計需求,但是良好的基礎架構卻可在此流程上輕鬆地累增更多的能力。此後再以相同的認證程序確認新增能力不會損傷流程的可靠度。最後每修正一次版本就將相關文件及訊息傳達至設計部門,如此才是最佳化的設計流程。
這裡的一個例子是當製程技術小於0.25微米時,訊號完整性的檢測會變得很重要,目前也有相當多的軟體工具可用來解決此一問題。若是採用架構良好的時序驅動設計流程,便能輕鬆地加入訊號完整性的檢修功能,提昇作業的品質。除此之外,構建設計流程的初期,若能頭投入更多心力以保有升級的特性,也將有助於日後性能(Performance)的改進,才能透過不斷的修改與精煉,滿足電路設計工程師各式各樣的特殊需求。這也是一個優異的深次微米晶片設計流程,所期望達到的最高目標。