针对RISC-V处理器的调试系统及调试信号传输方法与流程

文档序号:20029524发布日期:2020-02-28 10:13阅读:520来源:国知局
针对RISC-V处理器的调试系统及调试信号传输方法与流程

本发明属于信号传输领域,尤其涉及一种针对risc-v处理器的调试信号传输方法。



背景技术:

在risc-v基金会发布的调试架构文档(risc-vdebugspecification)中,调试系统主要由调试模块(debugmodule,dm)、调试模块接口(debugmoduleinterface,dmi)、调试传输模块(debugtransportmodule,dtm)、调试传输硬件(debugtransporthardware,dth)和调试主机(debughost)组成。其中,dtm主要负责接收调试主机通过dth送入调试模块的数据,或者发送调试模块dm上报调试主机的数据,因此,dtm是调试主机和调试设备通信的必经之路。

risc-v调试架构文档以ieee1149.1标准,即jtag,作为调试传输模块,以实现调试主机和调试模块之间的通信。采用jtag标准作为调试传输模块的优势在于:1)jtag是被广泛认可的工业标准,几乎所有的处理器芯片都支持jtag标准;2)jtag标准经过近30年的发展,其可靠性和稳定性毋容置疑。然而,jtag标准至少需要4个引脚(复位信号trst可选),引脚数量多导致芯片封装尺寸大,因而在某些对芯片封装尺寸要求严苛的场景,该标准不适合。

为了缩减调试模块接口所需的引脚数,sifive公司在2019年5月将2引脚的cjtag标准引入risc-v调试系统中,如图1所示,该方案需要在2引脚的cjtag接口和4引脚的jtag接口之间增加一个cjtag适配器,以实现协议翻译转换,进而达到兼容risc-v调试架构手册的目的。采用cjtag作为调试传输模块的主要优势在于缩减引脚,从而缩减芯片封装尺寸。然而,该方案采用的cjtag协议较为复杂,并且需要在原有标准的基础上增加额外的芯片面积开销,以实现cjtag适配的目的,因而,增加了芯片设计难度和成本。除此之外,由于cjtag标准并非risc-v基金会官方调试传输模块标准,因而与主流的risc-v调试主机软件可能存在不兼容的情况。

除了cjtag标准之外,arm公司的swd也是一种比较常见的2引脚调试标准。该标准受arm公司专利保护,因而无法在未授权的情况下使用。

综上所述,为了满足对芯片封装尺寸要求严苛的场景的调试需求,我们需要一种全新、引脚数量少、兼容主流risc-v调试主机软件、设计复杂度低的调试模块接口方案。



技术实现要素:

发明目的:为了解决现有技术存在的问题,提供一种依赖引脚数量少、兼容主流risc-v调试主机软件、设计复杂度低的调试信号传输方法,本发明提供一种针对risc-v处理器的调试信号传输方法;

本发明还提供了一种调试模块接口、一种接口转换器及一种针对risc-v处理器的调试系统。

技术方案:一种针对risc-v处理器的调试信号传输方法,包括以下步骤:

(a1)接收请求数据并将请求数据转换成开始信号、访问使能信号及访问请求数据序列,所述请求数据符合jtag协议,所述开始信号、访问使能信号及访问请求数据序列均为两线数据;

(a2)依次发送开始信号、访问使能信号及访问请求数据序列给调试模块接口;

(a3)接收所述调试模块接口反馈的应答信号;

(a4)接收调试模块接口传送的反馈数据序列,所述反馈数据序列为调试模块根据访问请求数据序列做出的响应,所述反馈数据序列为两线数据;

(a5)反馈数据序列接收完成后,向调试模块接口反馈应答信号并发送结束信号给调试模块接口;将反馈数据序列按照jtag协议封装后发送给调试主机。

进一步地,所述步骤(a1)中的访问请求数据序列包括调试模块内部寄存器地址、请求数据及操作类型。

进一步地,所述步骤(a4),若调试模块正在执行任务,响应的反馈数据序列包括调试模块内部寄存器地址、请求数据及忙碌状态标志;若调试模块空闲,响应的反馈数据序列包括调试模块内部寄存器地址、读取或写入内部寄存器的数据及成功状态标志。

进一步地,所述两线数据包括时钟信号和数据信号,数据信号为双向传输。

进一步地,步骤(a2)传输开始信号时,时钟信号保持高电平,数据信号出现下降沿;

步骤(a5)传输结束信号时,时钟信号保持高电平,数据信号出现上升沿;

步骤(a3)、(a5)传输应答信号时,时钟信号为高电平,数据信号为低电平;

步骤(a2)传输访问请求数据序列及步骤(a4)传输反馈数据序列时,若传输比特1,则时钟信号为上升沿,数据信号为高电平;若传输比特0,则时钟信号为上升沿,数据信号为低电平。

一种针对risc-v处理器的调试信号传输方法,包括以下步骤:

(b1)依次接收开始信号、访问使能信号及访问请求数据序列,所述开始信号、访问使能信号及访问请求数据序列均为两线数据,由符合jtag协议的请求数据转化而来;

(b2)完成访问请求数据序列的接收后,反馈应答信号;将访问请求数据序列输入调试模块;

(b3)将反馈数据序列输出,所述反馈数据序列由调试模块根据所述访问请求数据序列做出响应后产生,所述反馈数据序列为两线数据;

(b4)接收应答信号及结束信号;反馈数据序列按照jtag协议封装后发送给调试主机。

进一步地,所述步骤(b3),若调试模块正在执行任务,响应的反馈数据序列包括调试模块内部寄存器地址、请求数据及忙碌状态标志;若调试模块空闲,响应的反馈数据序列包括调试模块内部寄存器地址、读取或写入内部寄存器的数据及成功状态标志。

一种接口转换器,用于将调试主机发送的请求数据转换为开始信号、访问使能信号及访问请求数据序列,并依次将开始信号、访问使能信号及访问请求数据序列发送至调试模块接口;用于将调试模块响应的反馈数据序列按照jtag协议封装并发送给调试主机;所述请求数据符合jtag协议,所述开始信号、访问使能信号、访问请求数据序列和反馈数据序列均为两线数据。

一种调试模块接口,用于接收开始信号、访问使能信号及访问请求数据序列,并将访问请求数据序列输入调试模块;用于接收调试模块响应的反馈数据序列,并将反馈数据序列输出;所述开始信号、访问使能信号、访问请求数据序列与反馈数据序列均为两线数据;所述开始信号、访问使能信号、访问请求数据序列均由符合jtag协议的请求数据转换而成。

一种针对risc-v处理器的调试系统,包括调试主机、接口转换器、调试模块接口及调试模块,调试主机与接口转换器连接,接口转换器与调试模块接口之间通过两根信号线连接,调试模块接口与调试模块连接;调试主机用于向接口转换器发送请求数据,接收接口转换器发送的反馈数据;接口转换器用于将请求数据转换成开始信号、访问使能信号及访问请求数据序列并发送给调试模块接口,将调试模块接口传来的反馈数据序列转换成反馈数据并发送给调试主机;所述请求数据和反馈数据均符合jtag协议,所述开始信号、访问使能信号、访问请求数据序列和反馈数据序列均为两线数据;调试模块接口用于接收接口转换器发送的访问请求数据序列并输入调试模块,接收调试模块响应的反馈数据序列并输出给接口转换器;调试模块用于接收调试模块接口输入的访问请求数据序列并做出响应,并将响应的反馈数据序列传输至调试模块接口。

有益效果:本发明提供一种针对risc-v处理器的调试系统及调试信号传输方法,相比较现有技术,调试模块接口的引脚数量少,只需要两个引脚,又可以兼容主流risc-v调试主机软件,设计复杂度低,满足对芯片封装尺寸要求严苛的场景的调试需求。

附图说明

图1为现有的cjtag适配jtag接口方案;

图2为针对risc-v处理器的调试系统的结构框图;

图3为调试主机与调试模块的通信序列图;

图4为接口转换器与调试模块之间的数据传输序列格式;

图5为接口转换器与调试模块之间的读操作并成功反馈数据示意图;

图6为接口转换器与调试模块之间的读操作并未成功反馈数据示意图;

图7为接口转换器与调试模块之间的写操作并成功反馈数据示意图;

图8为接口转换器与调试模块之间的写操作并未成功反馈数据示意图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步解释说明。

如图2所示,一种针对risc-v处理器的调试系统,包括调试主机101、接口转换器102、调试模块接口104、调试模块107及risc-v处理器内核108,调试模块接口104、调试模块107及risc-v处理器内核108共同组成risc-v平台109。调试主机101与接口转换器102之间双向通信连接。接口转换器102与调试模块接口104之间通过两根信号线103连接,一根时钟信号线,一根数据信号线,数据信号线为双向信号线,调试模块接口104有两个引脚,两个引脚各连接两根信号线103,调试模块接口104可集成在调试模块107上。

调试主机101用于向接口转换器102发送符合jtag协议的请求数据,接收接口转换器102发送的反馈数据。调试主机101可以通过usb转jtag的转接口或者lan转jtag的转接口实现jtag协议数据的发送和接收,该部分为现有技术,不详细说明。

接口转换器102用于将请求数据转换成开始信号、访问使能信号及访问请求数据序列并发送给调试模块接口104,将调试模块接口104传来的反馈数据序列转换成反馈数据并发送给调试主机101;所述请求数据和反馈数据均符合jtag协议,所述开始信号、访问使能信号、访问请求数据序列和反馈数据序列均为两线数据。具体的,接口转换器102先通过jtag接口接收符合jtag协议的请求数据,包括dmi寄存器地址、dmi寄存器数据;将dmi寄存器地址、dmi寄存器数据进行缓冲,然后以符合两线协议的信号输出给调试模块接口104。信号反向传输时也是如此,现接收调试模块接口104传输过来的符合两线协议的信号,将信号中的寄存器地址、操作数据及状态标识进行缓冲,再将所有信息按照jtag协议打包输出至调试主机101,接口转换器102使得调试主机101对两线调试接口协议无感知。

调试模块接口104用于接收接口转换器102发送的访问请求数据序列并输入调试模块107,接收调试模块107响应的反馈数据序列并输出给接口转换器102;调试模块107用于接收调试模块接口104输入的访问请求数据序列(即图2中输入数据105)并做出响应,并将响应的反馈数据序列(即图2中输出数据106)传输至调试模块接口104。

一种针对risc-v处理器的调试信号传输方法,如图3所示,包括以下步骤:

(1)调试主机需要访问调试模块时,按照jtag协议将请求数据发送给接口转换器;接口转换器接收调试主机发送的请求数据,将请求数据转换成开始信号、访问使能信号及访问请求数据序列,所述开始信号、访问使能信号及访问请求数据序列均为两线数据,两线数据包括时钟信号和数据信号,数据信号为双向传输;

(2)接口转换器依次向调试模块接口发送开始信号、访问使能信号及访问请求数据序列,调试模块接口为两引脚接口;访问请求数据序列按位发送,包括调试模块内部7位寄存器地址、32位请求数据及2位操作类型,操作类型包括读和写;

(3)调试模块接口接收完成后,向接口转换器反馈应答信号,接口转换器接收应答信号,应答信号代表成功接收;调试模块接口将访问请求数据序列输入调试模块;

(4)调试模块接收到访问请求数据序列后,做出响应,生成反馈数据序列并将反馈数据序列发送至调试模块接口;

(5)调试模块接口将反馈数据序列按位输出至接口转换器,接口转换器接收反馈数据序列;

(6)接口转换器接收反馈数据序列完成后反馈应答信号给调试模块接口,并向调试模块接口发送结束信号;接口转换器将反馈数据序列按照jtag协议封装后发送给调试主机。

在整个操作过程中,接口转换器与调试模块之间的数据传输序列格式如图4所示。

如果访问请求为读操作,若调试模块空闲,发送的反馈数据序列包括调试模块内部7位寄存器地址、32位读取内部寄存器的数据及2位成功状态标志,如图5;若此时调试模块正在执行任务处于繁忙状态,读取不成功,那么发送的反馈数据序列包括调试模块内部7位寄存器地址、32位请求数据及2位忙碌状态标志,如图6所示,调试主机稍后再发送访问请求;

如果访问请求为写操作,若调试模块空闲,发送的反馈数据序列包括调试模块内部寄存器地址、写入内部寄存器的数据及成功状态标志,如图7;若此时调试模块正在执行任务处于繁忙状态,读取不成功,那么发送的反馈数据序列包括调试模块内部寄存器地址、请求数据及忙碌状态标志,如图8所示,调试主机稍后再发送访问请求。

在本实施例的两线协议中,开始信号、结束信号、数据和ack应答信号通过时钟信号引脚和数据信号引脚的电平变化来确定信号类型,具体包括:

(a)发送开始信号时,时钟信号保持高电平,数据信号出现下降沿;

(b)发送结束信号时,时钟信号保持高电平,数据信号出现上升沿;

(c)发送应答信号时,时钟信号为高电平,数据信号为低电平;

(d)发送访问请求数据序列或反馈数据序列时,若传输比特1,则时钟信号为上升沿,数据信号为高电平;若传输比特0,则时钟信号为上升沿,数据信号为低电平。

因为调试模块接口为两引脚接口,所以只需两个引脚就可以实现接口转换器与调试模块之间的信号传输,减少了集成电路的引脚数量,缩小了集成电路的体积,降低了集成电路的成本,特别适合应用于对芯片封装要求严苛场景的调试,两线接口协议简单高效,同时该方案兼容主流risc-v调试主机软件。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1