CN104050067A - Fpga在mcu芯片中工作的方法和装置 - Google Patents
Fpga在mcu芯片中工作的方法和装置 Download PDFInfo
- Publication number
- CN104050067A CN104050067A CN201410223004.6A CN201410223004A CN104050067A CN 104050067 A CN104050067 A CN 104050067A CN 201410223004 A CN201410223004 A CN 201410223004A CN 104050067 A CN104050067 A CN 104050067A
- Authority
- CN
- China
- Prior art keywords
- fpga
- hardware description
- description information
- gate array
- programmable gate
- 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
Landscapes
- Logic Circuits (AREA)
Abstract
本发明实施例提供了一种FPGA在MCU芯片中工作的方法和装置,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块和闪存芯片,所述现场可编程门阵列模块包括现场可编程门阵列FPGA器件和现场可编程门阵列FPGA IO配置子模块,所述FPGA IO配置子模块与MCU芯片中的所有元件分别相连,所述方法包括:当现场可编程门阵列FPGA器件调试完成,并且,给微控制单元MCU芯片上电后,读取所述闪存芯片中预置的程序数据信息;读取所述闪存芯片中预置的硬件描述信息;将所述硬件描述信息烧录至所述FPGA器件中;将所述FPGA器件进行复位处理;所述MCU芯片采用所述FPGA执行所述程序数据信息。本发明可以降低成本,减少浪费,并且能够使得FPGA中的电路和MCU芯片其他部分电路协同工作。
Description
技术领域
本发明涉及集成电路技术领域,特别是涉及一种FPGA在MCU芯片中工作的方法和一种FPGA在MCU芯片中工作的装置。
背景技术
随着集成电路工艺的不断提高,现场可编程门阵列FPGA(Field-Programmable Gate Array)作为专用集成电路(ASIC,Application-SpecificIntegrated Circuit)领域中的一种半定制电路而出现,FPGA的逻辑块和连接可以按照用户的需要而改变,通过可编辑的连接把FPGA内部的逻辑块连接起来,所以FPGA可以完成所需要的逻辑功能。
由于FPGA具有极高的灵活性,MCU(Micro Control Unit,微控制单元)芯片厂商寄望于将FPGA集成于MCU芯片中,以解决MCU芯片在不同应用场景对功能需求不一样的矛盾。
通常,完整的FPGA一般包含大量的LUT(Look-Up-Table,查找表),实现组合逻辑电路,触发器,实现时序逻辑电路,还包含一定数量的Memory,DCM(Digital Clock Manager),用于产生时钟,乘法器,以及IObuffer。FPGA中的电路可以单独工作,MCU芯片的电路也可以单独工作,将完整的FPGA直接集成于MCU芯片中时,FPGA和MCU芯片的工作互不相关,各自继续独立工作。
然而,完整的FPGA面积很大,集成到MCU芯片上时需要增加芯片非常大的面积,造成成本的增加,并且,完整的FPGA中包含了一些不必要的元件,造成浪费,更重要的是,当需要实现FPGA中的电路和MCU芯片其他部分电路协同工作时,由于FPGA和MCU芯片的工作互不相关,因此,这种需求难以实现。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提供一种FPGA在MCU芯片中工作的方法和装置,用以降低成本,减少浪费,并且能够使得FPGA中的电路和MCU芯片其他部分电路协同工作。
发明内容
本发明实施例所要解决的技术问题是提供一种FPGA在MCU芯片中工作的方法,用以降低成本,减少浪费,并且能够使得FPGA中的电路和MCU芯片其他部分电路协同工作。
相应的,本发明实施例还提供了一种FPGA在MCU芯片中工作的装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明公开了一种FPGA在MCU芯片中工作的方法,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块和闪存芯片,所述现场可编程门阵列模块包括现场可编程门阵列FPGA器件和现场可编程门阵列FPGA IO配置子模块,所述FPGA IO配置子模块与MCU芯片中的所有元件分别相连,所述方法包括:
当现场可编程门阵列FPGA器件调试完成,并且,给微控制单元MCU芯片上电后,读取所述闪存芯片中预置的程序数据信息;
读取所述闪存芯片中预置的硬件描述信息;
将所述硬件描述信息烧录至所述FPGA器件中;
将所述FPGA器件进行复位处理;
所述MCU芯片采用所述FPGA执行所述程序数据信息。
优选地,所述现场可编程门阵列FPGA调试完成的步骤包括:
将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
依据所述硬件描述信息生成对应的软件驱动程序;
依据所述IO分配信息配置所述FPGA器件的IO引脚;
将所述软件驱动程序载入到所述MCU芯片中;
对所述MCU芯片进行系统复位,执行所述软件驱动程序;
执行所述软件驱动程序后的输出结果正确时,则获得调试正确的处理结果;
将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
优选地,所述方法还包括:
当执行所述软件驱动程序后的输出结果不正确时,若硬件描述信息出现错误,则修改对应的硬件描述信息后,跳转至将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的子步骤。
优选地,所述方法还包括:
当执行所述软件驱动程序后的输出结果不正确时,若软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至将所述软件驱动程序载入到所述MCU芯片中的子步骤。
优选地,所述现场可编程门阵列模块包括所述现场可编程门阵列FPGA配置信息下载子模块,所述FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述将所述硬件描述信息烧录至所述FPGA器件中的步骤包括:
所述现场可编程门阵列FPGA配置信息下载子模块接收所述闪存控制器传输的硬件描述信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述硬件描述信息进行格式化,生成标准数据格式的硬件描述信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述硬件描述信息写入所述FPGA器件。
依据本发明的实施例,公开了一种FPGA在MCU芯片中工作的装置,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块和闪存芯片,所述现场可编程门阵列模块包括现场可编程门阵列FPGA器件,所述装置包括:
程序数据信息读取单元,用于在现场可编程门阵列FPGA调试完成,并且,给微控制单元MCU芯片上电后,读取所述闪存芯片中预置的程序数据信息;
硬件描述信息读取单元,用于读取所述闪存芯片中预置的硬件描述信息;
硬件描述信息烧录单元,用于将所述硬件描述信息烧录至所述FPGA器件中;
FPGA器件复位单元,用于将所述FPGA器件进行复位处理;
程序数据信息执行单元,用于所述MCU芯片采用所述FPGA执行所述程序数据信息。
优选地,所述装置包括:
信息写入单元,用于将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
软件驱动程序生成单元,用于依据所述硬件描述信息生成对应的软件驱动程序;
IO引脚配置单元,用于依据所述IO分配信息配置所述FPGA器件的IO引脚;
软件驱动程序载入单元,用于将所述软件驱动程序载入到所述MCU芯片中;
软件驱动程序执行单元,用于对所述MCU芯片进行系统复位,执行所述软件驱动程序;
调试正确处理结果获得单元,用于执行所述软件驱动程序后的输出结果正确时,获得调试正确的处理结果;
保存单元,用于将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
优选地,所述装置还包括:
硬件描述信息出错单元,用于在执行所述软件驱动程序后的输出结果不正确时,若硬件描述信息出现错误,则修改对应的硬件描述信息后,跳转至将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的子步骤。
优选地,所述装置还包括:
软件驱动程序出错单元,用于执行所述软件驱动程序后的输出结果不正确时,若软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至将所述软件驱动程序载入到所述MCU芯片中的子步骤。
优选地,所述现场可编程门阵列模块包括所述现场可编程门阵列FPGA配置信息下载子模块,所述FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述硬件描述信息烧录单元包括:
位于现场可编程门阵列FPGA配置信息下载子模块的硬件描述信息接收子单元,用于接收所述闪存控制器传输的硬件描述信息;
位于现场可编程门阵列FPGA配置信息下载子模块的格式化子单元,用于将所述硬件描述信息进行格式化,生成标准数据格式的硬件描述信息;
位于现场可编程门阵列FPGA配置信息下载子模块信息写入子单元,用于将所述硬件描述信息写入所述FPGA器件。
与现有技术相比,本发明实施例包括以下优点:
本发明通过在FPGA调试完成后将硬件描述信息烧录至FPGA器件中,确保了硬件描述信息完整无误,提高了FPGA器件的稳定性,同时,通过配置FPGA模块的IO与MCU芯片中其他部分信号连接,这样有效的共用了MCU芯片的电路,减小了FPGA器件的面积,降低了成本,减少了浪费同时也使得FPGA中的电路和MCU芯片其他部分电路协同工作。
进一步的,本发明通过闪存芯片将硬件描述信息烧录至FPGA器件中,由于闪存芯片具有掉电数据信息不丢失的特点,因此,FPGA器件在掉电后,硬件描述信息不会丢失,进一步提高了FGPA器件的稳定性。
附图说明
图1示出了本发明一种集成现场可编程门阵列FPGA模块的微控制单元MCU芯片的结构图;
图2示出了本发明一种微控制单元MCU芯片中现场可编程门阵列FPGA模块的结构图;
图3示出了本发明的一种FPGA在MCU芯片中工作的方法实施例的步骤流程图;
图4示出了本发明一种FPGA在MCU芯片中工作的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图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芯片的面积。
本发明实施例的核心构思之一在于,
参照图3,示出了本发明的一种FPGA在MCU芯片中工作的方法实施例的步骤流程图,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块和闪存芯片,所述现场可编程门阵列模块包括现场可编程门阵列FPGA器件,具体可以包括如下步骤:
步骤301,当现场可编程门阵列FPGA器件调试完成,并且,给微控制单元MCU芯片上电后,读取所述闪存芯片中预置的程序数据信息;
在具体实现中,当现场可编程门阵列FPGA器件调试完成后,给微控制单元MCU芯片上电,闪存控制器可以自动将闪存芯片中的程序数据信息读取到MCU芯片内部,并且保存在MCU芯片内部专用的Memory上,MCU芯片内部专用的Memory可以实现在闪存控制器内的Memory上,而闪存控制器内的Memory可以由SRAM实现。
在本发明实施例的一种优选示例中,所述现场可编程门阵列FPGA调试完成的步骤可以包括以下子步骤:
子步骤A101,将预置的硬件描述信息和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芯片自动执行,不需要用户做任何操作,由于闪存芯片具有断电数据信息不丢失的特点,因此,可以在断电的情况下保存数据信息。
子步骤A102,依据所述硬件描述信息生成对应的软件驱动程序;
在实际应用中,硬件电路需要与软件驱动程序配合才能正常工作。
子步骤A103,依据所述IO分配信息配置所述FPGA器件的IO引脚;
在具体实现中,在软件驱动程序设计中,IO的配置需要与IO分配信息配合。例如:IO分配信息中,将RTL代码的总线信号分配到FPGA器件的总线IO部分,则在软件驱动程序设计时,需要将FPGA器件的总线IO通过FPGA IO配置子模块配置成与系统总线连接。
子步骤A104,将所述软件驱动程序载入到所述MCU芯片中;
软件驱动程序可以通过系统总线载入到MCU芯片中。
子步骤A105,对所述MCU芯片进行系统复位,执行所述软件驱动程序;
当RTL代码和软件驱动程序都准备好,并载入到MCU芯片中时,MCU芯片需要进行一次系统复位,让软件驱动程序从起始位置开始执行,系统总线读取软件驱动程序到CPU中,CPU执行每条指令。。在实际应用中,系统复位将CPU的指针指向0地址,程序从0地址开始执行软件驱动程序。
需要说明的是,在实际的MCU芯片中,有一些特殊寄存器,以及记录实际时间的RTC(Real-Time Clock,实时时钟)等没有复位。
在本发明实施例的一种优选示例中,MCU芯片还包括静态随机存储器SRAM,所述SRAM连接在所述系统总线上,所述子步骤A104具体可以包括:
子步骤S41,将所述软件驱动程序载入到所述SRAM;
当MCU芯片中存在SRAM(Static Random Access Memory,静态随机存储器)时,可以将软件驱动程序载入到所述SRAM。
SRAM为标准IP核(Intellectual Property Core,知识产权核)。SRAM一般用于存储数据,断电后数据丢失,读写速度快,可实时读写。在本发明实施例中可以当做内存使用,存放CPU运行中临时数据,以及其他一些暂存数据,还可以复用成FPGA的SRAM使用。当FPGA需要用到SRAM,将其中部分空间当做FPGA的SRAM使用,这样在实现FPGA器件时,可以不需要实现SRAM,以减小面积,节约资源。
所述子步骤A105具体可以包括以下子步骤:
子步骤S51,对所述MCU芯片进行系统复位,从所述SRAM开始执行所述软件驱动程序。
当软件驱动程序载入到MCU芯片的SRAM时,软件驱动程序从SRAM开始执行。
在本发明实施例的另一种优选示例中,所述MCU芯片还包括闪存芯片,所述子步骤A104具体可以包括如下子步骤:
子步骤S61,将所述软件驱动程序载入到所述闪存芯片中;
闪存芯片,具有可读,可擦写,断电数据不丢失的特点,但读写速度慢,并且大部分时间是在读取数据,在MCU芯片中主要用于程序存储以及一些常量数据的存储,在本发明实施例中,闪存芯片还可以用于存储FPGA器件的软件驱动程序。
闪存芯片与闪存控制器相连,闪存控制器连接在系统总线上,因此,软件驱动程序可以通过系统总线传输到闪存控制器中,再通过闪存控制器与闪存芯片的通路载入到闪存芯片中。
所述子步骤A105具体可以包括以下子步骤:
子步骤S71,对所述MCU芯片进行系统复位,从所述闪存芯片开始执行所述软件驱动程序。
当软件驱动程序写入到闪存芯片时,软件驱动程序从闪存芯片开始执行。
子步骤A106,执行所述软件驱动程序后的输出结果正确时,获得调试正确的结果;
在具体实现中,可以通过一些测试手段检查硬件与软件的行为是否正确,执行软件驱动程序后的输出结果根据软件驱动程序的内容而定,例如,I2C的软件驱动程序中,CPU执行程序后,通过系统总线配置IO,设置I2C的时钟复位,以及I2C外设本身的寄存器等,设置完成之后启动I2C开始数据传输,测试手段包括传输的数据是否正确来确定。
需要说明的是,MCU芯片中FPGA模块的调试和检测错误可以根据软件驱动程序设计的内容,自主确定调试和检测错误的方式。FPGA模块还可以通过一些仿真软件(如ModelSim)等手段协助调试。
在本发明实施例的一种优选示例中,所述硬件描述信息出现错误时,则修改对应的硬件描述信息后,跳转至将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的步骤;
如果硬件的行为有错误,则需要对硬件描述信息进行修改,修改完成后,返回到将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的步骤,重新进行一次调试流程。
在本发明实施例的一种优选示例中,软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至将所述软件驱动程序载入到所述MCU芯片中的步骤。
如果软件的行为有错误,则需要对软件驱动程序进行修改,修改完成后,返回到将所述软件驱动程序载入到所述MCU芯片中的步骤,重新进行一次调试流程。
子步骤A107,将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
当硬件和软件所有的行为均正确之后,将硬件描述信息和软件驱动程序下载到闪存芯片保存,其中,可以将信息硬件描述信息保存到闪存芯片中的FPGA配置信息下载空间,将软件驱动程序保存到闪存芯片中的程序数据信息空间。由于闪存芯片断电数据不丢失,因此在下次上电后自动执行程序,自动将硬件描述信息和软件驱动程序烧录到FPGA器件中。
需要说明的是,所述闪存芯片中读取的预置的程序数据信息可以不仅仅包括调试时的软件驱动程序,调试时的软件驱动程序一般比较简单,只包含了配合FPGA器件中功能实现的部分。实际应用时调试FPGA器件的软件驱动程序可能只是整体的一小部分,另外可能还包括驱动整个MCU芯片所有外设的驱动程序,具体需要根据实际的应用场景去确定。
步骤302,读取所述闪存芯片中预置的硬件描述信息;
在实际应用中,闪存控制器在上电后自动读取闪存芯片中预置的硬件描述信息。
步骤303,将所述硬件描述信息烧录至所述FPGA器件中;
在具体实现中,将硬件描述信息烧录至所述FPGA器件中即将所需要的功能烧录到FPGA器件中。
在本发明实施例的一种优选示例中,所述现场可编程门阵列模块包括所述现场可编程门阵列FPGA配置信息下载子模块,所述FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述步骤304具体可以包括以下子步骤:
子步骤B201,所述现场可编程门阵列FPGA配置信息下载子模块接收所述闪存控制器传输的硬件描述信息;
子步骤B202,所述现场可编程门阵列FPGA配置信息下载子模块将所述硬件描述信息进行格式化,生成标准数据格式的硬件描述信息;
子步骤B203,所述现场可编程门阵列FPGA配置信息下载子模块将所述硬件描述信息写入所述FPGA器件。
在具体实现中,闪存控制器自动读取闪存芯片中保存的预设的硬件描述信息,通过数据通路4,即闪存控制器与FPGA配置信息下载子模块的数据通路,将硬件描述信息载入FPGA配置信息下载子模块,在FPGA配置信息下载子模块中,需要将预设的硬件描述信息转化成FPGA器件可配置下载的标准数据格式,即一种符合JTAG协议的数据格式,再通过数据通路1,即FPGA配置信息下载子模块烧录FPAG器件的数据通路,配置下载FPGA器件。
本发明通过闪存芯片将硬件描述信息烧录至FPGA器件中,由于闪存芯片具有掉电数据信息不丢失的特点,因此,FPGA器件在掉电后,硬件描述信息不会丢失,进一步提高了FGPA器件的稳定性。
步骤304,将所述FPGA器件进行复位处理;
在配置好FPGA器件之后,需要进行FPGA器件复位,因为此时FPGA器件中电路的状态是不确定的,需要通过对FPGA器件复位将电路的状态复位到初始值。注意此步骤仅仅对FPGA器件复位,而不是整个MCU芯片复位。
步骤305,所述MCU芯片采用所述FPGA执行所述程序数据信息。
在具体应用中,当FPGA器件复位后,工作前的准备工作都已就绪,CPU开始从程序数据信息的起始位置执行程序数据信息。
例如:系统总线自动将程序数据信息读取到CPU中,CPU运行程序数据信息的每条指令,实现软件程序设计者的意图,配置相应外设寄存器,状态等信息,以及发送外设的开始结束指令,以驱动外设的运行。在实际MCU芯片实现中,程序数据信息的执行各有不同,CPU复位后默认从0地址执行,即将0地址上的数据读取到CPU中执行,如果从闪存中运行,则将0地址映射到闪存的开始位置上。
整个流程均是自动完成的,对用户时不可见的,所以对用户来说,FPGA器件已经烧录成特定的专用电路了,与MCU芯片中其他电路没有区别了,与MCU中的其他电路一样正常运行。
本发明通过在FPGA调试完成后将硬件描述信息烧录至FPGA器件中,确保了硬件描述信息完整无误,提高了FPGA器件的稳定性,同时,通过配置FPGA模块的IO与MCU芯片中其他部分信号连接,这样有效的共用了MCU芯片的电路,减小了FPGA器件的面积,降低了成本,减少了浪费同时也使得FPGA中的电路和MCU芯片其他部分电路协同工作。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明一种FPGA在MCU芯片中工作的装置实施例的结构框图,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块和闪存芯片,所述现场可编程门阵列模块包括现场可编程门阵列FPGA器件,具体可以包括如下模块:
程序数据信息读取单元401,用于在现场可编程门阵列FPGA调试完成,并且,给微控制单元MCU芯片上电后,读取所述闪存芯片中预置的程序数据信息;
硬件描述信息读取单元402,用于读取所述闪存芯片中预置的硬件描述信息;
硬件描述信息烧录单元403,用于将所述硬件描述信息烧录至所述FPGA器件中;
FPGA器件复位单元404,用于将所述FPGA器件进行复位处理;
程序数据信息执行单元405,用于所述MCU芯片采用所述FPGA执行所述程序数据信息。
在本发明的一种优选示例中,所述装置包括:
信息写入单元,用于将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
软件驱动程序生成单元,用于依据所述硬件描述信息生成对应的软件驱动程序;
IO引脚配置单元,用于依据所述IO分配信息配置所述FPGA器件的IO引脚;
软件驱动程序载入单元,用于将所述软件驱动程序载入到所述MCU芯片中;
软件驱动程序执行单元,用于对所述MCU芯片进行系统复位,执行所述软件驱动程序;
调试正确处理结果获得单元,用于执行所述软件驱动程序后的输出结果正确时,获得调试正确的处理结果;
保存单元,用于将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
在本发明的一种优选示例中,所述装置还包括:
硬件描述信息出错单元,用于在执行所述软件驱动程序后的输出结果不正确时,若硬件描述信息出现错误,则修改对应的硬件描述信息后,跳转至将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的子步骤。
在本发明的一种优选示例中,所述装置还包括:
软件驱动程序出错单元,用于执行所述软件驱动程序后的输出结果不正确时,若软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至将所述软件驱动程序载入到所述MCU芯片中的子步骤。
在本发明的一种优选示例中,所述现场可编程门阵列模块包括所述现场可编程门阵列FPGA配置信息下载子模块,所述FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述硬件描述信息烧录单元包括:
位于现场可编程门阵列FPGA配置信息下载子模块的硬件描述信息接收子单元,用于接收所述闪存控制器传输的硬件描述信息;
位于现场可编程门阵列FPGA配置信息下载子模块的格式化子单元,用于将所述硬件描述信息进行格式化,生成标准数据格式的硬件描述信息;
位于现场可编程门阵列FPGA配置信息下载子模块信息写入子单元,用于将所述硬件描述信息写入所述FPGA器件。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种FPGA在MCU芯片中工作的方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种FPGA在MCU芯片中工作的方法,其特征在于,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块和闪存芯片,所述现场可编程门阵列模块包括现场可编程门阵列FPGA器件和现场可编程门阵列FPGA IO配置子模块,所述FPGA IO配置子模块与MCU芯片中的所有元件分别相连,所述方法包括:
当现场可编程门阵列FPGA器件调试完成,并且,给微控制单元MCU芯片上电后,读取所述闪存芯片中预置的程序数据信息;
读取所述闪存芯片中预置的硬件描述信息;
将所述硬件描述信息烧录至所述FPGA器件中;
将所述FPGA器件进行复位处理;
所述MCU芯片采用所述FPGA执行所述程序数据信息。
2.根据权利要求1所述的方法,其特征在于,所述现场可编程门阵列FPGA调试完成的步骤包括:
将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
依据所述硬件描述信息生成对应的软件驱动程序;
依据所述IO分配信息配置所述FPGA器件的IO引脚;
将所述软件驱动程序载入到所述MCU芯片中;
对所述MCU芯片进行系统复位,执行所述软件驱动程序;
执行所述软件驱动程序后的输出结果正确时,则获得调试正确的处理结果;
将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当执行所述软件驱动程序后的输出结果不正确时,若硬件描述信息出现错误,则修改对应的硬件描述信息后,跳转至将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的子步骤。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当执行所述软件驱动程序后的输出结果不正确时,若软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至将所述软件驱动程序载入到所述MCU芯片中的子步骤。
5.根据权利要求1或2或3或4所述的方法,其特征在于,所述现场可编程门阵列模块包括所述现场可编程门阵列FPGA配置信息下载子模块,所述FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述将所述硬件描述信息烧录至所述FPGA器件中的步骤包括:
所述现场可编程门阵列FPGA配置信息下载子模块接收所述闪存控制器传输的硬件描述信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述硬件描述信息进行格式化,生成标准数据格式的硬件描述信息;
所述现场可编程门阵列FPGA配置信息下载子模块将所述硬件描述信息写入所述FPGA器件。
6.一种FPGA在MCU芯片中工作的装置,其特征在于,所述微控制单元MCU芯片中集成有现场可编程门阵列FPGA模块和闪存芯片,所述现场可编程门阵列模块包括现场可编程门阵列FPGA器件,所述装置包括:
程序数据信息读取单元,用于在现场可编程门阵列FPGA调试完成,并且,给微控制单元MCU芯片上电后,读取所述闪存芯片中预置的程序数据信息;
硬件描述信息读取单元,用于读取所述闪存芯片中预置的硬件描述信息;
硬件描述信息烧录单元,用于将所述硬件描述信息烧录至所述FPGA器件中;
FPGA器件复位单元,用于将所述FPGA器件进行复位处理;
程序数据信息执行单元,用于所述MCU芯片采用所述FPGA执行所述程序数据信息。
7.根据权利要求6所述的装置,其特征在于,所述装置包括:
信息写入单元,用于将预置的硬件描述信息和IO分配信息写入现场可编程门阵列FPGA器件中;
软件驱动程序生成单元,用于依据所述硬件描述信息生成对应的软件驱动程序;
IO引脚配置单元,用于依据所述IO分配信息配置所述FPGA器件的IO引脚;
软件驱动程序载入单元,用于将所述软件驱动程序载入到所述MCU芯片中;
软件驱动程序执行单元,用于对所述MCU芯片进行系统复位,执行所述软件驱动程序;
调试正确处理结果获得单元,用于执行所述软件驱动程序后的输出结果正确时,获得调试正确的处理结果;
保存单元,用于将所述硬件描述信息和软件驱动程序保存到所述闪存芯片中。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
硬件描述信息出错单元,用于在执行所述软件驱动程序后的输出结果不正确时,若硬件描述信息出现错误,则修改对应的硬件描述信息后,跳转至将预置的硬件描述信息和IO分配信息按照预置规则写入现场可编程门阵列FPGA器件中的子步骤。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
软件驱动程序出错单元,用于执行所述软件驱动程序后的输出结果不正确时,若软件驱动程序出现错误,则修改对应的软件驱动程序后,跳转至将所述软件驱动程序载入到所述MCU芯片中的子步骤。
10.根据权利要求6或7或8或9所述的装置,其特征在于,所述现场可编程门阵列模块包括所述现场可编程门阵列FPGA配置信息下载子模块,所述FPGA配置信息下载子模块与闪存控制器互连,所述闪存控制器与闪存芯片互连,所述硬件描述信息烧录单元包括:
位于现场可编程门阵列FPGA配置信息下载子模块的硬件描述信息接收子单元,用于接收所述闪存控制器传输的硬件描述信息;
位于现场可编程门阵列FPGA配置信息下载子模块的格式化子单元,用于将所述硬件描述信息进行格式化,生成标准数据格式的硬件描述信息;
位于现场可编程门阵列FPGA配置信息下载子模块信息写入子单元,用于将所述硬件描述信息写入所述FPGA器件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410223004.6A CN104050067B (zh) | 2014-05-23 | 2014-05-23 | Fpga在mcu芯片中工作的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410223004.6A CN104050067B (zh) | 2014-05-23 | 2014-05-23 | Fpga在mcu芯片中工作的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104050067A true CN104050067A (zh) | 2014-09-17 |
CN104050067B CN104050067B (zh) | 2016-01-27 |
Family
ID=51502956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410223004.6A Active CN104050067B (zh) | 2014-05-23 | 2014-05-23 | Fpga在mcu芯片中工作的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104050067B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104656741A (zh) * | 2015-03-13 | 2015-05-27 | 浪潮集团有限公司 | 一种基于nios II的服务器系统不同分区的时序控制方法 |
CN105573812A (zh) * | 2014-10-09 | 2016-05-11 | 上海华虹集成电路有限责任公司 | 一种仿真系统 |
CN106709973A (zh) * | 2016-12-16 | 2017-05-24 | 无锡中微亿芯有限公司 | 一种基于mcu和fpga芯片的电子印章生成显示方法 |
CN108920106A (zh) * | 2015-01-28 | 2018-11-30 | 北京知投家知识产权运营有限公司 | 一种闪存存储阵列的实现方法 |
CN110083567A (zh) * | 2019-04-25 | 2019-08-02 | 京微齐力(北京)科技有限公司 | 一种芯片架构 |
CN111611013A (zh) * | 2020-04-30 | 2020-09-01 | 京微齐力(北京)科技有限公司 | 一种支持多镜像的fpga硬启动方法及装置 |
CN111881073A (zh) * | 2020-07-31 | 2020-11-03 | 卡莱特(深圳)云科技有限公司 | 一种fpga兼容多种硬件的方法、装置及电子设备 |
CN112860237A (zh) * | 2021-02-09 | 2021-05-28 | 广州思林杰科技股份有限公司 | 一种测控固件生成方法、装置、计算机设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143526A1 (en) * | 2004-12-14 | 2006-06-29 | Woon-Seob So | Apparatus for developing and verifying system-on-chip for internet phone |
JP2008052389A (ja) * | 2006-08-23 | 2008-03-06 | Alaxala Networks Corp | プログラマブル論理回路更新装置、更新方法、データ処理装置およびネットワーク装置 |
CN102360302A (zh) * | 2011-10-13 | 2012-02-22 | 福建星网锐捷网络有限公司 | 一种fpga配置文件在线升级方法及装置 |
CN102541577A (zh) * | 2010-12-10 | 2012-07-04 | 北大方正集团有限公司 | 基于fpga的嵌入式系统及其配置方法 |
CN102662645A (zh) * | 2012-03-01 | 2012-09-12 | 福建星网锐捷网络有限公司 | 片上系统及片上系统的硬件可编程器件的配置方法 |
CN103677868A (zh) * | 2012-09-06 | 2014-03-26 | 合肥科盛微电子科技有限公司 | 一种通过芯片内部的mcu配置芯片内置fpga的方法 |
CN103729222A (zh) * | 2013-12-30 | 2014-04-16 | 大唐移动通信设备有限公司 | 一种配置文件的加载装置与方法 |
CN103777972A (zh) * | 2012-10-24 | 2014-05-07 | 上海联影医疗科技有限公司 | 基于现场可编程门阵列的系统、配置方法以及升级方法 |
-
2014
- 2014-05-23 CN CN201410223004.6A patent/CN104050067B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060143526A1 (en) * | 2004-12-14 | 2006-06-29 | Woon-Seob So | Apparatus for developing and verifying system-on-chip for internet phone |
JP2008052389A (ja) * | 2006-08-23 | 2008-03-06 | Alaxala Networks Corp | プログラマブル論理回路更新装置、更新方法、データ処理装置およびネットワーク装置 |
CN102541577A (zh) * | 2010-12-10 | 2012-07-04 | 北大方正集团有限公司 | 基于fpga的嵌入式系统及其配置方法 |
CN102360302A (zh) * | 2011-10-13 | 2012-02-22 | 福建星网锐捷网络有限公司 | 一种fpga配置文件在线升级方法及装置 |
CN102662645A (zh) * | 2012-03-01 | 2012-09-12 | 福建星网锐捷网络有限公司 | 片上系统及片上系统的硬件可编程器件的配置方法 |
CN103677868A (zh) * | 2012-09-06 | 2014-03-26 | 合肥科盛微电子科技有限公司 | 一种通过芯片内部的mcu配置芯片内置fpga的方法 |
CN103777972A (zh) * | 2012-10-24 | 2014-05-07 | 上海联影医疗科技有限公司 | 基于现场可编程门阵列的系统、配置方法以及升级方法 |
CN103729222A (zh) * | 2013-12-30 | 2014-04-16 | 大唐移动通信设备有限公司 | 一种配置文件的加载装置与方法 |
Non-Patent Citations (1)
Title |
---|
杨开全: "基于ARM微控制器的FPGA配置及应用", 《测控技术》, vol. 26, no. 7, 31 July 2007 (2007-07-31) * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573812A (zh) * | 2014-10-09 | 2016-05-11 | 上海华虹集成电路有限责任公司 | 一种仿真系统 |
CN108920106A (zh) * | 2015-01-28 | 2018-11-30 | 北京知投家知识产权运营有限公司 | 一种闪存存储阵列的实现方法 |
CN104656741A (zh) * | 2015-03-13 | 2015-05-27 | 浪潮集团有限公司 | 一种基于nios II的服务器系统不同分区的时序控制方法 |
CN104656741B (zh) * | 2015-03-13 | 2017-05-31 | 浪潮集团有限公司 | 一种基于nios II的服务器系统不同分区的时序控制方法 |
CN106709973A (zh) * | 2016-12-16 | 2017-05-24 | 无锡中微亿芯有限公司 | 一种基于mcu和fpga芯片的电子印章生成显示方法 |
CN110083567A (zh) * | 2019-04-25 | 2019-08-02 | 京微齐力(北京)科技有限公司 | 一种芯片架构 |
CN110083567B (zh) * | 2019-04-25 | 2021-09-03 | 京微齐力(北京)科技有限公司 | 一种芯片架构 |
CN111611013A (zh) * | 2020-04-30 | 2020-09-01 | 京微齐力(北京)科技有限公司 | 一种支持多镜像的fpga硬启动方法及装置 |
CN111611013B (zh) * | 2020-04-30 | 2023-12-22 | 京微齐力(北京)科技有限公司 | 一种支持多镜像的fpga硬启动方法及装置 |
CN111881073A (zh) * | 2020-07-31 | 2020-11-03 | 卡莱特(深圳)云科技有限公司 | 一种fpga兼容多种硬件的方法、装置及电子设备 |
CN111881073B (zh) * | 2020-07-31 | 2022-06-03 | 卡莱特云科技股份有限公司 | 一种fpga兼容多种硬件的方法、装置及电子设备 |
CN112860237A (zh) * | 2021-02-09 | 2021-05-28 | 广州思林杰科技股份有限公司 | 一种测控固件生成方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104050067B (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104050067B (zh) | Fpga在mcu芯片中工作的方法和装置 | |
CN104050068B (zh) | 在mcu芯片中调试fpga的方法和装置 | |
JP7121076B2 (ja) | マルチプロセッサ組込みシステム上でのアプリケーションの動的再構成 | |
CN104050146A (zh) | 一种微控制单元mcu芯片 | |
WO2018064885A1 (zh) | 一种对可编程逻辑器件进行配置或更新的装置和方法 | |
US9935637B2 (en) | Systems and methods for FPGA development and operation | |
WO2016076963A1 (en) | System and method for preparing partially reconfigurable circuit designs | |
CN104049995A (zh) | 在mcu芯片中配置fpga的方法和装置 | |
US7624209B1 (en) | Method of and circuit for enabling variable latency data transfers | |
US9946823B2 (en) | Dynamic control of design clock generation in emulation | |
CN113270137A (zh) | 一种基于fpga嵌入式软核的ddr2测试方法 | |
CN103677820A (zh) | 一种嵌入式开发软件输出方法及系统 | |
US9367488B1 (en) | System on a chip (SoC) RHBD structured ASIC | |
CN113688592A (zh) | 基于驱动中间件的SoC芯片实现系统、方法、介质及设备 | |
CN113454607A (zh) | 调试方法、装置及片上系统 | |
CN107168744B (zh) | 用于数字信号处理器芯片文件加载的系统及方法 | |
CN102542525A (zh) | 一种信息处理设备以及信息处理方法 | |
CN115933846A (zh) | 复位方法、终端设备及芯片 | |
US20140258973A1 (en) | Systems And Methods For Automatically Generating Applications | |
US9442788B2 (en) | Bus protocol checker, system on chip including the same, bus protocol checking method | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理系统 | |
Haron et al. | Internet of things platform on ARM/FPGA using embedded linux | |
CN103257940B (zh) | 一种片上系统SoC写数据的方法及装置 | |
CN214959850U (zh) | 基于fpga片上系统的mipi电路板 | |
JP5774941B2 (ja) | コンフィグレーション装置及びコンフィグレーション方法 |
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 |