曹立勇,姚程寬*,盧燦舉,光 峰,張新華(.安慶醫(yī)藥高等??茖W(xué)校 公共基礎(chǔ)部,安徽 安慶 46003;.合肥電子工程學(xué)院,合肥 30037)
硬件模擬器對(duì)仿真加速的測(cè)試平臺(tái)研究
曹立勇1,姚程寬1*,盧燦舉2,光峰1,張新華1
(1.安慶醫(yī)藥高等??茖W(xué)校 公共基礎(chǔ)部,安徽 安慶 246003;2.合肥電子工程學(xué)院,合肥 230037)
硬件模擬器是指通過(guò)軟件開發(fā)實(shí)現(xiàn)的硬件模擬,是一個(gè)模擬程序的過(guò)程,多數(shù)用于故障樹分析和對(duì)VLSI邏輯設(shè)計(jì)測(cè)試。為了提高對(duì)于不同平臺(tái)的穩(wěn)定性和可移植性,需要通過(guò)軟件測(cè)試找出模擬器程序在正常運(yùn)行時(shí)的問(wèn)題和缺陷?;趯?shí)驗(yàn)的基礎(chǔ)上,指出了模擬器測(cè)試平臺(tái)在開發(fā)過(guò)程中存在的問(wèn)題以及解決方案,旨在為同類的研究提供借鑒和參考。
硬件模擬器;仿真加速;軟件測(cè)試
利用硬件模擬器進(jìn)行邏輯仿真,如果事先知道設(shè)計(jì)在仿真中的運(yùn)行速度,即規(guī)定時(shí)間內(nèi)用了多少設(shè)計(jì)時(shí)鐘來(lái)衡量,就能很容易地估計(jì)出模擬器的原始性能。作為實(shí)驗(yàn),假設(shè)仿真器的運(yùn)行速度為每秒1 000個(gè)設(shè)計(jì)時(shí)鐘,模擬器的運(yùn)行速度為每秒±1 M個(gè)設(shè)計(jì)時(shí)鐘,理論上可以將原始性能提高1 000倍。原始性能就是模擬器在等待測(cè)試平臺(tái)過(guò)程中,或等待外部事件的條件下自由運(yùn)行時(shí)的性能。
硬件模擬性能對(duì)測(cè)試平臺(tái)有很大的依賴。設(shè)定的仿真案例:工作站處理設(shè)計(jì)話費(fèi)80%的時(shí)間,在測(cè)試平臺(tái)上花費(fèi)20%的時(shí)間。假設(shè),模擬器能夠無(wú)限制的快速運(yùn)行設(shè)計(jì),那么可以獲得比仿真快5倍的速度,這與上面提到的可以實(shí)現(xiàn)1 000倍的原始性能有很大的距離?,F(xiàn)實(shí)的工業(yè)生產(chǎn)體系中,一般追求至少100倍加速性能,因此我們需要將測(cè)試平臺(tái)的巨大多數(shù)負(fù)載轉(zhuǎn)移給模擬器,從而確保少量任務(wù)運(yùn)行在工作站就能夠高效地與模擬器的速度進(jìn)行匹配[1-2]。為此,可以重點(diǎn)從以下幾方面進(jìn)行研究。
1.1負(fù)載轉(zhuǎn)移使用事務(wù)處理器
對(duì)于將測(cè)試平臺(tái)的到模擬器這個(gè)非常重要的過(guò)程,需要使用加速的事務(wù)處理器。處理器中的循環(huán)狀態(tài)機(jī)需要接受來(lái)自行為測(cè)試平臺(tái)的高層數(shù)據(jù),再將模擬速度轉(zhuǎn)換成多個(gè)設(shè)計(jì)時(shí)鐘。最小大約是10個(gè)設(shè)計(jì)時(shí)鐘與每塊測(cè)試平臺(tái)數(shù)據(jù)的比例。這個(gè)比值越高,模擬器以±1M Hz的原始速度運(yùn)行的可能性就越大。AMBA總線周期大約在10倍的比例,而以太網(wǎng)數(shù)據(jù)包每個(gè)都可以達(dá)到數(shù)千個(gè)設(shè)計(jì)時(shí)鐘[3]。
1.2保障高層數(shù)據(jù)處理能力
對(duì)事務(wù)處理器進(jìn)行加速后,就需要為測(cè)試平臺(tái)提供足夠快速的高層數(shù)據(jù)處理能力,目的就是要對(duì)運(yùn)行在工作站上測(cè)試平臺(tái)和運(yùn)行在模擬器中的事務(wù)處理器二者之間的通信效率進(jìn)行匹配[4]。
1.3測(cè)試平臺(tái)選擇
測(cè)試平臺(tái)的選擇,需要借助協(xié)同建模技術(shù),對(duì)平臺(tái)組件,特別是驅(qū)動(dòng)器、監(jiān)視器等引腳數(shù)量的較低元件進(jìn)行綜合集成,并與待測(cè)設(shè)備(DUT)一起合成到模擬器中運(yùn)行,對(duì)于其它不可集成的平臺(tái)組件,如記分板、發(fā)生器、覆蓋率收集器等具有較高事務(wù)級(jí)的組件,仍放在在仿真器的軟件中運(yùn)行[5-7]。測(cè)試平臺(tái)主要考慮以下性能:
1)協(xié)同模擬支持eXtended RTL(XRTL)。XTRL是對(duì)SystemVerilog的RTL子集的擴(kuò)展,可以綜合運(yùn)用到Veloce模擬平臺(tái)上。
2)XRTL包括初始和最終模塊、行為級(jí)時(shí)鐘發(fā)生與歸位邏輯、隱性FSM任務(wù)、SystemVerilog-DPI任務(wù)、同步事件、異步分析、等待任務(wù)等,因此提高HDL建模靈活性無(wú)需犧牲性能。
3)針對(duì)數(shù)據(jù)交換的特點(diǎn):不很頻繁,但信息量較大,而且高頻率引腳活動(dòng)受限,所以它只能以最高的模擬器時(shí)鐘速率運(yùn)行。由于仿真器和模擬器之間的通信不是周期性進(jìn)行的,而是基于事務(wù)的,因此能夠減小通信的開銷,從而提高性能。
4)統(tǒng)一標(biāo)準(zhǔn)協(xié)同模擬建模接口:2(SCE-MI 2),這是一組用于內(nèi)部定義的標(biāo)準(zhǔn)建模接口,作為結(jié)構(gòu)化模型的多通道通信,它廣泛應(yīng)用于在描述系統(tǒng)行為(即HVL側(cè))的軟件模型和描述硬件設(shè)計(jì)實(shí)現(xiàn)(即HDL側(cè))二者之間。它以SystemVerilog-DPI為基礎(chǔ),可用來(lái)實(shí)現(xiàn)模擬器中運(yùn)行的HDL代碼與工作站中運(yùn)行的C/C++/SystemC代碼之間的通信。
5)協(xié)同建模(又稱為協(xié)同模擬)方法最大程度地將基于純仿真的驗(yàn)證和硬件輔助加速二者之間的復(fù)用得以實(shí)現(xiàn)。它支持真正單一源、與IEEE 1800 SystemVerilog完全兼容的事務(wù)級(jí)測(cè)試平臺(tái),而且同時(shí)實(shí)現(xiàn)對(duì)仿真和加速進(jìn)行交換。其在加速模式中,提供實(shí)質(zhì)性的運(yùn)行同步改進(jìn),同時(shí)保留了仿真器的所有完整性與驗(yàn)證能力。協(xié)同建模即支持現(xiàn)代覆蓋率驅(qū)動(dòng)、SystemVerilog中約束性隨機(jī),也支持基于斷言的技術(shù),如OVM、UVM甚至VMM等。
在使用SystemVerilog的過(guò)程中,利用Veloce2實(shí)現(xiàn)基于事務(wù)的加速通常會(huì)有以下幾方面的要求。
2.1實(shí)現(xiàn)必須遵循協(xié)同建模的原則
這個(gè)原則意味著需要將測(cè)試平臺(tái)分割成兩部分,即一個(gè)是可綜合的HDL側(cè)(模擬器上),另一個(gè)是獨(dú)立的HVL側(cè)(工作站上),并且由分別在不同物理設(shè)備上的工具來(lái)處理,然后在事務(wù)級(jí)完成交互。HDL側(cè)必須按照現(xiàn)代綜合技術(shù)的極限設(shè)計(jì),并且能夠與HVL側(cè)進(jìn)行快速高效的通信,從而減小對(duì)原始模擬器性能的影響[8-10]。
2.2基于分層技術(shù)的原則
廣泛使用的分層原理和技術(shù),也同樣適用基于事務(wù)的測(cè)試平臺(tái)。這里的分層主要是將測(cè)試平臺(tái)的定時(shí)部分和未定時(shí)(或部分定時(shí))部分分開,即HVL側(cè)和HDL側(cè)的代碼是嚴(yán)格獨(dú)立的[11]。
2.3采用“單一源”測(cè)試平臺(tái)
協(xié)同建模需要采用“單一源”測(cè)試平臺(tái)進(jìn)行仿真和加速。這就要求HVL-HDL劃分在協(xié)同模擬和單獨(dú)仿真中必須完成相同的功能,即模擬器測(cè)試平臺(tái)不可以使用在編譯或運(yùn)行時(shí)的開關(guān),這些開關(guān)能夠禁止代碼的所有分支,并能很好地將一個(gè)源代碼分割成兩個(gè)獨(dú)立的代碼庫(kù)[12]。
2.4保留用于分析和調(diào)試的相關(guān)仿真器功能
這是要求在使用SystemVerilog和UVM等驗(yàn)證方法創(chuàng)建模塊化時(shí)要將可復(fù)用的驗(yàn)證組件和測(cè)試平臺(tái)的優(yōu)勢(shì)一起保留下來(lái)。這里的核心問(wèn)題就是在面向?qū)ο蟮姆椒ㄖ袕V為人知的遠(yuǎn)程代理設(shè)計(jì)圖案。在這些代理設(shè)計(jì)的圖案中,訪問(wèn)遠(yuǎn)程對(duì)象(例如HDL側(cè)的組件)應(yīng)受到應(yīng)用域中代理(如HVL側(cè)的組件)的控制,并通過(guò)一些間接參考單獨(dú)地訪問(wèn)遠(yuǎn)程對(duì)象。
每個(gè)事務(wù)處理器都有一個(gè)代理,二者之間的通信采用一種遠(yuǎn)程調(diào)用機(jī)制,多數(shù)使用函數(shù)調(diào)用或BFM任務(wù)。這種遠(yuǎn)程調(diào)用機(jī)制將響應(yīng)器、驅(qū)動(dòng)器和監(jiān)視器綜合集成使用,起源于Accellera SCE-MI 2函數(shù)模型,并具有與SCE-MI 2相同的性能優(yōu)勢(shì)[13-14]。含有事務(wù)處理器及代理測(cè)試平臺(tái)的系統(tǒng)結(jié)構(gòu)如圖1所示。
同時(shí)對(duì)于測(cè)試平臺(tái)而言,單個(gè)頂層模塊封裝了測(cè)試平臺(tái)的所有元素。這包括了所有驗(yàn)證環(huán)境組件、時(shí)鐘和復(fù)位發(fā)生器、RTL DUT以及用于綁定DUT外部引腳供環(huán)境組件訪問(wèn)的任何SystemVerilog接口。
這種設(shè)計(jì)的優(yōu)點(diǎn)是有利于仿真,缺點(diǎn)就是協(xié)同模擬。因?yàn)樗髢蓚€(gè)獨(dú)立的部分,一個(gè)可綜合協(xié)同的部分,另一個(gè)部分則要求無(wú)需直接交叉信號(hào)訪問(wèn)就能夠進(jìn)行事務(wù)處理。實(shí)現(xiàn)協(xié)同模擬要求可以從以下三個(gè)高層步驟方面加以定義:
1)設(shè)計(jì)2個(gè)獨(dú)立的頂層模塊層:HDL和HVL。
2)設(shè)計(jì)定時(shí)部分的測(cè)試平臺(tái)和模塊,要求在HDL層下進(jìn)行模塊集成。
3)設(shè)計(jì)在HDL和HVL層之間使用事務(wù)級(jí)接口。
圖1 基于事務(wù)并含有事務(wù)處理器及代理測(cè)試的系統(tǒng)結(jié)構(gòu)
4.1并行模擬器
BGLSim是IBM開發(fā)的BlueGene/L的并行模擬器,運(yùn)行在Lunix機(jī)群(Cluster)上,其目標(biāo)是模擬更大規(guī)模的機(jī)群。BGLSim最高可以對(duì)512臺(tái)真實(shí)的機(jī)器進(jìn)行更大規(guī)模的模擬,模擬實(shí)驗(yàn)用了16臺(tái)機(jī)器[15-16]。
4.2模擬平臺(tái)
HLA(High Level Architecture)是美國(guó)國(guó)防部提供的建模與仿真大綱的服務(wù)架構(gòu),主要用于提高仿真資源的重用性和仿真應(yīng)用的互操作性。2000年,經(jīng)過(guò)IEEE1516正式發(fā)布,HLA成為了國(guó)際標(biāo)準(zhǔn)[17]。
4.3節(jié)點(diǎn)及數(shù)據(jù)
離散型節(jié)點(diǎn)測(cè)試,利用節(jié)點(diǎn)之間的上傳和下載固定數(shù)據(jù)量的時(shí)間,來(lái)考察原模擬器和改進(jìn)的事務(wù)型模擬器的性能。使用16個(gè)節(jié)點(diǎn),其中1個(gè)初始化為種子節(jié)點(diǎn),同時(shí)下載一個(gè)的文件,文件大小本別是1 M,10 M,30 M,60 M,100 M,300 M,600 M,1T,測(cè)試最后一個(gè)下載完成的時(shí)間。結(jié)果如圖2所示。當(dāng)數(shù)據(jù)包的大小超過(guò)500 M時(shí),事務(wù)型模擬器表現(xiàn)出良好的性能。
圖2 模擬器性能比較圖
本文的測(cè)試僅使用了離散型的節(jié)點(diǎn)測(cè)試,連續(xù)型的節(jié)點(diǎn)測(cè)試是我們未來(lái)的研究方向之一。使用硬件模擬仿真加速平臺(tái),已經(jīng)被應(yīng)用到越來(lái)越多的鄰域,比如航海模擬器、飛行模擬器、計(jì)算機(jī)模擬器等。對(duì)這一問(wèn)題的研究還處在起步階段,隨著不同平臺(tái)的模擬器的出現(xiàn),市場(chǎng)的需求巨大,同時(shí)由于科學(xué)技術(shù)的不斷發(fā)展,硬件模擬器會(huì)成為一個(gè)熱門的研究方向。
[1]張激,李寧波.基于二進(jìn)制翻譯的仿真器關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)工程,2010,36(16):246-248.
[2]梁延峰.電子海圖、雷達(dá)圖像疊加處理軟件技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué).2010.
[3]樊諭涵,寧偉.飛行模擬器中的大氣數(shù)據(jù)仿真系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2015,34(13):21-23
[4]徐國(guó)平.雷達(dá)目標(biāo)信號(hào)模擬器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2013,21(16):31-33.
[5]朱利曉.一種多功能便攜式信號(hào)模擬器的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2011.
[6]劉麗麗,王可東.衛(wèi)星信號(hào)模擬器研究現(xiàn)狀及發(fā)展趨勢(shì)[J].全球定位系統(tǒng),2010,35(3):58-61
[7]奚志林,杜雪珍,顏玲龍.一種基于DSP的高精度軸角模擬器[J].電子質(zhì)量,2012.24(12):18-22
[8]孫瑩,萬(wàn)秋華,王樹潔,等.航天級(jí)光電編碼器的信號(hào)處理系統(tǒng)設(shè)計(jì)[J].光學(xué)精密工程,2010,18(5):1182-1188.
[9]魏興昌,梁昌洪.正交小波和雙正交小波在小波矩量法中的應(yīng)用比較[J].微波學(xué)報(bào),2000,16(4):384-388.
[10]楊明亞,楊穎潔.基于VRML的虛擬現(xiàn)實(shí)研究[J].唐山師范學(xué)院學(xué)報(bào),2013,35(2):50-52.
[11]趙麗麗,張盛兵,張萌,等.基于CUDA的高速FFT計(jì)算[J].計(jì)算機(jī)應(yīng)用研究,2011,28(4):1556-1559.
[12]李鑫,彭健,賈長(zhǎng)偉,等.氣動(dòng)負(fù)載虛擬加載系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2015,23(5):1769-1771.
[13]孫超,林占江.基于DDS的雷達(dá)任意波形信號(hào)源的研究[J].電子測(cè)量與儀器學(xué)報(bào)2008,22(2):31-35.
[14]冀臻,孫運(yùn)強(qiáng),姚愛琴.GNSS衛(wèi)星信號(hào)模擬器碼和載波NCO研究與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2011,19(3):685-687
[15]何林,牛二兵,高潔,等.基于DSPI/O空間與旋轉(zhuǎn)變壓器的位置采樣系統(tǒng)設(shè)計(jì)[J].微電機(jī),2011,44(10):44-46
[16]唐紅,黃鼎.通用Bittorrent模擬器研究[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(15):130-133:44-46
[17]劉雨辰,王佳,陳云霽,等.計(jì)算機(jī)系統(tǒng)模擬器研究綜述[J].計(jì)算機(jī)研究與發(fā)展,2015,51(1):3-13
On the Testing Platform of Hardware Emulator to SimulationAcceleration
CAO Li-yong1,YAO Cheng-kuan1,LU Can-ju2,GUANG Feng2,ZHANG Xin-hua1
(1.Department of Basic,Anqing Medical College,Anqing,Anhui 246003,China;2.Electronic Engineering Institute,Hefei,Anhui 230037,China)
A hardware emulator generates the hardware simulation by software development,which shows the process of the simulation.It is mainly used for Fault Tree Analysis and VLSL logical design test.To improve the emulator’s stability and portability towards different platforms,we need to use the software testing to find the problems and defaults of the emulator when it’s working.The thesis purports to find the problems of the developing emulator testing platform as well as the solutions,which would provide some references to the related researches.
the hardware emulator;simulation acceleration;software testing
TP391.97
A
1673-1891(2016)02-0036-03
10.16104/j.issn.1673-1891.2016.02.011
2016-03-03
安徽省教育廳2016年高校優(yōu)秀中青年骨干人才國(guó)外訪學(xué)研修重點(diǎn)項(xiàng)目(337);安徽省教育廳2014年省級(jí)重點(diǎn)教學(xué)研究項(xiàng)目“翻轉(zhuǎn)課堂教學(xué)模式實(shí)踐與研究——以《高等數(shù)學(xué)》教學(xué)為例”(2014jyxm462);安徽省教育廳2013年省級(jí)質(zhì)量工程“精品資源共享課程《高等數(shù)學(xué)》”(2013gxk113)。
曹立勇(1978—),男,安徽安慶人,碩士,講師,研究方向:數(shù)據(jù)挖掘,物聯(lián)網(wǎng)。*為通信作者。
西昌學(xué)院學(xué)報(bào)(自然科學(xué)版)2016年2期