CN111124887B - 一种risc-v debug系统的仿真验证方法 - Google Patents

一种risc-v debug系统的仿真验证方法 Download PDF

Info

Publication number
CN111124887B
CN111124887B CN201911167171.2A CN201911167171A CN111124887B CN 111124887 B CN111124887 B CN 111124887B CN 201911167171 A CN201911167171 A CN 201911167171A CN 111124887 B CN111124887 B CN 111124887B
Authority
CN
China
Prior art keywords
risc
interface
debug system
remote
gdb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911167171.2A
Other languages
English (en)
Other versions
CN111124887A (zh
Inventor
柳仁禹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201911167171.2A priority Critical patent/CN111124887B/zh
Publication of CN111124887A publication Critical patent/CN111124887A/zh
Application granted granted Critical
Publication of CN111124887B publication Critical patent/CN111124887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种RISC‑V DEBUG系统的仿真验证方法,包括步骤:A.通过Remote Bitbang接口实现JTAG接口驱动;B.通过DPI接口实现DEBUG系统中DTM模块与Remote Bitbang接口的数据传输;C.以OpenOCD作为片上调试器,通过调用Remote Bitbang接口实现与DTM模块的JTAG TAP通信;D.通过TCP SOCKET的方式,实现GDB与OpenOCD的连接;E.将C代码编译成可执行程序,通过GDB下载至RISC‑V Core中;F.通过GDB输入不同功能的指令,实现RISC‑V DEBUG系统的仿真验证。本发明的方法可有效降低硬件花销成本和硬件选型调试的时间成本,同时能够有效提高仿真验证效率。

Description

一种RISC-V DEBUG系统的仿真验证方法
技术领域
本发明涉及处理器技术领域,特别涉及一种RISC-V DEBUG系统的仿真验证方法。
背景技术
在设计RISC-V Core的过程中,当设计从模拟仿真阶段发展到硬件实现时,设计者对系统当前状态的控制和理解会急剧下降,为了有助于开发调试硬件和软件,在硬件中内置一个功能完善的DEBUG系统是至关重要的。相应的,对所设计的DEBUG系统的功能性验证同样具有十分重要的意义。对DEBUG系统调试验证的最直接、最常用的方法是将DEBUG代码烧录至FPGA开发板上,开发板通过硬件接口连接调试器进行调试和验证。但是,这种方法需要购买FPGA开发板及JTAG适配器等一系列硬件设备,在一定程度上增加了验证花销成本;在对开发板的选型和调试过程中,无疑也增加了时间成本;在对DEBUG系统的仿真验证过程中,不可避免地需要经常修改代码,但每次修改代码后,要重新将代码烧录至FPGA开发板中,在一定程度上影响了仿真验证效率。
因此,如何实现一种高效率、低成本的RISC-V DEBUG系统仿真验证方法,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是克服上述背景技术中不足,提供一种RISC-V DEBUG系统的仿真验证方法,不依赖于FPGA开发板及其他相关硬件接口设备,完全在Linux系统下实现RISC-VDEBUG系统的仿真验证,可有效降低硬件花销成本和硬件选型调试的时间成本,同时能够有效提高仿真验证效率。
为了达到上述的技术效果,本发明采取以下技术方案:
一种RISC-V DEBUG系统的仿真验证方法,包括以下步骤:
A.通过Remote Bitbang接口实现JTAG接口驱动;
B.通过DPI接口实现DEBUG系统中DTM模块与Remote Bitbang接口的数据传输;其中,本步骤所用到Remote Bitbang接口是一个基于C++编写的驱动程序,而RISC-V DEBUG系统中的DTM模块是用Verilog编写的rtl代码,两者之间由于格式不同,不能直接进行数据传输,因此本方案通过采用DPI接口的方式,实现Remote Bitbang和DTM模块之间的通信;
C.以OpenOCD作为片上调试器,通过调用Remote Bitbang接口实现与DTM模块的JTAG TAP通信;因为要实现OpenOCD与RISC-V DEBUG的通信,所以OpenOCD也要通过调用Remote Bitbang接口来实现与DTM模块的数据传输;
D.通过TCP SOCKET的方式,实现GDB与OpenOCD的连接;
GDB(GNU Debugger)是Linux/Unix下的程序调试器,可用于启动程序、在程序中设置断点、查看程序中变量值以及CPU寄存器的值,并且在不改变程序源码的情况下改变寄存器和变量的值等,本方案采用GDB作为RISC-V DEBUG系统的调试器,因此GDB需要与OpenOCD实现通信,本方案通过TCP SOCKET的方式实现GDB与OpenOCD的连接;
E.将C代码编译成可执行程序,通过GDB下载至RISC-V Core中;
当GDB与OpenOCD成功连通后,可通过GDB向RISC-V Core下载程序,但GDB不能直接将编写好的C程序下载至RISC-V Core中,因此需要将C程序编译成可执行程序;
F.通过GDB输入不同功能的指令,实现RISC-V DEBUG系统的仿真验证。
进一步地,所述步骤A中Remote Bitbang接口具体是利用远程进程来驱动JTAG。
进一步地,所述步骤A中通过Remote Bitbang接口实现JTAG的驱动时包括:建立与远程进行的TCP连接,并向该进程发送ASCII编码的bitbang请求,从而驱动JTAG。
进一步地,所述Remote Bitbang接口是用C语言编写的驱动代码,DTM模块是用verilog编写的rtl代码,两者之间采用DPI接口的方式实现数据传输。
进一步地,所述GDB将相应的指令解析后发送给OpenOCD,OpenOCD接收到指令,以JTAG TAP的方式发送给RISC-V DEBUG系统。
进一步地,所述步骤E中C代码编译成的可执行程序中包含程序的入口地址。
进一步地,所述步骤F中,GDB通过在线调试程序和对RISC-V系统寄存器的各种操作来实现RISC-V DEBUG系统的仿真验证。
本发明与现有技术相比,具有以下的有益效果:
本发明的RISC-V DEBUG系统的仿真验证方法,可代替目前该领域中,通过向FPGA开发板中烧录代码,进而对RISC-V DEBUG系统仿真验证的方法。在本发明中,通过RemoteBitbang接口,采用TCP SOCKET的方式传输数据,无需借助FPGA开发板及其他相关硬件设备,即可驱动JTAG接口,实现OpenOCD与RISC-V DEBUG系统之间的连通,同时,GDB与OpenOCD之间的通信同样采用TCPSOCKET的方式,GDB可将编译好的可执行程序在线下载到RISC-VCore中,通过GDB输入不同的指令,可实现RISC-V DEBUG系统软件和硬件的仿真验证。因此,本发明的技术方案降低了RISC-V DEBUG系统仿真验证的硬件成本,提高了RISC-V DEBUG系统的仿真验证效率。
附图说明
图1是本发明的RISC-V DEBUG系统的仿真验证方法的流程示意图。
图2是本发明的RISC-V DEBUG系统的仿真验证方法的整体架构示意图。
图3是本发明的RISC-V DEBUG系统的仿真验证方法中OpenOCD与DTM模块的连接示意图。
具体实施方式
下面结合本发明的实施例对本发明作进一步的阐述和说明。
实施例:
实施例一:
如图1及图2所示,一种RISC-V DEBUG系统的仿真验证方法,该方法不依赖于FPGA开发板和其他相关硬件接口设备,而是通过Remote Bitbang的方式实现RISC-V DEBUG系统与OpenOCD之间通信,GDB通过TCP SOCKET的方式与OpenOCD连通,可实现向RISC-V Core在线下载程序、调试程序和访问寄存器等一系列仿真验证操作。其仿真验证过程完全在Linux系统下实现,减少了仿真验证的硬件花销成本,提高了仿真验证的效率。
具体包括以下步骤:
步骤1.通过Remote Bitbang接口实现JTAG接口驱动。
具体的,Remote Bitbang接口是利用远程进程来驱动JTAG,本方法将建立与远程进行的TCP连接,并向该进程发送ASCII编码的bitbang请求,从而驱动JTAG,而不是直接驱动JTAG。
步骤2.通过DPI接口实现DEBUG系统中DTM模块与Remote Bitbang接口的数据传输。
本实施例中的Remote Bitbang接口是一个基于C++编写的驱动程序,而RISC-VDEBUG系统中的DTM模块是用Verilog编写的rtl代码,两者之间由于格式不同,不能直接进行数据传输,因此本方案通过采用DPI接口的方式,实现Remote Bitbang和DTM模块之间的通信。如图3所示为本实施例中RemoteBitang和DTM模块的连接示意。
步骤3.OpenOCD作为片上调试器,通过调用Remote Bitbang接口实现与DTM模块的JTAG TAP通信。
因为要实现OpenOCD与RISC-V DEBUG的通信,所以OpenOCD也要通过调用RemoteBitbang接口来实现与DTM模块的数据传输。
步骤4.通过TCP SOCKET的方式实现GDB与OpenOCD的连接。
GDB(GNU Debugger)是Linux/Unix下的程序调试器,可用于启动程序、在程序中设置断点、查看程序中变量值以及CPU寄存器的值,并且在不改变程序源码的情况下改变寄存器和变量的值等。
本发明采用GDB作为RISC-V DEBUG系统的调试器,因此GDB需要与OpenOCD实现通信,本发明通过TCP SOCKET的方式实现GDB与OpenOCD的连接。具体仿真验证过程中,验证工程师通过GDB输入不同的调试指令,GDB将相应的指令解析后发送给OpenOCD,OpenOCD接收到指令,并以JTAG TAP的方式发送给RISC-V DEBUG系统。
步骤5.将C程序代码编译成可执行程序,通过GDB下载至RISC-V Core中。
具体的,当GDB与OpenOCD成功连通后,可通过GDB向RISC-V Core下载程序,但GDB不能直接将编写好的C程序下载至RISC-V Core中,需要将C程序编译成可执行程序,编译好的C代码程序中需要包含程序的入口地址以保证可以正确运行。
步骤6.通过GDB输入不同功能的指令,从而实现RISC-V DEBUG系统的仿真验证。
具体的,GDB与OpenOCD成功连接后,GDB发出相应的操作指令,OpenOCD对指令进行解析并驱动JTAG TAP,从而实现对RISC-V DEBUG系统的仿真验证,将编译好的C代码程序通过GDB下载到RISC-V系统中,编译好的C代码程序需要包含程序的入口地址以保证可以正确运行;GDB通过在线调试程序和对RISC-V系统寄存器的各种操作来实现RISC-V DEBUG系统的仿真验证。
在上述步骤完成后,本发明的RISC-V DEBUG系统的仿真验证环境即搭建完毕,可进入到仿真验证阶段。
需要说明的是,本实施例中仅是公开了一种具体的实施案例,上述基于RISC-VDEBUG系统的仿真验证方法,本领域技术人员能够很容易想到将这种方法应用于其他CPU的DEBUG系统仿真验证实施例中,这些实施例也应当属于本发明的保护范围,并且不应该将本发明的保护范围局限在所述实施例之上。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

Claims (5)

1.一种RISC-V DEBUG系统的仿真验证方法,其特征在于,包括以下步骤:
A.通过Remote Bitbang接口实现JTAG接口驱动;所述步骤A中RemoteBitbang接口具体是利用远程进程来驱动JTAG;所述步骤A中通过Remote Bitbang接口实现JTAG的驱动时包括:建立与远程进行的TCP连接,并向该进程发送ASCII编码的bitbang请求,从而驱动JTAG;
B.通过DPI接口实现DEBUG系统中DTM模块与Remote Bitbang接口的数据传输;
C.以OpenOCD作为片上调试器,通过调用Remote Bitbang接口实现与DTM模块的JTAGTAP通信;
D.通过TCP SOCKET的方式,实现GDB与OpenOCD的连接;
E.将C代码编译成可执行程序,通过GDB下载至RISC-V Core中;
F.通过GDB输入不同功能的指令,实现RISC-V DEBUG系统的仿真验证。
2.根据权利要求1所述的一种RISC-V DEBUG系统的仿真验证方法,其特征在于,所述Remote Bitbang接口是用C语言编写的驱动代码,DTM模块是用verilog编写的rtl代码,两者之间采用DPI接口的方式实现数据传输。
3.根据权利要求1所述的一种RISC-V DEBUG系统的仿真验证方法,其特征在于,所述GDB将相应的指令解析后发送给OpenOCD,OpenOCD接收到指令,以JTAG TAP的方式发送给RISC-V DEBUG系统。
4.根据权利要求1所述的一种RISC-V DEBUG系统的仿真验证方法,其特征在于,所述步骤E中C代码编译成的可执行程序中包含程序的入口地址。
5.根据权利要求1所述的一种RISC-V DEBUG系统的仿真验证方法,其特征在于,所述步骤F中,GDB通过在线调试程序和对RISC-V系统寄存器的各种操作来实现RISC-V DEBUG系统的仿真验证。
CN201911167171.2A 2019-11-25 2019-11-25 一种risc-v debug系统的仿真验证方法 Active CN111124887B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911167171.2A CN111124887B (zh) 2019-11-25 2019-11-25 一种risc-v debug系统的仿真验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911167171.2A CN111124887B (zh) 2019-11-25 2019-11-25 一种risc-v debug系统的仿真验证方法

Publications (2)

Publication Number Publication Date
CN111124887A CN111124887A (zh) 2020-05-08
CN111124887B true CN111124887B (zh) 2022-06-03

Family

ID=70496582

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911167171.2A Active CN111124887B (zh) 2019-11-25 2019-11-25 一种risc-v debug系统的仿真验证方法

Country Status (1)

Country Link
CN (1) CN111124887B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881636B (zh) * 2020-07-07 2021-05-04 广芯微电子(广州)股份有限公司 一种基于risc-v芯片的仿真调试方法及装置
CN116541310B (zh) * 2023-07-05 2023-09-01 睿思芯科(深圳)技术有限公司 Riscv处理器集成的调试开发系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105144308A (zh) * 2012-12-13 2015-12-09 Abb技术有限公司 高压设备和制造高压设备的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346821B2 (en) * 2003-08-28 2008-03-18 Texas Instrument Incorporated IC with JTAG port, linking module, and off-chip TAP interface
JP4526111B2 (ja) * 2003-12-19 2010-08-18 インターナショナル・ビジネス・マシーンズ・コーポレーション マイクロコンピュータおよびデバッグ方法
CN103186458A (zh) * 2011-12-29 2013-07-03 联芯科技有限公司 基于嵌入式操作系统的仿真调试系统及方法
US20180052203A1 (en) * 2016-08-22 2018-02-22 Prateek Sikka Method for enabling cpu-jtag debugger connection or improving its performance for multi-clock designs running on fpga or emulation systems
CN108664387B (zh) * 2017-03-30 2021-07-23 龙芯中科技术股份有限公司 基于ejtag的mips处理器调试方法及系统
CN207440581U (zh) * 2017-12-01 2018-06-01 广东高云半导体科技股份有限公司 一种fpga通用开发板
CN108400899A (zh) * 2018-06-08 2018-08-14 山东超越数控电子股份有限公司 一种fpga的远程升级系统及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105144308A (zh) * 2012-12-13 2015-12-09 Abb技术有限公司 高压设备和制造高压设备的方法

Also Published As

Publication number Publication date
CN111124887A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN111124887B (zh) 一种risc-v debug系统的仿真验证方法
US7171653B2 (en) Systems and methods for providing communication between a debugger and a hardware simulator
US20190034318A1 (en) Hardware-Software Co-Verification for Debugging Firmware on a Hardware Simulator
CN104077204A (zh) 可重构的8位rsic单片机仿真器
CN106155903B (zh) 用于系统设计验证的装置和方法
CN106598652B (zh) FPGA环境下快速启动Linux内核的系统和启动方法
CN105740139A (zh) 一种基于虚拟环境的嵌入式软件调试方法
CN111008508B (zh) 一种接口类ip系统应用验证平台和验证方法
US7711535B1 (en) Simulation of hardware and software
CN102043654A (zh) 一种基于TMS320VC55xx的DSP简易开发方法
JP4910710B2 (ja) プログラム作成装置
CN214278732U (zh) 一种可编程热网集中器
WO2001084316A1 (en) Rapid debugging method on rapid prototyping apparatus for complex embedded system
Rolfsmeier et al. A new calibration system for ECU development
KR100294633B1 (ko) 피엘씨의시뮬레이터
CN111123084A (zh) 一种基于tcl语言的数字电路快速测试方法
CN114330178B (zh) 一种嵌入式硬件电路调试验证的驱动系统
CN113934192B (zh) 一种车辆信息系统的模拟调试系统及方法
US11921614B2 (en) System and method for developing, testing and debugging software for microcontrollers
CN110244950B (zh) 一种嵌入式汇编程序生成设备和方法
Li et al. Research of “Stub” remote debugging technique
CN114238088A (zh) 一种应用于多核裸机系统的内建调试系统
CN115203028A (zh) 控制算法的验证设备、方法、系统及存储介质
CN113297085A (zh) 一种基于soc平台的算法验证方法及装置
KR20000076780A (ko) 복합 내장형 시스템을 위한 신속 프로토타이핑 장치 및그것을 이용한 신속 프로토타이핑 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant