欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種靜態(tài)存儲型現場可編程邏輯門陣列的配置方法

文檔序號:6768943閱讀:157來源:國知局
專利名稱:一種靜態(tài)存儲型現場可編程邏輯門陣列的配置方法
技術領域
本發(fā)明涉及現場可編程邏輯門陣列(FPGA)技術領域,尤其涉及一種靜態(tài)存儲型FPGA的配置方法。
背景技術
Xilinx公司出產的靜態(tài)存儲(SRAM)型FPGA器件(以下稱為XilinxFPGA)運行時 的邏輯狀態(tài)由配置區(qū)的數據決定。但是Xilinx FPGA器件在實際工作過程中可能因外部工 作環(huán)境的干擾(如電壓突變、無線脈沖干擾、高能粒子撞擊等)而使FPGA的配置區(qū)數據發(fā) 生改變,從而影響FPGA嵌入邏輯的正常運行。目前一種保證配置區(qū)數據正確性的解決方式為如圖1所示,使用外部控制電路 將存儲于程序存儲器(PROM)的配置文件中的配置數據循環(huán)重配置到FPGA的配置區(qū),從而 實現FPGA配置區(qū)數據的動態(tài)刷新。該方法可以在不中斷FPGA正常工作的情況下,反復向 FPGA配置區(qū)寫入正確的配置數據,確保發(fā)生錯誤的配置區(qū)數據能得到及時更新,從而增強 FPGA工作的可靠性。Xilinx FPGA的全部配置數據中既包括對FPGA的工作模式進行設置的指令,也包 括將要寫入FPGA的配置區(qū)的數據。當對FPGA的配置區(qū)進行循環(huán)重配置時,有部分指令和 數據是不能被反復寫入的,需要在重配置過程中屏蔽掉這部分不允許反復寫入的數據,如 果這些不允許反復寫入的數據在FPGA工作過程中被重復寫入,可能會改變FPGA嵌入邏輯 的工作狀態(tài),導致FPGA不能正常工作。Xilinx公司的FPGA開發(fā)軟件ISE在生成配置文件bit時,也會生成一個數據 屏蔽文件*. 11,在該數據屏蔽文件*. 11中列出了不允許反復寫入的配置數據在配置文件 *.bit中的位置。因此另一種動態(tài)刷新方法為,在動態(tài)刷新時,讀取配置文件*.bit和屏蔽 文件*. 11,根據兩個文件進行數據分析,從而避免寫入屏蔽字。然而,第一種解決方法只支持每次對所有配置區(qū)數據進行全部重配置,無法保證 不中斷FPGA的正常工作。第二種解決方法需要將配置信息和不允許重復寫入的信息分別 存放在2個不同的數據文件中,需要2塊ROM芯片保存這2個數據文件,增加了硬件的使用, 而且分析過程需要對兩個文件中的信息進行解析,過程復雜。

發(fā)明內容
有鑒于此,本發(fā)明針對Xilinx FPGA的配置區(qū)數據在受到外部環(huán)境干擾的情況,提 供一種SRAM型FPGA的配置方法,在循環(huán)重復刷新配置區(qū)數據時,區(qū)分配置數據中允許反復 寫入FPGA的數據和不允許反復寫入FPGA的數據,從而循環(huán)重復刷新配置區(qū)數據時,避免 FPGA嵌入邏輯工作狀態(tài)被改變。為此,本發(fā)明提供了一種SRAM型FPGA的配置方法,該方法包括讀取FPGA配置文件中的配置信息和FPGA屏蔽數據文件中的屏蔽信息;屏蔽信息 指示出禁止在FPGA嵌入邏輯工作狀態(tài)下被重復寫入的配置信息在配置文件中的位置;
將讀取的配置信息分解為多個數據幀,每個數據幀中包括一個FPGA配置幀數據、 對應的屏蔽信息和數據幀所含數據類型;所述屏蔽信息表示數據幀是否允許在FPGA內部 邏輯運行過程中被重復寫入,數據幀所含數據類型包括指令和數據兩種;將所有分解后的數據幀存放到一個新配置文件中,并寫入存儲介質;在進行動態(tài)刷新操作時,邏輯控制電路從所述新配置文件中逐幀讀入數據幀,根 據數據幀中的屏蔽信息過濾掉禁止重復寫入的數據幀,僅將允許重復寫入的數據幀還原為 原始的FPGA配置幀數據,并寫入FPGA配置區(qū);在寫入 時,如果數據幀所含數據類型為指令, 則直接寫入,如果數據幀所含數據類型為數據,則在寫入數據后,進一步向FPGA填充冗余 數據;當全部新配置文件的數據幀全部被讀入后,邏輯控制電路重復執(zhí)行逐幀讀入、寫 入FPGA的操作。在進行全局配置時,邏輯控制電路從新配置文件中逐幀讀入數據幀,將所有讀取 的數據幀還原為原始的Xilinx FPGA配置幀數據,并寫入XilinxFPGA配置區(qū);在寫入時,如 果數據幀所含數據類型為指令,則直接寫入,如果數據幀所含數據類型為數據,則在寫入數 據后,進一步向Xilinx FPGA填充冗余數據。較佳地,所述數據幀的幀格式包括同步域、幀類型域、幀長度域和數據域;所述同步域,用于記載幀同步標記;所述幀類型域,用于記載屏蔽信息和數據幀所含數據類型;所述幀類型域包括4 類數據類型;第一類表示該數據幀所含內容為命令且不需要屏蔽;邏輯控制電路接收到該類數 據幀時,無論是對FPGA進行全局配置還是動態(tài)刷新,都將該數據幀轉換為原始的FPGA配置 幀數據,寫入FPGA配置區(qū);第二類表示該數據幀所含內容為命令且需要屏蔽;邏輯控制電路接收到該類數據 幀時,當正在進行全局配置時,則將該數據幀轉換為原始的FPGA配置幀數據,寫入FPGA配 置區(qū);而當正在進行動態(tài)刷新時,則不將該數據幀寫入FPGA配置區(qū);第三類表示該數據幀所含內容為數據且不需要屏蔽;邏輯控制電路接收到該類數 據幀時,無論是正在對FPGA進行全局配置還是動態(tài)刷新,都將該數據幀轉換為原始的FPGA 配置幀數據,寫入FPGA配置區(qū),且在寫入完畢后,繼續(xù)向FPGA配置區(qū)填充與當前配置幀長 度相同的冗余數據;第四類表示該數據幀所含內容為數據且需要屏蔽;邏輯控制電路接收到該類數據 幀時,當正在進行全局配置時,則將該數據幀轉換為原始的FPGA配置幀數據,寫入FPGA配 置區(qū),且在寫入完畢后,繼續(xù)向FPGA配置區(qū)填充與當前配置幀長度相同的冗余數據;當正 在進行動態(tài)刷新時,則不將該數據幀寫入FPGA配置區(qū);所述數據域,用于記載有效數據。較佳地,所述數據幀進一步包括幀長度域,用于記載本幀數據域的長度。通過技術方案的實施,達到了如下的效果1)FPGA的配置文件中包含了屏蔽數據相關信息,這樣邏輯控制電路可以根據屏蔽 數據相關信息過濾掉配置數據流中禁止反復刷新的部分配置數據,只向Xilinx FPGA的配 置區(qū)寫入允許動態(tài)刷新的數據,這樣確保動態(tài)刷新過程不會破壞FPGA內部運行數據,動態(tài)刷新過程和FPGA的正常工作互相獨立。2)將配置文件*. bit和屏蔽數據文件*. 11合并到一個新配置文件*. bin,只需使 用一塊ROM元件存儲*. bin文件,減少了存儲元件的使用量。3)配置文件結構簡單,內部幀結構固定,易于對文件數據進行解析,簡化了外部邏 輯控制電路的邏輯設計。


圖1為現有技術中FPGA的重配置示意圖。圖2為本發(fā)明動態(tài)刷新方案的流程示意圖。圖3為本發(fā)明動態(tài)刷新方案的功能框圖。圖4為本發(fā)明數據幀的結構示意圖。
具體實施例方式本發(fā)明將Xilinx FPGA配置文件中的數據分為兩種1)屏蔽數據。屏蔽數據是FPGA內部邏輯運行時不允許重復寫入配置區(qū)的數據,其 對應Xilinx FPGA配置指令或者Xilinx FPGA內部硬件結構的RAM資源。FPGA工作時,內 部邏輯會操作這些RAM資源,動態(tài)刷新時對這些RAM資源進行寫入將會改變內部邏輯的運 行狀態(tài)。2)非屏蔽數據。非屏蔽數據是Xilinx FPGA內部邏輯運行時允許重復寫入配置 區(qū)的數據,其對應Xilinx FPGA內部硬件結構的可配置邏輯塊(CLB)和布線資源,這些資源 在Xilinx FPGA內部邏輯運行時不會改變狀態(tài),動態(tài)刷新可以對這些資源的配置區(qū)進行重 復寫入而不影響內部程序的正常運行?;谏鲜鰯祿澐?,本發(fā)明提供了一種Xilinx FPGA配置方法,該方法為讀取 Xilinx FPGA配置文件中的配置信息和Xilinx FPGA屏蔽數據文件中的屏蔽信息;屏蔽信 息指示出禁止在Xi 1 inx FPGA嵌入邏輯工作狀態(tài)下被重復寫入的配置信息在配置文件中的 位置;將讀取的配置信息分解為多個數據幀,每個數據幀中包括一個FPGA配置幀數 據、對應的屏蔽信息和數據幀所含數據類型;所述屏蔽信息表示數據幀是否允許在Xilinx FPGA內部邏輯運行過程中被重復寫入,數據幀所含數據類型包括指令和數據兩種;將所有分解后的數據幀存放到一個新配置文件中,并寫入存儲介質;在進行動態(tài)刷新操作時,邏輯控制電路從所述新配置文件中逐幀讀入數據幀,根 據數據幀中的屏蔽信息過濾掉禁止重復寫入的數據幀,僅將允許重復寫入的數據幀還原為 原始的Xilinx FPGA配置幀數據,并寫入Xilinx FPGA配置區(qū);在寫入時,如果數據幀所含 數據類型為指令,則直接寫入,如果數據幀所含數據類型為數據,則在寫入數據后,進一步 向Xilinx FPGA填充冗余數據,以保證后續(xù)數據的連續(xù)寫入;當全部新配置文件的數據幀全部被讀入后,邏輯控制電路重復執(zhí)行逐幀讀入、寫 入Xilinx FPGA的操作,從而實現了持續(xù)的動態(tài)刷新。然而,對于全局配置,不需要考慮是否允許重復寫入的問題,將所有配置信息寫入 配置區(qū)。即在進行全局配置時,邏輯控制電路從所述新配置文件中逐幀讀入數據幀,將所有讀取的數據幀還原為原始的Xilinx FPGA配置幀數據,并寫入Xilinx FPGA配置區(qū);在寫入時,如果數據幀所含數據類型為指令,則直接寫入,如果數據幀所含數據類型為數據,則在 寫入數據后,進一步向Xilinx FPGA填充冗余數據。下面結合附圖對本發(fā)明技術方案進行詳細描述。在現有技術中,向Xilinx FPGA的配置區(qū)寫入配置數據的最小單位是幀,幀長度與 FPGA的硬件結構有關,如V2C3000器件的幀長度為166個雙字,V2cl000器件的幀長度為 106個雙字,以下稱這種Xilinx FPGA硬件對應的幀為配置幀。Xilinx公司的FPGA開發(fā)軟件ISE在生成配置文件bit時,也會生成一個數據 屏蔽文件*. 11,在該數據屏蔽文件*. 11中列出了不允許反復寫入的配置數據在配置文件 *.bit中的位置。參見圖2和圖3,本發(fā)明首先根據配置文件bit和數據屏蔽文件11生成自定 義二進制*. bin文件,該自定義二進制*. bin文件以固定數據幀的格式存儲配置數據。具 體來說,本步驟具體包括讀取配置文件*. bit和數據屏蔽文件*. 11,根據數據屏蔽文件*. 11中記載的屏 蔽數據在配置文件中的位置,識別配置文件中的屏蔽數據和非屏蔽數據;根據預先獲知的 數據位置和指令位置,識別配置文件中所記載數據的類型;根據Xilinx FPGA的硬件結構, 將bit文件中的配置信息分解單個的數據幀,在每個數據幀中包括一個Xilinx FPGA配 置幀數據、對應的屏蔽信息和數據幀所含數據類型;將所有分解后的數據幀存放到一個單 獨二進制文件*. bin中,在燒錄到ROM中。這樣,在實際的FPGA配置電路中只需使用一塊 諸如ROM的存儲介質存儲新產生的二進制文件,使得動態(tài)刷新過程的復雜性主要體現到計 算機軟件中,既簡化了邏輯控制電路,又減少了 ROM元件使用量。本發(fā)明存儲在新配置文件中的數據幀需要包括Xilinx FPGA配置幀數據,即有效 數據,還需要包括該幀數據對應的屏蔽信息和該幀數據所含有效數據的類型。具體數據幀 格式可以根據工程需要進行設計。本發(fā)明實施例中提供了一種幀格式。如圖4所示,本實施例中自定義二進制*. bin文件由若干如圖4示出的格式固定 的數據幀組成。數據幀劃分為下述4個域1)同步域同步域記載幀同步標記,例如可以為Oxlacffcld。2)幀類型域該域記載屏蔽信息和數據幀所含數據類型。例如,OxOOOOOOff——表示該幀所含內容為命令且不需要屏蔽。邏輯控制電路接收到該 類數據幀時,無論是對Xilinx FPGA進行全局配置或動態(tài)刷新,該幀數據都需要轉換為原始 的FPGA配置幀數據,寫入Xilinx FPGA配置區(qū);OxOOOOOOfO——表示該幀所含內容為命令且需要屏蔽。邏輯控制電路接收到該類 數據幀時,當對Xilinx FPGA進行全局配置時,該幀數據需要被轉換為原始的Xilinx FPGA 配置幀數據,寫入Xilinx FPGA配置區(qū),而當對Xilinx FPGA進行動態(tài)刷新時,該幀數據不 需要被寫入Xilinx FPGA配置區(qū);0x0000000f——表示該幀所含內容為數據且不需要屏蔽。邏輯控制電路接收到該 類數據幀時,無論是對Xilinx FPGA進行全局配置還是動態(tài)刷新,該幀數據都需要被轉換為原始的Xilinx FPGA配置幀數據,被寫入XilinxFPGA配置區(qū),而且需要在完成寫入該幀數 據后,繼續(xù)向Xilinx FPGA配置區(qū)填充與當前寫入的配置幀長度相同的冗余數據;0x00000000——表示該幀所含內容為數據且需要屏蔽。邏輯控制電路接收到該類 數據幀時,當對Xilinx FPGA進行全局配置時,該幀數據需要被轉換為原始的Xilinx FPGA 配置幀數據,寫入Xilinx FPGA配置區(qū),而且需要在完成寫入該幀數據后,繼續(xù)向Xilinx FPGA配置區(qū)填充與當前寫入的配置幀長度相同的冗余數據。當對Xilinx FPGA進行動態(tài)刷 新時,該幀數據不需要被寫入Xilinx FPGA。本實施例將屏蔽信息和數據幀所含數據類型設置同一域中,從而減少幀長度,在 實際中,也可以采用兩個域分別表示屏蔽信息和數據幀所含數據類型。而且,這兩個信息沒 有先后順序。3)幀長度域該域記載本幀數據域的長度(單位雙字)。在實際中,該域可以省略,而采用下 一幀的同步域識別本幀的結束點。4)數據域該幀包含有效數據。當采用圖4示出的格式時,使用計算機軟件讀入bit文件,根據XilinxFPGA的 硬件結構,以資源列為單位劃分出一個個數據幀,同時也讀入*. 11文件,根據*. 11文件中 的屏蔽指示信息和預先獲知的數據和指令位置信息填充數據幀的類型域,組幀完畢后將所 有數據幀集合在一起合成*. bin格式二進制文件,并將該文件燒入用以存儲配置信息的 ROM存儲元件。在初始載入配置信息時,邏輯控制電路檢測到全局配置信號有效,此時,邏輯控制 電路從ROM存儲元件中逐一讀入數據幀,分析數據幀的類型域和幀長度域,由于是全局配 置,不考慮數據幀的屏蔽信息,因此當數據幀的類型域顯示數據幀所含內容為命令時,將數 據幀還原為Xilinx FPGA配置時需要的標準配置幀格式,然后將標準配置幀寫入FPGA的配 置區(qū)。如果所含內容為數據,則在將轉換后的標準配置幀寫入Xilinx FPGA后,進一步向 XilinxFPGA填充冗余數據。在寫入配置幀時,由于FPGA配置區(qū)寫入接口采用流水線結構,在寫入了承載數據 的配置幀數據之后,還需寫入一個與配置幀數據同等數量的冗余數據,用以推動流水線繼 續(xù)運轉,使得配置幀數據從配置接口流動到SRAM配置區(qū)。如果只寫入配置幀數據,不寫入 冗余數據,這配置幀數據停留在接口處,沒有真正到達配置區(qū)。冗余數據可以為全0或全F 的數據。而承載命令的配置幀不需要流動到SRAM配置區(qū),因此不需要填充冗余數據。在動態(tài)刷新配置信息時,參見圖2,邏輯控制電路檢測到動態(tài)刷新控制信號有效, 此時,邏輯控制電路從ROM存儲元件中逐一讀入數據幀,分析數據幀的類型域和幀長度域; 如果類型域顯示需要屏蔽,則該幀數據不寫入Xilinx FPGA ;如果類型域顯示不需要屏蔽, 則根據類型域判斷數據幀所含內容為命令還是數據,如果是命令,將數據幀轉換為Xilinx FPGA配置時需要的標準配置幀格式,然后將標準配置幀寫入FPGA的配置區(qū);如果是數據, 則在將轉換后的標準配置幀寫入Xilinx FPGA后,進一步向Xilinx FPGA填充冗余數據。由以上所述可以看出,本發(fā)明制定了一種專用二進制文件格式bin,該種文件 格式由若干個有固定格式的數據幀組成。采用計算機軟件將XilinxFPGA的配置數據文件*. bit和屏蔽字文件*. 11讀入, 合并成*. bin文件并將其寫入ROM存儲元件;在進行動態(tài) 刷新操作時,邏輯控制電路按照*. bin文件的數據幀格式逐幀讀入配置信息,還原出原始 的Xilinx FPGA配置幀數據并過濾掉禁止重復寫入的數據,將剩下的允許重復寫入的數據 寫入FPGA配置區(qū);當全部*. bin文件的數據都被讀入后,邏輯控制電路又從ROM存儲元件 的起始地址開始重復讀入配置信息、寫入,從而實現了 FPGA動態(tài)刷新,而且在動態(tài)刷新過 程中避免了屏蔽數據的重復寫入,從而保證FPGA的正常工作。
權利要求
一種靜態(tài)存儲型現場可編程邏輯門陣列的配置方法,其特征在于,該方法包括讀取FPGA配置文件中的配置信息和FPGA屏蔽數據文件中的屏蔽信息;屏蔽信息指示出禁止在FPGA嵌入邏輯工作狀態(tài)下被重復寫入的配置信息在配置文件中的位置;將讀取的配置信息分解為多個數據幀,每個數據幀中包括一個FPGA配置幀數據、對應的屏蔽信息和數據幀所含數據類型;所述屏蔽信息表示數據幀是否允許在FPGA內部邏輯運行過程中被重復寫入,數據幀所含數據類型包括指令和數據兩種;將所有分解后的數據幀存放到一個新配置文件中,并寫入存儲介質;在進行動態(tài)刷新操作時,邏輯控制電路從所述新配置文件中逐幀讀入數據幀,根據數據幀中的屏蔽信息過濾掉禁止重復寫入的數據幀,僅將允許重復寫入的數據幀還原為原始的FPGA配置幀數據,并寫入FPGA配置區(qū);在寫入時,如果數據幀所含數據類型為指令,則直接寫入,如果數據幀所含數據類型為數據,則在寫入數據后,進一步向FPGA填充冗余數據;當全部新配置文件的數據幀全部被讀入后,邏輯控制電路重復執(zhí)行逐幀讀入、寫入FPGA的操作。
2.如權利要求1所述的,其特征在于,該方法進一步包括在進行全局配置時,邏輯控 制電路從所述新配置文件中逐幀讀入數據幀,將所有讀取的數據幀還原為原始的FPGA配 置幀數據,并寫入FPGA配置區(qū);在寫入時,如果數據幀所含數據類型為指令,則直接寫入, 如果數據幀所含數據類型為數據,則在寫入數據后,進一步向FPGA填充冗余數據。
3.如權利要求1或2所述的方法,其特征在于,所述數據幀的幀格式包括同步域、幀 類型域、幀長度域和數據域;所述同步域,用于記載幀同步標記;所述幀類型域,用于記載屏蔽信息和數據幀所含數據類型;所述幀類型域包括4類數 據類型;第一類表示該數據幀所含內容為命令且不需要屏蔽;邏輯控制電路接收到該類數據幀 時,無論是對FPGA進行全局配置還是動態(tài)刷新,都將該數據幀轉換為原始的FPGA配置幀數 據,寫入FPGA配置區(qū);第二類表示該數據幀所含內容為命令且需要屏蔽;邏輯控制電路接收到該類數據幀 時,當正在進行全局配置時,則將該數據幀轉換為原始的FPGA配置幀數據,寫入FPGA配置 區(qū);而當正在進行動態(tài)刷新時,則不將該數據幀寫入FPGA配置區(qū);第三類表示該數據幀所含內容為數據且不需要屏蔽;邏輯控制電路接收到該類數據幀 時,無論是正在對FPGA進行全局配置還是動態(tài)刷新,都將該數據幀轉換為原始的FPGA配置 幀數據,寫入FPGA配置區(qū),且在寫入完畢后,繼續(xù)向FPGA配置區(qū)填充與當前寫入的配置幀 長度相同的冗余數據;第四類表示該數據幀所含內容為數據且需要屏蔽;邏輯控制電路接收到該類數據幀 時,當正在進行全局配置時,則將該數據幀轉換為原始的FPGA配置幀數據,寫入FPGA配置 區(qū),且在寫入完畢后,繼續(xù)向FPGA配置區(qū)填充與當前寫入的配置幀長度相同的冗余數據; 當正在進行動態(tài)刷新時,則不將該數據幀寫入FPGA配置區(qū); 所述數據域,用于記載有效數據。
4.如權利要求3所述的方法,其特征在于,所述數據幀進一步包括幀長度域,用于記載 本幀數據域的長度。
全文摘要
本發(fā)明公開了一種靜態(tài)存儲型現場可編程邏輯門陣列的配置方法,該方法在配置文件中存儲包括配置幀數據、對應的屏蔽信息和數據類型的數據幀。在進行動態(tài)刷新操作時,邏輯控制電路從所述新配置文件中逐幀讀入數據幀,根據數據幀中的屏蔽信息過濾掉禁止重復寫入的數據幀,僅將允許重復寫入的數據幀還原為原始的FPGA配置幀數據,并寫入FPGA配置區(qū);在寫入時,如果數據幀所含數據類型為指令,則直接寫入,如果數據幀所含數據類型為數據,則在寫入數據后,進一步向FPGA填充冗余數據。使用本發(fā)明能夠在循環(huán)重復刷新配置區(qū)數據時,避免FPGA嵌入邏輯工作狀態(tài)被改變。
文檔編號G11C11/413GK101814316SQ20101015714
公開日2010年8月25日 申請日期2010年4月28日 優(yōu)先權日2010年4月28日
發(fā)明者曲志超, 牟文秀, 童亞欽, 辛明瑞 申請人:中國航天科技集團公司第五研究院第五一三研究所
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
临湘市| 阳东县| 安达市| 兴安盟| 繁昌县| 中方县| 沧源| 固安县| 张家港市| 临澧县| 嫩江县| 福泉市| 清流县| 蕉岭县| 阳西县| 西藏| 沙田区| 无为县| 唐河县| 河津市| 兴业县| 荃湾区| 衡东县| 朝阳县| 黄龙县| 翁牛特旗| 佳木斯市| 青河县| 宁明县| 灌云县| 璧山县| 土默特右旗| 迭部县| 宣城市| 滕州市| 宜兰市| 麻城市| 揭东县| 屏南县| 吴忠市| 安远县|