重慶郵電大學(xué)通信與信息工程學(xué)院 潘應(yīng)進 龍 懇
?
基于UVM實現(xiàn)高效可重用的SoC功能驗證
重慶郵電大學(xué)通信與信息工程學(xué)院 潘應(yīng)進 龍 懇
【摘要】通用驗證方法學(xué)(UVM)融合了OVM和VMM兩大驗證方法學(xué),使驗證語言統(tǒng)一于SystemVerilog,驗證方法學(xué)統(tǒng)一于UVM。在研究了UVM的基礎(chǔ)上,重點研究了如何使用UVM搭建高效可重用的SoC驗證平臺。先進行模塊級功能驗證,再將模塊級驗證組件重用到系統(tǒng)級驗證平臺中,實現(xiàn)APB子系統(tǒng)的功能驗證。通過組件的重用,縮短了系統(tǒng)驗證平臺的搭建時間,進一步縮短了SoC驗證的周期。在結(jié)果分析上,通過代碼覆蓋率和功能覆蓋率的結(jié)合,保證驗證的進度和質(zhì)量。通過與傳統(tǒng)驗證平臺的對比,結(jié)果表明,UVM驗證平臺在驗證效率上遠遠高于傳統(tǒng)驗證平臺。
【關(guān)鍵詞】通用驗證方法學(xué);SoC;功能驗證;驗證平臺
隨著SoC芯片集成度和復(fù)雜度的不斷提升,SoC基帶芯片研發(fā)的驗證工作量成倍增加[1]。然而,市場是無法接受芯片的研制周期成倍增加的,因此,需要針對占據(jù)SoC基帶芯片設(shè)計大量時間的驗證工作進行分析,研究更為高效的基帶芯片驗證方法,縮短芯片的研制周期以滿足市場需求。
UVM驗證方法學(xué)是一套具有強大功能的驗證方法學(xué),它吸取了包括AVM、OVM以及VMM在內(nèi)的眾多驗證方法學(xué)的精華,代表著驗證技術(shù)的最新進展[2]。使用 UVM 驗證方法學(xué)搭建驗證平臺能極大地提高驗證的完備性和效率,滿足芯片設(shè)計的時間和性能要求。
本文深入研究了UVM,并基于UVM的基礎(chǔ)架構(gòu),使用SystemVerilog驗證語言[3]搭建了一套系統(tǒng)級驗證平臺,對一款基帶處理芯片中的APB[4]子系統(tǒng)進行功能驗證,并與傳統(tǒng)驗證方法進行對比,闡述UVM驗證方法學(xué)在實現(xiàn)高效可重用的SoC功能驗證時的獨特優(yōu)勢。
面對SoC驗證難度的持續(xù)提升,傳統(tǒng)的驗證方法越來越難以滿足驗證的需求,大家開始探尋抽象層次更高的驗證語言和性能更完善的驗證方法[5]。UVM是基于SystemVerilog語言開發(fā)的一個庫[6],而SystemVerilog最重要的一個特性就是引入了類的概念,這使得它具有了面向?qū)ο缶幊痰奶攸c,UVM也就由一個個這樣的類組合而成。UVM庫中包括三種類型的類[7]:uvm_components、uvm_objects和uvm_transactions。一個實際的驗證平臺就由擴展自uvm_components的基本組件類構(gòu)成,包括uvm_driver、uvm_seqencer、uvm_monitor、uvm_agent、uvm_scoreboard、uvm_env、uvm_test等。
圖1給出了一個典型的UVM驗證平臺的基本架構(gòu)。在這個驗證平臺中,有兩個agent,i_agt配置為active模式,負責(zé)驅(qū)動和監(jiān)控總線;o_agt配置為passive模式,只負責(zé)監(jiān)控總線,沒有驅(qū)動功能。sequence產(chǎn)生隨機的激勵transaction并送給sequencer,sequencer有一個仲裁機制判斷并決定何時將該transaction傳給driver,driver在得到transaction后就將其驅(qū)動到DUT接口上,同時,monitor從DUT接口收集輸入數(shù)據(jù)并傳給參考模型用以產(chǎn)生期望值。在另一側(cè),monitor收集DUT的輸出并發(fā)給計分板scoreboard,計分板完成數(shù)據(jù)的自動化比對。
圖1 典型UVM驗證平臺架構(gòu)
本次驗證的對象是一款通用基帶處理芯片中的APB子系統(tǒng),包含APB總線及其上掛載的SPI、GPIO和兩個UART模塊,以及一些時鐘和復(fù)位模塊。圖2所示為本次驗證對象的框圖。在該子系統(tǒng)中,AXI-APB轉(zhuǎn)換橋接收來自AXI總線的輸入,并將其轉(zhuǎn)化成APB格式的數(shù)據(jù)送給APB,APB根據(jù)不同的地址將數(shù)據(jù)發(fā)送到不同的模塊,這些模塊按照協(xié)議對輸入數(shù)據(jù)進行處理,對APB進行回應(yīng)或者將處理結(jié)果輸出。
圖2 APB子系統(tǒng)框圖
3.1 UVM模塊級驗證平臺
本次驗證從模塊級驗證出發(fā),再將各個模塊驗證組件重用到子系統(tǒng),完成子系統(tǒng)的驗證。
圖3是基于UVM的UART模塊級驗證環(huán)境,分為三個部分:APB_UVC、UART_UVC和CONTROL_UVC。APB_UVC實現(xiàn)APB總線的功能,配置并控制UART,可對UART進行數(shù)據(jù)的讀寫操作;UART_UVC充當與UART通信的設(shè)備,可以接收來自UART的數(shù)據(jù),也可以往UART發(fā)送數(shù)據(jù);CONTROL_UVC對APB_UVC和UART_UVC進行管理,提供激勵的入口,配置驗證環(huán)境,完成數(shù)據(jù)的自動化檢查,覆蓋率收集,以及提供寄存器模型。
SPI和GPIO模塊的驗證平臺與該平臺類似,只需替換相應(yīng)部分即可,這本身也是UVM模塊級重用的一個體現(xiàn)。
3.2 UVM子系統(tǒng)驗證平臺
完成模塊級的驗證后,就可以將所有模塊集成到子系統(tǒng)驗證環(huán)境中。針對本次驗證的系統(tǒng),模塊級驗證完成后將產(chǎn)生一些可重用的驗證組件APB_UVC、UART_UVC、SPI_UVC、GPIO_UVC。再根據(jù)UVM結(jié)構(gòu)和AXI總線協(xié)議[8]設(shè)計一個AXI_UVC,即可完成目標子系統(tǒng)驗證環(huán)境的搭建,如圖4所示。
圖3 UART模塊及驗證平臺
圖4 APB子系統(tǒng)驗證平臺
這個平臺重用了模塊級驗證平臺中的APB總線驗證模型和各模塊的驗證模型,將控制功能移到模塊外圍,在系統(tǒng)級進行驗證流程的控制。CONTROL_UVC實現(xiàn)的功能大致與模塊級相同,但復(fù)雜度卻要大得多,如計分板部分,模塊級只需實現(xiàn)自己模塊的數(shù)據(jù)對比,而系統(tǒng)級的計分板針對的是整個系統(tǒng),不同模塊數(shù)據(jù)來源、格式都可能會不一樣,所以在這個計分板模型中需要包含各個模塊的計分板小模型。有的模塊如UART不需要參考模型,而有的模塊需要參考模型,在計分板中都要區(qū)別對待。
根據(jù)系統(tǒng)功能需求編寫測試用例對驗證平臺進行測試,待所有測試用例全部運行完成且沒有錯誤信息后,查看覆蓋率信息,確定驗證的進度和性能。由于該子系統(tǒng)中各模塊沒有太多的交集,所以在驗證的各個環(huán)節(jié)上都是獨立的,包括覆蓋率的收集、結(jié)果的分析。圖5為UART模塊的覆蓋率信息,其中行覆蓋率達到了97.68%,功能覆蓋率達到了100%,表明所有功能都已覆蓋到了,而且代碼覆蓋也達到了要求,說明對UART的驗證已完成。SPI和GPIO的功能覆蓋率也均達到了100%,代碼覆蓋率也都在96%以上,符合驗證的要求。
圖5 驗證覆蓋率信息
與傳統(tǒng)驗證平臺相比,UVM驗證平臺在激勵的產(chǎn)生,結(jié)果的自動化檢查以及運行的耗時上都要更加優(yōu)越。圖6是UVM平臺與傳統(tǒng)驗證平臺運行單個測試用例的時間對比,可以看出,UVM平臺的耗時不足傳統(tǒng)平臺的1/6。由此可見,當所有測試用例都測試完成,UVM驗證平臺在效率上將遠遠優(yōu)于傳統(tǒng)驗證平臺。
圖6 UVM驗證平臺與傳統(tǒng)驗證平臺驗證效率對比
本文深入研究了UVM驗證方法學(xué)的各種機制,利用SystemVerilog驗證語言的特性基于UVM的架構(gòu)搭建了一套系統(tǒng)級驗證平臺,對APB子系統(tǒng)進行了功能驗證。通過對UVM中各種類的繼承,建立了一個高度可重用的APB總線驗證模型和UART、SPI、GPIO驗證組件,并通過子系統(tǒng)集成證明了其可重用性。通過代碼覆蓋率和功能覆蓋率的收集,保證了驗證的質(zhì)量。實驗結(jié)果證明了UVM驗證平臺的高效性。這個平臺真正實現(xiàn)了高效可重用的功能驗證,為搭建旨在縮短SoC驗證周期的系統(tǒng)級驗證平臺提供了參考的范例。
參考文獻
[1]呂毓達.基于UVM的可重用SoC功能驗證環(huán)境[J].半導(dǎo)體技術(shù),2015,40(3):234-238.
[2]李俊.基于UVM的視頻圖像2D轉(zhuǎn)3D模塊的驗證[D].中國海洋大學(xué),2013.
[3]Janick Bergeron. Writing Testbenches using SystemVerilog[M]. Berlin:Synopsys.Inc,Springer,2008.
[4]Synopsys Discovery Verification IP for APB UVM User Manual Version1.98a.2013,71-80.
[5]段然.SoC系統(tǒng)驗證方法研究[J].航天控制,2009, 27(3):80-85.
[6]Accellera. Universal Verification Methodology (UVM) 1.1 User’s Guide[M].2011.
[7]Mentor Graphics UVM Documentation Verification Methodology online Cookboook,2013:3-7.
[8]侯秋菊,沈海華.IP可重用的AMBA AXI總線驗證平臺設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2008,29(7): 1713-1715.