CN104050068A - 在mcu芯片中调试fpga的方法和装置 - Google Patents
在mcu芯片中调试fpga的方法和装置 Download PDFInfo
- Publication number
- CN104050068A CN104050068A CN201410223042.1A CN201410223042A CN104050068A CN 104050068 A CN104050068 A CN 104050068A CN 201410223042 A CN201410223042 A CN 201410223042A CN 104050068 A CN104050068 A CN 104050068A
- Authority
- CN
- China
- Prior art keywords
- information
- hardware description
- gate array
- programmable gate
- fpga
- 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.)
- Granted
Links
Abstract
本发明实施例提供了一种在MCU芯片中调试FPGA的方法和装置,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块,所述现场可编程门阵列FPGA模块包括现场可编程门阵列FPGA器件,所述方法包括:将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;依据所述硬件描述信息生成对应的软件驱动程序;依据所述IO分配信息配置所述FPGA器件的IO引脚;将所述软件驱动程序载入到所述MCU芯片中;对所述MCU芯片进行系统复位,执行所述软件驱动程序。本发明可以保证FPGA在MCU芯片中的使用无误,并且,当数据信息存在错误时,可以及时发现并解决,使得FPGA可以正常使用,提高FPGA的稳定性。
Description
技术领域
本发明涉及集成电路技术领域,特别是涉及一种在MCU芯片中调试FPGA的方法和一种在MCU芯片中调试FPGA的装置。
背景技术
随着集成电路工艺的不断提高,现场可编程门阵列FPGA(Field-Programmable Gate Array)作为专用集成电路(ASIC,Application-SpecificIntegrated Circuit)领域中的一种半定制电路而出现,FPGA的逻辑块和连接可以按照用户的需要而改变,通过可编辑的连接把FPGA内部的逻辑块连接起来,所以FPGA可以完成所需要的逻辑功能。
由于FPGA具有极高的灵活性,MCU(Micro Control Unit,微控制单元)芯片厂商寄望于将FPGA集成于MCU芯片中,以解决MCU芯片在不同应用场景对功能需求不一样的矛盾。
通常,在FPGA完成所需要的逻辑功能之前,需要将相应的数据信息烧录至FPGA中,以完成所需要的逻辑功能。
然而,烧录好相应功能的FPGA集成在MCU芯片上时,FPGA有可能不能发挥其相应的功能,并且,数据信息有可能出现错误,当数据信息有误时,FPGA将不能正常工作,所需要的逻辑功能也即不能正常发挥,集成了FPGA的MCU芯片也将失效,造成FPGA无法使用,以及使FPGA的稳定性差。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提供一种在MCU芯片中调试FPGA的方法和装置,用以保证FPGA在MCU芯片中的使用无误,并且,当数据信息存在错误时,可以及时发现并解决,使得FPGA可以正常使用,提高FPGA的稳定性。
发明内容
本发明实施例所要解决的技术问题是提供一种在MCU芯片中调试FPGA的方法,用以保证FPGA在MCU芯片中的使用无误,并且,当数据信息存在错误时,可以及时发现并解决,使得FPGA可以正常使用,提高FPGA的稳定性。
相应的,本发明实施例还提供了一种在MCU芯片中调试FPGA的装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明公开了一种在MCU芯片中调试FPGA的方法,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块,所述现场可编程门阵列FPGA模块包括现场可编程门阵列FPGA器件,所述方法包括:
将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
依据所述硬件描述信息生成对应的软件驱动程序;
依据所述IO分配信息配置所述FPGA器件的IO引脚;
将所述软件驱动程序载入到所述MCU芯片中;
对所述MCU芯片进行系统复位,执行所述软件驱动程序。
优选地,所述方法还包括:
当执行所述软件驱动程序后的输出结果正确时,则获得调试正确的结果;
当执行所述软件驱动程序后的输出结果不正确时,
若硬件描述信息出现错误,则修改对应的硬件描述信息后,跳转至将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的步骤;
若软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至将所述软件驱动程序载入到所述MCU芯片中的步骤。
优选地,所述MCU芯片还包括闪存芯片,在当执行所述软件驱动程序后的输出结果正确时,则获得调试正确的结果的步骤之后,还包括:
将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
优选地,所述预置的硬件描述信息包括寄存器传输级RTL代码,在所述将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的步骤之前,还包括:
获取寄存器传输级RTL代码;
依据所述寄存器传输级RTL代码分配所述FPGA器件的IO引脚,生成IO分配信息;
将所述寄存器传输级RTL代码和IO分配信息按照所述FPGA器件的写入格式进行编译,生成预设的硬件描述信息和IO分配信息。
优选地,所述MCU芯片还包括静态随机存储器SRAM,所述SRAM连接在所述系统总线上,所述将所述软件驱动程序载入到所述MCU芯片中的步骤包括:
将所述软件驱动程序载入到所述SRAM;
所述对所述MCU芯片进行系统复位,执行所述软件驱动程序的步骤包括:
对所述MCU芯片进行系统复位,从所述SRAM开始执行所述软件驱动程序。
优选地,所述MCU芯片还包括闪存芯片,所述将所述软件驱动程序载入到所述MCU芯片中的步骤包括:
将所述软件驱动程序载入到所述闪存芯片中;
所述对所述MCU芯片进行系统复位,执行所述软件驱动程序的步骤包括:
对所述MCU芯片进行系统复位,从所述闪存芯片开始执行所述软件驱动程序。
优选地,所述MCU芯片还包括联合测试工作组JTAG,所述现场可编程门阵列FPGA配置信息下载子模块与联合测试工作组JTAG互连,所述将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中的步骤包括:
所述联合测试工作组JTAG接收预设的联合测试工作组JTAG下载器发送的预设的硬件描述信息和IO分配信息;所述预设的硬件描述信息和IO分配信息通过所述联合测试工作组JTAG下载器下载获得;
所述联合测试工作组JTAG将所述预设的硬件描述信息和IO分配信息发送至所述现场可编程门阵列FPGA配置信息下载子模块;
所述现场可编程门阵列FPGA配置信息下载子模块接收所述联合测试工作组JTAG发送的预设的硬件描述信息和IO分配信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述预设的硬件描述信息和IO分配信息写入所述FPGA器件。
优选地,所述MCU芯片还包括系统总线,所述现场可编程门阵列FPGA配置信息下载子模块连接到所述系统总线上,所述将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中的步骤包括:
所述现场可编程门阵列FPGA配置信息下载子模块接收所述系统总线上传输的预设的硬件描述信息和IO分配信息;
将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
优选地,所述MCU芯片还包括闪存控制器,所述现场可编程门阵列FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中的步骤包括:
现场可编程门阵列FPGA配置信息下载子模块接收所述闪存控制器传输的预设的硬件描述信息和IO分配信息,所述预设的硬件描述信息和IO分配信息通过所述闪存控制器读取所述闪存芯片获得;
将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
依据本发明的实施例,公开了一种在MCU芯片中调试FPGA的装置,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块,所述现场可编程门阵列FPGA模块包括现场可编程门阵列FPGA器件,所述装置包括:
信息写入单元,用于将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
软件驱动程序生成单元,用于依据所述硬件描述信息生成对应的软件驱动程序;
IO引脚配置单元,用于依据所述IO分配信息配置所述FPGA器件的IO引脚;
软件驱动程序载入单元,用于将所述软件驱动程序载入到所述MCU芯片中;
软件驱动程序执行单元,用于对所述MCU芯片进行系统复位,执行所述软件驱动程序。
优选地,所述装置还包括:
调试正确结果获得单元,用于在执行所述软件驱动程序后的输出结果正确时,获得调试正确的结果;
硬件描述信息出错单元,用于在执行所述软件驱动程序后的输出结果不正确时,若硬件描述信息出现错误,则修改对应的硬件描述信息后,跳转至信息写入单元;
软件驱动程序出错单元,用于在执行所述软件驱动程序后的输出结果不正确时,若软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至软件驱动程序载入单元。
优选地,所述MCU芯片还包括闪存芯片,所述装置还包括:
信息保存单元,用于将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
在本发明的一种优选示例中,所述装置还包括:
代码获取单元,用于获取寄存器传输级RTL代码;
IO分配信息生成单元,用于依据所述寄存器传输级RTL代码分配所述FPGA器件的IO引脚,生成IO分配信息;
编译单元,用于将所述寄存器传输级RTL代码和IO分配信息按照所述FPGA器件的写入格式进行编译,生成预设的硬件描述信息和IO分配信息。
优选地,所述MCU芯片还包括静态随机存储器SRAM,所述SRAM连接在所述系统总线上,所述软件驱动程序载入单元包括:
第一软件驱动程序载入子单元,用于将所述软件驱动程序载入到所述SRAM;
所述软件驱动程序执行单元包括:
第一软件驱动程序执行子单元,用于对所述MCU芯片进行系统复位,从所述SRAM开始执行所述软件驱动程序。
优选地,所述MCU芯片还包括闪存芯片,所述软件驱动程序载入单元包括:
第二软件驱动程序载入子单元,用于将所述软件驱动程序载入到所述闪存芯片中;
所述软件驱动程序执行单元包括:
第二软件驱动程序执行子单元,用于对所述MCU芯片进行系统复位,从所述闪存芯片开始执行所述软件驱动程序。
优选地,所述MCU芯片还包括联合测试工作组JTAG,所述现场可编程门阵列FPGA配置信息下载子模块与联合测试工作组JTAG互连,所述信息写入单元包括:
位于联合测试工作组JTAG侧的第一信息接收子单元,用于所述联合测试工作组JTAG接收预设的联合测试工作组JTAG下载器发送的预设的硬件描述信息和IO分配信息;所述预设的硬件描述信息和IO分配信息通过所述联合测试工作组JTAG下载器下载获得;
位于联合测试工作组JTAG侧的第一信息发送子单元,用于将所述预设的硬件描述信息和IO分配信息发送至所述现场可编程门阵列FPGA配置信息下载子模块;
位于现场可编程门阵列FPGA配置信息下载子模块侧的第一信息接收子单元,用于接收所述联合测试工作组JTAG发送的预设的硬件描述信息和IO分配信息;
位于现场可编程门阵列FPGA配置信息下载子模块侧的第一信息写入子单元,用于将所述预设的硬件描述信息和IO分配信息写入所述FPGA器件。
优选地,所述MCU芯片还包括系统总线,所述现场可编程门阵列FPGA配置信息下载子模块连接到所述系统总线上,所述信息写入单元包括:
位于现场可编程门阵列FPGA配置信息下载子模块的第二信息接收子单元,用于接收所述系统总线上传输的预设的硬件描述信息和IO分配信息;
位于现场可编程门阵列FPGA配置信息下载子模块的第一信息格式化子单元,用于将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息;
位于现场可编程门阵列FPGA配置信息下载子模块的第二信息写入子单元,用于将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
优选地,所述MCU芯片还包括闪存控制器,所述现场可编程门阵列FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述信息写入单元包括:
位于现场可编程门阵列FPGA配置信息下载子模块的第三信息接收子单元,用于接收所述闪存控制器传输的预设的硬件描述信息和IO分配信息,所述预设的硬件描述信息和IO分配信息通过所述闪存控制器读取所述闪存芯片获得;
位于现场可编程门阵列FPGA配置信息下载子模块的第二信息格式化子单元,用于将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息;
位于现场可编程门阵列FPGA配置信息下载子模块的第三信息写入子单元,用于所述现场可编程门阵列FPGA配置信息下载子模块将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
与现有技术相比,本发明实施例包括以下优点:
本发明通过将预设的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件后,根据执行该硬件描述信息对应的软件驱动程序后的输出结果进行调试,可以保证预设的硬件描述信息及对应的软件驱动程序的准确性,使得FPGA器件得以正常工作,在MCU芯片中发挥烧录在FPGA器件中的功能,并且,通过调试可以及时发现并解决错误,减少FPGA器件在运行中出错的概率,提高MCU芯片的稳定性和准确性。
进一步的,本发明通过采用联合测试工作组JTAG的方式将数据信息烧录至FPGA器件中,联合测试工作组JTAG具有配套使用的设备以保证数据信息格式的要求,同时,操作还很简单,方便用户使用,配套使用的设备不占用MCU芯片的面积,从而可以降低成本。
进一步的,本发明通过采用系统总线的方式将数据信息烧录至FPGA器件中,使得系统总线上任意地址空间上的数据信息均可以烧录到FPGA器件中,采用系统总线的方式不需要增加额外的器件,从而可以降低成本。
更进一步的,本发明通过采用闪存控制器的方式将数据信息烧录至FPGA器件中,烧录的过程为MCU芯片自动执行,不需要用户做任何操作,由于闪存芯片具有断电数据信息不丢失的特点,因此,可以在断电的情况下保存数据信息。
附图说明
图1示出了本发明一种集成现场可编程门阵列FPGA模块的微控制单元MCU芯片的结构图;
图2示出了本发明一种微控制单元MCU芯片中现场可编程门阵列FPGA模块的结构图;
图3示出了本发明一种在MCU芯片中调试FPGA的方法实施例的步骤流程图;
图4示出了本发明一种在MCU芯片中调试FPGA的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明一种集成现场可编程门阵列FPGA模块的微控制单元MCU芯片的结构图。
如图1所示,所述MCU芯片集成有现场可编程门阵列FPGA模块,所述MCU芯片还包括:
CPU、系统总线、芯片IO控制模块以及时钟复位模块,其中,
所述CPU和所述FPGA模块分别连接在所述系统总线上;所述时钟复位与所述FPGA模块互连;
在实际应用中,CPU(Central Processing Unit,中央处理器),一般为IP核(Intellectual Property Core,知识产权核),所谓IP核,一般为某一方提供的、在芯片设计上的可重用模块。CPU是MCU芯片中运算与控制核心,可以执行软件编译完成的代码程序等,达到控制芯片中各部分合理运行的目的。
芯片IO控制可以是用于控制MCU芯片IO用途的模块,在本发明实施例中,芯片IO控制的主要作用可以是将MCU芯片IO配置成FPGA的IO或者普通的GPIO(General Purpose Input Output)。
时钟复位可以是提供MCU芯片时钟与复位的模块,时钟部分包括PLL(Phase Locked Loop,锁相环),用于提供各种频率的时钟(比如10MHZ~100MHZ)。在本发明实施例中,时钟复位部分还可以用于提供FPGA(Field-Programmable Gate Array,现场可编程门阵列)所需要的时钟和复位。
需要说明的是,在时钟复位中可以预留一些时钟,例如:高频时钟,低频时钟,与系统同频时钟等,还可以预留一些可配置的复位信号等,连接到FPGA IO配置子模块中,为FPGA器件中的逻辑提供时钟复位信号。
此外,系统总线同样可以预设一些保留地址空间,这些地址空间与MCU其他部分不冲突,这样CPU可以通过系统总线中的预设的保留地址空间访问FPGA器件中的逻辑。
在本发明实施例的一种优选示例中,所述芯片还包括直接存储器访问DMA,所述DMA连接在所述系统总线上。
DMA(Direct Memory Access,直接存储器访问),负责将数据从一个地址空间传输到另外一个地址空间,如果用CPU完成此项操作,则增加CPU大量的负载和中断资源,同时传输的效率和延时会增加。而DMA传输的速度和效率均比CPU好,因此DMA为MCU芯片中的重要组成部分。
需要说明的是,DMA中预设了一些DMA通道,通过将信号连接到FPGA IO配置模块,可以预留给FPGA模块使用。
在本发明实施例的一种优选示例中,所述芯片还包括静态随机存储器SRAM,所述SRAM连接在所述系统总线上;所述SRAM与所述闪存控制器互连。
SRAM(Static Random Access Memory,静态随机存储器),为标准IP。一般用于存储数据,断电后数据丢失,读写速度快,可实时读写。在本发明实施例中可以当做内存使用,存放CPU运行中临时数据,以及其他一些暂存数据,还可以复用成FPGA的SRAM使用。当FPGA需要用到SRAM,将其中部分空间当做FPGA的SRAM使用,这样在实现FPGA器件时,可以不需要实现SRAM,以减小面积,节约资源。
需要说明的是,SRAM在通用的MCU中,通常当成内存使用,在本发明实施例中,SRAM可以复用成FPGA模块的SRAM使用。假设SRAM的总大小为TOP_SIZE;用户在FPGA模块中需要使用SRAM,则用户需要分配好FPGA模块中需要使用SRAM的大小,以及内存需要使用的SRAM大小,总大小不能超过TOP_SIZE。假设用户配置FPGA中需要使用SRAM的大小为FPGA_SIZE(FPGA_SIZE小于TOP_SIZE),则内存可使用的SRAM大小为TOP_SIZE减FPGA_SIZE。在MCU芯片的SRAM设计实现时,需要设计两套访问SRAM的器件,一套用于MCU芯片访问内存使用,在本发明实施例中,用于MCU芯片访问内存时访问的地址空间为0~TOP_SIZE减FPGA_SIZE减1;另外一套用于FPGA模块使用的SRAM,访问的地址空间为TOP_SIZE减FPGA_SIZE~TOP_SIZE减1,此套访问SRAM的信号连接到FPGA IO配置模块。通过配置SRAM与FPGA器件相连接,可以实现FPGA器件中的逻辑访问SRAM的功能。如果将FPGA_SIZE设置成0,则所有的SRAM都用于内存。
在本发明实施例的一种优选示例中,所述MCU芯片还包括联合测试工作组JTAG,所述联合测试工作组JTAG与所述FPGA互连。
JTAG(Joint Test Action Group,联合测试工作组),是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。在本发明实施例中JTAG可以用于配置FPGA器件。
在本发明实施例的一种优选示例中,所述芯片还包括闪存控制器,所述闪存控制器与所述FPGA互连。
闪存控制器,为闪存芯片与MCU芯片的接口,可以将闪存芯片中的程序数据读取到MCU芯片中,用于CPU执行程序,也可以将FPGA的配置信息读取到FPGA模块中,用于配置FPGA器件。同时,闪存控制器还可以用于擦写闪存芯片中的数据。
在本发明实施例的一种优选示例中,所述芯片还包括闪存芯片,所述闪存芯片与所述闪存控制器互连。
闪存芯片,具有可读,可擦写,断电数据不丢失的特点,但读写速度慢,并且大部分时间是在读取数据,在MCU芯片中主要用于程序存储以及一些常量数据的存储,在本发明实施例中,闪存芯片还可以用于存储FPGA器件的配置信息。因此,在MCU芯片上电后可以自动读取闪存芯片中存储的配置信息,自动的将该配置信息烧录到FPGA器件中。为了让MCU芯片更加小巧,可以采用MCP(Multiple Chip Package,多芯片封装)技术将MCU芯片与闪存芯片制造在同一个封装内。
在本发明实施例的一种优选示例中,所述芯片还包括设备集,所述设备集连接在所述系统总线上。
设备集:在MCU芯片中,一般会包含多种外设,常用的比如SPI(SerialPeripheral Interface,串行外设接口)、UART(Universal AsynchronousReceiver/Transmitter,通用异步收发传输器)、I2C(Inter-IntegratedCircuit),一种两线式串行总线,USB(Universal Serial Bus,通用串行总线)等等,有时一种外设可能会包含多个,比如3个SPI。设备集即包含所有这些外设的集合。
参照图2,示出了本发明一种微控制单元MCU芯片中现场可编程门阵列FPGA模块的结构图。
如图2所示,所述FPGA模块设置有现场可编程门阵列FPGA器件和现场可编程门阵列FPGA IO配置子模块,所述FPGA器件和所述FPGA IO配置子模块各自包括内部IO引脚,所述FPGA器件的内部IO引脚与所述FPGA IO配置子模块的内部IO引脚互连,所述FPGA器件和所述FPGA IO配置子模块之间通过互连的内部IO引脚对进行内部相互通信;
所述FPGA IO配置子模块与所述芯片IO控制对应的IO引脚相连,所述芯片IO控制连接到预设的外接设备上;
所述FPGA器件中的外接信号通过互连的内部IO引脚传输到所述FPGAIO配置子模块中,再通过相连的对应的IO引脚传输到所述芯片IO控制中,之后传输到所述外接设备中。
所述现场可编程门阵列FPGA还包括现场可编程门阵列FPGA配置信息下载子模块、配置寄存器,其中,
所述FPGA配置信息下载子模块中IO引脚的输出端与所述FPGA器件中IO引脚的输入端相连,所述FPGA器件中IO引脚的输出端与所述FPGAIO配置子模块中IO引脚的输入端相连,所述配置寄存器中IO引脚的输出端与所述FPGA IO配置子模块中IO引脚的输入端相连,所述配置寄存器中IO引脚的输入端连接在所述系统总线上。
在具体应用中,FPGA配置信息下载子模块可以用于配置FPGA器件,将MCU芯片提供的配置信息,转化成用于FPGA器件配置下载的标准数据格式的配置信息,即符合JTAG协议的数据格式的配置信息,通过FPGA配置信息下载子模块烧录FPAG器件的通路,从FPGA器件固定的端口将配置信息配置下载到FPGA器件中,因此,将FPGA器件中的可编程逻辑转化成专用逻辑,以达到实现该专用逻辑对应的专用功能的目的。
配置寄存器:主要包括一系列寄存器,由系统总线配置,这些寄存器通过从配置寄存器到FPGA IO配置子模块的数据通路,对FPGA的IO进行配置,将FPGA模块的IO与MCU芯片连接。
FPGA IO配置模块与MCU芯片中其他元件的信号连接可以用于共用MCU芯片中的部分电路,以减少MCU芯片的面积。
本发明实施例的核心构思之一在于,在集成有现场可编程门阵列FPGA的微控制单元MCU芯片中建立一种调试机制,即将预设的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件后,根据执行该硬件描述信息对应的软件驱动程序后的输出结果进行调试。因此,可以保证预设的硬件描述信息及对应的软件驱动程序的准确性,使得FPGA器件得以正常工作,在MCU芯片中发挥烧录在FPGA器件中的功能,并且,通过调试可以及时发现并解决错误,减少FPGA器件在运行中出错的概率,提高MCU芯片的稳定性和准确性。
参照图3,示出了本发明一种在MCU芯片中调试FPGA的方法实施例的步骤流程图,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块,所述现场可编程门阵列FPGA模块包括现场可编程门阵列FPGA器件,具体可以包括如下步骤:
步骤301,将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
在具体应用中,硬件描述信息可以是通过硬件描述语言对FPGA编写的RTL(Register-Transfer-Level,寄存器传输级)代码,与普通的通过硬件描述语言设计电路一致。
IO分配信息可以是设计RTL代码时的顶层端口分配到FPGA的IO上的信息,由于FPGA是实现在MCU芯片上的,FPGA的IO最终是通过MCU芯片的IO,或者,通过MCU芯片内部配置到FPGA IO的关键信号来实现。
现场可编程门阵列FPGA器件一般包含大量的LUT(Look-Up-Table,查找表),实现组合逻辑电路,触发器,实现时序逻辑电路,还包含一定数量的Memory(内存),DCM(Digital Clock Manager,数字时钟管理器),用于产生时钟,乘法器,以及IO buffer(输入输出缓冲器)。
将硬件描述信息和IO分配信息写入FPGA器件中,FPGA器件可以组成具有所需功能的逻辑电路。
在本发明实施例的一种优选示例中,所述预置的硬件描述信息包括寄存器传输级RTL代码,在所述将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的步骤之前,还包括以下步骤:
获取寄存器传输级RTL代码;
依据所述寄存器传输级RTL代码分配所述FPGA器件的IO引脚,生成IO分配信息;
在FPGA IO分配时,可以是将RTL代码的顶层端口分配到FPGA的IO上。
需要注意的是,FPGA器件的IO引脚要与MCU芯片的IO分配相适应,例如,在RTL设计的顶层端口上需要用到MCU的系统总线,则这些总线信号,需要分配到FPGA的总线IO上。所谓FPGA的总线IO,是指将预设好的部分FPGA的IO,通过配置寄存器,配置成与系统总线信号连接,这样可实现通过CPU控制FPGA模块中的电路。
将所述寄存器传输级RTL代码和IO分配信息按照所述FPGA器件的写入格式进行编译,生成预设的硬件描述信息和IO分配信息。
作为本发明具体实现的一种示例,设计好的RTL代码和IO分配信息可以通过FPGA的编译工具编译成用于配置FPGA器件的数据信息。
在本发明实施例的一种优选示例中,所述MCU芯片还包括联合测试工作组JTAG,所述现场可编程门阵列FPGA配置信息下载子模块与联合测试工作组JTAG互连,所述步骤301具体可以包括以下子步骤:
子步骤S11,所述联合测试工作组JTAG接收预设的联合测试工作组JTAG下载器发送的预设的硬件描述信息和IO分配信息;所述预设的硬件描述信息和IO分配信息通过所述联合测试工作组JTAG下载器下载获得;
作为本发明具体应用的一种示例,JTAG是一种国际标准测试协议(IEEE1149.1兼容),可以用于芯片内部测试。在本发明实施例中可以采用JTAG配置下载FPGA器件。
联合测试工作组JTAG下载器可以按照国际标准测试协议的要求下载数据信息,这种下载方式为FPGA器件提供的标准下载方式,可以称为JTAG下载。
联合测试工作组JTAG下载器下载预设的硬件描述信息和IO分配信息后,通过将MCU芯片外预设的JTAG下载器,连接到MCU芯片中的联合测试工作组JTAG,可以将该预设的硬件描述信息和IO分配信息发送给JTAG。
子步骤S12,所述联合测试工作组JTAG将所述预设的硬件描述信息和IO分配信息发送至所述现场可编程门阵列FPGA配置信息下载子模块;
联合测试工作组JTAG通过数据通路2,即JTAG与FPGA配置信息下载子模块的数据通路,连接到FPGA配置信息下载子模块,可以将预设的硬件描述信息和IO分配信息发送至所述现场可编程门阵列FPGA配置信息下载子模块。
子步骤S13,所述现场可编程门阵列FPGA配置信息下载子模块接收所述联合测试工作组JTAG发送的预设的硬件描述信息和IO分配信息。
通过数据通路2,即JTAG与FPGA配置信息下载子模块的数据通路,现场可编程门阵列FPGA配置信息下载子模块即可以接收到联合测试工作组JTAG发送的数据信息。
需要说明的是,在实际应用中,在MCU芯片外,还可以通过USB转JTAG设备,例如J-Link仿真器,J-Link仿真器一端连接USB,另一端连接JTAG,将USB信号转换成JTAG信号接到MCU芯片上,实现USB配置下载FPGA,或者,通过串口转JTAG设备,实现串口配置下载FPGA。
子步骤S14,所述现场可编程门阵列FPGA配置信息下载子模块将所述预设的硬件描述信息和IO分配信息写入所述FPGA器件。
在具体实现中,现场可编程门阵列FPGA配置信息下载子模块通过数据通路1,即FPGA配置信息下载子模块烧录FPAG器件的数据通路,将所述预设的硬件描述信息和IO分配信息写入所述FPGA器件中,即可以配置FPGA器件。
本发明通过采用联合测试工作组JTAG的方式将数据信息烧录至FPGA器件中,联合测试工作组JTAG具有配套使用的设备以保证数据信息格式的要求,同时,操作还很简单,方便用户使用,配套使用的设备不占用MCU芯片的面积,从而可以降低成本。
在本发明实施例的另一种优选示例中,所述MCU芯片还包括系统总线,所述现场可编程门阵列FPGA配置信息下载子模块连接到所述系统总线上,所述步骤301具体可以包括以下子步骤:
子步骤S21,所述现场可编程门阵列FPGA配置信息下载子模块接收所述系统总线上传输的预设的硬件描述信息和IO分配信息;
在具体实现中,系统总线上连接了MCU芯片的CPU等元件,这种通过系统总线配置FPGA的方式可以称为软件下载,即通过CPU或DMA数据调度,从MCU芯片中其他地址空间(比如SRAM)中将数据读取,通过系统总线,通过数据接口3,即系统总线与FPGA配置信息下载子模块的数据通路,载入到FPGA配置信息下载子模块。
子步骤S22,将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息。
在FPGA配置信息下载子模块中,需要将数据转化成FPGA器件可配置下载的标准数据格式,即一种符合JTAG协议的数据格式,再通过数据通路1,即FPGA配置信息下载子模块烧录FPAG器件的数据通路,配置下载FPGA器件。
需要说明的是,任意总线地址空间上数据,均可以配置下载FPGA器件。如果MCU芯片中设备集装置包括SPI,则可实现SPI下载FPGA,如果设备集中包括串口,则可实现串口下载FPGA,以此类推。
子步骤S23,所述现场可编程门阵列FPGA配置信息下载子模块将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
在具体实现中,现场可编程门阵列FPGA配置信息下载子模块通过数据通路1,即FPGA配置信息下载子模块烧录FPAG器件的数据通路,将所述预设的硬件描述信息和IO分配信息写入所述FPGA器件中,即可以配置FPGA器件。
本发明通过采用系统总线的方式将数据信息烧录至FPGA器件中,使得系统总线上任意地址空间上的数据信息均可以烧录到FPGA器件中,采用系统总线的方式不需要增加额外的器件,从而可以降低成本。
在本发明实施例的另一种优选示例中,所述MCU芯片还包括闪存控制器,所述现场可编程门阵列FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述步骤301具体可以包括以下子步骤:
子步骤S31,现场可编程门阵列FPGA配置信息下载子模块接收所述闪存控制器传输的预设的硬件描述信息和IO分配信息,所述预设的硬件描述信息和IO分配信息通过所述闪存控制器读取所述闪存芯片获得;
在实际应用中,闪存控制器可以连接闪存芯片,闪存芯片具有掉电数据信息不丢失的特点,FPGA器件为现场可编程器件,掉电后数据信息将丢失,因此,将FPGA的数据信息保存到闪存芯片中,可以达到数据信息掉电不丢失的效果。这种配置FPGA器件的方式可以称为闪存下载。
MCU芯片上电后,闪存控制器自动读取闪存芯片中保存的数据信息,通过数据通路4,即闪存控制器与FPGA配置信息下载子模块的数据通路,将数据信息载入FPGA配置信息下载子模块。
需要说明的是,闪存下载需要将预设的硬件描述信息和IO分配信息通过闪存控制器擦写到闪存芯片中,然后MCU芯片重新上电自动读取预设的硬件描述信息和IO分配信息。
子步骤S32,将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息。
子步骤S33,所述现场可编程门阵列FPGA配置信息下载子模块将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
在具体实现中,MCU芯片上电后,闪存控制器自动读取闪存芯片中保存的预设的硬件描述信息和IO分配信息,通过数据通路4,即闪存控制器与FPGA配置信息下载子模块的数据通路,将数据信息载入FPGA配置信息下载子模块,在FPGA配置信息下载子模块中,需要将预设的硬件描述信息和IO分配信息转化成FPGA器件可配置下载的标准数据格式,即一种符合JTAG协议的数据格式,再通过数据通路1,即FPGA配置信息下载子模块烧录FPAG器件的数据通路,配置下载FPGA器件。
本发明通过采用闪存控制器的方式将数据信息烧录至FPGA器件中,烧录的过程为MCU芯片自动执行,不需要用户做任何操作,由于闪存芯片具有断电数据信息不丢失的特点,因此,可以在断电的情况下保存数据信息。
步骤302,依据所述硬件描述信息生成对应的软件驱动程序;
在实际应用中,硬件电路需要与软件驱动程序配合才能正常工作。
步骤303,依据所述IO分配信息配置所述FPGA器件的IO引脚;
在具体实现中,在软件驱动程序设计中,IO的配置需要与IO分配信息配合。例如:IO分配信息中,将RTL代码的总线信号分配到FPGA器件的总线IO部分,则在软件驱动程序设计时,需要将FPGA器件的总线IO通过FPGA IO配置子模块配置成与系统总线连接。
步骤304,将所述软件驱动程序载入到所述MCU芯片中;
软件驱动程序可以通过系统总线载入到MCU芯片中。
步骤305,对所述MCU芯片进行系统复位,执行所述软件驱动程序;
当RTL代码和软件驱动程序都准备好,并载入到MCU芯片中时,MCU芯片需要进行一次系统复位,让软件驱动程序从起始位置开始执行,系统总线读取软件驱动程序到CPU中,CPU执行每条指令。。在实际应用中,系统复位将CPU的指针指向0地址,程序从0地址开始执行软件驱动程序。
需要说明的是,在实际的MCU芯片中,有一些特殊寄存器,以及记录实际时间的RTC(Real-Time Clock,实时时钟)等没有复位。
在本发明实施例的一种优选示例中,MCU芯片还包括静态随机存储器SRAM,所述SRAM连接在所述系统总线上,所述步骤304具体可以包括:
子步骤S41,将所述软件驱动程序载入到所述SRAM;
当MCU芯片中存在SRAM(Static Random Access Memory,静态随机存储器)时,可以将软件驱动程序载入到所述SRAM。
SRAM为标准IP核(Intellectual Property Core,知识产权核)。SRAM一般用于存储数据,断电后数据丢失,读写速度快,可实时读写。在本发明实施例中可以当做内存使用,存放CPU运行中临时数据,以及其他一些暂存数据,还可以复用成FPGA的SRAM使用。当FPGA需要用到SRAM,将其中部分空间当做FPGA的SRAM使用,这样在实现FPGA器件时,可以不需要实现SRAM,以减小面积,节约资源。
所述步骤305具体可以包括以下子步骤:
子步骤S51,对所述MCU芯片进行系统复位,从所述SRAM开始执行所述软件驱动程序。
当软件驱动程序载入到MCU芯片的SRAM时,软件驱动程序从SRAM开始执行。
在本发明实施例的另一种优选示例中,所述MCU芯片还包括闪存芯片,所述步骤304具体可以包括如下子步骤:
子步骤S61,将所述软件驱动程序载入到所述闪存芯片中;
闪存芯片,具有可读,可擦写,断电数据不丢失的特点,但读写速度慢,并且大部分时间是在读取数据,在MCU芯片中主要用于程序存储以及一些常量数据的存储,在本发明实施例中,闪存芯片还可以用于存储FPGA器件的软件驱动程序。
闪存芯片与闪存控制器相连,闪存控制器连接在系统总线上,因此,软件驱动程序可以通过系统总线传输到闪存控制器中,再通过闪存控制器与闪存芯片的通路载入到闪存芯片中。
所述步骤305具体可以包括以下子步骤:
子步骤S71,对所述MCU芯片进行系统复位,从所述闪存芯片开始执行所述软件驱动程序。
当软件驱动程序写入到闪存芯片时,软件驱动程序从闪存芯片开始执行。
步骤306,执行所述软件驱动程序后的输出结果正确,获得调试正确的结果;
在具体实现中,可以通过一些测试手段检查硬件与软件的行为是否正确,执行软件驱动程序后的输出结果根据软件驱动程序的内容而定,例如,I2C的软件驱动程序中,CPU执行程序后,通过系统总线配置IO,设置I2C的时钟复位,以及I2C外设本身的寄存器等,设置完成之后启动I2C开始数据传输,测试手段包括传输的数据是否正确来确定。
需要说明的是,MCU芯片中FPGA模块的调试和检测错误可以根据软件驱动程序设计的内容,自主确定调试和检测错误的方式。FPGA模块还可以通过一些仿真软件(如ModelSim)等手段协助调试。
在本发明实施例的一种优选示例中,所述硬件描述信息出现错误时,则修改对应的硬件描述信息后,跳转至将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的步骤;
如果硬件的行为有错误,则需要对硬件描述信息进行修改,修改完成后,返回到将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的步骤,重新进行一次调试流程。
在本发明实施例的一种优选示例中,软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至将所述软件驱动程序载入到所述MCU芯片中的步骤。
如果软件的行为有错误,则需要对软件驱动程序进行修改,修改完成后,返回到将所述软件驱动程序载入到所述MCU芯片中的步骤,重新进行一次调试流程。
步骤307,将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
当硬件和软件所有的行为均正确之后,将硬件描述信息和软件驱动程序下载到闪存芯片保存,其中,可以将信息硬件描述信息保存到闪存芯片中的FPGA配置信息下载空间,将软件驱动程序保存到闪存芯片中的程序数据信息空间。由于闪存芯片断电数据不丢失,因此在下次上电后自动执行程序,自动将硬件描述信息和软件驱动程序烧录到FPGA器件中。
本发明通过将预设的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件后,根据执行该硬件描述信息对应的软件驱动程序后的输出结果进行调试,可以保证预设的硬件描述信息及对应的软件驱动程序的准确性,使得FPGA器件得以正常工作,在MCU芯片中发挥烧录在FPGA器件中的功能,并且,通过调试可以及时发现并解决错误,减少FPGA器件在运行中出错的概率,提高MCU芯片的稳定性和准确性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明一种在MCU芯片中调试FPGA的装置实施例的结构框图,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块,所述现场可编程门阵列FPGA模块包括现场可编程门阵列FPGA器件,具体可以包括如下单元:
信息写入单元401,用于将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
软件驱动程序生成单元402,用于依据所述硬件描述信息生成对应的软件驱动程序;
IO引脚配置单元403,用于依据所述IO分配信息配置所述FPGA器件的IO引脚;
软件驱动程序载入单元404,用于将所述软件驱动程序载入到所述MCU芯片中;
软件驱动程序执行单元405,用于对所述MCU芯片进行系统复位,执行所述软件驱动程序。
在本发明的一种优选示例中,所述装置还可以包括:
调试正确结果获得单元,用于在执行所述软件驱动程序后的输出结果正确时,获得调试正确的结果;
硬件描述信息出错单元,用于在执行所述软件驱动程序后的输出结果不正确时,若硬件描述信息出现错误,则修改对应的硬件描述信息后,跳转至信息写入单元401;
软件驱动程序出错单元,用于在执行所述软件驱动程序后的输出结果不正确时,若软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至软件驱动程序载入单元404。
在本发明的一种优选示例中,所述MCU芯片还包括闪存芯片,所述装置还包括:
信息保存单元,用于将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
在本发明的一种优选示例中,所述装置还包括:
代码获取单元,用于获取寄存器传输级RTL代码;
IO分配信息生成单元,用于依据所述寄存器传输级RTL代码分配所述FPGA器件的IO引脚,生成IO分配信息;
编译单元,用于将所述寄存器传输级RTL代码和IO分配信息按照所述FPGA器件的写入格式进行编译,生成预设的硬件描述信息和IO分配信息。
在本发明的一种优选示例中,所述MCU芯片还包括静态随机存储器SRAM,所述SRAM连接在所述系统总线上,所述软件驱动程序载入单元404可以包括:
第一软件驱动程序载入子单元,用于将所述软件驱动程序载入到所述SRAM;
所述软件驱动程序执行单元405可以包括:
第一软件驱动程序执行子单元,用于对所述MCU芯片进行系统复位,从所述SRAM开始执行所述软件驱动程序。
在本发明的一种优选示例中,所述MCU芯片还包括闪存芯片,所述软件驱动程序载入单元404可以包括:
第二软件驱动程序载入子单元,用于将所述软件驱动程序载入到所述闪存芯片中;
所述软件驱动程序执行单元405可以包括:
第二软件驱动程序执行子单元,用于对所述MCU芯片进行系统复位,从所述闪存芯片开始执行所述软件驱动程序。
在本发明的一种优选示例中,所述MCU芯片还包括联合测试工作组JTAG,所述现场可编程门阵列FPGA配置信息下载子模块与联合测试工作组JTAG互连,所述信息写入单元401包括:
位于联合测试工作组JTAG侧的第一信息接收子单元,用于所述联合测试工作组JTAG接收预设的联合测试工作组JTAG下载器发送的预设的硬件描述信息和IO分配信息;所述预设的硬件描述信息和IO分配信息通过所述联合测试工作组JTAG下载器下载获得;
位于联合测试工作组JTAG侧的第一信息发送子单元,用于将所述预设的硬件描述信息和IO分配信息发送至所述现场可编程门阵列FPGA配置信息下载子模块;
位于现场可编程门阵列FPGA配置信息下载子模块侧的第一信息接收子单元,用于接收所述联合测试工作组JTAG发送的预设的硬件描述信息和IO分配信息;
位于现场可编程门阵列FPGA配置信息下载子模块侧的第一信息写入子单元,用于将所述预设的硬件描述信息和IO分配信息写入所述FPGA器件。
在本发明的一种优选示例中,所述MCU芯片还包括系统总线,所述现场可编程门阵列FPGA配置信息下载子模块连接到所述系统总线上,所述信息写入单元401包括:
位于现场可编程门阵列FPGA配置信息下载子模块的第二信息接收子单元,用于接收所述系统总线上传输的预设的硬件描述信息和IO分配信息;
位于现场可编程门阵列FPGA配置信息下载子模块的第一信息格式化子单元,用于将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息;
位于现场可编程门阵列FPGA配置信息下载子模块的第二信息写入子单元,用于将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
在本发明的一种优选示例中,所述MCU芯片还包括闪存控制器,所述现场可编程门阵列FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述信息写入单元401包括:
位于现场可编程门阵列FPGA配置信息下载子模块的第三信息接收子单元,用于接收所述闪存控制器传输的预设的硬件描述信息和IO分配信息,所述预设的硬件描述信息和IO分配信息通过所述闪存控制器读取所述闪存芯片获得;
位于现场可编程门阵列FPGA配置信息下载子模块的第二信息格式化子单元,用于将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息;
位于现场可编程门阵列FPGA配置信息下载子模块的第三信息写入子单元,用于所述现场可编程门阵列FPGA配置信息下载子模块将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种在MCU芯片中调试FPGA的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种在MCU芯片中调试FPGA的方法,其特征在于,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块,所述现场可编程门阵列FPGA模块包括现场可编程门阵列FPGA器件,所述方法包括:
将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
依据所述硬件描述信息生成对应的软件驱动程序;
依据所述IO分配信息配置所述FPGA器件的IO引脚;
将所述软件驱动程序载入到所述MCU芯片中;
对所述MCU芯片进行系统复位,执行所述软件驱动程序。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当执行所述软件驱动程序后的输出结果正确时,则获得调试正确的结果;
当执行所述软件驱动程序后的输出结果不正确时,
若硬件描述信息出现错误,则修改对应的硬件描述信息后,跳转至将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的步骤;
若软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至将所述软件驱动程序载入到所述MCU芯片中的步骤。
3.根据权利要求1所述的方法,其特征在于,所述MCU芯片还包括闪存芯片,在当执行所述软件驱动程序后的输出结果正确时,则获得调试正确的结果的步骤之后,还包括:
将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
4.根据权利要求1或2或3所述的方法,其特征在于,所述预置的硬件描述信息包括寄存器传输级RTL代码,在所述将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的步骤之前,还包括:
获取寄存器传输级RTL代码;
依据所述寄存器传输级RTL代码分配所述FPGA器件的IO引脚,生成IO分配信息;
将所述寄存器传输级RTL代码和IO分配信息按照所述FPGA器件的写入格式进行编译,生成预设的硬件描述信息和IO分配信息。
5.根据权利要求4所述的方法,其特征在于,所述MCU芯片还包括静态随机存储器SRAM,所述SRAM连接在所述系统总线上,所述将所述软件驱动程序载入到所述MCU芯片中的步骤包括:
将所述软件驱动程序载入到所述SRAM;
所述对所述MCU芯片进行系统复位,执行所述软件驱动程序的步骤包括:
对所述MCU芯片进行系统复位,从所述SRAM开始执行所述软件驱动程序。
6.根据权利要求4所述的方法,其特征在于,所述MCU芯片还包括闪存芯片,所述将所述软件驱动程序载入到所述MCU芯片中的步骤包括:
将所述软件驱动程序载入到所述闪存芯片中;
所述对所述MCU芯片进行系统复位,执行所述软件驱动程序的步骤包括:
对所述MCU芯片进行系统复位,从所述闪存芯片开始执行所述软件驱动程序。
7.根据权利要求4所述的方法,其特征在于,所述MCU芯片还包括联合测试工作组JTAG,所述现场可编程门阵列FPGA配置信息下载子模块与联合测试工作组JTAG互连,所述将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中的步骤包括:
所述联合测试工作组JTAG接收预设的联合测试工作组JTAG下载器发送的预设的硬件描述信息和IO分配信息;所述预设的硬件描述信息和IO分配信息通过所述联合测试工作组JTAG下载器下载获得;
所述联合测试工作组JTAG将所述预设的硬件描述信息和IO分配信息发送至所述现场可编程门阵列FPGA配置信息下载子模块;
所述现场可编程门阵列FPGA配置信息下载子模块接收所述联合测试工作组JTAG发送的预设的硬件描述信息和IO分配信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述预设的硬件描述信息和IO分配信息写入所述FPGA器件。
8.根据权利要求4所述的方法,其特征在于,所述MCU芯片还包括系统总线,所述现场可编程门阵列FPGA配置信息下载子模块连接到所述系统总线上,所述将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中的步骤包括:
所述现场可编程门阵列FPGA配置信息下载子模块接收所述系统总线上传输的预设的硬件描述信息和IO分配信息;
将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
9.根据权利要求4所述的方法,其特征在于,所述MCU芯片还包括闪存控制器,所述现场可编程门阵列FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中的步骤包括:
现场可编程门阵列FPGA配置信息下载子模块接收所述闪存控制器传输的预设的硬件描述信息和IO分配信息,所述预设的硬件描述信息和IO分配信息通过所述闪存控制器读取所述闪存芯片获得;
将所述预设的硬件描述信息和IO分配信息进行格式化,生成标准数据格式的预设的硬件描述信息和IO分配信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述标准数据格式的预设的硬件描述信息和IO分配信息写入所述FPGA器件。
10.一种在MCU芯片中调试FPGA的装置,其特征在于,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块,所述现场可编程门阵列FPGA模块包括现场可编程门阵列FPGA器件,所述装置包括:
信息写入单元,用于将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
软件驱动程序生成单元,用于依据所述硬件描述信息生成对应的软件驱动程序;
IO引脚配置单元,用于依据所述IO分配信息配置所述FPGA器件的IO引脚;
软件驱动程序载入单元,用于将所述软件驱动程序载入到所述MCU芯片中;
软件驱动程序执行单元,用于对所述MCU芯片进行系统复位,执行所述软件驱动程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410223042.1A CN104050068B (zh) | 2014-05-23 | 2014-05-23 | 在mcu芯片中调试fpga的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410223042.1A CN104050068B (zh) | 2014-05-23 | 2014-05-23 | 在mcu芯片中调试fpga的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104050068A true CN104050068A (zh) | 2014-09-17 |
CN104050068B CN104050068B (zh) | 2016-06-15 |
Family
ID=51502957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410223042.1A Active CN104050068B (zh) | 2014-05-23 | 2014-05-23 | 在mcu芯片中调试fpga的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104050068B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105699884A (zh) * | 2016-01-13 | 2016-06-22 | 深圳市博巨兴实业发展有限公司 | 一种基于mcu的多芯片封装测试方法 |
CN107902507A (zh) * | 2017-11-11 | 2018-04-13 | 林光琴 | 控制软件现场调试系统以及调试方法 |
CN109672879A (zh) * | 2018-12-14 | 2019-04-23 | 上海集成电路研发中心有限公司 | 一种调试图像传感器的装置和方法 |
CN111611013A (zh) * | 2020-04-30 | 2020-09-01 | 京微齐力(北京)科技有限公司 | 一种支持多镜像的fpga硬启动方法及装置 |
CN112329366A (zh) * | 2020-12-04 | 2021-02-05 | 国微集团(深圳)有限公司 | 一种提高仿真效率的soc系统验证方法、装置及系统 |
CN112347429A (zh) * | 2019-08-06 | 2021-02-09 | 天津光电通信技术有限公司 | 一种防止fpga程序泄密的方法、装置、fpga及存储介质 |
CN112860237A (zh) * | 2021-02-09 | 2021-05-28 | 广州思林杰科技股份有限公司 | 一种测控固件生成方法、装置、计算机设备及存储介质 |
CN112882715A (zh) * | 2021-02-09 | 2021-06-01 | 广州思林杰科技股份有限公司 | 一种测控装置定义方法、计算机及可定义的测控装置 |
CN112905235A (zh) * | 2021-03-12 | 2021-06-04 | 北京集睿致远科技有限公司 | 一种mcu程序执行方法和芯片 |
CN113010188A (zh) * | 2021-02-09 | 2021-06-22 | 广州思林杰科技股份有限公司 | 模块化测控系统生成方法、装置、计算机设备及存储器 |
CN114637538A (zh) * | 2020-12-15 | 2022-06-17 | 技嘉科技股份有限公司 | 基板管理控制系统、电子装置以及基板管理控制方法 |
CN116521468A (zh) * | 2023-07-05 | 2023-08-01 | 西安智多晶微电子有限公司 | 一种fpga在线调试方法及支持在线调试的fpga |
CN117407234A (zh) * | 2023-12-14 | 2024-01-16 | 西安智多晶微电子有限公司 | 一种基于vio的fpga实时调试系统和方法 |
CN109542838B (zh) * | 2018-12-29 | 2024-04-30 | 西安智多晶微电子有限公司 | 一种支持多比特流下载的fpga及其系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002057921A1 (en) * | 2001-01-19 | 2002-07-25 | Hitachi,Ltd | Electronic circuit device |
CN1991784A (zh) * | 2005-12-30 | 2007-07-04 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
CN101771663A (zh) * | 2008-12-29 | 2010-07-07 | 上海华虹集成电路有限责任公司 | 基于ucps协议的验证系统 |
-
2014
- 2014-05-23 CN CN201410223042.1A patent/CN104050068B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002057921A1 (en) * | 2001-01-19 | 2002-07-25 | Hitachi,Ltd | Electronic circuit device |
CN1991784A (zh) * | 2005-12-30 | 2007-07-04 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
CN101771663A (zh) * | 2008-12-29 | 2010-07-07 | 上海华虹集成电路有限责任公司 | 基于ucps协议的验证系统 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105699884A (zh) * | 2016-01-13 | 2016-06-22 | 深圳市博巨兴实业发展有限公司 | 一种基于mcu的多芯片封装测试方法 |
CN107902507A (zh) * | 2017-11-11 | 2018-04-13 | 林光琴 | 控制软件现场调试系统以及调试方法 |
CN107902507B (zh) * | 2017-11-11 | 2021-05-04 | 林光琴 | 控制软件现场调试系统以及调试方法 |
CN109672879A (zh) * | 2018-12-14 | 2019-04-23 | 上海集成电路研发中心有限公司 | 一种调试图像传感器的装置和方法 |
CN109672879B (zh) * | 2018-12-14 | 2020-12-25 | 上海集成电路研发中心有限公司 | 一种调试图像传感器的装置和方法 |
CN109542838B (zh) * | 2018-12-29 | 2024-04-30 | 西安智多晶微电子有限公司 | 一种支持多比特流下载的fpga及其系统 |
CN112347429A (zh) * | 2019-08-06 | 2021-02-09 | 天津光电通信技术有限公司 | 一种防止fpga程序泄密的方法、装置、fpga及存储介质 |
CN111611013A (zh) * | 2020-04-30 | 2020-09-01 | 京微齐力(北京)科技有限公司 | 一种支持多镜像的fpga硬启动方法及装置 |
CN111611013B (zh) * | 2020-04-30 | 2023-12-22 | 京微齐力(北京)科技有限公司 | 一种支持多镜像的fpga硬启动方法及装置 |
CN112329366A (zh) * | 2020-12-04 | 2021-02-05 | 国微集团(深圳)有限公司 | 一种提高仿真效率的soc系统验证方法、装置及系统 |
CN114637538A (zh) * | 2020-12-15 | 2022-06-17 | 技嘉科技股份有限公司 | 基板管理控制系统、电子装置以及基板管理控制方法 |
CN114637538B (zh) * | 2020-12-15 | 2024-03-22 | 技钢科技股份有限公司 | 基板管理控制系统、电子装置以及基板管理控制方法 |
CN112860237A (zh) * | 2021-02-09 | 2021-05-28 | 广州思林杰科技股份有限公司 | 一种测控固件生成方法、装置、计算机设备及存储介质 |
CN112860237B (zh) * | 2021-02-09 | 2021-12-28 | 广州思林杰科技股份有限公司 | 一种测控固件生成方法、装置、计算机设备及存储介质 |
CN113010188B (zh) * | 2021-02-09 | 2021-12-28 | 广州思林杰科技股份有限公司 | 模块化测控系统生成方法、装置、计算机设备及存储器 |
CN113010188A (zh) * | 2021-02-09 | 2021-06-22 | 广州思林杰科技股份有限公司 | 模块化测控系统生成方法、装置、计算机设备及存储器 |
CN112882715A (zh) * | 2021-02-09 | 2021-06-01 | 广州思林杰科技股份有限公司 | 一种测控装置定义方法、计算机及可定义的测控装置 |
CN112905235A (zh) * | 2021-03-12 | 2021-06-04 | 北京集睿致远科技有限公司 | 一种mcu程序执行方法和芯片 |
CN112905235B (zh) * | 2021-03-12 | 2023-08-01 | 北京集睿致远科技有限公司 | 一种mcu程序执行方法和芯片 |
CN116521468B (zh) * | 2023-07-05 | 2023-09-15 | 西安智多晶微电子有限公司 | 一种fpga在线调试方法及支持在线调试的fpga |
CN116521468A (zh) * | 2023-07-05 | 2023-08-01 | 西安智多晶微电子有限公司 | 一种fpga在线调试方法及支持在线调试的fpga |
CN117407234A (zh) * | 2023-12-14 | 2024-01-16 | 西安智多晶微电子有限公司 | 一种基于vio的fpga实时调试系统和方法 |
CN117407234B (zh) * | 2023-12-14 | 2024-03-19 | 西安智多晶微电子有限公司 | 一种基于vio的fpga实时调试系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104050068B (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050068A (zh) | 在mcu芯片中调试fpga的方法和装置 | |
CN104050067B (zh) | Fpga在mcu芯片中工作的方法和装置 | |
JP7121076B2 (ja) | マルチプロセッサ組込みシステム上でのアプリケーションの動的再構成 | |
CN102508753B (zh) | Ip核验证系统 | |
US9703579B2 (en) | Debug environment for a multi user hardware assisted verification system | |
CN101504692B (zh) | 一种验证和测试片上系统的系统及方法 | |
US10180850B1 (en) | Emulating applications that use hardware acceleration | |
WO2018064885A1 (zh) | 一种对可编程逻辑器件进行配置或更新的装置和方法 | |
CN113835945B (zh) | 芯片的测试方法、装置、设备及系统 | |
CN104050146A (zh) | 一种微控制单元mcu芯片 | |
CN109783340B (zh) | SoC的测试代码烧写方法、IP测试方法及装置 | |
US9935637B2 (en) | Systems and methods for FPGA development and operation | |
Chakravarthi | A practical approach to VLSI system on chip (SoC) design | |
US9946823B2 (en) | Dynamic control of design clock generation in emulation | |
CN111008508A (zh) | 一种接口类ip系统应用验证平台和验证方法 | |
US9367488B1 (en) | System on a chip (SoC) RHBD structured ASIC | |
CN104049995A (zh) | 在mcu芯片中配置fpga的方法和装置 | |
CN113688592A (zh) | 基于驱动中间件的SoC芯片实现系统、方法、介质及设备 | |
CN115933846A (zh) | 复位方法、终端设备及芯片 | |
US20060161422A1 (en) | Virtual emulation modules, virtual development systems and methods for system-on-chip development | |
US9075639B1 (en) | Systems and methods for handling interrupts during software design simulation | |
Haron et al. | Internet of things platform on ARM/FPGA using embedded linux | |
CN110688099A (zh) | 远距离无线电集成可编程片上系统的微处理器开发方法 | |
CN112534414A (zh) | 软件跟踪消息接收器外围设备 | |
US9442788B2 (en) | Bus protocol checker, system on chip including the same, bus protocol checking method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |
|
CP03 | Change of name, title or address |