999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于UVM的可重用硬件加速器驗證平臺

2023-09-20 10:36:50隋金雪郁添林沈姒清
計算機仿真 2023年8期
關鍵詞:信號功能

隋金雪,郁添林,3,沈姒清,3,張 霞

(1. 山東工商學院電子與信息工程學院,山東 煙臺 264003;2. 北京大學信息技術高等研究院,浙江 杭州 311215;3. 中科網(wǎng)絡技術研究所(中科院計算機所煙臺分所),山東 煙臺 264026)

1 引言

CNN在現(xiàn)代人工智能系統(tǒng)中得到了廣泛應用,同時也給底層硬件帶來了數(shù)據(jù)吞吐量和能效的挑戰(zhàn),通過優(yōu)化整個系統(tǒng),包括片內(nèi)外數(shù)據(jù)流處理以及可重配置各種CNN架構(gòu)等提高效率。目前主流的卷積神經(jīng)網(wǎng)絡硬件設計方式有FPGA、GPU和ASIC;FPGA雖然編程更靈活,開發(fā)周期短,但用高級語言生成的RTL代碼可讀性差,后期維護成本高,布線資源也存在一定的限制;GPU的峰值性能極好,但功耗過高,不適用于低功耗的場景[1]。ASIC為實現(xiàn)特定要求而定制的芯片,在功耗、可靠性、體積等方面具有優(yōu)勢,通用性強、適配各種算法模型的硬件加速器可用于更多的物聯(lián)網(wǎng)終端設備。因此,可擴展的專用定制芯片需要充分的功能型驗證。

傳統(tǒng)架構(gòu)的通用型處理器不能更好的支持機器學習的各種模型,不同算法帶來的高計算密度和大存儲帶寬,需要靈活的專用集成電路來解決這些問題。硬件加速器的框架中獨立的memory和core分離的結(jié)構(gòu),過總線進行通信[2]。設計各種串并行、數(shù)據(jù)流以及通信計算方式的RTL代碼方案,需要一個由SystemVerilog語言搭建的基于UVM可重用的層次化驗證平臺。

2 基于UVM的硬件加速驗證IP

本文搭建一個可重用的自動化驗證平臺,對卷積神經(jīng)網(wǎng)絡的前向傳播進行驗證,即卷積層、激活層、池化層和全連接層的功能型驗證,以及對一些關鍵測試點的驗證。

2.1 驗證IP結(jié)構(gòu)

硬件加速器驗證IP的結(jié)構(gòu)如圖1所示。頂層是environment,包括memory_master_agent、memory_slave_agent、control_status_agent、kernel_agent、register_port_agent、reference_model、convolution_scoreboard等組件。其中多圖層時需要例化對應的數(shù)據(jù)輸入輸出以及卷積核的通道數(shù)量[3]。各自的agent中都包含了driver、monitor和sequencer,sequence雖不屬于驗證平臺的基本組件,但驗證所需的激勵由transaction組成,由sequence產(chǎn)生。

驗證平臺與DUT需要interface指明連接信號,在頂層用uvm_config_db配置變量,將virtualinterface傳遞到相應的組件。testbench和DUT之間存在時序和同步建模的問題,為了避免對輸入的激勵驅(qū)動與輸出的采樣產(chǎn)生競爭冒險[4],用clockingblocks構(gòu)造理想的驗證環(huán)境。modport作用如圖2所示,明確了站在不同的角度對應信號的輸入輸出方向,通過虛擬接口的定義將以上內(nèi)容封裝起來。virtualinterface在測試平臺的不同位置操縱一組虛擬信號,而不是直接操縱實際的信號[5,6]。

圖2 modport結(jié)構(gòu)示意圖

2.2 組件功能實現(xiàn)

agent作為標準驗證環(huán)境的組件,按照is_active的缺省值,配置為主動模式,在build_pahse()、connect_phase等函數(shù)中對driver、monitor和sequencer進行有條件的例化和連接,提供激勵與檢測的場景。

Referencemodel將每個單獨的功能層寫成virtualtask,將參數(shù)的傳遞和獲取分離,便于封裝和復用。主要實現(xiàn)kernel與channel數(shù)據(jù)寫入(單個像素點8/16bit隨機)、滿足kernel列數(shù)開始卷積計算、基地址與偏移地址、非線性激活、最大最小以及均值池化、全連接和bank切換等功能。卷積核與輸出層數(shù)量保持一致,數(shù)據(jù)從driver中獲取,用for循環(huán)嵌套存入二維數(shù)組[7]。依據(jù)寄存器的值,判斷卷積核大小以及數(shù)據(jù)類型,做出相應的乘加運算,計算的數(shù)據(jù)結(jié)果截取位寬后做非線性映射以及選擇池化模式,對圖像壓縮提取特征。對連續(xù)多幅圖片計算時,配置乒乓緩存的寄存器節(jié)約讀寫時序。經(jīng)過處理后的每筆數(shù)據(jù)按總線位寬傳輸至記分板。

Scoreboard用于比較referencemodel與DUT輸出是否一致,實際仿真過程中驗證部分的輸出結(jié)果更快,先用一個隊列暫存數(shù)據(jù)并打印到對比文件,等待DUT同樣的操作。兩個隊列的數(shù)據(jù)比對后刪除,仿真結(jié)束后,隊列不為空會報錯,也可以從打印文件中直觀的看出實際結(jié)果的差異。

SystemRDL是Accellera發(fā)布的寄存器描述語言,由IC寄存器自動化定義工具ordt可以實現(xiàn)由單一輸入源得到多種一致性的輸出[8],包括UVM寄存器模型、RTL代碼和文檔等,旨在提高復雜數(shù)字系統(tǒng)的IC設計和驗證的效率,質(zhì)量及復用性。

寄存器模型流程如圖3所示,在env實例化,建立數(shù)據(jù)通道bank0、bank1以及卷積核與非乒乓配置寄存器三個uvm_reg_block,以前門的方式產(chǎn)生事務并借助于agent來訪問DUT中的存儲器,消耗仿真時間。本文主要的測試內(nèi)容圍繞配置寄存器展開,會同時啟動多個sequence從而產(chǎn)生存儲著操作的地址和操作類型的變量,經(jīng)過adapter轉(zhuǎn)換后傳給sequencer,最后交由driver以apb接口時序完成前門訪問操作[9]。

圖3 寄存器模型示意圖

2.3 仿真執(zhí)行過程

整個驗證平臺執(zhí)行tmake管理makefile,用python、shell和perl腳本混合編程,獲取宏定義的參數(shù),將配置信息傳遞至RTL、testbench和buildflow,進行文件預處理、編譯以及仿真。

UVM驗證平臺啟動流程是在top_tb導入uvm_pkg文件,創(chuàng)建例化對象,定義時鐘頻率,調(diào)用run_test();再從uvm_test依次執(zhí)行各組件中的phase機制,在run_phase獲取外部腳本處理后的測試用例名,object用factory機制創(chuàng)建實例,轉(zhuǎn)換成UVM_TESTNAME類型后raise_objection,再通過start啟動sequence,等待objection被撤銷后停止仿真,結(jié)束run_phase(),達到并行仿真的效果。

每個測試用例運行都由DUT發(fā)出請求信號,再從master_driver中發(fā)出確認信號,并例化的每層read_channel_transaction產(chǎn)生不同的隨機數(shù),分別由讀數(shù)據(jù)通道接口傳遞給DUT和reference_model用TLM通信中的uvm_blocking_get_port獲取對應通道的數(shù)據(jù)。觸發(fā)信號開始數(shù)據(jù)卷積、激活、池化等功能輸出至scoreboard比對[10]。

仿真在reference_model中,存滿卷積核大小的列數(shù)后就開始做乘加運算,比DUT數(shù)據(jù)預存更快。為保持sequence與driver通信,只要seq_item_port有數(shù)據(jù)包就會通過get_next_item(req)獲取,并通過send(req)函數(shù)按照驗證Spec時序驅(qū)動至DUT,并執(zhí)行item_done作為當前transaction發(fā)送結(jié)束的標志。Sequence掛載于能發(fā)送tarnsaction的sequencer上。每個sequence繼承于uvm_sequence,默認uvm_sequence_item類型,必須實現(xiàn)body函數(shù),當sequence被調(diào)用后會自動執(zhí)行body中的代碼[11]。

在uvm_test階段,自定義initialphase配置硬件加速器的默認值,構(gòu)建初始化測試用例,可以用來對驗證平臺做冒煙測試。sequence中配置寄存器值時,保證隨機化、參數(shù)化運行,降低錯誤概率。

3 測試用例設計

驗證功能測試點根據(jù)硬件加速器實際應用場景和卷積計算等特性來制定各種測試用例。表1所列為IP的基本功能測試點,包括寄存器值可變范圍和覆蓋次數(shù)統(tǒng)計。

表1 IP功能測試點

按照數(shù)據(jù)位寬測試,用獨熱碼以數(shù)據(jù)流推動,直觀計數(shù),無需占用大量資源。異常測試,在卷積核與圖層計算過程中,再次使能卷積觸發(fā)信號不受影響。Dist操作符允許不同值的概率選取不同,同時也保證了邊界測試帶有相應的權重。

通過隨機化可以通過利用CPU的時間來換取人工檢查的時間,提高效率,提供足夠的激勵。采用受約束的隨機測試法(CRT)產(chǎn)生測試集:使用隨機的數(shù)據(jù)流為DUT產(chǎn)生輸入的測試代碼。改變偽隨機數(shù)發(fā)生器(PRNG)的種子(seed)。同時在測試設計時考慮設計規(guī)范的邊界處,甚至測試設計規(guī)范之外的行為[12,13]。

4 代碼及功能覆蓋組模塊

覆蓋率是驗證DUT的功能正確性與完整性的重要指標,分為代碼覆蓋率和功能覆蓋率。如圖4代碼覆蓋率是工具自動搜集編寫好的RTL代碼,包括行、條件、跳轉(zhuǎn)、分支和狀態(tài)機。功能覆蓋率是對數(shù)據(jù)組合和行為序列的檢查。在本文中功能覆蓋率是通過編寫覆蓋組、覆蓋點和交叉覆蓋主要是獲得對寄存器配值的數(shù)據(jù)覆蓋率,同時也是硬件加速器各層功能的測試指標。

圖4 覆蓋率總結(jié)圖

硬件加速器驗證IP的功能覆蓋組設計考慮了架構(gòu)特性,包括旁路模式、乘加陣列、緩存切換、多圖層并行,根據(jù)總線位寬還考慮了數(shù)據(jù)讀寫次數(shù),圖像大小邊界測試以及計算觸發(fā)方式等異常測試。

如圖5所示是覆蓋率的收斂過程,由于功能覆蓋率是人為定義的,可能存在遺漏的功能場景,需要對測試用例不斷的進行迭代[14,15]。

圖5 覆蓋率收斂流程

5 結(jié)果分析

該驗證IP對不同總線位寬、數(shù)據(jù)與卷積核單個像素位寬、卷積核大小、步長及輸入輸出層數(shù)等需求,配置宏定義參數(shù),連續(xù)多幅圖片卷積的寄存器值切換,波形包含時鐘沿觸發(fā)跳變的脈沖信號,是邏輯正確運行的最直觀體現(xiàn)。

由圖6看出數(shù)據(jù)從讀通道寫入,預存一定量的數(shù)據(jù)到buffer,保證列數(shù)不小于卷積核尺寸,卷積核數(shù)據(jù)讀入方式與其類似,由寄存器模型配值去觸發(fā)卷積計算。

圖6 數(shù)據(jù)預緩存波形圖

由圖7看出通過APB總線完成寄存器讀寫,時鐘頻率遠低于模塊時鐘。先傳輸kernel寄存器值,等待kernel寄存器標志位有效;再配值數(shù)據(jù)寄存器,等待數(shù)據(jù)通道寄存器標志位有效,再將soft_trigger信號置1,等待卷積計算狀態(tài)位拉低后,一幅圖片處理完成。

圖7 APB總線波形圖

圖8表示數(shù)據(jù)的輸出,RTL發(fā)出請求信號,驗證部分隨即給出確認信號以及一筆總線位寬的數(shù)據(jù)。驗證結(jié)果表明HWPE的功能已完全實現(xiàn),測試激勵覆蓋了所有功能點。

圖8 數(shù)據(jù)輸出波形圖

6 結(jié)論

UVM作為IC最有效的驗證方法學,前期搭建驗證平臺耗費一定的時間,但其重用性與可擴展性強,測試用例的驗證效率高,極大的縮短了IC設計的研發(fā)周期。本文搭建了基于UVM的硬件加速器模塊的可重用驗證平臺,充分驗證了卷積神經(jīng)網(wǎng)絡的功能正確性,完成了芯片設計電路邏輯關系的分析。該驗證架構(gòu)按照網(wǎng)絡模型需求,做少量的代碼修改,即可投入其它的驗證流程中。

猜你喜歡
信號功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
孩子停止長個的信號
關于非首都功能疏解的幾點思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
中西醫(yī)結(jié)合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 超级碰免费视频91| 91午夜福利在线观看精品| 久久综合亚洲色一区二区三区| 77777亚洲午夜久久多人| 亚洲第一香蕉视频| 国产v欧美v日韩v综合精品| 欧美成人精品在线| 2021国产精品自拍| 亚洲欧洲AV一区二区三区| 免费中文字幕在在线不卡| 国产麻豆福利av在线播放 | 国产剧情一区二区| 最新日本中文字幕| 婷婷色一二三区波多野衣| 免费看美女自慰的网站| 亚洲人成高清| 日韩性网站| 国产精品无码久久久久AV| 99re这里只有国产中文精品国产精品| 91美女视频在线观看| 黄色网在线免费观看| 91精品伊人久久大香线蕉| 无码久看视频| 日本午夜在线视频| 久久亚洲国产最新网站| 久久精品女人天堂aaa| 国产激情在线视频| 国产又黄又硬又粗| 亚洲人成网站观看在线观看| 欧美精品在线观看视频| 天天躁日日躁狠狠躁中文字幕| 国产不卡网| 亚洲国产精品不卡在线| a毛片在线| 国产噜噜噜视频在线观看| 九九久久精品免费观看| 国产在线欧美| 午夜在线不卡| 亚洲天堂区| 激情五月婷婷综合网| 自拍偷拍一区| 国产精品视频观看裸模| 亚洲av无码人妻| 精品国产污污免费网站| 久久香蕉国产线看观看精品蕉| 欧美国产日产一区二区| 国产欧美日韩资源在线观看| 国产精品手机在线播放| 精品超清无码视频在线观看| 亚洲大尺度在线| 国产情精品嫩草影院88av| 免费一级α片在线观看| 无码免费视频| 欧美激情视频一区| 亚洲精品大秀视频| 欧美97欧美综合色伦图 | 久久青草精品一区二区三区| 少妇人妻无码首页| 广东一级毛片| 免费一级毛片完整版在线看| 婷婷成人综合| 久久久久久久蜜桃| 亚洲综合色在线| 欧美一区二区三区国产精品| 国产综合另类小说色区色噜噜| 亚卅精品无码久久毛片乌克兰| 伊人蕉久影院| 免费在线播放毛片| 免费jizz在线播放| 亚洲无码视频一区二区三区| 国产欧美日韩精品综合在线| 久久a毛片| 青青青国产精品国产精品美女| 国产激情第一页| 91精品啪在线观看国产91九色| 欧美19综合中文字幕| 人妻熟妇日韩AV在线播放| 婷婷亚洲视频| 国产经典三级在线| 国内精品视频| 国产午夜一级淫片| v天堂中文在线|