用於軟件驗證的硬件加速仿真之一:物理和虛擬探針
發布時間:2017-05-25 責任編輯:susan
【導讀】在驗證領域,虛擬探針zengqiangleyingjianjiasufangzhenzuoweishujuzhongxinziyuanduiyingjianshejirenyuanheruanjiankaifarenyuandexiyinli。yingjianjiasufangzhenbuduanzhengmingtabenshenjiushiyizhongbianlidegongju,jikeyongyuyingjian/軟件協同驗證,也可用於測試硬件和軟件的集成。
啟動操作係統並執行軟件應用程序需要經過數十億個驗證周期 — 傳(chuan)統(tong)的(de)基(ji)於(yu)軟(ruan)件(jian)的(de)分(fen)析(xi)工(gong)具(ju)無(wu)法(fa)勝(sheng)任(ren)這(zhe)項(xiang)任(ren)務(wu)。隻(zhi)有(you)基(ji)於(yu)硬(ying)件(jian)的(de)驗(yan)證(zheng)引(yin)擎(qing)才(cai)可(ke)提(ti)供(gong)應(ying)對(dui)這(zhe)一(yi)挑(tiao)戰(zhan)所(suo)需(xu)的(de)吞(tun)吐(tu)量(liang)。正(zheng)因(yin)為(wei)如(ru)此(ci),硬(ying)件(jian)加(jia)速(su)仿(fang)真(zhen)和(he) FPGA 原型設計才會成為當今設計和驗證團隊的驗證工具箱中的必備引擎。
通過硬件加速仿真和 FPGA 原(yuan)型(xing)設(she)計(ji),嵌(qian)入(ru)式(shi)軟(ruan)件(jian)開(kai)發(fa)人(ren)員(yuan)能(neng)夠(gou)驗(yan)證(zheng)嵌(qian)入(ru)式(shi)軟(ruan)件(jian)並(bing)執(zhi)行(xing)係(xi)統(tong)驗(yan)證(zheng),這(zhe)是(shi)一(yi)項(xiang)極(ji)具(ju)吸(xi)引(yin)力(li)的(de)功(gong)能(neng)。隻(zhi)有(you)通(tong)過(guo)硬(ying)件(jian)加(jia)速(su)仿(fang)真(zhen),他(ta)們(men)才(cai)能(neng)確(que)認(ren)嵌(qian)入(ru)式(shi)係(xi)統(tong)軟(ruan)件(jian)能(neng)夠(gou)與(yu)底(di)層(ceng)硬(ying)件(jian)協(xie)同(tong)工(gong)作(zuo),因(yin)為(wei) FPGA 原型設計沒有提供可調試內部工作的硬件設計可見性。
另外,在設計周期中,項目組成員可以使用硬件加速仿真的時間通常遠早於使用 FPGA 原型的時間。因此,使用硬件加速仿真技術,軟件開發團隊開始進行驗證的時間要早於使用 FPGA 原型的情況。
yingjiangongchengshiyekeyirenshidaozaiyingjianjiasufangzhenshangyunxingruanjiandeyoushi。dangshijiruanjianchanpindiyicizaiyingjianshangyunxingshi,tajihuzonghuibaoluchuyingjiancuowu,jishizuiquanmiandeyanzhengfangfayehuiyilouyixiecuowu。jizaoyunxingruanjiankeyibaoluchuzhexiecuowu,yibianwomenjiayijiejue。zheyangbujinjiandan,erqiechengbenjiaodi。
物理探針
過去,軟件開發人員使用物理 JTAG 探針來調試在硬件加速器上運行的代碼(圖 1)。JTAG biaozhundingyileyixiliexinhao,yijitongguosiguanjiaojiekouduquhexieruwulixinpianzhongdejicunqidefangfa。zhezhongzuofadechuzhongshitigongyizhongceshixinpiandefangfa,rangceshigongchengshikuitanfengzhuangxinpiandeneibu,querentashifouzhengchanggongzuo。
ruanjiankaifarenyuanyishidaotamenkeyishiyongxiangtongdejiekou,duquhexieruxinpianzhongdechuliqidetongyongjicunqi。nenggouduquhexieruchuliqidezhujicunqi,yiweizhetamenkeyitiaoshizaichuliqishangyunxingdechengxu。
通過一些巧妙的接口,他們可以使用嵌入式調試器(例如 Lauterbach 的 Trace-32 或 ARM 的 DS-5),將命令發送到 JTAG 探針,以提取或設置連接到探針的板載處理器的狀態。這是開發人員運行和調試嵌入式係統上的“裸機”程序和驅動程序的最常用方法。
使用當今的硬件加速仿真係統,可通過連接到外部器件的任何 I/O 卡,輸出設計的任何信號。這種方法可用於輸出 JTAG 接口的四個信號。通過將這些來自硬件加速器中的設計的信號連接到 JTAG 探針,軟件開發人員能夠在硬件加速仿真設計上,執行與在原型板上相同的調試工作。
由於 JTAG 探tan針zhen將jiang在zai設she計ji後hou期qi用yong於yu原yuan型xing板ban上shang,並bing且qie可ke能neng還hai在zai後hou續xu項xiang目mu中zhong使shi用yong,因yin此ci軟ruan件jian開kai發fa人ren員yuan一yi般ban都dou了le解jie該gai探tan針zhen的de使shi用yong方fang法fa和he作zuo用yong。在zai硬ying件jian加jia速su仿fang真zhen設she計ji上shang調tiao試shi軟ruan件jian時shi,軟ruan件jian開kai發fa人ren員yuan自zi然ran會hui采cai用yong這zhe種zhong熟shu悉xi的de工gong具ju。
雖然 JTAG jiekourangtiaoshiqinenggouzhijieduquhexierujicunqi,danyaozhengqueditiaoshichengxu,haixuyaonenggouduquhexieruneicunbingqiekongzhichengxudezhixing。weilemanzuzhezhongxuqiu,chuliqishejirenyuantianjialetiaoshiqikefangwendejicunqi,yibianjiangneicunduquhexieruzhilingcharudaozhixingguandaozhong。zheyangyilai,tiaoshiqijiunenggouwanquanfangwenshejizhongdesuoyouneicunheneicunyingshedeqijian。
另外,這些設計人員還采用了斷點寄存器和其他調試支持電路,從而令 JTAG 調試器能夠控製程序的執行。這意味著,通過連接至處理器的 JTAG,調試器能夠顯示程序源代碼、處理器的寄存器、內存、變bian量liang以yi及ji程cheng序xu的de堆dui棧zhan。因yin此ci,調tiao試shi器qi能neng夠gou設she置zhi斷duan點dian,運yun行xing和he單dan步bu調tiao試shi程cheng序xu,而er這zhe些xie正zheng是shi軟ruan件jian開kai發fa人ren員yuan期qi望wang現xian代dai化hua軟ruan件jian調tiao試shi環huan境jing能neng夠gou提ti供gong的de功gong能neng。
處理 JTAG 探針問題
雖然 JTAG 探針實現了在硬件加速仿真設計上的軟件調試,但它也有缺點。第一,JTAG 探tan針zhen和he在zai硬ying件jian加jia速su器qi中zhong運yun行xing的de設she計ji都dou有you它ta們men自zi己ji的de自zi激ji時shi鍾zhong。為wei了le保bao持chi同tong步bu,這zhe些xie時shi鍾zhong必bi須xu維wei持chi一yi致zhi的de速su度du。如ru果guo做zuo不bu到dao,調tiao試shi器qi和he設she計ji之zhi間jian的de連lian接jie將jiang會hui丟diu失shi。
很多情況下,需要重置探針;而(er)有(you)些(xie)時(shi)候(hou),還(hai)將(jiang)需(xu)要(yao)重(zhong)置(zhi)設(she)計(ji)本(ben)身(shen)。有(you)時(shi)減(jian)慢(man)甚(shen)至(zhi)停(ting)止(zhi)硬(ying)件(jian)加(jia)速(su)器(qi)中(zhong)的(de)設(she)計(ji)時(shi)鍾(zhong)是(shi)非(fei)常(chang)有(you)用(yong)的(de),因(yin)為(wei)這(zhe)樣(yang)可(ke)以(yi)采(cai)集(ji)和(he)上(shang)載(zai)設(she)計(ji)上(shang)的(de)波(bo)形(xing)。這(zhe)樣(yang)一(yi)來(lai),開(kai)發(fa)人(ren)員(yuan)就(jiu)能(neng)夠(gou)查(zha)看(kan)設(she)計(ji)的(de)狀(zhuang)態(tai),或(huo)者(zhe)對(dui)設(she)計(ji)進(jin)行(xing)強(qiang)製(zhi)賦(fu)值(zhi),使(shi)其(qi)變(bian)換(huan)到(dao)新(xin)值(zhi)。實(shi)質(zhi)上(shang),如(ru)果(guo)硬(ying)件(jian)加(jia)速(su)器(qi)上(shang)的(de)時(shi)鍾(zhong)不(bu)能(neng)減(jian)慢(man)或(huo)停(ting)止(zhi),硬(ying)件(jian)開(kai)發(fa)人(ren)員(yuan)將(jiang)會(hui)丟(diu)失(shi)諸(zhu)多(duo)硬(ying)件(jian)調(tiao)試(shi)功(gong)能(neng)。
使用 JTAG tanzhencunzaidediergewentishixingneng。youyucunzailianggedulideshizhongyu,yigezaiyingjianjiasuqishang,lingyigezaitanzhenshang,shujujiangzailianggeyuzhijianchuandi,jiuhuichanshengkuashizhongyuwenti。weilejiejuezhegewenti,tanzhenshangdeshizhongsudutongchangdiyuchuliqideshizhongsudu。zaiyuanxingbanshang,chuliqideshizhensudukedadaojibaizhaoheshenzhiqianzhaohe,zhebushiwenti。danzaiyingjianjiasufangzhenzhong,shizhongyunxingsuduweiyizhaohehuoliangzhaohe,zhekenengrangsudujianmanhenduo。
例如,在 ARM Cortex-A57 中分步運行單個指令,需要超過 400 萬個比特的 JTAG 掃描鏈活動。如果處理器的時鍾在 2 MHz 的頻率下運行,JTAG 時鍾的頻率是它的四分之一,也就是 500 kHz,則在分步運行之後,需要 8 秒才能更新調試器中的視圖。
另一個性能問題是程序下載時間。軟件開發人員使用掃描鏈,通過 JTAG 探tan針zhen將jiang程cheng序xu下xia載zai到dao目mu標biao。如ru果guo程cheng序xu很hen大da,則ze將jiang程cheng序xu加jia載zai到dao存cun儲chu器qi可ke能neng要yao花hua費fei一yi個ge小xiao時shi甚shen至zhi更geng長chang時shi間jian。大da多duo數shu軟ruan件jian開kai發fa人ren員yuan無wu法fa接jie受shou這zhe種zhong性xing能neng水shui平ping。
JTAG 事務處理器
有一種使用 JTAG 調(tiao)試(shi)器(qi)的(de)方(fang)法(fa)可(ke)以(yi)消(xiao)除(chu)這(zhe)些(xie)問(wen)題(ti)。硬(ying)件(jian)加(jia)速(su)仿(fang)真(zhen)係(xi)統(tong)能(neng)夠(gou)通(tong)過(guo)電(dian)路(lu)和(he)硬(ying)件(jian)加(jia)速(su)器(qi)內(nei)置(zhi)的(de)編(bian)程(cheng)功(gong)能(neng),驅(qu)動(dong)和(he)采(cai)樣(yang)設(she)計(ji)中(zhong)的(de)任(ren)何(he)信(xin)號(hao)。我(wo)們(men)無(wu)需(xu)通(tong)過(guo) I/O 卡從設計中采集信號,然後使用物理探針予以驅動,而是可以使用“事務處理器”,通過編程方式驅動設計中的 JTAG 信號。與物理探針相同,事務處理器也可以驅動相同的信號,使其變換到相同的值,從而提供相同的調試功能。
由於設計和 JTAG 事務處理器都在硬件加速仿真係統的控製下,因此時鍾由硬件加速器控製。時鍾域可以同步,因此能消除多個時鍾的問題。
也就是說,硬件加速器上的時鍾可以減慢或停止,以便執行硬件調試活動,例如收集波形或檢驗設計。設計和 JTAG 事務處理器之間的連接不再取決於時間,而是由硬件加速仿真係統進行控製。
yingjianjiasuqinenggouziyoudijianmanhuotingzhishizhong,ranhouqidonghuojiakuaishizhong,congerkebimiandiushishejihetiaoshiqizhijiandelianjie。ruguoyingjianshejirenyuanjiangqishejilianjiedao JTAG tiaoshiqi,tamenjiunengliyongyingjianjiasuqitigongdequanbuyingjiantiaoshigongneng。ruciyilai,tamenyexuhainengzaiyingjianjiasufangzhenshejishangshiyonggengweifuzadeceshipingtai。
使用物理 JTAG 探針時,不能使用很可能減慢硬件加速仿真吞吐的測試平台,例如開放式驗證方法學 (OVM) 和通用驗證方法學 (UVM),也不能使用那些實施斷言和覆蓋率的測試平台。但在使用虛擬 JTAG 探針時,可以使用這些測試平台。
另外還有一個優點,就是 JTAG 事務處理器的時鍾可與處理器的時鍾保持相同速度的運行,而無需擔憂同步問題。使用這種方法,JTAG 時鍾可與處理器時鍾在相同速度下運行,這意味著調試器性能和響應能力可以增加三倍或四倍。
通tong過guo虛xu擬ni化hua連lian接jie還hai可ke以yi提ti供gong其qi他ta優you點dian。由you於yu能neng夠gou收shou集ji和he上shang載zai波bo形xing,因yin此ci可ke在zai設she計ji運yun行xing過guo程cheng中zhong收shou集ji開kai關guan數shu據ju。這zhe種zhong方fang法fa可ke用yong於yu查zha找zhao功gong率lv峰feng值zhi,而er且qie在zai軟ruan件jian調tiao試shi器qi激ji活huo的de情qing況kuang下xia,它ta能neng夠gou彙hui集ji軟ruan件jian活huo動dong和he功gong耗hao之zhi間jian的de相xiang關guan性xing(將在本文章的第 2 部分,對此進行詳述)。
與設計的虛擬化連接可以允許來自調試器的更多樣連接。因此,不僅 JTAG 信號可以包括在接口中,調試器將對設計產生更大影響。具體來說,它能夠直接重置設計。
ruguoshejijinrutingzhiyunxinghuowuxiangyingzhuangtai,tiaoshiqinenggoufaqiyingjianzhongzhi,rangshejifanhuidaoyizhizhuangtai。tiaoshiqihaikeyichanshengbuhuoboxingdechufashijian,rangkaifarenyuannenggouzhakanyuruanjianzhongdeyizhiweizhiguanliandeboxing。kaifarenyuannenggoushezhiruanjianzhongdeduandian,yijiyaozaidaodaduandiandeweizhizhouweibuhuodeboxing。
yonghukeyirenyibaocunhehuifuxunihualianjie。youyuyingjianjiasuqinenggouwanquankongzhitiaoshiqilianjieliangduandezhuangtai,yincikejiangyingjianjiasuqidebaocunhehuifugongnengyujuyouxuni JTAG 連接的設計結合使用。
無需連接到專門配置的 I/O 卡,也可將設計加載到任何一組邏輯板上的硬件加速仿真中(圖 2)。虛(xu)擬(ni)探(tan)針(zhen)在(zai)運(yun)行(xing)設(she)計(ji)方(fang)麵(mian)實(shi)現(xian)了(le)更(geng)高(gao)靈(ling)活(huo)性(xing),它(ta)為(wei)工(gong)程(cheng)組(zu)提(ti)供(gong)了(le)一(yi)種(zhong)方(fang)法(fa),讓(rang)他(ta)們(men)使(shi)用(yong)硬(ying)件(jian)加(jia)速(su)仿(fang)真(zhen)作(zuo)為(wei)數(shu)據(ju)中(zhong)心(xin)資(zi)源(yuan),在(zai)多(duo)個(ge)項(xiang)目(mu)和(he)部(bu)門(men)之(zhi)間(jian)共(gong)享(xiang)。
最zui後hou,使shi用yong虛xu擬ni探tan針zhen,軟ruan件jian開kai發fa人ren員yuan無wu需xu維wei護hu物wu理li硬ying件jian並bing可ke將jiang其qi連lian接jie到dao硬ying件jian加jia速su仿fang真zhen。很hen多duo工gong程cheng組zu使shi用yong硬ying件jian加jia速su仿fang真zhen作zuo為wei數shu據ju中zhong心xin資zi源yuan,軟ruan件jian開kai發fa人ren員yuan可ke能neng身shen在zai距ju離li他ta們men使shi用yong的de硬ying件jian加jia速su仿fang真zhen係xi統tong數shu千qian英ying裏li之zhi外wai的de位wei置zhi,因yin此ci,使shi用yong物wu理li探tan針zhen並bing不bu切qie實shi際ji。
硬件加速仿真在持續演進,不斷推出新的特性、gongnengheshiyongmoshi,congershidetachengweiyizhongshiyongyuyingjianshejirenyuanheruanjiankaifarenyuandeduogongnengyanzhenggongju。xunitanzhenzengqiangleyingjianjiasufangzhenzuoweishujuzhongxinziyuandexiyinli。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索






