CN103744713A - 基于fpga的嵌入式双核系统的自主配置方法 - Google Patents

基于fpga的嵌入式双核系统的自主配置方法 Download PDF

Info

Publication number
CN103744713A
CN103744713A CN201410047913.9A CN201410047913A CN103744713A CN 103744713 A CN103744713 A CN 103744713A CN 201410047913 A CN201410047913 A CN 201410047913A CN 103744713 A CN103744713 A CN 103744713A
Authority
CN
China
Prior art keywords
kernel
fpga
elf
core system
development kit
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
Application number
CN201410047913.9A
Other languages
English (en)
Inventor
王少军
王晓璐
张启荣
彭宇
刘大同
彭喜元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201410047913.9A priority Critical patent/CN103744713A/zh
Publication of CN103744713A publication Critical patent/CN103744713A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

基于FPGA的嵌入式双核系统的自主配置方法,属于嵌入式系统领域。本发明是为了解决现有的基于FPGA的嵌入式双核系统不能自主完成配置文件的存储和加载的问题。PLBv46BRIDGE IP核使FLASH存储器被两条PLB总线共用,在Xilinx Platform Studio中设计双核系统的硬件结构生成比特流文件,在Xilinx Software Development Kit中将比特流文件烧写在FLASH存储器中,当系统上电或复位后,引导程序将FLASH存储器中的可执行文件搬移到外部存储器中执行直到发现结束标志位系统运行结束。它可用于航空航天、消费电子、通信、仪器仪表、军事装备、工业控制中。

Description

基于FPGA的嵌入式双核系统的自主配置方法
技术领域
本发明涉及一种基于FPGA的嵌入式双核系统的自主配置方法。属于嵌入式系统领域。
背景技术
近年来,片上可编程系统SOPC(System On a Programmable Chip)凭借其设计灵活、速度快、集成度高、功耗低等优势,已经在航空航天、消费电子、通信、仪器仪表、军事装备、工业控制等众多领域广泛应用。片上可编程系统一般采用大容量FPGA作为载体,用户可以在一片FPGA中定制功能模块,并且可以将自己开发设计的逻辑功能模块以IP核的方式添加到系统中,完成对特定功能的实现。基于FPGA的片上可编程系统已经成为SOPC技术的重要实现形式,同时,嵌入式系统的架构已经向双处理器系统甚至多处理器系统方向发展。
Xilinx公司在基于FPGA的嵌入式系统设计上做的比较成熟,先后提出了多种双核系统的整体设计方案,然而,当嵌入式系统应用于实际工程、项目中时,对于系统的实时性和便携性要求比较高,需要嵌入式系统能够自主完成配置文件的存储和加载过程,即需要系统具备上电自启动功能,来满足实际的应用需求,在这方面,Xilinx公司在2010年提出了基于FPGA的单核系统的配置方法,然而,随着嵌入式系统架构向双核系统甚至多核系统方向的发展,嵌入式双核系统的配置问题成为目前必须解决的难题,Xilinx公司并没有就基于FPGA的双核系统配置问题展开研究,并且经调研,目前还没有人提出关于双核系统配置实现的方案。
发明内容
本发明是为了解决现有的基于FPGA的嵌入式双核系统不能自主完成配置文件的存储和加载的问题。而提出了基于FPGA的嵌入式双核系统的自主配置方法。
本发明所述的基于FPGA的嵌入式双核系统的自主配置方法中,所述基于FPGA的嵌入式双核系统包括FLASH存储器、第一内部存储器、第一外部设备、外部存储器、第一处理器、第二处理器、Mailbox IP核、Mutex IP核、Shared BRAM IP核、PLBv46BRIDGE IP核、第二内部存储器和第二外部设备,
所述FLASH存储器、第一内部存储器和第一外部设备与外部存储器、第一处理器、Mailbox IP核、Mutex IP核、Shared BRAM IP核和PLBv46BRIDGE IP核通过PLBv46_0总线进行数据交换,
外部存储器、第二处理器、Mailbox IP核、Mutex IP核、Shared BRAM IP核和PLBv46BRIDGE IP核与第二内部存储器和第二外部设备通过PLBv46_1总线进行数据交换;
基于FPGA的嵌入式双核系统的自主配置方法为:
步骤一、采用PLBv46BRIDGE IP核设置地址范围参数ADDRESS RNG,地址范围参数ADDRESS RNG通过双端口的PLBv46BRIDGE IP核进行双端口的拓展,使FLASH存储器1被PLBv46_0总线和PLBv46_1总线共用,
步骤二、在软件开发工具平台Xilinx Platform Studio中设计双核系统的硬件结构,生成系统的比特流文件system.bit,然后进入软件开发工具包Xilinx Software Development Kit,在软件开发工具包Xilinx Software Development Kit中编写引导程序bootloader_0.elf和bootloader_1.elf以及应用程序software_0.elf和software_1.elf,生成下载比特流文件download.bit,采用iMPACT下载工具将下载比特流文件download.bit进行格式转换,然后将转换格式后的比特流.mcs文件烧写在FLASH存储器中,
步骤三、在软件开发工具包Xilinx Software Development Kit中将应用程序software_0.elf和software_1.elf进行FLASH存储器的二次烧写,
步骤四、当系统上电或复位后,引导程序bootloader_0.elf和bootloader_1.elf会自动将烧入FLASH存储器中的可执行文件搬移到外部存储器中执行,直到发现结束标志位,系统运行结束。
本发明采用PLBv46BRIDGE IP核为FLASH存储器提供多连接的工作方式,将硬件和软件配置文件加载到FLASH存储器中,待系统上电或复位后,能够读取FLASH存储器中存储的配置文件,实现系统自主完成配置文件的存储和加载。它可用于航空航天、消费电子、通信、仪器仪表、军事装备、工业控制中。
附图说明
图1是具体实施方式一所述的基于FPGA的嵌入式双核系统的整体设计框图;
图2是本发明中基于FLASH启动的硬件结构图,其中,a表示系统上电或复位;
图3是本发明中PLBv46BRIDGE IP核和FLASH结合工作图;
图4是本发明基于FPGA的嵌入式双核系统配置文件加载的顺序图,b表示在软件开发工具平台Xilinx Platform Studio中,其中,n表示在软件开发工具包Xilinx SoftwareDevelopment Kit中,m表示在iMPACT工具中。
具体实施方式
具体实施方式一、结合图1和图4说明本实施方式,本实施方式所述的基于FPGA的嵌入式双核系统的自主配置方法,所述基于FPGA的嵌入式双核系统包括FLASH存储器1、第一内部存储器2、第一外部设备3、外部存储器4、第一处理器5、第二处理器6、MailboxIP核7、Mutex IP核8、Shared BRAM IP核9、PLBv46BRIDGE IP核10、第二内部存储器11和第二外部设备12,
所述FLASH存储器1、第一内部存储器2和第一外部设备3与外部存储器4、第一处理器5、Mailbox IP核7、Mutex IP核8、Shared BRAM IP核9和PLBv46BRIDGE IP核10通过PLBv46_0总线进行数据交换,
外部存储器4、第二处理器6、Mailbox IP核7、Mutex IP核8、Shared BRAM IP核9和PLBv46BRIDGE IP核10与第二内部存储器11和第二外部设备12通过PLBv46_1总线进行数据交换;
基于FPGA的嵌入式双核系统的自主配置方法为:
步骤一、采用PLBv46BRIDGE IP核10设置地址范围参数ADDRESS RNG,地址范围参数ADDRESS RNG通过双端口的PLBv46BRIDGE IP核10进行双端口的拓展,使FLASH存储器1被PLBv46_0总线和PLBv46_1总线共用,参见图3,
步骤二、在软件开发工具平台Xilinx Platform Studio中设计双核系统的硬件结构,生成系统的比特流文件system.bit,然后进入软件开发工具包Xilinx Software Development Kit,在软件开发工具包Xilinx Software Development Kit中编写引导程序bootloader_0.elf和bootloader_1.elf以及应用程序software_0.elf和software_1.elf,生成下载比特流文件download.bit,采用iMPACT下载工具将下载比特流文件download.bit进行格式转换,然后将转换格式后的比特流.mcs文件烧写在FLASH存储器1中,
步骤三、在软件开发工具包Xilinx Software Development Kit中将应用程序software_0.elf和software_1.elf进行FLASH存储器1的二次烧写,
步骤四、当系统上电或复位后,引导程序bootloader_0.elf和bootloader_1.elf会自动将烧入FLASH存储器中的可执行文件搬移到外部存储器4中执行,直到发现结束标志位,系统运行结束。
本实施方式中,bootloader引导程序,是硬件上电后运行的第一个程序,主要功能是初始化硬件,加载应用数据,并映射到内存,然后跳转到应用代码中执行应用程序。待系统上电或复位后,首先从内部存储器中启动引导数据,通过引导数据中必要的地址设置将运行指针指向FLASH中事先存储的配置文件,完成应用数据从FLASH到外部存储器的复制过程,复制完成后,开始运行实际的应用数据,参见图2。
本实施方式中,两个应用程序需要加载到FLASH的两个不同地址段上,注意在设置地址时,需要为FLASH自身的初始化过程留出一段地址空间,在初始化的过程中,需要完成引导程序的启动,即两个引导程序分别在两个处理器的内部存储区缓存中运行,同时,引导程序中定义的偏移地址要与数据在FLASH中实际保存的地址保持一致。
本实施方式中,需要设置FLASH存储器的BOOTCFG的值,选择启动模式管脚BOOTMODE的地址位为[24:23]。
对于不同的应用程序,还需要进行FLASH的二次烧写过程,这个过程软件开发工具包Xilinx Software Development Kit中完成。
具体实施方式二、本实施方式与具体实施方式一所述的基于FPGA的嵌入式双核系统的自主配置方法的不同点在于,FLASH存储器1采用型号为JS28F256P30实现。
具体实施方式三、本实施方式与具体实施方式一所述的基于FPGA的嵌入式双核系统的自主配置方法的不同点在于,外部存储器4采用型号为WD2RE01GX809-667G-PE的DDR2存储器实现。

Claims (3)

1.基于FPGA的嵌入式双核系统的自主配置方法,其特征在于,所述基于FPGA的嵌入式双核系统包括FLASH存储器(1)、第一内部存储器(2)、第一外部设备(3)、外部存储器(4)、第一处理器(5)、第二处理器(6)、Mailbox IP核(7)、Mutex IP核(8)、SharedBRAM IP核(9)、PLBv46BRIDGE IP核(10)、第二内部存储器(11)和第二外部设备(12),
所述FLASH存储器(1)、第一内部存储器(2)和第一外部设备(3)与外部存储器(4)、第一处理器(5)、Mailbox IP核(7)、Mutex IP核(8)、Shared BRAM IP核(9)和PLBv46BRIDGE IP核(10)通过PLBv46_0总线进行数据交换,
外部存储器(4)、第二处理器(6)、Mailbox IP核(7)、Mutex IP核(8)、Shared BRAMIP核(9)和PLBv46BRIDGE IP核(10)与第二内部存储器(11)和第二外部设备(12)通过PLBv46_1总线进行数据交换;
基于FPGA的嵌入式双核系统的自主配置方法为:
步骤一、采用FPGA的嵌入式双核系统中的PLBv46BRIDGE IP核(10)设置地址范围参数ADDRESS RNG,地址范围参数ADDRESS RNG通过双端口的PLBv46BRIDGE IP核(10)进行双端口的拓展,使FLASH存储器(1)被PLBv46_0总线和PLBv46_1总线共用,
步骤二、在软件开发工具平台Xilinx Platform Studio中设计双核系统的硬件结构,生成系统的比特流文件system.bit,然后进入软件开发工具包Xilinx Software Development Kit,在软件开发工具包Xilinx Software Development Kit中编写引导程序bootloader_0.elf和bootloader_1.elf以及应用程序software_0.elf和software_1.elf,生成下载比特流文件download.bit,采用iMPACT下载工具将下载比特流文件download.bit进行格式转换,然后将转换格式后的.mcs文件烧写在FLASH存储器中,
步骤三、在软件开发工具包Xilinx Software Development Kit中将应用程序software_0.elf和software_1.elf进行FLASH存储器(1)的二次烧写,
步骤四、当系统上电或复位后,引导程序bootloader_0.elf和bootloader_1.elf会自动将
__烧入FLASH存储器(1)中的可执行文件搬移到外部存储器(4)中执行,直到发现结束标志位,系统运行结束。
2.根据权利要求1所述的基于FPGA的嵌入式双核系统的自主配置方法,其特征在于,FLASH存储器(1)采用型号为JS28F256P30实现。
3.根据权利要求1所述的基于FPGA的嵌入式双核系统的自主配置方法,其特征在于,外部存储器(4)采用型号为WD2RE01GX809-667G-PE的DDR2存储器实现。
CN201410047913.9A 2014-02-11 2014-02-11 基于fpga的嵌入式双核系统的自主配置方法 Pending CN103744713A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410047913.9A CN103744713A (zh) 2014-02-11 2014-02-11 基于fpga的嵌入式双核系统的自主配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410047913.9A CN103744713A (zh) 2014-02-11 2014-02-11 基于fpga的嵌入式双核系统的自主配置方法

Publications (1)

Publication Number Publication Date
CN103744713A true CN103744713A (zh) 2014-04-23

Family

ID=50501733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410047913.9A Pending CN103744713A (zh) 2014-02-11 2014-02-11 基于fpga的嵌入式双核系统的自主配置方法

Country Status (1)

Country Link
CN (1) CN103744713A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984568A (zh) * 2014-04-25 2014-08-13 山东超越数控电子有限公司 一种pci转cf驱动方法
CN105653384A (zh) * 2015-12-30 2016-06-08 惠州市伟乐科技股份有限公司 一种软核cpu复位方法及主从式系统
US9411528B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Storage management systems and methods
US9411613B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Systems and methods for managing execution of specialized processors
US9542244B2 (en) 2015-04-22 2017-01-10 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors
CN106528244A (zh) * 2016-11-25 2017-03-22 迈普通信技术股份有限公司 Fpga配置文件自动加载系统及方法
CN107316655A (zh) * 2017-07-19 2017-11-03 上海航天测控通信研究所 一种用于航天初始化数据存储的方法
CN107704282A (zh) * 2017-09-15 2018-02-16 北京东土科技股份有限公司 一种应用于嵌入式系统的加载方法及装置
CN107942797A (zh) * 2017-11-29 2018-04-20 上海无线电设备研究所 基于sopc的嵌入式双核伺服控制器及其设计方法
CN108268801A (zh) * 2018-01-19 2018-07-10 电子科技大学 基于逆向工程的Xilinx FPGA固核IP破解方法
CN108427584A (zh) * 2018-03-19 2018-08-21 清华大学 快速启动的具有并行计算核的芯片及该芯片的配置方法
CN108804232A (zh) * 2018-06-26 2018-11-13 郑州云海信息技术有限公司 一种支持云端fpga部署的方法、主机服务器及系统
CN109308031A (zh) * 2017-07-28 2019-02-05 湖南航天机电设备与特种材料研究所 一种基于fpga电路的参数配置方法、配置装置及存储空间
CN111142918A (zh) * 2019-12-26 2020-05-12 天津津航计算技术研究所 一种可编程器件程序参数配置和流程控制方法
CN111935061A (zh) * 2019-12-26 2020-11-13 长扬科技(北京)有限公司 一种工控主机的网络安全防护实现方法及工控主机

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102135951A (zh) * 2011-03-07 2011-07-27 哈尔滨工业大学 基于运行时重构的ls-svm算法fpga实现方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102135951A (zh) * 2011-03-07 2011-07-27 哈尔滨工业大学 基于运行时重构的ls-svm算法fpga实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
VASANTH ASOKAN: ""Designing Multiprocessor Systems in Platform Studio"", 《HTTP://CHINA.XILINX.COM/SEARCH/SITE-KEYWORD-SEARCH.HTML?SEARCHKEYWORDS=DESIGNING%20MULTIPROCESSOR%20SYSTEMS%20IN%20PLATFORM%20STUDIO》 *
VINCE2050: ""BPI Flash配置MicroBlaze软核总结"", 《HTTP://DOWNLOAD.CSDN.NET/DETAIL/VINCE2050/3922087》 *
陈发堂等: ""ARM+DSP嵌入式系统BootLoader在LTE中的实现"", 《电子技术应用》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984568A (zh) * 2014-04-25 2014-08-13 山东超越数控电子有限公司 一种pci转cf驱动方法
US9411528B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Storage management systems and methods
US9411613B1 (en) 2015-04-22 2016-08-09 Ryft Systems, Inc. Systems and methods for managing execution of specialized processors
US9542244B2 (en) 2015-04-22 2017-01-10 Ryft Systems, Inc. Systems and methods for performing primitive tasks using specialized processors
CN105653384A (zh) * 2015-12-30 2016-06-08 惠州市伟乐科技股份有限公司 一种软核cpu复位方法及主从式系统
CN106528244A (zh) * 2016-11-25 2017-03-22 迈普通信技术股份有限公司 Fpga配置文件自动加载系统及方法
CN106528244B (zh) * 2016-11-25 2019-05-03 迈普通信技术股份有限公司 Fpga配置文件自动加载系统及方法
CN107316655A (zh) * 2017-07-19 2017-11-03 上海航天测控通信研究所 一种用于航天初始化数据存储的方法
CN109308031B (zh) * 2017-07-28 2021-07-23 湖南航天机电设备与特种材料研究所 一种基于fpga电路的参数配置方法、配置装置及存储空间
CN109308031A (zh) * 2017-07-28 2019-02-05 湖南航天机电设备与特种材料研究所 一种基于fpga电路的参数配置方法、配置装置及存储空间
CN107704282A (zh) * 2017-09-15 2018-02-16 北京东土科技股份有限公司 一种应用于嵌入式系统的加载方法及装置
CN107704282B (zh) * 2017-09-15 2021-02-02 北京东土科技股份有限公司 一种应用于嵌入式系统的加载方法及装置
CN107942797A (zh) * 2017-11-29 2018-04-20 上海无线电设备研究所 基于sopc的嵌入式双核伺服控制器及其设计方法
CN108268801A (zh) * 2018-01-19 2018-07-10 电子科技大学 基于逆向工程的Xilinx FPGA固核IP破解方法
CN108427584A (zh) * 2018-03-19 2018-08-21 清华大学 快速启动的具有并行计算核的芯片及该芯片的配置方法
CN108804232A (zh) * 2018-06-26 2018-11-13 郑州云海信息技术有限公司 一种支持云端fpga部署的方法、主机服务器及系统
CN108804232B (zh) * 2018-06-26 2022-02-18 郑州云海信息技术有限公司 一种支持云端fpga部署的方法、主机服务器及系统
CN111935061A (zh) * 2019-12-26 2020-11-13 长扬科技(北京)有限公司 一种工控主机的网络安全防护实现方法及工控主机
CN111142918A (zh) * 2019-12-26 2020-05-12 天津津航计算技术研究所 一种可编程器件程序参数配置和流程控制方法
CN111935061B (zh) * 2019-12-26 2021-06-11 长扬科技(北京)有限公司 一种工控主机的网络安全防护实现方法及工控主机
CN111142918B (zh) * 2019-12-26 2023-04-28 天津津航计算技术研究所 一种可编程器件程序参数配置和流程控制方法

Similar Documents

Publication Publication Date Title
CN103744713A (zh) 基于fpga的嵌入式双核系统的自主配置方法
CN101916201B (zh) 一种基于Android移动终端冷启动的方法和装置
CN102999438B (zh) 用于平衡对具有不同存储器类型的存储器的访问的方法
US9891690B2 (en) Dynamic voltage and frequency scaling of a processor
CN105930186B (zh) 多cpu的软件加载方法及基于多cpu的软件加载装置
CN109213531A (zh) 一种基于emif16的多核dsp上电自启动的简化实现方法
CN104951334A (zh) FPGA双片QSPI flash的程序加载方法
WO2015199909A1 (en) Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology
CN104781794A (zh) 用于非易失性存储器中的数据结构的暂时和持久状态之间的原地改变
CN105653330A (zh) 一种基于SD卡的NorFlash烧写系统和方法
CN106648758A (zh) 一种多核处理器boot启动系统及方法
CN105095138A (zh) 一种扩展同步内存总线功能的方法和装置
CN201886458U (zh) 一种大规模现场可编程逻辑器件的代码加载系统
CN101944011B (zh) 运行程序的装置、芯片和方法
CN104346132A (zh) 应用于智能卡虚拟机运行的控制装置及智能卡虚拟机
CN103677745B (zh) 一种在龙芯主板中写入和读取设备标识的方法
CN101349973B (zh) 嵌入式Java处理器微码指令集动态装载方法
US20140164688A1 (en) Soc system and method for operating the same
CN103927215A (zh) 基于内存盘与SSD硬盘的kvm虚拟机调度的优化方法及系统
CN104090804A (zh) 一种实时dsp嵌入式系统虚拟内存扩容方法
CN103914331A (zh) 支持多芯片配置功能的仿真器
CN111930215A (zh) 用于虚拟平台模拟的功率监测系统
CN102117245B (zh) 嵌入式设备及其系统可执行文件分割加载和启动方法
US9223697B2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
CN103197933A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140423

WD01 Invention patent application deemed withdrawn after publication