精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

Vivado仿真器和代碼覆蓋率簡析

OpenFPGA ? 來源:OpenFPGA ? 2023-08-03 09:23 ? 次閱讀

編寫 HDL 通常是 FPGA 開發中耗時最少的部分,最具挑戰性和最耗時的部分可能是驗證。根據最終應用程序,驗證可能非常簡單,也可能非常復雜,簡單的話只需對大多數功能進行檢查或執行完全獨立開發的測試平臺來演示功能和代碼覆蓋率。

功能和代碼覆蓋率在驗證中很重要,因為它們都提供有關設計及其驗證的不同方面的信息。理想情況下,我們希望兩者都能達到 100%。僅其中一項達到 100% 表明我們還有進一步驗證要做。

以下是兩者的常見定義:

代碼覆蓋率——是一種通過計算測試過程中被執行的源代碼占全部源代碼的比例,進而間接度量軟件質量的方法。例如,它可以指示是否遍歷所有分支和語句(如果切換了所有觸發器)。

功能覆蓋率 – 提供有關測試平臺覆蓋被測單元功能行為的程度的信息。為了實現這一點,開發人員/驗證工程師必須定義覆蓋組和覆蓋點。

代碼覆蓋率和功能覆蓋率之間的區別在于,功能覆蓋率需要使用需求。

當然,代碼和功能覆蓋率都需要規劃代碼設計。代碼覆蓋率可能有一些限制,因為它無法識別缺失的功能,也無法識別是否已解決所有可能的邊界/極端情況值。代碼覆蓋率也不關心事件的順序。這就是功能覆蓋發揮作用的地方,因為它可以測試功能聲明。

通常,代碼和功能覆蓋率需要昂貴的仿真工具,但是,通過 Vivado 2021.1 的 Vivado 仿真器就可以實現。使用 Vivado 時,開發人員能夠驗證其設計并確保 RTL 功能符合要求。

對于代碼覆蓋率,我們需要在項目設置中的“仿真”選項卡和細化設置下做的第一件事就是設置覆蓋類型。在Vivado中我們可以設置以下選項:

Line / Statement (s) 行/語句

Branch (b) 分支

Condition (c) 條件

Toggle (t) 切換

6f3f4424-3195-11ee-9e74-dac502259ad0.png

我們還可以定義覆蓋率報告名稱和覆蓋率目錄的位置。

運行仿真結束時生成覆蓋信息。將能夠在elaboration設置中指定的位置看到 codeCov 目錄。

為了創建功能覆蓋,我們需要在 RTL 內創建覆蓋組。

6f697d20-3195-11ee-9e74-dac502259ad0.png

這是獲取報告的數據庫。我們需要在 Vivado 中進行更多處理,將數據庫轉換為報告。

如果想了解 Vivado 仿真器的功能和代碼覆蓋率,最好的起點是UG937 Vivado 設計套件教程:邏輯仿真。

這提供了幾個設計示例,可用于測試 Vivado 仿真器功能的不同方面,包括代碼/功能覆蓋范圍以及 UVM 支持。

功能和代碼覆蓋率示例基于 AXI VIP 參考設計。完成本教程并添加覆蓋組將提供功能和代碼覆蓋率。

仿真完成后,我們需要運行 xcrg 命令來創建 HTML 報告。

6fa0e38c-3195-11ee-9e74-dac502259ad0.png

生成的 HTML 報告可以在任何瀏覽器中打開

6fcbc9e4-3195-11ee-9e74-dac502259ad0.png

單擊組按鈕將打開有關覆蓋范圍組的詳細信息,在本示例中這比較簡單。

6ff1f204-3195-11ee-9e74-dac502259ad0.png

運行代碼覆蓋率轉換,可以看到生成的代碼覆蓋率報告。

701456d2-3195-11ee-9e74-dac502259ad0.png

單擊右上角文件將顯示每個文件的結果。

70409d6e-3195-11ee-9e74-dac502259ad0.png

總而言之,Vivado 仿真器的功能還是比較強大的。使用這些功能將幫助開發人員創建最佳設計,并有望減少調試硬件所花費的時間。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 仿真器
    +關注

    關注

    14

    文章

    1016

    瀏覽量

    83632
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59699
  • Vivado
    +關注

    關注

    19

    文章

    808

    瀏覽量

    66323
  • FPGA開發板
    +關注

    關注

    10

    文章

    122

    瀏覽量

    31484
  • HDL語言
    +關注

    關注

    0

    文章

    46

    瀏覽量

    8909

原文標題:【Vivado那些事兒】Vivado 仿真器和代碼覆蓋率

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    一文詳解Modelsim代碼覆蓋率功能使用

    作者:默宸? Modelsim代碼覆蓋率功能Code coverage,能報告出statement(語句)、branch(分支)、condition(條件)、expression(表達
    的頭像 發表于 12-09 11:45 ?5743次閱讀

    怎么用Vivado覆蓋率分析

    在做仿真的時候往往會去做代碼覆蓋率和功能覆蓋率的分析,來保證仿真是做的比較充分完備的。
    的頭像 發表于 01-03 12:34 ?1566次閱讀
    怎么用<b class='flag-5'>Vivado</b>做<b class='flag-5'>覆蓋率</b>分析

    嵌入式仿真平臺SkyEye的覆蓋率分析相關資料下載

    代碼執娜行覆蓋情況的功能,來檢測代碼中未執行覆蓋情況。在覆蓋率分析時需要分析嵌入式軟件的指令覆蓋率
    發表于 12-17 07:27

    關于SpinalHDL中的驗證覆蓋率收集簡單說明

    在做RTL仿真驗證時,覆蓋率收集往往是我們在驗證中需要注意的地方,本篇就SpinalHDL中的驗證覆蓋率收集做一個簡單說明。sbt配置在SpinalHDL里進行仿真驗證時,我們的待測試
    發表于 06-24 15:56

    重點厘清覆蓋率相關的概念以及在芯片開發流程中跟覆蓋率相關的事項

    。提個小建議,即使對SV相關語法很熟悉,實現覆蓋率模型的時候還是使用最直接和最簡單的方式。這樣可以提高可讀性,便于維護和評審。03 代碼覆蓋率代碼
    發表于 09-14 11:57

    Verilog代碼覆蓋率檢查

    Verilog代碼覆蓋率檢查是檢查驗證工作是否完全的重要方法,代碼覆蓋率(codecoverge)可以指示Verilog代碼描述的功能有多少
    發表于 04-29 12:35 ?8349次閱讀

    嵌入式代碼覆蓋率統計方法和經驗

    代碼覆蓋率是衡量軟件測試完成情況的指標,通常基于測試過程中已檢查的程序源代碼比例計算得出。代碼覆蓋率可以有效避免包含未測試
    的頭像 發表于 01-06 15:06 ?3126次閱讀
    嵌入式<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>統計方法和經驗

    嵌入式代碼覆蓋率如何進行統計有哪些方法和經驗

    代碼覆蓋率是衡量軟件測試完成情況的指標,通常基于測試過程中已檢查的程序源代碼比例 計算得出。代碼覆蓋率可以有效避免包含未測試
    的頭像 發表于 01-09 11:12 ?3030次閱讀
    嵌入式<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>如何進行統計有哪些方法和經驗

    統計嵌入式代碼覆蓋率的方法和經驗

    代碼覆蓋率是衡量軟件測試完成情況的指標,通常基于測試過程中已檢查的程序源代碼比例計算得出。代碼覆蓋率可以有效避免包含未測試
    的頭像 發表于 03-29 11:58 ?1907次閱讀
    統計嵌入式<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>的方法和經驗

    怎么才能寫出高覆蓋率的Verilog代碼

    設計的角度上來討論,如何寫出高覆蓋率的Verilog代碼。assign慎用按位運算邏輯, | ^ ^~和三目運算符,慎用。使用這樣的描述方式本身功能并沒有什么問題,而且寫起來很爽,但是在很多
    的頭像 發表于 06-01 10:13 ?2583次閱讀

    覆蓋率的Verilog代碼的編寫技巧

    設計工程師需要關心的主要有行覆蓋率(Block),條件覆蓋率(Expression),翻轉覆蓋率(Toggle),狀態機覆蓋率。本文從ASIC設計的角度上來討論,如何寫出高
    的頭像 發表于 05-26 17:30 ?4208次閱讀

    更好地測量代碼覆蓋率的 9 個技巧

    。? 測量測試覆蓋率,也稱為代碼覆蓋率,對于嵌入式系統變得越來越重要。在許多情況下,這些設備對安全或業務至關重要。流程基于物聯網設備,患者依賴工作起搏和智能胰島素泵,沒有嵌入式軟件就
    的頭像 發表于 07-14 15:58 ?2961次閱讀
    更好地測量<b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>的 9 個技巧

    代碼覆蓋率工具的重要性

    測試覆蓋率是軟件質量的重要指標,也是軟件維護的重要組成部分。它通過提供不同承保項目的數據來幫助評估測試的有效性。這種洞察力允許通過為未經測試的代碼定義新的測試用例來改進測試,從而提高代碼質量,最終增加
    的頭像 發表于 12-08 15:13 ?1434次閱讀
    <b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>工具的重要性

    EDA仿真驗證環境中的激勵、檢查和覆蓋率

    下圖是一個典型的EDA仿真驗證環境,其中主要的組件就是激勵生成、檢查和覆蓋率收集。
    的頭像 發表于 04-15 10:13 ?1660次閱讀

    代碼覆蓋率記錄

    為確保具體的產品(例如,醫療或航空電子市場)質量合格, 通常需要提供語句覆蓋與判定覆蓋認證證明。對于各種嵌 入式系統,規范要求高度優化的代碼需要實時測試。禁止 代碼插裝和運行時篡
    發表于 11-03 11:02 ?0次下載
    <b class='flag-5'>代碼</b><b class='flag-5'>覆蓋率</b>記錄