新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于VMM驗(yàn)證方法學(xué)的MCU驗(yàn)證環(huán)境

基于VMM驗(yàn)證方法學(xué)的MCU驗(yàn)證環(huán)境

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

MCU指令一旦開(kāi)始運(yùn)行,尤其是隨機(jī)指令,指令執(zhí)行不是順序,有時(shí)會(huì)跳入死循環(huán),很難設(shè)定仿真中止時(shí)間,這里設(shè)定了兩種機(jī)制,一種是仿真指令計(jì)數(shù),另一種就是根據(jù)覆蓋率分析,通過(guò)的覆蓋率分析函數(shù),可以動(dòng)態(tài)的得到覆蓋率情況,如果隨機(jī)指令跳入死循環(huán),覆蓋率就會(huì)一直維持不變,每次覆蓋率分析不變就進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)超過(guò)限定,就會(huì)讓ScoreBoard結(jié)束,通過(guò)環(huán)境對(duì)ScoreBoard的監(jiān)測(cè),一旦ScoreBoard停止,整個(gè)仿真也會(huì)停下。

4.7 功能覆蓋率模型

對(duì)于MCU這樣的DUT,代碼覆蓋率已經(jīng)不能夠代表驗(yàn)證進(jìn)度,而功能覆蓋率也只能代表相當(dāng)一部分待驗(yàn)證的功能,這里對(duì)于基本的memory,功能覆蓋率僅要求所有位都被指令操作過(guò),對(duì)于特殊寄存器SFR,需要指定某些特定位有相應(yīng)的“0”以及“1”狀態(tài)。代碼如下:

coverpoint memory[‘h87]

{

wildcard bins b87m_0_0 = {8’bxxxxxxx0};

wildcard bins b87m_1_0 = {8‘bxxxxxxx1};

wildcard bins b87m_0_1 = {8’bxxxxxx0x};

wildcard bins b87m_1_1 = {8‘bxxxxxx1x};

}

另外可以收集指令與指令參數(shù)的交叉覆蓋率分析,例如:

covergroup gen_port_cov;

coverpoint addr_mode;

coverpoint kind;

cross addr_mode, kind;

option.weight = 0;

endgroup

可以說(shuō)對(duì)于MCU這樣的DUT,功能點(diǎn)很難被完全描述,但是功能覆蓋率還是提供了一部分量化指標(biāo),供驗(yàn)證參考。

5 小結(jié)

本文實(shí)現(xiàn)了一個(gè)驗(yàn)證MCU指令的基于的驗(yàn)證環(huán)境,在這個(gè)環(huán)境里不但可以使用隨機(jī)的指令生成來(lái)輸入指令,也可以使用已有的應(yīng)用程序代碼,另外提供了 memory自檢環(huán)境,可以在每一條指令執(zhí)行后檢查memory值,從最全面角度保證每條指令執(zhí)行結(jié)果是正確的。此外還提供了功能覆蓋率模型,收集覆蓋率結(jié)果。這個(gè)環(huán)境可以被復(fù)用擴(kuò)展,基于這個(gè)MCU開(kāi)發(fā)的軟件都可以在這個(gè)驗(yàn)證環(huán)境中先運(yùn)行以保證軟件的正確性。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: SystemVerilog VMM

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉