CN103744713A - 基于fpga的嵌入式双核***的自主配置方法 - Google Patents
基于fpga的嵌入式双核***的自主配置方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
基于FPGA的嵌入式双核***的自主配置方法,属于嵌入式***领域。本发明是为了解决现有的基于FPGA的嵌入式双核***不能自主完成配置文件的存储和加载的问题。PLBv46BRIDGE IP核使FLASH存储器被两条PLB总线共用,在Xilinx Platform Studio中设计双核***的硬件结构生成比特流文件,在Xilinx Software Development Kit中将比特流文件烧写在FLASH存储器中,当***上电或复位后,引导程序将FLASH存储器中的可执行文件搬移到外部存储器中执行直到发现结束标志位***运行结束。它可用于航空航天、消费电子、通信、仪器仪表、军事装备、工业控制中。
Description
技术领域
本发明涉及一种基于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存储器实现。
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)
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复位方法及主从式*** |
US9411613B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Systems and methods for managing execution of specialized processors |
US9411528B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Storage management systems and methods |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135951A (zh) * | 2011-03-07 | 2011-07-27 | 哈尔滨工业大学 | 基于运行时重构的ls-svm算法fpga实现方法 |
-
2014
- 2014-02-11 CN CN201410047913.9A patent/CN103744713A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135951A (zh) * | 2011-03-07 | 2011-07-27 | 哈尔滨工业大学 | 基于运行时重构的ls-svm算法fpga实现方法 |
Non-Patent Citations (3)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984568A (zh) * | 2014-04-25 | 2014-08-13 | 山东超越数控电子有限公司 | 一种pci转cf驱动方法 |
US9411613B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Systems and methods for managing execution of specialized processors |
US9411528B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Storage management systems and methods |
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的嵌入式双核***的自主配置方法 | |
CN102999438B (zh) | 用于平衡对具有不同存储器类型的存储器的访问的方法 | |
CN109213531A (zh) | 一种基于emif16的多核dsp上电自启动的简化实现方法 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
US20160034013A1 (en) | Dynamic voltage and frequency scaling of a processor | |
EP3161622A1 (en) | Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology | |
CN104781794A (zh) | 用于非易失性存储器中的数据结构的暂时和持久状态之间的原地改变 | |
CN105653330A (zh) | 一种基于SD卡的NorFlash烧写***和方法 | |
CN105095138A (zh) | 一种扩展同步内存总线功能的方法和装置 | |
CN103927215A (zh) | 基于内存盘与SSD硬盘的kvm虚拟机调度的优化方法及*** | |
US9652416B2 (en) | Storage device for performing in-storage computing operations, method of operation the same, and system including the same | |
CN102622257A (zh) | 电表在线自更新方法及其装置 | |
CN101349973B (zh) | 嵌入式Java处理器微码指令集动态装载方法 | |
US9223697B2 (en) | Computer reprogramming method, data storage medium and motor vehicle computer | |
US20140164688A1 (en) | Soc system and method for operating the same | |
CN103197933A (zh) | 计算机及其快速启动方法 | |
CN104090804A (zh) | 一种实时dsp嵌入式***虚拟内存扩容方法 | |
CN101944011B (zh) | 运行程序的装置、芯片和方法 | |
CN103914331A (zh) | 支持多芯片配置功能的仿真器 | |
CN102117245B (zh) | 嵌入式设备及其***可执行文件分割加载和启动方法 | |
TW201917589A (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
CN103677868A (zh) | 一种通过芯片内部的mcu配置芯片内置fpga的方法 | |
CN109375543B (zh) | Dvs电压管理装置、***及方法、存储介质、计算机设备 | |
CN103809987A (zh) | 一种soc芯片更换自身内部fpga ip程序的方法 | |
CN102819441B (zh) | 一种基于MPC5200B的Vxworks***快速启动方法 |
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 |