《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于ESL并采用System C和System Verilog的設計流程
基于ESL并采用System C和System Verilog的設計流程
摘要: ESL解決方案的目標在于提供讓設計人員能夠在一種抽象層次上對芯片進行描述和分析的工具和方法,在這種抽象層次上,設計人員可以對芯片特性進行功能性的描述,而沒有必要求助于硬件(RTL)實現的具體細節。
關鍵詞: SoPC EDA ESL System C Verilog
Abstract:
Key words :

  ESL解決方案的目標在于提供讓設計人員能夠在一種抽象層次上對芯片進行描述和分析的工具和方法,在這種抽象層次上,設計人員可以對芯片特性進行功能性的描述,而沒有必要求助于硬件(RTL)實現的具體細節。

    當今,芯片設計需要進行深入的系統級仿真,以確保設計的體系架構合適均衡。在絕大多數情況下,所進行的這些仿真還要求在芯片的仿真模型上運行大量的軟件,以覆蓋所需的功能。為了讓這些仿真具有合適的執行性能,架構設計正在向電子系統級(ESL)解決方案發展。本文探討了一種基于SystemC和SystemVerilog的設計流程如何滿足極為復雜的硬/軟件系統級芯片(SoC)的設計周期和降低風險的目標。

  復雜性催生ESL方法學

  為了探討ESL在設計流程中的作用,我們首先看一下當今的主要設計原則。下面的圖1所示是一個十分典型的芯片。目前,這類SoC的一大部分是采用IP模塊進行組裝的。這些模塊部分來源于以前的設計,其它是從內部IP庫獲取的,或者是由外部IP提供商所許可使用的。當然,SoC中還包含了需要重新創建以加入關鍵性功能的模塊。

典型Soc的關鍵部分和結構


  據普遍預計,對于下一代90納米和65納米

 

設計而言, IP的使用將進一步增加。SoC還將包含多個可編程部件,例如中央處理器(CPU)和數字信號處理器(DSP)。有了這些部件和眾多的(甚至更大的)IP模塊,為了SoC設計的成功,在性能、功耗和芯片制造成本之間通過快速組裝、仿真和分析各項體系結構方案尋求最佳平衡的能力正在變得越來越關鍵。

  除了硬件設計任務以外,軟件設計任務也正在成為SoC設計流程中一個不可或缺的組成部分。傳統上,軟件設計任務標準情況下只在芯片的硬件原型已經提供后才執行。例如,在無線領域,這種方式經常導致產品推出時間計劃的延遲,原因是“軟件尚未完成”。為了解決這個問題,一種“虛擬原型”的概念出現了。虛擬原型是目標芯片的一種高速(20MHz以上)事務處理級模型,這個模型讓軟件開發工作在硬件原型完成前數個月前就可以開始了。

  新興的SoC設計流程

  圖2所描述的設計流程有利于引導SoC開發人員盡力解決這些難題。這一設計流程以ESL流程為起點,包含三項緊密相關的行動——產品規格確定、體系架構設計以及軟件執行平臺的開發。這個ESL流程的一項關鍵要求是它催生了一種硬件和軟件并行開發的流程,為需要設計的新邏輯模塊提供了詳盡的規格,并提供事務處理級的虛擬原型,而軟件開發任務就可以在這一原型上執行。

典型Soc的新興設計流程


  ESL階段之后是RTL設計/驗證和軟件開發任務的并行執行,這樣在創建了硬件原型(要求提供RTL)的同時,也能夠提供必需的軟件。

  與此類似,在芯片物理設計完成,代工廠即將交貨之時,絕大多數或全部的所需軟件均已經準備好并經過驗證,從而確保大幅縮短最后的硬件/軟件集成階段。

  事務處理級建模——ESL的關鍵

  事務處理級建模提供了用于構建上述虛擬原型的關鍵技術。系統的事務處理級模型描述了系統各個功能單元之間的抽象操作(事務處理)。典型情況下,這些事務處理是各個功能單元之間交換的整個的數據結構(或對象)上讀取/寫入或發送/接收操作。

  事務處理級模型的仿真速度比RTL模型快出若干個數量級。首先,它不對每一個硬件信號的功能進行建模,而是在抽象數據類型(可能代表了許多單個信號)上操作的模型,從而實質性地加快了仿真的速度。第二,通過使用抽象數據類型來代表RTL內多時鐘周期的數據傳輸,甚至可以讓仿真的速度增加更快。因此,將這些因素結合起來,TLM模型比同等的RTL模型的運行速度快出100倍至1000倍以上都是常見的,這個速度已經快到足以運行相當大的軟件。

  當今,在RT上的抽象層次已經十分明確,但TLM尚未達到這樣的程度。實際上,適當的TL抽象層次經常取決于應用領域和運行仿真的首要目的。某些應用要求周期上的精確性,例如對具體的高速緩存器特性的分析。而某些應用甚至可能要求在開發流程中與RTL模型建立部分關聯,而其它應用(典型為軟件開發任務)只需要功能上的精確度。

  目前,SystemC和SystemVerilog均得到了廣泛應用,并由IEEE和其它工業組織進行了標準化,得到了由各家EDA供應商提供的工具的廣泛支持。而將SystemC和SystemVerilog組合起來,能夠最大范圍地解決可能出現的對事務處理級的建模問題以及滿足工程師的偏好,并提供一套從ESL至RTL驗證的完整解決方案。

  SystemC

  SystemC是一種靈活的基于對象的結構化建模語言,設計用于對包括TLM在內的多種抽象層級進行建模。SystemC以C++庫來實現,其中將并發性結合進傳統C++語言框架中。

  雖然SystemC語言相對較新,但SystemC的采用具有重要的意義。原因之一是,在SystemC成為標準以前, 許多公司和大學已經在采用以前的各自專有C/C++庫在事務處理級上對系統進行建模。這樣,SystemC就向這些設計人員提供了一種實現他們的事務處理級方法學的工作標準方式,并提供了一種更為便捷的途徑交換系統級IP和知識。第二個原因是,SystemC使各種(基于C語言的)工具和仿真器相對較為容易的集成,例如,集成微處理器核心用的指令集仿真器(ISS),并具備借助C++大量的專家,采用這一語言方便地來加快工作。

  關于SystemC的典型使用情況,根據最近有關SystemC的出版物以及各項調查中得知,例如SystemC用戶中的絕大多數正使用這種語言來執行建模(68%)、體系架構開發(68%)、事務處理級建模(56%)和硬件/軟件協同仿真(56%)。

  SystemC最初在OSCI(開放SystemC發起組織)中發展而來,它的語言參考手冊(LRM)最近已經獲批成為IEEE 1666標準(見參考文獻[1])。

  SystemVerilog

  SystemVerilog是一種相當新的語言,它建立在Verilog語言的基礎上,并新近成為下一代硬件設計和驗證的語言。SystemVerilog結合了來自

 

Verilog、VHDL、C++的概念,還有驗證平臺語言和斷言語言,也就是說,它將硬件描述語言(HDL)與現代的高層級驗證語言(HVL)結合了起來。由于擁有這樣的概念以及它與Verilog的向上兼容性,使其對于進行當今高度復雜的設計驗證的驗證工程師具有相當大的吸引力。能夠采用SystemVerilog進行驗證的另一項成功因素是方法學手冊和架構的更早可用性,例如在SystemVerilog的驗證方法手冊(VMM)(見參考文獻[2])中所描述的驗證平臺方法(這一方法是由ARM和Synopsys合作開發的)。

  上述這些特點,以及SystemVerilog是一項得到了所有主要EDA供應商支持的IEEE標準的事實,使得SystemVerilog實質上成為了硬件設計和驗證的首選語言。

 

  SystemC與SystemVerilog特點比較

  就SystemC和SystemVerilog這兩種語言而言, SystemC擴展了C++在硬件方面的適用范圍,而SystemVerilog擴展了Verilog在基于對象和驗證平臺方面的適用范圍。而這兩種語言均支持諸如信號、事件、接口和面向對象的概念,但每一種語言又均擁有自己明確的應用重點:
  ● SystemC對于體系架構開發編寫抽象事務處理級(TL)模型、或執行建模來說最為有效,特別是對于具有很強C++實力的團隊和有基于C/C++ IP 集成要求(如處理器仿真器),以及為早期軟件開發設計的虛擬原型來說,更是如此。
  ● SystemVerilog對于RTL、抽象模型和先進的驗證平臺的開發來說最有效率,因為它具備了執行這方面任務所需的基礎架構,例如受限制隨機激勵生成、功能覆蓋或斷言。
  ● SystemVerilog顯然是描述最終的RTL設計本身的首選語言,不僅在于其描述真實硬件和斷言的能力,還在于對工具支持方面的考慮。

  這并不意味著每種語言不可以用在不同的應用中。 實際上,SystemC可以用于驗證平臺和描述RTL結構,而SystemVerilog也可以用于編寫高層事務處理級模型。但是,每一種語言都用于自己的重點應用時,它們可以達到最佳的效率。這點對于復雜的項目特別適用,在這種項目中,不同的任務分屬于不同的組,通常有不同的技能要求。注重實效的解決方案以及符合設計團隊的多種技術要求的方法是同時使用SystemC和SystemVerilog來開發和驗證當今設計流程需要的虛擬原型的事務處理級模型。

  集成的仿真環境

  將SystemC和SystemVerilog集成在同一個解決方案中,歸根結底是需要提供混合SystemC和SystemVerilog的仿真和調試環境。這項集成的核心在于能夠直接從SystemVerilog任務中調用SystemC成員的能力,反之亦然,可以從SystemC成員中直接調用SystemVerilog任務。很明顯,這樣就要求在SystemC和SystemVerilog的時間概念之間達到同步。

  為了建立SystemC和SystemVerilog的高效集成解決方案,讓諸如信號和事務處理這樣的基層概念在語言設計中,盡管已經在各自的語言中進行了各自方面的優化,在語義上又能夠跨越語言分界實現有效的映射。實際上,SystemC和SystemVerilog的標準化組織,OSCI和Accellera,已經認識到在這兩種語言之間建立有效接口連接機制的需求。

  SystemC和SystemVerilog集成的核心支持了混合層級結合的建模,而有能力創建部分處于事務處理級和部分處于具體硬 件級的仿真模型。因此,集成讓SystemC和SystemVerilog能夠在不同的抽象層級上進行通訊。

  一個典型的應用實例是將一個SystemVerilog RTL模塊集成到整個系統的一個SystemC模型中,例如,為了實現早期集成檢查。由于SystemC典型情況下應用在事務處理級,就有必要使用一個作為抽象層級之間橋梁的適配器(圖3)。

 

由于SystemC典型情況下應用在事務處理級


  這些適配器的目的在于將事務處理轉換成信號操作,而反之亦然。這樣,就可以讓設計的一部分在事務處理層次上進行仿真,而另一些部分在具體硬件層級上進行仿真。采用這種方法,設計人員擁有對于仿真具體層級的完全控制。

  這些適配器可以用SystemC或以SystemVerilog(圖3)來編寫。使用一項SystemC適配器是相當直接的方式,并且以將SystemC信號映射到SystemVerilog信號為基礎,反之亦然。而以SystemVerilog來縮寫轉換器時,典型情況下能夠提供更高的性能,但要求在SystemC與SystemVerilog之間建立事務處理級接口。

  SystemC與SystemVerilog之間的事務處理級接口

  在System

 

C中,將通訊與功能區隔開來的目的導致了接口概念的形成。在SystemVerilog中,與接口類似的概念也進行了設計。雖然SystemVerilog接口和SystemC接口并不完全一致,它們在語言上具有足夠的匹配度,能夠提供這兩種語言之間的有效事務處理級連接。SystemVerilog接口是一種能夠將信號捆綁在一起的結構,并且具有與SystemC接口完全一樣的接口方法。通過使用SystemVerilog基于DPI的服務層,驗證引擎可以直接將SystemC接口映射在SystemVerilog接口上,從而可以從SystemVerilog驗證平臺中直接調用SystemC事務處理級模型。

  例1所示為在參考文獻[3]中所述的以SystemC編寫的simple_bus的模塊接口部分。它描述了接口方法burst_read。而simple_bus的整個代碼可以在任何SystemC 2.x版本的安裝版本中找到。但是,simple_bus是如何實現此接口方法的,例如,使用了什么樣的總線帶寬或使用了哪一類型的仲裁,對于該接口方法的調用者來說都是不可見的,因此,可以在體系結構開發中很方便地進行改變。

 

以SystemC編寫的simple


  例2所示為simple-bus的一個SystemVerilog接口部分,這個總線可以直接映射到如例1所示的SystemC接口。為了確保SystemVerilog接口向SystemC成員的正確映射,其實現通過一個SystemVerilog的直接過程接口(DPI)服務層來完成。

simple-bus的一個SystemVerilog接口部分


  這樣就可以實現如例3所示的從SystemVerilog驗證平臺中直接調用SystemC對象的接口方法。

從SystemVerilog驗證平臺中直接調用SystemC對象的接口方法


  有了這種能力,驗證團隊就可以充分利用SystemVerilog的驗證平臺技術來驗證SystemC事務處理級模型,并可以使用SystemC事務處理級模型作為硬件驗證流程的參考模型,這點在圖4中進行了概略的描述。此外,SystemVerilog功能覆蓋和斷言可以用于實現完整的由覆蓋率驅動的事務處理級模型的驗證解決方案,為SystemC模型提供新型和前所未有的驗證能力。

驗證SystemC事務處理級模型


  Synopsys的Discovery驗證平臺是這類集成驗證環境最好的實例之一,它同時集成了對SystemC和SystemVerilog的支持。它提供了高性能的RTL驗證,包括仿真和形式分析、體系架構開發以及提供一個對廣泛的測試平臺所需的基礎支持,來處理事務處理級建模的驗證。

  通過觀察目前的SoC設計,我們可以大致了解為什么ESL工具和方法在控制設計成本和幫助準時發布產品方面起到了關鍵性的作用,并且了解到那些影響到SoC性能和成本的關鍵性決策是在項目早期通過采用事務處理級建模方法建立的虛擬原型做出的。

  SystemC是一種非常適合于創建、仿真和分析設計的事務處理級模型的語言。SystemVerilog是理想的硬件實現語言。SystemC和SystemVerilog的良好結合能支持混合(事務處理和硬件)模型。此外,這項結合讓SystemVerilog的強大驗證能力能夠在事務處理級模型的驗證工作中充分發揮,而相同的驗證平臺還可以適用于硬件驗證工作。

  SystemC和SystemVerilog結合起來提供了當今先進芯片所需的一套從ESL至RTL設計流程的真正的、基于標準的解決方案。通過將SystemC和SystemVerilog結合到一個單一的驗證環境中,可以高效地建立和驗證分析體系結構所需要的事務處理級虛擬原型,并在設計工作的早期開發內嵌的軟件。

參考文獻
[1] IEEE APPROVES SYSTE MVERILOG(r) and VERILOG(r) STANDARDS FOR ELECTRONIC DESIGN:
http://standards.ieee.org/announcements/pr_p1364-1800.html
[2] Verification Methodology Manual for SystemVerilog, Janick Bergeron, Eduard Cerny, Alan Hunter and Andrew Nightingale, 2005, Springer Science+Business Media
[3] System Design with SystemC, Thorsten Gr?tker, Stan Liao, Grant Martin and Stuart Swan, 2002, Kluwer Academic Publishers

 

作者簡介:
Rindert Schutten在EDA行業擁有20多年的相關經驗,目前在Sysnopsys公司的驗證產品部負責系統級設計工具方案業務,他曾經帶領公司的專業化驗證服務團隊與行業內的領先

 

廠商一同應對SoC驗證中的最嚴峻挑戰。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 深夜影院深a | 一个人www免费看的视频 | 亚洲成a人片在线观看 欧美 | 黄色一级片在线播放 | 国产日韩精品欧美一区视频 | 三级黄色在线视频 | 久草青春 | 羞羞网站视频 | 日韩精品a在线视频 | 国产成人啪精品视频免费网站软件 | 日韩视频第一页 | 日本三级特黄 | 欧美日韩无| 一级黄色免费片 | 国产日产高清欧美一区二区三区 | 91精品视频免费 | 韩国午夜影院 | 一级片在线免费播放 | 精品国产片 | 国产精品综合 | 成人动漫在线免费观看 | 五月婷婷综合在线视频 | 五月天综合婷婷 | 婷婷在线五月 | 中文字幕在线播放视频 | 深夜免费在线观看 | 国产欧美日韩网站 | 色黄视频网站 | 久久久综合视频 | 久久香蕉网 | 亚洲成a人片在线观看 欧美 | 日日干天天插 | 黄色影片在线看 | 亚洲色图国产 | 羞视频在线观看 | 成人综合影院 | 日韩在线视频一区二区三区 | 精品国产影院 | 男女啪啪免费体验区 | 国产精品九九视频 | 成人在激情在线视频 |