一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

適用于SystemC/C++驗證的形式化解決方案

西門子EDA ? 來源:西門子EDA ? 2025-06-24 11:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

SystemC/C++ 設(shè)計的驗證要求

雖然 SystemC/C++ 編程風(fēng)格已使用多年,但最近出現(xiàn)了一些特定使用模式,它們推動工程團隊采用共同的設(shè)計流程。這包括抽象算法設(shè)計代碼用作高層次綜合 (HLS) 工具的輸入,虛擬平臺模型用于早期軟件測試,可配置的知識產(chǎn)權(quán) (IP) 模塊,等等。

HLS 用于將“大部分為非時序化”的抽象 SystemC/C++ 設(shè)計表示轉(zhuǎn)換為完全時序化的寄存器傳輸級 (RTL) 設(shè)計模塊,該工具已被許多大型半導(dǎo)體和電子系統(tǒng)公司使用。作為一種快速生成具有不同微架構(gòu)的設(shè)計組件,同時快速高效地優(yōu)化算法處理數(shù)據(jù)路徑的方法, HLS 工具特別受歡迎。其在控制邏輯以及具有更詳細時序的一般元器件上的使用,也變得越來越普遍。

33199ad4-4cdd-11f0-b715-92fbcf53809c.jpg

圖 1. SystemC/C++ 高層次設(shè)計流程

SystemC/C++ 設(shè)計的驗證主要通過如下方式進行:利用 GCC 等標準軟件編譯器編譯設(shè)計表示,并以與軟件設(shè)計類似的方式調(diào)試代碼。Open SystemC International (OSCI) SystemC C++ 類庫(現(xiàn)已標準化為 IEEE 1666-2011)引入了使用戶體驗更像 RTL 仿真的功能,但仍有許多問題讓 SystemC 代碼的驗證任務(wù)非常復(fù)雜和艱巨,包括調(diào)試、運行時性能和測試復(fù)雜性。該級別的形式化技術(shù)一直很稀少。

常見 SystemC/C++ HLS 流程所用的算法描述常常僅使用 C 或 C++ 代碼。這些描述經(jīng)過測試,以確保算法本身正確運行。SystemC 類庫函數(shù)用于提供 HLS 工具所需的極少硬件細節(jié),例如基本時序、復(fù)位功能等。綜合工具生成 RTL 代碼,然后將其應(yīng)用于更傳統(tǒng)的設(shè)計細化流程和驗證過程。

設(shè)計驗證分為 SystemC 和 RTL 兩個級別。很明顯,工程師更愿意驗證和調(diào)試原始 SystemC 設(shè)計,而只在綜合后檢查功能等效性,類似于傳統(tǒng)的 RTL 開發(fā)過程。然而,由于缺乏有效的 SystemC/C++ 設(shè)計驗證環(huán)境,工程師們不得不采用更傳統(tǒng)的 HDL 驗證。

隨著工程師提高其設(shè)計方法的抽象級別,驗證級別自然也要相應(yīng)地提高。在 HLS 之前的算法級別,要求直接根據(jù)其規(guī)范驗證設(shè)計,而較少關(guān)注編碼細節(jié)。功能規(guī)范很容易用斷言來表示,因此,使用能夠針對設(shè)計嚴格測試斷言的形式化技術(shù)是一種自然的選擇。新的控制密集型算法,現(xiàn)在用 SystemC 編寫,僅使用仿真特別難以驗證。

西門子 EDA 的 360 DV SystemC/C++ 驗證功能旨在滿足這些要求。

適用于 SystemC/C++ 設(shè)計360 DV 簡介

西門子 EDA 是西門子數(shù)字化工業(yè)軟件的一部分,其針對 SystemC/C++ 代碼提供的設(shè)計驗證 (DV) 解決方案是 360 DV 形式化驗證產(chǎn)品線的一部分。它支持將廣泛的形式化技術(shù)應(yīng)用于以 C++ 或 SystemC 編寫的、具有不同時序和代碼抽象級別的設(shè)計組件。

適用于 SystemC/C++ 的 360 DV-Inspect 提供了一系列自動化結(jié)構(gòu)檢查、安全檢查和激活檢查,可將這些檢查應(yīng)用于設(shè)計,而無需手動創(chuàng)建斷言。這對于高層次綜合之前的設(shè)計代碼簽核特別有用。該產(chǎn)品包含對 SystemC/C++ 設(shè)計特別有用的檢查,如下所述。

適用于 SystemC/C++ 的 360 DV-Verify 是一款基于斷言的形式化驗證工具,它功能齊全,支持針對 SystemC/C++ 設(shè)計代碼測試綜合斷言。這些斷言可以使用簡單的 C 斷言語句編寫,也可以是完整的 SystemVerilog 斷言 (SVA),其中包含所有時間、并發(fā)結(jié)構(gòu)體。對 SystemC/C++ 設(shè)計運用時間斷言的能力是該技術(shù)的獨特功能。

33252ea8-4cdd-11f0-b715-92fbcf53809c.jpg

圖 2. SVA 配合 SystemC/C++ 設(shè)計使用

作為 360 DV 核心的西門子 EDA 形式化技術(shù)平臺由多個證明引擎組成,這些引擎利用一系列標準和專有算法來提供深入的代碼分析。與其他解決方案相比,它始終表現(xiàn)出高收斂度,另外還提供快速、高容量的操作。該平臺可以處理一系列語言,包括支持輕松設(shè)置和使用的功能。強大的調(diào)試環(huán)境為快速跟蹤設(shè)計或測試問題提供了一條清晰的途徑。

西門子 EDA 解決方案以支持形式靈活性而著稱,可用來解決一系列問題,而且同樣適用于 SystemC/C++ 設(shè)計。這些工具可以在高度交互模式下使用,方便用戶以“假設(shè)分析”的使用方式快速查看設(shè)計如何運行。它們可以構(gòu)成完整的指標驅(qū)動驗證解決方案的基石,并為 SoC 平臺上的 IP 集成提供一種有效的驗證機制。

自動形式化 SystemC/C++ 設(shè)計評估

360 DV 中的全自動功能也可以應(yīng)用于 SystemC/C++ 硬件設(shè)計代碼。在設(shè)計過程中盡早消除錯誤可以節(jié)省下游的許多工程設(shè)計時間,尤其是設(shè)計過程從微架構(gòu)抽象級別開始時更是如此。

360 DV-Inspect 提供一系列自動化檢查,這些檢查利用形式化引擎的強大能力對設(shè)計代碼進行深入的靜態(tài)分析,而無需手動編寫斷言。這種設(shè)計檢查技術(shù)基于代碼結(jié)構(gòu)分析運行場景,以尋找潛在的錯誤,因而遠遠超越了傳統(tǒng)的代碼檢查工具。安全檢查(例如越界訪問數(shù)組或狀態(tài)機死鎖)、激活檢查以及結(jié)構(gòu)分析(包括經(jīng)典的仿真和綜合操作失配問題),全都具備。

3330d302-4cdd-11f0-b715-92fbcf53809c.jpg

圖 3. SystemC/C++ 代碼中的死鎖檢查

此外,DV-Inspect 提供了一些特別適用于 SystemC 代碼的檢查。例如,檢查哪些寄存器已被顯式初始化很重要。SystemC 變量在仿真中會自動初始化,但 HLS 工具會忽略這些初始化。這會導(dǎo)致難以調(diào)試的仿真綜合失配問題。DV-Inspect 還檢查尚未被初始化的寄存器及未定義的操作或多個驅(qū)動器能否在設(shè)計中傳播 X(未知)值。SystemC 仿真中不存在未知值的概念,因此需要進行形式化分析以發(fā)現(xiàn)傳播問題。 SystemC 還缺乏非阻塞賦值,因此導(dǎo)致了順序仿真語義與硬件中的并行操作之間出現(xiàn)競爭條件和失配的情況。

DV-Inspect 可以找出許多仿真或 HLS 都不會進行檢查的問題,包括特定數(shù)據(jù)類型問題(例如定點運算) 導(dǎo)致的意外行為,以及與并發(fā)相關(guān)的問題(例如競爭條件評估)。DV-Inspect 提供有價值的綜合前簽核,以節(jié)省整體開發(fā)時間和資源。

334179d2-4cdd-11f0-b715-92fbcf53809c.jpg

圖 4. 針對 SystemC/C++ 代碼的廣泛檢查

基于順序斷言的SystemC/C++ 驗證

360 DV-Verify 為 SystemC 和其他 SystemC/C++ 設(shè)計提供基于斷言的完整驗證解決方案。該工具接受大多數(shù) SystemC 函數(shù),允許針對一系列代碼抽象測試斷言,從事務(wù)級模型 (TLM) 到詳細 RTL,一直到網(wǎng)表,從幾乎無時序到周期精準的完整表示。

簡單的 ANSI C 斷言和全時、并發(fā) SystemVerilog 斷言 (SVA),均可配合 SystemC/C++ 設(shè)計使用。這種斷言描述的靈活性允許復(fù)用其他設(shè)計的現(xiàn)有斷言,或?qū)⑵溆米髂0?,以減少與新格式相關(guān)的學(xué)習(xí)開銷。它還支持一致的綜合前和綜合后流程,相同的斷言(如果編寫時考慮到流程)可以在 SystemC/C++ 業(yè)界標準模型及其 RTL 綜合后的衍生模型上復(fù)用。此外,針對 RTL 環(huán)境創(chuàng)建的驗證知識產(chǎn)權(quán) (VIP) 斷言集,例如總線協(xié)議驗證器,可以在 SystemC/C++ 代碼上復(fù)用。

這一獨特的能力支持順序斷言,后者可用于描述規(guī)范元素、預(yù)期的設(shè)計特征和要針對抽象代碼進行測試的故障條件。這樣,工程師便可在 SystemC/C++ 級別處理其業(yè)界標準設(shè)計,確保設(shè)計在綜合之前符合規(guī)范。它在可針對不同微架構(gòu)選項實施規(guī)范的級別上實現(xiàn)了全面的形式化解決方案。最后,它消除了使用綜合后的 RTL 代碼調(diào)試 SystemC/C++ 設(shè)計的間接性。

形式化技術(shù)已成為硬件設(shè)計功能驗證的關(guān)鍵組成部分。為了提高抽象級別并利用高層次綜合,許多設(shè)計人員已轉(zhuǎn)向 SystemC/C++。這種方法加快了硬件設(shè)計過程,但為了相應(yīng)地減少驗證時間,必須把重點放在 SystemC/C++ 源代碼上,而不是 HLS 后的 RTL 設(shè)計上。適用于 SystemC/C++ 的 360 DV 解決方案滿足這一需求,為高級設(shè)計提供自動化設(shè)計檢查和基于斷言的全面驗證。HLS 用戶可以充分利用先進的形式化驗證方法,西門子 EDA 解決方案使這一切成為可能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 元器件
    +關(guān)注

    關(guān)注

    113

    文章

    4821

    瀏覽量

    94712
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5430

    瀏覽量

    123911
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2118

    瀏覽量

    74960
  • systemc
    +關(guān)注

    關(guān)注

    2

    文章

    26

    瀏覽量

    14731

原文標題:適用于 SystemC/C++ 驗證的形式化解決方案

文章出處:【微信號:Mentor明導(dǎo),微信公眾號:西門子EDA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    形式化方法的工程化

    形式化工程方法,是以軟件形式化方法理論為基礎(chǔ),以系統(tǒng)化的工程方法引導(dǎo)工業(yè)界工程人員構(gòu)建高質(zhì)量的軟件模型,用以引導(dǎo)后續(xù)的代碼編寫和相關(guān)測試分析。并選取了工業(yè)實際場景中的某操作系統(tǒng)的調(diào)度系統(tǒng)的形式化驗證
    的頭像 發(fā)表于 03-24 11:01 ?1873次閱讀
    <b class='flag-5'>形式化</b>方法的工程化

    SystemC的隨機驗證過程是怎樣的?

    SystemC是基于C++的系統(tǒng)級設(shè)計語言,兼具描述硬件電路模型和面向?qū)ο蟮某橄竽芰Α?/div>
    的頭像 發(fā)表于 08-07 09:43 ?1467次閱讀
    <b class='flag-5'>SystemC</b>的隨機<b class='flag-5'>驗證</b>過程是怎樣的?

    EDA形式化驗證漫談:仿真之外,驗證之內(nèi)

    “在未來五年內(nèi)仿真將逐漸被淘汰,僅用于子系統(tǒng)和系統(tǒng)級驗證。與此同時,形式化驗證方法已經(jīng)開始處理一些系統(tǒng)級任務(wù)。隨著技術(shù)發(fā)展,更多Formal相關(guān)的商業(yè)標準化會推出?!?Intel?fellow
    的頭像 發(fā)表于 09-01 09:10 ?1775次閱讀

    《電子發(fā)燒友電子設(shè)計周報》聚焦硬科技領(lǐng)域核心價值 第17期:2025.06.23--2025.06.27

    設(shè)計避坑指南 10、ADI方案-- 48V/54V電壓轉(zhuǎn)換為0.8V內(nèi)核電壓的解決方案 11、西門子EDA 方案-- 適用于SystemC/
    發(fā)表于 06-27 18:24

    如何在ModelSim下用SystemC的做驗證?

    C++代碼的驗證部分可以幾乎不加改變的用于基于SystemC驗證模塊的設(shè)計,我們?yōu)槭裁催€要費力的用SystemVerilog重新寫一遍
    發(fā)表于 03-01 11:30

    適用于 bq27421 的全套評估系統(tǒng)解決方案技術(shù)資料下載

    描述該參考設(shè)計是適用于 bq27421 的全套評估系統(tǒng)解決方案。該解決方案中包括一個帶有集成式電流感應(yīng)電阻器的 bq27421 電路模塊。使用此設(shè)計需要配備用于電量監(jiān)測計接口的 EV
    發(fā)表于 07-24 07:07

    ACRN 之InterruptWindow功能正確性形式化驗證

    重磅推薦|ACRN 之InterruptWindow功能正確性形式化驗證
    發(fā)表于 06-18 16:04

    適用于患者監(jiān)測系統(tǒng)的解決方案

    適用于患者監(jiān)測系統(tǒng)的潛在解決方案
    發(fā)表于 02-26 07:29

    字符分割部分適用于所有的C/C++的代碼嗎

    字符分割部分適用于所有的C/C++的代碼嗎?C/C++的代碼包括哪些?
    發(fā)表于 12-17 07:37

    SystemC驗證方法和流程介紹

    SystemC 是由C++衍生而來,本質(zhì)是在C++的基礎(chǔ)上添加了硬件擴展庫和仿真核,這使SystemC 可以在不同抽象級對復(fù)雜電子系統(tǒng)建模。
    發(fā)表于 07-19 11:55 ?5364次閱讀
    <b class='flag-5'>SystemC</b> 的<b class='flag-5'>驗證</b>方法和流程介紹

    VaaS平臺已支持區(qū)塊鏈平臺智能合約的形式化驗證

    VaaS形式化驗證平臺,采用了多種形式化驗證方法,具有驗證效率高、自動化程度高、人工參與度低、易于使用、支持多個合約開發(fā)語言、可支持大容量區(qū)塊鏈底層平臺的形式化驗證等優(yōu)點。
    發(fā)表于 12-14 10:18 ?1225次閱讀

    適用于Blackfin處理器的VisualDSP++<sup>?</sup>5.0 C/C++編譯器和庫手冊

    適用于Blackfin處理器的VisualDSP++?5.0 C/C++編譯器和庫手冊
    發(fā)表于 05-11 11:53 ?10次下載
    <b class='flag-5'>適用于</b>Blackfin處理器的VisualDSP++<sup>?</sup>5.0 <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器和庫手冊

    適用于運輸系統(tǒng)的創(chuàng)新電力解決方案

    適用于運輸系統(tǒng)的創(chuàng)新電力解決方案
    發(fā)表于 05-18 20:12 ?5次下載
    <b class='flag-5'>適用于</b>運輸系統(tǒng)的創(chuàng)新電力<b class='flag-5'>解決方案</b>

    Formal Verification:形式驗證的分類、發(fā)展、適用場景

    形式驗證分為兩大分支:Equivalence Checking 等價檢查 和 Property Checking 屬性檢查 形式驗證初次被EDA工具采用,可以追溯到90年代,被應(yīng)
    的頭像 發(fā)表于 02-03 11:12 ?3448次閱讀

    從小眾走向普及,形式化驗證對系統(tǒng)級芯片開發(fā)有多重要?

    首選。據(jù)估計,在未來五年內(nèi)仿真將逐漸被取代,僅用于子系統(tǒng)和系統(tǒng)級驗證。與此同時,形式化驗證方法已經(jīng)開始處理一些系統(tǒng)級任務(wù),隨著技術(shù)的不斷創(chuàng)新,形式化驗證將逐步開始處理更多系統(tǒng)級任務(wù)。
    的頭像 發(fā)表于 04-21 19:35 ?875次閱讀
    從小眾走向普及,<b class='flag-5'>形式化驗證</b>對系統(tǒng)級芯片開發(fā)有多重要?