一種基于命令字的fpga資源時序平衡方法
【專利摘要】一種基于命令字的FPGA資源時序平衡方法,針對在航天等高可靠性應(yīng)用場合,不便采用大規(guī)模商業(yè)器件的情況下,導(dǎo)致FPGA資源緊張的問題。通過合理平衡FPGA資源和外部存儲資源的方式,達(dá)到FPGA在消耗較小資源的情況下實現(xiàn)同等的邏輯功能,同時提供了一定的軟件可編程特性,達(dá)到了邏輯資源、功能、可編程性的和諧統(tǒng)一。本發(fā)明不僅減少了FPGA邏輯使用量,降低了單粒子風(fēng)險,同時還提供了在不改變FPGA邏輯的情況下提供了軟件可編程特性,具有較為廣闊的應(yīng)用前景和借鑒性。
【專利說明】—種基于命令字的FPGA資源時序平衡方法【技術(shù)領(lǐng)域】[0001]本發(fā)明涉及一種對Xilinx SRAM型FPGA抗單粒子效應(yīng)加固的基于幀的高級配置 管理架構(gòu),屬于通信領(lǐng)域?!颈尘凹夹g(shù)】[0002]對于航天應(yīng)用場合,由于外空存在大量高能粒子,大規(guī)模SRAM型FPGA存在單粒子 翻轉(zhuǎn)效應(yīng),目前采用的防護(hù)措施主要是通過回讀SRAM型FPGA內(nèi)部的配置數(shù)據(jù),與原始下載 文件進(jìn)行比對,實時進(jìn)行刷新,以緩解單粒子效應(yīng)帶來的影響。[0003]一般是通過非SRAM型高等級抗輻射類型的FPGA來實現(xiàn)對Xilinx SRAM型FPGA 抗單粒子效應(yīng)加固的高級配置管理功能,但是非SRAM型FPGA由于工藝的限制,在資源容量 上往往顯得比較局促。同時高等級抗輻射類型FPGA也并不是100%的完全對單粒子免疫, 這就要求盡可能使用少的邏輯實現(xiàn)特定的邏輯,以減少單粒子效應(yīng)作用面積。[0004]對于非SRAM型FPGA,例如反熔絲型或者FLASH型,存在著邏輯資源少,時序性能 差,布通率小的缺點。所以在采用這種類型的FPGA時,經(jīng)常會面臨著可實現(xiàn)的邏輯功能簡 單,以及各種各樣的時序問題,尤其邏輯資源緊俏的抗輻射型FPGA的在邏輯功能、時序、資 源占用率、功耗方面十分矛盾。[0005]由于SRAM型FPGA的配置文件需要外部存儲設(shè)備進(jìn)行存儲,為了抗單粒子,外部存 儲設(shè)備(例如FLASH) —般會進(jìn)行3模冗余備份,并且會有相當(dāng)大的資源空缺。這就為將一 部分邏輯功能平衡到外部存儲設(shè)備中提供了條件,同時由于三模冗余備份的存在,其可靠 性也能有所保障。所以現(xiàn)在急需研究一種方法使得非SARM型FPGA利用最少的資源生成復(fù) 雜邏輯。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的技術(shù)解決問題是:克服現(xiàn)有技術(shù)的不足,提出了一種基于命令字的資源 時序平衡方法,能夠使FPGA功能、資源、時序相平衡,解決了無法用少量資源生成復(fù)雜邏輯 的問題。[0007]本發(fā)明的技術(shù)解決方案是:[0008]一種基于命令字的FPGA資源時序平衡方法,包括步驟如下:[0009](I)依據(jù)設(shè)計需求設(shè)計時序控制命令字,并將命令字順序組合成一個能通過FPGA 譯碼的完整時序邏輯;[0010](2)將時序控制命令字與比特流文件組合成幀數(shù)據(jù),并將幀數(shù)據(jù)存儲于外部存儲 芯片中;[0011](3) FPGA讀取外部存儲芯片中的幀數(shù)據(jù)中的時序控制命令字;[0012](4)FPGA利用步驟(3)中讀取的時序控制命令字生成該命令字對應(yīng)的時序邏輯。[0013]所述步驟(2)外部存儲芯片為FLASH芯片。[0014]所述步驟(2)中的幀數(shù)據(jù)指全局配置幀頭段、全局配置幀數(shù)據(jù)段、全局配置幀尾段、回讀幀頭段、回讀幀尾段、回讀幀尾段、刷新幀頭段、刷新幀尾段。[0015]本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是:[0016](I)本發(fā)明將命令字存儲于外部存儲芯片中,縮減了 FPGA存儲大量數(shù)據(jù)的弊端, 節(jié)省了大量寶貴的FPGA寄存器資源,外部FLASH由于本身是高等級器件,并且具有三模冗 余,通過合理安排資源,降低了對FPGA的要求,尤其適用于航天應(yīng)用場合。[0017](2)本發(fā)明相對于反熔絲型FPGA,避免了因為修改數(shù)據(jù)而造成的邏輯修改,提高了 使用的靈活性,避免了重復(fù)編程造成的器件浪費,節(jié)省了 FPGA的邏輯使用量。[0018](3)本發(fā)明通過操作命令字的方式,靈活實現(xiàn)各種時序需求,有極大的可操作性,, 同時解決了反熔絲型或FLASH型FPGA,存在的邏輯資源少,時序性能差等問題。[0019](5)本發(fā)明采用了時序命令字來控制FPGA的接口時序,在測試和調(diào)試過程中可以 輕易的修改時序,利于調(diào)試?!緦@綀D】
【附圖說明】[0020]圖1本發(fā)明時序邏輯生成方法流程圖;[0021]圖2本發(fā)明各幀段FLASH存儲示意圖;[0022]圖3本發(fā)明時序命令字示意圖;[0023]圖4本發(fā)明時序命令控制字重組、分割、存儲示意圖?!揪唧w實施方式】[0024]下面結(jié)合附圖對本發(fā)明的【具體實施方式】進(jìn)行進(jìn)一步的詳細(xì)描述。[0025]如圖1所示,本發(fā)明提供的一種基于命令字的FPGA資源時序平衡方法,通過合理 平衡FPGA資源和外部存儲芯片的方式,達(dá)到FPGA在消耗較小資源的情況下實現(xiàn)同等的邏 輯功能,既生成復(fù)雜的邏輯關(guān)系,本發(fā)明包括以下步驟:[0026](I)根據(jù)需求設(shè)計時序控制命令字,并將命令字順序組合成一個能通過FPGA譯碼 的完整時序邏輯。[0027]如圖2、3所示,每個命令字占用4Byte,其中高字節(jié)設(shè)為8 ’ hFE作為命令字的幀頭, 次高字節(jié)和次低字節(jié)未定義,默認(rèn)為全零,最低字節(jié)用來對不同的時序進(jìn)行編碼。如圖2、3 所示,只示意了 5種主要的時序形式,實際中可以根據(jù)需要進(jìn)行擴展,這有點類似CPU的工 作形式,圖中的時序命令字在實際中被編碼為如下形式。[0028]CS_HIGH_T0_L0W:8’ h02[0029]CS_L0W_T0_HIGH:8’ h03[0030]CS_T0GGLE_HIGH:8’h04[0031]CS_T0GGLE_L0W:8’ h05[0032]REALIGNED:8’ h09[0033](2)將時序控制命令字與比特流文件組合成幀數(shù)據(jù),并將幀數(shù)據(jù)存儲于外部存儲 芯片中;如圖4所示,將時序控制命令字與原始的比特流流文件、msk (掩碼)文件、高級配 置管理操作回讀和刷新所用到的專用命令字進(jìn)行組合,生成利于存儲的7個幀段,分別為:[0034]全局配置幀頭段:糅合了時序命令字和原始流文件配置幀頭[0035]全局配置幀數(shù)據(jù)段:糅合了原始流文件配置數(shù)據(jù)和幀地址[0036]全局配置幀尾段:糅合了時序命令字和原始流文件配置幀尾[0037]回讀幀頭段:糅合了回讀專用命令字和時序命令字[0038]回讀幀尾段:糅合了回讀專用命令字和時序命令字[0039]刷新幀頭段:糅合了刷新專用命令字和時序命令字[0040]刷新幀尾段:糅合了刷新專用命令字和時序命令字[0041]對于這7個幀段的存儲,并沒用采用串行的方式,由于使用外部存儲芯片進(jìn)行存 儲,例如FLASH,所以以扇區(qū)為分段單位,這樣利于添加新的命令字;所述步驟(2)外部存儲 芯片為FLASH芯片。[0042](3) FPGA讀取外部存儲芯片中的幀數(shù)據(jù)中的時序控制命令字;[0043](4)FPGA利用步驟(3)中讀取的時序控制命令字生成該命令字對應(yīng)的時序邏輯。[0044]實現(xiàn)FPGA和FLASH的橋接通路以及實際運行如果要實現(xiàn)高級配置管理功能,通常 會在FPGA內(nèi)部固定死回讀幀頭段、回讀幀尾段、刷新幀頭段、刷新幀尾段的數(shù)據(jù)。把這些數(shù) 據(jù)挪到外部FLASH中后,只需要回讀FLASH對應(yīng)的數(shù)據(jù)即可以實現(xiàn)該段數(shù)據(jù)的操作,同時需 要更改回讀刷新命令字時只需要利于FPGA和FLASH的橋接通道,修改FLASH中的數(shù)據(jù)即 可。[0045]在實際運行中,F(xiàn)PGA讀取FLASH中的數(shù)據(jù),由于時序命令字只存在于幀頭段和幀 尾段,所以可以避免時序命令字和配置數(shù)據(jù)的沖突。當(dāng)檢測到時序命令字時,根據(jù)具體含義 生成特定的時序。[0046]本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域技術(shù)人員的公知技術(shù)。
【權(quán)利要求】
1.一種基于命令字的FPGA資源時序平衡方法,其特征在于步驟如下:(1)根據(jù)需求設(shè)計時序控制命令字,并將命令字順序組合成一個能通過FPGA譯碼的完 整時序邏輯;(2)將時序控制命令字與比特流文件組合成幀數(shù)據(jù),并將幀數(shù)據(jù)存儲于外部存儲芯片中;(3)FPGA讀取外部存儲芯片中的幀數(shù)據(jù)中的時序控制命令字;(4)FPGA利用步驟(3)中讀取的時序控制命令字生成該命令字對應(yīng)的時序邏輯。
2.根據(jù)權(quán)利要求1所述的一種基于命令字的FPGA資源時序平衡方法,其特征在于:所 述步驟(2)外部存儲芯片為FLASH芯片。
3.根據(jù)權(quán)利要求1所述的一種基于命令字的FPGA資源時序平衡方法,其特征在于:所 述步驟(2)中的幀數(shù)據(jù)指全局配置幀頭段、全局配置幀數(shù)據(jù)段、全局配置幀尾段、回讀幀頭 段、回讀幀尾段、回讀幀尾段、刷新幀頭段和刷新幀尾段。
【文檔編號】G06F9/305GK103500083SQ201310439309
【公開日】2014年1月8日 申請日期:2013年9月24日 優(yōu)先權(quán)日:2013年9月24日
【發(fā)明者】劉憲陽, 王鵬程, 趙文亮, 王浩, 田林琳 申請人:航天恒星科技有限公司