CN114580329B - 一种数字信号处理器芯片实时调试方法 - Google Patents
一种数字信号处理器芯片实时调试方法 Download PDFInfo
- Publication number
- CN114580329B CN114580329B CN202210489128.3A CN202210489128A CN114580329B CN 114580329 B CN114580329 B CN 114580329B CN 202210489128 A CN202210489128 A CN 202210489128A CN 114580329 B CN114580329 B CN 114580329B
- Authority
- CN
- China
- Prior art keywords
- module
- instruction
- debugging
- test
- execution
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012360 testing method Methods 0.000 claims abstract description 119
- 238000004088 simulation Methods 0.000 claims description 39
- 230000005540 biological transmission Effects 0.000 claims description 22
- 239000000872 buffer Substances 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 7
- 230000002457 bidirectional effect Effects 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/18—Chip packaging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/10—Processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种数字信号处理器芯片实时调试方法。该方法基于单核32位数字信号处理器芯片处理指令时的实时调试测试,实时调试测试包括处理器的流水线指令测试、调试处理器对软件的执行,其中,处理器的流水线指令测试通过边界扫描的方式进行测试,调试处理器对软件的执行包括对CPU内部的指令进行调试和测试。本发明提供的数字信号处理器实时调试方法,极大的提高了数字信号处理器芯片的测试和调试能力,有利于便捷、快速、实时作出数字信号处理器芯片在使用过程中对指令的分析和判断是否正确。
Description
技术领域
本发明属于芯片实时调试技术领域,具体涉及一种数字信号处理器芯片实时调试方法。
背景技术
随着集成电路的发展和我国工业化的发展,我国对芯片的需求逐年提高,特别是作为控制核心的处理器芯片(数字信号处理器,DSP)需求量剧增。当前很多处理器的实时调试模式较为复杂,而且多要求在测试环境下进行相应的测试和调试。
很多芯片在实时调试的时候会有调试不便利,或是调试覆盖率不够的情况。
因此,处理器芯片的实时调试尤其在产品方案上的实际调试迫在眉睫,故根据现有设计的数字信号处理器,本发明提出一种可以快速实施调试芯片的方法,方便芯片的测试调试。
发明内容
针对上述现有技术的不足,发明人提供一种数字信号处理器实时调试方法及应用,该方法基于单核的32位数字信号处理器,对芯片在处理指令的时候进行功能验证和软件调试,来快速、便捷地发现芯片对指令执行的问题即时作出判断并处理。
具体的,本发明涉及以下技术方案:
本发明的第一个方面,提供一种数字信号处理器芯片实时调试方法,包括处理器的流水线指令测试、调试处理器对软件程序的执行,其中,处理器的流水线指令测试通过边界扫描的方式进行测试,调试处理器对软件程序的执行对CPU(DSP内核)内部的指令进行调试和测试。
进一步的,所述处理器的流水线指令测试通过边界扫描的方式进行测试具体为:首先芯片通过JTAG模块中的数据输入端口输入测试数据,然后CPU内部和外围集成的扫描链将数据输入到CPU内部,通过CPU内部逻辑和寄存器操作运算后,将数据输出到扫描链上,然后通过扫描链将测试的数据输出到JTAG模块的输出端口上,实现芯片的测试;
进一步的,所述调试处理器对软件的执行对CPU内部的指令进行调试和测试具体为:仿真逻辑器件输出DEBUG信号使芯片进入调试模式,该模式下可以对CPU内部的指令进行调试和测试,调试包括调试指令执行、调试分支地址生成情况以及调试寄存器数值,测试包括测试单条指令和测试多条指令;
进一步的,所述测试单条指令具体为:通过JTAG模块输入单条指令到仿真逻辑器件,仿真逻辑器件与CPU内部的六级流水线中的译码模块连接,直接进行指令的执行进行测试,测试完成后数据会写入流水线中的寄存器中,仿真逻辑器件与寄存器连接读取寄存器中的执行值判断执行指令是否正确;
进一步的,所述测试多条指令具体为:将测试的指令集写入芯片的存储器中,然后通过通过JTAG模块输入测试跳转指令,该指令通过仿真逻辑器件输入到CPU内部的六级流水线中的译码模块,执行跳转指令,然后通过释放DEBUG芯片,使芯片进行正常工作模式,跳转执行存储器中存储的测试指令,测试完成后通过仿真逻辑器件与寄存器连接读取寄存器中的执行值判断执行指令是否正确;
进一步的,该数字信号处理器为单核32位数字信号处理器,该数字信号处理器内核包括总线接口模块、分支地址产生模块、六级流水线、缓存器、仿真逻辑器件以及JTAG模块,其中:
总线接口模块通过连接到内存传输模块提供数据,连接到缓存器进行临时存储,
分支地址生成器模块生成指令获取模块要捕获的下一条指令的地址;
指令获取模块、译码器模块、执行模块、内存传输模块、写寄存器模块、寄存器模块构成六级流水线结构,该结构获取指令的时候,每个阶段执行指令执行过程中的一部分:指令获取模块进行指令的获取工作,为了减少流水线结构的指令获取延时,该结构还会进行指令的预获取工作,在流水线其他阶段执行当前指令的同时,指令获取模块还会获取流水线将要执行的下一条指令;译码器模块将指令“操作码”翻译成数字“0”和“1”信号,这些信号将激活执行模块中需要执行的电路结构,并为这些电路结构提供进行操作的数字信号;执行模块执行从译码器模块接收到的信号并执行算术和逻辑操作;内存传输模块接收执行模块的结果,内存传输模块将结果发送给总线接口模块存储在内存中,或将结果提供给写寄存器模块,然后存储在寄存器模块中;写寄存器模块的作用是将信息存储在寄存器模块中;
缓存器与总线接口模块连接用于处理来自指令获取模块的指令请求,也用于处理来自内存传输模块的数据请求;
仿真逻辑器件与译码器模块连接,调试给执行模块的指令和操作数值,同时仿真逻辑器件可调试分支支取的程序,以及调试存储器模块的存储值;
JTAG模块作为测试端口,并通过增加在内核周围和内部关键模块的串行移位扫描链进行信息扫描,该扫描链与测试端口连接,支持双向传输,既可以将内部数据通过扫描链获取并串行输出,也可以将外部的调试测试程序通过测试端口和扫描链输入到芯片内部进行调试。
本发明的另一个方面,公开了上述方法的应用,具体的,应用于单核32位数字信号处理器芯片在处理指令时的实时调试测试。
本发明有益效果:
1)本发明数字信号处理器内核增加测试端口和仿真逻辑器件,使数字信号处理器更加容易进行功能验证和由设备执行的软件调试。其中作为测试端口符合基于IEEE1149.1协议的JTAG测试规范,并通过增加在内核周围和内部关键模块的串行移位扫描链进行信息扫描。该扫描链与测试端口连接,支持双向传输,既可以将内部数据通过扫描链获取并串行输出,也可以将外部的调试测试程序通过测试端口和扫描链输入到数字信号处理器芯片内部进行调试;
2)本发明通过仿真逻辑器件与处理器连接,调试处理器对软件的执行。仿真逻辑器件与译码器连接,以便调试给执行模块的指令和操作数值。同时仿真逻辑器件同样可以交替的与分支地址生成模块连接,以便调试分支支取的程序,仿真逻辑器件也可以交替连接到寄存器模块,以便调试存储器存储值;该调试芯片的操作主要是通过扫描链访问在仿真逻辑器件中的缓冲区,并将检测到的指令执行信息存储到仿真逻辑器件中的形缓冲区中来执行。同时调试还支持在处理器处于待机状态时通过扫描链获取需要调试的模块信息;
3)本发明的仿真逻辑器件可以直接将指令写入译码器模块。这些指令可以直接测试处理器的流水线。同时为了能够全速测试处理器的流水线,还可以通过将测试指令批量编写后存储到存储器中,然后给出相应的跳转执行指令给处理器,在处理器解除debug信号对其的停止控制后,运行该测试指令进行处理器的流水线指令测试;
总之,本发明提供的数字信号处理器实时调试方法,极大的提高了数字信号处理器芯片的测试和调试能力,有利于便捷、快速、实时作出数字信号处理器芯片在使用过程中对指令的分析和判断是否正确。
附图说明
图1是本发明基于的数字信号处理器处理指令的结构示意图;
图2是本发明六级流水线结构图;
图3是本发明调试模式中的或门逻辑电路;
图4是本发明测试模式中的边界扫描的方式进行测试的结构图;
图5是本发明调试模式下的对CPU内部的指令进行调试和测试示意图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
结合具体实例对本发明作进一步的说明,以下实例仅是为了解释本发明,并不对其内容进行限定。
本发明的一种典型实施方式中,提供一种数字信号处理器实时调试方法,包括处理器的流水线指令测试、调试处理器对软件的执行,其中,处理器的流水线指令测试通过边界扫描的方式进行测试,调试处理器对软件的执行对CPU内部的指令进行调试和测试;
在一个实施例中,所述处理器的流水线指令测试通过边界扫描的方式进行测试具体为:首先芯片通过JTAG模块中的数据输入端口输入测试数据,然后CPU内部和外围集成的扫描链将数据输入到CPU内部,通过CPU内部逻辑和寄存器操作运算后,将数据输出到扫描链上,然后通过扫描链将测试的数据输出到JTAG模块的输出端口上,实现芯片的测试;
在一个实施例中,所述调试处理器对软件的执行对CPU内部的指令进行调试和测试具体为:仿真逻辑器件输出DEBUG信号使芯片进入调试模式,该模式下可以对CPU内部的指令进行调试和测试,调试包括调试指令执行、调试分支地址生成情况以及调试寄存器数值,测试包括测试单条指令和测试多条指令;
在一个实施例中,所述测试单条指令具体为:通过JTAG模块输入单条指令到仿真逻辑器件,仿真逻辑器件与CPU内部的六级流水线中的译码模块连接,直接进行指令的执行进行测试,测试完成后数据会写入流水线中的寄存器中,仿真逻辑器件与寄存器连接读取寄存器中的执行值判断执行指令是否正确;
在一个实施例中,所述测试多条指令具体为:将测试的指令集写入芯片的存储器中,然后通过通过JTAG模块输入测试跳转指令,该指令通过仿真逻辑器件输入到CPU内部的六级流水线中的译码模块,执行跳转指令,然后通过释放DEBUG芯片,使芯片进行正常工作模式,跳转执行存储器中存储的测试指令,测试完成后通过仿真逻辑器件与寄存器连接读取寄存器中的执行值判断执行指令是否正确;
在一个实施例中,该数字信号处理器为单核32位数字信号处理器,该数字信号处理器内核包括总线接口模块、分支地址产生模块、六级流水线、缓存器、仿真逻辑器件以及JTAG模块,其中:
总线接口模块通过连接到内存传输模块提供数据,连接到缓存器进行临时存储,
分支地址生成器模块生成指令获取模块要捕获的下一条指令的地址;
指令获取模块、译码器模块、执行模块、内存传输模块、写寄存器模块、寄存器模块构成六级流水线结构,该结构获取指令的时候,每个阶段执行指令执行过程中的一部分:指令获取模块进行指令的获取工作,为了减少流水线结构的指令获取延时,该结构还会进行指令的预获取工作,在流水线其他阶段执行当前指令的同时,指令获取模块还会获取流水线将要执行的下一条指令;译码器模块将指令“操作码”翻译成数字“0”和“1”信号,这些信号将激活执行模块中需要执行的电路结构,并为这些电路结构提供进行操作的数字信号;执行模块执行从译码器模块接收到的信号并执行算术和逻辑操作;内存传输模块接收执行模块的结果,内存传输模块将结果发送给总线接口模块存储在内存中,或将结果提供给写寄存器模块,然后存储在寄存器模块中;写寄存器模块的作用是将信息存储在寄存器模块中;
缓存器与总线接口模块连接用于处理来自指令获取模块的指令请求,也用于处理来自内存传输模块的数据请求;
仿真逻辑器件与译码器模块连接,调试给执行模块的指令和操作数值,同时仿真逻辑器件可调试分支支取的程序,以及调试存储器模块的存储值;
JTAG模块作为测试端口,并通过增加在内核周围和内部关键模块的串行移位扫描链进行信息扫描,该扫描链与测试端口连接,支持双向传输,既可以将内部数据通过扫描链获取并串行输出,也可以将外部的调试测试程序通过测试端口和扫描链输入到芯片内部进行调试。
本发明的另一个方面,公开了上述方法的应用,具体的,应用于芯片在处理指令时的实时调试测试。
下面通过具体实施例,对本发明的操作,作进一步具体的说明。
本发明的方法基于一颗单核的32位数字信号处理器实现,该数字信号处理器处理指令的结构参见图1,来说明芯片在处理指令时的状态,以便更好的描述芯片进行调试测试的方法。
该数字信号处理器处理指令的时候由一条六级流水线结构(参见图2)进行指令的获取、译码、执行和存储。其中100为数字信号处理器的核心,数字信号处理器核心100包括:总线接口模块10、指令获取模块11、分支地址产生模块12、译码器模块13、执行模块14、内存传输模块15、写寄存器模块16、寄存器模块17、缓存器18。总线接口模块10通过指令总线和数据总线与存储器进行指令和数据传输。总线接口模块10通过连接指令获取模块11提供指令,通过连接到内存传输模块15提供数据,连接到缓存器18进行临时存储。
其中模块11-17构成了六级流水线结构。在该结构获取指令的时候,每个阶段执行指令执行过程中的一部分:其中指令获取模块11进行指令的获取工作,为了减少流水线结构的指令获取延时,该结构还会进行指令的预获取工作,在流水线其他阶段执行当前指令的同时,指令获取模块还会获取流水线将要执行的下一条指令。
分支地址生成器模块12生成指令获取模块11要捕获的下一条指令的地址。该电路结构包括了标准指令指针寄存器加法电路、支路指令检测电路和支路预测电路。分支指令检测电路对指令取模块11所获取的指令进行监控,并检测所取的指令是否为分支指令。转移预测电路则会预测一个条件转移指令是否会触发一个转移。如果分支地址生成模块12检测到无条件转移或预测将发生条件转移,则分支地址生成模块12将导致指令获取模块11跳转到目的指令。否则,指令获取模块11,只是获取后续指令。
译码器模块13将指令“操作码”翻译成数字“0”和“1”信号,这些信号将激活执行模块14中需要执行的电路结构,并为这些电路结构提供进行操作的数字信号。操作的数字信号可以是指令集中指令代表的执行数据,也可以是存储在某个寄存器模块17中的寄存器存储值。
执行模块14包括:从译码器模块13接收到的信号和操作数执行算术和逻辑操作的逻辑电路。这些操作可能包括了加、减、乘、反相、逻辑与、逻辑或、逻辑异或和逻辑非。同时执行模块14内部还有能够同时进行定点操作和浮点操作的逻辑电路。
执行模块14的结果由内存传输模块15接收。内存传输模块15可以将结果发送给总线接口模块10存储在内存中,也可以将结果提供给写寄存器模块16,存储在寄存器模块17中。此外,内存传输模块15还可以将指令执行后的结果直接检索出存储在寄存器中的数据信号的地址。在此操作下内存传输模块15可以通过总线接口10对存储器进行读取操作并将读取的数据写入寄存器模块17中。
写寄存器模块16的作用是将信息存储在寄存器模块17中。但是指令获取模块11获取的指令可能会基于分支预测进行检索,并且不可避免地会有一些预测是错误的。因此,根据这些已执行的指令更新寄存器模块17可能会有问题。因此写寄存器模块16决定了是否应该在执行写操作之前更新寄存器模块17。如果译码器模块13和执行模块14支持乱序指令执行,则写寄存器模块16可以在寄存器更新的正确顺序时对写操作执行重新排序。寄存器模块17只是一组用于处理存储中间操作值器的寄存器。
缓冲器18与总线接口10一起用于处理来自指令获取模块11的指令请求,也用于处理来自内存传输模块15的数据请求。当缓存指令数据丢失发生时,总线接口10从邻近的存储器检索所需的信息。检索额外的信息暂时存放在缓存器18中。如果总线接口10随后请求获取该缓存器存储的附加信息(缓存命中),则可以在比其他方式所需的更短的时间内完成获取请求。
以上描述为数字信号处理器处理指令数据的结构和处理方式。芯片在处理指令的时候需要进行功能验证和软件调试。为了使数字信号处理器更加容易进行功能验证和由设备执行的软件调试,增加测试端口101和仿真逻辑器件102 。其中作为测测试端口101符合基于IEEE1149.1协议的JTAG测试规范。并通过增加在内核周围和内部关键模块的串行移位扫描链进行信息扫描。该扫描链与测测试端口101连接,支持双向传输,既可以将内部数据通过扫描链获取并串行输出,也可以将外部的调试测试程序通过测测试端口101和扫描链输入到芯片内部进行调试。
仿真逻辑器件102与处理器连接,并调试处理器对软件的执行。在图2中,仿真逻辑器件102与译码器模块13连接,以便调试给执行模块14的指令和操作数值。同时仿真逻辑器件102同样可以交替的与分支地址生成模块12连接,以便调试分支支取的程序,仿真逻辑器件102也可以交替连接到寄存器模块17,以便调试存储器存储值。
该调试芯片的操作主要是通过扫描链访问在仿真逻辑器件102中的缓冲区,并将检测到的指令执行信息存储到仿真逻辑器件102中的环形缓冲区中来执行。同时调试还支持在处理器处于待机状态时通过扫描链获取需要调试的模块信息。
在进行任何调试,仿真逻辑器件102都可以输出一个可以处理器进入待机状态的debug信号,该信号可以在调试检索信息的时候停止处理器。在图2中可以看到,该debug信号可以直接连接到总线接口10停止处理器,也可以通过连接到处理器时钟树信号,关闭处理器时钟信号的方式停止处理器。总线接口10在获取调试信号debug后,后继续完成任何挂起的操作,并在该操作完成后停止处理器。
除了调试之外,仿真逻辑器件102还可以可靠方便的地执行功能测试。仿真逻辑器件102可以直接将指令写入译码器模块13。这些指令可以直接测试处理器的流水线。同时为了能够全速测试处理器的流水线,还可以通过将测试指令批量编写后存储到存储器中,然后给出相应的跳转执行指令给处理器,在处理器解除debug信号对其的停止控制后,运行该测试指令进行处理器的流水线指令测试。
此模式为调试模式,在正常的模式下不容许仿真逻辑器件访问处理器的状态和相关的流水线寄存器存储的指令数据。为了防止芯片在正常模式下进入调试状态,信号debug与或逻辑门进行逻辑运算。Debug信号为高电平“1”的时候,该逻辑门输出为高电平,处理器处于正常模式。Debug信号为低电平“0”的时候指令总线上的读/写信号将反映所请求的读/写操作信号,参见图3,图3为或门逻辑电路,起到中断信号作用。
在一个实施例中,参见图4,本发明方法中芯片进行测试的时候,通过边界扫描的方式进行测试。
首先芯片通过JTAG模块中的数据输入端口输入测试数据,然后CPU内部和外围集成的扫描链将数据输入到CPU内部,通过CPU内部逻辑和寄存器操作运算后,将数据输出到扫描链上,然后通过扫描链将测试的数据输出到JTAG模块的输出端口上,实现芯片的测试;
在一个实施例中,参见图5,本发明方法中芯片进行的调试的时候仿真逻辑器件输出DEBUG信号使芯片进入调试模式,该模式下可以对CPU内部的指令进行调试和测试。
调试:通过JTAG模块输入需要调试的指令,该指令通过仿真逻辑器件获取,
调试指令执行:仿真逻辑器件与CPU内部的六级流水线中的译码模块连接,可以调试指令的执行和执行的结果;
调试分支地址生成模块:仿真逻辑器件与CPU内部的六级流水线中的分支地址生成模块连接,可以调试分支地址生成情况;
调试寄存器结果:仿真逻辑器件与CPU内部的六级流水线中的寄存器,可以调试寄存器数值。
测试单条指令:
通过JTAG模块输入单条指令到仿真逻辑器件,仿真逻辑器件与CPU内部的六级流水线中的译码模块连接,直接进行指令的执行进行测试,测试完成后数据会写入流水线中的寄存器中,仿真逻辑器件与寄存器连接读取寄存器中的执行值判断执行指令是否正确。
测试多条指令:
将测试的指令集写入芯片的存储器中,然后通过通过JTAG模块输入测试跳转指令,该指令通过仿真逻辑器件输入到CPU内部的六级流水线中的译码模块,执行跳转指令,然后通过释放DEBUG芯片,使芯片进行正常工作模式,跳转执行存储器中存储的测试指令,测试完成后通过仿真逻辑器件与寄存器连接读取寄存器中的执行值判断执行指令是否正确。
本发明实施例方法依托于单核的32位数字信号处理器实现,极大的提高了芯片的测试和调试能力,有利于芯片在使用过程中对指令的分析和判断。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (2)
1.一种数字信号处理器芯片实时调试方法,其特征在于,该方法基于单核32位数字信号处理器芯片处理指令时的实时调试测试,实时调试测试包括处理器的流水线指令测试、调试处理器对软件的执行,其中,处理器的流水线指令测试通过边界扫描的方式进行测试,调试处理器对软件的执行通过仿真逻辑器件输出DEBUG信号使芯片进入调试模式,在该模式下对CPU内部的指令进行调试和测试,该测试包括测试单条指令不同执行阶段的执行结果,所述测试单条指令的具体方法为:通过JTAG模块输入单条指令到仿真逻辑器件,仿真逻辑器件与CPU内部的六级流水线中的译码模块连接,直接进行指令的执行进行测试,测试完成后数据会写入流水线中的寄存器中,仿真逻辑器件与寄存器连接读取寄存器中的执行值判断执行指令是否正确;所述处理器的流水线指令测试通过边界扫描的方式进行测试,其具体方法为:首先数字信号处理器芯片通过JTAG模块中的数据输入端口输入测试数据,然后CPU内部和外围集成的扫描链将数据输入到CPU内部,通过CPU内部逻辑和寄存器操作运算后,将数据输出到扫描链上,然后通过扫描链将测试的数据输出到JTAG模块的输出端口上,实现数字信号处理器芯片的测试;所述调试处理器对软件的执行通过仿真逻辑器件输出DEBUG信号使芯片进入调试模式,在该模式下对CPU内部的指令进行调试和测试,所述调试包括调试指令执行、调试分支地址生成情况以及调试寄存器数值,所述测试还包括测试多条指令,所述测试多条指令的具体方法为:将测试的指令集写入数字信号处理器芯片的存储器中,然后通过JTAG模块输入测试跳转指令,该指令通过仿真逻辑器件输入到CPU内部的六级流水线中的译码模块,执行跳转指令,然后通过释放DEBUG数字信号处理器芯片,使数字信号处理器芯片进行正常工作模式,跳转执行存储器中存储的测试指令,测试完成后通过仿真逻辑器件与寄存器连接读取寄存器中的执行值判断执行指令是否正确。
2.根据权利要求1所述的数字信号处理器芯片实时调试方法,其特征在于,所述数字信号处理器为单核32位数字信号处理器,该数字信号处理器内核包括总线接口模块、分支地址产生模块、六级流水线、缓存器、仿真逻辑器件以及JTAG模块,其中:
总线接口模块通过连接到内存传输模块提供数据,连接到缓存器进行临时存储,
分支地址生成器模块生成指令获取模块要捕获的下一条指令的地址;
指令获取模块、译码器模块、执行模块、内存传输模块、写寄存器模块、寄存器模块构成六级流水线结构,该结构获取指令的时候,每个阶段执行指令执行过程中的一部分:指令获取模块进行指令的获取工作,为了减少流水线结构的指令获取延时,该结构还会进行指令的预获取工作,在流水线其他阶段执行当前指令的同时,指令获取模块还会获取流水线将要执行的下一条指令;译码器模块将指令获取模块获取的指令进行译码;执行模块执行从译码器模块接收到的信号并执行算术和逻辑操作;内存传输模块接收执行模块的结果,内存传输模块将结果发送给总线接口模块存储在内存中,或将结果提供给写寄存器模块,然后存储在寄存器模块中;写寄存器模块的作用是将信息存储在寄存器模块中;
缓存器与总线接口模块连接用于处理来自指令获取模块的指令请求,也用于处理来自内存传输模块的数据请求;
仿真逻辑器件与译码器模块连接,调试给执行模块的指令和操作数值,同时仿真逻辑器件可调试分支支取的程序,以及调试存储器模块的存储值;
JTAG模块作为测试端口,并通过增加在内核周围和内部关键模块的串行移位扫描链进行信息扫描,该扫描链与测试端口连接,支持双向传输,既能将内部数据通过扫描链获取并串行输出,也能将外部的调试测试程序通过测试端口和扫描链输入到数字信号处理器芯片内部进行调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210489128.3A CN114580329B (zh) | 2022-05-07 | 2022-05-07 | 一种数字信号处理器芯片实时调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210489128.3A CN114580329B (zh) | 2022-05-07 | 2022-05-07 | 一种数字信号处理器芯片实时调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114580329A CN114580329A (zh) | 2022-06-03 |
CN114580329B true CN114580329B (zh) | 2022-07-22 |
Family
ID=81767670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210489128.3A Active CN114580329B (zh) | 2022-05-07 | 2022-05-07 | 一种数字信号处理器芯片实时调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114580329B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812562A (en) * | 1996-11-15 | 1998-09-22 | Samsung Electronics Company, Ltd. | Low cost emulation scheme implemented via clock control using JTAG controller in a scan environment |
JP2005267349A (ja) * | 2004-03-19 | 2005-09-29 | Ip Flex Kk | プロセッシングモジュールおよびその制御方法 |
CN102998614A (zh) * | 2012-12-14 | 2013-03-27 | 中船重工(武汉)凌久电子有限责任公司 | 可实现dsp单板或多板jtag调试的系统及调试方法 |
CN108388492A (zh) * | 2018-03-20 | 2018-08-10 | 珠海格力电器股份有限公司 | 多dsp芯片调试控制方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2362968B (en) * | 1999-12-23 | 2003-12-10 | St Microelectronics Sa | Computer system with debug facility |
JP4833907B2 (ja) * | 2007-04-23 | 2011-12-07 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
CN101369001A (zh) * | 2008-10-17 | 2009-02-18 | 北京星网锐捷网络技术有限公司 | 用于调试可编程芯片的装置及现场可编程门阵列芯片 |
-
2022
- 2022-05-07 CN CN202210489128.3A patent/CN114580329B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5812562A (en) * | 1996-11-15 | 1998-09-22 | Samsung Electronics Company, Ltd. | Low cost emulation scheme implemented via clock control using JTAG controller in a scan environment |
JP2005267349A (ja) * | 2004-03-19 | 2005-09-29 | Ip Flex Kk | プロセッシングモジュールおよびその制御方法 |
CN102998614A (zh) * | 2012-12-14 | 2013-03-27 | 中船重工(武汉)凌久电子有限责任公司 | 可实现dsp单板或多板jtag调试的系统及调试方法 |
CN108388492A (zh) * | 2018-03-20 | 2018-08-10 | 珠海格力电器股份有限公司 | 多dsp芯片调试控制方法及装置 |
Non-Patent Citations (2)
Title |
---|
Fully IEEE1149.1 compatible DFT solu-tion for MIPS CPU CORE;Lu Zhengyi,et al.;《Proceedings.5th International Confer-ence》;20031231;1140-1144 * |
基于JTAG接口的DSP内嵌调试器设计;周磊等;《信息技术》;20080525(第05期);134-136 * |
Also Published As
Publication number | Publication date |
---|---|
CN114580329A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4190114B2 (ja) | マイクロコンピュータ | |
US6571359B1 (en) | Systems and methods for testing processors | |
US6145123A (en) | Trace on/off with breakpoint register | |
JP3846939B2 (ja) | データプロセッサ | |
US7689867B2 (en) | Multiprocessor breakpoint | |
EP0762276B1 (en) | Data processor with built-in emulation circuit | |
EP0762277B1 (en) | Data processor with built-in emulation circuit | |
US5530804A (en) | Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes | |
US5430862A (en) | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution | |
EP0762279A1 (en) | Data processor with built-in emulation circuit | |
CN107577593B (zh) | 使用执行单一步骤来诊断编码 | |
US10795685B2 (en) | Operating a pipeline flattener in order to track instructions for complex | |
EP0869434A2 (en) | Method for outputting trace information of a microprocessor | |
US20050044452A1 (en) | Program processing device | |
EP0762278A1 (en) | Data processor with built-in emulation circuit | |
CN114580329B (zh) | 一种数字信号处理器芯片实时调试方法 | |
CN111177067A (zh) | 一种片上系统 | |
US7100027B1 (en) | System and method for reproducing system executions using a replay handler | |
WO2022235265A1 (en) | Debug channel for communication between a processor and an external debug host | |
US5287522A (en) | External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip | |
US20060259751A1 (en) | Monitoring of memory and external events | |
US11119149B2 (en) | Debug command execution using existing datapath circuitry | |
JP3716635B2 (ja) | 情報処理装置、及びその割込み制御方法 | |
JP2002163126A (ja) | デバッグ用cpuに内蔵のイベント検出回路、イベント検出方法および外部周辺回路 | |
KR100273280B1 (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 |