基于fpga的嵌入式雙核系統(tǒng)的自主配置方法
【專利摘要】基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法,屬于嵌入式系統(tǒng)領(lǐng)域。本發(fā)明是為了解決現(xiàn)有的基于FPGA的嵌入式雙核系統(tǒng)不能自主完成配置文件的存儲和加載的問題。PLBv46BRIDGE?IP核使FLASH存儲器被兩條PLB總線共用,在Xilinx?Platform?Studio中設(shè)計雙核系統(tǒng)的硬件結(jié)構(gòu)生成比特流文件,在Xilinx?Software?Development?Kit中將比特流文件燒寫在FLASH存儲器中,當(dāng)系統(tǒng)上電或復(fù)位后,引導(dǎo)程序?qū)LASH存儲器中的可執(zhí)行文件搬移到外部存儲器中執(zhí)行直到發(fā)現(xiàn)結(jié)束標(biāo)志位系統(tǒng)運(yùn)行結(jié)束。它可用于航空航天、消費(fèi)電子、通信、儀器儀表、軍事裝備、工業(yè)控制中。
【專利說明】基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法。屬于嵌入式系統(tǒng)領(lǐng)域。
【背景技術(shù)】
[0002]近年來,片上可編程系統(tǒng)SOPC (System On a Programmable Chip)憑借其設(shè)計靈活、速度快、集成度高、功耗低等優(yōu)勢,已經(jīng)在航空航天、消費(fèi)電子、通信、儀器儀表、軍事裝備、工業(yè)控制等眾多領(lǐng)域廣泛應(yīng)用。片上可編程系統(tǒng)一般采用大容量FPGA作為載體,用戶可以在一片F(xiàn)PGA中定制功能模塊,并且可以將自己開發(fā)設(shè)計的邏輯功能模塊以IP核的方式添加到系統(tǒng)中,完成對特定功能的實現(xiàn)。基于FPGA的片上可編程系統(tǒng)已經(jīng)成為SOPC技術(shù)的重要實現(xiàn)形式,同時,嵌入式系統(tǒng)的架構(gòu)已經(jīng)向雙處理器系統(tǒng)甚至多處理器系統(tǒng)方向發(fā)展。
[0003]Xilinx公司在基于FPGA的嵌入式系統(tǒng)設(shè)計上做的比較成熟,先后提出了多種雙核系統(tǒng)的整體設(shè)計方案,然而,當(dāng)嵌入式系統(tǒng)應(yīng)用于實際工程、項目中時,對于系統(tǒng)的實時性和便攜性要求比較高,需要嵌入式系統(tǒng)能夠自主完成配置文件的存儲和加載過程,即需要系統(tǒng)具備上電自啟動功能,來滿足實際的應(yīng)用需求,在這方面,Xilinx公司在2010年提出了基于FPGA的單核系統(tǒng)的配置方法,然而,隨著嵌入式系統(tǒng)架構(gòu)向雙核系統(tǒng)甚至多核系統(tǒng)方向的發(fā)展,嵌入式雙核系統(tǒng)的配置問題成為目前必須解決的難題,Xilinx公司并沒有就基于FPGA的雙核系統(tǒng)配置問題展開研究,并且經(jīng)調(diào)研,目前還沒有人提出關(guān)于雙核系統(tǒng)配置實現(xiàn)的方案。
【發(fā)明內(nèi)容】
[0004]本發(fā)明是為了解決現(xiàn)有的基于FPGA的嵌入式雙核系統(tǒng)不能自主完成配置文件的存儲和加載的問題。而提出了基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法。
[0005]本發(fā)明所述的基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法中,所述基于FPGA的嵌入式雙核系統(tǒng)包括FLASH存儲器、第一內(nèi)部存儲器、第一外部設(shè)備、外部存儲器、第一處理器、第二處理器、Mailbox IP 核、Mutex IP 核、Shared BRAM IP 核、PLBv46BRIDGE IP 核、第二內(nèi)部存儲器和第二外部設(shè)備,
[0006]所述FLASH存儲器、第一內(nèi)部存儲器和第一外部設(shè)備與外部存儲器、第一處理器、Mailbox IP 核、Mutex IP 核、Shared BRAM IP 核和 PLBv46BRIDGE IP 核通過 PLBv46_0 總線進(jìn)行數(shù)據(jù)交換,
[0007]外部存儲器、第二處理器、Mailbox IP核、Mutex IP核、Shared BRAM IP核和PLBv46BRIDGE IP核與第二內(nèi)部存儲器和第二外部設(shè)備通過PLBv46_l總線進(jìn)行數(shù)據(jù)交換;
[0008]基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法為:
[0009]步驟一、采用PLBv46BRIDGE IP核設(shè)置地址范圍參數(shù)ADDRESS RNG,地址范圍參數(shù)ADDRESS RNG通過雙端口的PLBv46BRIDGE IP核進(jìn)行雙端口的拓展,使FLASH存儲器I被PLBv46_0總線和PLBv46_l總線共用,
[0010]步驟二、在軟件開發(fā)工具平臺Xilinx Platform Studio中設(shè)計雙核系統(tǒng)的硬件結(jié)構(gòu),生成系統(tǒng)的比特流文件system, bit,然后進(jìn)入軟件開發(fā)工具包Xilinx SoftwareDevelopment Kit,在軟件開發(fā)工具包Xilinx Software Development Kit中編寫引導(dǎo)程序bootloader_0.elf 和 bootloader_l.elf 以及應(yīng)用程序 software_0.elf 和 software_l.elf,生成下載比特流文件download, bit,采用iMPACT下載工具將下載比特流文件download, bit進(jìn)行格式轉(zhuǎn)換,然后將轉(zhuǎn)換格式后的比特流.mcs文件燒寫在FLASH存儲器中,
[0011]步驟三、在軟件開發(fā)工具包Xilinx Software Development Kit中將應(yīng)用程序software_0.elf 和 software_l.elf 進(jìn)行 FLASH 存儲器的二次燒寫,
[0012]步驟四、當(dāng)系統(tǒng)上電或復(fù)位后,引導(dǎo)程序bootloader_0.elf和bootloader_l.elf會自動將燒入FLASH存儲器中的可執(zhí)行文件搬移到外部存儲器中執(zhí)行,直到發(fā)現(xiàn)結(jié)束標(biāo)志位,系統(tǒng)運(yùn)行結(jié)束。
[0013]本發(fā)明采用PLBv46BRIDGE IP核為FLASH存儲器提供多連接的工作方式,將硬件和軟件配置文件加載到FLASH存儲器中,待系統(tǒng)上電或復(fù)位后,能夠讀取FLASH存儲器中存儲的配置文件,實現(xiàn)系統(tǒng)自主完成配置文件的存儲和加載。它可用于航空航天、消費(fèi)電子、通信、儀器儀表、軍事裝備、工業(yè)控制中。
【專利附圖】
【附圖說明】
[0014]圖1是【具體實施方式】一所述的基于FPGA的嵌入式雙核系統(tǒng)的整體設(shè)計框圖;
[0015]圖2是本發(fā)明中基于FLASH啟動的硬件結(jié)構(gòu)圖,其中,a表示系統(tǒng)上電或復(fù)位;
[0016]圖3是本發(fā)明中PLBv46BRIDGE IP核和FLASH結(jié)合工作圖;
[0017]圖4是本發(fā)明基于FPGA的嵌入式雙核系統(tǒng)配置文件加載的順序圖,b表示在軟件開發(fā)工具平臺Xilinx Platform Studio中,其中,η表示在軟件開發(fā)工具包XilinxSoftware Development Kit 中表不在 iMPACT 工具中。
【具體實施方式】
[0018]【具體實施方式】一、結(jié)合圖1和圖4說明本實施方式,本實施方式所述的基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法,所述基于FPGA的嵌入式雙核系統(tǒng)包括FLASH存儲器1、第一內(nèi)部存儲器2、第一外部設(shè)備3、外部存儲器4、第一處理器5、第二處理器6、MailboxIP核 7、Mutex IP 核 8、Shared BRAM IP 核 9、PLBv46BRIDGE IP 核 10、第二內(nèi)部存儲器 11 和第二外部設(shè)備12,
[0019]所述FLASH存儲器1、第一內(nèi)部存儲器2和第一外部設(shè)備3與外部存儲器4、第一處理器 5、Mailbox IP 核 7、Mutex IP 核 8、Shared BRAM IP 核 9 和 PLBv46BRIDGE IP 核 10通過PLBv46_0總線進(jìn)行數(shù)據(jù)交換,
[0020]外部存儲器4、第二處理器 6、Mailbox IP 核 7、Mutex IP 核 8、Shared BRAM IP 核
9和PLBv46BRIDGE IP核10與第二內(nèi)部存儲器11和第二外部設(shè)備12通過PLBv46_l總線進(jìn)行數(shù)據(jù)交換;
[0021]基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法為:[0022]步驟一、采用PLBv46BRIDGE IP核10設(shè)置地址范圍參數(shù)ADDRESS RNG,地址范圍參數(shù)ADDRESS RNG通過雙端口的PLBv46BRIDGE IP核10進(jìn)行雙端口的拓展,使FLASH存儲器I被PLBv46_0總線和PLBv46_l總線共用,參見圖3,
[0023]步驟二、在軟件開發(fā)工具平臺Xilinx Platform Studio中設(shè)計雙核系統(tǒng)的硬件結(jié)構(gòu),生成系統(tǒng)的比特流文件system, bit,然后進(jìn)入軟件開發(fā)工具包Xilinx SoftwareDevelopment Kit,在軟件開發(fā)工具包Xilinx Software Development Kit中編寫引導(dǎo)程序bootloader_0.elf 和 bootloader_l.elf 以及應(yīng)用程序 software_0.elf 和 software_l.elf,生成下載比特流文件download, bit,采用iMPACT下載工具將下載比特流文件download, bit進(jìn)行格式轉(zhuǎn)換,然后將轉(zhuǎn)換格式后的比特流.mcs文件燒寫在FLASH存儲器I中,
[0024]步驟三、在軟件開發(fā)工具包Xilinx Software Development Kit中將應(yīng)用程序software_0.elf 和 software_l.elf 進(jìn)行 FLASH 存儲器 I 的二次燒寫,
[0025]步驟四、當(dāng)系統(tǒng)上電或復(fù)位后,引導(dǎo)程序bootloader_0.elf和bootloader_l.elf會自動將燒入FLASH存儲器中的可執(zhí)行文件搬移到外部存儲器4中執(zhí)行,直到發(fā)現(xiàn)結(jié)束標(biāo)志位,系統(tǒng)運(yùn)行結(jié)束。
[0026]本實施方式中,bootloader弓丨導(dǎo)程序,是硬件上電后運(yùn)行的第一個程序,主要功能是初始化硬件,加載應(yīng)用數(shù)據(jù),并映射到內(nèi)存,然后跳轉(zhuǎn)到應(yīng)用代碼中執(zhí)行應(yīng)用程序。待系統(tǒng)上電或復(fù)位后,首先從內(nèi)部存儲器中啟動引導(dǎo)數(shù)據(jù),通過引導(dǎo)數(shù)據(jù)中必要的地址設(shè)置將運(yùn)行指針指向FLASH中事先存儲的配置文件,完成應(yīng)用數(shù)據(jù)從FLASH到外部存儲器的復(fù)制過程,復(fù)制完成后,開始運(yùn)行實際的應(yīng)用數(shù)據(jù),參見圖2。
[0027]本實施方式中,兩個應(yīng)用程序需要加載到FLASH的兩個不同地址段上,注意在設(shè)置地址時,需要為FLASH自身的初始化過程留出一段地址空間,在初始化的過程中,需要完成引導(dǎo)程序的啟動,即兩個引導(dǎo)程序分別在兩個處理器的內(nèi)部存儲區(qū)緩存中運(yùn)行,同時,弓丨導(dǎo)程序中定義的偏移地址要與數(shù)據(jù)在FLASH中實際保存的地址保持一致。
[0028]本實施方式中,需要設(shè)置FLASH存儲器的B00TCFG的值,選擇啟動模式管腳B00TM0DE 的地址位為[24:23]。
[0029]對于不同的應(yīng)用程序,還需要進(jìn)行FLASH的二次燒寫過程,這個過程軟件開發(fā)工具包 Xilinx Software Development Kit 中完成。
[0030]【具體實施方式】二、本實施方式與【具體實施方式】一所述的基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法的不同點在于,F(xiàn)LASH存儲器I采用型號為JS28F256P30實現(xiàn)。
[0031]【具體實施方式】三、本實施方式與【具體實施方式】一所述的基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法的不同點在于,外部存儲器4采用型號為WD2RE01GX809-667G-PE的DDR2存儲器實現(xiàn)。
【權(quán)利要求】
1.基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法,其特征在于,所述基于FPGA的嵌入式雙核系統(tǒng)包括FLASH存儲器(I)、第一內(nèi)部存儲器(2)、第一外部設(shè)備(3)、外部存儲器(4)、第一處理器(5)、第二處理器(6)、Mailbox IP 核(7)、Mutex IP 核(8)、Shared BRAM IP 核(9)、PLBv46BRIDGE IP核(10)、第二內(nèi)部存儲器(11)和第二外部設(shè)備(12), 所述FLASH存儲器(I)、第一內(nèi)部存儲器(2 )和第一外部設(shè)備(3 )與外部存儲器(4)、第一處理器(5)、Mailbox IP 核(7)、Mutex IP 核(8)、Shared BRAM IP 核(9)和 PLBv46BRIDGEIP核(10)通過PLBv46_0總線進(jìn)行數(shù)據(jù)交換, 外部存儲器(4)、第二處理器(6)、Mailbox IP 核(7)、Mutex IP 核(8)、Shared BRAMIP核(9)和PLBv46BRIDGE IP核(10)與第二內(nèi)部存儲器(11)和第二外部設(shè)備(12)通過PLBv46_l總線進(jìn)行數(shù)據(jù)交換; 基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法為: 步驟一、采用FPGA的嵌入式雙核系統(tǒng)中的PLBv46BRIDGE IP核(10)設(shè)置地址范圍參數(shù)ADDRESS RNG,地址范圍參數(shù)ADDRESS RNG通過雙端口的PLBv46BRIDGE IP核(10)進(jìn)行雙端口的拓展,使FLASH存儲器(I)被PLBv46_0總線和PLBv46_l總線共用, 步驟二、在軟件開發(fā)工具平臺Xilinx Platform Studio中設(shè)計雙核系統(tǒng)的硬件結(jié)構(gòu),生成系統(tǒng)的比特流文件system, bit,然后進(jìn)入軟件開發(fā)工具包Xilinx SoftwareDevelopment Kit,在軟件開發(fā)工具包Xilinx Software Development Kit中編寫引導(dǎo)程序bootloader_0.elf 和 bootloader_l.elf 以及應(yīng)用程序 software_0.elf 和 software_l.elf,生成下載比特流文件download, bit,采用iMPACT下載工具將下載比特流文件download, bit進(jìn)行格式轉(zhuǎn)換,然后將轉(zhuǎn)換格式后的.mcs文件燒寫在FLASH存儲器中, 步驟三、在軟件開發(fā)工具包Xilinx Software Development Kit中將應(yīng)用程序software_0.elf 和 software_l.elf 進(jìn)行 FLASH 存儲器(I)的二次燒寫, 步驟四、當(dāng)系統(tǒng)上電或復(fù)位后,引導(dǎo)程序bootloader_0.elf和bootloader_l.elf會自動將 —燒入FLASH存儲器(I)中的可執(zhí)行文件搬移到外部存儲器(4)中執(zhí)行,直到發(fā)現(xiàn)結(jié)束標(biāo)志位,系統(tǒng)運(yùn)打結(jié)束。
2.根據(jù)權(quán)利要求1所述的基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法,其特征在于,F(xiàn)LASH存儲器(I)采用型號為JS28F256P30實現(xiàn)。
3.根據(jù)權(quán)利要求1所述的基于FPGA的嵌入式雙核系統(tǒng)的自主配置方法,其特征在于,外部存儲器(4)采用型號為WD2RE01GX809-667G-PE的DDR2存儲器實現(xiàn)。
【文檔編號】G06F9/445GK103744713SQ201410047913
【公開日】2014年4月23日 申請日期:2014年2月11日 優(yōu)先權(quán)日:2014年2月11日
【發(fā)明者】王少軍, 王曉璐, 張啟榮, 彭宇, 劉大同, 彭喜元 申請人:哈爾濱工業(yè)大學(xué)