一種可通過用戶輸入輸出端口完成fpga重配的配置電路的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種FPGA的配置電路,特別是可通過用戶輸入輸出端口完成對(duì)FPGA 動(dòng)態(tài)重配的配置電路。
【背景技術(shù)】
[0002] 圖1是FPGA的框圖,輸入輸出端口(IOB)位于芯片的四周,可配置邏輯模塊(CLB) 在內(nèi)部按陣列排布,塊存儲(chǔ)器(BRAM)穿插在可配置邏輯模塊(CLB)中,還包括配置邏輯和 配置接口。圖1只顯示了少量的輸入輸出模塊(IOB)和可配置邏輯模塊(CLB)以及塊存儲(chǔ) 器(BRAM),只是作為示意用。FPGA還包含其它組成部分:遍布整個(gè)芯片連接各個(gè)模塊的可 編程互聯(lián)結(jié)構(gòu)和配置存儲(chǔ)器陣列(CSRAM),這些在圖1中沒有具體圖示。配置存儲(chǔ)器陣列 (CSRAM)中的SRAM配置位決定了FPGA的具體功能。
[0003] SRAM型FPGA芯片在配置前不具備任何邏輯功能,通過加載用戶應(yīng)用指定的配置 數(shù)據(jù)進(jìn)入內(nèi)部的配置存儲(chǔ)器陣列(CSRAM)來完成配置。配置是通過一組器件輸入輸出端口 (IOB)來完成的,這些端口稱為系統(tǒng)輸入輸出端口(系統(tǒng)I0B)。如圖1中所示,這些端口通 常集中在FPGA芯片的一個(gè)角,如配置接口電路附近。這些系統(tǒng)輸入輸出端口中有一些是專 用的,有一些在配置完成后可以被重新用作通用目的的輸入輸出端口。
[0004] FPGA芯片在空間環(huán)境應(yīng)用時(shí),空間高能粒子穿過FPGA內(nèi)部會(huì)引起電路節(jié)點(diǎn)上的 瞬間電流,使配置存儲(chǔ)單元發(fā)生單粒子翻轉(zhuǎn),某些區(qū)域的電路會(huì)產(chǎn)生局部功能錯(cuò)誤、互聯(lián)線 短路或斷路,使該區(qū)域的電路無法正常工作。FPGA芯片可以利用動(dòng)態(tài)重配技術(shù)在不影響電 路正常工作的情況下,對(duì)出錯(cuò)的邏輯進(jìn)行局部重新配置,繞過損壞的電路繼續(xù)工作,以適應(yīng) 惡劣的太空輻射環(huán)境,延長其使用壽命。而傳統(tǒng)FPGA芯片中的配置電路只能接收來自固定 幾個(gè)系統(tǒng)輸入輸出端口的配置數(shù)據(jù),這樣一方面會(huì)限制用戶使用時(shí)在布局布線方面的靈活 性,另一方面總是通過少數(shù)的固定系統(tǒng)輸入輸出端口對(duì)FPGA進(jìn)行海量的讀寫動(dòng)作,不利于 資源的充分利用、影響器件的可靠性。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明解決的技術(shù)問題是:克服現(xiàn)有技術(shù)的不足,提供一種可通過用戶輸入輸出 端口完成FPGA重配的配置電路,避免了配置電路對(duì)固定系統(tǒng)輸入輸出端口的依賴,增加了 FPGA芯片的靈活性和可靠性。
[0006] 本發(fā)明的技術(shù)方案是:一種可通過用戶輸入輸出端口完成FPGA重配的配置電路, 其特征在于:包括通用配置接口電路、用戶配置接口電路、總線接口電路、配置總線、配置寄 存器、配置狀態(tài)機(jī)和配置存儲(chǔ)器陣列;
[0007] 通用配置接口電路接收用戶通過系統(tǒng)輸入輸出端口輸入的通用配置控制信號(hào)、時(shí) 鐘信號(hào)及數(shù)據(jù)信號(hào),輸出給總線接口電路;所述通用配置控制信號(hào)包括片選信號(hào)、寫使能信 號(hào)和模式選擇信號(hào)MO、Ml、M2 ;
[0008] 用戶配置接口電路在FPGA重配時(shí),接收用戶通過任意用戶輸入輸出端口輸入的 用戶配置控制信號(hào)、時(shí)鐘信號(hào)及數(shù)據(jù)信號(hào),在配置存儲(chǔ)器陣列的控制下將接收的數(shù)據(jù)進(jìn)行 選通并輸出給總線接口電路;所述用戶配置控制信號(hào)包括片選信號(hào)和寫使能信號(hào);
[0009] 總線接口電路在配置時(shí)接收通用配置接口電路輸入的數(shù)據(jù)信號(hào),在重配時(shí)接收通 用配置接口電路或用戶配置接口電路輸入的數(shù)據(jù)信號(hào),并在配置存儲(chǔ)器陣列和配置狀態(tài)機(jī) 的控制下對(duì)接收的信號(hào)進(jìn)行選通,然后將選通后的信號(hào)轉(zhuǎn)化為32位的配置數(shù)據(jù)IDB[31:0] 輸出給配置總線;
[0010] 配置總線將接收的32位配置數(shù)據(jù)輸出給配置寄存器;
[0011] 配置寄存器解析配置數(shù)據(jù)中的地址信息,根據(jù)解析出的地址信息將該配置數(shù)據(jù)寫 入到配置存儲(chǔ)器陣列相應(yīng)的地址位;
[0012] 配置狀態(tài)機(jī)用于控制通用配置接口電路、用戶配置接口電路、總線接口電路、配置 總線、配置寄存器和配置存儲(chǔ)器陣列的工作時(shí)序,以及控制通用配置接口電路或用戶配置 接口電路的數(shù)據(jù)選通;
[0013] 配置存儲(chǔ)器陣列接收配置寄存器寫入的配置數(shù)據(jù),控制用戶配置接口電路和總線 接口電路的數(shù)據(jù)選通;
[0014] 所述數(shù)據(jù)信號(hào)包括配置地址信息和配置數(shù)據(jù)信息。
[0015] 用戶配置接口電路包括11個(gè)32選1多路選擇器MUX32、11個(gè)半鎖存器HalfLatch 以及11個(gè)緩沖器buffer;每個(gè)MUX32的輸入端與用戶輸入輸出端口連接,輸出端通過一個(gè) 半鎖存器HalfLatch與一個(gè)緩沖器buffer連接,緩沖器buffer的輸出與總線接口電路連 接,每個(gè)MUX32的選擇控制端與配置存儲(chǔ)器陣列的SRAM單元連接;所述用戶配置接口電路 在配置存儲(chǔ)器陣列SRAM單元的控制下將來自用戶輸入輸出端口的輸入選通輸出,其中8路 接收用戶通過用戶輸入輸出端口輸入的數(shù)據(jù)信號(hào),經(jīng)過選通后作為FPGA的重配數(shù)據(jù)輸出 給總線接口電路,另外3路分別接收用戶通過用戶輸入輸出端口輸入的用戶配置控制信號(hào) 和時(shí)鐘信號(hào),經(jīng)過選通后分別作為FPGA的配置控制信號(hào)和時(shí)鐘信號(hào)輸出給總線接口電路, 所述用戶配置控制信號(hào)包括片選信號(hào)和寫使能信號(hào)。
[0016] 總線接口電路包括數(shù)據(jù)傳輸模塊和控制模塊;
[0017] 數(shù)據(jù)傳輸模塊包括第一二選一多路選擇器組、第二二選一多路選擇器組、32個(gè)二 輸入與非門以及32個(gè)寄存器,第一二選一多路選擇器組包括9個(gè)二選一多路選擇器MXl、 MX2、MX3、MX4、MX5、MX6、MX7、MX8和MX10,第二二選一多路選擇器組包括32個(gè)二選一多路選 擇器MX11、MX12、MX13、MX14、MX15、MX16、MX17、MX18、MX19、MX20、MX21、MX22、MX23、MX24、 MX25、MX26、MX27、MX28、MX29、MX30、MX31、MX32、MX33、MX34、MX35、MX36、MX37、MX38、MX39、 MX40、MX41、MX42 ;32 個(gè)寄存器記為RUR2、R3、R4、R5、R6、R7、R8、R9、RIO、Rll、R12、R13、 R14、R15、R16、R17、R18、R19、R20、R21、R22、R23、R24、R25、R26、R27、R28、R29、R30、R31、 R32 ;
[0018] 第一二選一多路選擇器組MX1、MX2、MX3、MX4、MX5、MX6、MX7、MX8 和MXlO的選擇 控制端由控制模塊控制^乂1、1?2、1?3、1?4、1?5、1?6、1?7和1?8的0輸入端接收通用配置 接口電路輸出的數(shù)據(jù)信號(hào),1輸入端接收用戶配置接口電路輸出的數(shù)據(jù)信號(hào),在控制模塊控 制下向第二二選一多路選擇器組中的MX12、MX13、MX14、MX15、MX16、MX17和MX18輸出選通 后的數(shù)據(jù)信號(hào),MXlO的兩個(gè)輸入端分別接收通用配置接口電路和用戶配置接口電路輸出的 時(shí)鐘信號(hào),在控制模塊控制下向32個(gè)寄存器的時(shí)鐘端輸出選通后的時(shí)鐘信號(hào);
[0019] 第二二選一多路選擇器組32個(gè)二選一多路選擇器的選擇控制端由控制模塊控 制,用于對(duì)輸入數(shù)據(jù)進(jìn)行選通;32個(gè)二選一多路選擇器的輸出分別與32個(gè)二輸入與非門的 一個(gè)輸入端連接,32個(gè)二輸入與非門的另一個(gè)輸入端由控制模塊控制,以決定總線接口電 路是否使能工作,32個(gè)二輸入與非門的輸出分別與32個(gè)寄存器的數(shù)據(jù)輸入端連接,32個(gè) 寄存器將接收的信號(hào)轉(zhuǎn)化為32位的配置數(shù)據(jù)IDB[31:0]輸出給配置總線;Mll的兩個(gè)輸入 端分別接收通用配置接口電路輸出的串行數(shù)據(jù)信號(hào)和MXl的輸出,MX12、MX13、MX14、MX15、 MX16、MX17和MX18的0輸入端分別連接寄存器RU R2、R3、R4、R5、R6、R7的輸出,1輸入端 分別連接 MX2、MX3、MX4、MX5、MX6、MX7、MX8 的輸出,MX19、MX20、MX21、MX22、MX23、MX24、 MX25、MX26、MX27、MX28、MX29、MX30、MX31、MX32、MX33、MX34、MX35、MX36、MX37、MX38、MX39、 MX40、MX41、MX42 的 0 輸入端分別連接寄存器 R8、R9、R10、R11、R12、R13、R14、R15、R16、R17、 R18、R19、R20、R21、R22、R23、R24、R25、R26、R27、R28、R29、R30、R31 的輸出,1 輸入端分別 連接寄存器 RU R2、R3、R4、R5、R6、R7、R8、R9、RIO、Rll、R12、R13、R14、R15、R16、R17、R18、 R19、R20、R21、R22、R23、R24 的輸出。
[0020] 所述控制模塊包括接口選擇模塊、串并選擇模塊和使能控制模塊;
[0021]接口選擇模塊包含二輸入與門ANDl、二輸入與門AND2、反相器IVl以及反相器 IV2 ;反相器IVl的輸入端接收來自配置狀態(tài)機(jī)的Persist信號(hào),反相器IVl的輸出端與二 輸入與門ANDl的一個(gè)輸入端相連;反相器IV2的輸入端與配置存儲(chǔ)器陣列中的SRAM單元 相連,反相器IV2的輸出端與二輸入與門AND2的一個(gè)輸入端相連;二輸入與門AND2的另一 個(gè)輸入端接收來自配置狀態(tài)機(jī)的啟動(dòng)完成信號(hào),二輸入與門AND2的輸出端與二輸入與門 ANDl的另一個(gè)輸入端相連;二輸入與門ANDl的輸出端輸出控制信號(hào)UserlSel,該控制信號(hào) User I Se 1用于控制數(shù)據(jù)傳輸模塊中第一二選一多路選擇器組MX I、MX2、MX3、MX4、MX5、MX6、 MX7、MX8和MXlO的選擇控制端以及串并選擇模塊和使能控制模塊;
[0022] 串并選擇模塊包含二輸入與非門NAND1、二輸入與非門NAND2、異或門XORl和反相 器IV3 ;異或門XORl的兩個(gè)輸入端分別接收通用配置接口電路的模式選擇信號(hào)MO和M2, 異或門的輸出端與二輸入與非門NANDl的一個(gè)輸入端相連;二輸入與非門NANDl的另一個(gè) 輸入端接收通用配置接口電路的模式選擇信號(hào)M1,二輸入與非門NANDl的輸出端與二輸 入與非門NAND2的一個(gè)輸入端相連;反相器IV3的輸入端接收接口選擇模塊的輸出信號(hào) UserlSel,反相器IV3的輸出端與二輸入與非門NAND2的另一個(gè)輸入端相連;二輸入與非 門NAND2的輸出端輸出控制信號(hào)Paral,該控制信號(hào)用于控制數(shù)據(jù)傳輸模塊中第二二選一 多路選擇器組32個(gè)二選一多路選擇器的選擇控制端;
[0023] 使能控制模塊包含反相器IV4、反