編寫 HDL 通常是 FPGA 開(kāi)發(fā)中耗時(shí)最少的部分,最具挑戰(zhàn)性和最耗時(shí)的部分可能是驗(yàn)證。根據(jù)最終應(yīng)用程序,驗(yàn)證可能非常簡(jiǎn)單,也可能非常復(fù)雜,簡(jiǎn)單的話只需對(duì)大多數(shù)功能進(jìn)行檢查或執(zhí)行完全獨(dú)立開(kāi)發(fā)的測(cè)試平臺(tái)來(lái)演示功能和代碼覆蓋率。
功能和代碼覆蓋率在驗(yàn)證中很重要,因?yàn)樗鼈兌继峁┯嘘P(guān)設(shè)計(jì)及其驗(yàn)證的不同方面的信息。理想情況下,我們希望兩者都能達(dá)到 100%。僅其中一項(xiàng)達(dá)到 100% 表明我們還有進(jìn)一步驗(yàn)證要做。
以下是兩者的常見(jiàn)定義:
代碼覆蓋率——是一種通過(guò)計(jì)算測(cè)試過(guò)程中被執(zhí)行的源代碼占全部源代碼的比例,進(jìn)而間接度量軟件質(zhì)量的方法。例如,它可以指示是否遍歷所有分支和語(yǔ)句(如果切換了所有觸發(fā)器)。
功能覆蓋率 – 提供有關(guān)測(cè)試平臺(tái)覆蓋被測(cè)單元功能行為的程度的信息。為了實(shí)現(xiàn)這一點(diǎn),開(kāi)發(fā)人員/驗(yàn)證工程師必須定義覆蓋組和覆蓋點(diǎn)。
代碼覆蓋率和功能覆蓋率之間的區(qū)別在于,功能覆蓋率需要使用需求。
當(dāng)然,代碼和功能覆蓋率都需要規(guī)劃代碼設(shè)計(jì)。代碼覆蓋率可能有一些限制,因?yàn)樗鼰o(wú)法識(shí)別缺失的功能,也無(wú)法識(shí)別是否已解決所有可能的邊界/極端情況值。代碼覆蓋率也不關(guān)心事件的順序。這就是功能覆蓋發(fā)揮作用的地方,因?yàn)樗梢詼y(cè)試功能聲明。
通常,代碼和功能覆蓋率需要昂貴的仿真工具,但是,通過(guò) Vivado 2021.1 的 Vivado 仿真器就可以實(shí)現(xiàn)。使用 Vivado 時(shí),開(kāi)發(fā)人員能夠驗(yàn)證其設(shè)計(jì)并確保 RTL 功能符合要求。
對(duì)于代碼覆蓋率,我們需要在項(xiàng)目設(shè)置中的“仿真”選項(xiàng)卡和細(xì)化設(shè)置下做的第一件事就是設(shè)置覆蓋類型。在Vivado中我們可以設(shè)置以下選項(xiàng):
Line / Statement (s) 行/語(yǔ)句
Branch (b) 分支
Condition (c) 條件
Toggle (t) 切換
我們還可以定義覆蓋率報(bào)告名稱和覆蓋率目錄的位置。
運(yùn)行仿真結(jié)束時(shí)生成覆蓋信息。將能夠在elaboration設(shè)置中指定的位置看到 codeCov 目錄。
為了創(chuàng)建功能覆蓋,我們需要在 RTL 內(nèi)創(chuàng)建覆蓋組。
這是獲取報(bào)告的數(shù)據(jù)庫(kù)。我們需要在 Vivado 中進(jìn)行更多處理,將數(shù)據(jù)庫(kù)轉(zhuǎn)換為報(bào)告。
如果想了解 Vivado 仿真器的功能和代碼覆蓋率,最好的起點(diǎn)是UG937 Vivado 設(shè)計(jì)套件教程:邏輯仿真。
這提供了幾個(gè)設(shè)計(jì)示例,可用于測(cè)試 Vivado 仿真器功能的不同方面,包括代碼/功能覆蓋范圍以及 UVM 支持。
功能和代碼覆蓋率示例基于 AXI VIP 參考設(shè)計(jì)。完成本教程并添加覆蓋組將提供功能和代碼覆蓋率。
仿真完成后,我們需要運(yùn)行 xcrg 命令來(lái)創(chuàng)建 HTML 報(bào)告。
生成的 HTML 報(bào)告可以在任何瀏覽器中打開(kāi)
單擊組按鈕將打開(kāi)有關(guān)覆蓋范圍組的詳細(xì)信息,在本示例中這比較簡(jiǎn)單。
運(yùn)行代碼覆蓋率轉(zhuǎn)換,可以看到生成的代碼覆蓋率報(bào)告。
單擊右上角文件將顯示每個(gè)文件的結(jié)果。
總而言之,Vivado 仿真器的功能還是比較強(qiáng)大的。使用這些功能將幫助開(kāi)發(fā)人員創(chuàng)建最佳設(shè)計(jì),并有望減少調(diào)試硬件所花費(fèi)的時(shí)間。
審核編輯:劉清
-
仿真器
+關(guān)注
關(guān)注
14文章
1019瀏覽量
83884 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59917 -
Vivado
+關(guān)注
關(guān)注
19文章
815瀏覽量
66801 -
FPGA開(kāi)發(fā)板
+關(guān)注
關(guān)注
10文章
123瀏覽量
31573 -
HDL語(yǔ)言
+關(guān)注
關(guān)注
0文章
47瀏覽量
8942
原文標(biāo)題:【Vivado那些事兒】Vivado 仿真器和代碼覆蓋率
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論