原创 典型的自動化設計流程

2007-1-31 20:37 2899 5 5 分类: FPGA/CPLD

1.系統規格制定(Define Specification)


在ASIC設計之初,工程師們須根據產品的應用場合,為ASIC設定一些諸如功能、操作速度、介面規格、環境溫度及消耗功率等規格,以做為將來電路設計時的依據。在這方面,目前已有廠商提供系統級模擬器(system-level simulator),為系統設計提供不錯的解決方案;透過此類模擬器,工程師們可以預估系統的執行效能,並可以最佳化的考量,決定韌體模組及硬體模組該如何劃分。除此之外,更可進一步規劃哪些功能該整合於ASIC內,哪些功能可以設計在電路板上,以符合最大的經濟效能比。


2.設計描述(Design Description)


一旦規格制定完成,便依據功能(function)或其他相關考量,將ASIC劃分為數個模組(module);此階段是整個設計過程中最要的關鍵之一,它直接影響了ASIC內部的架構及各模組間互動的訊號,更間接影響到後續電路合成的效能及未來產品的可靠性。

決定模組之後,便分交由團隊的各個工程師,以VHDL或Verilog等硬體描述語言進行設計-亦即功能的行為描述(behavioral description);為能明確及有效率地描述模組的內部功能,各模組之下可能再細分成數個子模組(sub-module),直到能以可合成(synthesizible)的語法描述為止。這種一層層分割模組的設計技巧,便是一般所謂的階層式設計(hierarchical design);這與早期直接以繪製閘級電路進行設計的時代,所使用的技巧是相類似的。此一步驟所完成的設計描述,是進入高階合成電路設計流程的叩門磚 ;習慣上,稱之為硬體描述語言的設計切入點(HDL design entry)。

關於此一步驟,亦有相關的輔助工具相繼推出。Design Book便是其中的代表;它利用一般工程師熟悉的圖形介面-如狀態圖及流程圖,協助初接觸以硬體描述語言進行設計的工程師,自動編寫出相對應的硬體語言描述碼。效能如何筆者不敢斷言,但它能依使用者決定,整合慣用之其他EDA工具的特點,倒是滿吸引人的地方。


3.功能驗證(Function Verification)


完成步驟2的設計描述,接下來便是利用VHDL或Verilog的電路模擬器,針對先前的設計描述,驗證其功能或時序(timing)是否符合由步驟1所制定的規格。通常,稱這類驗證為功能模擬(function simulation),或行為模擬(behavioral simulation),而這類的HDL電路模擬器,則通稱為行為模擬器(behavioral simulator)。

對於這一類功能驗證的模擬而言,模擬器並不會考慮實際邏輯閘或連線(connenct wires)所造成的時間延遲(time delay)、閘延遲(gate delay)及傳遞延遲(transport delay)。取而代之的是,使用單一延遲(unit delay)的數學模型,來粗略估測電路的邏輯行為;雖然如此無法獲得精確的結果,但其所提供的資訊,已足夠作為工程師,針對電路功能的設計除錯之用。
為了能順利完成模擬,在此,您還需要準備一分稱為測試平台(test bench)的HDL描述檔。在這份測試平台的描述檔中,必須盡可能地細描述所有可能影響您設計功能的輸入訊號組合,以便激發出錯誤的設計描述位於何處。幸運的話,或許在幾次修改之後,就可得到您想要的結果,順利進入下一個步驟。


4.邏輯電路合成(Logic synthesis)


確定設計描述之功能無誤之後,便可藉由合成器(synthesizer)進行電路合成。合成過程中,您必須選擇適當的邏輯閘元件庫(logic cell library),作為合成邏輯電路時的參考依據。元件庫的取得,可能直接來自於您的ASIC供應商(ASIC vendor, 負責協助客戶設計ASIC的廠商)、購自其他元件庫供應商(third-party ASIC library vendor),或是為了某種特殊原因,您亦可能考慮自行建立。

事實上,元件庫內含的邏輯閘資訊非常廣泛,大致上包括了以下各項。


  • cell schematic,用於電路合成,以便產生邏輯電路的網絡列表(netlist)。
  • timing model,描述各邏輯閘精確的時序模型;元件工程師會萃取各邏輯閘內的寄生電阻及電容進行模擬,進而建立各邏輯閘的實際延遲參數。其中包括閘延遲(gate delay) 、輸出入的延遲(input delay / output delay)及所謂的連線延遲(wire delay)等;這在進入邏輯閘層次的電路模擬,以及在P&R之後的模擬都會使用到它。
  • routing model,描述各邏輯閘在進行繞線時的限制,作為繞線工具的參考資料。
  • silicon physical layout,在製作ASIC的光罩(mask)時會使用到它。

使用合成器有幾個需要注意的事項,其一就是最佳化(optimize)的設定。根據步驟1所制定的規格,工程師可對合成器下達一連串限制條件(constrain),根據這些條件,合成器便會自動合成滿足您規格要求的邏輯電路。最常見的三個限制條件(註3)有:操作速度、邏輯閘數及功率消耗。事實上,這三項限制條件之間是呈現互相矛盾的關係;也就是說:一旦您所下的限制條件太過嚴苛,將使電路合成的速度變得非常的慢,更甚者,有可能在花費大把時間後,仍得不到您想要的結果。

design entry硬體語言設計描述檔,其語法的編寫風格(HDL coding style) ,亦是決定合成器執行效能的另一個因素。事實上,無論是對VHDL或是Verilog而言,合成器所支援的HDL語法均是有限的;過於抽象的語法只適用於編寫cell library,或是做為系統規劃評估時的模擬模型所用,而不為合成器所接受。

此外,由於一般合成器的最佳化演算法則,都只能達到區域性最佳化(local optima);因此,對於過分刁鑽的語法描述,將影響合成器在最佳化過程的執行時間。

利用圖3,可以簡單地說明coding style與最佳化之間的關係:一個良好的coding style,便如同位於A點上的球,合成器僅需花費些許的氣力,便可將其推至最低點(最佳點)。而相反地,較差的coding style,就猶如位在C點上的球,合成器需花費較大的功夫,才能將其推到B點;假若又加上較嚴苛的限制條件,則可能連B點都到不了。工程師應清楚的明白,對您所使用的合成器而言,哪些才是“良好的”coding style,而這些在使用手冊中都可以查得到。


5.邏輯閘層次的電路功能驗證(Gate-Level Netlist Verification)


由合成器產生的netlist,會在這個階段進行第二次的電路模擬;一般稱之為邏輯閘層次的電路功能驗證,或稱為P&R前的模擬,簡稱前段模擬(pre-simulation)。在此階段,主要的工作是要確認,經由合成器所合成的電路,是否如同原始的設計描述般,符合您的功能需求;利用邏輯閘層次模擬器(gate-level simulator),配合在功能驗證時已經建立的test bench,便可達到這個目的。

這裡出現兩個新的名詞:VITAL(VHDL Initiative Toward ASIC Library)、library及Verilog library;兩者均可視為先前所提及的cell library當中的timing model。在pre-simulation中,一般只考慮閘延遲,而連線延遲在此處是不予考慮的(通常在電路合成階段,是無法預測實際連線的長度,因此也就無法推測連線所造成的延遲)。
時序變異(timing variation)是此處經常出現的發生錯誤,這當中包括了,設定時間(set-up time)或保持時間(holding time)的不符合,以及脈衝干擾(glitch)現象的發生。而這些時序變異,基本上都是只是單純考慮閘延遲時所造成的結果。


6. 配置與繞線(Place and Routing)


這裡包含了三項主要的工作:平面規劃(floor planning)、配置(placement)及繞線(routing)。還記得在設計描述的步驟,您已將ASIC劃分成數個模組了嗎?floor planning的工作便是,適當地規劃這些劃分好模組在晶片上的位置。

比起模組內邏輯閘間的接線,各模組之間互連訊號的接線,通常會比較長,因此,他們所產生的延遲會主控ASIC的性能;在次微米製程上,此種現象更為顯著,這也就是為何先前特別強調,模組劃分的重要性。完成平面規劃之後,P&R工具便接著完成各模組方塊內邏輯閘的放置與繞線。


7.繞線後的電路功能驗證(Post Layout Verification)


在這個階段,經過P&R之後的電路,除了須重複驗證,是否仍符合原始之功能設計之外,工程師最關心的是,在考慮實體的閘延遲及連線延遲的條件之下,電路能否正常運作。與邏輯閘層次的電路功能驗證時發生的情況相同,您將面對諸如set-up time、hold time及glitch的問題;不同的是,此時若真有錯誤發生,您將面對更冗長的重複修正週期(iteration cycle)。也就是說,您可能需要回到最原始的步驟:修改HDL設計描述,重新再跑一次相同的流程。

麻煩還沒有完,由於需要參考的參數非常的多,模擬時間將花費您數倍於先前的模擬。經由P&R工具所產生的標準延遲格式(Standard Delay Format, SDF)檔,提供了詳實的物理層次的延遲參數;透過VITAL的參數回傳機制(back-annotation),模擬器能夠精確的預估數位電路的電氣行為,並且指示出發生時序錯誤的時間點,而您所須付出的代價就是“時間”。最後,非常幸運的您完成了這項驗證工作,便可以sign-off,等著您的ASIC vendor交貨了。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条