《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
午夜精品免费视频| 9国产精品视频| 亚洲国产一二三| 国产综合18久久久久久| 国产麻豆视频精品| 国产精品丝袜久久久久久app| 欧美视频二区36p| 欧美视频1区| 欧美午夜精品久久久久久孕妇| 欧美另类在线播放| 欧美日韩国产在线播放| 欧美人与禽猛交乱配视频| 欧美精品福利在线| 欧美精品手机在线| 欧美精品一区二| 欧美日韩在线不卡一区| 国产精品国产三级欧美二区| 国产精品成人一区二区三区吃奶| 国产精品theporn| 国产精品亚洲成人| 国产午夜精品全部视频播放| 国产日韩专区| 国内揄拍国内精品少妇国语| 樱桃成人精品视频在线播放| 亚洲大片精品永久免费| 最新成人av在线| 一本色道久久综合亚洲精品按摩| 一区二区三区成人| 亚洲在线一区| 久久精品国产成人| 亚洲精品一二区| 亚洲一区二区伦理| 午夜一区二区三区在线观看| 久久精品视频网| 欧美+亚洲+精品+三区| 欧美日韩成人在线观看| 国产精品对白刺激久久久| 国产伦精品一区二区三区免费迷 | 亚洲精品国产视频| 在线亚洲欧美视频| 亚洲欧美综合国产精品一区| 国产亚洲综合精品| 亚洲精品日韩欧美| 亚洲视频综合| 久久本道综合色狠狠五月| 老司机精品视频网站| 欧美国产日本| 国产精品一区久久| 一色屋精品视频在线观看网站| 亚洲精品乱码久久久久久黑人| 国产精品99久久久久久宅男| 欧美一级在线播放| 日韩一二三在线视频播| 午夜精品久久久久久久99热浪潮| 久久这里只有| 欧美日韩第一区日日骚| 国产日韩精品视频一区二区三区| 亚洲福利一区| 亚洲午夜女主播在线直播| 久久国产精品网站| 中文国产成人精品久久一| 久久精品99国产精品日本 | 亚洲欧洲精品一区二区三区不卡| 一区二区三区欧美在线| 久久福利视频导航| 亚洲图片激情小说| 久久人人爽人人| 国产精品theporn| 亚洲第一天堂av| 亚洲欧美日韩国产中文在线| 亚洲免费电影在线| 久久精品久久99精品久久| 欧美日韩国产色视频| 国产一区二区三区久久悠悠色av | 国产精品实拍| 91久久久在线| 欧美在线视频不卡| 亚洲影院色无极综合| 免费在线成人| 国产日韩av高清| 99精品视频一区二区三区| 亚洲国产日韩一级| 亚洲欧美伊人| 欧美精品三级| 永久免费精品影视网站| 亚洲免费视频观看| 国产精品99久久久久久宅男 | 国内成人精品一区| 国产精品99久久久久久久vr | 99re成人精品视频| 久久中文字幕导航| 国产精品中文在线| 夜夜嗨一区二区| 亚洲精品久久久久中文字幕欢迎你 | 欧美性猛交xxxx乱大交退制版| 亚洲国产成人av好男人在线观看| 欧美亚洲网站| 午夜激情综合网| 欧美日韩视频在线一区二区 | 亚洲黄色影院| 亚洲激情第一页| 久久久久久久久久久久久久一区| 国产精品萝li| 一区二区三区高清在线| 99精品欧美一区二区三区综合在线| 久久天堂精品| 国产一区二区久久精品| 亚洲女同在线| 午夜在线不卡| 国产精品日韩欧美一区二区| 一区二区欧美在线观看| 一区二区三区 在线观看视频| 欧美韩国日本综合| 亚洲欧洲精品一区二区三区| 亚洲精品视频在线观看网站 | 国产手机视频一区二区| 亚洲欧美日韩另类| 欧美亚洲网站| 国产伦精品一区二区三区照片91| 亚洲午夜一区| 午夜影院日韩| 国产日本欧美视频| 欧美一二区视频| 久久本道综合色狠狠五月| 国产欧美一区二区精品性| 亚洲天堂免费观看| 亚洲伊人观看| 国产精品入口夜色视频大尺度 | 国产一区二区三区四区老人| 欧美亚洲视频| 久久亚洲风情| 亚洲第一天堂av| 亚洲久久成人| 欧美日韩成人一区二区三区| 亚洲人成网站777色婷婷| 一本色道久久综合亚洲二区三区| 欧美日韩国产成人在线| 一区二区免费在线观看| 午夜精品短视频| 国产视频在线观看一区二区| 久久超碰97中文字幕| 美女精品自拍一二三四| 亚洲激情小视频| 亚洲素人在线| 国产日韩欧美自拍| 亚洲国产另类久久精品| 欧美成人福利视频| 亚洲美女少妇无套啪啪呻吟| 亚洲欧美激情在线视频| 国产视频在线观看一区| 亚洲丰满少妇videoshd| 欧美精品在线视频| 99亚洲精品| 欧美在线啊v一区| 在线播放中文字幕一区| 一区二区欧美精品| 国产精品午夜国产小视频| 欧美在线视频一区二区| 男人的天堂成人在线| 一本大道久久a久久精品综合| 香蕉av777xxx色综合一区| 国产亚洲精品一区二555| 亚洲韩国一区二区三区| 欧美日韩一区二区视频在线| 欧美一级久久久| 欧美国产高清| 亚洲专区国产精品| 欧美成人xxx| 亚洲综合99| 欧美激情亚洲激情| 亚洲欧美在线一区| 欧美国产免费| 亚洲免费在线看| 欧美 日韩 国产 一区| 亚洲一级片在线观看| 农村妇女精品| 亚洲一级影院| 欧美国产日韩免费| 午夜一区在线| 欧美日韩亚洲另类| 久久精品欧洲| 国产精品video| 亚洲韩国日本中文字幕| 国产精品嫩草99av在线| 亚洲啪啪91| 国产欧美精品在线| av成人毛片| 国产原创一区二区| 亚洲一区在线观看免费观看电影高清| 黑人巨大精品欧美一区二区| 亚洲午夜激情| 亚洲激情视频在线播放| 久久久久免费视频| 亚洲婷婷在线| 欧美另类在线观看| 亚洲国产91精品在线观看| 国产精品久久久久aaaa樱花| 亚洲免费av片| 伊人久久婷婷色综合98网| 欧美一区不卡|