1 引言
隨著微電子技術與計算機技術的日益成熟,電子設計自動化(EDA)技術在電子產品與集成電路(IC)芯片特別是單片集成(SoC)芯片的設計應用中顯得越來越重要。EDA技術采用“自上至下”的設計思想,允許設計人員能夠從系統功能級或電路功能級進行產品或芯片的設計,有利于產品在系統功能上的綜合優化,從而提高了電子設計項目的協作開發效率,降低新產品的研發成本。
近十年來,EDA電路設計技術和工程管理方面的發展主要呈現出兩個趨勢:
(1)電路的集成水平已經進入了深亞微米的階段,其復雜程度以每年58%的幅度迅速增加,芯片設計的抽象層次越來越高,而產品的研發時限卻不斷縮短。
(2)IC芯片的開發過程也日趨復雜。從前期的整體設計、功能劃分,到具體的邏輯綜合、仿真測試,直至后期的電路封裝、排版布線,都需要反復的驗證和修改,單靠個人力量無法完成。IC芯片的開發已經實行多人分組協作。
由此可見,如何提高設計的抽象層次,在較短時間內設計出較高性能的芯片,如何改進EDA工程管理,保證芯片在多組協作設計下的兼容性和穩定性,已經成為當前EDA工程中最受關注的問題。
針對這些問題,人們提出了軟硬件協同建模設計3的思想,將統一建模語言(UML)與SoC設計流程相結合,產生了新型的SoC設計方法,同時對EDA工程的分組協作采用層次化管理,提高了芯片研發團隊的協調合作能力,進一步加快SoC產品的開發速度。本文從建模的思想出發,主要闡述了結合UML建模技術的新型SoC設計流程的原理及其優勢,介紹了支持SystemC的UML架構及其應用,最后針對EDA工程的分組協作的管理問題,介紹了一種層次化管理的原理和改進方案。
2 基于UML建模的SoC設計方法
SoC設計的關鍵在于異類模塊之間的協作兼容程度以及這些模塊在高抽象層次上的工作能力。常規的SoC設計過程,如圖1所示,是從最初的系統的需求描述開始的,然后根據該需求描述,系統被劃分成多個功能模塊,例如存儲器部分,放大器部分等。功能劃分的正確性,將在較高層次的功能仿真中得到檢驗。
圖1 常規的SoC設計流程
功能劃分之后,系統進入最重要的軟硬件分離階段,分離開的硬件和軟件部分有其各自的設計流程。通常,軟件部分使用程序語言(如C/C++)編寫代碼,形成目標文件后即可進行仿真測試。而硬件部分被分離出來之后,需要進一步細化、抽象才能進入寄存器傳輸級(RTL)的描述階段。在這個階段,硬件采用硬件描述語言(如HDL)來描述,然后通過進一步邏輯綜合,形成常規元件庫或預定義元件庫中已有的邏輯單元。這些邏輯單元有固定的封裝,再經過版圖規劃,時鐘模擬和自動布線以后,形成最終的物理版圖。然而,硬件部分從分離出來到進入RTL級的設計過程缺乏有效的銜接,制約了SoC設計抽象程度的提高。
在這種常規的SoC設計流程中,軟硬件的設計包含了一系列的仿真和驗證活動:硬件的RTL級描述和軟件的目標代碼通過運行指令設置仿真器,檢驗各自ISS(指令設置)的正確性;在邏輯單元的綜合過程中不斷進行封裝驗證、時序分析和版圖驗證;最后生成的物理版圖還要與邏輯單元進行一致性校驗。但是由于這些驗證要在硬件的RTL級描述和軟件的目標代碼都完成之后才能進行,因此檢測出的錯誤通常是難以修復的。這些錯誤無疑將影響到芯片在高抽象層次上的工作性能和各模塊之間的協作交互能力。
為了改進SoC的設計,人們將抽象建模結合到芯片設計過程中,采用UMI。語言為芯片設計過程進行建模,提出了基于UML的SoC設計方法。他充分利用了UML定義良好、易于表達、支持各種抽象程度的綜合的優勢,彌補了常規SoC設計方法的上述不足。
在這種新型的SoC設計流程中,如圖2所示,UML被用于從需求分析開始的整個芯片開發過程。使用UML為系統建模,能夠由簡明到詳盡地描繪系統的需求、結構、功能以及相應的行為,使開發者對所開發的SoC有準確而且全面的了解,其功能劃分的正確性也更易于檢驗。經過功能劃分,硬、軟件分離之后,軟件部分的建模先由UML的類圖、狀態圖、時序圖、活動圖等多種方式來描述,再通過代碼自動生成系統,得到相應的C/C++目標代碼。這比直接編寫代碼更直觀、靈活,易于維護和修改,使設計者能夠在較高層次上專注于芯片的整體規劃,而不必被低層次的代碼實現細節所束縛。
而硬件部分采用SystemC來描述,可以在門級、RTL級和系統級等各個抽象層次上和軟件部分一起進行仿真和測試,使開發者能夠對盡早地發現錯誤,在邏輯單元綜合之前即可改進電路,及時解決問題,保證了芯片的各個模塊在高抽象層上的交互性能,同時也縮小了整個仿真驗證的工作量,提高了一次設計的成功率。
圖2 結合UML的新型SoC設計流程
這種基于UML的SoC設計方法,使得電路設計的抽象程度從編寫代碼提高到了系統級建模的層次,優化了SoC的設計流程,提高了設計效率。在2005年召開的“UML for SoC Design Workshop 2005”會議上,意法半導體(ST)就發布了適用于該方法的由芯片的UML模型自動生成SystemC代碼的EDA系統,下面具體介紹這種工具的實現架構。
3 支持SystemC的UML架構
UML語言對C/C++,JAVA等編程語言具有很強的支持能力,而SystemC是基于C++語言的軟硬件協同設計語言,包含了C++類庫和仿真內核。與HDL相比,他不僅能夠描述芯片的硬件,還可以描述系統的測試平臺,支持抽象層的仿真和測試,具有和C++語言一樣良好的擴展性。支持SystemC的UML架構,是在UML2.0版本的基礎上,結合了SystemC 2.0的類庫定義和表達規則,將原有的UML語義(包括圖符、約束關系和標注值)進行一系列的擴展以及功能上的提高,使之與SystemC相對應。他可以看成是為特殊的應用領域(如無線通訊、實時系統、軟件測試等)定制的具有特殊功能的UML建模開發框架。
支持SystemC的UML架構總體框架如圖3所示。其中,可視化建模區為芯片的整體設計、模塊結構和各個模塊功能的具體實現提供了功能強大的圖形化建模平臺。在該平臺上,設計人員能夠在為芯片建立總體模型,然后借助于豐富的UML模版和圖符,對各個功能模塊的具體結構、模塊之間的相互關系,以及模塊內部的成員(包括子模塊、成員函數、成員變量等)進行詳細的定義和描述。完整的UML模型建立后,通過代碼自動生成系統的翻譯和轉換(這期間可能要進行可擴展標記語言(XML)的解析),最終產生用SystemC描述的目標代碼文件。
圖3 支持SystemC的UML架構的總體框架圖
在整個架構中,UML與SytemC的對應語義、函數知識庫是連接UML和SystemC的關鍵部分,他主要由SystemC核心類庫、核心函數庫、數據類型庫和預定義通道、接口、端口庫組成。這些類庫中增設了適合為SystemC程序建模的圖符和模版,為UML圖符和SystemC語言之間提供了密切而直觀的對應關系。圖4給出了幾個常用的SystemC類或方法以及他們在UML中對應的圖符或表達形式。
圖4 支持SystemC的UML架構新圖符定義
根據這些對應關系,UML的結構圖(例如類圖、包圖等)就可以通過表示模塊、端口、接口等硬件類的圖符來描述這些硬件的結構和層次。而UML的行為圖(例如狀態圖、活動圖、時序圖等)就可以用表示等待、循環等狀態類的圖符來描述硬件功能的具體行為和同步情況。這些圖能夠在高抽象層次描述SystemC過程,并且生成有效而簡潔的SystemC代碼。
目前,意法半導體已經將這種架構應用到了IEEE802.lla物理層轉發及收發電路中。這種結合UML建模的方法在實際芯片設計應用中已經體現出較大優勢。采用該UML架構為芯片建模,使SoC設計(特別是硬件部分)的流程更進一步從RTL的抽象上升到系統級抽象。與RTL級的直接描述方法相比,建模使硬件設計更系統化,而且具有軟件設計一樣的靈活性和IP(知識產權)可復用性。在支持SystemC的UML架構中,功能模塊的仿真和檢測可以在直觀的建模層次上進行,使芯片的錯誤比在RTL級上更容易被發現和糾正。除此以外,使用UML建模的設計方式更適用于芯片模塊在多人協作開發下的統一。由于UML語義是標準化的,而且最后的目標代碼由系統自動生成,這就消除了由于設計人員之間編程風格不同而造成的代碼的不連貫。
由于支持SystemC的UML架構是目前EDA領域較新的技術,其功能還在不斷的擴展和研究中。目前,法國INRIA公司的開發小組發表了利用序列圖等表現并行及實時特性的UML擴展標準“MARTE”;比利時Katholieke Universiteit Leuven公司也提出了能夠表現SoC硬件性能要求的擴展標準“SysML”;意法半導體則準備進一步實現由SystemC程序到UML的逆向轉換功能。這些工作都將進一步擴大UML對SoC的建模能力,使抽象建模在芯片設計中應用更加廣泛。
4 層次化的分組協作管理方法
UML建模在SoC設計流程中的應用,有效提高了EDA工程中軟硬件的設計效率。然而,現在的EDA工程對復雜系統的設計是通過專業分工(如功能劃分、模塊設計、仿真測試、版圖規劃、封裝布線等)后形成多個小組共同協作完成的。為了協調多組之間的分工,確保芯片各個模塊在多人設計下的兼容性和質量穩定性,人們通常采用層次化的分組協作管理方法進行復雜系統的設計管理。這種層次化的分組協作管理方法主要包括以下4個方面:
(1)工程中芯片開發人員實行分級權限控制。工程管理者可以設置整個工程,查看各小組的進度和IC設計流程各個環節的執行情況,對數據庫有全權的讀寫權利。而小組管理員為組內每個成員進行具體分工,分配資源(如設計工具,數據文件等),負責本組和其他小組之間的進度協調。
(2)多組之間的通信平臺采用實時的工程信息管理機制。管理員享有芯片版本和修改方案的發布權,處理由其他成員提交的資源申請,設計方案等,而其他成員可以定制自己的信息處理方式,以便最快地獲得工程信息。
(3)采用分層的文件系統存放工程信息(包括芯片設計數據、軟硬件資源數據、成員信息等),并且為每個開發小組提供獨立的工作區和資源庫,使設計人員在自己的工作目錄下工作。文件系統里還預定義了一系列功能擴展規則,設計人員可以按照這些規則對自己的工作區進行需求設計,例如修改子目錄格式,創建信息發布形式,自定義EDA工具等。
(4)對于資源庫,包括芯片的數據信息庫、工程人員分工信息庫、建模工具庫(如rose系列的UML建模軟件)、電路設計工具庫(如Cadence系列工具軟件)、元件信息庫等,實行分級共享和管理。允許多個EDA工程連接到某些共同的資源庫,而工程內部成員對資源庫的連接范圍和使用權限,由管理員根據成員的分工權限給予分配。
這種層次化的分組協作管理方法使設計人員之間權限明確,互不干擾,提高了項目開發的安全性。其中實時的信息管理加強了分組成員之間的協作,分層的文件存放系統使工程數據更易于查詢和使用,資源庫的連接控制和共享提高了資源的利用率和使用的安全性。當前的許多EDA公司(例如Cadence、Synopsys公司等)都推出了基于該方法的分組協作管理軟件(例如Cadence的Team Design Manager6]等)。一些EDA實驗室和EDA平臺的建設也開始使用層次化的管理方法,以提高團隊的科研和開發效率。
目前,層次化的管理方法主要適用于使用同一公司的EDA工具的開發團隊。而在大規模的芯片設計流程中,設計人員有可能混合使用不同公司(例如Cadence、Synopsys和Mentor Graphics公司)的EDA工具。這些工具的接口標準不一定相同,所以用一種分組管理軟件中的層次化管理方法對跨公司的工具進行管理還存在一定的困難。因此,我們將這種層次化的管理方法與UML結合,使用UML描述分組協作層次化機構和EDA工具之間的調用,同時利用UML的語義的統一性可以生成一致的標準,或在文件之間進行標準轉換,以解決不同工具的協作問題。
鑒于UML是用例圖、結構圖、活動圖等進行表示的,不但能夠描述設計人員的權限管理和資源分配,還可以描述層次化設計管理中的不同工具接口、設計過程中的信息處理等問題。如圖5所示,采用UML來描述管理員進行信息處理過程的活動圖。當芯片設計過程中有某個模塊需要修改時,管理員通常會收到開發人員提交的設計修改方案,然后將其應用到整體設計進行綜合仿真、測試等一系列驗證,若修改方案不可行,管理員將向提交者發送驗證結果和修改建議等信息,若修改方案可行,管理員將向提交者發送確認信息,同時向工程內其他小組發布該修改方案,使各小組按照方案更新各自負責的芯片部分。其中,狀態圖中“do/…”語句是管理員根據工程需要,自定義具體執行內容,例如字符串轉換、數據庫讀寫、工具的調用、接口標準轉換等。由于UML可以采用標準化的模型和代碼來轉換不同的工具的文件標準,使SoC設計的各分工小組對不同公司的EDA工具調用變得統一,有利于控制芯片模塊的質量,從而確保soc芯片的設計效率和質量。
圖5 消息處理活動圖
5 結語
結合UML建模的SoC設計方法和層次化的分組管理方法有效地解決了當前芯片設計時限縮短、設計分工不斷復雜化而帶來種種問題。UML建模與SoC設計的結合,實現了芯片的系統級設計。支持SystemC的UML架構在這種新型設計流程中的使用,可以有效銜接從硬件分離到進入RTL級的設計過程,解決了硬件部分在RTL級的設計抽象層次低、錯誤檢測不及時的困難,提高了芯片的開發效率。而層次化的分組協作管理方法能夠對有效協調SoC設計流程中多個設計小組的復雜分工與協作,使芯片各模塊在多人開發的過程中始終兼容一致,這種管理方法與UML的結合還有利于優化分組協作,解決不同標準的EDA工具之間的協作問題。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:EDA工程建模及其管理方法研究