新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 通過將SystemC和SystemVerilog集成在單個環境中獲得事務級建模和高級驗證功能

        通過將SystemC和SystemVerilog集成在單個環境中獲得事務級建模和高級驗證功能

        作者: 時間:2017-06-06 來源:網絡 收藏
        盡管業界對SystemC或SystemVerilog哪個更適用于系統設計和驗證仍有爭論,但已經不需要在兩個之間作出選擇。通過互補的方式對它們高效地加以利用可以促進那些高級驗證方法的成功運用。這些高級驗證方法通常會采用受限隨機測試生成、功能覆蓋、聲明和事務級建模(TLM)功能。

        通過支持面向對象的編程方法,這兩種語言都能對更高層的抽象進行建模,而且都包含象隨機化這樣的驗證組件。兩者之間也有些區別。例如SystemC完全支持TLM,包括在高層抽象進行描述、記錄和事務瀏覽;而SystemVerilog不完全支持TLM,但它支持聲明、功能覆蓋和改進的受限隨機測試生成功能,因此也具有顯著的驗證優勢。這兩種語言在功能上多少有些重疊,因此用這兩種語言建立系統時可以做到平滑轉換。

        可以在多個抽象層實現的高級驗證方法和建模技術能夠最佳地發揮TLM的優勢。事務常用于建模硬件系統,而系統軟件的語義很容易被表示為高層事務。這樣系統架構師、軟件、驗證和硬件工程師之間就能直接進行交流。更高層抽象和TLM可以使大量軟件被用作測試平臺的一部分,并允許在RTL編碼完成之前開始測試平臺開發。當RTL設計實現時,驗證工程師就可以插入將RTL事務轉換成信號層事務的事務處理器。

        另外,設計領域和學科之間的這種高性能橋梁可以改善公司各個設計與驗證團隊的所有成員之間的交流和合作。它允許軟件工程師和系統架構師與驗證和硬件工程師直接分享數據。這種交叉學科交流本身也有助于發現和解決設計過程早期出現的問題,從而進一步提高設計質量和驗證的產能。


        圖1:在多個抽象層工作并使用高級驗證方法可以為系統級平臺的建立提供極好的機會,此時驗證復雜SoC所需的多學科匯聚要比以前早得多。

        標準集成可進一步方便高級驗證

        設計復雜性意味著驗證小組必須能夠產生更多冗余度更少的測試,以便更快地覆蓋目標性能。最佳的驗證解決方案可以幫助工程師利用高級驗證技術和方法實現更高的驗證產能,例如基于聲明的驗證、受約束的隨機測試、功能覆蓋和測試平臺自動化。

        這些方法已被一些前沿設計公司所采用,其中大多數設計公司開發私有工具來支持這些方法。這些私有工具被證明可以增加驗證效率和產能,并能提高設計質量。然而,私有特性也阻礙了這些工具的廣泛采納。通常這些定制語言的集成以及獨立內核和專用接口的整合限制被證明是相當困難的。

        克服這些障礙的第一步是由公認的標準組織如OSCI、Accellera和IEEE開發出標準的驗證語言和庫。這些新語言也必須克服其它HDL語言的設計與驗證限制,因為這些HDL語言缺少對更高層抽象的驗證支持。第二步是提供能夠全面支持在單個內核和用戶接口中集成這些語言的仿真環境。這種語言的集成可以從根本上改變高級驗證方法的部署,使之最佳匹配項目需要,而不受語言或工具的限制。

        SystemVerilog和SystemC是適合高級設計與驗證使用的最重要語言。SystemVerilog和SystemC設計構造允許在更高抽象層進行建模,從而有利于下一代設計的創建與驗證。

        SystemVerilog是許多現成的專有和標準驗證與設計語言積累的結果,因此它能與現有的HDL環境無縫集成。SystemVerilog可以加快高級功能驗證的構建,實現缺陷檢測的自動化和設計的完全覆蓋,包括難以預料的偏僻案例。它能改善建模質量,使之具有更好的可視性和更少的缺陷,并且能夠通過支持受限隨機測試、自動化、聲明、覆蓋和測試平臺復用改善測試平臺架構的質量。

        SystemC能讓工程師在更高抽象層捕獲設計,并使用包括軟件在內的高層測試策略執行驗證。系統級測試平臺也可以在RTL級復用,實現驗證產能的提高。SystemC包括一個功能強大的并發建模層,非常方便創建無時序、并發的系統級架構模型。因為SystemC是C++的擴展,因此它有許多固有屬性,如類、模板和多種繼承性,這些屬性自己就能建立適合功能驗證的可復用事務級組件。用于開發軟件的同一可執行平臺常被用于整個系統的驗證。這種驗證在項目初期就會發生,而事務級模型可以成為整個系統非常好的參考。

        一個全面集成的多語言仿真環境允許用SystemVerilog或SystemC編寫的高級測試平臺和設計組件使用任何設計語言?;旌虾推ヅ涠鄠€語言的能力可以使設計人員在多個抽象層上共享數據,并在單次仿真中集成多個運算模型。不管設計人員處于哪個設計階段,工程師都可以使用事務器接口從不同抽象層連接即插即用模型,從而滿足不同層的需求。這樣不僅擴展了通過接口的數據類型,還能對包括VHDL在內的所有標準語言之間的測試平臺復用提供支持,從而推進高級驗證方法的廣泛采用。

        進一步的功能驗證

        高效驗證需要兩個關鍵要素,而這兩個要素都可以由SystemVerilog和SystemC保證。首先,驗證環境必須能夠盡可能自動地檢測缺陷,在這樣的環境中象聲明、自動化響應檢查器和記分板等功能都會派上用場。其次,驗證環境必須能夠產生能引起缺陷的正確激勵信號。激勵可以通過定向測試或受限隨機技術生成,這些技術能以相對較少的代碼遍歷各種情況。

        SystemVerilog和SystemC SCV允許用戶在約束方面描述激勵情景,規定驅動設計的信號或事務所需的邏輯值。這樣仿真器可以為激勵產生隨機值,并具有能確保所生成的情景有效的約束條件。新的情景可以通過簡單地重新運行具有不同隨機種子的仿真器形成,從而產生不同但等同有效的激勵,因此可以用來檢查新的功能。

        使用隨機化和約束條件可以在驗證產能方面產生許多實質性的改善。其它語言只能通過使用面向對象或面向方式的復雜編程技術才能提供這些性能。雖然SystemVerilog在其面向對象的架構中包括隨機化和約束條件,但它也能提供多種方式來部署這些性能,而且不需要學習面向對象的編程技術,因此這些先進技術得到了廣泛使用。

        一旦測試平臺中整合了隨機化功能,就需要通過功能覆蓋判斷實際上可能會發生哪一種情景。SystemVerilog功能覆蓋將跟蹤設計的哪個功能會被運用,因此不會在同一功能上浪費時間。

        橋接設計和小組層次

        因為考慮驗證過程的前后總是有所幫助,因此高效的方法是把測試平臺的重點放在設計該做什么,而不要放在如何做設計上。最便利的做事方式是在事務級編寫測試平臺。提高抽象層次可以增加產能,因為這樣可以使高層功能得到驗證,并且糾正速度比較低抽象層快。可以通過某種自動方式使用受限隨機、聲明、形式或其它技術處理細節,也可以在更廣泛的設計和驗證工程師之間劃分細節。

        事務是指在受限時間周期內系統中發生的所有活動集合。感興趣活動在特定時間開始,在一段時間后結束。在特定設計單元中或在兩個單元之間發生的所有操作、狀態修改、數據移動和運算都是事務。事務級模型用來在高層抽象描述復雜系統,允許設計師在進入完整實現的低層細節之前解決架構問題。在功能驗證方面,基于事務的測試平臺允許驗證工程師在構思設計的層次驗證正確操作。

        因為事務級模型提供的細節要比Verilog和VHDL RTL模型少得多,因此與在寄存器傳輸級建模的可執行平臺相比,它們在仿真時的運行速度非???。SystemC事務模型也很快,甚至可以用作軟件開發平臺,從而支持早期的軟件開發和軟硬件協同仿真。另外,事務級和SystemC功能模型也具有足夠快的速度,可用于系統級架構化建模和分析。

        事務瀏覽功能可使SystemC TLM供從事項目的所有工程師使用,從而進一步提高設計和調試的效率。SystemC和TLM可以為系統架構師和編程人員建立多產的公共平臺。事務的可視性可以表明由模型產生和消耗的特殊事務序列以及彼此之間的關系。

        SystemC和TLM還能為所有等級的設計層次上的復用提供重要的機會。例如,硬件設計師可以在預先定義的接口上用較低層RTL模型代替高層C模型。通過復用不同抽象層上的測試平臺組件可以在多個工程學科之間建立聯系路徑,增加信息共享,提高效率。

        集成語言的價值

        將多個先進的編程語言集成在單個環境中可以使硬件設計師選擇復用用SystemC編寫的測試平臺,或選擇用SystemVerilog創建的額外驗證組件。現在架構師、編程人員和硬件設計師可以充分利用具有SystemVerilog聲明、受限隨機生成、功能覆蓋和測試平臺自動化等功能的可復用測試平臺組件。

        有許多理由要求在同一仿真中整合用不同語言編寫的以及在不同抽象層次的模塊。IP有許多來源,也有許多種形式。而且在集成過程中,很有可能所有的模塊不會同時出現在相同的抽象層次。比如,在自頂向下的流程中,原本所有模塊都是事務級模型。在逐步調整的過程中,一些模塊會被RTL所替換。

        SystemVerilog直接編程接口(DPI)可以在SystemC和SystemVerilog之間提供必要的高性能、易用性鏈接。有了SystemVerilog DPI后,系統架構師和軟件工程師就可以用SystemC做設計,然后直接移動到SystemVerilog域進行驗證,并允許他們充分利用受限隨機技術、測試平臺自動化、聲明和功能覆蓋等功能。

        因為是直接連接,SystemVerilog DPI要比編程語言接口(PLI)等標準應用編程接口(API)更便利更快速。SystemVerilog面向對象的特性也更容易創建可復用測試環境,因為它允許約束和其它方面通過繼承進行控制或覆蓋。不過對于不準備或不愿意從事面向對象的編程人員而言,在事務級編寫測試和約束的能力也能顯著增加測試效率。


        SystemVerilog DPI開放了一個公共的通信通道,因此允許跨越許多語言和引擎實現測試平臺的復用。

        統一的驗證環境

        為了充分發揮這種混合語言環境的先進驗證性能,設計小組需要一個基于標準的解決方案,以便他們利用每種語言的長處,包括可應用于多個抽象層的可復用驗證組件。

        仿真仍然是高級驗證方法的核心。仿真器應該從根本上支持SystemVerilog、SystemC、Verilog和VHDL。對單個內核中HDL和高層驗證語言的根本性支持可以獲得更快的性能和高度集成的調試和分析環境。如果在使用公共圖形用戶接口的統一內核中支持所有的語言,并且語言的混合是透明的,那么肯定能獲得很大的靈活性,語言之間也很容易移植。

        仿真器應該將SystemVerilog和SystemC的設計與驗證功能集成在統一的環境中,并設定最大化產能的階段。一個全面的混合語言設計環境允許用SystemVerilog或SystemC編寫的高級測試平臺與包括Verilg或VHDL在內的任何設計語言一起使用。

        這樣,架構師和設計師就可以選用他們所專長的任何語言,然后與項目的其他成員一起共享成果。在不同學科之間的這座橋梁可建立用于開放通信線的整體協作過程。結果將形成在線對話,使得許多問題和機會可以在設計開發過程的早期獲得討論澄清,而此時這些問題解決起來會更容易,代價也較低。

        高級驗證方法和事務級建模的有機結合可以創造出極大的靈活性,顯著地提高驗證產能和設計質量,同時在系統架構師、軟件設計師、硬件設計師和驗證工程師之間促成更好的交流。使用高層SystemC和事務級模型可以加速設計創建,推進架構化選擇的開發。SystemVerilog可以通過聲明和功能覆蓋等高級驗證技術加快系統有效性的確認。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 当涂县| 夏津县| 如东县| 灵石县| 方正县| 分宜县| 商都县| 常熟市| 广河县| 台中县| 芦山县| 平湖市| 馆陶县| 宿州市| 九龙县| 濉溪县| 西和县| 黑山县| 高陵县| 德化县| 绥江县| 香河县| 潜山县| 綦江县| 福贡县| 宜兰县| 巴里| 济宁市| 玛曲县| 太原市| 西乌珠穆沁旗| 措勤县| 兴义市| 昌吉市| 鲁甸县| 绿春县| 巴南区| 安达市| 阿尔山市| 黄龙县| 临朐县|