CN111722968A - 一种硬件调试方法、装置、系统及可读存储介质 - Google Patents

一种硬件调试方法、装置、系统及可读存储介质 Download PDF

Info

Publication number
CN111722968A
CN111722968A CN202010589287.1A CN202010589287A CN111722968A CN 111722968 A CN111722968 A CN 111722968A CN 202010589287 A CN202010589287 A CN 202010589287A CN 111722968 A CN111722968 A CN 111722968A
Authority
CN
China
Prior art keywords
debugging
pcie
signal
jtag
chip
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
CN202010589287.1A
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 Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center 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 Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202010589287.1A priority Critical patent/CN111722968A/zh
Publication of CN111722968A publication Critical patent/CN111722968A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2247Verification or detection of system hardware configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种硬件调试方法,装置、系统及可读存储介质,该方法包括:目标设备监测片外PCIe控制器的读写配置操作;片外PCIe控制器受调试上位机控制;目标设备为基于JTAG标准的设备;对读写配置操作进行解析,得到PCIe调试信号;将PCIe调试信号转换为JTAG调试信号;利用JTAG调试信号进行JTAG调试。在该方法中,不再受限于电脑主机和JTAG测试工具,能够直接通过复用PCIe便可满足设备调试需求。进一步,由于该方法能够通过PCIe总线实现调试测试,还可减少设置传统JTAG调试所需引脚,减少占用设备空间。

Description

一种硬件调试方法、装置、系统及可读存储介质
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种硬件调试方法、装置、系统及可读存储介质。
背景技术
IEEE1149.1标准的JTAG接口是4线——TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG的工作原理可以归结为:在设备(可具体为设备芯片)内部定义一个TAP控制器,通过专用的JTAG测试工具对内部节点进行测试和调试。其中,TAP是一个通用的端口,电脑主机通过TAP可以访问芯片提供的所有数据寄存器和指令寄存器,对整个TAP的控制是通过TAP控制器来完成的。
可见,通过电脑主机或JTAG测试工具可以实现对基于JTAG的调试原理的设备进行调试。但在实际应用中,例如设备已出售,需调试,此时可能因此电脑主机无法参与调试,缺少JTAG测试工具,而无法进行识别调试。
综上所述,如何有效地解决基于JTAG的硬件调试等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种硬件调试方法、装置、系统及可读存储介质,通过复用PCIe接口,通过PCIe来实现对基于JTAG的设备进行调试,可解决在电脑主机无法参与,缺少JTAG测试工具的情况下对设备进行调试的难题。
为解决上述技术问题,本发明提供如下技术方案:
一种硬件调试方法,包括:
目标设备监测片外PCIe控制器的读写配置操作;所述片外PCIe控制器受调试上位机控制;所述目标设备为基于JTAG标准的设备;
对所述读写配置操作进行解析,得到PCIe调试信号;
将所述PCIe调试信号转换为JTAG调试信号;
利用所述JTAG调试信号进行JTAG调试。
优选地,对所述读写配置操作进行解析,得到PCIe调试信号,包括:
对所述读写配置操作进行解析,得到解析结果;
将所述解析结果中的调试信息写入调试寄存器;
利用所述调试寄存器中存储的调试信息,生成所述PCIe调试信号。
优选地,将所述PCIe调试信号转换为JTAG调试信号,包括:
利用协议转换器对所述PCIe调试信号进行协议转换,得到所述JTAG调试信号。
优选地,利用协议转换器对所述PCIe调试信号进行协议转换,得到所述JTAG调试信号,包括:
按照JTAG协议,利用协议转换器中的状态机对所述PCIe调试信号进行转换,得到转换信号;
利用所述协议转换器中的时钟生成时钟信号;
组合所述转换信号和所述时钟信号,得到所述JTAG调试信号。
优选地,所述目标设备监测片外PCIe控制器的读写配置操作,包括:
利用目标设备中的片内PCIe控制器接收所述片外PCIe控制器发送的配置数据包。
一种硬件调试系统,包括:
调试上位机、片外PCIe控制器和目标设备;所述目标设备包括:协议转换器、TAP控制器、被测模组和具有调试寄存器的片内PCIe控制器;
其中,PCIe总线连接所述调试上位机和所述片外PCIe控制器;
所述片内PCIe控制器,用于接收所述片外PCIe控制器的读写配置操作,并在所述调试寄存器中存储与所述读写配置操作对应的调试信息;利用所述调试信息生成PCIe调试信号;
所述协议转换器,用于将所述PCIe调试信号转换为JTAG调试信号;
所述TAP控制器,用于利用所述调试信号对所述被测模组进行调试。
优选地,所述协议转换器,包括:状态机和时钟;
所述状态机,用于按照JTAG协议对所述PCIe调试信号进行转换,得到转换信号;
所述时钟,用于生成时钟信号;所述JTAG调试信号包括所述转换信号和所述时钟信号。
优选地,所述目标设备中在所述TAP控制器与所述协议转换器之间还包括多路选择器;
所述多路选择器,用于控制所述TAP控制器是否与所述协议转换器连通。
一种硬件调试装置,包括:
监测模块,用于监测片外PCIe控制器的读写配置操作;所述片外PCIe控制器受调试上位机控制;所述目标设备为基于JTAG标准的设备;
PCIe调试信号获取模块,用于对所述读写配置操作进行解析,得到PCIe调试信号;
协议转换模块,用于将所述PCIe调试信号转换为JTAG调试信号;
JTAG调试模块,用于利用所述JTAG调试信号进行JTAG调试。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述硬件调试方法的步骤。
应用本发明实施例所提供的方法,目标设备监测片外PCIe控制器的读写配置操作;片外PCIe控制器受调试上位机控制;目标设备为基于JTAG标准的设备;对读写配置操作进行解析,得到PCIe调试信号;将PCIe调试信号转换为JTAG调试信号;利用JTAG调试信号进行JTAG调试。
在本方法中,调试上位机通过片外PCIe控制器与目标设备相连接,且上位机可以通过对片外PCIe控制器进行操作,向目标设备发送读写配置操作。目标设备对读写配置操作进行解析,得到PCIe调试信号;为了使得基于JTAG标准的设备能够基于PCIe调试信号进行调试/测试,可对PCIe调试信号进行转换,得到符合JTAG标准的JTAG调试信号,然后直接基于FTAG调试信号进行JTAG调试即可。如此,便可通过PCIe总线与目标设备连接,通过对片外PCIe控制器的读写操作进行控制,便可实现调试,而不再受限于电脑主机和JTAG测试工具,能够满足设备调试更多场景的应用需求。在本方法中,不再受限于电脑主机和JTAG测试工具,能够直接通过复用PCIe便可满足设备调试需求。进一步,由于该方法能够通过PCIe总线实现调试测试,还可减少设置传统JTAG调试所需引脚,减少占用设备空间。
相应地,本发明实施例还提供了与上述硬件调试方法相对应的硬件调试装置、系统和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种硬件调试方法的实施流程图;
图2为本发明实施例中目标设备与上位机之间的连接示意图;
图3为TAP状态机中状态示意图;
图4为本发明实施例中一种硬件调试系统的结构示意图;
图5为本发明实施例中一种调试寄存器实现框图;
图6为传统JTAG调试示意图;
图7为本发明实施例中硬件调试示意图;
图8为本发明实施例中一种硬件调试装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于本领域技术人员更好地理解本发明实施例所提供的技术方案,下面对本文出现的术语进行详细说明。
PCIe:Peripheral Component Interconnect Express的缩写,一种高速串行计算机扩展总线标准,在存储,服务器,通信等多种集成电路芯片领域有着广泛的应用。
PCI:Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。
RC:Root Complex的缩写,是根复合体设备,将处理器和内存子系统连接到由一个或多个交换设备组成的PCI Express交换结构。
EP:Endpoint的缩写,PCIe终端设备,主要用来接收来自PCIe RC的读、写和读写配置操作。
JTAG:Joint Test Action Group的缩写,联合测试行动组是一种国际标准测试协议(IEEE 1149.1)。
TAP:Test Access Port的缩写,测试存取端口,通过TAP可以访问芯片提供的所有数据寄存器和指令寄存器。
TCK:TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。TCK在IEEE 1149.1标准里是强制要求的。
TMS:TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。TMS信号在TCK的上升沿有效。TMS在IEEE 1149.1标准里是强制要求的。
TDI:数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。TDI在IEEE 1149.1标准里是强制要求的。
TDO:数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动)。TDO在IEEE 1149.1标准里是强制要求的。
DR:数据寄存器;
IR:指令寄存器;
Test-LogicReset:TAP状态机复位状态;
Run-Test/Idle:运行状态/空闲状态;
Select-DR Scan:选择数据移位寄存器进行移位操作;
Select-IR Scan:选择指令寄存器进行移位操作;
Capture-DR:捕获数据放入指定移位寄存器;
Shift-DR:在这个状态中,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的数据寄存器将从TDI接收一位数据,同时通过TDO输出一位数据;
Update-DR:在Update-DR状态下,由TCK上升沿驱动,数据寄存器当中的数据将被加载到相应的芯片管脚上去,用以驱动芯片;
Capture-IR:当TAP控制器在这个状态中,在TCK的上升沿,一个特定的逻辑序列将被装载到指令寄存器中去。
Shift-IR:在这个状态中,由TCK驱动,每一个时钟周期,被连接在TDI和TDO之间的指令寄存器将从TDI接收一位数据,同时通过TDO输出一位数据。
Update-IR:在这个状态中,在Shift-IR状态下输入的新指令将被用来更新指令寄存器。
PCIe2JTAG模块:基于JTAG(IEEE1149.1)标准,通过控制状态机将PCIe EP输出的调试数据总线转换为JTAG的标准四线接口TMS、TCK、TDI、TDO。实现串并转换逻辑,同时该模块的时钟控制单元可以提供不同的TCK工作频率。
请参考图1,图1为本发明实施例中一种硬件调试方法的流程图,该方法包括以下步骤:
S101、目标设备监测片外PCIe控制器的读写配置操作。
其中,片外PCIe控制器受调试上位机控制;目标设备为基于JTAG标准的设备。
其中,目标设备即为基于JTAG标准的设备。为了在目标设备中复用PCIe而实现设备调节,在目标设备中可设置一个协议转换器,该协议转换器用于连接JTAG标注对应的TAP控制器和PCIe控制器。
其中,调试上位机可以为能够支持PCIe的设备,如连接了PCIe接口的芯片。
特别地,片外PCIe控制器即区别于目标设备的一个PCIe控制器,片外PCIe控制器可以位于调试上位机中,也可以位于调试上位机之外。
具体的,可利用目标设备中的片内PCIe控制器接收片外PCIe控制器发送的配置数据包。也就是说,目标设备与上位机之间通过PCIe总线进行通信。请参考图2,图2为本发明实施例中目标设备与上位机之间的连接示意图。其中,PCIe总线是一种典型的点到点高速串行总线,允许在同一时刻,同时进行发送和接收数据。由于是串行总线,因此所有的数据包(包括配置信息等)都是以数据包为单位进行发送的。如图2所示,其中,若A设备为目标设备,则B设备为调试设备;若A设备为调试设备,则B设备为目标设备;一个完整的PCIe体系结构包括应用层、事务层、数据链路层和物理层。其中,应用层并不是PCIe标准所规定的内容,而是完全由用户根据自己的需求进行设计,另外三层都是PCIe协议标准中明确规范的,并要求设计者严格遵循的。
在事务层,规定了多种类型的总线事务操作,如存储器读写、I/O读写、配置读写总线事务和消息总线事务及原子操作等总线事务,分别对应了不同的数据包格式。
特别地,PCIe还扩展了0x40和0xFF这段配置空间并将配置空间扩展到4KB,用于支持一些PCIe总线中新的功能,如电源管理、中断请求相关的扩展结构等。
S102、对读写配置操作进行解析,得到PCIe调试信号。
获取到读写配置操作之后,即得到配置数据包之后,便可按照PCIe总线中的层层协议对读写配置操作进行解析,得到PCIe调试信号。
由于PCIe总线还会传输其他数据,即并非所有基于PCIe总线传输的数据均为调试数据,因此需要进行读写配置操作进行解析筛选,从而得到PCIe调试信号。
具体的,在本实施例中,可利用用户自由应用的配置空间生成PCIe调试信号。具体实现过程,包括:
步骤一、对读写配置操作进行解析,得到解析结果;
步骤二、将解析结果中的调试信息写入调试寄存器;
步骤三、利用调试寄存器中存储的调试信息,生成PCIe调试信号。
即,在本实施例中,可在PCIe控制器中,设置调试寄存器。在解析读写配置操作后,将与调试相关的调试信息写入到调试寄存器。然后基于调试寄存器中的存储调试信息生成PCIe调试信号。该PCIe调试信号即为符合PCIe协议的传输信号。
S103、将PCIe调试信号转换为JTAG调试信号。
在本实施例中,通过PCIe总线,并对其上传输的配置数据包进行解析,可得到PCIe调试信号。即,调试上位机可通过PCIe总线向目标设备发送调试信号。
为了使得基于JTAG标准的目标设备能够对PCIe调试信号进行响应处理,还需将PCIe调试信号转换为JTAG调试信号。
具体的,可在目标设备中设置一个协议转换器,使之实现PCEI协议与JTAG协议之间的转换。如此,便可利用协议转换器对PCIe调试信号进行协议转换,得到JTAG调试信号。JTAG调试信号的具体获取过程,包括:
步骤一、按照JTAG协议,利用协议转换器中的状态机对PCIe调试信号进行转换,得到转换信号;
步骤二、利用协议转换器中的时钟生成时钟信号;
步骤三、组合转换信号和时钟信号,得到JTAG调试信号。
为便于描述,下面将上述三个步骤结合起来进行说明。
其中,标准的JTAG接口是4线——TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。基于JTAG标注的目标设备中包括TAP控制器。TAP是一个通用的端口,通过TAP可以访问芯片提供的所有数据寄存器和指令寄存器,对整个TAP的控制是通过TAP控制器来完成的。
如图3所示,而在TAP控制器,一共分为三个部分:信道选择部分、数据信道、指令信道。上电后,TAP控制器首先进入Test-Logic-Reset状态,然后依次进入Run-Test/Idle、Select-DR-Scan、Select-IR-Scan、Capture-IR、Shift-IR、Exitl-IR、Update-IR状态,最后回到Run-Test/Idle状态。在此过程中,状态的转移都是通过TCK信号进行驱动(上升沿),通过TMS信号对TAP的状态进行选择转换的。
其中,在Capture-IR状态下,一个特定的逻辑序列被加载到指令寄存器中;
在Shift-IR状态下,可以将一条特定的指令送到指令寄存器中;
在Update-IR状态下,刚才输入到指令寄存器中的指令将用来更新指令寄存器。
最后,系统又回到Run-Test/Idle状态,指令生效,完成对指令寄存器的访问。
又返回到Run-Test/Idle状态后,根据前面指令寄存器的内容选定所需要的数据寄存器,开始执行对数据寄存器的工作。其基本原理与指令其存器的访问完全相同,依次为Select-DR-Scan、Capture-DR、Shift-DR、Exit1-DR、Update-DR,最后回到Run-Test/Idle状态。通过TDI和TDO,就可以将新的数据加载到数据寄存器中。经过一个周期后,就可以捕获数据寄存器中的数据,完成对与数据寄存器的每个寄存器单元相连的芯片引脚的数据更新,也完成了对数据寄存器的访问。
也就是说,仅需按照JTAG协议,利用协议转换器中的状态机对PCIe调试信号进行转换,便可得到转换信号。为了实现有效控制,还需生成时钟信号,将转换信号与时钟信号进行组合,便可得JTAG调试信号。需要说明的是,这里所说的将转换信号与时钟信号进行组合,其实质是将转换信号和时钟信号同时通过JTAG对应的4条传输数据进行传输。在本实施例中,将JTAG接口传输的全部调试信号统称为JTAG调试信号。
S104、利用JTAG调试信号进行JTAG调试。
得到JTAG调试信号之后,便可直接利用TAP控制器对目标设备中的待调试模块或组件进行调试即可。
应用本发明实施例所提供的方法,目标设备监测片外PCIe控制器的读写配置操作;片外PCIe控制器受调试上位机控制;目标设备为基于JTAG标准的设备;对读写配置操作进行解析,得到PCIe调试信号;将PCIe调试信号转换为JTAG调试信号;利用JTAG调试信号进行JTAG调试。
在本方法中,调试上位机通过片外PCIe控制器与目标设备相连接,且上位机可以通过对片外PCIe控制器进行操作,向目标设备发送读写配置操作。目标设备对读写配置操作进行解析,得到PCIe调试信号;为了使得基于JTAG标准的设备能够基于PCIe调试信号进行调试/测试,可对PCIe调试信号进行转换,得到符合JTAG标准的JTAG调试信号,然后直接基于FTAG调试信号进行JTAG调试即可。如此,便可通过PCIe总线与目标设备连接,通过对片外PCIe控制器的读写操作进行控制,便可实现调试,而不再受限于电脑主机和JTAG测试工具,能够满足设备调试更多场景的应用需求。在本方法中,不再受限于电脑主机和JTAG测试工具,能够直接通过复用PCIe便可满足设备调试需求。进一步,由于该方法能够通过PCIe总线实现调试测试,还可减少设置传统JTAG调试所需引脚,减少占用设备空间。
相应于上面的方法实施例,本发明实施例还提供了一种硬件调试系统,下文描述的硬件调试系统与上文描述的硬件调试方法可相互对应参照。
请参考图4,该系统包括:
调试上位机、片外PCIe控制器和目标设备;目标设备包括:协议转换器(图示PCIe2JTAG)、TAP控制器、被测模组和具有调试寄存器的片内PCIe控制器;
其中,PCIe总线连接调试上位机和片外PCIe控制器;
片内PCIe控制器,用于接收片外PCIe控制器的读写配置操作,并在调试寄存器中存储与读写配置操作对应的调试信息;利用调试信息生成PCIe调试信号;
协议转换器,用于将PCIe调试信号转换为JTAG调试信号;
TAP控制器,用于利用调试信号对被测模组进行调试。
其中,片内PCIe控制器可以为RC模式,或EP模式;片内PCIe控制器可以为RC模式,或EP模式。
其中,协议转换器,包括:状态机和时钟;
状态机,用于按照JTAG协议对PCIe调试信号进行转换,得到转换信号;
时钟,用于生成时钟信号;JTAG调试信号包括转换信号和时钟信号。
优选地,为了兼容原有的直接基于JTAG进行设备调试,以及本发明实施例所提供的基于PCIe实现调试,目标设备中在TAP控制器与协议转换器之间还包括多路选择器;多路选择器,用于控制TAP控制器是否与协议转换器连通。也就是说,通过简单的多路选择器,该系统还可以与传统的JTAG管脚兼容,可以灵活切换JTAG调试方法。
需要说明的是,上述方法实施例所描述的硬件调试方法可应用于该系统中的目标设备中,以基于PCIe总线对目标设备进行调试或测试。下面结合具体场景对具体应用实现进行详细说明。
PCIe EP(片内PCIe控制器)主要用来接收来自片外PCIe RC控制器的读写配置操作,通过分层协议转换以及对PCIe配置空间的用户自定义扩展,定义两个专用寄存器(图示调试寄存器,图中仅绘制了一个)用于JTAG调试功能,将接收到的配置操作转化为调试寄存器的数据控制输入输出信号并连接到PCIe EP边界。
PCIe2JTAG转换器(即协议转换器):基于JTAG(IEEE1149.1)标准,通过内部自定义控制状态机将PCIe输出的PCIe调试信号转换为JTAG调试信号。实现从PCIe协议到JTAG的协议转换逻辑,同时该协议转换器中时钟可以提供可配置的TCK工作频率。
TAP控制器:每一个基于JTAG标准的调试逻辑芯片(目标设备)内部都有一个TAP控制逻辑,TAP是一个通用的端口,对接来自PCIe2JTAG接口信号的TMS,TDI,TDO,TCK。通过TAP控制器可以通过调试接口访问芯片提供的所有DR和IR。
在需要对目标设备进行调试时,具体实现过程如下:
调试上位机通过PCIe RC控制器与目标设备中的PCIe EP控制器进行建立链接和初始化。
调试上位机对目标设备中的PCIe EP控制器进行配置读写操作。具体的,当调试上位机对目标设备通过PCIe总线进行调试的时候,可以通过PCIe EP内部扩展的调试寄存器进行读写配置。
调试上位机一侧的PCIe RC(即片外PCIe控制器)发过来的配置数据包,经过物理层、数据链路层、事务层的层层协议转换拆解,最终到达两个调试寄存器。其中,物理层负责创建与解码,同时负责发送与接收所有类型的包,在发送之前,还需要对包进行一系列的处理,如扰码和译码等。对应的,在接收端需要进行相反的处理。此外,物理层还实现了链路训练和链路初始化的功能,这一般是通过链路训练状态机来完成的。数据链路层负责数据链路层包的创建,解码和校验。同时,数据链路层还可实现Ack/Nak的应答机制。接收端的事务层负责事务层包的解码与校检,发送端的事务层负责事务层包的创建。此外,事务层还有服务质量和流量控制等功能。
对于PCIe两个调试寄存器,如图5所示,用户自定义可扩张调试寄存器是根据PCIe协议规定的用户可扩展配置空间定义并实现的,可以通过PCIe RC配置类型的事务层数据包对寄存器空间进行访问,同时生成PCIe调试信号。PCIe RC控制器进行JTAG指令和数据配置写和读操作,指令内容需基于JTAG标准。
名称 属性 描述
31 DE_DATA_ RW 调试数据有效指示位,仅在读操作有效
30:8 Reserved RW 预留位
7 DE_RNW RW 调试读写设置位,读操作为‘1’,写操作为
6:0 DE_INDEX RW 调试指针位
表1
如表1所示,为PCIe EP控制器中扩展的调试寄存器,DE_RNW来表示当前是调试读操作还是写操作,DE_INDEX表示不同的TMS序列,最终基于生成的TCK产生TMS输出信号,所有指令内容均基于JTAG标准。
名称 属性 描述
31:0 DE_DATA RW 调试读写数据位
表2
表2为调试数据寄存器,DE_DATA是当前JTAG指令操作的指令或者数据。通过寄存器操作,所有调试信号产生后连接至PCIe EP边界与PCIe2JTAG相连。
PCIe控制器中调试寄存器输出调试信号连接到PCIe2JTAG模块边界,PCIe2JTAG模块主要负责把PCIe寄存器输出的调试信号转换为JTAG标准信号,送至TAP控制器,作为协议转换的重要环节,PCIe2JTAG是PCIe EP和TAP控制器之间的重要转换桥梁。DE_DATA_VLD置为‘1’,表示数据有效。TCK作为调试时钟,可以通过系统时钟控制模块进行频率配置和选择,PCI2JTAG最终生成TCK时钟连接到TAP控制模块。
PCIe2JTAG会与TAP控制器相连,控制TAP控制器首先进入Test-LogicReset状态,然后依次进入Run-Test/Idle、Select-DR-Scan、Select-IR-Scan、Capture-IR、Shift-IR、Exitl-IR、Update-IR状态,最后回到Run-Test/Idle状态(请参考IEEE1149.1)。在此过程中,状态的转移都是通过TCK信号进行驱动(上升沿),通过TMS信号对TAP的状态进行选择转换的。
图6是传统的通过PC对芯片的JTAG调试方案(其中芯片即为目标设备);图7是本发明实施例所提出的硬件调试方案(其中,芯片1为目标设备,芯片2为调试上位机),通过复用PCIe接口进行JTAG调试,可以解决在很多无法用计算机主机参与的JTAG调试场景下对芯片进行调试,如图6所示,比如在芯片1与芯片2联调的时候,PCIe是两颗芯片之间唯一的互联接口,计算机主机此时无法参与基带芯片内部调试和异常检测,这时就可以利用应用芯片中的PCIe RC接口对PCIe EP接口发出配置调试信息,通过基带芯片内部的PCIe2JTAG模块实现协议转换并最终完成调试。
与此同时,在某些IO引脚紧张的芯片中,复用PCIe接口进行调试可以减少引脚使用,在复杂度集成度高的芯片中效果显著。还有,对于板子体积有限的情况下,也可以通过PCIe2JTAG的方式进行调试。PCIe接口是市面主流的高速互联接口,应用极其广泛,该方案不需要额外的硬件逻辑和仿真调试工具,结合PCIe上层软件应用,使得芯片调试更加灵活方便,满足多种复杂场景下的芯片调试,可节约芯片开发成本。
相应于上面的方法实施例,本发明实施例还提供了一种硬件调试装置,下文描述的硬件调试装置与上文描述的硬件调试方法可相互对应参照。
参见图8所示,该装置包括以下模块:
监测模块101,用于监测片外PCIe控制器的读写配置操作;片外PCIe控制器受调试上位机控制;目标设备为基于JTAG标准的设备;
PCIe调试信号获取模块102,用于对读写配置操作进行解析,得到PCIe调试信号;
协议转换模块103,用于将PCIe调试信号转换为JTAG调试信号;
JTAG调试模块104,用于利用JTAG调试信号进行JTAG调试。
应用本发明实施例所提供的装置,目标设备监测片外PCIe控制器的读写配置操作;片外PCIe控制器受调试上位机控制;目标设备为基于JTAG标准的设备;对读写配置操作进行解析,得到PCIe调试信号;将PCIe调试信号转换为JTAG调试信号;利用JTAG调试信号进行JTAG调试。
在本装置中,调试上位机通过片外PCIe控制器与目标设备相连接,且上位机可以通过对片外PCIe控制器进行操作,向目标设备发送读写配置操作。目标设备对读写配置操作进行解析,得到PCIe调试信号;为了使得基于JTAG标准的设备能够基于PCIe调试信号进行调试/测试,可对PCIe调试信号进行转换,得到符合JTAG标准的JTAG调试信号,然后直接基于FTAG调试信号进行JTAG调试即可。如此,便可通过PCIe总线与目标设备连接,通过对片外PCIe控制器的读写操作进行控制,便可实现调试,而不再受限于电脑主机和JTAG测试工具,能够满足设备调试更多场景的应用需求。在本装置中,不再受限于电脑主机和JTAG测试工具,能够直接通过复用PCIe便可满足设备调试需求。进一步,由于该装置能够通过PCIe总线实现调试测试,还可减少设置传统JTAG调试所需引脚,减少占用设备空间。
在本发明的一种具体实施方式中,PCIe调试信号获取模块102,具体用于对读写配置操作进行解析,得到解析结果;将解析结果中的调试信息写入调试寄存器;利用调试寄存器中存储的调试信息,生成PCIe调试信号。
在本发明的一种具体实施方式中,协议转换模块103,具体用于利用协议转换器对PCIe调试信号进行协议转换,得到JTAG调试信号。
在本发明的一种具体实施方式中,协议转换模块103,具体用于按照JTAG协议,利用协议转换器中的状态机对PCIe调试信号进行转换,得到转换信号;利用协议转换器中的时钟生成时钟信号;组合转换信号和时钟信号,得到JTAG调试信号。
在本发明的一种具体实施方式中,监测模块101,具体用于利用目标设备中的片内PCIe控制器接收片外PCIe控制器发送的配置数据包。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种硬件调试方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的硬件调试方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
需要说明的是,在本发明的其他实施例中,还可将PCIe总线换为其他总线,协议转换器则对应设置转换规则即可,具体实现过程可参照本实施例中基于PCIe总线的调试实现过程。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

Claims (10)

1.一种硬件调试方法,其特征在于,包括:
目标设备监测片外PCIe控制器的读写配置操作;所述片外PCIe控制器受调试上位机控制;所述目标设备为基于JTAG标准的设备;
对所述读写配置操作进行解析,得到PCIe调试信号;
将所述PCIe调试信号转换为JTAG调试信号;
利用所述JTAG调试信号进行JTAG调试。
2.根据权利要求1所述的硬件调试方法,其特征在于,对所述读写配置操作进行解析,得到PCIe调试信号,包括:
对所述读写配置操作进行解析,得到解析结果;
将所述解析结果中的调试信息写入调试寄存器;
利用所述调试寄存器中存储的调试信息,生成所述PCIe调试信号。
3.根据权利要求1所述的硬件调试方法,其特征在于,将所述PCIe调试信号转换为JTAG调试信号,包括:
利用协议转换器对所述PCIe调试信号进行协议转换,得到所述JTAG调试信号。
4.根据权利要求3所述的硬件调试方法,其特征在于,利用协议转换器对所述PCIe调试信号进行协议转换,得到所述JTAG调试信号,包括:
按照JTAG协议,利用协议转换器中的状态机对所述PCIe调试信号进行转换,得到转换信号;
利用所述协议转换器中的时钟生成时钟信号;
组合所述转换信号和所述时钟信号,得到所述JTAG调试信号。
5.根据权利要求1所述的硬件调试方法,其特征在于,所述目标设备监测片外PCIe控制器的读写配置操作,包括:
利用目标设备中的片内PCIe控制器接收所述片外PCIe控制器发送的配置数据包。
6.一种硬件调试系统,其特征在于,包括:
调试上位机、片外PCIe控制器和目标设备;所述目标设备包括:协议转换器、TAP控制器、被测模组和具有调试寄存器的片内PCIe控制器;
其中,PCIe总线连接所述调试上位机和所述片外PCIe控制器;
所述片内PCIe控制器,用于接收所述片外PCIe控制器的读写配置操作,并在所述调试寄存器中存储与所述读写配置操作对应的调试信息;利用所述调试信息生成PCIe调试信号;
所述协议转换器,用于将所述PCIe调试信号转换为JTAG调试信号;
所述TAP控制器,用于利用所述调试信号对所述被测模组进行调试。
7.根据权利要求6所述的硬件调试系统,其特征在于,所述协议转换器,包括:状态机和时钟;
所述状态机,用于按照JTAG协议对所述PCIe调试信号进行转换,得到转换信号;
所述时钟,用于生成时钟信号;所述JTAG调试信号包括所述转换信号和所述时钟信号。
8.根据权利要求6所述的硬件调试系统,其特征在于,所述目标设备中在所述TAP控制器与所述协议转换器之间还包括多路选择器;
所述多路选择器,用于控制所述TAP控制器是否与所述协议转换器连通。
9.一种硬件调试装置,其特征在于,包括:
监测模块,用于监测片外PCIe控制器的读写配置操作;所述片外PCIe控制器受调试上位机控制;所述目标设备为基于JTAG标准的设备;
PCIe调试信号获取模块,用于对所述读写配置操作进行解析,得到PCIe调试信号;
协议转换模块,用于将所述PCIe调试信号转换为JTAG调试信号;
JTAG调试模块,用于利用所述JTAG调试信号进行JTAG调试。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述硬件调试方法的步骤。
CN202010589287.1A 2020-06-24 2020-06-24 一种硬件调试方法、装置、系统及可读存储介质 Pending CN111722968A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010589287.1A CN111722968A (zh) 2020-06-24 2020-06-24 一种硬件调试方法、装置、系统及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010589287.1A CN111722968A (zh) 2020-06-24 2020-06-24 一种硬件调试方法、装置、系统及可读存储介质

Publications (1)

Publication Number Publication Date
CN111722968A true CN111722968A (zh) 2020-09-29

Family

ID=72568865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010589287.1A Pending CN111722968A (zh) 2020-06-24 2020-06-24 一种硬件调试方法、装置、系统及可读存储介质

Country Status (1)

Country Link
CN (1) CN111722968A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112285542A (zh) * 2020-10-14 2021-01-29 天津津航计算技术研究所 一种面向fpga外部接口逻辑的调试与测试方法
CN112557886A (zh) * 2021-01-20 2021-03-26 北京燧原智能科技有限公司 协议转换桥接电路、知识产权核以及系统级芯片

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107577635A (zh) * 2017-08-29 2018-01-12 西安微电子技术研究所 一种兼容ahb协议的非握手式jtag调试链路及其调试方法
CN108027755A (zh) * 2015-10-23 2018-05-11 英特尔Ip公司 支持采用外部输入/输出接口对测试、调试或追踪信息的传递的装置、系统和方法
CN109426594A (zh) * 2017-08-25 2019-03-05 深圳市中兴微电子技术有限公司 一种芯片调试装置、方法及计算机可读存储介质
CN110032482A (zh) * 2019-04-11 2019-07-19 盛科网络(苏州)有限公司 片上调试装置和方法
CN111124977A (zh) * 2019-10-15 2020-05-08 芯创智(北京)微电子有限公司 一种pcie设备的调试装置和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108027755A (zh) * 2015-10-23 2018-05-11 英特尔Ip公司 支持采用外部输入/输出接口对测试、调试或追踪信息的传递的装置、系统和方法
CN109426594A (zh) * 2017-08-25 2019-03-05 深圳市中兴微电子技术有限公司 一种芯片调试装置、方法及计算机可读存储介质
CN107577635A (zh) * 2017-08-29 2018-01-12 西安微电子技术研究所 一种兼容ahb协议的非握手式jtag调试链路及其调试方法
CN110032482A (zh) * 2019-04-11 2019-07-19 盛科网络(苏州)有限公司 片上调试装置和方法
CN111124977A (zh) * 2019-10-15 2020-05-08 芯创智(北京)微电子有限公司 一种pcie设备的调试装置和方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112285542A (zh) * 2020-10-14 2021-01-29 天津津航计算技术研究所 一种面向fpga外部接口逻辑的调试与测试方法
CN112285542B (zh) * 2020-10-14 2023-02-03 天津津航计算技术研究所 一种面向fpga外部接口逻辑的调试与测试方法
CN112557886A (zh) * 2021-01-20 2021-03-26 北京燧原智能科技有限公司 协议转换桥接电路、知识产权核以及系统级芯片

Similar Documents

Publication Publication Date Title
US5983379A (en) Test access port controller and a method of effecting communication using the same
US5768152A (en) Performance monitoring through JTAG 1149.1 interface
US6088822A (en) Integrated circuit with tap controller
US20040001432A1 (en) Embedding a JTAG host controller into an FPGA design
JPH10340203A (ja) デジタルプロセッサのテスト方法
US7577876B2 (en) Debug system for data tracking
US7047458B2 (en) Testing methodology and apparatus for interconnects
US20200064405A1 (en) Combinatorial serial and parallel test access port selection in a jtag interface
EP0862115B1 (en) Trigger sequencing controller
US7747901B2 (en) Auxiliary link control commands
CN111722968A (zh) 一种硬件调试方法、装置、系统及可读存储介质
US7076708B2 (en) Method and apparatus for diagnosis and behavior modification of an embedded microcontroller
US8020058B2 (en) Multi-chip digital system having a plurality of controllers with self-identifying signal
CN109407655B (zh) 一种调试芯片的方法及装置
Vermeulen et al. Overview of debug standardization activities
Larsson et al. System-level access to on-chip instruments
CN110717311A (zh) 一种fpga内部访问系统、fpga验证方法
CN115509834A (zh) 一种基于jtag协议的微处理器在线调试系统及调试方法
US10890619B2 (en) Sequential test access port selection in a JTAG interface
US20030225566A1 (en) JTAG server
Nejedlo IBIST/spl trade/(interconnect built-in-self-test) architecture and methodology for PCI Express
CN110907857A (zh) 一种基于fpga的连接器自动检测方法
CN207946806U (zh) 一种调试器和调试装置
JP4455556B2 (ja) テストインターフェース装置を有する半導体デバイス
CN117667541A (zh) 基于jtag的通用可扩展调试装置、方法、芯片及开发系统

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200929