湘潭大學(xué) 廖少華 黃嵩人
本文提出了一種基于IEEE1149.1標(biāo)準(zhǔn)的JTAG控制器模塊的驗(yàn)證平臺(tái),該平臺(tái)使用UVM(Universal Verification Methodology)驗(yàn)證方法學(xué)。設(shè)計(jì)了受約束的隨機(jī)激勵(lì)和定向激勵(lì)使得驗(yàn)證更加完備。驗(yàn)證結(jié)果表明,已覆蓋所有測(cè)試點(diǎn),達(dá)到驗(yàn)證目的。
隨著技術(shù)的發(fā)展,小小的芯片容納了大量的門電路,同時(shí)驗(yàn)證的要求也越來越高,UVM驗(yàn)證方法學(xué)便是在這樣的背景下,成為了現(xiàn)今主流的驗(yàn)證方法學(xué)。為了提高內(nèi)部電路測(cè)試的效率,1990年電氣和電子工程師協(xié)會(huì)(Institute of Electrical and Electronics Engineers,IEEE)制定了IEEE1149.1標(biāo)準(zhǔn),得到了廣泛的應(yīng)用。本文將采用UVM驗(yàn)證方法學(xué)對(duì)JTAG控制器模塊進(jìn)行完備的驗(yàn)證。
UVM即通用驗(yàn)證方法學(xué)。它包含了隨機(jī)測(cè)試激勵(lì)的生成、受約束的隨機(jī)測(cè)試的構(gòu)建、擁有面向?qū)ο蟮恼Z言特性、提供了與其他語言編寫程序的接口。驗(yàn)證工程師可以靈活地利用它提供的各種機(jī)制,來提高自己驗(yàn)證工作的效率。
典型的UVM驗(yàn)證平臺(tái)框架圖如圖1所示。
圖1 典型的UVM驗(yàn)證平臺(tái)框架圖
驗(yàn)證平臺(tái)的組件介紹如下:
driver:driver作為一個(gè)驅(qū)動(dòng)器,用于從sequencer中獲取transaction,進(jìn)而通過接口將transaction轉(zhuǎn)化為對(duì)DUT的時(shí)序激勵(lì)。
monitor:monitor作為一個(gè)收集器,與driver的作用相反,通過接口將DUT的響應(yīng)收集起來,送給下一模塊,完成數(shù)據(jù)的采集。
sequencer:sequencer與sequence協(xié)同工作,sequence需要掛載在sequencer上才能正常工作。sequencer產(chǎn)生transaction,而driver從sequence中獲取產(chǎn)生的transaction。
agent:將driver、monitor、sequencer打包,作為一個(gè)標(biāo)準(zhǔn)的驗(yàn)證環(huán)境單位。每一個(gè)agent代表的都是一種數(shù)據(jù)協(xié)議,包含了時(shí)序關(guān)系。
reference model:reference model用于完成與DUT一樣的功能,是待測(cè)設(shè)計(jì)的理想化輸出,它將接受與DUT一樣的激勵(lì),其結(jié)果將被傳輸?shù)絪coreboard進(jìn)行比較。
scoreboard:scoreboard是驗(yàn)證平臺(tái)的記分板,其中進(jìn)行待測(cè)設(shè)計(jì)的響應(yīng)與reference model響應(yīng)的比較,目的是為了對(duì)比標(biāo)準(zhǔn)輸出與實(shí)際輸出是否一致。
env:env是一個(gè)結(jié)構(gòu)化的模塊,為了考慮環(huán)境復(fù)用而存在的。其中可能包含多個(gè)agent與component,可以被更高層的env所容納,是結(jié)構(gòu)化與可復(fù)用性的一大體現(xiàn)。
test:test是驗(yàn)證環(huán)境建立的唯一入口,通過他可以運(yùn)行UVM的phase機(jī)制,除此之外,uvm_report的參數(shù)設(shè)置也在此模塊內(nèi)。
JTAG控制器可以分為三個(gè)部分,分別是:測(cè)試存取通道TAP(test access port)、TAP控制器、一組邊界掃描寄存器、指令寄存器和數(shù)據(jù)寄存器。如圖2所示。
圖2 JTAG控制器結(jié)構(gòu)框圖
測(cè)試存取通道TAP是由4個(gè)或5個(gè)(1個(gè)可選的復(fù)位信號(hào))端口來進(jìn)行信號(hào)的輸入輸出。他們分別為:TCLK、TMS、TDI、TDO、TRST。其中TRST(測(cè)試復(fù)位)是一個(gè)可選引腳,使用他的話可以將測(cè)試硬件復(fù)位至非侵入模式。
JTAG控制器模塊中,TAP控制器實(shí)現(xiàn)了不同狀態(tài)的控制與數(shù)據(jù)、指令的讀取輸出。TAP控制器是一個(gè)具有16個(gè)狀態(tài)的同步狀態(tài)機(jī),使用TCLK為時(shí)鐘輸入,TMS為控制輸入,通過發(fā)出控制信號(hào)來操作指令寄存器和各種數(shù)據(jù)寄存器。
在IEEE1149.1標(biāo)準(zhǔn)中,指令可以分為公共指令與專用指令兩種。其中包含了5個(gè)強(qiáng)制指令與2個(gè)可選指令。它們分別是旁路指令、采樣指令、預(yù)加載指令、外測(cè)試指令、內(nèi)測(cè)試指令、高阻指令、器件標(biāo)識(shí)指令。
以旁路指令為例,為了實(shí)現(xiàn)旁路功能,首先tap控制器在TMS的控制下進(jìn)入CAPTURE_IR狀態(tài),將旁路指令裝載,然后進(jìn)入SHIFT_DR狀態(tài),此時(shí)旁路指令代碼通過TDI端口依次進(jìn)入并被移位更新在指令寄存器中。隨著狀態(tài)機(jī)進(jìn)入SHIFT_DR環(huán)節(jié),在此狀態(tài)下,TDO的輸出與TDI的輸入一致,內(nèi)核邏輯被旁路。
設(shè)計(jì)包含top層、base_test層與agent層三大層次。
Top是整個(gè)驗(yàn)證平臺(tái)的頂層,其中例化了DUT、interface與base_test,并且將DUT通過端口與interface進(jìn)行連接。在top層中通過config_db語句來在不同組件之間傳遞參數(shù)。
Base_test內(nèi)包含了sequence_lib與env,其中,sequence_lib中例化了不同的測(cè)試用例,各測(cè)試用例是基于base_test進(jìn)行擴(kuò)展,從而實(shí)現(xiàn)不同功能點(diǎn)的覆蓋。而env中則包含了覆蓋率收集模塊coverage group、參考模型reference model、對(duì)比模塊scoreboard以及輸入agent、輸出agent。
Agent模塊中,一般封裝了sequencer、driver和monitor。但輸出agent中不需要driver與sequencer,僅僅例化了一個(gè)monitor用于監(jiān)控輸出。
運(yùn)行流程:
進(jìn)行仿真時(shí),sequencer將sequence產(chǎn)生的transaction級(jí)數(shù)據(jù)包發(fā)送給driver,driver則根據(jù)時(shí)序的控制,將數(shù)據(jù)包通過interface傳輸給dut,同時(shí)monitor會(huì)將激勵(lì)數(shù)據(jù)復(fù)制一份傳輸給reference model,out_agent的minitor則會(huì)監(jiān)控dut的響應(yīng),將響應(yīng)結(jié)果傳輸給scoreboard,scoreboard內(nèi)會(huì)將reference model的輸出與minitor監(jiān)測(cè)到的響應(yīng)進(jìn)行比較,最后通過UVM_INFO機(jī)制打印出對(duì)比信息,得出仿真結(jié)果。同時(shí)coverage group模塊會(huì)對(duì)覆蓋率進(jìn)行收集,得出覆蓋率報(bào)告。以上就是整個(gè)UVM驗(yàn)證中的數(shù)據(jù)流動(dòng)過程。
本次測(cè)試使用Mentor的questasim軟件進(jìn)行仿真驗(yàn)證。通過受約束的隨機(jī)激勵(lì),結(jié)合時(shí)序波形信息可以看出,TAP控制器遍歷了所有的狀態(tài),并且TDO的輸出也與相應(yīng)指令對(duì)應(yīng),輸出結(jié)果符合預(yù)期。時(shí)序仿真波形圖如圖3所示。
圖3 時(shí)序仿真波形圖
UVM作為時(shí)下最流行的驗(yàn)證方法學(xué),雖然前期時(shí)間搭建平臺(tái),但是能為后期的驗(yàn)證提高極大的效率,縮短了驗(yàn)證時(shí)間。本文利用了UVM驗(yàn)證方法學(xué),對(duì)JTAG控制器模塊進(jìn)行了充分的驗(yàn)證,為項(xiàng)目研發(fā)進(jìn)度節(jié)約了大量的時(shí)間,并且該驗(yàn)證平臺(tái)架構(gòu)還可以移植到其他項(xiàng)目之中,在實(shí)際項(xiàng)目開發(fā)中具有很高的應(yīng)用價(jià)值。