CN117290212A - 基于risc-v架构调试系统 - Google Patents
基于risc-v架构调试系统 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
技术领域
本发明涉及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内核模块处理后,控制对应的外设进行具体操作。
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)
| 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处理器下载调试方法和系统 |
-
2023
- 2023-09-08 CN CN202311155943.7A patent/CN117290212A/zh active Pending
Cited By (2)
| 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 |