黃侃 徐勇 李艷榮
摘 要:為了解決當(dāng)前硬件仿真器采用測(cè)試激勵(lì)與探針采樣調(diào)試方法導(dǎo)致的額外硬件資源需求增加以及調(diào)試方法復(fù)雜死板的問(wèn)題,研究出一種虛擬GDB遠(yuǎn)程調(diào)試技術(shù)提高硬件仿真器的調(diào)試能力。首先,使用JTAG的消息代理器與事務(wù)處理器進(jìn)行軟件與硬件的信息交互,實(shí)現(xiàn)計(jì)算機(jī)與硬件仿真器的通信;然后,通過(guò)VPI接口實(shí)現(xiàn)GDB與JTAG代理器的軟件信息交互,完成虛擬GDB調(diào)試;最后,在硬件仿真器中進(jìn)行應(yīng)用實(shí)驗(yàn)。結(jié)果表明,虛擬GDB遠(yuǎn)程調(diào)試系統(tǒng)可支持?jǐn)帱c(diǎn)插入、單步運(yùn)行、寄存器讀寫等功能,與插入探針的調(diào)試方法相比,使用虛擬GDB調(diào)試提速近百倍。虛擬GDB遠(yuǎn)程調(diào)試技術(shù)豐富了硬件仿真器的軟件調(diào)試手段,增強(qiáng)了硬件仿真器的調(diào)試能力,提升了芯片設(shè)計(jì)驗(yàn)證效率。
關(guān)鍵詞:計(jì)算機(jī)仿真;遠(yuǎn)程調(diào)試技術(shù);硬件仿真加速器;SCEMI;JTAG事務(wù)器;OpenOCD
中圖分類號(hào):TP391.9
文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.7535/hbkd.2023yx03001
收稿日期:2023-04-24;修回日期:2023-06-06;責(zé)任編輯:張士瑩
基金項(xiàng)目:國(guó)家自然科學(xué)基金面上項(xiàng)目(61876051);深圳市科創(chuàng)委資助項(xiàng)目(KCXFZ20211020163402004)
第一作者簡(jiǎn)介:黃 侃(1990—),男,陜西蒲城人,博士,主要從事硬件仿真加速器系統(tǒng)及算法方面的研究。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ī)模集成電路的不斷增長(zhǎng),以及產(chǎn)品迭代周期的不斷縮短,電路仿真驗(yàn)證變得愈加困難。基于軟件模擬(software simulation)的驗(yàn)證方法逐漸無(wú)法適用于如今超大規(guī)模集成電路的仿真驗(yàn)證,尤其是在仿真速度上出現(xiàn)了瓶頸問(wèn)題[1]。因此,使用能夠高速運(yùn)行的硬件進(jìn)行仿真加速成為現(xiàn)代超大規(guī)模集成電路仿真驗(yàn)證的重要技術(shù)途徑?;谟布抡嫫鳎╡mulator)的仿真驗(yàn)證技術(shù)成為芯片設(shè)計(jì)及驗(yàn)證從業(yè)人員極為關(guān)注的重要技術(shù)手段[2]。
硬件仿真器常用的驗(yàn)證方法包含在線仿真模式(in-circuit emulation,ICE)[3]、基于事務(wù)加速模式(transaction based acceleration,TBA)[4]以及帶目標(biāo)的仿真加速模式(simulation acceleration with target)[5],通過(guò)測(cè)試激勵(lì)對(duì)待測(cè)器件(device-under-test,DUT)進(jìn)行激勵(lì)并將反饋信號(hào)與預(yù)期結(jié)果相比較來(lái)查找問(wèn)題。文獻(xiàn)[6]采用測(cè)試激勵(lì)對(duì)Xilinx公司的FFT(fast fourier transform) IP核進(jìn)行激勵(lì)并獲取反饋數(shù)據(jù)進(jìn)行仿真調(diào)試,但是其只能針對(duì)一定周期數(shù)的指定信號(hào)進(jìn)行采樣來(lái)驗(yàn)證IP核的正確性,該IP相對(duì)于復(fù)雜芯片僅是極其微小的一部分,對(duì)于完整芯片的驗(yàn)證調(diào)試復(fù)雜度會(huì)成指數(shù)級(jí)增長(zhǎng)。文獻(xiàn)[7]構(gòu)建了基于TBA的驗(yàn)證平臺(tái),需要構(gòu)建額外的生成器、檢查器、監(jiān)視器等器件來(lái)完成對(duì)待測(cè)器件的驗(yàn)證,其對(duì)額外硬件資源需求增加較為明顯。同時(shí),還需要驗(yàn)證人員開發(fā)配套器件,也提升了驗(yàn)證成本。文獻(xiàn)[8]通過(guò)增加探針及額外I/O卡進(jìn)行軟件調(diào)試,增加了軟件調(diào)試的復(fù)雜性。此外,常用硬件仿真器中實(shí)時(shí)調(diào)試的手段只能通過(guò)加入靜態(tài)探針、動(dòng)態(tài)探針等方法獲取DUT內(nèi)部信號(hào)數(shù)據(jù)進(jìn)行調(diào)試[9]。以上的仿真調(diào)試驗(yàn)證方法不僅需要消耗額外的硬件資源,還存在對(duì)DUT內(nèi)運(yùn)行軟件調(diào)試靈活性不足的問(wèn)題。同時(shí),企業(yè)級(jí)硬件仿真器物理硬件復(fù)雜,JTAG(joint test action group)接口不便于接入,更加影響了硬件仿真器中的軟件調(diào)試手段。
因此,為了使硬件仿真加速器的調(diào)試手段更加靈活,獲取DUT內(nèi)部信號(hào)的能力更加便捷,同時(shí)為了解決硬件仿真器不方便接入JTAG仿真器,以及盡可能減少驗(yàn)證成本及時(shí)間等問(wèn)題,結(jié)合GDB(gnu debugger)調(diào)試技術(shù)、VPI通信接口以及基于SCEMI協(xié)議的JTAG代理器及事務(wù)器技術(shù),對(duì)虛擬GDB遠(yuǎn)程調(diào)試技術(shù)進(jìn)行研究,并在硬件仿真器中進(jìn)行應(yīng)用實(shí)驗(yàn)。
1 硬件仿真器中的JTAG調(diào)試系統(tǒng)
基于國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議(IEEE 1149.1)的JTAG調(diào)試是如今普遍使用的嵌入式調(diào)試技術(shù)[10]。JTAG接口可讀取或?qū)懭胄酒瑑?nèi)部封裝的邊界掃描鏈(boundary scan chain)寄存器的信息,幫助設(shè)計(jì)測(cè)試人員對(duì)DUT內(nèi)部的行為邏輯進(jìn)行調(diào)試。經(jīng)典的JTAG調(diào)試系統(tǒng)結(jié)構(gòu)如圖1所示[11],通過(guò)協(xié)議轉(zhuǎn)換器將調(diào)試主機(jī)與調(diào)試對(duì)象相連。協(xié)議轉(zhuǎn)換器主要將調(diào)試主機(jī)發(fā)送的高層調(diào)試命令轉(zhuǎn)換為底層JTAG調(diào)試命令?,F(xiàn)有JTAG協(xié)議轉(zhuǎn)換器需要通過(guò)物理硬件來(lái)實(shí)現(xiàn),如商用JLINK[12],ST-LINK[13]等。
本文所用的JTAG調(diào)試命令通過(guò)TRSTn,CLK,TMS,TDI,TDO 5條控制及信號(hào)線進(jìn)行數(shù)據(jù)交互,通過(guò)有限狀態(tài)機(jī)控制各個(gè)信號(hào)的發(fā)送與接收,該狀態(tài)機(jī)也是JTAG調(diào)試的核心運(yùn)行邏輯,通過(guò)運(yùn)行邏輯保證系統(tǒng)的正確運(yùn)行,如圖2所示。TRSTn信號(hào)為可選信號(hào),用來(lái)對(duì)狀態(tài)機(jī)復(fù)位,恢復(fù)到Test-Logic Reset狀態(tài)。在TCK信號(hào)的驅(qū)動(dòng)下,TMS信號(hào)對(duì)狀態(tài)機(jī)狀態(tài)進(jìn)行控制,TDI與TDO信號(hào)訪問(wèn)邊界掃描鏈的2種寄存器:指令寄存器(IR,instruction register)與數(shù)據(jù)寄存器(DR,data register)。通過(guò)對(duì)指令寄存器的配置可以控制待測(cè)器件按
指定命令執(zhí)行功能,通過(guò)對(duì)數(shù)據(jù)寄存器的寫入或讀取來(lái)控制待測(cè)器件的數(shù)據(jù)輸入或反饋輸出。由以上方式完成待測(cè)器件的JTAG調(diào)試。
在硬件仿真器中,本文基于SCE-MI(standard co-emulation modeling interface)協(xié)議[14]生成JTAG的事務(wù)器模塊,用來(lái)進(jìn)行JTAG協(xié)議轉(zhuǎn)換。硬件仿真器中的JTAG調(diào)試系統(tǒng)結(jié)構(gòu)如圖3所示。
圖3中JTAG Proxy及JTAG Transactor為基于SCE-MI協(xié)議Function-based Channel實(shí)現(xiàn)的JTAG軟件端代理器和硬件端事務(wù)器模塊。通過(guò)SystemVerilog的DPI (direct programming interface)接口[15]實(shí)現(xiàn)接口函數(shù),完成代理器及事務(wù)器的消息互通。JTAG Proxy及Transactor中所調(diào)用及聲明的函數(shù)接口如表1所示。
Send_result_to_server()及Send_cmdend_to_server()是在代理器中實(shí)現(xiàn)的DPI接口,在事務(wù)器中進(jìn)行主動(dòng)調(diào)用,從而將JTAG中TDO的輸出信號(hào)以及輸出信號(hào)的終止信號(hào)發(fā)送給代理器。Send_cmd_to_xtor()是事務(wù)器提供的DPI接口,供代理器調(diào)用,用來(lái)發(fā)送命令及數(shù)據(jù)給事務(wù)器。Send_cmd()是代理器提供的API接口,用來(lái)讓測(cè)試激勵(lì)給代理器發(fā)送命令。Send_data()是代理器提供的API接口,用來(lái)給測(cè)試激勵(lì)發(fā)送反饋數(shù)據(jù)。
JTAG 事務(wù)器中通過(guò)有限狀態(tài)機(jī)控制命令的解析、執(zhí)行以及反饋。命令控制狀態(tài)機(jī)的示意圖如圖4所示。該事務(wù)器有限狀態(tài)機(jī)是控制事務(wù)器與代理器運(yùn)行邏輯的核心模塊,需要該狀態(tài)機(jī)來(lái)控制事務(wù)器與代理器信號(hào)的發(fā)送與接收,從而保證事務(wù)器與代理器的正確運(yùn)行。
該狀態(tài)機(jī)中IDLE為空閑狀態(tài),PARSE_CMD為解析命令狀態(tài),EXEC_CMD為執(zhí)行命令狀態(tài),SEND_ACK為發(fā)送回復(fù)狀態(tài),CMD_END為命令完成狀態(tài)。其中PARSE_CMD狀態(tài)中的命令包含RESET,STOP_SIMU,TMS_SEQ,SCAN_CHAIN, SCAN_CHAIN_FLIP_TMS共5條命令,用來(lái)根據(jù)上位機(jī)發(fā)送的CMD命令控制TMS信號(hào)。EXEC_CMD狀態(tài)中根據(jù)解析得到的TMS信號(hào),控制發(fā)送TMS和TDI信號(hào)給DUT,或者接收DUT發(fā)送的TDO信號(hào)。SEND_ACK狀態(tài)將接收到的TDO信號(hào)傳送給Proxy。代理器與事務(wù)器間交互的消息包含CMD,buffer_in,buffer_out,length,nb_bits共5個(gè)數(shù)據(jù)。其中CMD為命令狀態(tài)機(jī)中的命令;buffer_in存儲(chǔ)TDO信號(hào);buffer_out存儲(chǔ)TMS或TDI信號(hào);length存儲(chǔ)代理器中數(shù)據(jù)的長(zhǎng)度;nb_bits存儲(chǔ)事務(wù)器中需解析的數(shù)據(jù)位數(shù)。
通過(guò)JTAG事務(wù)器中命令控制狀態(tài)機(jī)的控制以及代理器與事務(wù)器間消息的傳遞,JTAG代理器與事務(wù)器間即可構(gòu)成調(diào)試信息通道,從而進(jìn)行對(duì)待測(cè)器件的信息輸入與反饋信號(hào)的獲取。
2 虛擬GDB調(diào)試技術(shù)及其在硬件仿真器中的應(yīng)用
使用JTAG Proxy及Transactor調(diào)試系統(tǒng)需要編寫復(fù)雜的測(cè)試激勵(lì),對(duì)于DUT上運(yùn)行的軟件調(diào)試來(lái)說(shuō)過(guò)于復(fù)雜。本文結(jié)合JTAG調(diào)試系統(tǒng)開發(fā)出虛擬GDB調(diào)試技術(shù),使硬件仿真器可以脫離JTAG仿真器物理硬件,僅通過(guò)Host Server以及Emulator即可進(jìn)行GDB調(diào)試。虛擬GDB技術(shù)通過(guò)VPI (virtual protocol interconnect)接口協(xié)議,將GDB命令解析轉(zhuǎn)譯為JTAG Proxy可識(shí)別的JTAG命令,結(jié)合JTAG Proxy及Transactor形成一整套GDB調(diào)試系統(tǒng)[16],用于調(diào)試硬件仿真器中的DUT。其在硬件仿真器中的調(diào)試系統(tǒng)如圖5所示。
使用的OpenOCD是一個(gè)開源調(diào)試軟件,其與GDB調(diào)試工具可進(jìn)行聯(lián)合工作,支持現(xiàn)有ARM處理器、MIPS以及Intel FPGA等核心芯片的調(diào)試,也支持JLINK等商用的JTAG仿真器。OpenOCD主要包含3個(gè)模塊:GDB服務(wù)模塊、Proxy服務(wù)模塊、目標(biāo)模塊配置模塊。GDB服務(wù)模塊用于GDB與OpenOCD的通信,其會(huì)建立一個(gè)線程循環(huán)監(jiān)聽通信連接,當(dāng)收到GDB發(fā)送的RSP信息包格式的信息時(shí),提取命令信息并發(fā)送給OpenOCD;執(zhí)行或者收到返回?cái)?shù)據(jù)時(shí),將返回?cái)?shù)據(jù)封裝成RSP信息包返回給GDB[17]。Proxy服務(wù)模塊是基于調(diào)試訪問(wèn)端口(debug access port, DAP)實(shí)現(xiàn)的模塊,用來(lái)將JTAG接口數(shù)據(jù)轉(zhuǎn)譯成不同的系統(tǒng)總線事務(wù)[18]從而與JTAG代理器進(jìn)行通信。目標(biāo)模塊配置模塊根據(jù)目標(biāo)芯片進(jìn)行匹配設(shè)置,進(jìn)而與目標(biāo)芯片進(jìn)行連接配置確認(rèn),確認(rèn)整個(gè)系統(tǒng)與對(duì)應(yīng)的DUT建立連接。
GDB服務(wù)模塊與Proxy服務(wù)模塊使用默認(rèn)配置建立連接,修改目標(biāo)模塊配置部分,使用VPI接口協(xié)議對(duì)硬件仿真器中的JTAG Proxy進(jìn)行通信適配。配置JTAG_VPI_PORT端口為5555,JTAG_VPI_ADDERSS地址為127.0.0.1,通過(guò)地址端口建立連接。配置目標(biāo)芯片為Cortex-M3,配置JTAG時(shí)鐘為1 MHz,內(nèi)存起始地址為0x200000000,大小為0x10000,指令位寬為4,掩碼為0xf。
JTAG Proxy中增加Init_jtag_server()函數(shù),用來(lái)創(chuàng)建線程循環(huán)監(jiān)聽端口連接,端口與JTAG_VPI_PORT保持一致。當(dāng)收到OpenOCD發(fā)送的數(shù)據(jù)時(shí),首先將其轉(zhuǎn)譯為Proxy中可識(shí)別的命令存入數(shù)據(jù)結(jié)構(gòu)中,然后調(diào)用Send_cmd()函數(shù)將命令發(fā)送給Transactor,完成命令的發(fā)送。再將Send_data()函數(shù)進(jìn)行適配,將收到的JTAG信號(hào)封裝為VPI數(shù)據(jù),發(fā)送給Open-OCD,完成數(shù)據(jù)的返回。
3 測(cè)試結(jié)果與討論
本文所用測(cè)試用例為開源的Cortex-M3內(nèi)核[19],經(jīng)自主研發(fā)的硬件仿真器配套編譯器編譯后寫入硬件仿真器。所用硬件仿真器為自主研發(fā)的企業(yè)級(jí)硬件仿真器,采用IntelS10系列FPGA組成陣列,單顆FPGA包含5 172 480個(gè)LUT(look-up table),7 758 720個(gè)FF(flip-flop),12 950個(gè)BRAM(block RAM),以及6 912個(gè)DSP(digital signal processor)??芍С?0億ASIC門的芯片設(shè)計(jì)進(jìn)行硬件仿真驗(yàn)證。
所用服務(wù)器CPU為Intel Xeon Platinum8268 @2.9 GHz 128核,內(nèi)存1 TB,在CentOS系統(tǒng)上啟動(dòng)軟硬件。硬件仿真器以TBA模式啟動(dòng)成功后可顯示Porxy正在監(jiān)聽端口5555,然后開啟OpenOCD,讀取端口連接信息及DAP的相關(guān)信息。例如:連接端口127.0.0.1:5555,JTAG tap為cm3,器件TAPID為0x4ba00477,如圖6所示。啟動(dòng)GDB后執(zhí)行target remote 127.0.0.1:3333,連接成功后執(zhí)行l(wèi)oad命令,將之前編譯好的elf文件下載到Cortex-M3中進(jìn)行調(diào)試。
本次測(cè)試對(duì)Cortex-M3內(nèi)部寄存器進(jìn)行賦值并通過(guò)單步執(zhí)行獲取每次賦值后的寄存器值,如圖7所示,寄存器r0成功賦值為1。
該結(jié)果表明,整個(gè)虛擬GDB遠(yuǎn)程調(diào)試系統(tǒng)成功應(yīng)用于硬件仿真器中,可進(jìn)行GDB調(diào)試方法中的單步調(diào)試、寄存器值獲取等操作,有效增強(qiáng)了硬件仿真器的調(diào)試能力。
當(dāng)使用ICE模式運(yùn)行時(shí),接入JLINK仿真器到硬件仿真器的JTAG接口,同樣可以進(jìn)行遠(yuǎn)程調(diào)試,OpenOCD的連接情況如圖8所示。
使用Cortex-M3在硬件仿真器中的編譯及運(yùn)行參數(shù)如表2所示。由表2可知,事務(wù)器所消耗的額外硬件資源量?jī)H占單顆FPGA的0.2%,而運(yùn)行頻率可達(dá)到6 MHz,相比于其他硬件仿真器的1 MHz提升了6倍。
本文還使用插入探針的方法對(duì)DUT進(jìn)行調(diào)試,通過(guò)探針抓取TCK,TMS,TDI以及TDO信號(hào),得到的信號(hào)波形如圖9所示。
本次插入4個(gè)靜態(tài)探針,探針占用資源需要增加4個(gè)LUT以及32個(gè)FF,同時(shí)對(duì)調(diào)試時(shí)間進(jìn)行比對(duì)。使用GDB調(diào)試獲取寄存器數(shù)據(jù),從啟動(dòng)GDB到獲取數(shù)據(jù)用時(shí)不超過(guò)2 s;使用探針進(jìn)行信號(hào)抓取,從啟動(dòng)測(cè)試激勵(lì)到信號(hào)抓取完成需180 s??梢钥吹剑褂锰摂MGDB調(diào)試系統(tǒng)可以加速調(diào)試時(shí)間近百倍。這是因?yàn)?,探針抓取需要將信?hào)引入專用的調(diào)試硬件IP,而后將數(shù)據(jù)存入存儲(chǔ)器進(jìn)行數(shù)據(jù)對(duì)齊等處理,最后才能顯示波形,數(shù)據(jù)處理和顯示需要消耗大量時(shí)間。另外,探針抓取的信號(hào)數(shù)量還受到存儲(chǔ)器大小的約束,數(shù)據(jù)量超過(guò)存儲(chǔ)器大小時(shí)將無(wú)法完整地保留所有數(shù)據(jù)。而使用虛擬GDB進(jìn)行調(diào)試時(shí),只需要輸入對(duì)應(yīng)的激勵(lì)就可以即時(shí)獲取想要的數(shù)據(jù),這也體現(xiàn)出虛擬GDB調(diào)試系統(tǒng)的靈活性。
4 結(jié) 語(yǔ)
本文設(shè)計(jì)和開發(fā)了虛擬GDB遠(yuǎn)程調(diào)試系統(tǒng),并成功應(yīng)用于硬件仿真器中。相比于探針抓取的調(diào)試方法,虛擬GDB遠(yuǎn)程調(diào)試系統(tǒng)減少了近百倍的調(diào)試時(shí)間。該系統(tǒng)同時(shí)支持硬件仿真器的ICE模式和TBA模式,豐富了硬件仿真器的軟件調(diào)試手段,同時(shí)還縮短了DUT的調(diào)試時(shí)間,方便硬件仿真器用戶進(jìn)行遠(yuǎn)程調(diào)試,為國(guó)產(chǎn)硬件仿真器提供了更加便捷靈活的軟件調(diào)試方法。
但是,對(duì)于軟件調(diào)試方法來(lái)說(shuō)單純GDB調(diào)試僅是基礎(chǔ)功能。未來(lái)可將虛擬GDB遠(yuǎn)程調(diào)試技術(shù)與更高層次的集成開發(fā)環(huán)境(如eclipse等)相結(jié)合,開發(fā)出更為便捷的軟件調(diào)試工具,方便芯片從業(yè)人員基于硬件仿真器對(duì)所設(shè)計(jì)的芯片進(jìn)行仿真驗(yàn)證。
參考文獻(xiàn)/References:
[1] 徐宣哲,寧珂,鄭學(xué)敏,等.基于硬件仿真系統(tǒng)的邊緣計(jì)算人工智能視覺芯片設(shè)計(jì)驗(yàn)證[J].物聯(lián)網(wǎng)學(xué)報(bào),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] 郝強(qiáng).基于硬件仿真器的PCIe接口驗(yàn)證方法的研究和實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,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] 王雷,王晨光,吳斌.基于硬件加速器的高性能芯片仿真與驗(yàn)證[J].電子技術(shù)應(yīng)用,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交換芯片驗(yàn)證中的應(yīng)用[J].中國(guó)集成電路,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] 江霞林,周劍揚(yáng),楊銀濤,等.基于FPGA的軟硬件協(xié)同仿真加速技術(shù)[J].中國(guó)集成電路,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端系統(tǒng)測(cè)試方法研究[J].電子技術(shù)與軟件工程,2020(1):76-77.
[8] Mentor Graphics公司.基于硬件仿真的軟件調(diào)試方法[J].中國(guó)集成電路,2014,23(10):45-47.
[9] 單祥茹. Palladium Z1開創(chuàng)數(shù)據(jù)中心級(jí)硬件仿真加速新時(shí)代[J]. 電子技術(shù)應(yīng)用, 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調(diào)試系統(tǒng)[J].計(jì)算機(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]虞致國(guó),魏敬和.基于SystemVerilog DPI的ARM SoC虛擬調(diào)試驗(yàn)證平臺(tái)的設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(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]殷紹劍,雷航,詹瑾瑜.嵌入式遠(yuǎn)程調(diào)試原理研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,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調(diào)試跟蹤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012.
XU Wenchang.Design and implementation of SoC debug and trace system[D].Xi′an:Xidian University,2012.
[19]令狐紹尉,鄧睿,吳加加,等.基于Cortex-M3的SoC嵌入式系統(tǒng)架構(gòu)設(shè)計(jì)[J].移動(dòng)信息,2022(9):22-24.