FPGA芯片的调试电路、芯片电路的编程方法、设备及介质与流程

allin2025-03-22  36


所属的技术人员可以清楚地了解到,为方便的描述和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。进一步的,本技术实施例还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例所述的芯片电路的编程方法。进一步的,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行如上述实施例所述的芯片电路的编程方法。在本发明实施例的描述中需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。当诸如层、区域或衬底的要素被称为在另一要素“上”或“上方”时,它可以直接在该另一要素上,或者也可以存在中间要素。相反,当一个要素被称为“直接在”另一要素“上”或者“上方”时,不存在中间要素。还应当理解,当一个要素被称为在另一要素“下”或“下方”时,它可以直接在该另一要素下或下方,或者也可以存在中间要素。相反,当一个要素被称为“直接在”另一要素“下”或者“下方”时,不存在中间要素。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。本领域内的技术人员应明白,本技术的实施例还可提供包括计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本技术是参照根据本技术实施例的方法、设备(系统)、装置和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅是本发明的优选实施方式,应当指出,对于本的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。


背景技术:

1、fpga(field programmable gate array)是在pal(可编程阵列逻辑)、gal(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。传统的fpga芯片产品提供以一个标准4线jtag接口为主的调试通路,再通过jtag接口对fpga芯片进行调试,主要以xilinx代表的zynq、zynq-mpsoc、acap等产品为主。

2、目前常用的调试架构中,一般是使用级联pl_tap控制器和arm_dap控制器,需要预先将pl_tap控制器和arm_dap控制器搭载在fpga芯片与jtag接口,在获取jtag的控制权限后,再由pl_tap控制器进行码流的下载、efuse编程、xadc访问等测试,由arm_dap控制器进行片上调试和跟踪、地址访问等,以完成调试。

3、但目前常用的方案有如下技术问题:由于pl_tap控制器和arm_dap控制器需要搭载在fpga芯片的硬件中,每次完成测试或中断测试以保护控制器时,只能直接移除控制器,操作繁琐;而且一旦移除控制器后,无法通过jtag接口访问fpga芯片,只能改变访问方式,对于产品的测试继承性影响很大,降低了操作的灵活性。


技术实现思路

1、本发明提出一种fpga芯片的调试电路、芯片电路的编程方法、设备及介质,所述方案可以解决上一个或多个技术问题。

2、本发明实施例的第一方面提供了一种fpga芯片的调试电路,所述fpga芯片的调试电路,包括:可编程的fpga单元和硬核soc单元;

3、所述fpga单元设有config模块,所述config模块与所述fpga单元的内部总线连接,所述config模块接收上位机加载的用户码流,并在解析用户码流正常后将用户码流加载到所述fpga单元的每个可编程单元模块内,以完成所述fpga单元的调试;

4、所述硬核soc单元设有第一控制器、第二控制器和保护控制器,所述第一控制器与所述config模块连接,所述第一控制器与所述硬核soc单元的总线连接,并用于访问所述硬核soc单元的寄存器和存储空间,以完成用例测试和存储的编程;

5、所述第二控制器用于对所述硬核soc单元的cpu模块进行调试和追踪;

6、所述保护控制器分别与所述第一控制器和所述第二控制器连接,所述保护控制器用于阻挡访问所述第一控制器和所述第二控制器的非法指令,以保护所述第一控制器和所述第二控制器。

7、在第一方面的一种可能的实现方式中,所述fpga芯片的调试电路,包括:第一接口、第二接口、第三接口和第四接口;

8、所述第一接口与所述config模块连接,所述config模块通过所述第一接口接收上位机加载的用户码流;

9、所述第二接口和所述第二控制器连接,所述第二接口是通过所述fpga单元的接口,并能单独对所述硬核soc单元的cpu模块进行调试;

10、所述第三接口与所述第一控制器连接,所述第一控制器通过所述第三接口获取读写命令,并将读写命令转换成ahb总线命令,以通过所述硬核soc单元的总线,访问所述硬核soc单元的资源;

11、所述第四接口与所述第二控制器连接。

12、本发明实施例的第二方面提供了一种芯片电路的编程方法,所述方法适用于如上所述的fpga芯片的调试电路,所述方法包括:

13、获取编程信息,所述编程信息是上位机调用编译器工具生成的信息;

14、按照所述编程信息对所述fpga芯片的调试电路进行编程处理。

15、在第二方面的一种可能的实现方式中,所述编程信息包括:用户码流,其中,所述用户码流是上位机调用编译器工具生成的固定格式的码流;

16、所述编程处理,包括:

17、通过config模块确定所述用户码流符合电路的器件信息且完成校验后,按照所述用户码流修改电路的信息;

18、按照fpga单元的寻址信息将所述用户码流传输至fpga单元的每个模块,并接收上位机发送的操控命令序列,所述操控命令序列是上位机调用fpga编程工具按要求将配置需要编程的数据内容编程的命令序列;

19、按照所述操控命令序列控制内部的efuse控制器采用所述用户码流对fpga单元的每个模块进行读写操作。

20、在第二方面的一种可能的实现方式中,在所述编程处理的步骤后,所述方法还包括:

21、将所述编程完成命令传输至上位机后,获取上位机发送的第一命令序列;

22、若按照所述第一命令序列控制fpga单元内部的控制器对执行编程处理的模块进行读写操作且读写操作成功,则将完成操作的结果传输至上位机;

23、若按照所述第一命令序列控制fpga单元内部的控制器对执行编程处理的模块进行读写操作且读写操作失败,则按照预设第一次数重复进行所述编程处理;

24、当所述编程处理的执行次数大于预设第一次数时,上报失败信息给上位机。

25、在第二方面的一种可能的实现方式中,所述编程处理,还包括:

26、在确定所述用户码流不符合电路的器件信息或是所述用户码流校验失败或,上报失败信息给上位机。

27、在第二方面的一种可能的实现方式中,所述编程信息包括:驱动命令,其中,所述驱动命令是上位机调用编译器工具将配置需要编程的信息解析编译成固定格式并用于驱动fpga单元的fpga芯片内的flash控制器寄存器的命令;

28、所述编程处理,包括:

29、调用第一控制器将所述驱动命令依次推送给fpga单元的fpga芯片内部的flash控制器,以供flash控制器将所述驱动命令发送到fpga芯片内部的寄存器进行编程操作。

30、在第二方面的一种可能的实现方式中,在所述编程处理的步骤后,所述方法还包括:

31、当上位机通过查询pga单元的fpga芯片内部的flash状态寄存器确定编程处理完成后,获取上位机的第二命令序列;

32、将所述第二命令序列传输至fpga单元的fpga芯片内部的flash控制器,供上位机从flash控制器读取编程后的信息并进行校验;

33、若上位机校验结果为失败,则按照预设第二次数重复进行所述编程处理;

34、当所述编程处理的执行次数大于预设第二次数时,上报失败信息给上位机。

35、本发明实施例的第三方面提供了一种芯片电路的编程装置,所述装置适用于如上所述的fpga芯片的调试电路,所述装置包括:

36、获取信息模块,用于获取编程信息,所述编程信息是上位机调用编译器工具生成的信息;

37、编程处理模块,用于按照所述编程信息对所述fpga芯片的调试电路进行编程处理。

38、在第三方面的一种可能的实现方式中,所述编程信息包括:用户码流,其中,所述用户码流是上位机调用编译器工具生成的固定格式的码流;

39、所述编程处理模块,还用于:

40、通过config模块确定所述用户码流符合电路的器件信息且完成校验后,按照所述用户码流修改电路的信息;

41、按照fpga单元的寻址信息将所述用户码流传输至fpga单元的每个模块,并接收上位机发送的操控命令序列,所述操控命令序列是上位机调用fpga编程工具按要求将配置需要编程的数据内容编程的命令序列;

42、按照所述操控命令序列控制内部的efuse控制器采用所述用户码流对fpga单元的每个模块进行读写操作。

43、在第三方面的一种可能的实现方式中,所述编程处理模块,还用于:

44、将所述编程完成命令传输至上位机后,获取上位机发送的第一命令序列;

45、若按照所述第一命令序列控制fpga单元内部的控制器对执行编程处理的模块进行读写操作且读写操作成功,则将完成操作的结果传输至上位机;

46、若按照所述第一命令序列控制fpga单元内部的控制器对执行编程处理的模块进行读写操作且读写操作失败,则按照预设第一次数重复进行所述编程处理;

47、当所述编程处理的执行次数大于预设第一次数时,上报失败信息给上位机。

48、在第三方面的一种可能的实现方式中,所述编程处理模块,还用于:

49、在确定所述用户码流不符合电路的器件信息或是所述用户码流校验失败或,上报失败信息给上位机。

50、在第三方面的一种可能的实现方式中,所述编程信息包括:驱动命令,其中,所述驱动命令是上位机调用编译器工具将配置需要编程的信息解析编译成固定格式并用于驱动fpga单元的fpga芯片内的flash控制器寄存器的命令;

51、所述编程处理模块,还用于:

52、调用第一控制器将所述驱动命令依次推送给fpga单元的fpga芯片内部的flash控制器,以供flash控制器将所述驱动命令发送到fpga芯片内部的寄存器进行编程操作。

53、在第三方面的一种可能的实现方式中,所述编程处理模块,还用于:

54、当上位机通过查询pga单元的fpga芯片内部的flash状态寄存器确定编程处理完成后,获取上位机的第二命令序列;

55、将所述第二命令序列传输至fpga单元的fpga芯片内部的flash控制器,供上位机从flash控制器读取编程后的信息并进行校验;

56、若上位机校验结果为失败,则按照预设第二次数重复进行所述编程处理;

57、当所述编程处理的执行次数大于预设第二次数时,上报失败信息给上位机。

58、相比于现有技术,本发明实施例提供的一种fpga芯片的调试电路、芯片电路的编程方法、设备及介质,其有益效果在于:本发明的fpga芯片的调试电路包括:可编程的fpga单元和硬核soc单元;fpga单元设有config模块,硬核soc单元设有控制器,通过config模块访问fpga单元的内部总线进行编程调试,以及通过控制器进行编程调试,不但可以简化编程调试的操作,而且通过直接与总线连接,可以在完成测试或中断测试时直接访问fpga芯片,从而能提升产品的测试继承性能以及通信与调试的灵活性。


技术特征:

1.一种fpga芯片的调试电路,其特征在于,所述fpga芯片的调试电路包括:可编程的fpga单元和硬核soc单元;

2.根据权利要求1所述的fpga芯片的调试电路,其特征在于,所述fpga芯片的调试电路,包括:第一接口、第二接口、第三接口和第四接口;

3.一种芯片电路的编程方法,其特征在于,所述方法适用于如权利要求1-2任意一项所述的fpga芯片的调试电路,所述方法包括:

4.根据权利要求3所述的芯片电路的编程方法,其特征在于,所述编程信息包括:用户码流,其中,所述用户码流是上位机调用编译器工具生成的固定格式的码流;

5.根据权利要求4所述的芯片电路的编程方法,其特征在于,在所述编程处理的步骤后,所述方法还包括:

6.根据权利要求4所述的芯片电路的编程方法,其特征在于,所述编程处理,还包括:

7.根据权利要求3所述的芯片电路的编程方法,其特征在于,所述编程信息包括:驱动命令,其中,所述驱动命令是上位机调用编译器工具将配置需要编程的信息解析编译成固定格式并用于驱动fpga单元的fpga芯片内的flash控制器寄存器的命令;

8.根据权利要求7所述的芯片电路的编程方法,其特征在于,在所述编程处理的步骤后,所述方法还包括:

9.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求3-8任意一项所述的芯片电路的编程方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行如权利要求3-8任意一项所述的芯片电路的编程方法。


技术总结
本发明公开了一种FPGA芯片的调试电路、芯片电路的编程方法、设备及介质,所述电路包括:可编程的FPGA单元和硬核SOC单元;FPGA单元设有Config模块,所述Config模块用于对所述FPGA单元的调试;所述硬核SOC单元设有控制器,通过控制器对所述硬核SOC单元的寄存器和存储空间完成用编程。本发明通过Config模块访问FPGA单元的内部总线进行编程调试,以及通过控制器进行编程调试,不但可以简化编程调试的操作,而且通过直接与总线连接,可以在完成测试或中断测试时直接访问FPGA芯片,从而能提升产品的测试继承性能以及通信与调试的灵活性。

技术研发人员:潘淞,黄中华,王勇
受保护的技术使用者:上海安路信息科技股份有限公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-19470.html

最新回复(0)