《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于SystemVerilog語言的像素cache驗證平臺的實現
基于SystemVerilog語言的像素cache驗證平臺的實現
2016年電子技術應用第10期
楊 錚1,韓俊剛1,李卯良2,劉 歡1
1.西安郵電大學 計算機學院,陜西 西安710121;2.西安郵電大學 電子工程學院,陜西 西安710121
摘要: 以SystemVerilog為基礎,對自主研發的GPU“螢火蟲2號”中像素cache部分搭建可重用的驗證平臺。該平臺可以自動完成整個驗證過程,并將驗證結果打印到Linux終端和文件當中,方便程序員檢查驗證結果。實驗結果表明,該驗證平臺對像素cache的功能驗證覆蓋率可以達到100%,并且具有良好的可重用性,能夠全面、正確地完成RTL級功能驗證,有效地提高了驗證的效率和質量。
中圖分類號: TP302.1
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.10.012
中文引用格式: 楊錚,韓俊剛,李卯良,等. 基于SystemVerilog語言的像素cache驗證平臺的實現[J].電子技術應用,2016,42(10):51-53,61.
英文引用格式: Yang Zheng,Han Jungang,Li Maoliang,et al. Implementations of the pixel cache validation platform based on SystemVerilog language[J].Application of Electronic Technique,2016,42(10):51-53,61.
Implementations of the pixel cache validation platform based on SystemVerilog language
Yang Zheng1,Han Jungang1,Li Maoliang2,Liu Huan1
1.School of Computer Science,Xi′an University of Posts & Telecommunications,Xi′an 710121,China; 2.School of Electronic Engineering,Xi′an University of Posts & Telecommunications,Xi′an 710121,China
Abstract: Based on SystemVerilog,build a reusable verification platform for GPU "Firefly 2nd" pixel cache which is the independent research and development of school. The platform can automatically complete the verification process, and print the results to a Linux terminal and file to facilitate the programmer checks to verify the results. Experimental results show that the functional verification coverage verification platform for pixel cache can be 100% and have good reusable, fully and correctly complete RTL-level verification, and effectively improve the efficiency of the verification and quality.
Key words : pixel cache;verification platform;SystemVerilog;reusable

0 引言

    集成電路發展日新月異,已經由小規模集成電路階段發展到了超大規模集成電路階段,工藝水平也從130 nm到22 nm甚至到14 nm。三星集團最近宣布,將于今年年底實現超越14 nm,達到10 nm的制造工藝。這些進步會使芯片的處理能力更強,體積更小,功耗更低。但伴隨著這些進步同時,也會使芯片的驗證難度不斷增大,驗證的工作量也會更多。如今,驗證的工作量已經占到了整個SOC研發的70%[1],因此提高驗證的效率已經迫在眉睫。

    傳統的Verilog驗證方法是定向的,需要程序員設計大量的測試激勵,然后對波形進行觀察檢測,這樣的方法驗證效率低、可重用性差,為此工業界推出了具有面向對象特性、支持約束隨機與斷言等功能的標準化硬件描述與驗證語言SystemVerilog[2-3]。本文基于該語言實現了一種芯片系統功能驗證平臺,有效地完成了對芯片的RTL級功能驗證,突破了傳統的驗證方法,有效地解決了傳統驗證方法對芯片驗證的充分性不足和效率低下的問題[4]

1 SystemVerilog語言

    SystemVerilog語言吸收了Verilog、VHDL、C++的概念,還包括驗證平臺語言和斷言語言,也就是說,它將硬件描述語言(HDL)與現代的高層級驗證語言(HVL)結合了起來[5]。正是因為這些優點,使得SystemVerilog語言在RTL驗證流程上比傳統方式具有更強大的表現能力,而且該語言集成了面向對象和線程間通信等的特點,使得該語言具有更強的靈活性,使程序員在設計驗證平臺時有更大的發揮空間。同樣幾個比較著名的驗證方法還有如:UVM、OVM、VMM等,本文主要使用SystemVerilog語言來搭建一個可重用的驗證平臺對待測模塊(Design Under Test,DUT)像素cache進行全面地驗證。

2 SystemVerilog驗證平臺實現

2.1 像素cache簡介

    像素cache是GPU中的重要組成部分,這個模塊的算法是否正確和功能是否全面直接關系到GPU處理圖像的正確性及快慢與否。因此,該模塊的功能驗證和覆蓋率驗證就顯得至關重要。本文的像素cache模塊在我校工程中心自主研發的GPU“螢火蟲2號”中連接著像素處理單元(FOP)以及像素RAM兩個模塊,目的是保證兩者之間能夠快速準確地傳輸數據和指令。像素cache模塊架構如圖1所示。

wdz5-t1.gif

    該像素cache包含2個模塊,分別是cache模塊和控制模塊。

2.2 cache模塊

    cache模塊包含3個模塊,cache_tag模塊、cache_output模塊和cache_lru模塊,它們分別完成了cache地址選擇、輸出和算法實現的功能。

2.2.1 cache_tag模塊

    該模塊主要實現的功能就是地址運算,將接收到的地址和cache內部存儲的地址進行比較來判斷是否命中。

2.2.2 cache_lru模塊

    該模塊主要實現了整個cache的核心內容,實現了cache的替換算法。本文中的像素cache采用的是最近最少使用的替換算法。

2.2.3 cache_output模塊

    這個模塊主要功能就是根據cache_lru模塊輸出的控制條件,將cache_ram中的數據輸出。這部分控制條件包括2D刷新、讀命中、讀未命中、寫命中和寫未命中等。

2.3 控制模塊

    控制模塊包含有一個狀態機模塊和一個選擇模塊。

2.3.1 狀態機模塊

    狀態機完成了處理各個請求的狀態跳轉,該模塊將整個像素cache操作劃分為如圖2的4個狀態,這4個狀態分別完成了初始化、2D圖形處理加速狀態、3D段操作狀態和結束狀態。

wdz5-t2.gif

2.3.2 選擇模塊

    該模塊根據狀態機跳轉輸出的選擇信號選擇3D段操作或者2D圖形加速并且把相應的信號傳遞給cache模塊,然后進行相應的處理。

2.4 像素cache驗證平臺設計

    本文設計的驗證平臺架構圖如圖3所示。

wdz5-t3.gif

    該平臺主要包括了頂層模塊和一些功能模塊。其中tb_top模塊是頂層模塊,也是整個驗證平臺的入口,該模塊實例化了env模塊和interface模塊;env模塊是環境模塊,該模塊實例化了generator、driver、monitor等的功能模塊,這些功能模塊在env模塊中分別完成自己的任務;interface模塊是接口模塊,該模塊定義了整個像素cache模塊驗證環境中需要控制和驗證的接口;generator模塊是整個驗證環境中測試激勵的產生器,該模塊會根據需求產生包括2D操作、3D操作、寫讀寫、寫讀等激勵,并且將激勵以郵箱的方式傳送給其他模塊;driver模塊是驅動模塊,該模塊接收generator模塊傳來的激勵,然后根據像素cache的時序處理這些接口信號;monitor模塊是監視器模塊,該模塊會監視整個驗證過程中的信號,如數據、地址、功能,包括像素cache模塊中間產生的信號,并將監視到的有用信號以郵箱的方式傳送給其他模塊;scoreboard模塊是計分板,該模塊接收monitor模塊傳來的有用數據,并根據需求把結果打印到終端和文件中,以供程序員對比檢查,如果出現錯誤,該模塊會打印出問題所在位置和時間,并中斷整個驗證流程;coverage模塊是覆蓋率模塊,該模塊接收每一次激勵信號,并分析該激勵屬于哪一類測試,最終統計所有結果,計算出整個驗證過程中的功能覆蓋率和數據的覆蓋率并打印到終端和文件中,以供程序員對比檢查。

2.5 驗證過程和預期目標

    整個驗證平臺和DUT以如圖4[6]方式進行搭建。

wdz5-t4.gif

    首先根據DUT模塊的功能和反饋信號,將DUT輸入分為如下幾類:2D圖形加速的寫、寫后讀、寫后寫后讀、讀、讀后讀、讀后寫后讀;3D段操作的寫、寫后讀、寫后寫后讀、讀、讀后讀、讀后寫后讀等輸入信號。然后將輸入數據128位和地址32位進行隨機產生,最終目標要保證功能覆蓋率達到100%,并且數據和地址能夠正確無誤地進行傳輸。

3 結果分析

3.1 輸出報告

    經過隨機產生的100 000組測試激勵,在VCS終端會打印出執行報告,隨機挑出一條報告進行分析,如圖5。

wdz5-t5.gif

    圖中第200次隨機驗證中Driver讀取generator產生的隨機激勵成功,并分析該次隨機驗證的分類。分別經過driver,scoreboard,monitor模塊操作,最終分析得出,該次隨機驗證屬于3D端操作中的讀類型,讀的數據為如圖5中的128位的值,地址為32’h675745fd。本次隨機驗證時間從99330000ps開始到99790000ps結束,數據和地址均與預期結果一直,傳輸結果正確。

    整個驗證過程產生的報告如圖6所示。

wdz5-t6.gif

    根據圖6中報告可知,經過100 000次隨機激勵與測試,所得的結果滿足預期要求,能夠完全覆蓋2D圖形加速和3D段操作中的所有8種預期情況,功能覆蓋率達到100%;數據和地址也是隨機產生,經過100 000次的隨機化產生激勵,數據和地址基本達到全面覆蓋。

3.2 波形圖

    圖7是使用DVE工具產生的部分驗證波形,從波形中可以看出,每個驗證激勵均為隨機產生,并且結果與預期的一致,沒有出現錯誤。

wdz5-t7.gif

4 總結

    本文基于SV語言搭建了一個能夠全面驗證像素cahce的平臺,并且詳細地介紹了該平臺各個模塊及架構。隨后利用VCS軟件對像素cache進行了全面驗證測試。實驗結果表明,該平臺針對像素cache模塊實現了功能上全面覆蓋,能夠準確地檢測出像素cache模塊中出錯的地方,并且及時報錯,從覆蓋率和正確性上均達到了預期目標。由于本文設計的驗證平臺與待測模塊在架構上是獨立的,所以該平臺具有很好的可重用性,只需對部分模塊進行修改便可以用于驗證其他同類型的待測模塊。

參考文獻

[1] 山蕊,蔣林,李濤.基于SystemVerilog的可重用驗證平臺[J].電子技術應用,2013,39(5):128-131.

[2] 王鵬,劉萬和,劉銳,等.基于SystemVerilog可重用測試平臺的實現[J].電子技術應用,2015,41(2):61-64.

[3] P-IEEE.Standard for SystemVerilog-Unified hardware design,Specification,and verification language[J].Copyright 2009:isbn,2009:1-1285.

[4] 黃鳳英.基于SV語言的RFID標簽芯片數字系統驗證平臺設計[J].中國集成電路,2016,25(3):30-34.

[5] SPEAR C.Systemverilog for verification[M].SystemVerilog for Verification.2012:253-266.

[6] (美)克里斯·斯皮爾.SystemVerilog驗證[M].北京:科學出版社,2009.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 极品福利视频 | 天天干天| 日韩不卡手机视频在线观看 | 国产一区二区三区在线免费 | a级片免费观看视频 | 91高清国产经典在线观看 | 国产一区视频在线 | 亚洲伊人成综合网 | 91高清国产经典在线观看 | 国产在线一区二区三区在线 | 黄色网址www | 日韩a一级欧美一级在线播放 | 97国产在线公开免费观看 | 免费看a毛片 | 黄大片在线观看 | 在线看福利片 | 精品中文字幕一区二区三区四区 | 91导航在线| 日韩三级久久 | 国产日本三级欧美三级妇三级四 | 最近中文字幕版免费 | 成年免费在线观看 | 天天天天添天天拍天天谢 | 久久亚洲国产最新网站 | 欧美一区二三区 | 欧美极品另类高清videos | 久久久精品免费视频 | 日本欧美亚洲 | 制服丝袜怡红院 | 色综合五月激情综合色一区 | 中文字幕在线视频免费观看 | 男女那个视频免费 | 国产一级视频久久 | 91四虎国自产在线播放线 | 日韩视频中文字幕专区 | 台湾中文娱乐综合久久久 | 欧美精品国产日韩综合在线 | 精品国产欧美另类一区 | 好男人www社区影视在线 | yy一级毛片免费视频 | 91免费精品国偷自产在线在线 |