用于軟件驗(yàn)證的硬件加速仿真之一:物理和虛擬探針
發(fā)布時(shí)間:2017-05-25 責(zé)任編輯:susan
【導(dǎo)讀】在驗(yàn)證領(lǐng)域,虛擬探針增強(qiáng)了硬件加速仿真作為數(shù)據(jù)中心資源對硬件設(shè)計(jì)人員和軟件開發(fā)人員的吸引力。硬件加速仿真不斷證明它本身就是一種便利的工具,既可用于硬件/軟件協(xié)同驗(yàn)證,也可用于測試硬件和軟件的集成。
啟動操作系統(tǒng)并執(zhí)行軟件應(yīng)用程序需要經(jīng)過數(shù)十億個(gè)驗(yàn)證周期 — 傳統(tǒng)的基于軟件的分析工具無法勝任這項(xiàng)任務(wù)。只有基于硬件的驗(yàn)證引擎才可提供應(yīng)對這一挑戰(zhàn)所需的吞吐量。正因?yàn)槿绱耍布铀俜抡婧?FPGA 原型設(shè)計(jì)才會成為當(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)識到在硬件加速仿真上運(yùn)行軟件的優(yōu)勢。當(dāng)實(shí)際軟件產(chǎn)品第一次在硬件上運(yùn)行時(shí),它幾乎總會暴露出硬件錯(cuò)誤,即使最全面的驗(yàn)證方法也會遺漏一些錯(cuò)誤。及早運(yùn)行軟件可以暴露出這些錯(cuò)誤,以便我們加以解決。這樣不僅簡單,而且成本較低。
物理探針
過去,軟件開發(fā)人員使用物理 JTAG 探針來調(diào)試在硬件加速器上運(yùn)行的代碼(圖 1)。JTAG 標(biāo)準(zhǔn)定義了一系列信號,以及通過四管腳接口讀取和寫入物理芯片中的寄存器的方法。這種做法的初衷是提供一種測試芯片的方法,讓測試工程師窺探封裝芯片的內(nèi)部,確認(rèn)它是否正常工作。
軟件開發(fā)人員意識到他們可以使用相同的接口,讀取和寫入芯片中的處理器的通用寄存器。能夠讀取和寫入處理器的主寄存器,意味著他們可以調(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)今的硬件加速仿真系統(tǒng),可通過連接到外部器件的任何 I/O 卡,輸出設(shè)計(jì)的任何信號。這種方法可用于輸出 JTAG 接口的四個(gè)信號。通過將這些來自硬件加速器中的設(shè)計(jì)的信號連接到 JTAG 探針,軟件開發(fā)人員能夠在硬件加速仿真設(shè)計(jì)上,執(zhí)行與在原型板上相同的調(diào)試工作。
由于 JTAG 探針將在設(shè)計(jì)后期用于原型板上,并且可能還在后續(xù)項(xiàng)目中使用,因此軟件開發(fā)人員一般都了解該探針的使用方法和作用。在硬件加速仿真設(shè)計(jì)上調(diào)試軟件時(shí),軟件開發(fā)人員自然會采用這種熟悉的工具。
雖然 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ì)之間的連接將會丟失。
很多情況下,需要重置探針;而有些時(shí)候,還將需要重置設(shè)計(jì)本身。有時(shí)減慢甚至停止硬件加速器中的設(shè)計(jì)時(shí)鐘是非常有用的,因?yàn)檫@樣可以采集和上載設(shè)計(jì)上的波形。這樣一來,開發(fā)人員就能夠查看設(shè)計(jì)的狀態(tài),或者對設(shè)計(jì)進(jìn)行強(qiáng)制賦值,使其變換到新值。實(shí)質(zhì)上,如果硬件加速器上的時(shí)鐘不能減慢或停止,硬件開發(fā)人員將會丟失諸多硬件調(diào)試功能。
使用 JTAG 探針存在的第二個(gè)問題是性能。由于存在兩個(gè)獨(dú)立的時(shí)鐘域,一個(gè)在硬件加速器上,另一個(gè)在探針上,數(shù)據(jù)將在兩個(gè)域之間傳遞,就會產(chǎn)生跨時(shí)鐘域問題。為了解決這個(gè)問題,探針上的時(shí)鐘速度通常低于處理器的時(shí)鐘速度。在原型板上,處理器的時(shí)針?biāo)俣瓤蛇_(dá)到幾百兆赫甚至千兆赫,這不是問題。但在硬件加速仿真中,時(shí)鐘運(yùn)行速度為一兆赫或兩兆赫,這可能讓速度減慢很多。
例如,在 ARM Cortex-A57 中分步運(yùn)行單個(gè)指令,需要超過 400 萬個(gè)比特的 JTAG 掃描鏈活動。如果處理器的時(shí)鐘在 2 MHz 的頻率下運(yùn)行,JTAG 時(shí)鐘的頻率是它的四分之一,也就是 500 kHz,則在分步運(yùn)行之后,需要 8 秒才能更新調(diào)試器中的視圖。
另一個(gè)性能問題是程序下載時(shí)間。軟件開發(fā)人員使用掃描鏈,通過 JTAG 探針將程序下載到目標(biāo)。如果程序很大,則將程序加載到存儲器可能要花費(fèi)一個(gè)小時(shí)甚至更長時(shí)間。大多數(shù)軟件開發(fā)人員無法接受這種性能水平。
JTAG 事務(wù)處理器
有一種使用 JTAG 調(diào)試器的方法可以消除這些問題。硬件加速仿真系統(tǒng)能夠通過電路和硬件加速器內(nèi)置的編程功能,驅(qū)動和采樣設(shè)計(jì)中的任何信號。我們無需通過 I/O 卡從設(shè)計(jì)中采集信號,然后使用物理探針予以驅(qū)動,而是可以使用“事務(wù)處理器”,通過編程方式驅(qū)動設(shè)計(jì)中的 JTAG 信號。與物理探針相同,事務(wù)處理器也可以驅(qū)動相同的信號,使其變換到相同的值,從而提供相同的調(diào)試功能。
由于設(shè)計(jì)和 JTAG 事務(wù)處理器都在硬件加速仿真系統(tǒng)的控制下,因此時(shí)鐘由硬件加速器控制。時(shí)鐘域可以同步,因此能消除多個(gè)時(shí)鐘的問題。
也就是說,硬件加速器上的時(shí)鐘可以減慢或停止,以便執(zhí)行硬件調(diào)試活動,例如收集波形或檢驗(yàn)設(shè)計(jì)。設(shè)計(jì)和 JTAG 事務(wù)處理器之間的連接不再取決于時(shí)間,而是由硬件加速仿真系統(tǒng)進(jìn)行控制。
硬件加速器能夠自由地減慢或停止時(shí)鐘,然后啟動或加快時(shí)鐘,從而可避免丟失設(shè)計(jì)和調(diào)試器之間的連接。如果硬件設(shè)計(jì)人員將其設(shè)計(jì)連接到 JTAG 調(diào)試器,他們就能利用硬件加速器提供的全部硬件調(diào)試功能。如此一來,他們也許還能在硬件加速仿真設(shè)計(jì)上使用更為復(fù)雜的測試平臺。
使用物理 JTAG 探針時(shí),不能使用很可能減慢硬件加速仿真吞吐的測試平臺,例如開放式驗(yàn)證方法學(xué) (OVM) 和通用驗(yàn)證方法學(xué) (UVM),也不能使用那些實(shí)施斷言和覆蓋率的測試平臺。但在使用虛擬 JTAG 探針時(shí),可以使用這些測試平臺。
另外還有一個(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)試器激活的情況下,它能夠匯集軟件活動和功耗之間的相關(guān)性(將在本文章的第 2 部分,對此進(jìn)行詳述)。
與設(shè)計(jì)的虛擬化連接可以允許來自調(diào)試器的更多樣連接。因此,不僅 JTAG 信號可以包括在接口中,調(diào)試器將對設(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ù)中心資源的吸引力。
特別推薦
- 車用開關(guān)電源的開關(guān)頻率定多高才不影響EMC?
- 大聯(lián)大世平集團(tuán)的駕駛員監(jiān)控系統(tǒng)(DMS)方案榮獲第六屆“金輯獎之最佳技術(shù)實(shí)踐應(yīng)用”獎
- 貿(mào)澤推出針對基礎(chǔ)設(shè)施和智慧城市的工程技術(shù)資源中心
- 大普技術(shù)自主可控、高精度、小型化TCXO——對講機(jī)應(yīng)用
- Melexis創(chuàng)新推出集成喚醒功能的汽車制動踏板位置傳感器芯片方案
- Vishay推出的新款高能浪涌限流PTC熱敏電阻,可提高有源充放電電路性能
- 美芯晟推出支持ALS和Flicker的小尺寸閃爍光傳感器芯片
技術(shù)文章更多>>
- 遠(yuǎn)山半導(dǎo)體發(fā)布新一代高壓氮化鎵功率器件
- Kvaser發(fā)布全新軟件CanKing 7:便捷CAN總線診斷與分析!
- 6秒速測!瑞典森爾(Senseair)高精度酒精檢測儀,守護(hù)公路貨運(yùn)安全,嚴(yán)防酒駕醉駕
- APSME 2025 亞洲國際功率半導(dǎo)體、材料及裝備技術(shù)展覽會
- 汽車電子展︱AUTO TECH 2025 廣州國際汽車電子技術(shù)展覽會
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索