專利名稱:現(xiàn)場(chǎng)可編程門陣列集成電路器件的分布式存儲(chǔ)器的制作方法
技術(shù)領(lǐng)域:
0001
本發(fā)明涉及可編程邏輯器件(PLD),例如通常稱為現(xiàn)場(chǎng)可編程門陣列(FPGA)的器件。特別地,本發(fā)明涉及在FPGA中提供存儲(chǔ)器電路,F(xiàn)PGA用戶可在該器件正常邏輯操作期間將所述存儲(chǔ)器電路用作隨機(jī)存取存儲(chǔ)器(RAM)。更特別地,本發(fā)明涉及選擇性地使用該器件上的、不需要正常的基于查找表的邏輯的查找表(LUT)電路來提供上述用戶可存取RAM。這樣的RAM可被稱為分布式RAM,因?yàn)槠浞植荚谠撈骷娜舾蓚€(gè)LUT的電路上,而不是在專用用戶RAM電路的塊中。
背景技術(shù):
0002
Lewis等人于2004年7月22日提交的美國(guó)專利申請(qǐng)10/897,743示出了在FPGA中提供分布式RAM的改進(jìn)電路。(在此將Lewis等人這一參考文獻(xiàn)以引用方式并入本文。)例如,Lewis等人的參考文獻(xiàn)中示出了FPGA上若干個(gè)均包括LUT的邏輯元件(LE)共享單個(gè)寫入解碼器以減少提供FPGA分布式用戶RAM模式能力所必須增加的寫地址電路的數(shù)量。
0003
對(duì)Lewis等人的參考文獻(xiàn)中所示的一般類型電路進(jìn)行各種擴(kuò)展和附加在許多情況下是有益的。例如,用戶經(jīng)常需要同步寫入,這樣用戶不需要為寫選通提供精確的定時(shí)信號(hào)。這使得有必要提供寫地址和寫數(shù)據(jù)寄存器,但如果能避免為此功能提供專用硬件(電路)則更為理想。
0004
可能對(duì)Lewis等人參考文獻(xiàn)所示內(nèi)容進(jìn)行的有益擴(kuò)展和附加的另一示例是將那些原理應(yīng)用到可分裂的LE,以實(shí)現(xiàn)一個(gè)邏輯功能尺寸范圍(例如六輸入基于LUT邏輯功能和兩個(gè)五輸入基于LUT邏輯功能)。
0005
對(duì)Lewis等人參考文獻(xiàn)所示內(nèi)容進(jìn)行的有益擴(kuò)展和附加的另一示例涉及支持同步讀功能。此外,用戶常常更喜歡同步讀,但如果能避免構(gòu)造專用硬件來支持讀地址寄存器則更為理想。
發(fā)明內(nèi)容
0006
為便于利用FPGA上要求的很少的附加電路在FPGA上提供用戶可存取的分布式RAM,可使用邏輯模塊的讀數(shù)據(jù)路徑中不需要的邏輯模塊中的寄存器來寄存將被寫入用戶RAM模式的分布式RAM的數(shù)據(jù)信號(hào)。
0007
有助于用戶RAM模式的另一示例是,可使用讀數(shù)據(jù)路徑中不需要的邏輯模塊中的寄存器為從用戶RAM模式的分布式RAM中讀取提供已被寄存的讀地址信號(hào)。
0008
根據(jù)本發(fā)明的另一示例是使用邏輯模塊的一個(gè)輸入端(該邏輯模塊不需要的那個(gè)輸入端),作為在用戶寫模式中控制寫入分布式RAM的寫地址解碼器電路所用的附加寫地址信號(hào)的源。
0009
少量的附加多路復(fù)用可被添加于邏輯模塊,以便于將邏輯模塊中的RAM單元用作不同深度和/或?qū)挾鹊腞AM。其他方式也可有利于提供不同深度和/或?qū)挾鹊姆植际絉AM,如通過包括寫地址解碼器的深度模式配置位,在取決于該位的發(fā)信號(hào)模式的分布式RAM中生成寫信號(hào)。
0010
可為寫地址解碼器添加一個(gè)或多個(gè)寄存器以便于為該解碼器服務(wù)的分布式RAM提供同步寫入。寫地址解碼器也可配有定時(shí)電路,為分布式RAM的寫入排序。
0011
參照附圖與以下詳細(xì)說明本發(fā)明的其他功能、其性質(zhì)及各種優(yōu)點(diǎn)將更明顯。
0012
圖1是根據(jù)本發(fā)明的說明性電路的簡(jiǎn)化示意框圖。
0013
圖2是根據(jù)本發(fā)明的另一說明性實(shí)施例的簡(jiǎn)化示意框圖。
0014
圖3是根據(jù)本發(fā)明的附加說明性電路的簡(jiǎn)化示意框圖。
0015
圖4是根據(jù)本發(fā)明的、圖3所示內(nèi)容一部分的說明性實(shí)施例的更詳細(xì)的簡(jiǎn)化示意框圖。
0016
圖5是根據(jù)本發(fā)明的、使用圖4電路所產(chǎn)生的信號(hào)的說明性電路的簡(jiǎn)化示意框圖。
0017
圖6是根據(jù)本發(fā)明的、圖3或圖4所示內(nèi)容一部分的替代性實(shí)施例的簡(jiǎn)化示意框圖。
0018
圖7是能夠根據(jù)本發(fā)明被使用的電路的說明性實(shí)施例的簡(jiǎn)化示意框圖。
0019
圖8是與圖1或圖2大致相似的簡(jiǎn)化示意框圖,示出了本發(fā)明其他可能功能的說明性實(shí)施例。
0020
圖9是根據(jù)圖8所示的本發(fā)明一方面的另一電路的說明性實(shí)施例的簡(jiǎn)化示意框圖。
具體實(shí)施方式
0021
圖1示出了基本眾所周知但根據(jù)本發(fā)明加以某些增強(qiáng)的FPGALE(或自適應(yīng)邏輯模塊(ALM)或自適應(yīng)邏輯元件(ALE))10的示例。圖1中的已知元件由兩位參照數(shù)字表示。新的或大幅改變的元件由三位參照數(shù)字表示。已知元件包括多路復(fù)用器30a-d、40-1至40-4、50-1至50-4、60-1、60-2、70a和70b。已知元件也包括三輸入查找表(3-LUT)20-1至20-8以及寄存器80a、80b。圖1所示互聯(lián)電路中多數(shù)為已知。但反饋連接110a、110b是為本發(fā)明目的添加的。此外,圖1中,為了便于追蹤可根據(jù)本發(fā)明使用的說明性信號(hào)路徑,該信號(hào)路徑用粗線強(qiáng)調(diào),盡管實(shí)際僅有該路徑的110b部分是為本發(fā)明目的新添的。
0022
可以理解圖1中3-LUT 20各自可以上述Lewis等人參考文獻(xiàn)中所示任何方式構(gòu)造。3-LUT 20各自包括八個(gè)可選擇作為分布式用戶RAM使用的配置RAM(CRAM)單元或位。(本文中為方便起見,元件20將通稱為3-LUT,盡管可以理解,他們可用作LUT或分布式用戶RAM)。各3-LUT 20的讀選擇控制信號(hào)在施加到(并經(jīng)過)3-LUT的三條垂直引線上。因此,例如,ALM輸入A和B是讀選擇控制信號(hào)的其中兩個(gè),這兩個(gè)信號(hào)被施加到所有八個(gè)3-LUT 20。施加到3-LUT20-1至20-4的第三個(gè)讀選擇控制信號(hào)是ALM輸入信號(hào)DC0。施加到3-LUT 20-5至20-8的第三個(gè)讀選擇控制信號(hào)是ALM輸入信號(hào)DC1。如果需要一起使用3-LUT 20-1至20-8所有RAM單元(如,提供一個(gè)六輸入邏輯功能或一個(gè)64*1的用戶RAM),那么DC0和DC1將具有同一邏輯值。另一方面,如果需要分裂ALM 10以提供兩個(gè)較小邏輯功能(即兩個(gè)五輸入邏輯功能或兩個(gè)四輸入邏輯功能)或提供兩個(gè)“較淺”用戶RAM片(如32*2RAM)那么DC0和DC1可為不同值的輸入。
0023
各3-LUT 20的其他所示輸入是寫數(shù)據(jù)(WD)信號(hào)和寫使能(WE)信號(hào)。這些信號(hào)的性質(zhì)及其在3-LUT 20中的使用通過上述Lewis等人的參考文獻(xiàn)將很明顯。提供了兩個(gè)寫使能信號(hào)線120a和120b以便于將ALM 10中的RAM作為64*1或32*2RAM使用。寫使能信號(hào)線120a服務(wù)于3-LUT 20-5至20-8;使能信號(hào)線120b服務(wù)于3-LUT 20-1至20-4。
0024
圖1中未示出,但在ALM 10電路中存在的是優(yōu)選為以類似Lewis等人的參考文獻(xiàn)所示任一方式施加到各個(gè)3-LUT 20-1至20-8的寫解碼器輸出信號(hào)。如Lewis等人參考文獻(xiàn)所示使用之外,這些寫解碼器輸出信號(hào)優(yōu)選以該參考文獻(xiàn)中所示任一方式生成。本說明書后文中示出并描述了根據(jù)本發(fā)明的各種可能寫解碼器的修改。
0025
回到讀,RAM單元輸出選擇的前三級(jí)是在3-LUT 20中在以及已經(jīng)描述的ALM輸入信號(hào)(即,A、B、DC0和DC1)的控制下執(zhí)行的。其他級(jí)的讀選擇是由可由ALM輸入DC0、DC1、E0、E1、F0和F1以各種方式控制的多路復(fù)用器40、50和60執(zhí)行。兩個(gè)寄存器80或其一的輸出信號(hào)也可用于提供一些多路復(fù)用器的選擇控制。多路復(fù)用器30用于選擇如何將一些可能的選擇控制信號(hào)實(shí)際路由至多路復(fù)用器40、50并供其使用。(多路復(fù)用器30一般由圖1未示出的配置RAM(CRAM)單元可編程控制。一般,所有讀選擇的最終結(jié)果為兩個(gè)多路復(fù)用器60或其一輸出端的64選1選擇或兩個(gè)獨(dú)立的32選1選擇,分別在各多路復(fù)用器60的輸出端。)
0026
如果需要,多路復(fù)用器60-1的輸出信號(hào)可被施加到并寄存于寄存器80a。多路復(fù)用器60-2的輸出信號(hào)可被施加到并寄存于寄存器80b。多路復(fù)用器70a允許某些其他信號(hào)施加到并寄存于寄存器80a。類似,多路復(fù)用器70b允許某些其他信號(hào)施加到并寄存于寄存器80b。多路復(fù)用器70一般由圖1中未示出的CRAM單元可編程控制。多路復(fù)用器60的輸出可為ALM 10的未寄存輸出。多路復(fù)用器80的輸出可為ALM 10的已寄存輸出。該寄存器輸出也可反饋給ALM,如圖所示。根據(jù)本發(fā)明(并如以上所提),寄存器80的反饋通過連接110至3-LUT 20的寫數(shù)據(jù)輸入增強(qiáng)。
0027
從前述可看出圖1示出了本發(fā)明的以下第一方面。在可分裂LUT中,LUT的CRAM單元被分為至少兩分區(qū)(如,一方面,3-LUT20-1至20-4內(nèi)的CRAM單元,另一方面,3-LUT 20-5至20-8內(nèi)的CRAM單元)。這些互斥的分區(qū)各自具有自己的寫入驅(qū)動(dòng)器和寫數(shù)據(jù)輸入(由引線110a和110b指示)。各分區(qū)也有一寫使能線120a或120b。在一種分布式用戶RAM運(yùn)行模式中,僅有單個(gè)寫使能線被斷言(依賴于某地址位的值),一個(gè)數(shù)據(jù)位被寫入由斷言寫使能信號(hào)所啟用的分區(qū)中的一個(gè)CRAM單元中。這對(duì)應(yīng)于LUT RAM的最深模式(如,64*1模式)。在另一用戶RAM運(yùn)行模式中,一個(gè)以上寫使能線120被斷言,且多數(shù)據(jù)位被寫入LUT RAM的一個(gè)以上分區(qū)中。這對(duì)應(yīng)于存儲(chǔ)器的較淺模式(如,32*2模式)。
0028
圖1也示出了本發(fā)明的另一方面。ALM 10的已知電路允許其在有時(shí)被稱為壓縮寄存器模式的模式中運(yùn)行。該模式中一個(gè)寄存器80可被用于寄存ALM的輸入信號(hào)E或F(或兩個(gè)寄存器80均可這樣使用)。例如,ALM輸入信號(hào)E0或F1可經(jīng)多路復(fù)用器70a被施加到寄存器80a。同樣,ALM輸入信號(hào)E1或F0可經(jīng)多路復(fù)用器70b被施加到寄存器80b。該功能(附加寄存器反饋路徑110)有助于ALM 10在分布式RAM模式中提供低成本的同步寫入,如以下詳細(xì)所述。
0029
在圖1中,粗線表示由底部寄存器或觸發(fā)器(FF)80b鎖存的、用于壓縮寄存器模式寫數(shù)據(jù)的輸入信號(hào)F0。通過將FF的輸出用作3-LUT 20-5至20-8的寫驅(qū)動(dòng)器的輸入,可以較少或零附加硬件成本提供寫數(shù)據(jù)寄存器。圖1示出了如何配置ALM 10使用一壓縮寄存器(80b)來鎖存寫數(shù)據(jù)并為該寫數(shù)據(jù)提供同步運(yùn)行。可以看出,在32*2模式中,兩個(gè)FF 80a和80b可被用于提供輸入數(shù)據(jù)的兩個(gè)不同位。
0030
在圖1中,當(dāng)LUT RAM配置為最深(64*1)模式時(shí)寫數(shù)據(jù)被路由至所有必要ALM 10輸入引腳(F0和F1),因?yàn)榭梢允褂?路徑110a和110b的)幾個(gè)不同寫驅(qū)動(dòng)器中任何一個(gè)來寫入某分區(qū)(即20-1至20-4或20-5至20-8)。但是,沒有充足的讀路徑可用,因?yàn)镕0和F1之一用于控制LUT中的最終多路復(fù)用器級(jí)60。在本發(fā)明實(shí)施例的另一方面,為至少一寫驅(qū)動(dòng)器輸入提供了多路復(fù)用器(130,圖2),使得寫驅(qū)動(dòng)器可配置在(1)為至少一其他寫驅(qū)動(dòng)器提供的同一寫數(shù)據(jù)或(2)不同輸入中選擇。這樣,F(xiàn)0/F1 ALM10’(圖2)輸入之一可被用作完整讀地址的一部分。
0031
參照?qǐng)D2更具體地扼要重述以上所述,與圖1一樣,ALM 10’包括(3-LUT 20中的)64CRAM位并被分為兩個(gè)分區(qū)(20-1至20-4以及20-5至20-8),使得ALM可作為64*1或32*2RAM運(yùn)行。這包括提供兩個(gè)寫使能線120a和120b和兩個(gè)寫數(shù)據(jù)線110a和110c。寫數(shù)據(jù)多路復(fù)用器130可為兩個(gè)分區(qū)提供同一數(shù)據(jù)(64*1模式)。換句話說,在此模式中,多路復(fù)用器連接引線110a至引線110c。可選擇地,多路復(fù)用器可連接引線110b至引線110c,以使得可為L(zhǎng)UT RAM兩個(gè)分區(qū)提供不同數(shù)據(jù)(32*2模式)。(多路復(fù)用器130一般由圖2中未示出的CRAM位可編程控制。)在圖2所示說明性實(shí)施例中,在最深模式中,F(xiàn)1被用作寫數(shù)據(jù),F(xiàn)0被用作讀地址。但是可以理解,這只是設(shè)計(jì)選擇的問題,如果需要,可以顛倒。
0032
繼續(xù)圖2所示的另一方面,如果ALM 10’被用于64*1模式,可以看出一個(gè)附加FF(80b)可用。這可用于寄存讀地址的一個(gè)位。一組ALM(被稱為邏輯陣列塊或LAB(見上述Lewis等人的參考文獻(xiàn)))中的所有ALM可經(jīng)服務(wù)LAB中所有ALM但一般不超出該LAB的本地互聯(lián)資源存取該讀地址位。(圖3中本地導(dǎo)線14是該本地互聯(lián)資源的示例。)寄存的讀地址位可從本地線連至LAB中一個(gè)或多個(gè)LUTRAM的讀地址引腳A/B/等之一。例如,圖2示出了壓縮寄存器模式中ALM 10’輸入E1被施加到寄存器80b。然后寄存器80b的輸出(作為同步讀地址位)對(duì)于LAB中包括ALM 10’的所有ALM可用。該可用性經(jīng)過服務(wù)LAB中所有ALM的本地線路(14,圖3)之一提供。這樣,讀地址寄存器可在與LUT RAM相同的LAB中執(zhí)行。如果提供了邏輯和LUT RAM的可選ALM級(jí)配置(選項(xiàng))且被執(zhí)行的存儲(chǔ)器不使用LAB中所有ALM,也可使用該結(jié)構(gòu)。一個(gè)可能的示例是如果LAB中一些ALM提供分布式存儲(chǔ)器,而LAB中的其他ALM執(zhí)行不要求使用一個(gè)或多個(gè)邏輯ALM中的兩個(gè)寄存器80的邏輯時(shí),可使用未使用的邏輯ALM寄存器來幫助寄存其他ALM提供的存儲(chǔ)器的讀地址。
0033
如上所述,圖2示出了如何使用ALM輸入E1提供讀地址信號(hào)。這確保了讀地址寄存器靠近LUT執(zhí)行分布式RAM,并提供兩個(gè)高速讀路徑,減少限制,并路由軟件以保持讀地址靠近分布式RAM。
0034
本發(fā)明的另一方法為同步寫地址提供了較佳寫定時(shí),并消除了用戶這么做的需要。另外,這是以低成本達(dá)成的。圖3示出了上述Lewis等人參考文獻(xiàn)中所示一些方面,但附加了根據(jù)本發(fā)明的一些功能。代表LAB 12包括幾個(gè)ALM 10或10’。LAB中ALM的運(yùn)行的某些方面由所謂的由LAB中所有ALM公用且共享的控制信號(hào)邏輯電路92選擇并可能在某種程度上控制的次信號(hào)控制。例如,該次信號(hào)可包括LAB中ALM的寄存器可用的時(shí)鐘、時(shí)鐘使能、負(fù)載、清除和/或預(yù)置信號(hào)。各ALM也可接收來自該器件的至少一些互聯(lián)資源13/14的幾種主信號(hào)A/B/等。(與Lewis等人參考文獻(xiàn)所示內(nèi)容相似,這些互聯(lián)資源可包括全局或相對(duì)全局元件13以及(對(duì)LAB來說)較本地的元件14。)各ALM的至少一些輸出信號(hào)將送至至少一些互聯(lián)資源13/14。
0035
由控制信號(hào)邏輯電路92使用的信號(hào)一般來自器件的全局14和本地13互聯(lián)資源。所謂交換多路復(fù)用器90a、90b和90c因在從邏輯元件輸入多路復(fù)用器(LEIM)輸出和全局信號(hào)選擇多路復(fù)用器輸出選擇信號(hào)應(yīng)用于電路92中增加信號(hào)選擇和路由靈活性而眾所周知。如LEIM和全局信號(hào)多路復(fù)用器,多路復(fù)用器90一般由圖3中未示出的CRAM可編程控制。
0036
Lewis等人的參考文獻(xiàn)示出了與次信號(hào)電路92相似,為L(zhǎng)UTRAM模式提供一寫地址解碼器并為L(zhǎng)AB中所有ALM 10/10’提供定時(shí)電路(這里是元件142)是有利的。根據(jù)本發(fā)明,圖3示出了LAB范圍電路142可從LAB的次信號(hào)電路92的輸入路由資源獲得,包括服務(wù)電路92的交換輸入多路復(fù)用器90。換句話說,寫地址解碼器和定時(shí)電路142的輸入信號(hào)可來自交換多路復(fù)用器90的輸出。
0037
另外,根據(jù)本發(fā)明,可為來自交換多路復(fù)用器90的寫使能和/或?qū)懙刂沸盘?hào)等電路142的輸入提供寄存器140。因而在此實(shí)施例中(圖3)寫解碼器142包括同步寫使能和寫地址信號(hào)的大量FF 140或與之聯(lián)系緊密。寫使能可為控制某模式相關(guān)大小(如示例所示每ALM1或2位)的單個(gè)字寫入的單個(gè)寫使能的形式?;蛘?,可提供多于一個(gè)寫使能來進(jìn)一步限定為32*2模式時(shí)ALM中每?jī)晌惶峁┆?dú)立寫使能的被寫的CRAM組,或使用依賴LUT RAM模式的不同數(shù)量地址和寫使能位的其他變動(dòng)。在存儲(chǔ)器設(shè)計(jì)方面的一般電路設(shè)計(jì)人員可理解這些變動(dòng)。FF的數(shù)據(jù)輸入被連至供給次信號(hào)區(qū)92的各種路由結(jié)構(gòu)(包括交換多路復(fù)用器90)。(應(yīng)強(qiáng)調(diào)寄存器140為可選。)
0038
圖4詳細(xì)示出了寫解碼器的說明性實(shí)施例。寫解碼器實(shí)施例是通過為排序?qū)懯鼓?WEi)、列(列i)、行(行i)及預(yù)充電信號(hào)(如果包括的話(見下文))提供定時(shí)對(duì)上述Lewis等人參考文獻(xiàn)所示內(nèi)容的擴(kuò)展。配置位(CRAM單元)150控制這些信號(hào)是否為L(zhǎng)AB啟用,使得邏輯模塊LAB(與分布式LUT RAM LAB相對(duì))沒有任何啟用的信號(hào)。一個(gè)或多個(gè)CRAM 170控制RAM的深度,使得在各深度配置斷言為適當(dāng)?shù)腤Ei線路的一個(gè)或多個(gè)(經(jīng)或(OR)門174a/b,與非(NAND)門176a/b,以及反相器178a/b),取決于地址A5。特別地,如果CRAM 170為1,A5的狀態(tài)為不相干。這對(duì)應(yīng)于32*2模式。如果CRAM 170為0,斷言為WE0和WE1其一,取決于A5的邏輯狀態(tài)。這對(duì)應(yīng)于64*1模式。(當(dāng)然,在任何情況下,WE信號(hào)斷言的定時(shí)取決于反相器162的輸出。)從前述可以看出深度模式CRAM 170和相關(guān)電路根據(jù)所需允許或不允許細(xì)分(分裂)ALM 10/10’中的RAM單元的列。如果該列被細(xì)分,那么子分區(qū)可使用輸入A5單獨(dú)尋址。如果該列未被細(xì)分,那么僅可尋址整列且A5的值不相干。
0039
圖4所示寫解碼器包括執(zhí)行在時(shí)鐘正相上寫的定時(shí)電路。(其他實(shí)施例可使用時(shí)鐘的負(fù)相。另外,寄存器140a可如一些實(shí)施例中寫的定時(shí)允許這樣的級(jí)敏鎖存器執(zhí)行。)該定時(shí)器電路包括寫使能寄存器140a、NAND門152、反相器154、延遲電路156、NAND門160、反相器162以及(可選)延遲電路164(用于預(yù)充電信號(hào),如果提供的話(見下文))。反相器162輸出的寫信號(hào)啟用行i和列i信號(hào)(如Lewis等人參考文獻(xiàn)中所示和所述方式使用)以及一個(gè)或多個(gè)WEi信號(hào)。其也禁止可能有的預(yù)充電信號(hào)。RAM設(shè)計(jì)中的電路設(shè)計(jì)人員可以理解適當(dāng)?shù)亩〞r(shí)關(guān)系。各行與列配置寫信號(hào)也或入行與列解碼器,使得配置邏輯可寫至任何所需地址,如Lewis等人參考文獻(xiàn)所述。
0040
關(guān)于上述生成預(yù)充電控制信號(hào)的電路,圖5示出了如何在LUT電路中使用該信號(hào)的示例。圖5與上述Lewis等人參考文獻(xiàn)所示基本相同,但是附加了預(yù)充電晶體管。從Lewis等人參考文獻(xiàn)中的已知元件具有200系列的參考標(biāo)號(hào)(盡管圖5中的參照數(shù)字用意不在與Lewis等人參考文獻(xiàn)中的參照數(shù)字相關(guān)聯(lián)。)。所述預(yù)充電晶體管具有300系列的參考標(biāo)號(hào)。圖5中LUT RAM單元220的行列數(shù)量為任意的,未必與Lewis等人參考文獻(xiàn)或本說明中別處示例所示數(shù)量相同。圖5示出的數(shù)據(jù)總線為雙軌,但如果與使用的RAM單元組織兼容,也可使用單頭總線。
0041
預(yù)充電晶體管310a和310b連于LUT范圍數(shù)據(jù)總線230a/b的軌道和VCC之間,當(dāng)如上有關(guān)圖4所示斷言預(yù)充電信號(hào)時(shí)向VCC上拉軌道。同樣,預(yù)充電晶體管320-0a和320-0b連于行范圍數(shù)據(jù)總線240-0a/b的軌道和VCC之間,當(dāng)如上有關(guān)圖4所示斷言預(yù)充電信號(hào)時(shí)向VCC上拉軌道。為L(zhǎng)UT RAM單元220的各行提供了相似的預(yù)充電晶體管320。當(dāng)然,所有預(yù)充電晶體管310和320在預(yù)充電信號(hào)為非時(shí)關(guān)閉。
0042
圖5中的其他元件為已知(如從Lewis等人的參考文獻(xiàn)中已知),因此可簡(jiǎn)要說明。引線250a/b提供配置數(shù)據(jù)。當(dāng)程序/讀回信號(hào)啟用晶體管252a/b時(shí),這些引線連于引線230a/b。用戶RAM數(shù)據(jù)可經(jīng)引線260和反相器262a、262b提供。通過啟用晶體管272a和272b,適當(dāng)編程CRAM 270允許所示LUT用于用戶RAM。當(dāng)(來自引線260的)數(shù)據(jù)將被寫入所示LUT時(shí),用戶RAM寫使能信號(hào)被施加到引線280以啟用晶體管282a、282b。行地址信號(hào)可選啟用各行的晶體管290a/b。列地址信號(hào)被施加到類似標(biāo)有列0和列7的引線。與Lewis等人相比,不同之處在于附加了控制邏輯,當(dāng)ALM被用于LUT RAM模式時(shí)禁止CRAM的讀回。這是因?yàn)锳LM處于LUT RAM模式時(shí)CRAM的內(nèi)容可改變,且CRAM中周期檢驗(yàn)軟錯(cuò)誤的任何錯(cuò)誤檢驗(yàn)電路將不正確地將改變探測(cè)為錯(cuò)誤。圖5中示為或非(NOR)門371的讀回禁止電路阻止從LUT RAM讀回,并使得讀回始終為邏輯0或1,取決于數(shù)據(jù)線的檢測(cè)。
0043
本發(fā)明的另一可能方面由圖2所示連接點(diǎn)節(jié)點(diǎn)190和圖6所示附加元件192和140n(與圖3相比)說明。如果次信號(hào)的路由資源如圖3所示88不足以提供解碼器142需要的所有寫地址信號(hào),可使用本發(fā)明的這一方面。在這種情況下,該寫地址解碼器142服務(wù)的LAB中ALM 10’(圖2)不需要的輸入信號(hào)可被借來提供寫地址解碼器的附加輸入信號(hào)。如果,例如,LAB包括八個(gè)ALM 10’,但是僅需要這些ALM中六個(gè)的電路提供上述讀地址(RA)信號(hào),那么沒有提供讀地址信號(hào)的兩個(gè)ALM中的電路可被用來為該LAB的寫地址解碼器142提供附加寫地址信號(hào)?;氐綀D2,如果所示ALM 10’不是經(jīng)其E1輸入、多路復(fù)用器70b和觸發(fā)器80b來施加同步讀地址信號(hào)的ALM之一,那么該E1輸入將可用于為相關(guān)寫地址解碼器142提供附加寫地址信號(hào)。這是經(jīng)過圖2中連于圖6中輸入引線192的連接點(diǎn)190完成的。圖6中添加了附加觸發(fā)器140n以寄存施加到寫地址解碼器142的該信號(hào)。190至192的連接可被緩沖以避免不適當(dāng)載入相關(guān)E1輸入。
0044
在上述ALM 10/10’中,可能注意到讀地址引腳在ALM的上下部分順序上不同。具體來說,輸入引腳DC0和DC1被施加作為圖1和圖2中ALM的上半部的第三和第四地址引腳、但又被施加作為該ALM中下半部的第四和第三地址引腳。因此,這些ALM上半部的讀地址是A、B、DC0、DC1等,而下半部將使用A、B、DC1、DC0等。這表示將數(shù)據(jù)寫入ALM需要考慮排序上的不同。一種方法是扭曲某些圖7所示列寫地址線路182。圖7示出了CRAM位220的位置,可使用引腳A、B、DC0、DC1等尋址。可以看出上四行與下四行的行中位的排序不同,但讀和寫地址CRAM都有不變的排序。為了實(shí)現(xiàn)此目的,列寫地址線路182-1和182-2(如圖4中列地址解碼器180b的輸出中)在從CRAM的上半部至下半部過程中被交換或扭曲。同樣,列寫地址線路182-5和182-6在從CRAM的上半部至下半部過程中被交換或扭曲。
0045
另一選擇是提供不同的多路復(fù)用器以允許讀上半部和下半部之間位排序不變。這避免了扭曲寫列線路的需求?,F(xiàn)有多路復(fù)用器30b和30c已準(zhǔn)備了ALM第四級(jí)的可編程選擇,執(zhí)行讀地址3(RA3)。在前述電路中,多路復(fù)用器30b和30c包括各種邏輯和反饋信號(hào)的計(jì)算機(jī)輸入端,但上半部和下半部分別包括DC1和DC0。但是DC0和DC1分別直接驅(qū)動(dòng)上下半部的第三級(jí)。因而,要求的是為上下半部上的讀地址2(RA2)選擇同一信號(hào)并為上下半部上的RA3選擇DC0和DC1中另一個(gè)的能力。DC0和DC1中哪個(gè)選給RA2,那個(gè)選給RA3并不重要,只要可以經(jīng)過ALM的兩個(gè)半部期間一直選擇一個(gè)給RA2,另一個(gè)給RA3。這可通過為供給第四LUT輸入級(jí)的多路復(fù)用器并為第三LUT輸入級(jí)的新多路復(fù)用器附加計(jì)算機(jī)輸入端實(shí)現(xiàn),使得DC0和DC1可以不變順序使用。在圖8示出的方案中,選擇DC1為RA2使用,21多路復(fù)用器430(RA選擇多路復(fù)用器)被附加至ALM的一半以允許DC0作為RA2用于ALM的兩個(gè)半部。附加計(jì)算機(jī)輸入端或扇入(fanin)被附加至供給LUT第四級(jí)的多路復(fù)用器30c以允許DC1作為RA3用于ALM的兩個(gè)半部。圖8示出了以64*1模式配置的ALM寫數(shù)據(jù)路徑,配有示出兩個(gè)模式中信號(hào)選擇的標(biāo)簽。
0046
本發(fā)明該部分的相關(guān)方面是啟用不變的ALM和LUT中各級(jí)間輸入信號(hào)排序的多路復(fù)用器。注意在圖8中,RA4供給第六LUT多路復(fù)用器級(jí),RA5供給第五級(jí),與名稱相反。這是為了便于命名信號(hào),因?yàn)镽A5信號(hào)也用于WD1(寫數(shù)據(jù)1),這也便于讓引腳與名稱有固定聯(lián)系(否則在32*2模式中引腳RA4將從F0移至E0)。
0047
本發(fā)明的另一可選功能涉及寫地址的次信號(hào)的使用??赡苄枰苊馐褂脤懙刂泛褪鼓苄盘?hào)的所有次信號(hào),因?yàn)檫@阻止其用于LAB用作分布式存儲(chǔ)器時(shí)可能需要的其他目的。例如,時(shí)鐘使能是一般所需的。為了提供這個(gè),可以采用不同方法,將各ALM的一引腳專用于各ALM的寫地址或?qū)懯鼓堋T谟嘘P(guān)ALM輸入F1的圖8中也示出了這個(gè)變動(dòng)。
0048
圖8也說明了從F1輸入至寫解碼器路徑中的觸發(fā)器(寄存器)480。觸發(fā)器是可選的,不是本發(fā)明必須的。使用圖8所示配置(具有和不具有寄存器480)各ALM提供了不同的寫地址和控制信號(hào)經(jīng)過F1輸入至寫解碼器(如圖3中的142)的相應(yīng)引腳。圖9說明了這一點(diǎn)。一組線484將來自各ALM的寫地址信號(hào)482連至寫解碼器142。另外,一些控制信號(hào),如時(shí)鐘信號(hào),可從控制信號(hào)選擇邏輯電路提供至寫解碼器。
0049
應(yīng)注意本技術(shù)要求在每個(gè)使用該手段連接的ALM上為各寫地址和控制信號(hào)(如寫使能)提供專用輸入引腳。因而,這可減少和消除在ALM內(nèi)部使用觸發(fā)器80作為讀地址和其他目的附加觸發(fā)器的可能性。
0050
另外,需要另一功能來支持此方面。本發(fā)明的前述方案(如,與圖2有關(guān)的)要求當(dāng)ALM以32*2模式配置時(shí)信號(hào)RA4被復(fù)制。這是因?yàn)镕0和F1分別直接連于ALM的上下半部中的多路復(fù)用最終級(jí)60。在32*2模式中,必須使用這兩個(gè)最終多路復(fù)用器60-1和60-2,結(jié)果是需要兩個(gè)引腳輸入單個(gè)信號(hào)。也如圖8所示的備用方案通過引入標(biāo)為附加F1級(jí)多路復(fù)用器460的最終級(jí)F1多路復(fù)用器的副本,消除了兩個(gè)輸入傳輸單個(gè)信號(hào)的需要。這使32*2模式中要求的引腳數(shù)量減一,并確保在任何模式中讀地址不需要F1引腳,使其可用于以上段落所述寫地址。
0051
注意ALM的上下半部是對(duì)稱的,且附加硬件既可位于上半部,也可位于下半部,只要保留相對(duì)位置。因此,例如,圖2示出的附加寫數(shù)據(jù)多路復(fù)用器130在下半部,而圖8將其放在上半部。
0052
可以理解前述僅是本發(fā)明原則的示例,本領(lǐng)域技術(shù)人員可作出各種修改而不背離本發(fā)明的范圍與精神。例如,本發(fā)明的各方面可按需要被單獨(dú)使用或以任何組合方式使用??赡艿男薷牡牧硪皇纠荓UT中RAM單元的數(shù)量可大于或小于本文所示且所述的說明性數(shù)量(一個(gè)或多個(gè))。同樣,LAB中ALM的數(shù)量可大于或小于本文所示的說明性數(shù)量(一個(gè)或多個(gè))。
權(quán)利要求
1.查找表電路,包括多個(gè)存儲(chǔ)器單元;用于為所述存儲(chǔ)器單元提供配置數(shù)據(jù)的電路;以及用于為所述存儲(chǔ)器單元替代提供用戶數(shù)據(jù)的電路,其中所述用于替代提供的電路為可控制用來選擇大量的用戶數(shù)據(jù)位,所述用戶數(shù)據(jù)位被并行地施加到所述存儲(chǔ)器單元,以致由所述存儲(chǔ)器單元執(zhí)行的用戶數(shù)據(jù)存儲(chǔ)器深度可變化。
2.根據(jù)權(quán)利要求
1所述的查找表電路,進(jìn)一步包括用于控制由所述用于替代提供的電路所作選擇進(jìn)行的配置存儲(chǔ)器電路。
3.根據(jù)權(quán)利要求
1所述的查找表電路,其中所述用于替代提供的電路包括寫使能電路,其用于選擇大量所述存儲(chǔ)器單元,以施加與所述存儲(chǔ)器單元所實(shí)現(xiàn)的用戶數(shù)據(jù)存儲(chǔ)器深度一致的寫使能信號(hào)。
4.根據(jù)權(quán)利要求
1所述的電路,其中所述存儲(chǔ)器單元被組織成行和列,其中至少兩列的不同部分能夠由公共讀地址信號(hào)來尋址讀取,且其中一個(gè)列寫地址信號(hào)被施加到這兩列的所述不同部分。
5.根據(jù)權(quán)利要求
4所述的電路,其中所述兩列中沒有由所述公共讀地址信號(hào)來尋址讀取的第二部分能夠由第二公共讀地址信號(hào)來尋址讀取,且其中第二列寫地址信號(hào)被施加到這些第二部分。
6.根據(jù)權(quán)利要求
1所述的電路,其中所述存儲(chǔ)器單元的第一和第二子集分別使用第一和第二獨(dú)立讀地址導(dǎo)線來尋址讀取,且其中所述電路進(jìn)一步包括路由電路,其用于選擇性地允許相同或兩個(gè)不同信號(hào)被施加到所述導(dǎo)線。
7.根據(jù)權(quán)利要求
6所述的電路,其中所述第一和第二子集還分別使用第三和第四獨(dú)立讀地址導(dǎo)線來尋址讀取,且其中所述電路進(jìn)一步包括第二路由電路,其用于選擇性地允許第二相同或兩個(gè)不同信號(hào)施加到所述第三和第四導(dǎo)線。
8.根據(jù)權(quán)利要求
7所述的電路,其中所述相同信號(hào)與所述第二相同信號(hào)具有用于由所述路由電路與所述第二路由電路使用的所述兩個(gè)不同信號(hào)的源。
9.FPGA電路,包括多個(gè)查找表電路;用于選擇由所有所述查找表電路共享的多個(gè)控制信號(hào)的電路;以及用于替代使用由所述用于選擇的電路選擇的信號(hào)作為地址信號(hào),這些地址信號(hào)用于控制所述查找表電路中至少一個(gè)查找表電路中的存儲(chǔ)器單元的尋址,以將用戶數(shù)據(jù)寫入這些存儲(chǔ)器單元的電路。
10.根據(jù)權(quán)利要求
9所述的電路,其中用于替代使用的電路包括用于寄存所述地址信號(hào)至少之一的至少一個(gè)寄存器。
11.根據(jù)權(quán)利要求
9所述的FPGA電路,其中所述控制信號(hào)所包括的信號(hào)是從由以下信號(hào)構(gòu)成的組中選擇的用于對(duì)與所述查找表電路有關(guān)的寄存器提供時(shí)鐘的時(shí)鐘信號(hào)、用于限制所述時(shí)鐘的時(shí)鐘使能信號(hào)、用于載入所述寄存器的加載信號(hào)、用于清除所述寄存器的清除信號(hào)、以及用于預(yù)置所述寄存器的預(yù)置信號(hào)。
12.根據(jù)權(quán)利要求
9所述的FPGA電路,其中所述用于替代使用的電路包括解碼器電路,其用于將所述地址信號(hào)從二進(jìn)制地址表達(dá)解碼為行列地址表達(dá)。
13.根據(jù)權(quán)利要求
9所述的FPGA電路,其中所述用于替代使用的電路包括定時(shí)電路,其用于產(chǎn)生寫使能信號(hào),以控制將所述用戶數(shù)據(jù)寫入所述存儲(chǔ)器單元的定時(shí)。
14.查找表電路,包括多個(gè)存儲(chǔ)器單元;用于選擇所述存儲(chǔ)器單元之一的內(nèi)容作為輸出信號(hào)的多路復(fù)用器電路;寄存器電路;路由電路,其用于將輸入信號(hào)或所述輸出信號(hào)選擇性地路由至所述用于寄存的寄存器電路,以產(chǎn)生一個(gè)被寄存的信號(hào);以及進(jìn)一步的路由電路,其用于將所述寄存信號(hào)施加到所述存儲(chǔ)器單元的寫輸入端。
15.根據(jù)權(quán)利要求
14所述的查找表電路,進(jìn)一步包括用于選擇性地將配置數(shù)據(jù)供應(yīng)到所述存儲(chǔ)器單元的電路。
16.查找表電路,包括多個(gè)存儲(chǔ)器單元;讀電路,其能夠提供1)從任一所述存儲(chǔ)器單元選擇的輸出信號(hào),或2)兩個(gè)輸出信號(hào),這兩個(gè)輸出信號(hào)中的每一個(gè)分別從不同的第一和第二次多個(gè)存儲(chǔ)器單元之一選擇的;第一和第二寄存器;以及路由電路,其用于1)將所述第一和第二寄存器各自的輸出信號(hào)分別路由至所述第一和第二次多個(gè)中所述存儲(chǔ)器單元的寫驅(qū)動(dòng)器,或2)將所述第一和第二寄存器之一的輸出信號(hào)路由至所有所述存儲(chǔ)器單元的寫驅(qū)動(dòng)器。
17.根據(jù)權(quán)利要求
16所述的查找表電路,其中所述第一和第二次多個(gè)是彼此互斥的。
18.根據(jù)權(quán)利要求
17所述的查找表電路,其中所述第一和第二次多個(gè)包括相同數(shù)量的存儲(chǔ)器單元。
19.根據(jù)權(quán)利要求
17所述的查找表電路,其中所述路由電路包括多路復(fù)用器電路,其用于選擇性地將1)所述第一寄存器的輸出信號(hào),或2)所述第二寄存器的輸出信號(hào),施加到所述第一次多個(gè)中所述存儲(chǔ)器單元的寫驅(qū)動(dòng)器。
20.根據(jù)權(quán)利要求
19的所述查找表電路,其中所述多路復(fù)用器電路是可編程控制的。
21.FPGA電路,包括多個(gè)查找表電路,每個(gè)均包括多個(gè)存儲(chǔ)器單元和多個(gè)輸入引線,查找表讀地址信號(hào)可被施加到所述多個(gè)輸入引線;地址解碼器電路,其用于接收多個(gè)用于將數(shù)據(jù)寫入所述存儲(chǔ)器單元的寫地址信號(hào);以及路由電路,其用于允許所述輸入引線之一被替換用于提供所述寫地址信號(hào)之一。
22.根據(jù)權(quán)利要求
21所述的FPGA電路,進(jìn)一步包括寄存器電路,其用于存儲(chǔ)來自所述輸入引線之一、可用作所述寫地址信號(hào)之一的信號(hào)。
23.根據(jù)權(quán)利要求
21所述的電路,進(jìn)一步包括用于替代性地控制讀操作的電路,當(dāng)所述輸入引線之一被用來提供所述寫地址信號(hào)之一時(shí),所述讀操作通常被控制成從所述輸入引線之一至所述輸入引線中的另一個(gè)。
24.FPGA電路,包括多個(gè)查找表電路,每個(gè)均包括多個(gè)存儲(chǔ)器單元;以及寫解碼器電路,其用于解碼多個(gè)地址信號(hào),以產(chǎn)生用于控制數(shù)據(jù)將被寫入哪個(gè)所述存儲(chǔ)器單元的行列信號(hào),所述寫解碼器包括用于選擇性地允許細(xì)分所述列的可編程控制的模式選擇電路。
25.根據(jù)權(quán)利要求
24所述的FPGA電路,其中所述模式選擇電路包括路由電路,其用于選擇性地將寫使能信號(hào)路由至1)所述存儲(chǔ)器單元的整個(gè)列,或2)基于所述地址信號(hào)之一的列的獨(dú)立部分。
26.根據(jù)權(quán)利要求
25所述的FPGA電路,其中所述模式選擇電路進(jìn)一步包括可編程存儲(chǔ)器單元;以及當(dāng)所述可編程存儲(chǔ)單元被編程引起所述路由電路將寫使能信號(hào)路由至所述存儲(chǔ)器單元的整個(gè)列時(shí),響應(yīng)所述可編程存儲(chǔ)器單元來忽略所述地址信號(hào)之一的電路。
27.一種運(yùn)行FPGA電路的方法,所述FPGA電路包括多個(gè)由邏輯模塊構(gòu)成的塊,每個(gè)所述塊包括多個(gè)查找表電路和至少一個(gè)寄存器,所述寄存器與每個(gè)所述查找表電路相關(guān)且能寄存來自相關(guān)查找表電路的輸出信號(hào)或查找表讀地址輸入信號(hào)至相關(guān)查找表電路,每個(gè)所述塊進(jìn)一步包括用于選擇性地路由所述塊中每一所述邏輯模塊的輸出信號(hào)至所述塊中至少一個(gè)所述邏輯模塊的讀地址輸入端的本地互聯(lián)電路資源,所述查找表電路選擇性地用作分布式隨機(jī)存取存儲(chǔ)器,所述方法包括使用所選塊中至少一個(gè)所述寄存器將查找表讀地址輸入信號(hào)寄存至相關(guān)查找表電路;以及使用所選塊的所述本地互聯(lián)電路資源將至少一個(gè)所述寄存器的輸出信號(hào)路由至所選塊中至少一個(gè)所述查找表電路的讀地址輸入端。
28.根據(jù)權(quán)利要求
27所述的方法,其中所述使用本地互聯(lián)電路資源包括使用所選塊的本地互聯(lián)電路資源來路由至少一個(gè)所述寄存器的輸出信號(hào)至所選塊中多個(gè)查找表電路的讀地址輸入端。
29.根據(jù)權(quán)利要求
27所述的方法,進(jìn)一步包括使用所選塊中的多個(gè)所述寄存器來分別寄存多個(gè)查找表讀地址輸入信號(hào)至所述各自相關(guān)的查找表電路;以及使用所選塊的本地互聯(lián)電路資源來路由所述多個(gè)寄存器的輸出信號(hào)至所選塊中至少一個(gè)所述查找表電路的多個(gè)讀地址輸入端。
30.根據(jù)權(quán)利要求
29所述的方法,其中所述使用本地互聯(lián)電路資源包括使用所選塊的本地互聯(lián)電路資源來路由所述多個(gè)寄存器的輸出信號(hào)至所選塊中多個(gè)查找表電路中每個(gè)查找表電路的多個(gè)讀地址輸入端。
31.FPGA電路,包括查找表電路,其包括多個(gè)存儲(chǔ)器單元;第一電路,其用于選擇性地允許配置數(shù)據(jù)在配置所述FPGA期間被寫入所述存儲(chǔ)器單元,且之后在驗(yàn)證讀回所述配置數(shù)據(jù)期間從所述存儲(chǔ)器單元中讀回所述配置數(shù)據(jù);第二電路,其用于選擇性地允許用戶數(shù)據(jù)在配置所述FPGA后被寫入所述存儲(chǔ)器單元;以及用于至少禁止所述第一電路驗(yàn)證讀回的電路。
專利摘要
有利于在現(xiàn)場(chǎng)可編程門陣列(FPGA)的查找表(LUT)中將存儲(chǔ)器單元用作用戶可存取的分布式RAM的電路。例如,與LUT相關(guān)而且在用戶RAM模式的讀數(shù)據(jù)路徑中不需要的寄存器可被用于寄存用戶RAM模式中用于寫的數(shù)據(jù)。另一示例是,與LUT相關(guān)的以其他方式不需要的寄存器可被用于為用戶RAM模式提供同步讀地址信號(hào)。示出的若干其他功能也同樣有利于在FPGA中要求最小(如果有的話)附加電路的用戶RAM模式。
文檔編號(hào)G11C8/00GK1992071SQ200610164526
公開日2007年7月4日 申請(qǐng)日期2006年12月5日
發(fā)明者D·劉易斯, P·萊文蒂斯, V·貝茨, T·Y-T·王, A·李, P·潘 申請(qǐng)人:阿爾特拉公司導(dǎo)出引文BiBTeX, EndNote, RefMan