<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 基于ESL并采用System C和System Verilog的設計流程

基于ESL并采用System C和System Verilog的設計流程

作者: 時(shí)間:2012-07-23 來(lái)源:網(wǎng)絡(luò ) 收藏

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

本文引用地址:http://dyxdggzs.com/article/186083.htm

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

  復雜性催生方法學(xué)

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

典型Soc的關(guān)鍵部分和結構


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

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

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

  新興的SoC設計流程

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

典型Soc的新興設計流程


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

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

  事務(wù)處理級建模——ESL的關(guān)鍵

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

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

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

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

  SystemC

SystemC是一種靈活的基于對象的結構化建模語(yǔ)言,設計用于對包括TLM在內的多種抽象層級進(jìn)行建模。SystemC以C++庫來(lái)實(shí)現,其中將并發(fā)性結合進(jìn)傳統C++語(yǔ)言框架中。

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

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

SystemC最初在OSCI(開(kāi)放SystemC發(fā)起組織)中發(fā)展而來(lái),它的語(yǔ)言參考手冊(LRM)最近已經(jīng)獲批成為IEEE 1666標準(見(jiàn)參考文獻[1])。

SystemVerilog

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

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

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

  SystemC與SystemVerilog特點(diǎn)比較

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

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

  集成的仿真環(huán)境

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

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

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

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

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


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

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

  SystemC與SystemVerilog之間的事務(wù)處理級接口

在System

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

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

以SystemC編寫(xiě)的simple


例2所示為simple-bus的一個(gè)SystemVerilog接口部分,這個(gè)總線(xiàn)可以直接映射到如例1所示的SystemC接口。為了確保 SystemVerilog接口向SystemC成員的正確映射,其實(shí)現通過(guò)一個(gè)SystemVerilog的直接過(guò)程接口(DPI)服務(wù)層來(lái)完成。

simple-bus的一個(gè)SystemVerilog接口部分


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

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


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

驗證SystemC事務(wù)處理級模型


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

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

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

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

c++相關(guān)文章:c++教程




關(guān)鍵詞: System Verilog ESL 設計流程

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>