用于軟件驗證的硬件加速仿真之一:物理和虛擬探針
發(fā)布時間:2017-05-25 責任編輯:susan
【導讀】在驗證領(lǐng)域,虛擬探針增強了硬件加速仿真作為數(shù)據(jù)中心資源對硬件設(shè)計人員和軟件開發(fā)人員的吸引力。硬件加速仿真不斷證明它本身就是一種便利的工具,既可用于硬件/軟件協(xié)同驗證,也可用于測試硬件和軟件的集成。
啟動操作系統(tǒng)并執(zhí)行軟件應(yīng)用程序需要經(jīng)過數(shù)十億個驗證周期 — 傳統(tǒng)的基于軟件的分析工具無法勝任這項任務(wù)。只有基于硬件的驗證引擎才可提供應(yīng)對這一挑戰(zhàn)所需的吞吐量。正因為如此,硬件加速仿真和 FPGA 原型設(shè)計才會成為當今設(shè)計和驗證團隊的驗證工具箱中的必備引擎。
通過硬件加速仿真和 FPGA 原型設(shè)計,嵌入式軟件開發(fā)人員能夠驗證嵌入式軟件并執(zhí)行系統(tǒng)驗證,這是一項極具吸引力的功能。只有通過硬件加速仿真,他們才能確認嵌入式系統(tǒng)軟件能夠與底層硬件協(xié)同工作,因為 FPGA 原型設(shè)計沒有提供可調(diào)試內(nèi)部工作的硬件設(shè)計可見性。
另外,在設(shè)計周期中,項目組成員可以使用硬件加速仿真的時間通常遠早于使用 FPGA 原型的時間。因此,使用硬件加速仿真技術(shù),軟件開發(fā)團隊開始進行驗證的時間要早于使用 FPGA 原型的情況。
硬件工程師也可以認識到在硬件加速仿真上運行軟件的優(yōu)勢。當實際軟件產(chǎn)品第一次在硬件上運行時,它幾乎總會暴露出硬件錯誤,即使最全面的驗證方法也會遺漏一些錯誤。及早運行軟件可以暴露出這些錯誤,以便我們加以解決。這樣不僅簡單,而且成本較低。
物理探針
過去,軟件開發(fā)人員使用物理 JTAG 探針來調(diào)試在硬件加速器上運行的代碼(圖 1)。JTAG 標準定義了一系列信號,以及通過四管腳接口讀取和寫入物理芯片中的寄存器的方法。這種做法的初衷是提供一種測試芯片的方法,讓測試工程師窺探封裝芯片的內(nèi)部,確認它是否正常工作。
軟件開發(fā)人員意識到他們可以使用相同的接口,讀取和寫入芯片中的處理器的通用寄存器。能夠讀取和寫入處理器的主寄存器,意味著他們可以調(diào)試在處理器上運行的程序。
通過一些巧妙的接口,他們可以使用嵌入式調(diào)試器(例如 Lauterbach 的 Trace-32 或 ARM 的 DS-5),將命令發(fā)送到 JTAG 探針,以提取或設(shè)置連接到探針的板載處理器的狀態(tài)。這是開發(fā)人員運行和調(diào)試嵌入式系統(tǒng)上的“裸機”程序和驅(qū)動程序的最常用方法。
使用當今的硬件加速仿真系統(tǒng),可通過連接到外部器件的任何 I/O 卡,輸出設(shè)計的任何信號。這種方法可用于輸出 JTAG 接口的四個信號。通過將這些來自硬件加速器中的設(shè)計的信號連接到 JTAG 探針,軟件開發(fā)人員能夠在硬件加速仿真設(shè)計上,執(zhí)行與在原型板上相同的調(diào)試工作。
由于 JTAG 探針將在設(shè)計后期用于原型板上,并且可能還在后續(xù)項目中使用,因此軟件開發(fā)人員一般都了解該探針的使用方法和作用。在硬件加速仿真設(shè)計上調(diào)試軟件時,軟件開發(fā)人員自然會采用這種熟悉的工具。
雖然 JTAG 接口讓調(diào)試器能夠直接讀取和寫入寄存器,但要正確地調(diào)試程序,還需要能夠讀取和寫入內(nèi)存并且控制程序的執(zhí)行。為了滿足這種需求,處理器設(shè)計人員添加了調(diào)試器可訪問的寄存器,以便將內(nèi)存讀取和寫入指令插入到執(zhí)行管道中。這樣一來,調(diào)試器就能夠完全訪問設(shè)計中的所有內(nèi)存和內(nèi)存映射的器件。
另外,這些設(shè)計人員還采用了斷點寄存器和其他調(diào)試支持電路,從而令 JTAG 調(diào)試器能夠控制程序的執(zhí)行。這意味著,通過連接至處理器的 JTAG,調(diào)試器能夠顯示程序源代碼、處理器的寄存器、內(nèi)存、變量以及程序的堆棧。因此,調(diào)試器能夠設(shè)置斷點,運行和單步調(diào)試程序,而這些正是軟件開發(fā)人員期望現(xiàn)代化軟件調(diào)試環(huán)境能夠提供的功能。
處理 JTAG 探針問題
雖然 JTAG 探針實現(xiàn)了在硬件加速仿真設(shè)計上的軟件調(diào)試,但它也有缺點。第一,JTAG 探針和在硬件加速器中運行的設(shè)計都有它們自己的自激時鐘。為了保持同步,這些時鐘必須維持一致的速度。如果做不到,調(diào)試器和設(shè)計之間的連接將會丟失。
很多情況下,需要重置探針;而有些時候,還將需要重置設(shè)計本身。有時減慢甚至停止硬件加速器中的設(shè)計時鐘是非常有用的,因為這樣可以采集和上載設(shè)計上的波形。這樣一來,開發(fā)人員就能夠查看設(shè)計的狀態(tài),或者對設(shè)計進行強制賦值,使其變換到新值。實質(zhì)上,如果硬件加速器上的時鐘不能減慢或停止,硬件開發(fā)人員將會丟失諸多硬件調(diào)試功能。
使用 JTAG 探針存在的第二個問題是性能。由于存在兩個獨立的時鐘域,一個在硬件加速器上,另一個在探針上,數(shù)據(jù)將在兩個域之間傳遞,就會產(chǎn)生跨時鐘域問題。為了解決這個問題,探針上的時鐘速度通常低于處理器的時鐘速度。在原型板上,處理器的時針速度可達到幾百兆赫甚至千兆赫,這不是問題。但在硬件加速仿真中,時鐘運行速度為一兆赫或兩兆赫,這可能讓速度減慢很多。
例如,在 ARM Cortex-A57 中分步運行單個指令,需要超過 400 萬個比特的 JTAG 掃描鏈活動。如果處理器的時鐘在 2 MHz 的頻率下運行,JTAG 時鐘的頻率是它的四分之一,也就是 500 kHz,則在分步運行之后,需要 8 秒才能更新調(diào)試器中的視圖。
另一個性能問題是程序下載時間。軟件開發(fā)人員使用掃描鏈,通過 JTAG 探針將程序下載到目標。如果程序很大,則將程序加載到存儲器可能要花費一個小時甚至更長時間。大多數(shù)軟件開發(fā)人員無法接受這種性能水平。
JTAG 事務(wù)處理器
有一種使用 JTAG 調(diào)試器的方法可以消除這些問題。硬件加速仿真系統(tǒng)能夠通過電路和硬件加速器內(nèi)置的編程功能,驅(qū)動和采樣設(shè)計中的任何信號。我們無需通過 I/O 卡從設(shè)計中采集信號,然后使用物理探針予以驅(qū)動,而是可以使用“事務(wù)處理器”,通過編程方式驅(qū)動設(shè)計中的 JTAG 信號。與物理探針相同,事務(wù)處理器也可以驅(qū)動相同的信號,使其變換到相同的值,從而提供相同的調(diào)試功能。
由于設(shè)計和 JTAG 事務(wù)處理器都在硬件加速仿真系統(tǒng)的控制下,因此時鐘由硬件加速器控制。時鐘域可以同步,因此能消除多個時鐘的問題。
也就是說,硬件加速器上的時鐘可以減慢或停止,以便執(zhí)行硬件調(diào)試活動,例如收集波形或檢驗設(shè)計。設(shè)計和 JTAG 事務(wù)處理器之間的連接不再取決于時間,而是由硬件加速仿真系統(tǒng)進行控制。
硬件加速器能夠自由地減慢或停止時鐘,然后啟動或加快時鐘,從而可避免丟失設(shè)計和調(diào)試器之間的連接。如果硬件設(shè)計人員將其設(shè)計連接到 JTAG 調(diào)試器,他們就能利用硬件加速器提供的全部硬件調(diào)試功能。如此一來,他們也許還能在硬件加速仿真設(shè)計上使用更為復雜的測試平臺。
使用物理 JTAG 探針時,不能使用很可能減慢硬件加速仿真吞吐的測試平臺,例如開放式驗證方法學 (OVM) 和通用驗證方法學 (UVM),也不能使用那些實施斷言和覆蓋率的測試平臺。但在使用虛擬 JTAG 探針時,可以使用這些測試平臺。
另外還有一個優(yōu)點,就是 JTAG 事務(wù)處理器的時鐘可與處理器的時鐘保持相同速度的運行,而無需擔憂同步問題。使用這種方法,JTAG 時鐘可與處理器時鐘在相同速度下運行,這意味著調(diào)試器性能和響應(yīng)能力可以增加三倍或四倍。
通過虛擬化連接還可以提供其他優(yōu)點。由于能夠收集和上載波形,因此可在設(shè)計運行過程中收集開關(guān)數(shù)據(jù)。這種方法可用于查找功率峰值,而且在軟件調(diào)試器激活的情況下,它能夠匯集軟件活動和功耗之間的相關(guān)性(將在本文章的第 2 部分,對此進行詳述)。
與設(shè)計的虛擬化連接可以允許來自調(diào)試器的更多樣連接。因此,不僅 JTAG 信號可以包括在接口中,調(diào)試器將對設(shè)計產(chǎn)生更大影響。具體來說,它能夠直接重置設(shè)計。
如果設(shè)計進入停止運行或無響應(yīng)狀態(tài),調(diào)試器能夠發(fā)起硬件重置,讓設(shè)計返回到已知狀態(tài)。調(diào)試器還可以產(chǎn)生捕獲波形的觸發(fā)事件,讓開發(fā)人員能夠查看與軟件中的已知位置關(guān)聯(lián)的波形。開發(fā)人員能夠設(shè)置軟件中的斷點,以及要在到達斷點的位置周圍捕獲的波形。
用戶可以任意保存和恢復虛擬化連接。由于硬件加速器能夠完全控制調(diào)試器連接兩端的狀態(tài),因此可將硬件加速器的保存和恢復功能與具有虛擬 JTAG 連接的設(shè)計結(jié)合使用。
無需連接到專門配置的 I/O 卡,也可將設(shè)計加載到任何一組邏輯板上的硬件加速仿真中(圖 2)。虛擬探針在運行設(shè)計方面實現(xiàn)了更高靈活性,它為工程組提供了一種方法,讓他們使用硬件加速仿真作為數(shù)據(jù)中心資源,在多個項目和部門之間共享。
最后,使用虛擬探針,軟件開發(fā)人員無需維護物理硬件并可將其連接到硬件加速仿真。很多工程組使用硬件加速仿真作為數(shù)據(jù)中心資源,軟件開發(fā)人員可能身在距離他們使用的硬件加速仿真系統(tǒng)數(shù)千英里之外的位置,因此,使用物理探針并不切實際。
硬件加速仿真在持續(xù)演進,不斷推出新的特性、功能和使用模式,從而使得它成為一種適用于硬件設(shè)計人員和軟件開發(fā)人員的多功能驗證工具。虛擬探針增強了硬件加速仿真作為數(shù)據(jù)中心資源的吸引力。
特別推薦
- 面板行業(yè)自律控產(chǎn),1月電視面板價格全線上漲!
- AI需求引爆市場,DRAM價格連季狂飆,第二季度預(yù)計再漲20%
- 存儲市場徹底瘋狂!存儲芯片暴漲10倍,終端產(chǎn)品承壓
- 賦能自主系統(tǒng)!貿(mào)澤開售Xsens Avior OEM IMU,解鎖高精度姿態(tài)數(shù)據(jù)
- 貿(mào)澤開售Molex PowerWize互連器件,覆蓋核心大功率應(yīng)用
技術(shù)文章更多>>
- 灣區(qū)“芯”力量齊聚珠海!大灣區(qū)化合物半導體生態(tài)應(yīng)用大會暨半導體產(chǎn)業(yè)CEO大會召開
- 貿(mào)澤電子2025年新品成果亮眼,四季度逾7000款物料加速賦能產(chǎn)業(yè)創(chuàng)新
- 第107屆中國電子展——聚焦電子元器件產(chǎn)業(yè)鏈,共謀高質(zhì)量發(fā)展
- 人機協(xié)同與數(shù)字孿生:開啟工業(yè)機械黃金新時代
- HUAWEI XMC從容試駕體驗活動,探索“從容出行”新方式
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
金屬膜電阻
晶體濾波器
晶體諧振器
晶體振蕩器
晶閘管
精密電阻
精密工具
景佑能源
聚合物電容
君耀電子
開發(fā)工具
開關(guān)
開關(guān)電源
開關(guān)電源電路
開關(guān)二極管
開關(guān)三極管
科通
可變電容
可調(diào)電感
可控硅
空心線圈
控制變壓器
控制模塊
藍牙
藍牙4.0
藍牙模塊
浪涌保護器
雷度電子
鋰電池
利爾達




