曾清樂 宋文強(qiáng) 李敬磊
(工業(yè)和信息化部電子第五研究所,廣東 廣州 510610)
基于UVM的FPGA測(cè)試技術(shù)的研究
曾清樂 宋文強(qiáng) 李敬磊
(工業(yè)和信息化部電子第五研究所,廣東 廣州 510610)
FPGA設(shè)計(jì)規(guī)模和復(fù)雜度的急劇增加使得對(duì)其測(cè)試的難度提高。本文研究UVM(通用驗(yàn)證方法學(xué))架構(gòu)和特點(diǎn),采用UVM搭建驗(yàn)證平臺(tái),以TS101作為上位機(jī)、FPGA作為其接口控制功能為例,驗(yàn)證FPGA邏輯設(shè)計(jì)的正確性。
現(xiàn)場(chǎng)可編程邏輯器件;通用驗(yàn)證方法學(xué);待測(cè)設(shè)計(jì)
FPGA是英文Field Programmable Gate Array(現(xiàn)場(chǎng)可編程門陣列)的縮寫,是在GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的邏輯器件,其應(yīng)用越來越廣泛,由FPGA器件所實(shí)現(xiàn)的功能正逐漸取代以往的傳統(tǒng)軟件,在現(xiàn)代電子系統(tǒng)中扮演著越來越重要的角色,被廣泛地應(yīng)用于航空、航天、通信、汽車工業(yè)等領(lǐng)域。隨著FPGA應(yīng)用領(lǐng)域的擴(kuò)展以及其重要性的提高,其可靠性就變得越來越突出,因此對(duì)FPGA的測(cè)試驗(yàn)證將變得尤為重要。通用驗(yàn)證方法學(xué)(UVM,Universal Verification Methodology的縮寫)起源于OVM(Open Verification Methodology),是由Cadence、Mentor和Synopsys聯(lián)合推出的新一代驗(yàn)證方法學(xué)。UVM具有可配置、可復(fù)用的特點(diǎn),可產(chǎn)生受約束的隨機(jī)化激勵(lì),以達(dá)到對(duì)系統(tǒng)的充分驗(yàn)證。
本文以TS101為上位機(jī)、FPGA作為其接口控制功能為驗(yàn)證對(duì)象,使用基于System Verilog語言[1]的UVM驗(yàn)證方法學(xué)構(gòu)建驗(yàn)證平臺(tái),完成驗(yàn)證需求,提高了驗(yàn)證效率和平臺(tái)的可重用性。
2.1 UVM驗(yàn)證方法概述
UVM驗(yàn)證平臺(tái)[2]由一系列可重用的通用驗(yàn)證部件(UVC,Universal Verification Component)組成,包括數(shù)據(jù)包、驅(qū)動(dòng)器、BFM(Bus Functional Mode)、序列發(fā)生器、監(jiān)視器、代理、環(huán)境、記分板(Scoreboard)等。這些通用驗(yàn)證部件具有可配置、易使用、封裝成型,以及可重用等優(yōu)點(diǎn)。下面簡(jiǎn)要介紹各部件的作用:
數(shù)據(jù)包(Transaction/Sequence):是發(fā)送到驅(qū)動(dòng)器(Driver)的激勵(lì)事物,可以是普通數(shù)據(jù)包、總線事物、指令集等,可經(jīng)過SystemVerilog約束隨機(jī)化過程來產(chǎn)生,即激勵(lì)信號(hào);
驅(qū)動(dòng)器(Driver)/BFM:是將由傳輸級(jí)模型(TLM,Transaction Level Modeling)產(chǎn)生的上層抽象化的數(shù)據(jù)流,根據(jù)特定的傳輸協(xié)議和傳輸時(shí)序轉(zhuǎn)化成信號(hào)級(jí)發(fā)送給DUT(Design Under Test,待測(cè)試設(shè)計(jì));
序列發(fā)生器(Sequencer):?jiǎn)?dòng)特定的Sequence,使其產(chǎn)生受約束的隨機(jī)傳輸級(jí)數(shù)據(jù);
監(jiān)視器(Monitor):根據(jù)特定協(xié)議采集數(shù)據(jù)并轉(zhuǎn)換成傳輸級(jí)模型發(fā)送給記分板(Scoreboard);
記分板(Scoreboard):比較輸入與輸出信號(hào)并給出比較結(jié)果;
代理(Agent):像一個(gè)虛擬的容器,將序列發(fā)生器(Sequencer)、驅(qū)動(dòng)器(Driver)、監(jiān)視器(Monitor)封裝在一起;
環(huán)境(Environment):也像一個(gè)虛擬的容器,將代理(Agent)、記分板(Scoreboard)、數(shù)據(jù)包(Transaction/Sequence)封裝在一起。

圖1 典型的UVM平臺(tái)示意圖
圖1[3]中實(shí)線連線表示驗(yàn)證平臺(tái)不同組件之間的數(shù)據(jù)連接,虛線連線表示驗(yàn)證平臺(tái)與DUT之間的物理接口連接。In_agent封裝了Sequencer、Driver和Monitor,主要用于向DUT發(fā)送激勵(lì)信號(hào),過程為首先在Driver中申請(qǐng)一個(gè)item(Transaction),在Sequencer調(diào)度下由Sequence產(chǎn)生一個(gè)item(Transaction),再由Driver根據(jù)協(xié)議驅(qū)動(dòng)到DUT端口上。同時(shí)In_agent的Monitor將產(chǎn)生的激勵(lì)信號(hào)發(fā)送至Reference Model。Reference Model通常模擬DUT的行為。Out_agent的Monitor用于監(jiān)測(cè)DUT的輸出,并將數(shù)據(jù)發(fā)送至Scoreboard。Scoreboard將接收來自Reference Model和DUT輸出的數(shù)據(jù)進(jìn)行對(duì)比。
2.2 驗(yàn)證模塊概述
本文中的驗(yàn)證模塊是以TigerSHARC為DSP的上位機(jī),F(xiàn)PGA主要作為其接口控制。DSP是采用慢速設(shè)備協(xié)議,通過配置寄存器設(shè)置等待周期為3;讀寫操作的譯碼過程為:首先給出存儲(chǔ)器的片選信號(hào),開始傳送過程,同時(shí)發(fā)出地址信息。在下一周期里,RD或WR變?yōu)橛行А?duì)于寫操作,Tiger-SHARC驅(qū)動(dòng)數(shù)據(jù);若為讀操作,被測(cè)的DUT開始驅(qū)動(dòng)數(shù)據(jù)。

圖2 驗(yàn)證模塊接口關(guān)系圖

表1 地址映射關(guān)系表
待測(cè)設(shè)計(jì)接口關(guān)系如圖2所示,地址映射關(guān)系如表1所示。TS101(TigerSHARC 101)通過總線與DUT(FPGA)進(jìn)行通信,需要通過串口輸出數(shù)據(jù)時(shí),首先TS101向DUT對(duì)應(yīng)的FIFO中寫入數(shù)據(jù),再發(fā)送命令啟動(dòng)數(shù)據(jù)發(fā)送;DUT接收完串口數(shù)據(jù)后給出有效標(biāo)記,TS101判斷數(shù)據(jù)有效標(biāo)記,標(biāo)記有效時(shí),讀取數(shù)據(jù)。其中異步串口的波特率為5Mbps,每字節(jié)10bit,包括起始位1位,數(shù)據(jù)位8位,停止位1位,無奇偶校驗(yàn)位,空閑狀態(tài)為高電平。TS101需要通過Arinc-429總線輸出數(shù)據(jù)時(shí),TS101向DUT對(duì)應(yīng)的FIFO中寫入數(shù)據(jù),DUT通過Arinc-429總線輸出;接收Arinc-429總線數(shù)據(jù)時(shí),數(shù)據(jù)經(jīng)DUT譯碼存儲(chǔ)后,TS101通過總線讀取。其中Arinc-429通信協(xié)議[4]是一種廣泛應(yīng)用于航空系統(tǒng)的串行通訊協(xié)議。該協(xié)議規(guī)定了差分傳輸,雙極性歸零碼,最高100kbps。通信字為32bit,數(shù)據(jù)字間隔為4位,奇校驗(yàn)。
從驗(yàn)證模塊分析測(cè)試需求,搭建驗(yàn)證平臺(tái)需要3個(gè)Agent,1個(gè)總線協(xié)議轉(zhuǎn)換BFM(Bus Function Model)。第一個(gè)Agent命名為reg_agent,主要是用于產(chǎn)生地址、數(shù)據(jù)、讀/寫、片選信號(hào);第二個(gè)Agent命名為429_agent,主要是用于產(chǎn)生429總線數(shù)據(jù)和接收429數(shù)據(jù);第三個(gè)Agent命名為uart_agent,主要用于產(chǎn)生串口數(shù)據(jù)和接收串口數(shù)據(jù);一個(gè)BFM是將reg_agent產(chǎn)生的總線數(shù)據(jù),按照總線時(shí)序驅(qū)動(dòng)到DUT端口。基于UVM驗(yàn)證平臺(tái)的可重用性,Agent和BFM均設(shè)計(jì)為可配置的。例如對(duì)于串口uart_agent,繼承uvm_sequence_item的類中成員變量數(shù)據(jù)長(zhǎng)度和停止位長(zhǎng)度可定義、奇偶校驗(yàn)的有效性、奇校驗(yàn)/偶校驗(yàn)、校驗(yàn)位長(zhǎng)度,以及在接口驅(qū)動(dòng)時(shí)可根據(jù)波特率調(diào)整驅(qū)動(dòng)時(shí)序。對(duì)于reg_agent,繼承uvm_sequence_item的類地址和數(shù)據(jù)位可參數(shù)化位數(shù)、成員變量讀/寫控制信號(hào)、數(shù)據(jù)、地址信號(hào)。對(duì)于BFM(Bus Function Model),主要是按照時(shí)序驅(qū)動(dòng)數(shù)據(jù)到端口,定義為通用的類,根據(jù)不同的芯片時(shí)序驅(qū)動(dòng)總線數(shù)據(jù)。
基于UVM的驗(yàn)證平臺(tái)如圖3所示。整個(gè)驗(yàn)證平臺(tái)由外部腳本環(huán)境和內(nèi)部UVM環(huán)境組成。腳本文件是控制平臺(tái)的編譯、仿真運(yùn)行等。整個(gè)平臺(tái)在虛擬Sequencer調(diào)度下,由Sequenc產(chǎn)生激勵(lì)信號(hào)分別給 reg_agent、uart_agent和429_agent的Driver,驅(qū)動(dòng)DUT的端口。Reference Model接收來自各個(gè)Monitor的信號(hào)模擬DUT的行為。Scoreboard接收來自DUT的輸出結(jié)果與Reference Model輸出結(jié)果進(jìn)行比較,在本驗(yàn)證平臺(tái)為比對(duì)輸入與輸出數(shù)據(jù)的一致性。

圖3 基于UVM驗(yàn)證平臺(tái)
以DUT接收Arinc-429總線數(shù)據(jù)為例分析驗(yàn)證結(jié)果。通過429_agent模擬Arinc-429信號(hào)輸入至管腳fkin_a、fkin_b,輸入的數(shù)據(jù)確定為0x8820,輸入的波形如圖4所示。Arinc-429數(shù)據(jù)輸入至 FPGA,F(xiàn)PGA接收并存儲(chǔ)至地址0xFC0000F,模擬DSP讀取。圖5為DSP讀取的結(jié)果,可以看出與輸入一致。

圖4 Arinc-429輸入數(shù)據(jù)的波形

圖5 DSP讀取Arinc-429數(shù)據(jù)結(jié)果波形
其次,本文的驗(yàn)證平臺(tái)將寄存器、DSP總線、UART串口和Arinc-429總線分離出來,構(gòu)造出多個(gè)獨(dú)立的agent,這樣在對(duì)下一個(gè)項(xiàng)目進(jìn)行驗(yàn)證的時(shí)候,每一個(gè)獨(dú)立的子agent都可以被其他環(huán)境進(jìn)行例化重用。而傳統(tǒng)的測(cè)試床將所有信號(hào)集中在一個(gè)工程中,一旦項(xiàng)目中模塊稍有變化便不能進(jìn)行復(fù)用。因而,將信號(hào)進(jìn)行分離的方法使得驗(yàn)證的環(huán)境變得更加靈活,同時(shí)極大地提高驗(yàn)證環(huán)境的重用性。
本文搭建的基于UVM驗(yàn)證平臺(tái)的FPGA驗(yàn)證環(huán)境,具有高效性和可重用性。該驗(yàn)證環(huán)境針對(duì)不同的功能模塊進(jìn)行獨(dú)立的、可配置的設(shè)計(jì),從而提高了驗(yàn)證的效率。下一步研究方向是研究采用自動(dòng)化的腳本語言,以及研究構(gòu)建合理的人機(jī)交互界面生成驗(yàn)證環(huán)境,以便更有效地提高測(cè)試效率。
[1]鐘文楓.SystemVerilog與功能驗(yàn)證[M].北京:機(jī)械工業(yè)出版社,2010.
[2]Accdlera.Universal verification methodology1.1 user's guide [M].Cadence Design Systems Inc.,Mentor Graphics Corp.,Synopsys Inc.,2011.
[3]張強(qiáng).UVM實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2014.
[4]ARINC公司.ARINC429傳輸規(guī)范[Z].2002.
Research on FPGATesting Technology Based on UVM
Zeng Qingle Song Wenqiang Li Jinglei
(CEPREI,Guangzhou 510610,Guangdong)
Dramatically increasing in the scale and complexity of FPGA design makes it more difficult to be tested.This article studies the structure and characteristics of universal verification methodology(UVM).It uses UVM to set up the verification platform,taking the TS101 as the host computer and FPGA as function of the interface control,verifying the correctness of the FPGA logic design.
FPGA;universal verification methodology;DUT
TN407
B
1008-6609(2016)05-0065-03
曾清樂,男,湖南衡陽人,碩士研究生,工程師,研究方向:軟件測(cè)試。