專利名稱:一種動(dòng)態(tài)局部可重構(gòu)的嵌入式數(shù)據(jù)控制器芯片的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式系統(tǒng),特別是涉及一種動(dòng)態(tài)局部可重構(gòu)的嵌入式數(shù)據(jù) 控制器芯片的實(shí)現(xiàn)方法,適用于電力、交通、能源等行業(yè)的自動(dòng)化控制,屬集 成電路技術(shù)、計(jì)算機(jī)技術(shù)領(lǐng)域。
背景技術(shù):
傳統(tǒng)的數(shù)據(jù)控制器一般采用通用微處理器或數(shù)字信號(hào)處理器芯片實(shí)現(xiàn),其 硬件電路是固定的,實(shí)現(xiàn)的功能單元不可現(xiàn)場(chǎng)改變。而采用可編程邏輯器件
FPGA實(shí)現(xiàn)數(shù)據(jù)控制器,將形成一種現(xiàn)場(chǎng)可編程、可重構(gòu)的"通用"新型數(shù)據(jù)控制器。
可重構(gòu)系統(tǒng)芯片指在芯片中設(shè)置一個(gè)或多個(gè)可重構(gòu)單元,使最終用戶可以 對(duì)芯片的部分電5各結(jié)構(gòu)進(jìn)行現(xiàn)場(chǎng)硬編程或軟編程,從而達(dá)到縮短產(chǎn)品面市時(shí)間、 易于更新?lián)Q代、延長芯片生命周期的目的??芍貥?gòu)技術(shù)是片上系統(tǒng)芯片(SoC)設(shè) 計(jì)業(yè)的前沿技術(shù)領(lǐng)域。按照芯片配置方式可分為全部重構(gòu)和局部重構(gòu)兩種。全 部重構(gòu)是指只能被全部重構(gòu),計(jì)算的中間結(jié)果必須取出放在額外的存儲(chǔ)區(qū),直 到新的配置功能全部下載完畢,才能開始新的操作。局部重構(gòu)是指允許可重構(gòu) 系統(tǒng)的 一部分電路重構(gòu),操作過程中可以中斷或不中斷不需要重構(gòu)的其余電路 部分的工作。按照芯片重構(gòu)方式可分為靜態(tài)系統(tǒng)重構(gòu)和動(dòng)態(tài)系統(tǒng)重構(gòu)。靜態(tài)系 統(tǒng)重構(gòu)是指目標(biāo)系統(tǒng)的邏輯功能靜態(tài)重載,即只能在運(yùn)行前配置的系統(tǒng)。FPGA 芯片功能在外部邏輯的控制下,通過存貯于存貯器中不同的目標(biāo)系統(tǒng)數(shù)據(jù)的重新下載,而實(shí)現(xiàn)芯片邏輯功能的改變。對(duì)一個(gè)常規(guī)SRAM編程的FPGA,只能 用于實(shí)現(xiàn)靜態(tài)系統(tǒng)重構(gòu),在重新配置數(shù)據(jù)的過程中,舊的邏輯功能失去,新的 邏輯功能尚未建立,電路邏輯在時(shí)間軸上斷裂〔可稱作系統(tǒng)重構(gòu)時(shí)隙〕,系統(tǒng) 功能無法動(dòng)態(tài)連續(xù)。動(dòng)態(tài)系統(tǒng)重構(gòu)是指芯片能在運(yùn)行過程中實(shí)現(xiàn)邏輯功能配置, 進(jìn)行局部或全部的芯片邏輯的動(dòng)態(tài)重構(gòu)(或稱修改)。
發(fā)明內(nèi)容
1、 發(fā)明目的
本發(fā)明的目的之一是在于發(fā)明一種基于FPGA的動(dòng)態(tài)局部可重構(gòu)嵌入式數(shù) 據(jù)控制器芯片的實(shí)現(xiàn)方法,芯片能在運(yùn)行過程中實(shí)現(xiàn)邏輯功能配置,進(jìn)行局部 的芯片邏輯的動(dòng)態(tài)重構(gòu)(或稱#^文)。
2、 4支術(shù)方案
第一步,設(shè)計(jì)輸入與綜合
編寫頂層設(shè)計(jì)代碼,劃定可重構(gòu)模塊的i殳計(jì)邊界,子纟莫塊以黑盒子的形式 在頂層被調(diào)用,頂層設(shè)計(jì)沒有其他邏輯。實(shí)例化busmacros用于可重構(gòu)模塊和其 他模塊之間固定的數(shù)據(jù)交互通道,如圖2所示。
在明確了子模塊間的接口以及子模塊與頂層模塊的接口后,子模塊設(shè)計(jì)輸 入與綜合可以同步展開。動(dòng)態(tài)可重配子模塊需要具備以下特點(diǎn) ■可重配模塊的高度與芯片高度相同 ■可重配模塊的寬度必須以4個(gè)slice為倍數(shù)增長 ■時(shí)鐘邏輯獨(dú)立于可重構(gòu)模塊 ■可重構(gòu)模塊的邊界固定■可重構(gòu)模塊通過BUSmacro與其他模塊進(jìn)行通信 ■設(shè)計(jì)要考慮到當(dāng)重配發(fā)生時(shí)不影響靜態(tài)模塊的操作 ■可重配模塊中的存儲(chǔ)模塊在重配發(fā)生時(shí)要保存數(shù)據(jù)
第二步,初始預(yù)算
初始預(yù)算估計(jì)的輸入就是頂層模塊的綜合網(wǎng)表,主要完成 ■對(duì)設(shè)計(jì)進(jìn)行全局區(qū)域布局 ■約束每個(gè)子模塊的規(guī)模和區(qū)域 ■定位每個(gè)模塊的輸入輸出 ■對(duì)設(shè)計(jì)進(jìn)4于全局時(shí)序約束 ■將bus macros方文置在才莫塊間的邊界位置上
本步驟的流程為將綜合生成的頂層設(shè)計(jì)邏輯網(wǎng)表進(jìn)行實(shí)現(xiàn)(NGDbuild),生 成硬件原語網(wǎng)表(NGD);然后將原語網(wǎng)表導(dǎo)入約束編輯器和布局規(guī)劃器,進(jìn)行 面積約束、全局時(shí)序約束等,生成相應(yīng)的約束文件(UCF);最后再將約束文件 提供給實(shí)現(xiàn)工具,生成約束條件下的硬件原語網(wǎng)表,完成初始預(yù)算。
第三步,子模塊的激活實(shí)現(xiàn)
每個(gè)子模塊的激活實(shí)現(xiàn)單獨(dú)進(jìn)行,使用單獨(dú)的實(shí)現(xiàn)目錄。具體方法在激 活模式下運(yùn)行實(shí)現(xiàn)工具(NGDbuild)讀取頂層設(shè)計(jì)、頂層用戶的約束文件和當(dāng) 前子模塊的邏輯網(wǎng)表作為輸入,生成硬件原語網(wǎng)表(NGD)文件作為輸出,該 文件中只有當(dāng)前子模塊的邏輯網(wǎng)表被激活,其他子模塊仍然是類似于黑盒子的 結(jié)構(gòu)框架。在激活模式下用約束編輯器為當(dāng)前子模塊附加時(shí)間約束,然后根據(jù)新的約束文件對(duì)所生成的NGD文件進(jìn)行映射、布局布線等實(shí)現(xiàn)步驟。子模塊完 成了布局布線而且滿足時(shí)序要求后,就稱此模塊為物理實(shí)現(xiàn)模塊(PIM),調(diào)用 pimcreate命令將結(jié)果進(jìn)行提交供合并時(shí)使用。
第四步,模塊的最后合并
將所有子模塊的激活實(shí)現(xiàn)結(jié)果和頂層實(shí)現(xiàn)結(jié)果有機(jī)的組織起來,完成整個(gè) 設(shè)計(jì)的實(shí)現(xiàn)。
在合并模式下運(yùn)行NGDBuild工具,NGDBuild讀取頂層設(shè)計(jì)的網(wǎng)表文件、頂 層設(shè)計(jì)的約束文件和所有物理實(shí)現(xiàn)模塊結(jié)果文件作為輸入,對(duì)整個(gè)設(shè)計(jì)頂層進(jìn) 行全面的實(shí)體擴(kuò)展,接著對(duì)合并后的設(shè)計(jì)進(jìn)行映射、布局布線,生成比特流文 件。
第五步,設(shè)計(jì)確認(rèn),生成可重構(gòu)設(shè)計(jì)文件
1) 確認(rèn)設(shè)計(jì),靜態(tài)時(shí)序分析以及功能仿真;
2) 在底層編輯器(FPGAEditor)環(huán)境下手工檢查布線結(jié)果,對(duì)不希望穿越 邊界的信號(hào)進(jìn)行修正;
3) 生成上電時(shí)的比特流;
4) 生成每一個(gè)可重構(gòu);漠塊的比特流;
第六步,比特流文件下載,實(shí)現(xiàn)動(dòng)態(tài)局部可重構(gòu)芯片
通過FPGA的JTAG端口下載比特流文件,即可實(shí)現(xiàn)動(dòng)態(tài)局部可重構(gòu)嵌入式 數(shù)據(jù)控制器芯片。
3、有益效果
7利用本發(fā)明實(shí)現(xiàn)的可重構(gòu)系統(tǒng)芯片在芯片中設(shè)置一個(gè)或多個(gè)可重構(gòu)單元, 使最終用戶可以對(duì)芯片的部分電路結(jié)構(gòu)進(jìn)行現(xiàn)場(chǎng)石更編程或4大編程,/人而達(dá)到縮 短產(chǎn)品面市時(shí)間、易于更新?lián)Q代、延長芯片生命周期的目的。
圖l是邏輯設(shè)計(jì)的動(dòng)態(tài)局部重構(gòu)設(shè)計(jì)流程圖2是總線宏單元(busmacros)用于可重構(gòu)模塊和其他模塊之間固定的數(shù)據(jù)交 互通道的示意圖3是初始預(yù)算階段的流程圖4是一個(gè)具有兩個(gè)可重構(gòu)模塊的設(shè)計(jì)布局圖5是子模塊的激活實(shí)現(xiàn)階段流程圖6是合并階段的設(shè)計(jì)流圖7是實(shí)施例系統(tǒng)架構(gòu)示意圖8是芯片結(jié)構(gòu)示意圖
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。
本發(fā)明采用Xilinx公司的Virtex-II Pro FPGA芯片實(shí)現(xiàn)動(dòng)態(tài)局部可重構(gòu)嵌入 式數(shù)據(jù)控制器芯片。Virtex-II Pro FPGA芯片內(nèi)嵌PPC405硬CPU核,支持IBM 開發(fā)的CoreConnect總線的標(biāo)準(zhǔn)。CoreCo皿ect技術(shù)使多個(gè)芯片核(IP Core)相 互連接成為一個(gè)完整的新芯片成為可能。CoreConnect技術(shù)使整合變得更為容易, 而且在標(biāo)準(zhǔn)產(chǎn)品平臺(tái)設(shè)計(jì)中的處理器、系統(tǒng)以及外圍的核可以重復(fù)使用,以達(dá)到整個(gè)更高的系統(tǒng)性能。CoreConnect總線失見范一共i史計(jì)了三種總線和一個(gè)高性 能總線與低性能總線連接的橋,分別是PLB(Processor Local Bus)、 OPB ( On-chip Peripheral BUS ) 、 DCR(Device Control Register Bus)和OPB橋。本發(fā)明實(shí)現(xiàn)的 可重構(gòu)嵌入式數(shù)據(jù)控制器芯片釆用CoreConnect總線架構(gòu),采用PLB總線連接 高性能的處理器核、內(nèi)存控制器以及基本的外圍的芯片核,可重構(gòu)部分通過OPB 總線進(jìn)行連接??芍貥?gòu)部分既可是外圍設(shè)備的芯片核,也可是底層算法核,如N 點(diǎn)快速離散傅立葉變換(FFT),可根據(jù)用戶需要?jiǎng)討B(tài)配置為512點(diǎn)FFT或1024 點(diǎn)FFT,而其他邏輯部分保持不變。在可重構(gòu)模塊占有寬度內(nèi)的所有器件資源 都屬于可重構(gòu)模塊所有,可重構(gòu)模塊的邊界必須是確定不變的。當(dāng)模塊間有通 訊時(shí),在邊界上4吏用BusMacro。
設(shè)計(jì)采用Xilinx公司的Virtex-II Pro FPGA芯片XC2V40-5FG256,系統(tǒng)由3 個(gè)模塊組成顯示模塊、運(yùn)算模塊和輸入模塊,完成輸入數(shù)字進(jìn)行加或減的可 重構(gòu)運(yùn)算,并將結(jié)果通過LED顯示屏進(jìn)行顯示。
1. 頂層代碼設(shè)計(jì)與綜合、才莫塊代碼設(shè)計(jì)與綜合
采用synplify pro進(jìn)行綜合,頂層設(shè)計(jì)中子模塊均為"黑匣子",生成網(wǎng)表文件 caltop.edf、 adder.edf、 led—driver.edf、 pushbutton.edf、 subtractor.edf;
2. 初始預(yù)算
"ngdbuild -p xc2v40fg256-4 -modular initial calctop.edf'
根據(jù)設(shè)計(jì)規(guī)范要求對(duì)面積、管腳等進(jìn)行規(guī)劃約束。
3. 子模塊的激活實(shí)現(xiàn)-4 -modular module -active calctop.ngo map -pr b calctop.ngd -o calctop—map.ncd calctop.pcf par -w -ol 5 -n 3 -s 3 calctop一map.ncd mppr.dir calctop.pcf cp mppr.dir/5—5_3.ncd calctop.ncd cp ../../bitgen—v2_jtag.ut.
bitgen -d -f bitgen—v2」tag.ut -g ActiveReconfig:yes calctop.ncd tree calctop.ncd calctop.pcf
pimcreate -ncd calctop.ncd -ngm calctop_map.ngm ../../Pims 對(duì)每一個(gè)子模塊進(jìn)行激活。
4. 模塊的最后合并
ngdbuild -p xc2v40fg256-4 -modular assemble -pimpath ../../Pims calctop.edf
map -pr b calctop.ngd -o calctop—map.ncd calctop.pcf
par -w calctop—map.ncd calctop.ncd calctop.pcf
cp ../../bitgen—v2」tag.ut.
bitgen -f bitgen一v2」'tag.ut calctop.ncd
tree calctop.ncd calctop.pcf
將子模塊與頂層設(shè)計(jì)有機(jī)的組合起來,生成完整的設(shè)計(jì)文件。
5. i更計(jì)確認(rèn),生成可重構(gòu)i更計(jì)文件
確認(rèn)設(shè)計(jì),在底層編輯器(FPGAEditor)環(huán)境下手工檢查布線結(jié)果,對(duì)不 希望穿越邊界的信號(hào)進(jìn)行^修正;分別對(duì)加法運(yùn)算和減法運(yùn)算兩個(gè)頂層設(shè)計(jì)生成 對(duì)應(yīng)的比特流文件,完成可重構(gòu)設(shè)計(jì)流程。
10
權(quán)利要求
1、一種動(dòng)態(tài)局部可重構(gòu)的嵌入式數(shù)據(jù)控制器芯片的實(shí)現(xiàn)方法,其特征在于,包括以下步驟1)編寫頂層設(shè)計(jì)代碼,劃定可重構(gòu)模塊的設(shè)計(jì)邊界,子模塊以黑盒子的形式在頂層被調(diào)用,頂層設(shè)計(jì)沒有其他邏輯;實(shí)例化bus macros用于可重構(gòu)模塊和其他模塊之間固定的數(shù)據(jù)交互通道;在明確了子模塊間的接口以及子模塊與頂層模塊的接口后,子模塊設(shè)計(jì)輸入與綜合可以同步展開;2)輸入頂層模塊的綜合網(wǎng)表,用于對(duì)設(shè)計(jì)進(jìn)行全局區(qū)域布局、約束每個(gè)子模塊的規(guī)模和區(qū)域、定位每個(gè)模塊的輸入輸出、對(duì)設(shè)計(jì)進(jìn)行全局時(shí)序約束、將bus macros放置在模塊間的邊界位置上;3)在激活模式下運(yùn)行實(shí)現(xiàn)工具(NGDbuild)讀取頂層設(shè)計(jì)、頂層用戶的約束文件和當(dāng)前子模塊的邏輯網(wǎng)表作為輸入,生成硬件原語網(wǎng)表(NGD)文件作為輸出;在激活模式下用約束編輯器為當(dāng)前子模塊附加時(shí)間約束,然后根據(jù)新的約束文件對(duì)所生成的NGD文件進(jìn)行映射、布局布線實(shí)現(xiàn)步驟;子模塊完成了布局布線而且滿足時(shí)序要求后,將結(jié)果進(jìn)行提交供合并時(shí)使用;4)將所有子模塊的激活實(shí)現(xiàn)結(jié)果和頂層實(shí)現(xiàn)結(jié)果有機(jī)的組織起來,完成整個(gè)設(shè)計(jì)的實(shí)現(xiàn);5)設(shè)計(jì)確認(rèn),生成可重構(gòu)設(shè)計(jì)文件;6)比特流文件下載,實(shí)現(xiàn)動(dòng)態(tài)局部可重構(gòu)芯片。
2、 根據(jù)權(quán)利要求l所述的一種動(dòng)態(tài)局部可重構(gòu)的嵌入式數(shù)據(jù)控制器芯片的 實(shí)現(xiàn)方法,其特征在于,上述步驟2)進(jìn)一步包括將綜合生成的頂層設(shè)計(jì)邏輯 網(wǎng)表進(jìn)行實(shí)現(xiàn)(NGDbuild),生成硬件原語網(wǎng)表(NGD);然后將原語網(wǎng)表導(dǎo)入 約束編輯器和布局規(guī)劃器,進(jìn)行面積約束、全局時(shí)序約束等,生成相應(yīng)的約束文件(UCF);最后再將約束文件提供給實(shí)現(xiàn)工具,生成約束條件下的硬件原語 網(wǎng)表
3、 根據(jù)權(quán)利要求l所述的一種動(dòng)態(tài)局部可重構(gòu)的嵌入式數(shù)據(jù)控制器芯片的 實(shí)現(xiàn)方法,其特征在于,上述步驟4)進(jìn)一步包括在合并模式下運(yùn)行NGDBuild 工具,NGDBuild讀取頂層設(shè)計(jì)的網(wǎng)表文件、頂層設(shè)計(jì)的約束文件和所有物理實(shí) 現(xiàn)模塊結(jié)果文件作為輸入,對(duì)整個(gè)設(shè)計(jì)頂層進(jìn)行全面的實(shí)體擴(kuò)展,接著對(duì)合并 后的設(shè)計(jì)進(jìn)行映射、布局布線,生成比特流文件。
4、 根據(jù)權(quán)利要求l所述的一種動(dòng)態(tài)局部可重構(gòu)的嵌入式數(shù)據(jù)控制器芯片的 實(shí)現(xiàn)方法,其特征在于,上述步驟5)進(jìn)一步包括如下步驟1) 確認(rèn)設(shè)計(jì),靜態(tài)時(shí)序分析以及功能仿真;2) 在底層編輯器(FPGAEditor)環(huán)境下手工檢查布線結(jié)果,對(duì)不希望穿越 邊界的信號(hào)進(jìn)行修正;3) 生成上電時(shí)的比特流;4) 生成每一個(gè)可重構(gòu)模塊的比特流。
全文摘要
本發(fā)明公開了一種動(dòng)態(tài)局部可重構(gòu)的嵌入式數(shù)據(jù)控制器芯片的實(shí)現(xiàn)方法。本發(fā)明采用FPGA芯片實(shí)現(xiàn)動(dòng)態(tài)局部可重構(gòu)嵌入式數(shù)據(jù)控制器芯片。支持IBM開發(fā)的CoreConnect總線的標(biāo)準(zhǔn)。CoreConnect技術(shù)使多個(gè)芯片核(IP Core)相互連接成為一個(gè)完整的新芯片成為可能。本發(fā)明實(shí)現(xiàn)的可重構(gòu)嵌入式數(shù)據(jù)控制器芯片采用CoreConnect總線架構(gòu),采用PLB總線連接高性能的處理器核、內(nèi)存控制器以及基本的外圍的芯片核,可重構(gòu)部分通過OPB總線進(jìn)行連接。可重構(gòu)部分既可是外圍設(shè)備的芯片核,也可是底層算法核,而其他邏輯部分保持不變。在可重構(gòu)模塊占有寬度內(nèi)的所有器件資源都屬于可重構(gòu)模塊所有,可重構(gòu)模塊的邊界必須是確定不變的。當(dāng)模塊間有通訊時(shí),在邊界上使用Bus Macro。
文檔編號(hào)G06F17/50GK101436225SQ200810243670
公開日2009年5月20日 申請(qǐng)日期2008年12月11日 優(yōu)先權(quán)日2008年12月11日
發(fā)明者海 于, 于鵬飛, 強(qiáng) 喻, 徐建松, 輝 鄧, 郭經(jīng)紅, 馬媛媛, 鮑興川, 輝 黃 申請(qǐng)人:國網(wǎng)電力科學(xué)研究院;南京南瑞集團(tuán)公司