專利名稱::可配置的可編程邏輯單元的時序控制電路的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于集成電路設(shè)計
技術(shù)領(lǐng)域:
,具體涉及一種可編程邏輯單元的時序控制電路。技術(shù)背景可編程邏輯單元(CLB)是整個現(xiàn)場可編程門陣列(FPGA)芯片的核心,F(xiàn)PGA器件正是靠它來實現(xiàn)所有的組合邏輯函數(shù)和絕大多數(shù)數(shù)據(jù)鎖存功能;隨著工藝進(jìn)步,集成電路的設(shè)計實現(xiàn)能力越來越強大,對數(shù)據(jù)的快速存取和移位操作越來越頻繁,這樣,設(shè)計CLB單元時,除了強調(diào)組合邏輯功能和數(shù)據(jù)鎖存功能外,還要求CLB具有分布式RAM和移位寄存器這兩項功能[l],而實現(xiàn)分布式RAM功能需要一個數(shù)據(jù)寫入使能脈沖信號,實現(xiàn)移位寄存器功能也需要一個兩相非交疊脈沖信號,這些信號就需要一個時序控制電路來產(chǎn)生。現(xiàn)有的文獻(xiàn)中對可編程邏輯單元的時序控制電路討論不多,主要原因是目前國際上做可編程器件的單位很少,主要技術(shù)目前完全被XILINX、ALTERA等少數(shù)幾家公司所擁有。文獻(xiàn)[2]中介紹了分布式RM1功能的一種實現(xiàn)電路,該電路采用動態(tài)鎖存器(LATCH)結(jié)構(gòu)來實現(xiàn)分布式RAM的寫入同步,這種LATCH結(jié)構(gòu)面積雖稍小,但對控制電路的時序要求較為苛刻,所以文獻(xiàn)[2]中所提出的時序控制電路較為復(fù)雜??紤]到LATCH面積只占整個可編程邏輯單元面積的1/30到1/40,所以本發(fā)明所提出的時序控制電路是基于靜態(tài)LATCH來設(shè)計的,靜態(tài)LATCH可靠性好,可以大大簡化時序控制電路。文獻(xiàn)[2]中提到的時序控制電路只是用來產(chǎn)生分布式RAM的寫入使能脈沖信號,而實現(xiàn)移位寄存器功能也需要一個時序控制電路來產(chǎn)生兩相非交疊脈沖信號,目前尚未找到一篇文獻(xiàn)介紹可同時用于分布式RAM和移位寄存器功能的時序控制電路??紤]到這兩個脈沖信號寬度可以一樣,所以本發(fā)明共用一個脈沖產(chǎn)生電路,將兩個用于不同功能時序控制單元合并成一個,從而減小面積。
發(fā)明內(nèi)容本發(fā)明的目的在于提出一種面積較小并可同時用于實現(xiàn)分布式RAM和移位寄存器功能的可編程邏輯單元的時序控制電路。首先介紹一下可編程邏輯單元實現(xiàn)分布式RAM和移位寄存器這兩項功能所需要基本硬件結(jié)構(gòu)以及實現(xiàn)的基本原理。圖1所示即為所需要的基本硬件結(jié)構(gòu)。它由四輸入査找表G電路101和F電路102、分布式RAM的寫地址鎖存器103、分布式RAM的寫入數(shù)據(jù)鎖存器105和107、分布式RAM的地址譯碼器104、二選一的選擇器106、另一二選一的選擇器108以及時序控制單元109;其中四輸入査找表G電路101和F電路102由16個存儲單元(M1…M16)201和16到1的傳輸管樹202組成;為了使分布式RAM的寫入操作與時鐘信號ck同步,寫入地址G[4:l]通過寫地址鎖存器103鎖存后再接入地址譯碼器104,譯碼出來的信號同時接到四輸入査找表G電路101、F電路102的字線wl[15:0]上;作為移位寄存器的寫入數(shù)據(jù)BY、BX分別接到四輸入査找表G電路101、F電路102的D—sr端;作為分布式RAM的寫入數(shù)據(jù)BY經(jīng)過數(shù)據(jù)鎖存器105接到四輸入查找表G電路101的D_ram和Db_ram端;作為分布式RAM的寫入數(shù)據(jù)BX與BY經(jīng)過二選一的選擇器106后再通過數(shù)據(jù)鎖存器107接到四輸入查找表F電路102的D_ram和Db—ram端;二選一的選擇器106的控制端D一F是一個編程點;G[4:l]、F[4:l]作為分布式RAM的讀地址或移位寄存器的長度調(diào)節(jié)控制端分別接到四輸入査找表G電路101和F電路102的16到1的傳輸管樹202上,輸出分別是OUTB與OUTC,此兩輸出端再經(jīng)過另一二選一的選擇器108得到輸出OUTA,另一二選一的選擇器108的控制端為BX;時序控制單元109產(chǎn)生四輸入查找表G電路101所需要的控制信號WS一G,CI—G,C2_G,時序控制單元還產(chǎn)生四輸入查找表F電路102所需要的控制信號WS—F,C1_F,C2—F,同時與編程下載結(jié)束信號doneb、移位使能或分布式RAM數(shù)據(jù)寫入使能信號SR/WE連接,此外還控制五個編程點ramG、ramF、ram—both、shiftG以及shiftF。16個存儲單元201的作用是存儲分布式RAM的寫入或讀取數(shù)據(jù)以及作為移位寄存器的一個單元,每個存儲單元的具體電路如圖2所示,包括基本的6管存儲單元301、分布式RAM的數(shù)據(jù)寫入路徑302、移位寄存器的數(shù)據(jù)移入單元的路徑303以及移位寄存器的數(shù)據(jù)移出單元的路徑304。分布式RAM的寫入數(shù)據(jù)D—ram、Db—ram在字線wl—ram和寫入使能脈沖信號ws的控制下經(jīng)過分布式RAM的數(shù)據(jù)寫入路徑302寫入基本的6管存儲單元301中,Cl、C2為移位寄存器的兩相非交疊信號,移位寄存器的數(shù)據(jù)寫入端SIN在C2的控制下經(jīng)過移位寄存器的數(shù)據(jù)移入單元的路徑303寫入基本的6管存儲單元301中,然后在Cl的控制下經(jīng)過移位寄存器的數(shù)據(jù)移出單元的路徑303將存儲在基本的6管存儲單元301中的數(shù)據(jù)移出到輸出端SOUT,每個存儲單元的SOUT端都接到下一個存儲單元的SIN端,這樣就將這16個存儲單元串聯(lián)起來形成移位寄存器,第一個存儲單元的SIN端為移位寄存器的數(shù)據(jù)寫入端即圖1中所示的D—sr。圖3所示為實現(xiàn)移位寄存器功能所需要的兩相非交疊脈沖信號的波形圖。當(dāng)C2為高電平、Cl為低電平時,圖2中移位寄存器的數(shù)據(jù)移出單元的路徑304關(guān)斷、移位寄存器的數(shù)據(jù)移入單元的路徑303打開,上一個移位寄存器單元的數(shù)據(jù)寫入基本的6管存儲單元301中,當(dāng)C2為低電平、Cl為高電平時,圖2中移位寄存器的數(shù)據(jù)移入單元的路徑303關(guān)斷、移位寄存器的數(shù)據(jù)移出單元的路徑304打開,存儲在基本的6管存儲單元301中的數(shù)據(jù)寫入下一個移位寄存器單元。因為16個存儲單元是串聯(lián)起來的,若C1、C2同時為高電平的話,會造成穿通現(xiàn)象,也就是數(shù)據(jù)有可能從第一個存儲單元寫到最后一個存儲單元,所以圖3中所示的tl、t3時間段就是保證Cl、C2為非交疊信號。根據(jù)上面介紹,圖1所示的可編程邏輯單元部分結(jié)構(gòu)可實現(xiàn)分布式RAM、移位寄存器這兩項功能,具體描述如下可配置成以下四種分布式RAM:(1)、單個ramJ6xl,數(shù)據(jù)輸入端為BY,讀寫地址為G[4:l],輸出端為OUTB;(2)、ram一16x2,數(shù)據(jù)輸入端為BY和BX,讀寫地址為G[4:l](需要軟件布線將F[4:l]連到G[4:1]),輸出端為OUTB和OUTC;(3)、rami6x1—dualport(雙口16x1的ram),數(shù)據(jù)輸入端為BY,寫地址為G[4:l],讀地址為G[4:l]和F[4:l],輸出端為OUTB和OUTC;(4)、ram32xl,數(shù)據(jù)輸入端為BY,讀寫地址為(BX,G[4:l]},輸出端為OUTA??膳渲贸蓛蓚€長度可變的(1至16位)的移位寄存器,輸入數(shù)據(jù)為BY和BX,輸出是OUTB和OUTC,長度選擇信號為G[4:1]和F[4:1]。下面介紹的就是可編程邏輯單元的時序控制電路(圖1中109單元),如圖4所示,電路輸入端為CK、doneb、SR/WE、BX、ramG、ramF、ram_both、shiftG以及shiftF,輸出端為WS—G、WS_F、C1_G、C1_F、C2_G以及C2_F,電路由脈沖寬度產(chǎn)生電路401、分布式RAM寫入使能脈沖信號(WS—G、WS_F)產(chǎn)生電路402和移位寄存器兩相非交疊信號(Cl一G、C2—G、Cl一F、C2_F)產(chǎn)生電路403組成;其中,脈沖寬度產(chǎn)生電路401由帶清零端RN的D觸發(fā)器501、反相延時單元502、與非門503、與門504和反相器505連接組成,移位使能或分布式RAM數(shù)據(jù)寫入使能信號SR/WE經(jīng)過觸發(fā)器501鎖存后接到與非門503的一個輸入端和反相延時單元502的輸入端,與非門503的另一個輸入是反相延時單元502的輸出,與門504的一個輸入是與非門503的輸出端,另一個輸入是編程下載結(jié)束信號doneb經(jīng)過反相器505的輸出,與門504的輸出接到觸發(fā)器501的清零端;分布式RAM寫入使能脈沖信號產(chǎn)生電路402由鎖存器601、或非門602、或非門602'、反相器603、反相器603'、或非門604、或非門604,和反相器605組成,分布式RAM的第五根地址線(當(dāng)可編程邏輯單元配置成32xl的分布式RAM)BX經(jīng)過鎖存器601后,正相端Q接到或非門602的一個輸入上,反相端QN接到或非門602,的一個輸入上,或非門602、602,的另一個輸入都是ramJ)oth,它們的輸出分別接到或非門604、604'的一個輸入上,或非門604、604,的第二個輸入都是觸發(fā)器501的Q端經(jīng)過反相器506的輸出,第三個輸入分別是ramG經(jīng)過反相器603的輸出和ramF經(jīng)過反相器603'的輸出,它們的輸出分別是WS—G和WS—F;移位寄存器兩相非交疊信號產(chǎn)生電路403由與門700、與門700'、同相延時單元701、同相延時單元701'、同相延時單元702、同相延時單元702'、或非門703以及或非門703'組成,與門700、700'的一個輸入端都是觸發(fā)器501的Q端,另一個輸入分別是shiftF和shiftG,與門700的輸出端同時接到或非門703的一個輸入和同相延時單元701的輸入端,同相延時單元701的輸出端即C2—G接到同相延時單元702的輸入端,或非門703的另一個輸入是同相延時單元702的輸出端,輸出為C1_G,與門700,的輸出端同時接到或非門703'的一個輸入和同相延時單元701'的輸入端,同相延時單元701'的輸出端即C2—F接到同相延時單元702'的輸入端,或非門703'的另一個輸入是同相延時單元702'的輸出端,輸出為CI—F。ramG、ramF、ram_both、shiftG以及shiftF為五個編程點,其含義如下ramG的含義為是否將四輸入査找表G配置成分布式RAM,高電平有效,ramF的含義為是否將四輸入查找表F配置成分布式RAM,高電平有效,ram_both的含義為是否將四輸入査找表F(G)聯(lián)合起來配置成16x2或dualport類型的分布式RAM,高電平有效,shiftG的含義為是否將四輸入査找表G配置成移位寄存器,高電平有效,shiftF的含義為是否將四輸入查找表F配置成移位寄存器,高電平有效。本發(fā)明設(shè)計的時序控制電路,面積小,并可同時用于實現(xiàn)分布式RAM和移位寄存器功能。圖1為可編程邏輯單元的部分結(jié)構(gòu)。圖2為存儲單元的具體電路。圖3為兩相非交疊脈沖信號的波形圖。圖4為可編程邏輯單元的時序控制電路。具體實施例方式本發(fā)明所提出的可編程邏輯單元的時序控制電路是可配置的,根據(jù)六個編程點(ramG、ramF、ram—both、D—F、shiftG、shiftF,記為矢量P)不同取值將可編程邏輯單元配置成多種分布式RAM或長度(1-16位)可調(diào)的移位寄存器。具體實施方式如表1所示(1)若想將可編程邏輯單元配置成容量為16x1的分布式RAM,則需將矢量P的值下載為[IOOIOO],此時WS—G有效、WS—F無效、C1_G為高、C2_G為低、CI—F為高、C2—F為低,raml6xl的數(shù)據(jù)輸入端為BY,讀寫地址為G[4:l],輸出端為OUTB(需要將BX置為高電平);(2)若想將可編程邏輯單元配置成容量為16x2的分布式RAM,則需將矢量P的值下載為[lllOOO],此時WS—G有效、WS—F有效、Cl—G為高、C2—G為低、C1—F為高、C2_F為低,raml6x2的數(shù)據(jù)輸入端為BY和BX,讀寫地址為G[4:l](需要軟件布線將F[4:l]連到G[4:1]),輸出端為OUTB和OUTC;(3)若想將可編程邏輯單元配置成容量為16x1的雙口分布式RAM,則需將矢量P的值下載為[111100],此時WS—G有效、WS一F有效、Cl—G為高、C2—G為低、C1_F為高、C2—F為低,rami6x1—dualport(雙口16x1的ram)的數(shù)據(jù)輸入端為BY,寫地址為G[4:l],讀地址為G[4:l]禾卩F[4:l],輸出端為OUTB和OUTC;(4)若想將可編程邏輯單元配置成容量為32x1的分布式RAM,則需將矢量P的值下載為[IIOIOO],此時C1—G為高、C2—G為低、C1—F為高、C2—F為低,WS_G、WS_F是否有效取決于第五根地址(BX)的值,BX為1時,WS—G有效、WS_F無效,反之,WS—G無效、WS—F有效,ram32xl的數(shù)據(jù)輸入端為BY,讀寫地址為(BX,G[4:l]},輸出端為OUTA;(5)若只想將可編程邏輯單元的101部分即四輸入査找表G配置成長度可調(diào)(1-16位)的移位寄存器,則需將矢量P的值下載為(x表示任意值),此時WS—G無效、WS—F無效、C1—F為高、C2—F為低,C1_G、C2_G為兩相非交疊信號,移位寄存器G的數(shù)據(jù)輸入端為BY,長度調(diào)節(jié)控制端為G[4:1];(6)若只想將可編程邏輯單元的102部分即四輸入査找表F配置成長度可調(diào)(1-16位)的移位寄存器,則需將矢量P的值下載為(x表示任意值),此時WS—G無效、WS—F無效、C1—G為高、C2—G為低,C1_F、C2—F為兩相非交疊信號,移位寄存器F的數(shù)據(jù)輸入端為BX,長度調(diào)節(jié)控制端為F[4:1];(7)若想將可編程邏輯單元的101和102即四輸入查找表F和四輸入查找表G都配置成長度可調(diào)(1-16位)的移位寄存器,則需將矢量P的值下載為(x表示任意值),此時WS—G無效、WS—F無效、C1—G、C2—G與C1一F、C2一F均為兩相非交疊信號,移位寄存器G的數(shù)據(jù)輸入端為BY,長度調(diào)節(jié)控制端為G[4:l],移位寄存器F的數(shù)據(jù)輸入端為BX,長度調(diào)節(jié)控制端為F[4:1]。<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>表1各種功能的配置方案參考文獻(xiàn)Xilinxcorporation,"Virtex-IIProandVirtex-IIProXPlatformFPGAs:CompleteDatasheet",2005。RobertAndersJohnson,"RAMwithsynchronouswriteportusingdynamiclatches",PatentNo.5933369。權(quán)利要求1、一種可編程邏輯單元的時序控制電路,其特征在于電路由脈沖寬度產(chǎn)生電路(401)、分布式RAM寫入使能脈沖信號WS_G、WS_F產(chǎn)生電路(402)和移位寄存器兩相非交疊信號C1_G、C2_G、C1_F、C2_F產(chǎn)生電路(403)組成;其中,脈沖寬度產(chǎn)生電路(401)由帶清零端RN的D觸發(fā)器(501)、反相延時單元(502)、與非門(503)、與門(504)和反相器(505)連接組成,移位使能或分布式RAM數(shù)據(jù)寫入使能信號SR/WE經(jīng)過觸發(fā)器(501)鎖存后接到與非門(503)的一個輸入端和反相延時單元(502)的輸入端,與非門(503)的另一個輸入是反相延時單元(502)的輸出,與門(504)的一個輸入是與非門(503)的輸出端,另一個輸入是編程下載結(jié)束信號doneb經(jīng)過反相器(505)的輸出,與門(504)的輸出接到觸發(fā)器(501)的清零端;分布式RAM寫入使能脈沖信號產(chǎn)生電路(402)由鎖存器(601)、或非門(602)、或非門(602’)、反相器(603)、反相器(603’)、或非門(604)、或非門(604’)和反相器(605)組成,分布式RAM的第五根地址線BX經(jīng)過鎖存器(601)后,正相端Q接到或非門(602)的一個輸入上,反相端QN接到或非門(602)’的一個輸入上,或非門(602、602’)的另一個輸入都是ram_both,它們的輸出分別接到或非門(604、604’)的一個輸入上,或非門(604、604’)的第二個輸入都是觸發(fā)器(501)的Q端經(jīng)過反相器(506)的輸出,第三個輸入分別是ramG經(jīng)過反相器(603)的輸出和ramF經(jīng)過反相器(603’)的輸出,它們的輸出分別是WS_G和WS_F;移位寄存器兩相非交疊信號產(chǎn)生電路(403)由與門(700、700’)、同相延時單元(701、701’)、同相延時單元(702、702’)、或非門(703、703’)組成,與門(700、700’)的一個輸入端都是觸發(fā)器(501)的Q端,另一個輸入分別是shiftF和shiftG,與門(700)的輸出端同時接到或非門(703)的一個輸入和同相延時單元(701)的輸入端,同相延時單元(701)的輸出端即C2_G接到同相延時單元(702)的輸入端,或非門(703)的另一個輸入是同相延時單元(702)的輸出端,輸出為C1_G,與門(700’)的輸出端同時接到或非門(703’)的一個輸入和同相延時單元(701’)的輸入端,同相延時單元(701)’的輸出端即C2_F接到同相延時單元(702’)的輸入端,或非門(703’)的另一個輸入是同相延時單元(702’)的輸出端,輸出為C1_F;ramG、ramF、ram_both、shiftG以及shiftF為五個編程點,其含義如下ramG的含義為是否將四輸入查找表G配置成分布式RAM,高電平有效,ramF的含義為是否將四輸入查找表F配置成分布式RAM,高電平有效,ram_both的含義為是否將四輸入查找表F(G)聯(lián)合起來配置成16×2或dualport類型的分布式RAM,高電平有效,shiftG的含義為是否將四輸入查找表G配置成移位寄存器,高電平有效,shiftF的含義為是否將四輸入查找表F配置成移位寄存器,高電平有效。全文摘要本發(fā)明屬于集成電路設(shè)計
技術(shù)領(lǐng)域:
,具體為一種可配置的可編程邏輯單元的時序控制電路。該電路由脈沖寬度產(chǎn)生電路、分布式RAM寫入使能脈沖信號(WS_G、WS_F)產(chǎn)生電路和移位寄存器兩相非交疊信號(C1_G、C2_G、C1_F、C2_F)產(chǎn)生電路組成;它與五個編程點ramG、ramF、ram_both、shiftG以及shiftF連接。本發(fā)明通過配置不同編程點的值使得時序控制電路產(chǎn)生多種分布式RAM功能(16×1、16×2、32×1、16×1_dualport)所需要的寫入使能脈沖信號以及移位寄存器功能所需要的兩相非交疊信號。文檔編號H03K19/173GK101286737SQ20081003857公開日2008年10月15日申請日期2008年6月5日優(yōu)先權(quán)日2008年6月5日發(fā)明者來金梅,潘光華,元王,童家榕,陳利光申請人:復(fù)旦大學(xué)