用于軟件驗(yàn)證的硬件加速仿真之一:物理和虛擬探針
發(fā)布時(shí)間:2017-05-25 責(zé)任編輯:susan
【導(dǎo)讀】在驗(yàn)證領(lǐng)域,虛擬探針增強(qiáng)了硬件加速仿真作為數(shù)據(jù)中心資源對(duì)硬件設(shè)計(jì)人員和軟件開發(fā)人員的吸引力。硬件加速仿真不斷證明它本身就是一種便利的工具,既可用于硬件/軟件協(xié)同驗(yàn)證,也可用于測試硬件和軟件的集成。
啟動(dòng)操作系統(tǒng)并執(zhí)行軟件應(yīng)用程序需要經(jīng)過數(shù)十億個(gè)驗(yàn)證周期 — 傳統(tǒng)的基于軟件的分析工具無法勝任這項(xiàng)任務(wù)。只有基于硬件的驗(yàn)證引擎才可提供應(yīng)對(duì)這一挑戰(zhàn)所需的吞吐量。正因?yàn)槿绱?,硬件加速仿真?FPGA 原型設(shè)計(jì)才會(huì)成為當(dāng)今設(shè)計(jì)和驗(yàn)證團(tuán)隊(duì)的驗(yàn)證工具箱中的必備引擎。
通過硬件加速仿真和 FPGA 原型設(shè)計(jì),嵌入式軟件開發(fā)人員能夠驗(yàn)證嵌入式軟件并執(zhí)行系統(tǒng)驗(yàn)證,這是一項(xiàng)極具吸引力的功能。只有通過硬件加速仿真,他們才能確認(rèn)嵌入式系統(tǒng)軟件能夠與底層硬件協(xié)同工作,因?yàn)?FPGA 原型設(shè)計(jì)沒有提供可調(diào)試內(nèi)部工作的硬件設(shè)計(jì)可見性。
另外,在設(shè)計(jì)周期中,項(xiàng)目組成員可以使用硬件加速仿真的時(shí)間通常遠(yuǎn)早于使用 FPGA 原型的時(shí)間。因此,使用硬件加速仿真技術(shù),軟件開發(fā)團(tuán)隊(duì)開始進(jìn)行驗(yàn)證的時(shí)間要早于使用 FPGA 原型的情況。
硬件工程師也可以認(rèn)識(shí)到在硬件加速仿真上運(yùn)行軟件的優(yōu)勢。當(dāng)實(shí)際軟件產(chǎn)品第一次在硬件上運(yùn)行時(shí),它幾乎總會(huì)暴露出硬件錯(cuò)誤,即使最全面的驗(yàn)證方法也會(huì)遺漏一些錯(cuò)誤。及早運(yùn)行軟件可以暴露出這些錯(cuò)誤,以便我們加以解決。這樣不僅簡單,而且成本較低。
物理探針
過去,軟件開發(fā)人員使用物理 JTAG 探針來調(diào)試在硬件加速器上運(yùn)行的代碼(圖 1)。JTAG 標(biāo)準(zhǔn)定義了一系列信號(hào),以及通過四管腳接口讀取和寫入物理芯片中的寄存器的方法。這種做法的初衷是提供一種測試芯片的方法,讓測試工程師窺探封裝芯片的內(nèi)部,確認(rèn)它是否正常工作。
軟件開發(fā)人員意識(shí)到他們可以使用相同的接口,讀取和寫入芯片中的處理器的通用寄存器。能夠讀取和寫入處理器的主寄存器,意味著他們可以調(diào)試在處理器上運(yùn)行的程序。
通過一些巧妙的接口,他們可以使用嵌入式調(diào)試器(例如 Lauterbach 的 Trace-32 或 ARM 的 DS-5),將命令發(fā)送到 JTAG 探針,以提取或設(shè)置連接到探針的板載處理器的狀態(tài)。這是開發(fā)人員運(yùn)行和調(diào)試嵌入式系統(tǒng)上的“裸機(jī)”程序和驅(qū)動(dòng)程序的最常用方法。
使用當(dāng)今的硬件加速仿真系統(tǒng),可通過連接到外部器件的任何 I/O 卡,輸出設(shè)計(jì)的任何信號(hào)。這種方法可用于輸出 JTAG 接口的四個(gè)信號(hào)。通過將這些來自硬件加速器中的設(shè)計(jì)的信號(hào)連接到 JTAG 探針,軟件開發(fā)人員能夠在硬件加速仿真設(shè)計(jì)上,執(zhí)行與在原型板上相同的調(diào)試工作。
由于 JTAG 探針將在設(shè)計(jì)后期用于原型板上,并且可能還在后續(xù)項(xiàng)目中使用,因此軟件開發(fā)人員一般都了解該探針的使用方法和作用。在硬件加速仿真設(shè)計(jì)上調(diào)試軟件時(shí),軟件開發(fā)人員自然會(huì)采用這種熟悉的工具。
雖然 JTAG 接口讓調(diào)試器能夠直接讀取和寫入寄存器,但要正確地調(diào)試程序,還需要能夠讀取和寫入內(nèi)存并且控制程序的執(zhí)行。為了滿足這種需求,處理器設(shè)計(jì)人員添加了調(diào)試器可訪問的寄存器,以便將內(nèi)存讀取和寫入指令插入到執(zhí)行管道中。這樣一來,調(diào)試器就能夠完全訪問設(shè)計(jì)中的所有內(nèi)存和內(nèi)存映射的器件。
另外,這些設(shè)計(jì)人員還采用了斷點(diǎn)寄存器和其他調(diào)試支持電路,從而令 JTAG 調(diào)試器能夠控制程序的執(zhí)行。這意味著,通過連接至處理器的 JTAG,調(diào)試器能夠顯示程序源代碼、處理器的寄存器、內(nèi)存、變量以及程序的堆棧。因此,調(diào)試器能夠設(shè)置斷點(diǎn),運(yùn)行和單步調(diào)試程序,而這些正是軟件開發(fā)人員期望現(xiàn)代化軟件調(diào)試環(huán)境能夠提供的功能。
處理 JTAG 探針問題
雖然 JTAG 探針實(shí)現(xiàn)了在硬件加速仿真設(shè)計(jì)上的軟件調(diào)試,但它也有缺點(diǎn)。第一,JTAG 探針和在硬件加速器中運(yùn)行的設(shè)計(jì)都有它們自己的自激時(shí)鐘。為了保持同步,這些時(shí)鐘必須維持一致的速度。如果做不到,調(diào)試器和設(shè)計(jì)之間的連接將會(huì)丟失。
很多情況下,需要重置探針;而有些時(shí)候,還將需要重置設(shè)計(jì)本身。有時(shí)減慢甚至停止硬件加速器中的設(shè)計(jì)時(shí)鐘是非常有用的,因?yàn)檫@樣可以采集和上載設(shè)計(jì)上的波形。這樣一來,開發(fā)人員就能夠查看設(shè)計(jì)的狀態(tài),或者對(duì)設(shè)計(jì)進(jìn)行強(qiáng)制賦值,使其變換到新值。實(shí)質(zhì)上,如果硬件加速器上的時(shí)鐘不能減慢或停止,硬件開發(fā)人員將會(huì)丟失諸多硬件調(diào)試功能。
使用 JTAG 探針存在的第二個(gè)問題是性能。由于存在兩個(gè)獨(dú)立的時(shí)鐘域,一個(gè)在硬件加速器上,另一個(gè)在探針上,數(shù)據(jù)將在兩個(gè)域之間傳遞,就會(huì)產(chǎn)生跨時(shí)鐘域問題。為了解決這個(gè)問題,探針上的時(shí)鐘速度通常低于處理器的時(shí)鐘速度。在原型板上,處理器的時(shí)針?biāo)俣瓤蛇_(dá)到幾百兆赫甚至千兆赫,這不是問題。但在硬件加速仿真中,時(shí)鐘運(yùn)行速度為一兆赫或兩兆赫,這可能讓速度減慢很多。
例如,在 ARM Cortex-A57 中分步運(yùn)行單個(gè)指令,需要超過 400 萬個(gè)比特的 JTAG 掃描鏈活動(dòng)。如果處理器的時(shí)鐘在 2 MHz 的頻率下運(yùn)行,JTAG 時(shí)鐘的頻率是它的四分之一,也就是 500 kHz,則在分步運(yùn)行之后,需要 8 秒才能更新調(diào)試器中的視圖。
另一個(gè)性能問題是程序下載時(shí)間。軟件開發(fā)人員使用掃描鏈,通過 JTAG 探針將程序下載到目標(biāo)。如果程序很大,則將程序加載到存儲(chǔ)器可能要花費(fèi)一個(gè)小時(shí)甚至更長時(shí)間。大多數(shù)軟件開發(fā)人員無法接受這種性能水平。
JTAG 事務(wù)處理器
有一種使用 JTAG 調(diào)試器的方法可以消除這些問題。硬件加速仿真系統(tǒng)能夠通過電路和硬件加速器內(nèi)置的編程功能,驅(qū)動(dòng)和采樣設(shè)計(jì)中的任何信號(hào)。我們無需通過 I/O 卡從設(shè)計(jì)中采集信號(hào),然后使用物理探針予以驅(qū)動(dòng),而是可以使用“事務(wù)處理器”,通過編程方式驅(qū)動(dòng)設(shè)計(jì)中的 JTAG 信號(hào)。與物理探針相同,事務(wù)處理器也可以驅(qū)動(dòng)相同的信號(hào),使其變換到相同的值,從而提供相同的調(diào)試功能。
由于設(shè)計(jì)和 JTAG 事務(wù)處理器都在硬件加速仿真系統(tǒng)的控制下,因此時(shí)鐘由硬件加速器控制。時(shí)鐘域可以同步,因此能消除多個(gè)時(shí)鐘的問題。
也就是說,硬件加速器上的時(shí)鐘可以減慢或停止,以便執(zhí)行硬件調(diào)試活動(dòng),例如收集波形或檢驗(yàn)設(shè)計(jì)。設(shè)計(jì)和 JTAG 事務(wù)處理器之間的連接不再取決于時(shí)間,而是由硬件加速仿真系統(tǒng)進(jìn)行控制。
硬件加速器能夠自由地減慢或停止時(shí)鐘,然后啟動(dòng)或加快時(shí)鐘,從而可避免丟失設(shè)計(jì)和調(diào)試器之間的連接。如果硬件設(shè)計(jì)人員將其設(shè)計(jì)連接到 JTAG 調(diào)試器,他們就能利用硬件加速器提供的全部硬件調(diào)試功能。如此一來,他們也許還能在硬件加速仿真設(shè)計(jì)上使用更為復(fù)雜的測試平臺(tái)。
使用物理 JTAG 探針時(shí),不能使用很可能減慢硬件加速仿真吞吐的測試平臺(tái),例如開放式驗(yàn)證方法學(xué) (OVM) 和通用驗(yàn)證方法學(xué) (UVM),也不能使用那些實(shí)施斷言和覆蓋率的測試平臺(tái)。但在使用虛擬 JTAG 探針時(shí),可以使用這些測試平臺(tái)。
另外還有一個(gè)優(yōu)點(diǎn),就是 JTAG 事務(wù)處理器的時(shí)鐘可與處理器的時(shí)鐘保持相同速度的運(yùn)行,而無需擔(dān)憂同步問題。使用這種方法,JTAG 時(shí)鐘可與處理器時(shí)鐘在相同速度下運(yùn)行,這意味著調(diào)試器性能和響應(yīng)能力可以增加三倍或四倍。
通過虛擬化連接還可以提供其他優(yōu)點(diǎn)。由于能夠收集和上載波形,因此可在設(shè)計(jì)運(yùn)行過程中收集開關(guān)數(shù)據(jù)。這種方法可用于查找功率峰值,而且在軟件調(diào)試器激活的情況下,它能夠匯集軟件活動(dòng)和功耗之間的相關(guān)性(將在本文章的第 2 部分,對(duì)此進(jìn)行詳述)。
與設(shè)計(jì)的虛擬化連接可以允許來自調(diào)試器的更多樣連接。因此,不僅 JTAG 信號(hào)可以包括在接口中,調(diào)試器將對(duì)設(shè)計(jì)產(chǎn)生更大影響。具體來說,它能夠直接重置設(shè)計(jì)。
如果設(shè)計(jì)進(jìn)入停止運(yùn)行或無響應(yīng)狀態(tài),調(diào)試器能夠發(fā)起硬件重置,讓設(shè)計(jì)返回到已知狀態(tài)。調(diào)試器還可以產(chǎn)生捕獲波形的觸發(fā)事件,讓開發(fā)人員能夠查看與軟件中的已知位置關(guān)聯(lián)的波形。開發(fā)人員能夠設(shè)置軟件中的斷點(diǎn),以及要在到達(dá)斷點(diǎn)的位置周圍捕獲的波形。
用戶可以任意保存和恢復(fù)虛擬化連接。由于硬件加速器能夠完全控制調(diào)試器連接兩端的狀態(tài),因此可將硬件加速器的保存和恢復(fù)功能與具有虛擬 JTAG 連接的設(shè)計(jì)結(jié)合使用。
無需連接到專門配置的 I/O 卡,也可將設(shè)計(jì)加載到任何一組邏輯板上的硬件加速仿真中(圖 2)。虛擬探針在運(yùn)行設(shè)計(jì)方面實(shí)現(xiàn)了更高靈活性,它為工程組提供了一種方法,讓他們使用硬件加速仿真作為數(shù)據(jù)中心資源,在多個(gè)項(xiàng)目和部門之間共享。
最后,使用虛擬探針,軟件開發(fā)人員無需維護(hù)物理硬件并可將其連接到硬件加速仿真。很多工程組使用硬件加速仿真作為數(shù)據(jù)中心資源,軟件開發(fā)人員可能身在距離他們使用的硬件加速仿真系統(tǒng)數(shù)千英里之外的位置,因此,使用物理探針并不切實(shí)際。
硬件加速仿真在持續(xù)演進(jìn),不斷推出新的特性、功能和使用模式,從而使得它成為一種適用于硬件設(shè)計(jì)人員和軟件開發(fā)人員的多功能驗(yàn)證工具。虛擬探針增強(qiáng)了硬件加速仿真作為數(shù)據(jù)中心資源的吸引力。
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動(dòng)控制解決方案 驅(qū)動(dòng)智能運(yùn)動(dòng)新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 中微公司成功從美國國防部中國軍事企業(yè)清單中移除
- 華邦電子白皮書:滿足歐盟無線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
- 準(zhǔn) Z 源逆變器的設(shè)計(jì)
- 第12講:三菱電機(jī)高壓SiC芯片技術(shù)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
單向可控硅
刀開關(guān)
等離子顯示屏
低頻電感
低通濾波器
低音炮電路
滌綸電容
點(diǎn)膠設(shè)備
電池
電池管理系統(tǒng)
電磁蜂鳴器
電磁兼容
電磁爐危害
電動(dòng)車
電動(dòng)工具
電動(dòng)汽車
電感
電工電路
電機(jī)控制
電解電容
電纜連接器
電力電子
電力繼電器
電力線通信
電流保險(xiǎn)絲
電流表
電流傳感器
電流互感器
電路保護(hù)
電路圖