專利名稱:一種fpga兩級流水線配置電路的制作方法
技術領域:
本發明屬于FPGA器件技術領域,具體為一種高速高吞吐率的FPGA流水線配置電路。
背景技術:
FPGA (可編程邏輯門陣列)配置電路或者編程下載電路的功能是將配置位流下載到FPGA內部編程點。用戶通過配置接口將配置位流按照一定的接口時序傳輸至配置電路, 配置電路再將這些數據按照一定的方式寫入內部編程點。因此配置電路的結構很大程度上決定了位流下載的速率。流水線型的配置結構將數據下載通路和數據回讀通路設計成流水線形式,數據按照單個方向進行傳輸,而且相應的控制信號也是沿著單方向傳輸,流水線的每一級負責專門的功能。FPGA配置電路包含多個寄存器,通常會把這些寄存器封裝在一個寄存器組里, 這些寄存器的功能主要完成配置選項設置,全局功能設置等,這些寄存器里面只有DNLD_ DR (Download Data Register、下載數據寄存器,見圖 1)禾Π RDBK_DR (Readback Data Register、回讀數據寄存器,見圖1)與配置數據下載和回讀直接相關,如何實現數據的高速高吞吐率下載和回讀,而且要與用戶的工作時鐘兼容成了本技術領域需要解決的一個難點,流水線可以提高數據傳輸速率,但是過多的反饋信號會降低流水線的效率,為了與用戶的時鐘頻率兼容要求上游的數據量不能對下游造成擁塞。流水線的FPGA配置電路遵循無反饋的控制信號單向傳遞方式,這要求在數據的源端需要對數據的流速進行控制,既要保證整個電路具有最大的數據傳輸速率,即上游部分要以最大速率讀取數據,又要保證下游部分電路有能力處理上游部分傳輸過來的數據。目前已有的結構并沒用對配置數據通路做出嚴格要求,也沒有對配置數據通路相應的控制信號進行規定,各個模塊功能比較分散,沒有流水線的架構理念。而采用流水線的結構每一級流水線負責專門的功能,主要完成數據的單向傳輸以及在其通路內的控制信號的產生,只接收上游的控制信號,并且產生傳往下游的控制信號, 這種設計可以極大的提高數據傳輸的速率。
發明內容
本發明目的在于提供一種高速高吞吐率的FPGA配置電路。本發明提供的FPGA配置電路,其核心是采用兩條流水線數據通道分別對FPGA進行下載和回讀,其結構見圖1所示。所述FPGA配置電路包括下載FIFO模塊,回讀FIFO模塊,全局配置控制狀態機,位流解析模塊,配置地址及控制產生模塊,全局操作寄存器(0PR, Operation Register),幀數據輸入寄存器(DNLD_DR,Download Data Register),回讀數據寄存器(RDBK_DR,Readback Data Register),地址寄存器(ADDR,Address Register),配置地址及控制產生模塊包括回讀配置地址及控制產生模塊和下載配置地址及控制產生模塊,以及地址選擇器(MUX)。此外,整個FPGA配置電路還包括循環冗余校驗(CRC,CyclicRedundancy Check)模塊和幀錯誤檢查和糾正(ECC,Error Correcting Code)模塊。其中 下載數據通道(流水線1),第一級由下載FIFO模塊傳輸至幀數據輸入寄存器(DNLD_ DR),位流解析模塊負責下載FIFO的讀訪問以及DNLD_DR_en (Download Data Register enable、下載數據寄存器使能,見圖2)信號的產生。位流解析模塊主要的功能包括訪問下載FIFO內的數據,從讀取的數據中解析數據頭,對操作碼,寄存器地址,下載數據長度等進行譯碼,并從解析出的數據頭獲取對下載數據流的實時控制;位流解析模塊以最快的速率讀取下載FIFO,保證了整個配置電路的高速率傳輸,同時對下載數據頭進行解析以產生相應寄存器的控制使能信息。第二級由幀數據輸入寄存器(DNLD_DR)傳輸至FPGA陣列,下載配置地址及控制產生模塊主要功能是根據DNLD_DR_en(Download Data Register enable、 下載數據寄存器使能,見附圖2)信號及地址寄存器(ADDR)的值進行下載配置地址的自動生成,把配置數據所對應的幀地址傳輸給FPGA陣列,FPGA陣列對配置地址產生模塊生成的幀地址進行譯碼,以此來選中相應的幀進行數據的下載。下載配置地址及控制產生模塊通過檢測DNLD_DR_en信號來更新內部地址,因為DNLD_DR_en信號的長度代表了下載數據的有效個數,下載配置地址及控制產生模塊更新地址的方式按照FPGA存儲陣列的排列規律來執行,它除了產生配置地址外,還產生數據加載和地址有效等控制信號。回讀數據通道(流水線2),控制信號由回讀配置地址產生及控制模塊傳輸至位流解析模塊,第一級由FPGA陣列傳輸至回讀數據寄存器(RDBK_DR),回讀配置地址及控制產生模塊負責對FPGA陣列的讀訪問及流速控制,生成回讀所需要的幀地址以及回讀時序以使數據從FPGA陣列的回讀數據端口傳輸至RDBK_DR ;并通過記錄有效回讀數據個數來更新回讀地址,其更新的方法和下載配置地址更新的方法是一致的,其產生的RDBK_DR_en (Readback Data Register enable、回讀數據寄存器使能,見圖2)信號傳輸給位流解析模塊,標志著一個有效數據已經傳輸至回讀數據寄存器(RDBK_DR)。第二級由回讀數據寄存器 (RDBK_DR)傳輸至回讀FIFO模塊,位流解析部分對回讀FIFO模塊進行寫控制,并通過檢測 RDBK_DR_en信號記錄有效回讀數據的數量,以便在回讀結束時跳出回讀狀態繼續讀取下載 FIFO。配置地址及控制產生模塊(包括回讀配置地址及控制產生模塊和下載配置地址及控制產生模塊)在初始情況下均以地址寄存器(ADDR)的值作為更新地址的起點,由全局配置控制狀態機來選擇下載配置地址及控制生成或回讀配置地址及控制生成處于工作狀態, 并且選擇兩者地址輸出中的一個作為最終的地址輸出。全局配置控制狀態機通過全局操作寄存器(OPR)的值來實現對整個配置過程的控制,包括復位CRC (Cyclic Redundancy Check、循環冗余校驗),啟動,解同步等操作。整個配置電路通過CRC,幀ECC等電路實現對下載或回讀數據的檢錯和糾錯。本發明中,下載和回讀數據通道均是在第一級對數據的流速控制,為了實現數據的高速下載或回讀均以最快的速度讀取數據。下載數據通道的源頭是下載FIFO,目的地是 FPGA陣列;回讀數據通道源頭為FPGA陣列,目的地是回讀FIFO。位流解析模塊(下載通道第一級)可以實現對下載FIFO讀取的有效控制,配置地址產生內部的回讀配置地址及控制產生模塊也能夠對FPGA陣列回讀進行有效控制,第一級模塊在讀取數據之后往后級傳輸,不用接收后級的反饋信號。本發明中,配置地址生成模塊包括兩部分下載配置地址及控制產生模塊和回讀配置地址及控制產生模塊,由全局配置控制狀態機選擇那一部分處于工作狀態,來自于位流解析模塊的DNLD_DR_en信號控制下載配置地址及控制產生模塊的地址累加,回讀配置地址及控制產生模塊的配置地址是自動累加的,兩者均采用相同的累加算法。本發明中,下載數據通道和回讀數據通道均采用兩級流水線操作方式,在流水線的方向上,控制信號也是沿著一個方向傳遞,避免了反饋的產生,同時也保證了數據傳輸的穩定和可靠性,流水線的第一級以最快速度讀取為FPGA的高速高吞吐率配置提供了保障。本發明采用流水線結構的FPGA配置電路因為其內部的數據處理能力較強,可以極大地提高FPGA配置數據的速率,增大FPGA的用戶下載和回讀時鐘頻率,縮短FPGA下載和回讀時間。
圖1為FPGA配置電路的全局結構視圖,包含兩條流水線數據通道,配置寄存器組,配置控制狀態機,CRC32循環冗余校驗),幀ECC錯誤檢查和糾正)等模塊。圖2為圖1中配置地址生成模塊的詳細圖,主要包括下載配置地址及控制生成模塊、回讀配置地址及控制生成模塊、地址選擇器MUX等部分,地址產生均以ADDR(AddreSS Register、地址寄存器)的值作為起點,由全局配置控制狀態機來選擇哪一部分處于工作狀態。
具體實施例方式FPGA的配置電路既要能夠將配置數據從用戶接口輸入寫入存儲陣列的編程點,又要能夠將編程點的內容讀出并從用戶接口輸出。下載數據通道的作用就是將數據寫入內部編程點,回讀數據通道的作用是將數據從內部編程點讀出。下面分別對兩條數據通道的詳細操作流程進行說明。下載數據通道
1、用戶通過配置接口將配置位流寫入下載FIFO。2、位流解析模塊檢測下載FIFO的讀空標志,若非空便讀取下載FIFO內數據。3、位流解析模塊按照位流的組織格式(數據頭+數據),從下載FIFO讀出的數據頭中解析出寄存器地址,讀寫操作,下載數據個數。4、位流解析模塊根據寄存器地址,讀寫操作使相應的寄存器的使能信號有效,并將該DNLD_DR_en信號傳輸至下載配置地址生成模塊。5、位流解析模塊每讀取下載FIFO里的一個有效數據之后都將下載數據計數器減 1,并產生一個時鐘周期的DNLD_DR_en信號,直到讀完該數據頭所規定的數量。6、下載配置地址及控制產生模塊在全局控制狀態機發送的feite_Cfg_data (Write configuration data、寫配置數據)有效情況下檢測并記錄DNLD_DR_en信號,每計數滿一幀數據就更新下載配置地址以及相應的下載控制信號。7、配置結束時全局控制狀態機撤銷feite_Cfg_data信號,位流解析模塊和配置地址產生模塊均回到空閑狀態,直到下載FIFO非空則繼續重復步驟2-6。回讀數據通道
1、用戶通過配置接口將包含有回讀命令的配置位流寫入下載FIFO。
2、位流解析模塊檢測下載FIFO的讀空標志,若非空便讀取下載FIFO內數據。3、位流解析模塊按照位流的組織格式(數據頭+數據),從下載FIFO讀出的數據頭中解析出寄存器地址,讀寫操作,回讀數據個數。4、回讀配置地址及控制生成模塊檢測到全局配置控制狀態機的Read_Cfg_data (Read configuration data、讀配置數據)有效之后根據ADDR的值生成相應的配置地址。5、回讀配置地址及控制生成模塊檢測回讀FIFO的寫滿狀態標志位。若回讀FIFO 沒有寫滿則從FPGA陣列中移出數據,如果遇到回讀FIFO寫滿狀態則暫停移出數據。6、回讀配置地址及控制生成模塊一邊從FPGA陣列中移出數據一邊更新配置地址,以便將整個FPGA陣列的地址遍歷完整,以一幀數據讀取完整為更新節點。7、位流解析模塊通過檢測并記錄RDBK_DR_en有效信號來更新內部的回讀個數計數器,直到為0則退出回讀狀態。8、回讀結束后,全局配置控制狀態機撤銷Read_Cfg_data,回讀配置地址及控制產生也就停止從FPGA陣列中移出數據,回到空閑狀態,直到下載FIFO非空則繼續重復步驟 2-7。
權利要求
1. 一種FPGA兩級流水線配置電路,其特征在于采用兩條流水線數據通道分別對FPGA 進行下載和回讀,所述FPGA配置電路包括下載FIFO模塊,回讀FIFO模塊,全局配置控制狀態機,位流解析模塊,配置地址產生模塊,全局操作寄存器,幀數據輸入寄存器,回讀數據寄存器,地址寄存器,循環冗余校驗模塊和幀錯誤檢查和糾正模塊;所述配置地址產生模塊包括回讀配置地址及控制產生模塊和下載配置地址及控制產生模塊,以及地址選擇器; 其中下載數據通道即流水線1,第一級由下載FIFO模塊傳輸至幀數據輸入寄存器,位流解析模塊負責下載FIFO模塊的讀訪問以及幀數據輸入寄存器使能信號的產生;第二級由幀數據輸入寄存器傳輸至FPGA陣列,下載配置地址及控制產生模塊通過檢測幀數據輸入寄存器使能信號來更新內部地址,下載配置地址及控制產生模塊更新地址的方式按照FPGA 存儲陣列的排列規律執行,它除了產生配置地址外,還產生數據加載和地址有效等控制信號;回讀數據通道即流水線2,控制信號由回讀配置地址產生及控制模塊傳輸至位流解析模塊,第一級由FPGA陣列傳輸至回讀數據寄存器,回讀配置地址及控制產生模塊負責對 FPGA陣列的讀訪問及流速控制,通過記錄有效回讀數據個數來更新回讀地址,其更新的方法和下載配置地址更新的方法一致,其產生的回讀數據寄存器使能信號傳輸給位流解析模塊,標志著一個有效數據已經傳輸至回讀數據寄存器;第二級由回讀數據寄存器傳輸至回讀FIFO模塊,位流解析模塊對回讀FIFO模塊進行寫控制,并通過檢測回讀數據寄存器使能信號記錄有效回讀數據的數量,在回讀結束時跳出回讀狀態繼續讀取下載FIFO ;配置地址及控制產生模塊包括回讀配置地址及控制產生模塊和下載配置地址及控制產生模塊,在初始情況下均以地址寄存器的值作為更新地址的起點,由全局配置控制狀態機來選擇下載配置地址及控制生成模塊或回讀配置地址及控制生成模塊處于工作狀態,并且選擇兩者地址輸出中的一個作為最終的地址輸出;全局配置控制狀態機通過全局操作寄存器的值來實現對整個配置過程的控制; 整個配置電路通過CRC,幀ECC電路實現對下載或回讀數據的檢錯和糾錯。
全文摘要
本發明屬于FPGA器件技術領域,具體為一種FPGA兩級流水線配置電路。該電路由兩塊FIFO作為配置接口與配置控制邏輯之間的緩沖,配置控制邏輯由配置寄存器組、全局配置控制狀態機、位流解析、配置地址產生、幀ECC電路、CRC32電路等組成。下載數據通路由下載FIFO經由下載數據寄存器送達FPGA配置陣列,回讀數據通路由FPGA配置陣列經由回讀數據寄存器送達回讀FIFO。該結構采用兩級流水線對數據的下載和回讀進行控制,而且數據通路里不存在與數據流動方向相反的反饋握手信號,每條流水線的第一級均以最快速率讀取數據,這種結構能夠極大地提高數據下載回讀的速度和吞吐率。
文檔編號G06F9/38GK102566982SQ20121000582
公開日2012年7月11日 申請日期2012年1月10日 優先權日2012年1月10日
發明者周灝, 來金梅, 毛勁松, 王元 申請人:復旦大學