国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

虛擬GDB遠程調試技術及其在硬件仿真器中的應用

2023-07-18 07:45黃侃徐勇李艷榮
河北科技大學學報 2023年3期
關鍵詞:計算機仿真

黃侃 徐勇 李艷榮

摘 要:為了解決當前硬件仿真器采用測試激勵與探針采樣調試方法導致的額外硬件資源需求增加以及調試方法復雜死板的問題,研究出一種虛擬GDB遠程調試技術提高硬件仿真器的調試能力。首先,使用JTAG的消息代理器與事務處理器進行軟件與硬件的信息交互,實現計算機與硬件仿真器的通信;然后,通過VPI接口實現GDB與JTAG代理器的軟件信息交互,完成虛擬GDB調試;最后,在硬件仿真器中進行應用實驗。結果表明,虛擬GDB遠程調試系統可支持斷點插入、單步運行、寄存器讀寫等功能,與插入探針的調試方法相比,使用虛擬GDB調試提速近百倍。虛擬GDB遠程調試技術豐富了硬件仿真器的軟件調試手段,增強了硬件仿真器的調試能力,提升了芯片設計驗證效率。

關鍵詞:計算機仿真;遠程調試技術;硬件仿真加速器;SCEMI;JTAG事務器;OpenOCD

中圖分類號:TP391.9

文獻標識碼:A DOI:10.7535/hbkd.2023yx03001

收稿日期:2023-04-24;修回日期:2023-06-06;責任編輯:張士瑩

基金項目:國家自然科學基金面上項目(61876051);深圳市科創(chuàng)委資助項目(KCXFZ20211020163402004)

第一作者簡介:黃 侃(1990—),男,陜西蒲城人,博士,主要從事硬件仿真加速器系統及算法方面的研究。E-mail:hkhuangkan@hotmail.com

Virtual GDB remote debugging technology and its

application in emulator

HUANG Kan1,2,XU Yong1,LI Yanrong3

(1.School of Computer Science and Technology, Harbin Institute of Technology (Shenzhen), Shenzhen,Guangdong 518000;China; 2. SMiT Group (Shenzhen) Company Limited, Shenzhen, Guangdong 518000, China;3.Shenzhen SMiT Jingrui Technology Company Limited, Shenzhen, Guangdong 518000,China)

Abstract:In order to solve the problem that the testbench stimulation and probe insertion debugging method of emulator requires extra hardware resources and has insufficient flexibility in software debugging, a virtual GDB remote debugging technology was researched to improve the debugging ability of the emulator. Firstly,JTAG proxy and JTAG transactor were used to support the connection between the workstation and the emulator. Then the signals between GDB and JTAG proxy were transmitted through VPI to complete the debugging of virtual GDB. Finally, the virtual GDB remote debugging system was applied in emulator for experiments. The results show that the virtual GDB remote debugging system can support breakpoint insertion, single step running, register reading and writing, and other functions. Compared with debugging by probe insertion, the virtual GDB system is almost hundred times faster. It greatly enriches the software debugging method and enhances the debugging ability of emulator, and improves the efficiency of the chip design and verification.

Keywords:computer simulation;remote debugging technology; emulator; SCEMI; JTAG Transactor; OpenOCD

隨著超大規(guī)模集成電路的不斷增長,以及產品迭代周期的不斷縮短,電路仿真驗證變得愈加困難?;谲浖M(software simulation)的驗證方法逐漸無法適用于如今超大規(guī)模集成電路的仿真驗證,尤其是在仿真速度上出現了瓶頸問題[1]。因此,使用能夠高速運行的硬件進行仿真加速成為現代超大規(guī)模集成電路仿真驗證的重要技術途徑。基于硬件仿真器(emulator)的仿真驗證技術成為芯片設計及驗證從業(yè)人員極為關注的重要技術手段[2]。

硬件仿真器常用的驗證方法包含在線仿真模式(in-circuit emulation,ICE)[3]、基于事務加速模式(transaction based acceleration,TBA)[4]以及帶目標的仿真加速模式(simulation acceleration with target)[5],通過測試激勵對待測器件(device-under-test,DUT)進行激勵并將反饋信號與預期結果相比較來查找問題。文獻[6]采用測試激勵對Xilinx公司的FFT(fast fourier transform) IP核進行激勵并獲取反饋數據進行仿真調試,但是其只能針對一定周期數的指定信號進行采樣來驗證IP核的正確性,該IP相對于復雜芯片僅是極其微小的一部分,對于完整芯片的驗證調試復雜度會成指數級增長。文獻[7]構建了基于TBA的驗證平臺,需要構建額外的生成器、檢查器、監(jiān)視器等器件來完成對待測器件的驗證,其對額外硬件資源需求增加較為明顯。同時,還需要驗證人員開發(fā)配套器件,也提升了驗證成本。文獻[8]通過增加探針及額外I/O卡進行軟件調試,增加了軟件調試的復雜性。此外,常用硬件仿真器中實時調試的手段只能通過加入靜態(tài)探針、動態(tài)探針等方法獲取DUT內部信號數據進行調試[9]。以上的仿真調試驗證方法不僅需要消耗額外的硬件資源,還存在對DUT內運行軟件調試靈活性不足的問題。同時,企業(yè)級硬件仿真器物理硬件復雜,JTAG(joint test action group)接口不便于接入,更加影響了硬件仿真器中的軟件調試手段。

因此,為了使硬件仿真加速器的調試手段更加靈活,獲取DUT內部信號的能力更加便捷,同時為了解決硬件仿真器不方便接入JTAG仿真器,以及盡可能減少驗證成本及時間等問題,結合GDB(gnu debugger)調試技術、VPI通信接口以及基于SCEMI協議的JTAG代理器及事務器技術,對虛擬GDB遠程調試技術進行研究,并在硬件仿真器中進行應用實驗。

1 硬件仿真器中的JTAG調試系統

基于國際標準測試協議(IEEE 1149.1)的JTAG調試是如今普遍使用的嵌入式調試技術[10]。JTAG接口可讀取或寫入芯片內部封裝的邊界掃描鏈(boundary scan chain)寄存器的信息,幫助設計測試人員對DUT內部的行為邏輯進行調試。經典的JTAG調試系統結構如圖1所示[11],通過協議轉換器將調試主機與調試對象相連。協議轉換器主要將調試主機發(fā)送的高層調試命令轉換為底層JTAG調試命令?,F有JTAG協議轉換器需要通過物理硬件來實現,如商用JLINK[12],ST-LINK[13]等。

本文所用的JTAG調試命令通過TRSTn,CLK,TMS,TDI,TDO 5條控制及信號線進行數據交互,通過有限狀態(tài)機控制各個信號的發(fā)送與接收,該狀態(tài)機也是JTAG調試的核心運行邏輯,通過運行邏輯保證系統的正確運行,如圖2所示。TRSTn信號為可選信號,用來對狀態(tài)機復位,恢復到Test-Logic Reset狀態(tài)。在TCK信號的驅動下,TMS信號對狀態(tài)機狀態(tài)進行控制,TDI與TDO信號訪問邊界掃描鏈的2種寄存器:指令寄存器(IR,instruction register)與數據寄存器(DR,data register)。通過對指令寄存器的配置可以控制待測器件按

指定命令執(zhí)行功能,通過對數據寄存器的寫入或讀取來控制待測器件的數據輸入或反饋輸出。由以上方式完成待測器件的JTAG調試。

在硬件仿真器中,本文基于SCE-MI(standard co-emulation modeling interface)協議[14]生成JTAG的事務器模塊,用來進行JTAG協議轉換。硬件仿真器中的JTAG調試系統結構如圖3所示。

圖3中JTAG Proxy及JTAG Transactor為基于SCE-MI協議Function-based Channel實現的JTAG軟件端代理器和硬件端事務器模塊。通過SystemVerilog的DPI (direct programming interface)接口[15]實現接口函數,完成代理器及事務器的消息互通。JTAG Proxy及Transactor中所調用及聲明的函數接口如表1所示。

Send_result_to_server()及Send_cmdend_to_server()是在代理器中實現的DPI接口,在事務器中進行主動調用,從而將JTAG中TDO的輸出信號以及輸出信號的終止信號發(fā)送給代理器。Send_cmd_to_xtor()是事務器提供的DPI接口,供代理器調用,用來發(fā)送命令及數據給事務器。Send_cmd()是代理器提供的API接口,用來讓測試激勵給代理器發(fā)送命令。Send_data()是代理器提供的API接口,用來給測試激勵發(fā)送反饋數據。

JTAG 事務器中通過有限狀態(tài)機控制命令的解析、執(zhí)行以及反饋。命令控制狀態(tài)機的示意圖如圖4所示。該事務器有限狀態(tài)機是控制事務器與代理器運行邏輯的核心模塊,需要該狀態(tài)機來控制事務器與代理器信號的發(fā)送與接收,從而保證事務器與代理器的正確運行。

該狀態(tài)機中IDLE為空閑狀態(tài),PARSE_CMD為解析命令狀態(tài),EXEC_CMD為執(zhí)行命令狀態(tài),SEND_ACK為發(fā)送回復狀態(tài),CMD_END為命令完成狀態(tài)。其中PARSE_CMD狀態(tài)中的命令包含RESET,STOP_SIMU,TMS_SEQ,SCAN_CHAIN, SCAN_CHAIN_FLIP_TMS共5條命令,用來根據上位機發(fā)送的CMD命令控制TMS信號。EXEC_CMD狀態(tài)中根據解析得到的TMS信號,控制發(fā)送TMS和TDI信號給DUT,或者接收DUT發(fā)送的TDO信號。SEND_ACK狀態(tài)將接收到的TDO信號傳送給Proxy。代理器與事務器間交互的消息包含CMD,buffer_in,buffer_out,length,nb_bits共5個數據。其中CMD為命令狀態(tài)機中的命令;buffer_in存儲TDO信號;buffer_out存儲TMS或TDI信號;length存儲代理器中數據的長度;nb_bits存儲事務器中需解析的數據位數。

通過JTAG事務器中命令控制狀態(tài)機的控制以及代理器與事務器間消息的傳遞,JTAG代理器與事務器間即可構成調試信息通道,從而進行對待測器件的信息輸入與反饋信號的獲取。

2 虛擬GDB調試技術及其在硬件仿真器中的應用

使用JTAG Proxy及Transactor調試系統需要編寫復雜的測試激勵,對于DUT上運行的軟件調試來說過于復雜。本文結合JTAG調試系統開發(fā)出虛擬GDB調試技術,使硬件仿真器可以脫離JTAG仿真器物理硬件,僅通過Host Server以及Emulator即可進行GDB調試。虛擬GDB技術通過VPI (virtual protocol interconnect)接口協議,將GDB命令解析轉譯為JTAG Proxy可識別的JTAG命令,結合JTAG Proxy及Transactor形成一整套GDB調試系統[16],用于調試硬件仿真器中的DUT。其在硬件仿真器中的調試系統如圖5所示。

使用的OpenOCD是一個開源調試軟件,其與GDB調試工具可進行聯合工作,支持現有ARM處理器、MIPS以及Intel FPGA等核心芯片的調試,也支持JLINK等商用的JTAG仿真器。OpenOCD主要包含3個模塊:GDB服務模塊、Proxy服務模塊、目標模塊配置模塊。GDB服務模塊用于GDB與OpenOCD的通信,其會建立一個線程循環(huán)監(jiān)聽通信連接,當收到GDB發(fā)送的RSP信息包格式的信息時,提取命令信息并發(fā)送給OpenOCD;執(zhí)行或者收到返回數據時,將返回數據封裝成RSP信息包返回給GDB[17]。Proxy服務模塊是基于調試訪問端口(debug access port, DAP)實現的模塊,用來將JTAG接口數據轉譯成不同的系統總線事務[18]從而與JTAG代理器進行通信。目標模塊配置模塊根據目標芯片進行匹配設置,進而與目標芯片進行連接配置確認,確認整個系統與對應的DUT建立連接。

GDB服務模塊與Proxy服務模塊使用默認配置建立連接,修改目標模塊配置部分,使用VPI接口協議對硬件仿真器中的JTAG Proxy進行通信適配。配置JTAG_VPI_PORT端口為5555,JTAG_VPI_ADDERSS地址為127.0.0.1,通過地址端口建立連接。配置目標芯片為Cortex-M3,配置JTAG時鐘為1 MHz,內存起始地址為0x200000000,大小為0x10000,指令位寬為4,掩碼為0xf。

JTAG Proxy中增加Init_jtag_server()函數,用來創(chuàng)建線程循環(huán)監(jiān)聽端口連接,端口與JTAG_VPI_PORT保持一致。當收到OpenOCD發(fā)送的數據時,首先將其轉譯為Proxy中可識別的命令存入數據結構中,然后調用Send_cmd()函數將命令發(fā)送給Transactor,完成命令的發(fā)送。再將Send_data()函數進行適配,將收到的JTAG信號封裝為VPI數據,發(fā)送給Open-OCD,完成數據的返回。

3 測試結果與討論

本文所用測試用例為開源的Cortex-M3內核[19],經自主研發(fā)的硬件仿真器配套編譯器編譯后寫入硬件仿真器。所用硬件仿真器為自主研發(fā)的企業(yè)級硬件仿真器,采用IntelS10系列FPGA組成陣列,單顆FPGA包含5 172 480個LUT(look-up table),7 758 720個FF(flip-flop),12 950個BRAM(block RAM),以及6 912個DSP(digital signal processor)??芍С?0億ASIC門的芯片設計進行硬件仿真驗證。

所用服務器CPU為Intel Xeon Platinum8268 @2.9 GHz 128核,內存1 TB,在CentOS系統上啟動軟硬件。硬件仿真器以TBA模式啟動成功后可顯示Porxy正在監(jiān)聽端口5555,然后開啟OpenOCD,讀取端口連接信息及DAP的相關信息。例如:連接端口127.0.0.1:5555,JTAG tap為cm3,器件TAPID為0x4ba00477,如圖6所示。啟動GDB后執(zhí)行target remote 127.0.0.1:3333,連接成功后執(zhí)行l(wèi)oad命令,將之前編譯好的elf文件下載到Cortex-M3中進行調試。

本次測試對Cortex-M3內部寄存器進行賦值并通過單步執(zhí)行獲取每次賦值后的寄存器值,如圖7所示,寄存器r0成功賦值為1。

該結果表明,整個虛擬GDB遠程調試系統成功應用于硬件仿真器中,可進行GDB調試方法中的單步調試、寄存器值獲取等操作,有效增強了硬件仿真器的調試能力。

當使用ICE模式運行時,接入JLINK仿真器到硬件仿真器的JTAG接口,同樣可以進行遠程調試,OpenOCD的連接情況如圖8所示。

使用Cortex-M3在硬件仿真器中的編譯及運行參數如表2所示。由表2可知,事務器所消耗的額外硬件資源量僅占單顆FPGA的0.2%,而運行頻率可達到6 MHz,相比于其他硬件仿真器的1 MHz提升了6倍。

本文還使用插入探針的方法對DUT進行調試,通過探針抓取TCK,TMS,TDI以及TDO信號,得到的信號波形如圖9所示。

本次插入4個靜態(tài)探針,探針占用資源需要增加4個LUT以及32個FF,同時對調試時間進行比對。使用GDB調試獲取寄存器數據,從啟動GDB到獲取數據用時不超過2 s;使用探針進行信號抓取,從啟動測試激勵到信號抓取完成需180 s??梢钥吹?,使用虛擬GDB調試系統可以加速調試時間近百倍。這是因為,探針抓取需要將信號引入專用的調試硬件IP,而后將數據存入存儲器進行數據對齊等處理,最后才能顯示波形,數據處理和顯示需要消耗大量時間。另外,探針抓取的信號數量還受到存儲器大小的約束,數據量超過存儲器大小時將無法完整地保留所有數據。而使用虛擬GDB進行調試時,只需要輸入對應的激勵就可以即時獲取想要的數據,這也體現出虛擬GDB調試系統的靈活性。

4 結 語

本文設計和開發(fā)了虛擬GDB遠程調試系統,并成功應用于硬件仿真器中。相比于探針抓取的調試方法,虛擬GDB遠程調試系統減少了近百倍的調試時間。該系統同時支持硬件仿真器的ICE模式和TBA模式,豐富了硬件仿真器的軟件調試手段,同時還縮短了DUT的調試時間,方便硬件仿真器用戶進行遠程調試,為國產硬件仿真器提供了更加便捷靈活的軟件調試方法。

但是,對于軟件調試方法來說單純GDB調試僅是基礎功能。未來可將虛擬GDB遠程調試技術與更高層次的集成開發(fā)環(huán)境(如eclipse等)相結合,開發(fā)出更為便捷的軟件調試工具,方便芯片從業(yè)人員基于硬件仿真器對所設計的芯片進行仿真驗證。

參考文獻/References:

[1] 徐宣哲,寧珂,鄭學敏,等.基于硬件仿真系統的邊緣計算人工智能視覺芯片設計驗證[J].物聯網學報,2022,6(1):20-28.

XU Xuanzhe,NING Ke,ZHENG Xuemin,et al.Verification of an artificial intelligence vision chip design for edge computing based on hardware simulation system[J].Chinese Journal on Internet of Things,2022,6(1):20-28.

[2] 郝強.基于硬件仿真器的PCIe接口驗證方法的研究和實現[J].電子技術應用,2020,46(8):77-79.

HAO Qiang.Research and implementation of verification method for PCIe interface based on emulator[J].Application of Electronic Technique,2020,46(8):77-79.

[3] 王雷,王晨光,吳斌.基于硬件加速器的高性能芯片仿真與驗證[J].電子技術應用,2019,45(8):61-62.

WANG Lei,WANG Chenguang,WU Bin.Debugging a high-performance WLAN chip with palladium XP emulator[J].Application of Electronic Technique,2019,45(8):61-62.

[4] BRAHME D S,COX S,GALLO J,et al.The Transaction-based verification methodology[J].Cadence Berkeley Labs,2000.DOI: 10.1109/IEEESTD.2013.6515989.

[5] 徐健,羅天柱.CADENCE硬件仿真器在Ethernet交換芯片驗證中的應用[J].中國集成電路,2005(9):76-78.

XU Jian,LUO Tianzhu.Implementation of CADENCE emulator in verification of Ethernet exchange chip[J].China Integrated Circuit,2005(9):76-78.

[6] 江霞林,周劍揚,楊銀濤,等.基于FPGA的軟硬件協同仿真加速技術[J].中國集成電路,2010,19(8):30-33.

JIANG Xialin,ZHOU Jianyang,YANG Yintao,et al.FPGA based accelerator for hardware/software co-simulation[J].China Integrated Circuit,2010,19(8):30-33.

[7] 閻芳,李翔,徐雙平,等.基于硬件仿真加速器的AFDX端系統測試方法研究[J].電子技術與軟件工程,2020(1):76-77.

[8] Mentor Graphics公司.基于硬件仿真的軟件調試方法[J].中國集成電路,2014,23(10):45-47.

[9] 單祥茹. Palladium Z1開創(chuàng)數據中心級硬件仿真加速新時代[J]. 電子技術應用, 2016, 42(1):12-14.

SHAN Xiangru. Palladium Zi opens new era of data center level hardware simulation acceleration[J]. Application of Electronic Techno-logy, 2016, 42(1):12-14.

[10]MAUNDER C M ,? TULLOSS R E ,? BHAVSAR D K , et al. IEEE Standard Test Access Port and Boundary-Scan Architecture[M].[S.l.]:[s.n.],1993.

[11]許瓊.基于JTAG的ARM7TDMI調試系統[J].計算機工程,2008,34(15):252-254.

XU Qiong.ARM7TDMI debugging system based on JTAG[J].Computer Engineering,2008,34(15):252-254.

[12]SEGGER.Application Note:Analyzing HardFaults on Cortex-M CPUs[EB/OL].https://www.segger.com/downloads/application-notes,2023-06-10.

[13]STMICROELECTRONICS.ST-LINK/V2 in-circuit Debugger/Programmer for STM8 and STM32 UserManual[EB/OL].https://www.st.com/resource/en/user_manual/dm00026748-st-link-v2-in-circuit-debugger-programmer-for-stm8-and-stm32-stmicroelectronics.pdf,2023-02-14.

[14]Accellera Interfaces Technical Committee.Standard Co-Emulation Modeling Interface[EB/OL].https://www.eda.org/images/downloads/standards/sce-mi/SCE-MI_v24-Nov2016.pdf,2016-11-06.

[15]虞致國,魏敬和.基于SystemVerilog DPI的ARM SoC虛擬調試驗證平臺的設計[J].微電子學與計算機,2009,26(11):117-123.

YU Zhiguo,WEI Jinghe.Design of virtual verification platform for ARM SoC based on System Verilog DPI[J].Microelectronics & Computer,2009,26(11):117-123.

[16]GRANT R E,AFSAHI A,BALAJI P.Evaluation of ConnectX virtual protocol interconnect for data centers[C]//2009 15th International Conference on Parallel and Distributed Systems,Shenzhen:IEEE,2009:57-64.

[17]殷紹劍,雷航,詹瑾瑜.嵌入式遠程調試原理研究與實現[J].計算機應用與軟件,2014,31(6):240-243.

YIN Shaojian,LEI Hang,ZHAN Jinyu.Study and implementation of the principle of embedded remote debugging[J].Computer Applications and Software,2014,31(6):240-243.

[18]徐文昌.SoC調試跟蹤系統的設計與實現[D].西安:西安電子科技大學,2012.

XU Wenchang.Design and implementation of SoC debug and trace system[D].Xi′an:Xidian University,2012.

[19]令狐紹尉,鄧睿,吳加加,等.基于Cortex-M3的SoC嵌入式系統架構設計[J].移動信息,2022(9):22-24.

猜你喜歡
計算機仿真
端部托圓球雕塑的半圓拱梁彎曲的計算機仿真分析
虛擬樣機技術及虛擬樣機試驗
自動控制原理的仿真實驗教學設計
“平安金融中心”對深圳寶安國際機場容量影響的仿真研究
引入計算機仿真的數學物理方法教學構想與實踐
實踐與創(chuàng)新
不同進水口設計的冷熱混合器計算機仿真
基于仿真技術的血管支架工藝設置的研究
“汽車電控單元與接口技術”的課程考核改革研究
基于結構圖設計LDPC碼及其性能仿真
深州市| 东乡族自治县| 西峡县| 荣昌县| 新郑市| 牙克石市| 万盛区| 新巴尔虎右旗| 昔阳县| 婺源县| 无棣县| 新津县| 仁怀市| 普定县| 韶山市| 诏安县| 沧州市| 临洮县| 仁怀市| 洪湖市| 济宁市| 平阴县| 翁牛特旗| 石泉县| 绍兴市| 伊吾县| 新泰市| 满城县| 通江县| 抚远县| 濮阳市| 旬阳县| 五原县| 洛宁县| 仁化县| 潼关县| 怀柔区| 衡水市| 威宁| 榆林市| 苍溪县|