專利名稱:動態可編程集成電路的制作方法
技術領域:
本發明涉及到 一種可編程集成電路,特別是涉及到 一種在正常運行中可 動態改變邏輯電路的集成電路。
二背景技術:
現在AUera公司的FPGA和Xi 1 inx公司的FPGA (現場可編程集成電路),利 用SRAM(靜態存儲器)進行配置,在重新配置FPGA的邏輯時,FPGA停止工作, 待完成所有電路配置,經校驗通過后,FPGA按新的配置邏輯進行工作。
Altera公司的FPGA邏輯部分采用嵌入式陣列塊(EAB),可參照王金明等 編著的《數字系統設計與Verilog HDU〉,電子工業出版社2002年1月第一版 第74-76頁。
圖l為現有^t支術,Altera公司的Clone的FPGA的內部結構,101為輸入/輸 出控制塊,102為PLL(可編程鎖相環)模塊,103為FPGA內部塊狀SRAM, 104為 EAB (嵌入式陣列塊),各種功能模塊之間利用通用或局部走線相連接,通 用或局部走線是可通過編程實現。
注意Altera的Clone系列的FPGA中有兩種SRAM:配置SRAM,該SRAM對 用戶來說是不透明的,用戶不能使用,FPGA的程序即配置在配置SRAM中。另 外一種為SRAM BLOCK (塊狀SRAM),供用戶使用的。
Xi 1 inx公司的FPGA邏輯部分采用可配置邏輯塊CLB(Conf iguration Logic Bloack配置邏輯塊)是同步電路和組合電路的主要邏輯資源。具體的 說明見徐欣、于紅旗等編著的《基于FPGA的嵌入式系統設計》,機械工業出 版社2005年1月第一版,第21-23頁、笫47-48頁。孫航編著的《XiHnx可編 程邏輯器件的高級應用與設計技巧》,電子工業出版社2004年8月第一版第 22-26頁。
現有技術的配置電路以現有的Altera的配置電路予以說明,Altera有 下面幾種方式對FPGA進行配置被動串行下栽方式,快速被動并行方式、被 動并行異步方式、被動并行同步方式、被動串行異步方式、JTAG方式。可
參考王誠等編著的《Altera FPGA/CPLD設計》〉基礎篇,人民郵電出版社2005 年7月笫一版。第187-213頁。
Altera配置的過程(狀態機)見圖3,
FPGA上電nSTATUS和CONF—DONE信號變低,所有的輸入/輸出引腳為高 阻,清除所有的配置SRAM中的信息。
復位信號為低電平nSTATUS和CONF-DONE信號保持為低,清除所有SRAM 中的配置信號。
配置SRAM信息nCONFIG或CONF-DONE為高電平,配置數據寫入到FPGA的 配置SRAM中。
初始化內部邏輯電路初始化,寄存器初始化,輸入/輸出初始化,輸入 /輸出驅動器有效。
進入用戶正常使用模式。
Altera下栽狀態機圖見圖3,本圖取自王誠等編著的《Altera FPGA/CPLD 設計》基礎篇,人民郵電出版社2005年7月第一版。第191頁(書上的圖是英 文的在附圖中已翻譯為中文)。
三、發明內容
1、新的定義名詞
(1) 動態配置時鐘(DCCLK Dynamic Configuration Clock):在 本發明中增加了 一個動態配置電路時鐘,該時鐘可同步控制配 置控制電路的帶允許輸出端的同步D觸發器。
(2) 動態控制輸出時鐘在本發明中增加一個動態控制輸出時鐘, 該時鐘同步控制所有的功能單元的帶允許輸出端的同步D觸發 器。動態配置時鐘和動態控制輸出時鐘可以是同一個,也可以 是不同的兩個時鐘。
(3) 功能單元在動態可編程集成電路中,局部走線、通用走線、 嵌入式陣列塊、可編程輸入/輸出塊、SRAM塊、數字信號處理 塊、乘法器等配置后能完成一定功能的單元,我們稱它為"功 能單元"。
(4) 配置單元在動態可編程集成電路中,對每一個"功能單元" 均可以進行重新單獨配置邏輯電路的功能,這些單元的配置電 路我們稱它為"配置單元",配置單元由臨時配置寄存器、允 許配置寄存器、配置控制電路、被配置SRAM組成。
(5) 動態可編程集成電路(DFPGA Dynamic Field-programmable Gate Array): —種現場可編程邏輯電路,其集成電路正常運 行時可重新配置內部的部分"功能單元"的功能,并能保存中 間結果,其它部分仍能正常運行;或重新配置全部的"功能單 元",并保留中間結果的集成電路。
2、 要解決的問題
現有;^支術的不足現在的FPGA不能在FPGA正常工作時,更改可編程 集成電路的一部分電路,其它部分電路仍能正常工作。或更改FPGA的全 部電路,而上一次運行的結果仍能正常保存。
本發明的目的是為了提供一種可在正常工作時更改可編程集成電路 的邏輯電路。可更改可編程集成電路的一部分電路,也可更改可編程集 成電路的全部電路。本更改部分動態配置時鐘的下一周期就會正常工作。
3、 技術方案
如圖2所示201為輸入/輸出控制塊,202為PLL ( PLL模塊),2t)3為塊 狀SMM, 204為EAB (嵌入式陣列塊),以上與現有技術完全相周。
3. 1動態可編程集成電路配置狀態機
本發明"動態可編程集成電路"的配置過程狀態機(見圖4)
401為上電或RESET (低電平有效)有效清除所有的配置數 據,輸入/輸出模塊為高阻;
402為動態可編程集成電路第一次配置數據配置可編程陣 列塊、PLL、輸入/輸出控制塊、塊狀SRAM完成所有的配置后FPGA 有效,正常工作。
403為重新配置 一個"動態配置時鐘"到來時,臨時配置寄
存器中的數據在允許配置寄存器及控制電路的作用下,發送給"配 置單元"。在配置時鐘的作用下,不斷重新配置,"動態配置時鐘" 的配置完成后邏輯電路就能正常工作,未重新配置的功能單元一
直正常工作。
3.2動態可重新配置控制電路
為了達到能在集成電路正常工作時,不斷地按需求重新配置電 路。本發明增加的以下的控制模塊,205為配置輸出給"配置單元" 的連接線,206為重新配置控制電路(帶允許輸出控制端的同步D觸 發器),207為配置允許配置寄存器輸出線,208為允許配置鎖存器, 209為(動態配置時鐘)時鐘輸出線,210為動態配置時鐘,211為EAB 邏輯結果輸出線,212為允許輸出寄存器,213為輸出控制邏輯電路 (帶允許輸出控制端的同步D觸發器),215為動態控制時鐘輸出線, 214為輸出結果線,216為動態輸出控制時鐘。
如圖5所示,為"配置單元"構成電路
501為臨時配置寄存器,502為配置控制電路,503為允許配置寄 存器,504為同步可重新配置時鐘連接線,506為動態配置時鐘,505 為DFPGA被配置SRAM。
502為帶允許輸出端的同步D觸發器,1腳為D觸發器的輸入端,2 腳為D觸發器的輸出端,3腳為D觸發器同步時鐘的輸入腳,4腳為D觸 發器的允許輸出控制端。
502的1腳連接臨時配置寄存器501,在FPGA中,有通用走線、局 部走線、嵌入式陣列塊、輸入/輸出控制塊、乘法器、數字信號處理 模塊。對每個"配置單元"所有的"臨時配置寄存器"位統一編寫 地址,用串行或并行辦法下栽到各個"功能單元"的"臨時配置寄 存器"中。
502的4腳連接允許配置寄存器,每個"配置單元"有一個允許 配置寄存器,允許配置寄存器與"臨時配置寄存器" 一一對應,允 許配置寄存器的數據配置也采用單獨編址,每個單元的允許配置寄 存器的地址均不相同,用串行或并行辦法下栽到各個"功能單元"
的"允許配置寄存器"中。
502的3腳連接"動態配置時鐘",當臨時配置寄存器數據已準 備好,允許寄存器的數據也已準備好后,動態配置時鐘的上升沿到 來時,允許配置寄存器如果為O (即有效),配置寄存器的數據即 在同步時鐘的作用下,由控制電路的2腳輸出到動態可編程集成電路 的被配置SRAM中。
當部分允許配置寄存器數據為0,配置時鐘上升沿到來后可實現 對動態可編程集成電路的部分電路的重新編程,當允許配置寄存器 的所有配置單元位均為有效時(允許配置寄存器的值都是O時),可 實現動態可編程集成電路全部重新配置。
從而實現在動態可編程集成電路正常工作時實現對動態可編程 集成電路的部分電路或全部電路的重新編程。
3. 3輸出控制電路 3. 3. 1輸出控制電路的作用
(a) 因為部分"功能單元"進行了重新配置,在配置期間可能出 現一段時間的輸出不確定態,不確定態的邏輯與其它電路連 接可能產生不能預測的結果,可能導致電路的損壞。增加了 輸出控制電路后,部分重配置單元中,對輸出的數據進行鎖 存,在整個配置期間其結果不變,因此不會發生不同單元之 間的相互干擾,對于對全部芯片重新配置的,該輸出鎖存器 能鎖存中間結果,供重新配置后使用。
(b) 增加輸出控制電路后可存儲重新配置前得到的"功能單元" 輸出的中間結果,大大增加了系統的靈活性,可實現可編程 指令集處理器。
3. 3.2輸出控制電路的實現電路
如圖6所示,輸出控制電路由601 "功能單元"輸出,602 輸出控制電路,603為輸出控制電路的輸出結果連接線,6(H為
允許輸出寄存器,605為動態時鐘連接線,606為動態控制輸出
時鐘
圖6中的606動態控制輸出時鐘和圖5中的506動態配置時 鐘,可以用同一個時鐘,也可以用不同的時鐘。
602帶允許輸出端的同步D觸發器,1腳為輸入端,2腳為輸 出端,3腳為同步時鐘輸入端,4腳為允許輸出寄存器控制端。
602的1腳連接到"功能單元"輸出連接線,"功能單元" 可為通用走線、局部走線、嵌入式陣列塊、輸入/輸出控制塊、 數字信號處理塊、乘法器、塊狀SRAM塊的輸出信號。
602的2腳為輸出腳,通過603連線連接到局部走線或通用 走線。
602的3腳為D觸發器的同步時鐘輸入腳,通過時鐘樹連接 動態控制輸出時鐘,當輸入為上升沿時有效。
602的4腳為D觸發器允許輸出腳,連接到允許輸出寄存器 輸出腳,當允許寄存器輸出為低電平時允許輸出,當允許寄存 器為高電平時輸出鎖存上一次執行的結果。
604為允許輸出寄存器,輸入采用統一編址,采用串行或 并行的方法對本寄存器賦值,輸出端連接到602的4腳,控制電 路輸出是否有效。
3.4工作原理
為了避免實現動態可編程電路在電路部分或全部配置時電路的 相互影響,本發明增加了輸出控制電路。當部分重新配置電路時, 帶允許輸出端的同步緩存寄存器保存上一次的結果,在配置同步時 鐘的作用下重新配置。未配置的電路仍能正常工作。對本單元的電 路是否重新配置受允許配置寄存器的控制。所有的允許配置位均有 效,可對整個動態可編程集成電路所有的電路在配置時鐘的同步作 用下重新配置,配置前本單元輸出的中間結果可保存在D觸發器中, 供電路配置完成后使用這個中間結果。
4、有益效果
本發明的集成電路,能在集成電路正常工作時,對整個電路或 電路的一部分邏輯電路進行重新配置,且對整個FPGA的重新配置只 需要一個配置時鐘周期;在配置過程中,不需要重新配置的電路仍 能正常工作,需要重新配置的電路能保存上一次的計算結果。而不 像現有的FPGA在配置器件,在配置過程中器件邏輯不能正常工作, 待完全配置完成后才能正常工作,且不能保存上一次的計算結果。
本發明可實現FPGA的動態重新配置,從而實現FPGA硬件電路重
構和重用,提高了硅片的利用率,提高了集成電路性能,同時大大 拓展了FPGA的用途。
四
圖l表示現有4支術Altera公司的Clone FPGA電路結構圖。 圖2表示本發明動態可編程集成電路的FPGA電路結構圖。 圖3表示Altera公司的FPGA配置狀態機。 圖4表示本發明配置狀態機。 圖5表示"配置單元"控制電路。 圖6表示輸出控制電路。
圖7表示配置控制電路、輸出控制電路的允許控制端、同步時鐘輸入端的不 同情況的優選實例。
圖8表示陣列配置電路。 圖9表示陣列輸出控制電路。
五具體實施方式
下面通過優選實例對本發明進行進一步說明。
1 、帶允許輸出端的同步D觸發器的允許輸出控制端、同步輸入時鐘的不
同優選實例
簡單地說,就是在D觸發器的時鐘輸入端加上一個反向器,即可 實現,時鐘輸入信號由原來的上升沿有限變為下降沿時有效;在D觸 發器的允許輸入端加上一個D觸發器,由原來的低電平允許輸出,變 為高電平時允許輸出。配置電路和輸出控制電路的D觸發器電路完全 相同,因此本優選實例既適用于配置電路也適用于輸出控制電路。
如圖7所示,701為帶允許輸出端的同步D觸發器,703為輸入連 接線,705為輸出連接線,702為同步時鐘輸入端加上一個反向器,704 為允許輸出控制端加上一個反向器,706為同步時鐘連接線,707為允 許輸出連接線。
圖5中"配置電路"502的3腳配置時鐘輸入端通過504連接到 動態配置時鐘506上,當時鐘輸入為上升沿時,帶允許輸出端的同步 D觸發器同步輸出。圖7中在701的3腳連接線增加702反向器后, 706為下降沿時帶允許輸出端的同步D觸發器有同步信號輸出。
圖5中"配置電路"502的4腳連接到503允許配置寄存器輸出 端,當允許配置寄存器輸出為低電平時,帶允許輸出端的同步D觸發 器在同步時鐘的作用下能輸出信號。當允許配置寄存器為高電平時輸 出帶允許輸出端的同步D觸發器無效。圖7中在帶允許輸出端的同步 D觸發器的允許輸出端增加了一個反向器704即可實現當707輸入為 高電平時本帶允許輸出端的同步D觸發器有效,當707輸入為低電平 時本帶允許輸出端的同步D觸發器不發送數據,而是鎖存上次執行的 結果。
輸出控制電路與配置控制電路完全相同,不再敘述。
2、動態可重新配置控制電路配置塊狀SRAM、通用走線、局部走線、嵌入 式陣列塊、乘法器、數字信號處理塊陣列配置電路
簡單地說實際應用中,要實現一個配置電路地功能,并不 是一位就能解決問題,需要多位組合起來并行才能完成一個功能, 就一位來說跟3. 2的描述完全相同,只不過是多位同時并行的完 成。
對通用走線、局部走線、塊狀SRAM、嵌入式陣列塊、乘法器、數 字信號處理塊、輸入/輸出塊不是一位配置位就可以了, 一般需要多 個配置位。
如圖8所示,為多個配置位陣列。
801為臨時配置寄存器組,804為第一位控制電路,803為第二位 控制電路,802為第n路控制電路,805為被配置寄存器組,806為動 態配置時鐘,807為允許配置寄存器組。
801為臨時配置寄存器組,臨時配置寄存器組采用按位單獨編址 或對臨時配置寄存器組作為一個并行寄存器進行編址,通過串口或并 口對臨時寄存器賦值,寄存器組的輸出一一分別連接到D觸發器組控 制電路的1到n位,將輸出值送到帶允許輸出端的同步D觸發器組的 輸入端。
804、 803、 802為陣列控制電路,輸入端分別連接到臨時配置寄 存器組的每個位;804、 803、 802控制電路陣列組的時鐘輸入端連接 在一起連接到806動態配置時鐘上;804、 803、 802的輸出端分別連 接到805被配置寄存器組的每個位;804、 803、 802的允許輸出端分 別連接到允許配置寄存器組的每個位上。
805被配置寄存器組的輸入端分別連接到控制配置帶允許輸出端 的同步D觸發器組的輸出端。
807允許配置寄存器組采用按位編址或按寄存器組統一編址方 法,利用串行或并行方法對允許配置寄存器進行賦值;允許配置寄存 器組,輸出連接到804、 803、 802組成的帶允許輸出端的同步D觸發 器組的允許輸出端。
當動態配置時鐘的輸出為上升沿,允許輸出寄存器組的對應的控 制位為O時同步D觸發器,其輸入的數據直接輸出;對應的允許輸出 寄存器為l的位,其輸出不變,鎖存中間結果。
3、動態可重新配置控制電路配置通用走線、局部走線、塊狀SR嫩、嵌入
式邏輯塊、乘法器、數字信號處理塊陣列輸出控制電路
簡單地說就是通過將多位輸出控制電路組成一個陣列,來實現 多位并行同時處理。
對通用走線、局部走線、塊狀SRAM、嵌入式陣列塊、乘法器、數 字信號處理塊、輸入/輸出塊有的是一位輸出,有的是多位并行輸出。 圖9為解決多位同時輸出的優選實例。
如圖9所示901為多位功能單元輸出寄存器組,904為第一路輸 出控制電路,903為第二路輸出控制電路,902為第n路輸出控制電 路,905為第一路輸出連線,908為第二路輸出連線,909為第n路輸 出連線,906為動態控制輸出時鐘,907為允許輸出寄存器組。
901多位功能單元輸出寄存器組分別連接到904、 903、 902等組 成的并行控制輸出控制陣列。
904、 903、 902為利用帶允許輸出端的同步D觸發器組成的輸出 控制陣列。輸入引腳分別連接到901中的每個位。時鐘輸入端連接在 一起連接到動態控制輸出時鐘。允許輸入端分別連接到907允許輸出 寄存器組的每個位。
904、 903、 902的輸出端905、 908、 909分別連接到局部走線或 通用走線上。
907為允許輸出寄存器組,允許輸出寄存器組采用按位單獨編址 或寄存器組為一個整體編址,按位單獨編址的采用串行方式下配置允 許輸出寄存器數據,按寄存器組統一編址的采用并行方式下載數據。 允許輸出寄存器組的輸出電路分別連接到同步D觸發器陣列的允許輸 出控制端。
權利要求1、動態可編程集成電路,包括局部走線、通用走線、嵌入式陣列塊、可編程輸入/輸出模塊、數字時鐘管理器或可編程鎖相環、塊存儲器、乘法器、數字信號處理器模塊,其特征在于在可編程集成電路中的局部走線、通用走線、嵌入式陣列塊、輸入/輸出塊、乘法器、數字信號處理塊、塊狀SRAM的每個配置單元增加配置控制電路由臨時配置寄存器、允許配置寄存器、帶允許輸出端的同步D觸發器、動態配置時鐘電路、被配置寄存器組成;在可編程集成電路中的局部走線、通用走線、嵌入式陣列塊、輸入/輸出塊、乘法器、數字信號處理塊、塊狀SRAM的每個輸出單元增加輸出控制電路由功能單元輸出、允許輸出寄存器、帶允許輸出端的同步D觸發器、動態控制輸出時鐘、輸出寄存器組成。
2、 根據權利要求1所述動態可編程集成電路,其特征是在動態 可編程集成電路上增加了一個動態配置時鐘,利用時鐘樹連接 到每個配置單元的D觸發器的同步時鐘輸入端。
3、 根據權利要求1所述動態可編程集成電路,其特征是在每個 配置單元中增加了一個臨時配置寄存器,該寄存器在動態可編 程集成電路各個配置單元中采用統一編址,通過串行或并行的 辦法對該臨時配置寄存器賦值,臨時配置寄存器直接連接到帶 允許輸出端的同步D觸發器的輸入端。
4、 根據權利要求1所述動態可編程集成電路,其特征是在每個配置單元中增加了一個允許配置寄存器,對一片動態可編程集 成電路中所有的允許配置寄存器統一編址,利用串行或并行的 辦法對該寄存器進行賦值,允許配置寄存器直接連接帶允許輸出端的同步D觸發器的允許控制端。
5、 根據權利要求1所述動態可編程集成電路,其特征是在每個 配置單元中增加一個配置控制電路,由帶允許輸出端的同步D 觸發器組成;帶允許輸出端的同步D觸發器的輸入端連接臨時 配置寄存器輸出端,帶允許輸出端的同步D觸發器的輸出端連 接動態可編程集成電路的被配置SRAM,帶允許輸出端的同步D 觸發器的時鐘輸入端連接到動態配置時鐘上,帶允許輸出端的 同步D觸發器的允許輸入端連接到允許配置寄存器輸出端。
6、 根據權利要求1所述動態可編程集成電路,其特征是輸出控 制電路由功能單元輸出端、帶允許輸出端的同步D觸發器、允 許輸出寄存器、動態控制輸出時鐘組成;功能單元輸出端局部走線、通用走線、輸入/輸出模 塊、乘法器、數字信號處理塊、塊狀SRAM的輸出端連接在 帶允許輸出端的同步D觸發器輸入端;帶允許輸出端的同步D觸發器的輸出端通過通用或局部 走線連接到其它功能單元;允許輸出寄存器的輸出端連接到帶允許輸出端的同步D 觸發器的允許輸出端; 動態控制輸出時鐘通過時鐘樹連接到帶允許輸出端的同步D觸發器的同步時鐘輸入端。
7、 根據權利要求1所述動態可編程集成電路,其特征是在局部 走線、通用走線、嵌入式邏輯塊、輸入/輸出塊、乘法器、數字 信號處理塊、塊狀SRAM輸出端每個功能單元輸出端連接到帶允 許輸出端的同步D觸發器輸入端。
8、 根據權利要求1所述動態可編程集成電路,其特征是在一塊 動態可編程集成電路中,允許輸出寄存器采用統一編址,可利 用串行或并行的辦法對該寄存器進行賦值,允許輸出寄存器直 接連接到帶允許輸出端的同步D觸發器的允許輸出端。
9、 根據權利要求1所述動態可編程集成電路,其特征是帶允許 輸出端的同步D觸發器輸出端連接到通用或局部走線與其它功 能單元相連。
10、 根據權利要求1所述動態可編程集成電路,其特征是動態控 制輸出時鐘輸出端連接到帶允許輸出端的同步D觸發器的同步 時4中|#入端。
專利摘要動態可編程集成電路,涉及到一種在正常運行中可部分或全部改變邏輯電路的動態現場可編程集成電路。解決現在可編程集成電路不能動態重用的問題。通過增加了一組臨時配置寄存器、配置控制電路、動態配置時鐘、允許配置寄存器,在FPGA正常工作時,實現對邏輯單元重新配置。通過增加動態允許輸出控制電路、動態控制輸出時鐘、允許輸出寄存器、輸出寄存器,從而實現對輸出電路的控制,避免在重新配置過程中對可編程集成電路影響。可廣泛應用在圖像處理,網絡處理器,可編程指令集計算機,網格刀片式服務器,可信計算機,可信路由器等場所。
文檔編號G06F15/78GK201004227SQ200620141419
公開日2008年1月9日 申請日期2006年12月25日 優先權日2006年12月25日
發明者華曉軍, 華曉勤, 顧士平 申請人:顧士平