CN102541577A - 基于fpga的嵌入式系统及其配置方法 - Google Patents
基于fpga的嵌入式系统及其配置方法 Download PDFInfo
- Publication number
- CN102541577A CN102541577A CN201010599642XA CN201010599642A CN102541577A CN 102541577 A CN102541577 A CN 102541577A CN 201010599642X A CN201010599642X A CN 201010599642XA CN 201010599642 A CN201010599642 A CN 201010599642A CN 102541577 A CN102541577 A CN 102541577A
- Authority
- CN
- China
- Prior art keywords
- fpga
- module
- embedded system
- executable file
- mcu
- 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
Images
Landscapes
- Logic Circuits (AREA)
Abstract
本发明提供了一种基于FPGA的嵌入式系统,包括:存储器,用于保存多个可执行文件,其中,每个可执行文件是由将期望实现的功能分为多个可分时复用FPGA且相互不耦合的模块所独立生成;MCU,用于将各个可执行文件依次写入FPGA中;FPGA,用于执行可执行文件。本发明还提供了一种基于FPGA的嵌入式系统的配置方法,包括:将期望实现的功能分为多个可分时复用FPGA且相互不耦合的模块;将每个模块独立生成可执行文件;将可执行文件写入嵌入式系统中的存储器中;嵌入式系统中的MCU将各个可执行文件依次写入FPGA中。本发明提高了基于FPGA的嵌入式系统的利用效率。
Description
技术领域
本发明涉及嵌入式领域,具体而言,涉及基于FPGA(FieldProgrammable Gate Array,现场可编程门阵列)的嵌入式系统及其配置方法。
背景技术
目前,嵌入式系统产业发展极其迅猛,已经成为计算机体系的重要组成部分。嵌入式产品已经深入到人们生活的方方面面,可谓无处不在,从手机、MP3到智能家电、车载电子再到航天飞机、卫星系统,无处不有嵌入式系统在大显身手。而基于FPGA的嵌入式系统的发展也方兴未艾,正是由于FPGA运算速度快、可并行计算、在线可编程等优良特性使得FPGA在嵌入式系统中的地位稳步上升。
然而,FPGA相对较高的成本和功耗成为基于FPGA的嵌入式系统发展的一个瓶颈。面对这一难题,业界通常的做法是在功能、成本、功耗之间进行权衡,得到一个次优的方案。这样做往往是要么付出成本的代价来实现功能,要么尽量降低功能要求来实现对成本和功耗的控制。
发明内容
本发明旨在提供一种基于FPGA的嵌入式系统及其配置方法,以解决现有的基于FPGA的嵌入式系统运行效率较低的问题。
在本发明的实施例中,提供了一种基于FPGA的嵌入式系统,包括:存储器,用于保存多个可执行文件,其中,每个可执行文件是由将期望实现的功能分为多个可分时复用FPGA且相互不耦合的模块所独立生成;MCU,用于将各个可执行文件依次写入FPGA中;FPGA,用于执行可执行文件。
在本发明的实施例中,提供了一种基于FPGA的嵌入式系统的配置方法,包括:将期望实现的功能分为多个可分时复用FPGA且相互不耦合的模块;将每个模块独立生成可执行文件;将可执行文件写入嵌入式系统中的存储器中;嵌入式系统中的MCU将各个可执行文件依次写入FPGA中。
本发明上述实施例的基于FPGA的嵌入式系统及其配置方法,因为采用了MCU分时复用FPGA的功能,所以解决了现有的基于FPGA的嵌入式系统运行效率较低的问题,提高了基于FPGA的嵌入式系统的利用效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了根据本发明实施例的基于FPGA的嵌入式系统的结构图;
图2示出了根据本发明优选实施例的基于FPGA的嵌入式系统的结构图;
图3示出了根据本发明优选实施例的MCU与FPGA的连接结构图;
图4示出了根据本发明实施例的基于FPGA的嵌入式系统的配置方法的流程图;
图5示出了根据本发明优选实施例的基于FPGA的嵌入式系统的配置方法的流程图。
具体实施方式
下面将参考附图并结合实施例来详细说明本发明。
图1示出了根据本发明实施例的基于FPGA的嵌入式系统的结构图,包括:
存储器101,用于保存多个可执行文件,其中,每个可执行文件是由将期望实现的功能分为多个可分时复用FPGA且相互不耦合的模块所独立生成;
MCU 102,用于将各个可执行文件依次写入FPGA中;
FPGA 103,用于执行可执行文件。由于FPGA具有运行速度快、可并行计算、重复可编程等优良特性,因此如果一个嵌入式系统中需要对大量数据进行高速计算或存储,往往都需要一个FPGA来对数据进行控制。一方面由于FPGA可并行计算,所以运算速度有保障;另一方面由于FPGA可同步设计,因此运算时间可精确控制到纳秒级别。
本实施例将所要实现的FPGA的功能模块化,分为几个可分时复用FPGA而没有相互耦合的模块。每个模块独立编译、综合,生成可执行文件。然后将这几个文件全部写入嵌入式系统的存储器中,由于存储元件价格低廉,所以不会带来太大的成本。由于FPGA的资源非常宝贵,所以通常只用来做高速、精确运算,而一些对实时性要求不高的控制流程都由MCU来完成。同时,由于当前的MCU都可嵌入操作系统,所以更适合于完成流程控制、资源管理类的工作。本实施例通过这种办法,将FPGA功能从时间上划分为一些小的功能单元,使得对FPGA资源的需求量成倍地减少,通过分时复用FPGA资源,从而达到降低成本和功耗的目的。
优选地,存储器是FLASH。本优选实施例所提供的FLASH存储器单元,主要用来存储嵌入式系统所需要的操作系统以及FPGA的各功能模块。主要是因为FLASH存储器件具有非易失性以及造价低廉的优点。
优选地,该嵌入式系统还包括接口,用于FPGA连接外部设备;互不耦合的模块包括:第一模块,用于对嵌入式系统进行上电自检;第二模块,用于FPGA通过接口进行高速数据缓存和管理;MCU包括:上电模块,用于在嵌入式系统上电后,将由第一模块生成的可执行文件写入FPGA中;正常模块,用于如果FPGA执行第一模块生成的可执行文件正常,则将由第二模块生成的可执行文件写入FPGA中。这两个功能模块是高速数据处理嵌入式系统中最常用到的,但本发明并不限定于此,在其他实施例中还可以增加其他能够分时复用的模块,这都属于本发明的精神范围。
本优选实施例的嵌入式系统可以连接若干子系统,其他子系统与嵌入式系统之间有硬件接口。在嵌入式系统使用这些接口进行数据的传送之前,对这些接口进行系统自检,如果有不正常的情况及时报告,从而避免由于接口异常导致系统数据传送错误,这保证了各接口连接正常且工作正常。
图3示出了根据本发明优选实施例的MCU与FPGA的连接结构图,接口包括以下至少之一:光纤接口、LVDS(Low VoltageDifference Signal,低压差分信号)接口和RS485接口。这都是常用的硬件接口。
图3的系统中还包括:SDRAM 107,用于为FPGA提供数据缓存。本优选实施例的嵌入式系统主要用来对数据进行高速存储和管理,因此采用SDRAM来实现数据缓存。而在使用SDRAM之前,上述优选实施例的正常模块可以对SDRAM进行系统检查,可以避免由于SDRAM工作不正常而导致数据错误,从而引起不可预测的后果。
优选地,MCU还包括:初始化模块,用于每当将一个可执行文件写入FPGA中之后,向FPGA发出全局复位信号;FPGA在接收到全局复位信号后,使其寄存器初始化。
图3示出了根据本发明优选实施例的MCU与FPGA的连接结构图。本优选实施例通过MCU对FPGA进行动态重配置,主要是通过FPGA与MCU之间的若干硬件连线来完成,它们是Data,Dclk,Config,Cfg_Done。通过这几条连线MCU将从FLASH中读出的FPGA的功能模块写入到FPGA中。而FPGA会在自检过程中或者正常运行过程中向MCU报告其运行状态,则是通过FPGA与MCU三条总线完成,即:数据总线、地址总线、控制总线。
图4示出了根据本发明实施例的基于FPGA的嵌入式系统的配置方法的流程图,包括:
步骤S10,将期望实现的功能分为多个可分时复用FPGA且相互不耦合的模块;
步骤S20,将每个模块独立生成可执行文件;
步骤S30,将可执行文件写入嵌入式系统中的存储器中;
步骤S40,嵌入式系统中的MCU将各个可执行文件依次写入FPGA中。
优选地,互不耦合的模块包括:第一模块,用于对嵌入式系统进行上电自检;第二模块,用于FPGA进行高速数据缓存和管理。这两个功能模块是高速数据处理嵌入式系统中最常用到的
优选地,MCU将各个可执行文件依次写入FPGA中包括:嵌入式系统上电;MCU将由第一模块生成的可执行文件写入FPGA中;如果FPGA执行第一模块生成的可执行文件正常,则MCU将由第二模块生成的可执行文件写入FPGA中。
如果有多个功能模块,本实施例在系统正常上电之后,通过嵌入式系统的MCU将最先需要的FPGA功能模块写入FPGA,在此功能模块执行完毕之后,通过FPGA与MCU的接口告知MCU,于是MCU将所需要的下一个FPGA功能模块写入FPGA,如此交替往复,实现对FPGA的动态重配置。
优选地,还包括:MCU每当将一个可执行文件写入FPGA中之后,向FPGA发出全局复位信号,将FPGA的寄存器初始化。由于将功能模块写入FPGA之后,FPGA就重新配置了其内部资源,此时需要将FPGA各寄存器都初始化到一个可预知的状态,否则FPGA将不能正常工作,因此,可以通过MCU与FPGA的接口,将一个信号接入FPGA的全局复位网络,在将各功能模块写入FPGA后,给FPGA一个全局复位信号,从而达到初始化FPGA的目的。
图5示出了根据本发明优选实施例的基于FPGA的嵌入式系统的配置方法的流程图,包括以下步骤:
步骤S100,系统上电;
步骤S101,MCU从FLASH中读取FPGA上电自检逻辑功能模块(即第一模块)。由于FPGA成本较高、功耗较大,因此出于减小FPGA规模从而达到控制成本和功耗的目的,我们将FPGA功能划分成两个独立的功能模块:一个功能模块主要负责对系统进行上电自检,以确保系统各部分工作正常,如果有问题则及时报告错误,从而避免对后续工作产生不良后果;另一个功能负责正常的高速数据缓存和管理。将两个模块分别存储于FLASH中。执行步骤S101时,通过MCU将负责系统自检的功能模块从FLASH中读出。
步骤S102,将从FLASH中读出的系统自检功能模块通过MCU与FPGA的接口写入FPGA,写入之后,对FPGA进行复位。复位操作通过MCU接入FPGA全局复位管脚的接口进行。
步骤S103,开始系统自检。
将系统自检功能模块写入FPGA并复位后,系统自检功能模块开始自动运行,执行系统自检操作。
步骤S104,检测SDRAM。
由于本发明所提供的装置实例的主要功能是对高速数据进行接收、管理和缓存,因此需要用到SDRAM,由于SDRAM工作频率很高,不恰当的PCB布局布线或者其他电磁干扰因素都会对其正常工作产生影响,因此,在使用SDRAM之前,对SDRAM进行高强度的测试,以验证其工作可靠性。所以,系统自检功能模块最先开始执行对SDRAM的测试。
步骤105,判断检测结果是否正常。
在对SDRAM的测试过程中,一旦发现SDRAM工作错误,那么执行步骤S107,立即向MCU进行报告,报告可通过MCU的中断进行,如果在进行一定强度的测试后,SDRAM工作正常则执行下一步。
步骤106,测试各接口连接状态。
完成了对SDRAM的测试后,系统自检功能模块开始执行各接口的链接状态测试功能。由于本实施例所提供的装置实例用到一系列的接口规范及接口芯片,例如:光纤接口、LVDS接口、RS485接口等。其中光纤接口、LVDS接口的工作频率非常高(可达几GHZ),因此,这些接口的工作正常与否至关重要。所以对这些接口进行相当强度的测试。测试主要包括两个方面:连接是否完好;工作是否可靠、稳定。系统自检功能模块将主要执行这两个方面的测试。
步骤108,判断检测结果是否正常。
在对各接口进行测试的过程中,如果一旦某个接口出现工作不正常,则执行步骤S110,通过中断向MCU报告错误;如果在执行了一定强度的测试后,各接口均工作正常,则执行下一步。
步骤109,向MCU报告检测结果正常。
在完成两项自检后,如果系统各部分都没有问题,则向MCU报告工作正常。
步骤111,通过MCU从FLASH中读取正常工作功能模块(即第二模块)。
在系统自检功能模块运行结束之后,如果各项检测结果都正常,MCU则从FLASH中读取出正常工作功能模块,然后执行步骤S112,将该功能模块写入到FPGA并执行全局复位。
步骤S113,等待运行。
在将正常运行功能模块写入FPGA并复位后,FPGA就进入正常工作状态,等待接收高速数据,并对数据进行相关处理。
从以上的描述中可以看出,本发明上述的实施例可以有效地降低系统对FPGA资源的占用情况,通过分时复用宝贵的FPGA资源,解决系统功能复杂与FPGA成本高、功耗大的矛盾。本发明简单易行,在不增加系统设计难度的情况下,有效解决问题,同时还有利于复杂FPGA系统的模块化设计,实现模块重用。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于FPGA的嵌入式系统,其特征在于,包括:
存储器,用于保存多个可执行文件,其中,每个所述可执行文件是由将期望实现的功能分为多个可分时复用所述FPGA且相互不耦合的模块所独立生成;
MCU,用于将各个所述可执行文件依次写入所述FPGA中;
所述FPGA,用于执行所述可执行文件。
2.根据权利要求1所述的系统,其特征在于,所述存储器是FLASH。
3.根据权利要求1所述的系统,其特征在于,还包括接口,用于所述FPGA连接外部设备;所述互不耦合的模块包括:第一模块,用于对所述嵌入式系统进行上电自检;第二模块,用于所述FPGA通过所述接口进行高速数据缓存和管理;所述MCU包括:
上电模块,用于在所述嵌入式系统上电后,将由所述第一模块生成的可执行文件写入所述FPGA中;
正常模块,用于如果所述FPGA执行所述第一模块生成的可执行文件正常,则将由所述第二模块生成的可执行文件写入所述FPGA中。
4.根据权利要求3所述的系统,其特征在于,所述接口包括以下至少之一:光纤接口、LVDS接口和RS485接口。
5.根据权利要求1所述的系统,其特征在于,所述MCU还包括:
初始化模块,用于每当将一个所述可执行文件写入所述FPGA中之后,向所述FPGA发出全局复位信号;
所述FPGA在接收到所述全局复位信号后,使其寄存器初始化。
6.根据权利要求1所述的系统,其特征在于,还包括:
SDRAM,用于为所述FPGA提供数据缓存。
7.一种基于FPGA的嵌入式系统的配置方法,其特征在于,包括:
将期望实现的功能分为多个可分时复用所述FPGA且相互不耦合的模块;
将每个所述模块独立生成可执行文件;
将所述可执行文件写入所述嵌入式系统中的存储器中;
所述嵌入式系统中的MCU将各个所述可执行文件依次写入所述FPGA中。
8.根据权利要求7所述的方法,其特征在于,所述互不耦合的模块包括:
第一模块,用于对所述嵌入式系统进行上电自检;
第二模块,用于所述FPGA进行高速数据缓存和管理。
9.根据权利要求8所述的方法,其特征在于,MCU将各个所述可执行文件依次写入所述FPGA中包括:
所述嵌入式系统上电;
所述MCU将由所述第一模块生成的可执行文件写入所述FPGA中;
如果所述FPGA执行所述第一模块生成的可执行文件正常,则所述MCU将由所述第二模块生成的可执行文件写入所述FPGA中。
10.根据权利要求7所述的方法,其特征在于,还包括:
所述MCU每当将一个所述可执行文件写入所述FPGA中之后,向所述FPGA发出全局复位信号,将所述FPGA的寄存器初始化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010599642XA CN102541577A (zh) | 2010-12-10 | 2010-12-10 | 基于fpga的嵌入式系统及其配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010599642XA CN102541577A (zh) | 2010-12-10 | 2010-12-10 | 基于fpga的嵌入式系统及其配置方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102541577A true CN102541577A (zh) | 2012-07-04 |
Family
ID=46348548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010599642XA Pending CN102541577A (zh) | 2010-12-10 | 2010-12-10 | 基于fpga的嵌入式系统及其配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541577A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968326A (zh) * | 2012-12-04 | 2013-03-13 | 中国北方车辆研究所 | 一种fpga并行动态加载方法 |
CN104050067A (zh) * | 2014-05-23 | 2014-09-17 | 北京兆易创新科技股份有限公司 | Fpga在mcu芯片中工作的方法和装置 |
CN109408110A (zh) * | 2018-11-05 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种嵌入式芯片配置方法与装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200976156Y (zh) * | 2006-10-26 | 2007-11-14 | 朱明程 | 自重构片上多媒体处理系统 |
-
2010
- 2010-12-10 CN CN201010599642XA patent/CN102541577A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200976156Y (zh) * | 2006-10-26 | 2007-11-14 | 朱明程 | 自重构片上多媒体处理系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968326A (zh) * | 2012-12-04 | 2013-03-13 | 中国北方车辆研究所 | 一种fpga并行动态加载方法 |
CN104050067A (zh) * | 2014-05-23 | 2014-09-17 | 北京兆易创新科技股份有限公司 | Fpga在mcu芯片中工作的方法和装置 |
CN104050067B (zh) * | 2014-05-23 | 2016-01-27 | 北京兆易创新科技股份有限公司 | Fpga在mcu芯片中工作的方法和装置 |
CN109408110A (zh) * | 2018-11-05 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种嵌入式芯片配置方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7669086B2 (en) | Systems and methods for providing collision detection in a memory system | |
CN101405708B (zh) | 自动计算机器的存储器系统 | |
JP2019057321A (ja) | マルチプロセッサ組込みシステム上でのアプリケーションの動的再構成 | |
CN107907814B (zh) | 一种提高芯片量产测试效率的方法 | |
MX2012005934A (es) | Disco de estado solido (ssd) multi-interfaz, metodo de procesamiento y sistema del mismo. | |
CN109144932A (zh) | 一种基于dsp的快速动态配置fpga的装置及方法 | |
CN103559053A (zh) | 一种板卡系统及通信接口卡fpga在线升级方法 | |
CN104570846A (zh) | Fpga重配置控制器及其控制方法 | |
CN105808290B (zh) | 用于多fpga整机系统的远程动态更新系统和方法 | |
CN107885517B (zh) | 嵌入式系统处理器程序加载电路 | |
CN102636987B (zh) | 双重化控制装置 | |
CN113127302A (zh) | 一种板卡gpio的监控方法和装置 | |
CN109992555A (zh) | 一种供多路服务器共用的管理板卡 | |
CN103208314A (zh) | 嵌入式系统的内存测试方法及嵌入式系统 | |
CN102622191A (zh) | 一种高速海量存储板 | |
CN102541577A (zh) | 基于fpga的嵌入式系统及其配置方法 | |
CN106066453A (zh) | 串行线调试桥 | |
US10521387B2 (en) | NAND switch | |
US20140115409A1 (en) | Self-test design for serializer / deserializer testing | |
CN203250312U (zh) | 一种接口形式可扩展的通用核心处理子板 | |
CN110727611B (zh) | 一种带状态监测的可配置一致性验证系统 | |
CN103890713A (zh) | 用于管理处理系统内的寄存器信息的装置及方法 | |
US9032252B2 (en) | Debug barrier transactions | |
CN115454881B (zh) | Risc-v架构的调试系统及调试方法 | |
CN113867803A (zh) | 一种内存初始化装置、方法及计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120704 |