CN117290212A - 基于risc-v架构调试系统 - Google Patents

基于risc-v架构调试系统 Download PDF

Info

Publication number
CN117290212A
CN117290212A CN202311155943.7A CN202311155943A CN117290212A CN 117290212 A CN117290212 A CN 117290212A CN 202311155943 A CN202311155943 A CN 202311155943A CN 117290212 A CN117290212 A CN 117290212A
Authority
CN
China
Prior art keywords
register
state
debugging
data
module
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.)
Pending
Application number
CN202311155943.7A
Other languages
English (en)
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.)
Shandong Inspur Science Research Institute Co Ltd
Original Assignee
Shandong Inspur Science Research Institute 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 Shandong Inspur Science Research Institute Co Ltd filed Critical Shandong Inspur Science Research Institute Co Ltd
Priority to CN202311155943.7A priority Critical patent/CN117290212A/zh
Publication of CN117290212A publication Critical patent/CN117290212A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种基于RISC‑V架构调试系统,属于ASIC和RISC架构芯片设计领域,本发明要解决的技术问题为如何实现代码量少且方便移植RISC‑V架构调试,同时又能满足JTAG测试系统的要求,进而满足不同客户的需求,采用的技术方案为:该系统包括调试模块DM、调试传输模块DTM、调试传输硬件模块、调试主机模块及RISC‑V内核模块,调试主机模块通过USB接口连接调试传输硬件模块,调试传输硬件模块通过JLink仿真调试器连接调试传输模块DTM,调试传输模块DTM对外连接JLink仿真调试器,JTAG仿真器通过5线JTAG连接到RISC‑V架构芯片的测试引脚;调试传输模块DTM对内通过DMI接口连接调试模块DM进行数据通信,调试模块DM通过AHB总线或abstract command连接RISC_V内核模块。

Description

基于RISC-V架构调试系统
技术领域
本发明涉及ASIC和RISC架构芯片设计领域,具体地说是一种基于RISC-V架构调试系统。
背景技术
芯片设计领域热度越来越高,ASIC专用的集成电路,具有密度高、速度快、成本低等优点。RISC是精简指令集架构,特点是开源指令集,而ARM是非开源的。
目前ARM支持JTAG联合测试和SWD串行测两种调试方法,RISC-V架构支持的调试方式是JTAG。标准JTAG采用四线方式,分别是TCK、TMS、TDI和TDO,有一个可选的TRST引脚。一个JTAG主机可以同时对多个JTAG从机进行调试,这通过JTAG扫描菊花链完成。
调试模块在CPU芯片设计里是最容易被忽略,但又是最难设计的模块之一,大部分基于RISC-V架构的开源的处理器IP都没有调试模块,无法完成RISC-V架构的调试。
故如何实现代码量少且方便移植RISC-V架构调试,同时又能满足JTAG测试系统的要求,进而满足不同客户的需求是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种基于RISC-V架构调试系统,来解决如何实现代码量少且方便移植RISC-V架构调试,同时又能满足JTAG测试系统的要求,进而满足不同客户的需求的问题。
本发明的技术任务是按以下方式实现的,一种基于RISC-V架构调试系统,该系统包括调试模块DM、调试传输模块DTM、调试传输硬件模块(Debug transport)、调试主机模块(Debug Host)及RISC-V内核模块(RISC-V Core),调试主机模块通过USB接口连接调试传输硬件模块,调试传输硬件模块通过JLink仿真调试器连接调试传输模块DTM,调试传输模块DTM对外连接JLink仿真调试器,JTAG仿真器通过5线JTAG连接到RISC-V架构芯片的测试引脚;调试传输模块DTM对内通过DMI接口连接调试模块DM进行数据通信,调试模块DM通过AHB总线或abstract command连接RISC_V内核模块。
作为优选,所述调试传输模块DTM用于实现TAP状态机控制,定义IR指令寄存器、旁路只读寄存器(REG_BYPASS)、版本信息寄存器(REG_IDCODE)、DTM控制和状态寄存器(REG_DTMCS)及DM接口访问寄存器(REG_DMI);
其中,版本信息寄存器(REG_IDCODE)是只读的,用于说明版本、部件号和厂商号;
DTM控制和状态寄存器(REG_DTMCS)用于控制调试传输模块DTM硬复位,DTM控制和状态寄存器中地址域的大小以及对应的spec版本;
DM接口访问寄存器(REG_DMI)可读可写,高6位是DM寄存器的长度,中阿金32位是和DM交互的具体数据,低两位表好似读写域的含义。
更优地,所述DM接口访问寄存器中低两位的具体含义如下:
可读可写,读或者写这个域时含义不同;
当写这个域时,写0x00表示忽略address和data的值,相当于空操作;写0x01表示从address指定的寄存器读数据;写0x02表示把data的数据写到address指定的寄存器;写0x03为保留值;
当读这个域时,0x00表示上一个操作正确完成;0x01为保留值;0x02表示上一个操作失败,这个状态被锁存,因此需要往DTM控制和状态寄存器的dmireset域写1才能清除这个状态;0x03表示上一个操作还未完成。
作为优选,所述调试传输模块DTM里TAP状态机,JTAG逻辑部分在每一个TCK信号的上升沿采样TMS信号和TDI信号,决定TAP状态机是否发生变化,在每一个TCK信号的下降沿输出TDO信号;无论TAP目前处于哪一个状态,只要TMS保持高电平并持续5个TCK时钟,则TAP一定会回到Test-Logic-Reset状态。
更优地,所述TAP状态机一共有16个状态,具体如下:
测试逻辑复位状态(Test-Logic Reset),系统上电后自动进入该状态,测试逻辑电路全部被禁用;
TRST复位信号置0对测试逻辑电路复位,使TAP状态机进入测试逻辑复位状态(Test-Logic Reset);
运行逻辑空闲状态(Run_test_idle)是TAP状态机一个中间状态,在测试逻辑复位状态(Test-Logic Reset)下,若TMS一直保持为0,TAP状态机将一直保持在测试逻辑复位状态(Test-Logic Reset)下;若TMS在TCK上升沿触发,由0变为1,将使TAP状态机进入选择数据寄存器扫描状态(Select-DR-Scan);
选择数据寄存器扫描状态(Select-DR-Scan)是TAP状态机一个中间状态,在TCK的上升沿触发,若TMS为0,TAP状态机进入捕获数据寄存器状态(Capture-DR),后续的系列动作都将以数据寄存器作为操作对象;若在TCK的上升沿检测到TMS为1,TAP状态机进入选择指令寄存器扫描状态(Select-IR-Scan);
当TAP Controller在捕获数据寄存器状态(Capture-DR)中,在TCK的上升沿,芯片输出管脚上的信号将被“捕获”到与之对应的数据寄存器的各个单元中去;若在TCK的上升沿触发,TMS为0,TAP状态机进入移位数据寄存器状态(Shift-DR);若TMS为1,TAP状态机进入退出数据寄存器状态1(Exit-1-DR);
在移位数据寄存器状态(Shift-DR)下,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的数据寄存器将从TDI接收一位数据,同时通过TDO输出一位数据;若在TCK的上升沿检测到TMS为0,TAP状态机保持在移位数据寄存器状态(Shift-DR);若TMS为1,TAPController进入到退出数据寄存器状态1(Exit-1-DR);
在更新数据寄存器状态(Update-DR)下,由TCK上升沿驱动,数据寄存器当中的数据将被加载到相应的芯片管脚上去,用以驱动芯片;在该状态下,若TMS为0,TAP Control状态机将回到运行逻辑空闲状态(Run_test_idle);若TMS为1,TAP状态机将进入选择数据寄存器扫描状态(Select-DR-Scan);
选择指令寄存器扫描状态(Select-IR-Scan)一个临时的中间状态;若在TCK的上升沿检测TMS为0,TAP状态机进入捕获指令寄存器状态(Capture-IR),后续的系列动作都将以指令寄存器作为操作对象;若TMS为1,TAP状态机进入测试逻辑复位状态(Test-LogicReset);
当TAP在捕获指令寄存器状态(Capture-IR)中,在TCK的上升沿,一个特定的逻辑序列将被装载到指令寄存器中去;若TMS为0,TAP状态机进入移位指令寄存器状态(Shift-IR);若TMS为1,TAP状态机进入退出指令寄存器状态1(Exit-1-IR);
在移位指令寄存器状态(Shift-IR)中,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的指令寄存器将从TDI接收一位数据,同时通过TDO输出一位数据;若在TCK的上升沿触发,TMS为0,TAP状态机保持在移位指令寄存器状态(Shift-IR);若TMS为1,TAP状态机进入到退出指令寄存器状态1(Exit-1-IR);
在更新指令寄存器状态(Update-IR)中,在移位指令寄存器状态(Shift-IR)下输入的新指令将被用来更新指令寄存器。
作为优选,所述调试模块DM包括DM控制寄存器(DMCONTROL)、DM状态寄存器(DMSTATUS)、控制和状态寄存器(ABSTRACTCS)、系统总线数据接口(SBDATA0)、命令寄存器(COMMAND)、验证信息寄存器(HARTINFO)、系统总线访问控制和状态寄存器(SBCS)以及系统总线地址寄存器(SBADDRESS0);DM控制寄存器(DMCONTROL)、DM状态寄存器(DMSTATUS)、控制和状态寄存器(ABSTRACTCS)、系统总线数据接口(SBDATA0)、命令寄存器(COMMAND)、验证信息寄存器(HARTINFO)、系统总线访问控制和状态寄存器(SBCS)以及系统总线地址寄存器(SBADDRESS0)均为32位寄存器;
DM状态寄存器(DMSTATUS)是只读的状态寄存器,表示当前核的状态;系统总线地址寄存器(SBADDRESS0)是系统总线地址0寄存器,系统总线数据接口(SBDATA0)是系统总线数据0寄存器。
更优地,所述DM控制寄存器(DMCONTROL)的第31位写1表示暂停操作,第30位写1表示恢复操作,第29位可读可写,写1表示复位DM模块,写0表示撤销复位;第28位写1,表示清除当前内核的已有复位状态,第27位可读可写,0表示只选择一个内核,1表示选择多个内核;第25-16位可读可写,表示当前选择多核的低10位,一位表示一个核;第25-6位可读可写,表示当前选择多核的高10位,一位表示一个核;第2位可读可写,写1表示复位整个系统,第1位可读可写,写0表示复位DM模块,写1表示让DM模块正常工作。
作为优选,该系统的工作过程具体如下:
(1)调试主机模块发起读写数据的请求,数据经过JLink仿真调试器进入RISC-V架构芯片内部;
(2)RISC-V架构芯片在调试传输模块DTM内,JLink仿真调试器在每一个TCK信号的上升沿采样TMS信号和TDI信号,决定TAP状态机的状态是否发生变化,在每一个TCK信号的下降沿输出TDO信号;
(3)、经过DMI接口数据进入调试模块DM,解析数据,根据解析出来的数据,选择进行读写对应的寄存器操作;
(4)通过AHB总线或abstract command输出数据给RISC_V内核模块;
(5)RISC_V内核模块处理后,控制对应的外设进行具体操作。
本发明的基于RISC-V架构调试系统具有以下优点:
(一)本发明针对基于RISC-V架构芯片设计中,解决了调试系统设计方案匮乏的问题,满足不同客户的需求;
(二)本发明调试模块DM访问RISC-V Core有两种方式,一种是通过abstractcommand,另一种是通过system bus;即本发明具有代码量少,方便移植的优点,又能满足JTAG测试系统的要求,应用场景比较广泛;
(三)本发明专利具有兼容性强、设计灵活、实施简便和应用前景广阔的特征。
附图说明
下面结合附图对本发明进一步说明。
附图1为基于RISC-V架构调试系统的结构示意图;
附图2为调试传输模块DTM TAP状态机的流转框图。
具体实施方式
参照说明书附图和具体实施例对本发明的基于RISC-V架构调试系统作以下详细地说明。
实施例:
如附图1所示,本实施例提供了一种基于RISC-V架构调试系统,其结构包括调试模块DM、调试传输模块DTM、调试传输硬件模块(Debug transport)、调试主机模块(DebugHost)及RISC-V内核模块(RISC-V Core),调试主机模块通过USB接口连接调试传输硬件模块,调试传输硬件模块通过JLink仿真调试器连接调试传输模块DTM,调试传输模块DTM对外连接JLink仿真调试器,JTAG仿真器通过5线JTAG连接到RISC-V架构芯片的测试引脚;调试传输模块DTM对内通过DMI接口连接调试模块DM进行数据通信,调试模块DM通过AHB总线或abstract command连接RISC_V内核模块。
从附图1中可以看到主要分为3个部分,分别是Debug Host,可以理解为上位机电脑端;Debug Hardware,可以为JLink或者CMSIS-DAP这样的调试工具;第三部分就是嵌入在芯片内部的调试模块,在调试模块内部,与调试工具直接交互的是调试传输模块DTM,调试传输模块DTM通过DMI接口与调试模块DM交互。
本实施例中的调试传输模块DTM用于实现TAP状态机控制,定义IR指令寄存器、旁路只读寄存器(REG_BYPASS)、版本信息寄存器(REG_IDCODE)、DTM控制和状态寄存器(REG_DTMCS)及DM接口访问寄存器(REG_DMI);
其中,版本信息寄存器(REG_IDCODE)是只读的,用于说明版本、部件号和厂商号;
DTM控制和状态寄存器(REG_DTMCS)用于控制调试传输模块DTM硬复位,DTM控制和状态寄存器中地址域的大小以及对应的spec版本;
DM接口访问寄存器(REG_DMI)可读可写,高6位是DM寄存器的长度,中阿金32位是和DM交互的具体数据,低两位表好似读写域的含义。
本实施例中的DM接口访问寄存器中低两位的具体含义如下:
可读可写,读或者写这个域时含义不同;
当写这个域时,写0x00表示忽略address和data的值,相当于空操作;写0x01表示从address指定的寄存器读数据;写0x02表示把data的数据写到address指定的寄存器;写0x03为保留值;
当读这个域时,0x00表示上一个操作正确完成;0x01为保留值;0x02表示上一个操作失败,这个状态被锁存,因此需要往DTM控制和状态寄存器的dmireset域写1才能清除这个状态;0x03表示上一个操作还未完成。
本实施例中的调试传输模块DTM里TAP状态机,JTAG逻辑部分在每一个TCK信号的上升沿采样TMS信号和TDI信号,决定TAP状态机是否发生变化,在每一个TCK信号的下降沿输出TDO信号;无论TAP目前处于哪一个状态,只要TMS保持高电平并持续5个TCK时钟,则TAP一定会回到Test-Logic-Reset状态。
如附图2所示,本实施例中的TAP状态机一共有16个状态,具体如下:
测试逻辑复位状态(Test-Logic Reset),系统上电后自动进入该状态,测试逻辑电路全部被禁用;
TRST复位信号置0对测试逻辑电路复位,使TAP状态机进入测试逻辑复位状态(Test-Logic Reset);
运行逻辑空闲状态(Run_test_idle)是TAP状态机一个中间状态,在测试逻辑复位状态(Test-Logic Reset)下,若TMS一直保持为0,TAP状态机将一直保持在测试逻辑复位状态(Test-Logic Reset)下;若TMS在TCK上升沿触发,由0变为1,将使TAP状态机进入选择数据寄存器扫描状态(Select-DR-Scan);
选择数据寄存器扫描状态(Select-DR-Scan)是TAP状态机一个中间状态,在TCK的上升沿触发,若TMS为0,TAP状态机进入捕获数据寄存器状态(Capture-DR),后续的系列动作都将以数据寄存器作为操作对象;若在TCK的上升沿检测到TMS为1,TAP状态机进入选择指令寄存器扫描状态(Select-IR-Scan);
当TAP Controller在捕获数据寄存器状态(Capture-DR)中,在TCK的上升沿,芯片输出管脚上的信号将被“捕获”到与之对应的数据寄存器的各个单元中去;若在TCK的上升沿触发,TMS为0,TAP状态机进入移位数据寄存器状态(Shift-DR);若TMS为1,TAP状态机进入退出数据寄存器状态1(Exit-1-DR);
在移位数据寄存器状态(Shift-DR)下,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的数据寄存器将从TDI接收一位数据,同时通过TDO输出一位数据;若在TCK的上升沿检测到TMS为0,TAP状态机保持在移位数据寄存器状态(Shift-DR);若TMS为1,TAPController进入到退出数据寄存器状态1(Exit-1-DR);
在更新数据寄存器状态(Update-DR)下,由TCK上升沿驱动,数据寄存器当中的数据将被加载到相应的芯片管脚上去,用以驱动芯片;在该状态下,若TMS为0,TAP Control状态机将回到运行逻辑空闲状态(Run_test_idle);若TMS为1,TAP状态机将进入选择数据寄存器扫描状态(Select-DR-Scan);
选择指令寄存器扫描状态(Select-IR-Scan)一个临时的中间状态;若在TCK的上升沿检测TMS为0,TAP状态机进入捕获指令寄存器状态(Capture-IR),后续的系列动作都将以指令寄存器作为操作对象;若TMS为1,TAP状态机进入测试逻辑复位状态(Test-LogicReset);
当TAP在捕获指令寄存器状态(Capture-IR)中,在TCK的上升沿,一个特定的逻辑序列将被装载到指令寄存器中去;若TMS为0,TAP状态机进入移位指令寄存器状态(Shift-IR);若TMS为1,TAP状态机进入退出指令寄存器状态1(Exit-1-IR)状态;
在移位指令寄存器状态(Shift-IR)中,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的指令寄存器将从TDI接收一位数据,同时通过TDO输出一位数据;若在TCK的上升沿触发,TMS为0,TAP状态机保持在移位指令寄存器状态(Shift-IR);若TMS为1,TAP状态机进入到退出指令寄存器状态1(Exit-1-IR)状态;
在更新指令寄存器状态(Update-IR)中,在移位指令寄存器状态(Shift-IR)下输入的新指令将被用来更新指令寄存器。
本实施例中的调试模块DM包括DM控制寄存器(DMCONTROL)、DM状态寄存器(DMSTATUS)、控制和状态寄存器(ABSTRACTCS)、系统总线数据接口(SBDATA0)、命令寄存器(COMMAND)、验证信息寄存器(HARTINFO)、系统总线访问控制和状态寄存器(SBCS)以及系统总线地址寄存器(SBADDRESS0);DM控制寄存器(DMCONTROL)、DM状态寄存器(DMSTATUS)、控制和状态寄存器(ABSTRACTCS)、系统总线数据接口(SBDATA0)、命令寄存器(COMMAND)、验证信息寄存器(HARTINFO)、系统总线访问控制和状态寄存器(SBCS)以及系统总线地址寄存器(SBADDRESS0)均为32位寄存器;
DM状态寄存器(DMSTATUS)是只读的状态寄存器,表示当前核的状态;系统总线地址寄存器(SBADDRESS0)是系统总线地址0寄存器,系统总线数据接口(SBDATA0)是系统总线数据0寄存器。
本实施例中的DM控制寄存器(DMCONTROL)的第31位写1表示暂停操作,第30位写1表示恢复操作,第29位可读可写,写1表示复位DM模块,写0表示撤销复位;第28位写1,表示清除当前内核的已有复位状态,第27位可读可写,0表示只选择一个内核,1表示选择多个内核;第25-16位可读可写,表示当前选择多核的低10位,一位表示一个核;第25-6位可读可写,表示当前选择多核的高10位,一位表示一个核;第2位可读可写,写1表示复位整个系统,第1位可读可写,写0表示复位DM模块,写1表示让DM模块正常工作。
该系统的工作过程具体如下:
(1)调试主机模块发起读写数据的请求,数据经过JLink仿真调试器进入RISC-V架构芯片内部;
(2)RISC-V架构芯片在调试传输模块DTM内,JLink仿真调试器在每一个TCK信号的上升沿采样TMS信号和TDI信号,决定TAP状态机的状态是否发生变化,在每一个TCK信号的下降沿输出TDO信号;
(3)、经过DMI接口数据进入调试模块DM,解析数据,根据解析出来的数据,选择进行读写对应的寄存器操作;
(4)通过AHB总线或abstract command输出数据给RISC_V内核模块;
(5)RISC_V内核模块处理后,控制对应的外设进行具体操作。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种基于RISC-V架构调试系统,其特征在于,该系统包括调试模块DM、调试传输模块DTM、调试传输硬件模块、调试主机模块及RISC-V内核模块,调试主机模块通过USB接口连接调试传输硬件模块,调试传输硬件模块通过JLink仿真调试器连接调试传输模块DTM,调试传输模块DTM对外连接JLink仿真调试器,JTAG仿真器通过5线JTAG连接到RISC-V架构芯片的测试引脚;调试传输模块DTM对内通过DMI接口连接调试模块DM进行数据通信,调试模块DM通过AHB总线或abstract command连接RISC_V内核模块。
2.根据权利要求1所述的基于RISC-V架构调试系统,其特征在于,所述调试传输模块DTM用于实现TAP状态机控制,定义IR指令寄存器、旁路只读寄存器、版本信息寄存器、DTM控制和状态寄存器及DM接口访问寄存器;
其中,版本信息寄存器是只读的,用于说明版本、部件号和厂商号;
DTM控制和状态寄存器用于控制调试传输模块DTM硬复位,DTM控制和状态寄存器中地址域的大小以及对应的spec版本;
DM接口访问寄存器可读可写,高6位是DM寄存器的长度,中阿金32位是和DM交互的具体数据,低两位表好似读写域的含义。
3.根据权利要求2所述的基于RISC-V架构调试系统,其特征在于,所述DM接口访问寄存器中低两位的具体含义如下:
可读可写,读或者写这个域时含义不同;
当写这个域时,写0x00表示忽略address和data的值,相当于空操作;写0x01表示从address指定的寄存器读数据;写0x02表示把data的数据写到address指定的寄存器;写0x03为保留值;
当读这个域时,0x00表示上一个操作正确完成;0x01为保留值;0x02表示上一个操作失败,这个状态被锁存,因此需要往DTM控制和状态寄存器的dmireset域写1才能清除这个状态;0x03表示上一个操作还未完成。
4.根据权利要求1所述的基于RISC-V架构调试系统,其特征在于,所述调试传输模块DTM里TAP状态机,JTAG逻辑部分在每一个TCK信号的上升沿采样TMS信号和TDI信号,决定TAP状态机是否发生变化,在每一个TCK信号的下降沿输出TDO信号;无论TAP目前处于哪一个状态,只要TMS保持高电平并持续5个TCK时钟,则TAP一定会回到Test-Logic-Reset状态。
5.根据权利要求4所述的基于RISC-V架构调试系统,其特征在于,所述TAP状态机一共有16个状态,具体如下:
测试逻辑复位状态,系统上电后自动进入该状态,测试逻辑电路全部被禁用;
TRST复位信号置0对测试逻辑电路复位,使TAP状态机进入测试逻辑复位状态;
运行逻辑空闲状态是TAP状态机一个中间状态,在测试逻辑复位状态下,若TMS一直保持为0,TAP状态机将一直保持在测试逻辑复位状态下;若TMS在TCK上升沿触发,由0变为1,将使TAP状态机进入选择数据寄存器扫描状态;
选择数据寄存器扫描状态是TAP状态机一个中间状态,在TCK的上升沿触发,若TMS为0,TAP状态机进入捕获数据寄存器状态,后续的系列动作都将以数据寄存器作为操作对象;若在TCK的上升沿检测到TMS为1,TAP状态机进入选择指令寄存器扫描状态;
当TAP Controller在捕获数据寄存器状态中,在TCK的上升沿,芯片输出管脚上的信号将被“捕获”到与之对应的数据寄存器的各个单元中去;若在TCK的上升沿触发,TMS为0,TAP状态机进入移位数据寄存器状态;若TMS为1,TAP状态机进入退出数据寄存器状态1;
在移位数据寄存器状态下,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的数据寄存器将从TDI接收一位数据,同时通过TDO输出一位数据;若在TCK的上升沿检测到TMS为0,TAP状态机保持在移位数据寄存器状态;若TMS为1,TAP Controller进入到退出数据寄存器状态1;
在更新数据寄存器状态下,由TCK上升沿驱动,数据寄存器当中的数据将被加载到相应的芯片管脚上去,用以驱动芯片;在该状态下,若TMS为0,TAP Control状态机将回到运行逻辑空闲状态;若TMS为1,TAP状态机将进入选择数据寄存器扫描状态;
选择指令寄存器扫描状态一个临时的中间状态;若在TCK的上升沿检测TMS为0,TAP状态机进入捕获指令寄存器状态,后续的系列动作都将以指令寄存器作为操作对象;若TMS为1,TAP状态机进入测试逻辑复位状态;
当TAP在捕获指令寄存器状态中,在TCK的上升沿,一个特定的逻辑序列将被装载到指令寄存器中去;若TMS为0,TAP状态机进入移位指令寄存器状态;若TMS为1,TAP状态机进入退出指令寄存器状态1;
在移位指令寄存器状态中,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的指令寄存器将从TDI接收一位数据,同时通过TDO输出一位数据;若在TCK的上升沿触发,TMS为0,TAP状态机保持在移位指令寄存器状态;若TMS为1,TAP状态机进入到退出指令寄存器状态1;
在更新指令寄存器状态中,在移位指令寄存器状态下输入的新指令将被用来更新指令寄存器。
6.根据权利要求1所述的基于RISC-V架构调试系统,其特征在于,所述调试模块DM包括DM控制寄存器、DM状态寄存器、控制和状态寄存器、系统总线数据接口、命令寄存器、验证信息寄存器、系统总线访问控制和状态寄存器以及系统总线地址寄存器;DM控制寄存器、DM状态寄存器、控制和状态寄存器、系统总线数据接口、命令寄存器、验证信息寄存器、系统总线访问控制和状态寄存器以及系统总线地址寄存器均为32位寄存器;
DM状态寄存器是只读的状态寄存器,表示当前核的状态;系统总线地址寄存器是系统总线地址0寄存器,系统总线数据接口是系统总线数据0寄存器。
7.根据权利要求6所述的基于RISC-V架构调试系统,其特征在于,所述DM控制寄存器的第31位写1表示暂停操作,第30位写1表示恢复操作,第29位可读可写,写1表示复位DM模块,写0表示撤销复位;第28位写1,表示清除当前内核的已有复位状态,第27位可读可写,0表示只选择一个内核,1表示选择多个内核;第25-16位可读可写,表示当前选择多核的低10位,一位表示一个核;第25-6位可读可写,表示当前选择多核的高10位,一位表示一个核;第2位可读可写,写1表示复位整个系统,第1位可读可写,写0表示复位DM模块,写1表示让DM模块正常工作。
8.根据权利要求1所述的基于RISC-V架构调试系统,其特征在于,该系统的工作过程具体如下:
(1)调试主机模块发起读写数据的请求,数据经过JLink仿真调试器进入RISC-V架构芯片内部;
(2)RISC-V架构芯片在调试传输模块DTM内,JLink仿真调试器在每一个TCK信号的上升沿采样TMS信号和TDI信号,决定TAP状态机的状态是否发生变化,在每一个TCK信号的下降沿输出TDO信号;
(3)、经过DMI接口数据进入调试模块DM,解析数据,根据解析出来的数据,选择进行读写对应的寄存器操作;
(4)通过AHB总线或abstract command输出数据给RISC_V内核模块;
(5)RISC_V内核模块处理后,控制对应的外设进行具体操作。
CN202311155943.7A 2023-09-08 2023-09-08 基于risc-v架构调试系统 Pending CN117290212A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311155943.7A CN117290212A (zh) 2023-09-08 2023-09-08 基于risc-v架构调试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311155943.7A CN117290212A (zh) 2023-09-08 2023-09-08 基于risc-v架构调试系统

Publications (1)

Publication Number Publication Date
CN117290212A true CN117290212A (zh) 2023-12-26

Family

ID=89252690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311155943.7A Pending CN117290212A (zh) 2023-09-08 2023-09-08 基于risc-v架构调试系统

Country Status (1)

Country Link
CN (1) CN117290212A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119739614A (zh) * 2024-11-14 2025-04-01 珠海格力电器股份有限公司 一种芯片调试系统
CN120066877A (zh) * 2025-04-29 2025-05-30 中科亿海微电子科技(苏州)有限公司 一种基于fpga-jtag接口的risc-v处理器下载调试方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119739614A (zh) * 2024-11-14 2025-04-01 珠海格力电器股份有限公司 一种芯片调试系统
CN120066877A (zh) * 2025-04-29 2025-05-30 中科亿海微电子科技(苏州)有限公司 一种基于fpga-jtag接口的risc-v处理器下载调试方法和系统

Similar Documents

Publication Publication Date Title
US7665002B1 (en) Multi-core integrated circuit with shared debug port
JP6557220B2 (ja) プログラム可能なインタフェースベースの検証及びデバッグ
JP4126105B2 (ja) デジタルプロセッサのテスト方法
EP3369015B1 (en) Methods and circuits for debugging circuit designs
CN102103535B (zh) 多核处理器、多核处理器的调试系统和调试方法
GB2266606A (en) A microprocessor with an external command mode for diagnosis and debugging
JPH07182204A (ja) 集積マイクロプロセッサ、コンピュータ開発システム、および集積プロセッサのテスト方法
JP2009533691A (ja) 試験アクセス・ポート・スイッチ
CN117290212A (zh) 基于risc-v架构调试系统
CN115017038A (zh) 一种兼容apb协议的jtag调试系统
US9581643B1 (en) Methods and circuits for testing partial circuit designs
CN114691520B (zh) 基于处理器调试架构的指令可编程缓冲区设计系统
CN109801664A (zh) Fpga配置存储器测试方法
US20070005322A1 (en) System and method for complex programmable breakpoints using a switching network
JP2008507025A (ja) 集積回路テスト用エミュレーション及びデバッグインターフェイス
CN101782626A (zh) 一种jtag端口控制器
CN119758031A (zh) 一种芯片功能的测试方法、测试控制模块、设备及装置
CN115658512A (zh) 一种通用处理器的调试系统
CN207946806U (zh) 一种调试器和调试装置
CN108664387A (zh) 基于ejtag的mips处理器调试方法及系统
Lee et al. A low-cost SOC debug platform based on on-chip test architectures
CN116414682A (zh) 程序的测试方法、装置、电子设备及存储介质
CN100533401C (zh) 测试具有异步微控制器的集成电路的仿真和调试接口
CN117271236B (zh) 复用jtag调试通道调试cpu核的处理器及应用方法
US9304165B2 (en) Method for controlling a state machine

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