CN109597765A - 一种fpga的处理器指令调试方法、装置及电子设备 - Google Patents
一种fpga的处理器指令调试方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109597765A CN109597765A CN201811511247.4A CN201811511247A CN109597765A CN 109597765 A CN109597765 A CN 109597765A CN 201811511247 A CN201811511247 A CN 201811511247A CN 109597765 A CN109597765 A CN 109597765A
- Authority
- CN
- China
- Prior art keywords
- memory
- error
- processor
- instruction
- address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012937 correction Methods 0.000 claims description 34
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 abstract description 9
- 238000011161 development Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 abstract description 8
- 238000012986 modification Methods 0.000 abstract description 5
- 230000004048 modification Effects 0.000 abstract description 5
- 238000002224 dissection Methods 0.000 abstract 1
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种FPGA的处理器指令调试方法、装置及电子设备,当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;从第二存储器中,读取存储在对应出错地址的错误数据;根据所述错误数据,生成修正指令;将所述修正指令写入所述第二存储器对应的出错地址;取第二存储器中出错地址对应的校验数据并校验。这样,当指令出现问题时,可以直接通过处理器寄存器信息的观察和了解处理器内部的运转状况,并通过指令修改和校验完成调试,进一步提高了开发效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种FPGA的处理器指令调试方法、装置及电子设备。
背景技术
由于FPGA(英文:Field Programmable Gate Array,中文:现场可编程门阵列)具有速度快、效率高、灵活稳定、集成度高等优点,所以在硬件逻辑验证与设计中是十分必要的。长期以来,CPU(英文:Central Processing Unit,中文:中央处理器)架构主要由以intel(x86架构)和ARM(ARM架构)为代表。而随着开放免费RISCV(中文:精简指令集计算)架构的发展,开发者可依据开放的RISCV架构设计处理器,降低了CPU的准入门槛。
然而发明人通过研究发现,基于开源RISC-V型CPU的开发,其调试手段还处于落后阶段,严重制约了研发和调试。在目前RISCV开源SOC(英文:System on a Chip,中文:片上系统)工程中,开发者无法从外部直接获取到内部指令集的运行状况,当CPU出现宕机时,并不能及时分析和复现运行场景,迫切的需要一个调试模块,可以深入到CPU内部,实现调试功能。
因此,如何能够提供一种调试方法对FPGA的处理器进行调试是本领域技术人员亟需解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种FPGA的处理器指令调试方法,用于解决现有技术中难以对FPGA的处理器指令进行调试的问题。
为实现上述目的及其他相关目的,根据本发明的第一方面,本发明实施例提供一种FPGA的处理器指令调试方法,该方法包括以下步骤:
当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;
从第二存储器中,读取存储在对应出错地址的错误数据;
根据所述错误数据,生成修正指令;
将所述修正指令写入所述第二存储器对应的出错地址;
读取第二存储器中出错地址对应的校验数据并校验。
可选地,所述将所述修正指令写入所述第二存储器对应的出错地址,包括:
将出错地址和修正指令转换为适配第二存储器的格式信息;
根据所述第二存储器的写时序,将所述格式信息写入第二存储器。
可选地,从第二存储器中,读取存储在对应出错地址的错误数据之前,还包括:
向处理器发送暂停指令,以指示处理器暂停运行;
读取第二存储器中出错地址对应的校验数据之后,还包括:
当校验数据通过时,向处理器发送运行指令,以指示处理器启动运行。
可选地,所述读取第二存储器中出错地址对应的校验数据,包括读取第二寄存器中出错地址对应的预设空间范围的校验数据。
根据本发明的第二方面,本发明实施例还提供一种FPGA的处理器指令调试装置,包括:
解析模块,用于当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;
读取模块,用于从第二存储器中,读取存储在对应出错地址的错误数据;
生成模块,用于根据所述错误数据,生成修正指令;
写入模块,用于将所述修正指令写入所述第二存储器对应的出错地址;
校验模块,用于读取第二存储器中出错地址对应的校验数据并校验。
可选地,所述写入模块还用于,
将出错地址和修正指令转换为适配第二存储器的格式信息;
根据所述第二存储器的写时序,将所述格式信息写入第二存储器。
可选地,该装置还包括控制模块用于,
从第二存储器中,读取存储在对应出错地址的错误数据之前,向处理器发送暂停指令,以指示处理器暂停运行;以及,
读取第二存储器中出错地址对应的校验数据之后,当校验数据通过时,向处理器发送运行指令,以指示处理器启动运行。
可选地,所述读取模块用于,读取第二寄存器中出错地址对应的预设空间范围的校验数据。
根据本发明的第三方面,本发明实施例还提供一种电子设备,所述电子设备包括上述实施例所描述的FPGA的处理器指令调试装置。
根据本发明的第四方面,本发明实施例还提供一种电子设备,所述电子设备包括处理器;以及,
与所述处理器通信连接的存储器;其中,
所述存储器存储有可被所述处理器执行的指令,所述指令被所述处理器执行,以使所述处理器能够:
当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;
从第二存储器中,读取存储在对应出错地址的错误数据;
根据所述错误数据,生成修正指令;
将所述修正指令写入所述第二存储器对应的出错地址;
读取第二存储器中出错地址对应的校验数据并校验
如上所述,本发明实施例提供的一种FPGA的处理器指令调试方法,具有以下有益效果:当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;从第二存储器中,读取存储在对应出错地址的错误数据;根据所述错误数据,生成修正指令;将所述修正指令写入所述第二存储器对应的出错地址;取第二存储器中出错地址对应的校验数据并校验。这样,当指令出现问题时,可以直接通过处理器寄存器信息的观察和了解处理器内部的运转状况,并通过指令修改和校验完成调试,进一步提高了开发效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种FPGA的处理器指令调试方法的流程示意图;
图2是本发明实施例提供的一种指令写入方法的流程示意图;
图3是本发明实施例提供的另一种FPGA的处理器指令调试方法;
图4是本发明实施例提供的一种FPGA的处理器指令调试装置的结构示意图;
图5是本发明实施例提供的另一种FPGA的处理器指令调试装置的结构示意图;
图6是本发明实施例提供的执行FPGA的处理器指令调试方法的电子设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
请参阅图1至图6。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在本发明实施例中,执行FPGA的处理器指令调试方法的实施主体可以为与FPGA互联的上位机,或者配置在FPGA内部的调试模块。为了清楚的描述本发明实施例提供的FPGA的处理器指令调试方法,本发明实施例以上位机为实施主体进行详细描述。
参见图1,是本发明实施例提供的一种FPGA的处理器指令调试方法的流程示意图,如图1所示,本发明实施例示出了上位机对FPGA的处理器指令进行调试的过程:
步骤S101:当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址。
上位机侦测RISC-V中央处理器的运行状况,在具体实施时上位机可以侦测RISC-V中央处理器发出的消息,当处理器出现指令错误提示时,进一步读取处理器中第一存储器器存储的错误信息。在一示例性实施例中,处理器内部通常配置有PC(英文:ProgramCounter,中文:程序计数器)寄存器,该PC寄存器存储有指令在第二存储器中的地址,因此,通过解析PC寄存器中的错误信息,能够提取出错误指令在第二存储器中的出错地址。
步骤S102:从第二存储器中,读取存储在对应出错地址的错误数据。
第二存储器可以理解为ITCM(英文:Instrction Tightly Coupled Memory,中文:指令紧耦合存储器)存储器,指令紧耦合存储器,是指配置一段较小容量(一般几十KB)的存储器(通常使用SRAM),用于存储指令,且在物理上里处理器核很近,专属于处理器核,能够取得很小的访问延迟(通常一个时钟周期),可以保证系统的实时性。这样通过根据上述步骤获取到的错误地址,从指令紧耦合存储器中读取指令发生错误时产生的错误数据。
步骤S103:根据所述错误数据,生成修正指令。
根据读取到的错误数据,可以提示开发者输入修正指令。或者在第二种实施情况下,可以建立错误数据与修正指令的匹配数据库,通过检索错误数据与修正指令的匹配关系,选择相应的修正指令,该匹配数据库可以根据调试历史过程建立,在本发明实施例中不再赘述。
步骤S104:将所述修正指令写入所述第二存储器对应的出错地址。
在具体实施时,由于上位机与待调试的FPGA的处理器之间的数据协议不同,需要进行格式转化,因此为了适配不同的应用场景,提高调试的灵活性,参见图2,是本发明实施例提供的一种指令写入方法的流程示意图,如图2所示,该方法包括以下步骤:
步骤S1041:将出错地址和修正指令转换为适配第二存储器的格式信息。
在一个示例性实施例中,由于上位机符合UART16550协议,FPGA中数据符合RISCV的ITCM存储器的协议,为了实现信息交互,可以将出错地址以及修正指令的UART帧格式转化为符合ITCM存储器的地址加数据的格式和位宽,从而形成该格式信息。
步骤S1042:根据所述第二存储器的写时序,将所述格式信息写入第二存储器。
进一步,根据ITCM存储器的写时序,将格式信息写入到RISCV的ITCM存储器。
步骤S105:读取第二存储器中出错地址对应的校验数据并校验。
在具体实施时,为了进行数据的校验,可以读取第二寄存器中出错地址对应的预设空间范围的校验数据。在一示例性实施例中,可以读取出错地址前后15KB空间数据,作为校验数据,并通过检验数据与标准数据的比对,进行校验。
由上述实施例的描述可见,本发明实施例提供的一种FPGA的处理器指令调试方法,当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;从第二存储器中,读取存储在对应出错地址的错误数据;根据所述错误数据,生成修正指令;将所述修正指令写入所述第二存储器对应的出错地址;取第二存储器中出错地址对应的校验数据并校验。这样,当指令出现问题时,可以直接通过处理器寄存器信息的观察和了解处理器内部的运转状况,并通过指令修改和校验完成调试,进一步提高了开发效率。
为了进一步增强处理器指令调试的灵活性,参见图3,是本发明实施例提供的另一种FPGA的处理器指令调试方法,如图3所示,该方法包括以下步骤:
步骤S201:当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址。
步骤S202:向处理器发送暂停指令,以指示处理器暂停运行。
上位机通过上述实施例的信息交互机制,向处理器发送暂停指令,这样在调试过程中,可以将指令运行步骤停留在错误指令发生的状态,方便定位错位问题,进一步提高调试和开发效率。
步骤S203:从第二存储器中,读取存储在对应出错地址的错误数据。
步骤S204:根据所述错误数据,生成修正指令。
步骤S205:将所述修正指令写入所述第二存储器对应的出错地址。
步骤S206:读取第二存储器中出错地址对应的校验数据并校验。
步骤S207:当校验数据通过时,上位机向处理器发送运行指令,以指示处理器启动运行。
当校验数据通过验证时,表征指令调试成功,则上位机可以向处理器发送运行指令,处理器可以继续运行后续指令。
本发明实施例与上述实施例相同之处,可参见上述实施例的描述,在此不再赘述。
由上述实施例的描述可见,本发明实施例提供的另一种FPGA的处理指令调试方法,通过对待调试的处理器进行暂停和运行调控,能够有效定位问题或者错误指令,从而有效提高调试效率。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
与本发明提供的FPGA的处理器指令调试方法实施例相对应,本发明还提供了一种FPGA的处理器指令调试装置。
参见图4,是本发明实施例提供的一种FPGA的处理器指令调试装置的结构示意图,如图4所示,该装置包括:
解析模块11,用于当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;
读取模块12,用于从第二存储器中,读取存储在对应出错地址的错误数据;
生成模块13,用于根据所述错误数据,生成修正指令;
写入模块14,用于将所述修正指令写入所述第二存储器对应的出错地址;
校验模块15,用于读取第二存储器中出错地址对应的校验数据并校验。
为了满足上位机与FPGA之间信息交互的需求,在一示例性实施中,所述写入模块14还可以用于,
将出错地址和修正指令转换为适配第二存储器的格式信息;
根据所述第二存储器的写时序,将所述格式信息写入第二存储器。
为了实现对处理器的灵活控制,在本发明实施例中该装置还可以包括控制模块,该控制模块用于,
从第二存储器中,读取存储在对应出错地址的错误数据之前,向处理器发送暂停指令,以指示处理器暂停运行;以及,
读取第二存储器中出错地址对应的校验数据之后,当校验数据通过时,上位机向处理器发送运行指令,以指示处理器启动运行。
在数据校验的过程中,所述读取模块12还可以用于,读取第二寄存器中出错地址对应的预设空间范围的校验数据。
另外,在具体实施时,上位机的数据通常符合UART16550协议,FPGA的处理器中的数据通常符合RISCV的ITCM存储器的协议,这样为了实现格式转化,参见图5,是本发明实施例提供的另一种FPGA的处理器指令调试装置的结构示意图,如图5所示,该调试装置100包括异步接收模块101、格式转换模块102、指令写模块103、指令校验读模块104和异步发送模块105。
在一示例性实施例中,异步接收模块101符合UART16550协议,支持波特率50~256000B/s,实现串口UART串行数据接收并转为8位并行数据;异步发送模块105符合UART16550协议,支持波特率50~256000B/s,实现八位并行数据和串口UART串行数据协议的转换;格式转换模块102实现八位并行数据至32或64位的位宽转换,并且产生固定与之匹配的地址信息;指令写模块103按照符合RISCV的ITCM存储器的协议,完成对ITCM指令的插入和修改,实现即时修正指令错误的功能;指令校验读模块104用于在完成对指令修改后,由上位机发起,暂停CPU工作,然后读出正在运行的指令,查看指令运行状况是否如实际所想,实现指令的对比,确保指令数据的正确性,之后恢复处理器正常工作。
在具体实施时,该调试装置100中的异步接收模块101从上位机获取接收数据RX,通过格式转换模块102将符合UART16550协议的数据转换为符合RISCV的ITCM存储器的协议的数据,通过指令写模块103,根据写时序将数据写入到处理器200中的ITCM存储器201;而且,处理器200可以根据外部指令将ITCM存储器201中的数据通过指令校验读模块104,发送到格式转换模块102,将符合RISCV的ITCM存储器的协议的数据转换为符合UART16550协议的数据,并通过异步发送模块105将传送数据TX向上位机发送。这样通过该调试装置能够完成上位机和待调试处理器的信息交互,即通过上位机能够观察和了解处理器内部指令运行状况,方便进行调试,提高开发效率。
本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的FPGA的处理器指令调试方法。
图6是本发明实施例提供的执行FPGA的处理器指令调试方法的电子设备的硬件结构示意图,如图6所示,该设备包括:
一个或多个处理器610以及存储器620,图6中以一个处理器610为例。
执行FPGA的处理器指令调试方法的设备还可以包括:输入装置630和输出装置640。
处理器610、存储器620、输入装置630和输出装置640可以通过总线或者其他方式连接,图6中以通过总线连接为例。
存储器620作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的FPGA的处理器指令调试方法对应的程序指令/模块(例如,附图4所示的解析模块11、读取模块12、生成模块13、写入模块14和校验模块15)。处理器610通过运行存储在存储器620中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例FPGA的处理器指令调试方法。
存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据FPGA的处理器指令调试装置的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器620可选包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至FPGA的处理器指令调试装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置630可接收输入的数字或字符信息,以及产生与FPGA的处理器指令调试装置的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器620中,当被所述一个或者多个处理器610执行时,执行上述任意方法实施例中的FPGA的处理器指令调试方法。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种FPGA的处理器指令调试方法,其特征在于,包括以下步骤:
当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;
从第二存储器中,读取存储在对应出错地址的错误数据;
根据所述错误数据,生成修正指令;
将所述修正指令写入所述第二存储器对应的出错地址;
读取第二存储器中出错地址对应的校验数据并校验。
2.根据权利要求1所述的FPGA的处理器指令调试方法,其特征在于,所述将所述修正指令写入所述第二存储器对应的出错地址,包括:
将出错地址和修正指令转换为适配第二存储器的格式信息;
根据所述第二存储器的写时序,将所述格式信息写入第二存储器。
3.根据权利要求1所述的FPGA的处理器指令调试方法,其特征在于,
从第二存储器中,读取存储在对应出错地址的错误数据之前,还包括:
向处理器发送暂停指令,以指示处理器暂停运行;
读取第二存储器中出错地址对应的校验数据之后,还包括:
当校验数据通过时,向处理器发送运行指令,以指示处理器启动运行。
4.根据权利要求1所述的FPGA的处理器指令调试方法,其特征在于,所述读取第二存储器中出错地址对应的校验数据,包括读取第二寄存器中出错地址对应的预设空间范围的校验数据。
5.一种FPGA的处理器指令调试装置,其特征在于,包括:
解析模块,用于当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;
读取模块,用于从第二存储器中,读取存储在对应出错地址的错误数据;
生成模块,用于根据所述错误数据,生成修正指令;
写入模块,用于将所述修正指令写入所述第二存储器对应的出错地址;
校验模块,用于读取第二存储器中出错地址对应的校验数据并校验。
6.根据权利要求5所述的FPGA的处理器指令调试装置,其特征在于,所述写入模块还用于,
将出错地址和修正指令转换为适配第二存储器的格式信息;
根据所述第二存储器的写时序,将所述格式信息写入第二存储器。
7.根据权利要求5所述的FPGA的处理器指令调试装置,其特征在于,还包括控制模块用于,
从第二存储器中,读取存储在对应出错地址的错误数据之前,向处理器发送暂停指令,以指示处理器暂停运行;以及,
读取第二存储器中出错地址对应的校验数据之后,当校验数据通过时,向处理器发送运行指令,以指示处理器启动运行。
8.根据权利要求5所述的FPGA的处理器指令调试装置,其特征在于,所述读取模块用于,读取第二寄存器中出错地址对应的预设空间范围的校验数据。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求5至8任一项所述的FPGA的处理器指令调试装置。
10.一种电子设备,其特征在于,所述电子设备包括处理器;以及,
与所述处理器通信连接的存储器;其中,
所述存储器存储有可被所述处理器执行的指令,所述指令被所述处理器执行,以使所述处理器能够:
当侦测到处理器错误时,解析处理器中第一存储器存储的错误信息,所述错误信息携带有错误指令在第二存储器中的出错地址;
从第二存储器中,读取存储在对应出错地址的错误数据;
根据所述错误数据,生成修正指令;
将所述修正指令写入所述第二存储器对应的出错地址;
读取第二存储器中出错地址对应的校验数据并校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811511247.4A CN109597765A (zh) | 2018-12-11 | 2018-12-11 | 一种fpga的处理器指令调试方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811511247.4A CN109597765A (zh) | 2018-12-11 | 2018-12-11 | 一种fpga的处理器指令调试方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109597765A true CN109597765A (zh) | 2019-04-09 |
Family
ID=65961778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811511247.4A Pending CN109597765A (zh) | 2018-12-11 | 2018-12-11 | 一种fpga的处理器指令调试方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109597765A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966521A (zh) * | 2020-08-17 | 2020-11-20 | 海光信息技术有限公司 | 一种硬件错误的处理方法、处理器、控制器、电子设备及存储介质 |
CN112711213A (zh) * | 2021-01-11 | 2021-04-27 | 中国船舶重工集团公司第七0七研究所 | 一种基于RiscV内核的导航采集解算Soc处理系统及其方法 |
CN113780753A (zh) * | 2021-08-20 | 2021-12-10 | 深圳市广和通无线股份有限公司 | 数据处理方法、装置、计算机设备以及存储介质 |
CN118034614A (zh) * | 2024-04-11 | 2024-05-14 | 西安智多晶微电子有限公司 | 一种fpga片上非易失性存储器的读写方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105527564A (zh) * | 2015-12-25 | 2016-04-27 | 中国南方电网有限责任公司电网技术研究中心 | Fpga内部功能自诊断方法与系统 |
US20170192870A1 (en) * | 2016-01-05 | 2017-07-06 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Accessing hidden diagnostic registers |
CN107885611A (zh) * | 2017-11-24 | 2018-04-06 | 西安微电子技术研究所 | 可主动回写的分级指令存储器结构容错方法和装置 |
CN108920314A (zh) * | 2018-06-26 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种故障硬件定位方法、装置、系统及可读存储介质 |
-
2018
- 2018-12-11 CN CN201811511247.4A patent/CN109597765A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105527564A (zh) * | 2015-12-25 | 2016-04-27 | 中国南方电网有限责任公司电网技术研究中心 | Fpga内部功能自诊断方法与系统 |
US20170192870A1 (en) * | 2016-01-05 | 2017-07-06 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Accessing hidden diagnostic registers |
CN107885611A (zh) * | 2017-11-24 | 2018-04-06 | 西安微电子技术研究所 | 可主动回写的分级指令存储器结构容错方法和装置 |
CN108920314A (zh) * | 2018-06-26 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种故障硬件定位方法、装置、系统及可读存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966521A (zh) * | 2020-08-17 | 2020-11-20 | 海光信息技术有限公司 | 一种硬件错误的处理方法、处理器、控制器、电子设备及存储介质 |
CN111966521B (zh) * | 2020-08-17 | 2023-10-13 | 成都海光集成电路设计有限公司 | 一种硬件错误的处理方法、处理器、控制器、电子设备及存储介质 |
CN112711213A (zh) * | 2021-01-11 | 2021-04-27 | 中国船舶重工集团公司第七0七研究所 | 一种基于RiscV内核的导航采集解算Soc处理系统及其方法 |
CN112711213B (zh) * | 2021-01-11 | 2022-10-28 | 中国船舶重工集团公司第七0七研究所 | 一种基于RiscV内核的导航采集解算Soc处理系统及其方法 |
CN113780753A (zh) * | 2021-08-20 | 2021-12-10 | 深圳市广和通无线股份有限公司 | 数据处理方法、装置、计算机设备以及存储介质 |
CN118034614A (zh) * | 2024-04-11 | 2024-05-14 | 西安智多晶微电子有限公司 | 一种fpga片上非易失性存储器的读写方法及装置 |
CN118034614B (zh) * | 2024-04-11 | 2024-07-05 | 西安智多晶微电子有限公司 | 一种fpga片上非易失性存储器的读写方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597765A (zh) | 一种fpga的处理器指令调试方法、装置及电子设备 | |
US9152540B2 (en) | System and methods for generating and managing a virtual device | |
US20190005013A1 (en) | Conversation system-building method and apparatus based on artificial intelligence, device and computer-readable storage medium | |
CN104246767A (zh) | 用于云同步系统的遥测系统 | |
CN115952758B (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
EP2706459B1 (en) | Apparatus and method for validating a compiler for a reconfigurable processor | |
CN107391325A (zh) | 一种硬盘的测试方法、装置及终端 | |
CN114968864B (zh) | 验证环境的搭建方法、芯片的验证方法及系统 | |
CN107273249B (zh) | 主板测试方法、处理器和主板测试系统 | |
CN113742221A (zh) | 生成测试用例的方法、电子设备及存储介质 | |
US11163579B2 (en) | Instruction generation based on selection or non-selection of a special command | |
CN111897582B (zh) | 一体机以太网刷新方法、装置、存储介质及一体机设备 | |
CN112579373B (zh) | 用于分支预测器的验证方法、系统、设备以及存储介质 | |
EP3519964B1 (en) | Electronic apparatus for recording debugging information and control method thereof | |
CN104536884A (zh) | 代码测试方法和装置 | |
CN113535578A (zh) | 一种cts测试方法、装置及测试设备 | |
CN111949510B (zh) | 测试处理方法、装置、电子设备及可读存储介质 | |
CN113360161A (zh) | 资源升级方法及相关产品 | |
CN106776277A (zh) | 一种跨进程测试的方法、装置及电子设备 | |
CN107678967B (zh) | 单元测试覆盖率生成方法、装置、可读存储介质及设备 | |
US10642724B2 (en) | Technologies for bridging gaps in execution traces | |
CN116775202A (zh) | 模糊测试方法、装置、介质、电子设备及计算机程序产品 | |
US9697018B2 (en) | Synthesizing inputs to preserve functionality | |
CN114513436A (zh) | Sdio设备传输速率的检测方法、系统及存储介质 | |
CN113918444A (zh) | 崩溃源代码定位方法、装置、介质及电子设备 |
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 |
Application publication date: 20190409 |
|
RJ01 | Rejection of invention patent application after publication |