《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 微波|射頻 > 設(shè)計(jì)應(yīng)用 > 基于覆蓋率驅(qū)動(dòng)的高頻RFID芯片驗(yàn)證平臺(tái)設(shè)計(jì)
基于覆蓋率驅(qū)動(dòng)的高頻RFID芯片驗(yàn)證平臺(tái)設(shè)計(jì)
2016年電子技術(shù)應(yīng)用第4期
王國(guó)軍,景為平
南通大學(xué) 江蘇省專用集成電路設(shè)計(jì)重點(diǎn)實(shí)驗(yàn)室,江蘇 南通226019
摘要: 提出了一種采用覆蓋率驅(qū)動(dòng)激勵(lì)產(chǎn)生算法的驗(yàn)證技術(shù),設(shè)計(jì)了一套完整的驗(yàn)證平臺(tái),成功地驗(yàn)證了一款高頻RFID(射頻識(shí)別技術(shù))芯片。該技術(shù)的核心思想是在驗(yàn)證過(guò)程中,通過(guò)分析功能覆蓋率和代碼覆蓋率,得出未覆蓋的邊界條件,進(jìn)而修改激勵(lì)產(chǎn)生的約束條件,產(chǎn)生測(cè)試激勵(lì),驗(yàn)證邊界條件,以有效地提高驗(yàn)證覆蓋率?,F(xiàn)該驗(yàn)證平臺(tái)所驗(yàn)證的芯片已經(jīng)成功流片,且測(cè)試性能優(yōu)異。
中圖分類號(hào): TN492
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.04.008
中文引用格式: 王國(guó)軍,景為平. 基于覆蓋率驅(qū)動(dòng)的高頻RFID芯片驗(yàn)證平臺(tái)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2016,42(4):28-30,34.
英文引用格式: Wang Guojun,Jing Weiping. Design of verification platform for high frequency RFID chip based on coverage-driven[J].Application of Electronic Technique,2016,42(4):28-30,34.
Design of verification platform for high frequency RFID chip based on coverage-driven
Wang Guojun,Jing Weiping
Jiangsu Key Laboratory of ASIC Design,Nantong University,Nantong 226019,China
Abstract: This paper presents a verification technology based on coverage-driven stimulus generation algorithm. A completed verification platform is given, and applied to a high frequency RFID(Radio Frequency Identification) chip successfully. The main idea of this technology is obtaining the boundary conditions and modifying the constraint of stimulus generation by analyzing function coverage and code coverage, and then using the new stimulus to verify the boundary conditions. So the coverage is up. After taping out, the verified chip by this verification platform was be tested. The test shows that all function are correct and performance is excellent.
Key words : coverage-driven;verification technology;stimulus generation algorithm

0 引言

    隨著芯片設(shè)計(jì)復(fù)雜度的不斷提升,驗(yàn)證工作占據(jù)了越來(lái)越多的開(kāi)發(fā)時(shí)間。為了能夠盡快將產(chǎn)品推向市場(chǎng),有效的驗(yàn)證方法就顯得越來(lái)越重要。所謂有效的驗(yàn)證方法,即能夠在較短的時(shí)間內(nèi),利用精確的測(cè)試激勵(lì),盡可能驗(yàn)證芯片的正確性和發(fā)現(xiàn)設(shè)計(jì)中深層次的設(shè)計(jì)缺陷。所以如何產(chǎn)生精確高效的測(cè)試激勵(lì)就成為了驗(yàn)證工作當(dāng)中的關(guān)鍵挑戰(zhàn)[1]。

1 覆蓋率驅(qū)動(dòng)激勵(lì)產(chǎn)生算法的驗(yàn)證技術(shù)

    根據(jù)測(cè)試激勵(lì)產(chǎn)生的方法,可以將測(cè)試激勵(lì)分為定向測(cè)試激勵(lì)和隨機(jī)測(cè)試激勵(lì)。定向測(cè)試激勵(lì)是驗(yàn)證工程師針對(duì)被測(cè)設(shè)計(jì)(Design Under Test,DUT)期望驗(yàn)證的功能點(diǎn)進(jìn)行人工編寫(xiě)的激勵(lì),這種方法直接、準(zhǔn)確,但是對(duì)于較大規(guī)模的設(shè)計(jì)來(lái)說(shuō),工程師很難發(fā)現(xiàn)所有的邊界條件。而隨機(jī)測(cè)試激勵(lì)可以容易地產(chǎn)生大量的測(cè)試激勵(lì),且可以擊中一些工程師很難發(fā)現(xiàn)的邊界條件,但是隨機(jī)測(cè)試激勵(lì)容易產(chǎn)生測(cè)試激勵(lì)冗余,這造成了大量的驗(yàn)證資源浪費(fèi)[2]。隨著驗(yàn)證技術(shù)的發(fā)展,受約束的隨機(jī)激勵(lì)越來(lái)越受驗(yàn)證工程師親睞。目前,各大EDA公司的仿真器基本均支持約束求解器。驗(yàn)證工程師根據(jù)需求編寫(xiě)約束,約束求解器將會(huì)對(duì)驗(yàn)證工程師所做的約束進(jìn)行求解,然后產(chǎn)生滿足約束的隨機(jī)激勵(lì)。

    本文使用VMM(Verification Methodology Manual)驗(yàn)證方法學(xué),設(shè)計(jì)了一個(gè)含激勵(lì)產(chǎn)生算法的驗(yàn)證平臺(tái)。該激勵(lì)產(chǎn)生算法以覆蓋率為導(dǎo)向,在驗(yàn)證過(guò)程中,通過(guò)對(duì)覆蓋率的分析,發(fā)現(xiàn)未驗(yàn)證的邊界條件,及時(shí)調(diào)整激勵(lì)的產(chǎn)生,以獲得更為滿意的覆蓋率。

2 DUT說(shuō)明

    該驗(yàn)證平臺(tái)的DUT為一款滿足國(guó)際標(biāo)準(zhǔn)ISO/IEC-15693協(xié)議的高頻RFID芯片,該芯片包含模擬電路、存儲(chǔ)器、數(shù)字電路3個(gè)部分。其中,模擬電路負(fù)責(zé)射頻信號(hào)的解調(diào)、調(diào)制以及提供芯片工作的時(shí)鐘和電源。存儲(chǔ)器負(fù)責(zé)存儲(chǔ)芯片信息。數(shù)字電路負(fù)責(zé)芯片的編解碼、邏輯控制以及與存儲(chǔ)器交互數(shù)據(jù)。該驗(yàn)證平臺(tái)將主要對(duì)數(shù)字電路部分的功能進(jìn)行仿真驗(yàn)證。

    支持ISO/IEC-15693協(xié)議的閱讀器(Vicinity Coupling Device,VCD)和標(biāo)簽芯片(Vicinity Card,VICC)的通信采用命令幀交互。表1為VCD到VICC的請(qǐng)求命令幀格式,幀格式包括幀頭SOF(Start of Frame),請(qǐng)求標(biāo)志(Flag),命令碼(Command),若干參數(shù)(Parameter)與數(shù)據(jù)(Data),CRC(Cyclic Redundancy Check)校驗(yàn),最后是幀尾EOF(End of Frame)。根據(jù)每條命令的不同,幀格式中的參數(shù)和數(shù)據(jù)也不同。VICC到VCD的響應(yīng)幀格式比請(qǐng)求幀格式中少了命令碼,其余部分格式相同[3]。

wdz2-b1.gif

3 驗(yàn)證平臺(tái)

    針對(duì)DUT,采用VMM驗(yàn)證方法學(xué)的層次化思想[4],設(shè)計(jì)出該驗(yàn)證平臺(tái)的整體架構(gòu)。同時(shí),在該驗(yàn)證平臺(tái)中使用了本文所提出的以覆蓋率驅(qū)動(dòng)激勵(lì)產(chǎn)生算法的驗(yàn)證技術(shù),并將驗(yàn)證平臺(tái)應(yīng)用于一款高頻RFID芯片驗(yàn)證,通過(guò)驗(yàn)證結(jié)果,檢驗(yàn)該驗(yàn)證技術(shù)的可行性和優(yōu)越性。本文著重介紹該驗(yàn)證平臺(tái)的激勵(lì)產(chǎn)生算法和覆蓋率分析方法。

3.1 激勵(lì)產(chǎn)生算法

    對(duì)于測(cè)試激勵(lì)的產(chǎn)生,該驗(yàn)證平臺(tái)設(shè)計(jì)了一套激勵(lì)產(chǎn)生算法。該算法依據(jù)覆蓋率統(tǒng)計(jì)分析,對(duì)激勵(lì)的產(chǎn)生做出決策,即通過(guò)對(duì)覆蓋率報(bào)告分析,算法決策出下一步該如何產(chǎn)生測(cè)試激勵(lì)。該算法中含有一個(gè)序列個(gè)數(shù)計(jì)數(shù)器,用來(lái)計(jì)數(shù)一輪測(cè)試中激勵(lì)的序列個(gè)數(shù)。對(duì)于單命令測(cè)試,序列個(gè)數(shù)初始值為1,當(dāng)進(jìn)行多命令場(chǎng)景測(cè)試時(shí),就需要一連串的測(cè)試激勵(lì)產(chǎn)生,這時(shí)候序列個(gè)數(shù)初始值將會(huì)大于1。

    算法的流程圖如圖1所示。驗(yàn)證平臺(tái)啟動(dòng)復(fù)位后,激勵(lì)產(chǎn)生器通過(guò)編寫(xiě)的隨機(jī)激勵(lì)約束,產(chǎn)生測(cè)試激勵(lì),隨后檢查產(chǎn)生的測(cè)試激勵(lì)是否為期望的有效測(cè)試激勵(lì),如果不是,則重新產(chǎn)生,否則將測(cè)試激勵(lì)送給事務(wù)處理器,由事務(wù)處理器將測(cè)試激勵(lì)建模為事務(wù)級(jí)的命令幀,隨后序列個(gè)數(shù)減去1。當(dāng)序列個(gè)數(shù)不小于1時(shí),說(shuō)明為場(chǎng)景測(cè)試,還需要繼續(xù)產(chǎn)生激勵(lì),于是激勵(lì)產(chǎn)生器將會(huì)繼續(xù)產(chǎn)生測(cè)試激勵(lì),并送給事務(wù)處理器建模。否則檢驗(yàn)器將會(huì)做響應(yīng)檢查,一旦發(fā)現(xiàn)錯(cuò)誤,驗(yàn)證平臺(tái)將會(huì)記錄激勵(lì),并Dump出波形,產(chǎn)生Bug日志文件,待設(shè)計(jì)人員修復(fù)Bug后重新驗(yàn)證。如果檢驗(yàn)器檢驗(yàn)正確無(wú)誤,驗(yàn)證平臺(tái)將會(huì)自動(dòng)收集驗(yàn)證結(jié)果,形成驗(yàn)證日志文件,并收集覆蓋率,產(chǎn)生覆蓋率報(bào)告。驗(yàn)證人員分析覆蓋率,如果覆蓋率沒(méi)有滿足要求,則根據(jù)報(bào)告中未覆蓋的邊界條件,修改激勵(lì)約束,以增加測(cè)試用例,并繼續(xù)驗(yàn)證,直到得到滿意的覆蓋率,驗(yàn)證結(jié)束。

wdz2-t1.gif

3.2 覆蓋率分析

    由于本驗(yàn)證平臺(tái)采用完全黑盒的驗(yàn)證方法,只能對(duì)DUT系統(tǒng)的頂層信號(hào),即芯片唯一的響應(yīng)信號(hào)進(jìn)行驗(yàn)證,所以此處引入斷言覆蓋率分析的意義不大。因此該驗(yàn)證平臺(tái)著重對(duì)功能覆蓋率和代碼覆蓋率進(jìn)行了分析。通過(guò)對(duì)二者的分析,可以有效地檢驗(yàn)測(cè)試激勵(lì)是否完備,以及功能設(shè)計(jì)是否完善,以此來(lái)判斷是否需要增加新的測(cè)試激勵(lì),以及如何產(chǎn)生新的激勵(lì)。

3.2.1 功能覆蓋率分析

    功能覆蓋率是驗(yàn)證工程師從設(shè)計(jì)意圖的角度來(lái)衡量驗(yàn)證的完備性,所以也被稱為規(guī)范覆蓋率,它可以檢測(cè)到設(shè)計(jì)中存在的缺陷[5]。因而在收集功能覆蓋率時(shí),通過(guò)對(duì)驗(yàn)證的測(cè)試點(diǎn)進(jìn)行分析,羅列功能點(diǎn),編寫(xiě)功能覆蓋組以及功能覆蓋點(diǎn),如命令幀中的Flag、Command、Parameter等都需要編寫(xiě)覆蓋組。此處以Command為例,在該DUT中,除了測(cè)試命令外,共有25條有效命令,所以該驗(yàn)證平臺(tái)為這25條命令分別設(shè)置了25個(gè)倉(cāng)(bins),所有測(cè)試命令歸為一個(gè)倉(cāng),其余所有的非法命令歸為一個(gè)倉(cāng),這樣就總共就為Command建立了27個(gè)倉(cāng)。功能覆蓋代碼編寫(xiě)如下[4]

    covergroup covport;

            coverpoint dri.Command{

                bins Inventory={8’h01};

    bins Stay_quiet={8’h02};

    bins Rd_sgl_blk={8’h20};

    bins Wt_sgl_blk={8’h21};

    bins Lock_blk={8’h22};

    ……

    bins Error_cmd=default;

        }

    endgroup

    在驗(yàn)證收集覆蓋率后,可以在覆蓋率報(bào)告中查看倉(cāng)分組情況和倉(cāng)命中情況,如圖2所示。當(dāng)Command的每個(gè)倉(cāng)都被命中時(shí),就說(shuō)明對(duì)于Command的覆蓋達(dá)到了100%,該測(cè)試點(diǎn)得到了完善的測(cè)試。如果有未被覆蓋的倉(cāng),則通過(guò)修改約束,增加測(cè)試用例,最終使得功能覆蓋率達(dá)到100%。

wdz2-t2.gif

    其余的功能點(diǎn)也通過(guò)同樣的方式進(jìn)行覆蓋分析,不斷完善,最終得到了如圖3所示的功能覆蓋率報(bào)告,從圖中可以看出,總功能覆蓋率達(dá)到了100%,符合預(yù)期效果。這說(shuō)明設(shè)計(jì)期望的功能點(diǎn)均被驗(yàn)證覆蓋到,且功能設(shè)計(jì)正確。

wdz2-t3.gif

3.2.2 代碼覆蓋率分析

    代碼覆蓋率是驗(yàn)證工程師從設(shè)計(jì)代碼的角度來(lái)衡量設(shè)計(jì)被驗(yàn)證的充分性。代碼覆蓋率的收集不需要特殊的程序編寫(xiě),只需要對(duì)仿真器參數(shù)做必要的設(shè)置即可。通過(guò)對(duì)代碼覆蓋率的分析,可以有效地判斷設(shè)計(jì)中還有哪些沒(méi)有被驗(yàn)證到,以此來(lái)增加測(cè)試激勵(lì),充分驗(yàn)證設(shè)計(jì)。圖4為代碼覆蓋率報(bào)告,從報(bào)告中可以清楚地看到各種覆蓋率以及總代碼覆蓋率的覆蓋情況。

wdz2-t4.gif

    覆蓋率報(bào)告中塊(block)覆蓋率包含了語(yǔ)句(statement)覆蓋率和分支(branch)覆蓋率。其中語(yǔ)句覆蓋率指的是設(shè)計(jì)代碼語(yǔ)句被執(zhí)行過(guò)占總代碼語(yǔ)句數(shù)的比例。分支覆蓋率體現(xiàn)的是if、case等布爾表達(dá)式是否在真和假的情況下各執(zhí)行一次。所以當(dāng)塊覆蓋率為100%時(shí),說(shuō)明所有的設(shè)計(jì)代碼都被執(zhí)行過(guò)了。如果沒(méi)有達(dá)到100%,則可以通過(guò)覆蓋率報(bào)告,查看哪些代碼語(yǔ)句或者哪些分支情況沒(méi)有被執(zhí)行過(guò),以此來(lái)完善測(cè)試激勵(lì),驗(yàn)證邊界條件。上圖報(bào)告中塊覆蓋率為98%,接近100%。

    表達(dá)式(expression)覆蓋率用來(lái)檢查布爾表達(dá)式驗(yàn)證的充分性。如if(chk_lock_en || easardmode_en)判斷條件中,兩個(gè)變量為真和假均被執(zhí)行過(guò),這樣它的覆蓋率就為100%。在報(bào)告中,可以看到表達(dá)式覆蓋率較其他幾項(xiàng)偏低,因?yàn)橛性S多情況在芯片的工作當(dāng)中根本無(wú)法遇到,所以表達(dá)式覆蓋率很難進(jìn)一步提高,但是對(duì)于芯片設(shè)計(jì)的功能來(lái)說(shuō),已經(jīng)完全得到驗(yàn)證。

    翻轉(zhuǎn)(toggle)覆蓋率指的是設(shè)計(jì)中的寄存器0和1的跳變情況,只有雙向均做了跳變,覆蓋率才達(dá)到100%。從報(bào)告中可以看出,翻轉(zhuǎn)覆蓋率也達(dá)到了較高的水平。

    狀態(tài)機(jī)(fsm)覆蓋率用于統(tǒng)計(jì)在驗(yàn)證過(guò)程中狀態(tài)機(jī)發(fā)生了哪些跳轉(zhuǎn),這種分析可以防止某些狀態(tài)在整個(gè)驗(yàn)證過(guò)程中從未發(fā)生跳轉(zhuǎn),從而造成設(shè)計(jì)隱患。從報(bào)告中可以看出,狀態(tài)機(jī)覆蓋率為100%,狀態(tài)機(jī)得到了充分驗(yàn)證。

    在實(shí)際驗(yàn)證過(guò)程中,通過(guò)以上分析方法,不斷調(diào)整激勵(lì)約束,直到最終代碼覆蓋率達(dá)到了96%,滿足預(yù)期效果。

3.3 驗(yàn)證平臺(tái)最終驗(yàn)證結(jié)果

    依據(jù)激勵(lì)產(chǎn)生算法,通過(guò)對(duì)功能覆蓋率和代碼覆蓋率的結(jié)合分析,不斷修改激勵(lì)產(chǎn)生約束,最終在較短的時(shí)間內(nèi),獲得了滿意的功能覆蓋率和代碼覆蓋率?,F(xiàn)該驗(yàn)證平臺(tái)所驗(yàn)證的芯片已經(jīng)成功流片,在對(duì)流片后的芯片測(cè)試中,芯片的各項(xiàng)功能正確,且性能優(yōu)異,完全能夠滿足市場(chǎng)應(yīng)用的要求。

4 結(jié)論

    通過(guò)采用VMM驗(yàn)證方法學(xué),以覆蓋率驅(qū)動(dòng)激勵(lì)產(chǎn)生算法的驗(yàn)證平臺(tái)與傳統(tǒng)驗(yàn)證平臺(tái)相比,具備更高的層次化。同時(shí),本文所提出的驗(yàn)證技術(shù)為準(zhǔn)確判定驗(yàn)證的完備性提供了一個(gè)有效的衡量標(biāo)準(zhǔn)。所以,驗(yàn)證平臺(tái)采用的驗(yàn)證技術(shù)可以大幅度提高驗(yàn)證工作的效率和質(zhì)量,為芯片的一次流片成功率提供了有力的保障。同時(shí)該驗(yàn)證技術(shù)也可以為其它工程項(xiàng)目的驗(yàn)證提供很好的借鑒意義。

參考文獻(xiàn)

[1] Janick Bergeron,Eduard Cerny,Alan Hunter,et al.Verification methodology manual for system verilog[M].北京:北京航空航空大學(xué)出版社,2007:1-3.

[2] 鐘文楓.SystemVerilog與功能驗(yàn)證[M].北京:機(jī)械工業(yè)出版社,2010(8):118-119.

[3] Identification cards-Contactless integrated circuit cards-Vicinity cards-Part 3:Anti-collision and transmission protocol[S].ISO/IEC 15693-3,2000-03-10.

[4] VMM Standard Library User Guide, version D-2009.12,December 2009.

[5] 克里斯·斯皮爾.System Verilog驗(yàn)證測(cè)試平臺(tái)編寫(xiě)指南[M].北京:科學(xué)出版社,2009:248-250.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。