專利名稱:具有分布ram并提高了單元利用率的現(xiàn)場可編程門陣列的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種稱為現(xiàn)場可編程門陣列(FPGA)類型的可編程多功能數(shù)字邏輯陣列集成電路,尤其涉及對(duì)這種FPGA的可配置邏輯單元的結(jié)構(gòu)的改進(jìn),以及直接單元至單元連接和這種FPGA的互連總線網(wǎng)絡(luò),這種設(shè)計(jì)改善了執(zhí)行邏輯功能的單元利用率和功能性。本發(fā)明還涉及其內(nèi)包括用戶可訪問的存儲(chǔ)器單元的FPGA,以綜合一些存儲(chǔ)器的存儲(chǔ)容量,供FPGA裝置的邏輯單元使用。
背景技術(shù):
數(shù)字邏輯可以利用幾種可得到的集成電路構(gòu)造來實(shí)現(xiàn),包括硬接線專用集成電路(ASIC)、掩膜或熔斷編程定制門陣列(CGA)、可編程陣列邏輯(PAL)、可編程邏輯陣列(PLA)和通常使用非易失性EPROM或EEPROM存儲(chǔ)器單元技術(shù)的,由用戶來配置的其它可編程邏輯器件(PLD)以及一般使用在芯片每次加電期間設(shè)置的SRAM配置位的現(xiàn)場可編程門陣列(FPGA)。在這些各種構(gòu)造中,具有用戶可編程、可擦除和可再編程能力的構(gòu)造一般優(yōu)于固定或僅可編程一次功能的構(gòu)造。FPGA能實(shí)現(xiàn)大規(guī)模高復(fù)雜性邏輯功能,它不需要轉(zhuǎn)換成兩電平積之和形式,以對(duì)這些器件進(jìn)行編程。SRAM受控開關(guān)不僅可以裝載不同的功能,以極容易地再配置器件,而且被優(yōu)化以高速地工作。
現(xiàn)在可以得到很多種FPGA,它們在部件邏輯單元的復(fù)雜性以及提供的互連資源上不同。在例如美國專利4,706,216;4,758,985;4,758,985;5,019,736;5,144,166;5,185,726;5,231,588;5,258,688;5,296,759;5,343,406;5,349,250;5,352,940;5,408,434以及其它許多專利中揭示了FPGA。
通常的FPGA構(gòu)造由兩維陣列或者可配置的矩陣組成,用可編程的互連結(jié)構(gòu)在相鄰邏輯單元與總線網(wǎng)絡(luò)之間提供兩直接連接以及在矩陣的單元行和列之間分配連接的開關(guān)可以有選擇地把它連接在一起。在矩陣周邊附近,一組輸入/輸出端連接到總線網(wǎng)絡(luò)、周邊邏輯單元或者兩者之上,使信號(hào)傳入和傳出芯片。對(duì)每個(gè)單獨(dú)的邏輯單元進(jìn)行編程,以實(shí)現(xiàn)較簡單的邏輯功能。每個(gè)邏輯單元通常包括輸入和輸出選擇邏輯(MUX)、組合邏輯、以便同步操作的一個(gè)或多個(gè)存儲(chǔ)單元(觸發(fā)寄存器)以及可能的進(jìn)行后繼邏輯的一個(gè)或多個(gè)內(nèi)部反饋線。一些FPGA單元的組合邏輯是固定功能邏輯門的形式,可以具有可選擇輸入的配置。然而,較佳的FPGA單元使用查找表存儲(chǔ)器(配置的SRAM)以提供多種邏輯功能。查找表的存儲(chǔ)器單元存儲(chǔ)一組數(shù)據(jù)位,它們的值對(duì)應(yīng)于特定功能的真值表。存儲(chǔ)器的地址線上表現(xiàn)出的一組輸入信號(hào)使存儲(chǔ)器提供一位輸出,該輸出是存儲(chǔ)在這些輸入信號(hào)指示的址上的值。因此,查找表存儲(chǔ)器實(shí)現(xiàn)了存儲(chǔ)器內(nèi)存儲(chǔ)的真值確定的功能。這種互連結(jié)構(gòu)提供了每個(gè)單元與在矩陣的同一行或同一列上最相鄰單元之間的直接連接。美國專利No.5,296,759另外提供了一種單向?qū)沁B接到相鄰的單元上。除了單元到單元的直接連接之外,還有一組“邏輯”總線線路在單元與總線網(wǎng)絡(luò)之間進(jìn)行連接。在規(guī)則地間隔的可配置開關(guān)(稱為中繼單元)把短本地總線段連接到長直快總線上。中繼器通常在行和列上對(duì)齊,從而把整個(gè)陣列分成單元塊。一種通常的布置是把64邏輯單元組組織成8×8的塊,每個(gè)塊具有一組相關(guān)的本地總線部分。與本地總線部分不同,直快總線穿過中繼器跨越一個(gè)以上的單元塊,使信號(hào)在不同的單元塊之間傳送。直快總線線路僅通過本地總線部分訪問邏輯單元,以減少直快線路上信號(hào)的傳播延時(shí)。
FPGA設(shè)計(jì)者繼續(xù)在嘗試進(jìn)行改進(jìn),以提供器件的速率和功能靈活性。例如,一種設(shè)計(jì)目的是提高各邏輯單元的功能能力,同時(shí)保持作為FPGA構(gòu)造主要特性的單元小型和簡單。需要改進(jìn)的另一個(gè)方面是電路的所有單元的利用率。尤其是,由于總線網(wǎng)絡(luò)和單元總線接口中權(quán)衡的數(shù)量和低效率,F(xiàn)PGA單元常常僅用作“接線單元”,以在其它單元之間傳送信號(hào),提供右轉(zhuǎn)角、交錯(cuò)連接和信號(hào)扇出。這種信號(hào)路由低效率地使用了邏輯單元。理想的路由應(yīng)僅由直接的連接和總線網(wǎng)絡(luò)提供,而把邏輯單元僅用于邏輯。而且,因?yàn)楦鲉卧獙?shí)現(xiàn)的功率較簡單,一些設(shè)計(jì)提供了一些專用于進(jìn)行特定功能的單元,例如編碼和快速運(yùn)送操作。不幸的是,如果不需要該特定的功能,則該單元就被浪費(fèi)了。單元設(shè)計(jì)本身有助于全面利用陣列中的單元。較佳的是,單元具有鏡象并相對(duì)于其多個(gè)輸入和輸出可以得到的功能旋轉(zhuǎn)對(duì)稱,以減少對(duì)信號(hào)旋轉(zhuǎn)的需要,簡化單元陣列的功能布線。最后,在大多數(shù)的FPGA中,需要有用戶可訪問的隨機(jī)存取存儲(chǔ)器(RAM)。各制造商使用不同的方案來提供這種需要的片上存儲(chǔ)器。例如,Altera公司在陣列的外邊緣上設(shè)置RAM,而Actel公司設(shè)置邏輯單元和RAM的交叉帶。Xilinx公司由用戶在器件工作期間更新邏輯單元內(nèi)的查找表存儲(chǔ)器,以改變這些單元提供的功能。
本發(fā)明的目的在于提供一種FPGA,它提高了邏輯單元的功能性,改善了單元的利用率,通過總線網(wǎng)絡(luò)和單元至單元的直接連接使信號(hào)路由更有效,在器件中綜合了用戶可訪問的存儲(chǔ)器能力。
發(fā)明內(nèi)容
該目的是通過這樣一種FPGA矩陣來實(shí)現(xiàn)的,即在這種FPGA矩陣中,在中繼開關(guān)單元的行和列交錯(cuò)點(diǎn)上邏輯單元每個(gè)塊的角上形成的空間內(nèi)提供用戶可訪問的存儲(chǔ)結(jié)構(gòu)(或?qū)S眠壿?,即可看作“專用功能元件”的存儲(chǔ)結(jié)構(gòu)和專用邏輯。一種存儲(chǔ)結(jié)構(gòu)可以是隨機(jī)訪問存儲(chǔ)器,即,RAM結(jié)構(gòu)。與RAM的寫允許和輸出允許控制端一樣,RAM的地址和數(shù)據(jù)線連接到總線上。RAM可以是單端或雙端SRAM。相鄰RAM列的對(duì)可以由同一組總線尋址。存儲(chǔ)結(jié)構(gòu)還可以是非易失性存儲(chǔ)結(jié)構(gòu)。
該目的還可以通過這樣一種FPGA矩陣來實(shí)現(xiàn),在這種FPGA中,連接到與邏輯單元相關(guān)的本地總線部分的中繼開關(guān)單元按每N個(gè)邏輯單元均勻地間隔,因而把單元分成N×N單元塊,每個(gè)塊中的單元僅連接到關(guān)聯(lián)的本地總線部分組上,而不連接到與另一單元塊關(guān)聯(lián)的本地總線部分上。中繼開關(guān)單元把每個(gè)本地總線部分連接到塊相對(duì)端部的直快總線上,中繼器以交錯(cuò)結(jié)構(gòu)布置,所以每根直快總線與中繼單元的常常相遇少于與本地總線,例如每2.N個(gè)邏輯單元,之后相遇。
該目的還可以通過這樣一種FPGA來實(shí)現(xiàn),在這種FOGA中,邏輯單元矩陣有至同一單元行和單元列內(nèi)的四個(gè)最鄰近的邏輯單元的第一組直接連接,還具有至其它對(duì)角相鄰的邏輯單元的第二組直接連接。
該目的還可以通過這樣一種FPGA來實(shí)現(xiàn),在這種FPGA中,每個(gè)邏輯單元包括以對(duì)形式的組合邏輯,它們可以起到查找表、用戶可訪問存儲(chǔ)元件或這兩者的作用。這些結(jié)構(gòu)都是可由同一組輸入來尋址的,其輸出可選擇地用于同一組輸出,其中一個(gè)輸出具有選擇接入到寄存器中,另一對(duì)單元的輸入可以有選擇地輸出一個(gè)或者其它存儲(chǔ)元件輸出,以有效地把兩個(gè)存儲(chǔ)元件組合成一個(gè)更大的全面的可尋址存儲(chǔ)單元。該兩個(gè)存儲(chǔ)元件地址輸入可以接收從四個(gè)直接連接輸入或本地總線輸入中任何輸入選出的輸入。
而且,單元的每列可以有許多全局時(shí)鐘信號(hào),這些全局信號(hào)可以根據(jù)單元列中的多個(gè)單元扇區(qū),具有極性和允許選擇。全局設(shè)置或復(fù)位信號(hào)也可以根據(jù)不同扇區(qū)具有極性并允許選擇。
I/O端口可以在單元矩陣的周邊連接到多個(gè)邏輯單元,還可以連接到多行或多列總線上。每個(gè)周邊邏輯單元和每行或每列總線可以連接到幾個(gè)I/O端口的任何端口上??梢杂蓄~外的I/O端口,僅連接到總線上。
附圖概述
圖1是本發(fā)明FPGA電路的俯視平面圖。
圖2是圖1的FPGA電路的四個(gè)邏輯單元的俯視平面圖,示出了單元之間的直接連接。
圖3是本發(fā)明FPGA電路的四個(gè)邏輯單元的俯視平面圖,示出了直接單元至單元連接的另一種實(shí)施例。
圖4是圖1的FPGA電路的4×4邏輯單元塊的俯視平面圖,連接了總線網(wǎng)絡(luò)和RAM。
圖5是圖1的FPGA電路的一個(gè)邏輯單元塊的邏輯電路圖。
圖6是圖5的邏輯單元的單元-總線接口的示意性電路圖。
圖7和8是本發(fā)明FPGA電路的兩種邏輯單元實(shí)施例的邏輯電路圖。
圖9和圖10是圖1的FPGA電路的部分平面圖,示出了本發(fā)明時(shí)鐘和復(fù)位信號(hào)分配。
圖11是圖4的四個(gè)單元塊的俯視圖,示出了本發(fā)明的FPGA電路中繼開關(guān)單元的交錯(cuò)結(jié)構(gòu)。
圖12是圖1和圖4的FPGA的3×3組單元塊的俯視平面圖,示出了專用功能元件(DEF)的位置,例如在中繼行和列之間每個(gè)塊角上的RAM。
圖13是本發(fā)明FPGA電路的RAM和RAM-總線接口的邏輯電路圖。
圖14是本發(fā)明FPGA電路的部分平面圖,含有八個(gè)邏輯單元塊和與它們相關(guān)的RAM塊,示出了如圖4所示的另一種RAM到總線網(wǎng)絡(luò)的連接方案。
圖15是圖14的虛線150中的RAM塊的放大圖。
圖16是圖1的FPGA電路周邊上的一組邏輯單元的部分示意圖,示出了單元到電路的一組I/O端口的連接。
圖17是根據(jù)本發(fā)明一個(gè)實(shí)施例的FPGA的角上邏輯單元和單元至端口接口的邏輯電路圖。
圖18是圖1的FPGA電路周邊上的一組邏輯單元的部分示意圖,示出了這種單元至圖16所示的電路的I/O端的另一種連接。
圖19是圖18所示的連接的單元-端接口的邏輯電路圖。
圖20和21是根據(jù)第三個(gè)連接實(shí)施例的兩種類型的I/O端的單元-端口接口的邏輯電路圖。
本發(fā)明的實(shí)施方式參照圖1,本發(fā)明的現(xiàn)場可編程門陣列(FPGA)集成電路包括一個(gè)矩陣或有多行和多列的可編程邏輯單元11的兩維陣列??梢詫?duì)各邏輯單元11中的每個(gè)單元實(shí)行配置或編程,以實(shí)現(xiàn)具體的邏輯功能。這些單元連接在一起,如圖2或3所示,雙向連接相鄰單元,并且,如圖4所示,通過總線線路網(wǎng)絡(luò)連接開關(guān),使所有FPGA器件或芯片實(shí)現(xiàn)更復(fù)雜的整體邏輯功能,F(xiàn)PGA器件或芯片是由每個(gè)單獨(dú)的單元提供的很多簡單的功能組成的。因此,在FPGA器件中,該功能不需要計(jì)算成兩級(jí)積之和,因?yàn)檫@種互連結(jié)構(gòu)使它可以把任一邏輯單元的輸出饋送到任一其它邏輯單元的輸入端。從而形成邏輯單元鏈,可以產(chǎn)生具有多級(jí)邏輯的功能。
圖11總線網(wǎng)絡(luò)的邏輯和直快總線線路以及它們的連接中繼開關(guān)的圖形把邏輯單元的基本陣列分成更小的直線單元塊。圖1中看到的虛線集表示了這種劃分布置,在這種布置中,把16個(gè)邏輯單元組組織成4×4正方形單元塊。每個(gè)塊15具有其自已的相關(guān)本地總線部分集,專用于該特定邏輯單元組,如下面參照圖4和圖11所看到的,而直快總線線路延伸過1個(gè)以上的塊,以在不同邏輯塊之間傳送信號(hào)。雖然圖1所示的電路具有32行和32列單元(總計(jì)1024個(gè)邏輯單元),組織成4×4單元塊的8×8矩陣,但其它器件一般可以具有小到16行和列的單元或者多到64(或更多)行和列單元。在整個(gè)FPGA器件上,邏輯單元11的塊15的大小并不需要相同。例如,器件的不同的象限可以含有4×4、6×6或8×8的正方塊,或者4×6、4×8、6×6、6×12或8×16的矩形塊等。
FPGA電路還具有輸入/輸出(I/O)端17,沿單元矩陣的周邊連接到總線線路和邏輯單元上,使信號(hào)傳輸進(jìn)入芯片和從芯片傳輸出端。下面將參照圖16-21詳細(xì)描述輸入/輸出端的連接。
圖2示出了該電路的一個(gè)實(shí)施例的單元至單元直接連接。每個(gè)邏輯單元11具有每一組相同的A輸出端和第二組相同的B輸出。任一單元的A輸出端連接到同一行或列上的所有四個(gè)相接的最鄰近的邏輯單元上作為輸出單元。同樣,該單元的B輸出端也連接到所有四個(gè)最鄰近的單元上。每個(gè)邏輯單元還具有一組A輸入端(標(biāo)為An,Ae,As,Aw),接收四個(gè)最鄰近的單元的各A輸出端的信號(hào)輸出。每個(gè)邏輯單元具有一組B輸入端(這里標(biāo)為Bn,Be,Bs,Bw),接收四個(gè)最鄰近單元的各B輸出端的信號(hào)輸出。因此,在同一行或列上的任兩個(gè)最鄰近單元之間,有四條連接信號(hào)路徑,在每個(gè)方向上有兩條路徑。
圖3示出了根據(jù)本發(fā)明的FPGA電路的另一實(shí)施例的單元至單元直接連接。在該實(shí)施例中,每個(gè)單元12具有第一組相同的A輸出端和第二組相同的B輸出端。任一單元的A輸出端連接到同一行或列上相接的所有四個(gè)最鄰近的邏輯單元,作為輸出單元,但該單元的B輸出端連接到四個(gè)對(duì)角相鄰的單元上。每個(gè)邏輯單元還具有一組A輸入端(標(biāo)為An,Ae,As,Aw),接收同一行或列上的四個(gè)最鄰近的單元的各A輸出端的信號(hào)輸出,作為接收單元,以及一組B輸入端(這里標(biāo)為Bnw,Bne,Bse,Bsw),接收四個(gè)最鄰近單元的各B輸出端的信號(hào)輸出。因此,每個(gè)邏輯單元連接到所有八個(gè)相鄰單元上,并且在任兩個(gè)單元之間,有兩條連接信號(hào)路徑,每個(gè)方向一條。
圖4示出了FPGA電路的單元至總線的連接。在一個(gè)塊中的4×4組邏輯單元11具有總線線路,分布在單元的行與列之間。尤其,鄰接到邏輯單元的每列上可以有五組三條垂直總線線路19,鄰接到邏輯單元的每行上可以有五組三條水平總線線路21。每組三條總線線路包括一條本地總線線路23和兩條直快總線線路25。邏輯單元11僅直接連接到本地總線線路23上,對(duì)直快總線線路25的訪問是直接通過連接中繼單元27上的本地總線線中,連接中繼單元27位于每個(gè)單元塊的周邊。如下面參照圖11所示解釋的,中繼器27具有交錯(cuò)的總線連接,以使每個(gè)直快總線線路僅每8個(gè)單元與一個(gè)中繼器相交,而不是每四個(gè)單元。每個(gè)邏輯單元11具有10條雙向數(shù)據(jù)總線線路29,把邏輯單元連接到與特定邏輯單元位于其內(nèi)的單元的各行和列相鄰的5條水平本地總線線路和5條垂直本地總線線路上。這些10條雙向線路29(在圖6中標(biāo)為V0-V4和H0-H4),以下面將參照圖6更詳細(xì)描述的這樣一種方式連接到它們相應(yīng)的邏輯單元上,以提供數(shù)據(jù)信號(hào)路徑,通過該路徑,單元輸入端(圖5和圖6中的AL、BL、CL和DL)和單元輸出端(圖5和圖6中的L)可以在邏輯單元與總線網(wǎng)絡(luò)之間進(jìn)行通信。
參照圖5,本發(fā)明的FPGA內(nèi)的邏輯單元的一個(gè)實(shí)施例具有四組輸入端,包括那些標(biāo)為A的輸入端(從相鄰單元來的直接連接An,Ae,As,Aw和本地總線輸入AL)、第二組標(biāo)為B的輸入端(從相鄰單元來的直接連接Bn,Be,Bs,Bw以及本地總線輸入BL)、標(biāo)為CL的第三本地總線輸入端以及標(biāo)為DL的第四本地總線輸入端。邏輯單元還具有三組輸出端,包括連接到四個(gè)相鄰單元的各A輸入端和B輸入端的A輸出端和B輸出端,還包括本地總線輸出端L、A和B輸出端和直接A和B輸入端如上述參照圖2所述的一樣連接。如前面參照圖4所描述的一樣,單元的本地總線輸入端(AL、BL、CL、DL)和本地總線輸出端(L)通過連接信號(hào)路徑29連接到十個(gè)相鄰的水平和垂直本地總線線路23上(在圖6中將更詳細(xì)地描述)。尤其是,在圖6中,每條本地總線連接信號(hào)路徑(H0-H4和V0-V4)通過相應(yīng)的傳遞門31到達(dá)單元內(nèi)的五條中間信號(hào)線330-334中之一。每條中間信號(hào)線330-334可以由傳遞門耦連到兩條本地總線之一上,連接信號(hào)路徑,它們中之一來自相應(yīng)垂直總線(通過路徑V0-V4),另一來自水平總線線路(通過路徑H0-H4)。接著,這些五個(gè)中間信號(hào)線330-334中的每條線路連接到四個(gè)總線輸入選擇多路復(fù)用器35A-35D上。因此,每個(gè)多路復(fù)用器35A-35D具有五個(gè)輸入端,每個(gè)用于各中間信號(hào)線330-334。每個(gè)多路復(fù)用器35A-35D的輸出形成單元的四個(gè)本地總線輸入(AL、BL、CL、DL)。因此,由于傳遞門31的配置和多路復(fù)用器35A-35D的選擇作用,邏輯單元連接的十條相鄰本地總線中的任一條可以向四個(gè)本地總線輸入端中的任一輸入端提供輸入信號(hào)。邏輯單元的本地總線輸出端L還通過一組傳遞門37連接到五條中間信號(hào)線330-334上。因此,由于傳遞門37和31的配置,輸出端L可以連接成向十個(gè)相鄰本地總線線路中任一條線提供輸出信號(hào)。如果有要求,把兩個(gè)相應(yīng)的連接傳遞門31打開,也可以把輸出端L同時(shí)連接到水平總線線路和垂直總線線路上。雖然,通常一個(gè)傳遞門37選擇中間信號(hào)線中的一條線用于本地總線輸出L,另四條中間信號(hào)線33由多路復(fù)用器35A-35D選擇(并關(guān)閉相應(yīng)的輸出傳遞門37)以接收本地總線輸入信號(hào),但如果需要額外的反饋路徑,則用戶可以選擇對(duì)輸出傳遞門37和輸入選擇多路復(fù)用器35A-35D,把本地總線輸出L的反饋路徑提供給本地總線輸入AL、BL或DL之一。(如圖5所示,內(nèi)部單元結(jié)構(gòu)已經(jīng)允許用多路復(fù)用器39對(duì)CL本地總線輸入選擇反饋。)返回到圖5,每個(gè)邏輯單元的內(nèi)部邏輯可以包括兩個(gè)8比特的查找表(L.U.T.)45和47,它們由A、B和C輸入端來尋址。查找表通常由工作成只讀存儲(chǔ)器的靜態(tài)RAM存儲(chǔ)單元組成,即在FPGA器件初始配置期間裝載,在工作期間不進(jìn)行動(dòng)態(tài)再編程。A組輸入端(An,Ae,As,Aw,AL)由多路復(fù)用器41接收,并選擇它們中的一個(gè)輸入。把該A多路復(fù)用器所選的輸出連接到第一L.U.T.45的a0地址輸入和第二L.U.T.47的a1地址輸入。同樣由B輸入選擇多路復(fù)用器43選擇B組輸入(Bn,Be,Bs,Bw,BL),并把所選的輸出連接到第二L.U.T.47的a0地址輸入和第一L.U.T.45的a1地址輸入。第三多路復(fù)用器39在反饋線40上接收本地總線輸入CL和內(nèi)部反饋信號(hào),并把這些信號(hào)之一輸出到第一和第二L.U.T.45和47的a2地址輸入。本地單元使用兩個(gè)8比特相找表45和47,以提供多種組合邏輯。兩L.U.T.45和47的SRAM存儲(chǔ)單元存儲(chǔ)一組數(shù)據(jù)位,其值對(duì)應(yīng)于特定邏輯功能的真值表。當(dāng)一組輸入信號(hào)出現(xiàn)在在每個(gè)L.U.T的三個(gè)地址輸入(a0-a2)時(shí),兩個(gè)表讀取存儲(chǔ)在這些輸入信號(hào)指示的地址上的各位值。因此,每個(gè)L.U.T.45和47把該組輸入的特定功能的一位輸出信號(hào)表示在其各輸出端49和51上,其中,由存儲(chǔ)的真值確定存儲(chǔ)器實(shí)現(xiàn)的功能。
查找表45和47的輸出49和51分成多路信號(hào)路徑,把它們導(dǎo)入到單元A和B以及本地總線輸出L。尤其,L.U.T.輸出49和51連接到各數(shù)據(jù)線52和53上,各數(shù)據(jù)線52和53可以由各第一和第二輸出多路復(fù)用器54和55耦連到輸出線56和57上,以把輸出信號(hào)提供給各A和B輸出。L.U.T.輸出49和51還連接到各第二數(shù)據(jù)線59和60上,導(dǎo)入到第三輸出多路復(fù)用器61。多路復(fù)用器61的控制信號(hào)從本地總線輸入DL或從固定邏輯電平信號(hào)(“0”或“1”)由多路復(fù)用器62選擇取得。當(dāng)選擇邏輯“0”信號(hào)時(shí),第三輸出多路復(fù)用器61把通過第二數(shù)據(jù)線59接收到的第一查找表45的輸出傳輸?shù)狡漭敵龆?3,但當(dāng)選擇邏輯“1”信號(hào)時(shí),第三輸出多路復(fù)用器61把通過另一第二數(shù)據(jù)線60接收到的第二查找表47的輸出傳輸?shù)狡漭敵龆?3。當(dāng)選擇本地總線輸入DL時(shí),對(duì)第三輸出多路復(fù)用器61的控制是動(dòng)態(tài)的。實(shí)際上,兩個(gè)8比特查找表45和47一起起到一個(gè)16比特查找表的作用,其中本地總線輸入DL用作第四地址輸入,以訪問存儲(chǔ)在組合查找表中所要求的數(shù)據(jù)位。把選出的第三多路復(fù)用輸出63分成兩個(gè)并行的路徑,一路是組合或非寄存路徑65,另一路是含有觸發(fā)器66的寄存路徑。第四輸出多路復(fù)用器67把這兩路徑中的一路連接到其輸出69。第四多路復(fù)用器輸出69還分成幾路并行的路徑。這些路徑的一路70連到可能選擇以耦連到單元的A輸出上的第一輸出多路復(fù)用器54上,這些路徑中的另一路71連到可能選擇的以耦連到單元的B輸出上的第二輸出多路復(fù)用器55。第三路徑通過輸出緩存器73連到輸出線75上,把輸出信號(hào)提供給單元的本地總線輸出L。輸出緩存器73可以是三態(tài)緩存器,受再一個(gè)多路復(fù)用器74提供的允許信號(hào)控制。可選項(xiàng)包括緩存器73總是允許的邏輯“1”信號(hào)和兩從專用的總線線路上接收到的動(dòng)態(tài)輸出允許信號(hào)OEH和OEV。第四多路復(fù)用器輸出69的第四路徑是反饋路徑40,連到本地總線輸入CL處可能選擇的輸入多路復(fù)用器39上。
這種單元結(jié)構(gòu)為它提供了顯著的靈活性,同時(shí)保持了較簡單的結(jié)構(gòu)和小型的體積。A和B輸入多路復(fù)用器41和43與四個(gè)最鄰近單元完全對(duì)稱。同樣,圖6的本地總線輸入電路為所有十個(gè)單元的本地總線連接提供了完全相同的選項(xiàng)。在單元的輸出端,A和B輸出設(shè)置有匹配的選項(xiàng)。非寄存地通過直接信號(hào)線52或寄存地通過第二信號(hào)線59以及寄存器66和信號(hào)線70,可以為A輸出設(shè)置第一查找表45的輸出?;蛘?,通過第二信號(hào)線60和信號(hào)線70,再寄存或非寄存地為它提供第二查找表47的輸出。或者當(dāng)多路復(fù)用器62選擇本地總線輸入DL作為第四地址輸入時(shí),可以寄存或非寄存組合的16位L.U.T.提供輸出。同樣,可以為B輸出提供第二查找表47、第一查找表45或組合16比特查找表的輸出,這些輸出的任一數(shù)據(jù)都可以寄存或者不寄存。相同的項(xiàng)可用于單元的本地總線輸出L。
除了對(duì)稱和靈活的輸入和輸出選項(xiàng)之外,單元結(jié)構(gòu)還產(chǎn)生較快的從輸入到單元的直接單元至單元輸出的通過率。由于單元結(jié)構(gòu)簡單,所以在單元的輸入和輸出之間可以有少至三個(gè)電路電路元件。尤其是,A、B、C和D輸入信號(hào)在到達(dá)地址輸入a0、a1、a2或集中控制對(duì)存儲(chǔ)在查找表45和47內(nèi)的數(shù)據(jù)位進(jìn)行訪問的多路復(fù)用器61的控制輸入之前,僅通過一個(gè)選擇電路,即多路復(fù)用器41、43、39和62之一。同樣,在查找表45和47的輸出側(cè),查找表輸出線49和51提供的信號(hào)可以僅通過一個(gè)多路復(fù)用器54或55,以到達(dá)單元的A或B輸出。
圖7示出了根據(jù)本發(fā)明的另一個(gè)邏輯單元。該單元包括一組輸入多路復(fù)用器41′、43′、39′和62′,以接收和選擇A、B、C和D輸入。如圖5所示,A輸入包括與上述單元同行或同列內(nèi)的最鄰近邏輯單元來的直接單元至單元輸入An,Ae,As和Aw,還包括邏輯總線輸入AL。B輸入也可以與圖5所示的相同,或者另一情況除了本地總線輸入BL之外還可以包括對(duì)角相鄰邏輯單元的單元至單元輸入Bnw,Bne,Bse和Bsw。因此,B輸入可以對(duì)應(yīng)于圖3所示的單元至單元連接。輸入多路復(fù)用器39′選擇本地總線輸入CL或邏輯“1”信號(hào)。其輸出42′連接到與門44′的一個(gè)輸入端。多路復(fù)用器38′選擇反饋線34′上的反饋信號(hào)、邏輯總線輸入DL或邏輯“1”信號(hào),并把所選的信號(hào)放在其輸出40′上,送到與門44′的另一輸入端。因而,與門44′可以把本地總線輸入CL或DL或反饋信號(hào)傳送到其輸出46′上,或者可以邏輯地組合(與)本地總線輸入CL和DL(或把輸入CL與反饋信號(hào)組合)以形成這兩輸入的邏輯積。具有與門44′的單元提供了可在單個(gè)單元內(nèi)實(shí)現(xiàn)一個(gè)元件的陣列多路復(fù)用器的可能性。如圖5所示,把所選的輸入多路復(fù)用器41′和43′的輸出連接到兩個(gè)8比特查找表45′和47′的兩個(gè)地址輸入a0和a1。與門44′的輸出46′連接到查找表45′和47′的第三地址輸入a2。
如圖5所示,查找表45′和47′的輸出通過多路復(fù)用器54′和55′的輸出連接到邏輯單元的各A和B輸出上。表45′和47′也連接到受固定“0”或“1”控制信號(hào)控制,或受再一多路復(fù)用器62′所選擇的本地總線輸入DL控制的第三多路復(fù)用器61′上。如前面所述,當(dāng)選擇本地總線輸入DL時(shí),兩查找表45′和47′與作為第四地址輸入的本地總線輸入DL有效地組合成單一16比特表。所選的第三多路復(fù)用器61′的輸出連接到由非寄存信號(hào)路徑65′、寄存信號(hào)路徑內(nèi)的觸發(fā)寄存器66′以及選擇這兩個(gè)信號(hào)路徑中一路的多路復(fù)用器67′組成的寄存/非寄存電路。得到的輸出69′通過多路復(fù)用器54′和55′連接到單元的A和B輸出,通過輸出緩存器73′連接到單元的本地總線輸出L。再者,響應(yīng)于多路復(fù)用器74′所選的輸出允許信號(hào),輸出緩存器73′可以是三態(tài)緩存器。圖7還示出了輸出緩存器電路73′還可以包括通過再一多路復(fù)用器72′的輸出極性控制。
參照圖8,根據(jù)本發(fā)明的另一個(gè)邏輯單元用兩個(gè)8×1的靜態(tài)RAM,它們在器件工作期間通過從總線網(wǎng)絡(luò)提供寫允許和對(duì)單元的數(shù)據(jù)訪問可以進(jìn)行寫入。這可以把單元用作片上存儲(chǔ)器,或另一方面可以實(shí)現(xiàn)工作期間動(dòng)態(tài)改變的預(yù)裝載的和固定的查找表進(jìn)行的邏輯功能,例如由該器件本身作為FPGA器件內(nèi)其它單元進(jìn)行的一些功能的結(jié)果來實(shí)現(xiàn)。在該實(shí)施例中,輸入多路復(fù)用器44”、43”和39”連接到A、B和C直接和本地總線輸入以及反饋線40”上,還與圖5所示一樣的方式連接到SRAM45″和47″的地址輸入a0、a1和a2。SRAM45″和47″的輸出49″和51″都分成非寄存路徑64″和65″和含有觸發(fā)器66″和68″的寄存路徑,這些觸發(fā)器分別連到輸出復(fù)用器54″和55″。多路復(fù)用器54″和55″的輸出沿信號(hào)路徑56″和57″連接到邏輯單元的單元至單元直接A和B輸出,還沿第二信號(hào)路徑59″和60″連到受多路復(fù)用器62″選擇的信號(hào)控制的本地總線輸出選擇多路復(fù)用器61″。該選擇包括固定低電平(“0”)和邏輯高電平(“1”)以及分別從水平和垂直本地總線得到的動(dòng)態(tài)本地總線輸入DH和DV。如果選擇動(dòng)態(tài)本地總線輸入DH或DV,來控制輸出多路復(fù)用器61″,則高效地把該輸入用作由兩個(gè)8比特SRAM45″和47″組成的組合16比特SRAM的第四地址輸入。輸出多路復(fù)用器61″所選的輸出69″連接到反饋線40″上,連接到輸入多路復(fù)用器39″,還通過緩存器73″連接到本地總線L上。如前所述,緩存器73″可以具有通過多路復(fù)用器74″從本地總線OEH或OEV來的輸出允許控制。另一方面,SRAM輸出49″和51″之間的電路以及地址A和B輸出和本地總線輸出L可以與圖5所示的一樣。
通過連接到FPGA總線網(wǎng)絡(luò)和兩SRAM45″的47″的數(shù)據(jù)輸入d0的DATA_IN(數(shù)據(jù)輸入)線84″以及地址輸入a0-a2,并通過向SRAM45″和47″之一提供寫允許信號(hào)WE的寫電路提供了本實(shí)施例單元獨(dú)有的對(duì)SRAM45″和47″的寫訪問。寫允許電路包括兩個(gè)與門76″和77″,每個(gè)與門具有三個(gè)輸入端78″-80″,并具有一個(gè)輸出端,把寫允許輸入耦連到SRAM45″和47″之一上。與門輸入78″之一接收與本地總線輸出多路復(fù)用器61″相同的多路復(fù)用器62″所選的控制信號(hào)。即,輸入78″有選擇地接收固定邏輯低電平(″0″)或高電平(″1″),或動(dòng)態(tài)本地總線輸入信號(hào)DH或DV。在達(dá)到與門76″之前把輸入78″反轉(zhuǎn),而在達(dá)到另一與門77″之前不反轉(zhuǎn)。因此,在某一時(shí)刻,SRAM45″和47″中僅有一個(gè)SRAM將接收到寫信號(hào)。如果輸入78″為低邏輯電平,則左面的SRAM45″將被允許,而如果輸入78″為高邏輯電平,則右邊的SRAM47″將被允許。用本地總線輸出多路復(fù)用器61″的相同控制信號(hào)可以確保在本地總線輸出L上檢驗(yàn)從數(shù)據(jù)輸入線84″寫入的數(shù)據(jù)。第二個(gè)與門輸入79″向與門76″和77″提供了反轉(zhuǎn)的時(shí)鐘(CLOCK)信號(hào),以保證要寫入的輸入數(shù)據(jù)在寫允許信號(hào)WE傳送到所選的SRAM45″和47″之前已在數(shù)據(jù)輸入線84″上適當(dāng)?shù)亟⒘?。第三與門輸入80″通過多路復(fù)用器82″提供了寫允許信號(hào)WE本身,它可以進(jìn)行該邏輯單元(由固定邏輯低電平輸入“0”)選擇禁止的寫操作。
參照圖9和10,每個(gè)單元(各圖5,6和8)內(nèi)的觸發(fā)寄存器(或寄存器)66、66′、66″和68″接收時(shí)鐘輸入和復(fù)位(或置位)輸入。圖9示出了本發(fā)明的FPGA的時(shí)鐘分配電路??梢杂卸鄠€(gè)全局時(shí)鐘線CK0-CK7,以提供頻率、相位或兩者都彼此不同的時(shí)鐘信號(hào)。其它可能的時(shí)鐘分配結(jié)構(gòu)可以包括一些其它的時(shí)鐘線,部分總體多路復(fù)用器88等。邏輯單元11的每列可以設(shè)置有其自已的時(shí)鐘選擇多路復(fù)用器88,該多路復(fù)用器88的輸入端分別連接到部分或全部全局時(shí)鐘線CK0-CK7。因此,可以為邏輯單元11的每列提供與邏輯單元11其它列不同的時(shí)鐘信號(hào)。每個(gè)時(shí)鐘選擇多路復(fù)用器88的輸出形成主列線92,把所選的時(shí)鐘信號(hào)分配給該列內(nèi)的每個(gè)單元。可以把邏輯單元的列再分成4個(gè)或8個(gè)扇區(qū),通常,每個(gè)為N個(gè)單元。在圖9中,可以看出扇區(qū)14由4個(gè)單元組成。對(duì)于單元的每個(gè)扇區(qū),從主列線92分出,提供有時(shí)鐘極性選擇和分配允許電路94。該電路94包括第一多路復(fù)用器106,其一個(gè)輸入端連接到主列線92以接收時(shí)鐘信號(hào),另一輸入端接收固定邏輯高電平(“1”)信號(hào)。如果多路復(fù)用器106選擇了時(shí)鐘信號(hào),則把該信號(hào)分配給單元11相應(yīng)的扇區(qū)14,但如果選擇了固定信號(hào),則不向該扇區(qū)14提供時(shí)鐘信號(hào)。電路94還包括二分叉的信號(hào)路徑(105和107),連到第二多路復(fù)用器108。第二多路復(fù)用器的一個(gè)輸入直接來自第一多路復(fù)用器106的輸出105,而另一輸入首先通過反相器107。第二多路復(fù)用器108能使時(shí)鐘信號(hào)的極性選擇相應(yīng)的扇區(qū),因而可使邏輯單元11的同列中的其他扇區(qū)接收相反極性的時(shí)鐘信號(hào)。最后,單元的一些扇區(qū)而不是最接近全局時(shí)鐘線CK0-CK7的最上面的扇區(qū)組可以交替地接收同一列的相鄰扇區(qū)內(nèi)的單元的直接A輸出110。
在圖10中,全局復(fù)位(RESET)線114提供的對(duì)列線115進(jìn)行復(fù)位的復(fù)位(RESET)信號(hào)同樣可以具有其極性,由邏輯單元的扇區(qū)通過以與時(shí)鐘電路94相同方式構(gòu)成的復(fù)位極性選擇和分配允許電路116確定。
參照圖11,邏輯單元11組織成4×4的單元塊15,在其邊界13上,設(shè)置有一組總線網(wǎng)絡(luò)的連接開關(guān),稱為“中繼器”27。如前所述,總線網(wǎng)絡(luò)包括在邏輯單元11的行之間運(yùn)行的水平總線21組和在邏輯單元11的列之間運(yùn)行的垂直總線19組。每組總線19或21包括限制到單元的一個(gè)塊15的本地總線23和通過中繼器27延伸通過單元的多個(gè)塊的兩條直快總線25。為簡便起見,單元的每行和每列僅示出了一組三條總線23和25。然而,也與前面所提到的一樣,如從圖4中所看到的,單元的每行和每列通常有五組三條總線19和21。中繼器27可以把本地總線23連接到直快總線25上。本地總線僅直接連接到本地單元11上。中繼器27具有交錯(cuò)結(jié)構(gòu),其中,任一個(gè)中繼器27都在本地總線23和該組內(nèi)的兩條直快總線25的僅一條之間提供可選擇的連接,后面的中繼器27連接到該組內(nèi)的另一直快總線上。因此,每條直快總線25每隔8個(gè)單元11的行或列的與一個(gè)中繼器27相遇,而不是每4行或列,而每條本地總線23每隔4個(gè)單元11的行或列與一個(gè)中繼器27相遇。單元11的塊15內(nèi)的每條本地總線23在該塊15的相反端上連接到其相應(yīng)的每條直快總線25上。一種對(duì)中繼器27布線以獲得所要求的交錯(cuò)結(jié)構(gòu)的方便方法是使中繼器27的所有行或列能連接到各三條總線的組內(nèi)的匹配直快總線上(例如,所有都連接到最左邊或最上邊的直快線上),使中繼器27后續(xù)的行或列,四個(gè)遠(yuǎn)的邏輯單元等,都連接到該組內(nèi)相對(duì)的匹配直快線上(例如,所有都連接到最右邊或最下邊的直快線上),等等。圖11還示出了可以在總線的行和列相交的地方設(shè)置另外的開關(guān)81,以使信號(hào)在總線的行和列之間轉(zhuǎn)90度。這些開關(guān)81把本地總線連接到其它本地總線,以及把直快總線連接到其它直快總線上。
參照圖12,邏輯單元11的每塊15的角上,在塊15邊界上的中繼器27的行列交叉點(diǎn)上的空間上,是專用的功能元件83(DFE),它可以是存儲(chǔ)器結(jié)構(gòu),例如隨機(jī)存取存儲(chǔ)器(RAM)塊或者其它專用的或特殊的電路,例如多路復(fù)用器、移位寄存器、固定功能數(shù)字或模擬邏輯、微控制器、比較器以及模數(shù)或數(shù)模轉(zhuǎn)換器等。由于角上的空間是由單元以及與它們相關(guān)的總線和中繼器的塊結(jié)構(gòu)產(chǎn)生的,因此該空間內(nèi)的存儲(chǔ)器專用邏輯可以布置得較小或不消耗整個(gè)器件的硅面積。
每個(gè)專用功能元件83可以是RAM塊或其它存儲(chǔ)器結(jié)構(gòu)(例如非易失性存儲(chǔ)器),如圖4和13所示,組織成32個(gè)4比特?cái)?shù)據(jù)字,每塊總計(jì)有128個(gè)比特。參照圖13,每個(gè)RAM塊83可以包含SRAM85,它具有五個(gè)同步地址輸入a0-a4,通過一組觸發(fā)寄存器87接收地址線860-864的地址信號(hào),還具有四個(gè)雙向數(shù)據(jù)端d0-d3。數(shù)據(jù)端d0-d3連接到各數(shù)據(jù)線890-893上,每根數(shù)據(jù)線再連接到一對(duì)輸入和輸出緩存器90和91上。輸入緩存器90通過觸發(fā)器93連接到數(shù)據(jù)線950-953上。輸出緩存器91直接連接到數(shù)據(jù)線950-953上。通過觸發(fā)寄存器97從寫允許線96接收寫允許信號(hào)WE。觸發(fā)器97的寄存器輸出Q通過第一分支連接到SRAM85的寫允許輸入端,通過第二分支99經(jīng)各側(cè)的分支990-993連接到每個(gè)數(shù)據(jù)端d0-d3的輸入緩存器90的三態(tài)控制輸入。還通過觸發(fā)寄存器103從輸出允許線102接收輸出允許信號(hào)OE。寄存器103的輸出104連接到與門101第一輸入,而觸發(fā)寄存器97輸出的第三分支100連接到與門101的第二個(gè)補(bǔ)輸入。與門101的輸出105通過各側(cè)分支1050-1053連接到每個(gè)數(shù)據(jù)端d0-d3的輸出緩存器91的三態(tài)控制輸入。
因此,為了把數(shù)據(jù)寫入到SRAM85中,要在地址端90-94上從寄存器87的輸出同步接收5比特地址,還在SRAM85的寫允許端WE上通過第一分支98從觸發(fā)寄存器97同步接收寫允許信號(hào)。寫允許信號(hào)也能通過側(cè)面分支990-993允許輸入緩存器90,通過與門101和側(cè)面分支1050-1053禁止輸出緩存器91。因此,在數(shù)據(jù)線950-953上接收到的數(shù)據(jù)比特通過輸入緩存器90和數(shù)據(jù)線890-893傳輸?shù)礁鲾?shù)據(jù)端d0-d3,并在地址端a0-a4接收到的地址端口上寫入到SRAM85。為了從SRAM85讀取存儲(chǔ)的數(shù)據(jù),在地址端a0-a4以及與門101上分別通過寄存器87和103同步接收地址和輸出允許信號(hào)OE。寄存器97傳輸?shù)膶懺试S信號(hào)WE為低電平,通過分支線990-993禁止輸入緩存器90,通過分支線1050-1053允許輸出緩存器91。把存儲(chǔ)在接收到的地址上的數(shù)據(jù)通過數(shù)據(jù)端d0-d3輸出到數(shù)據(jù)線950-953。另一方面,可以適當(dāng)?shù)馗膭?dòng)RAM塊83,使寫允許和輸出允許信號(hào)為低電平有效。
回到圖4,圖13的RAM塊83可以連接到總線網(wǎng)絡(luò)上,使五根地址線86中的每根連接到對(duì)應(yīng)于單元11一列的五根垂直本地總線23不同的一根上,寫允許和輸出允許線96和102連接到對(duì)應(yīng)于單元同一列的兩垂直直快總線25上,四根數(shù)據(jù)線95中的每根連接到對(duì)應(yīng)于鄰接于該RAM塊83的4×4單元組內(nèi)的單元中的四行的每一行的不同水平本地總線上。也可以采用其它連接方法。
另一方面,不用圖4和圖13所示的結(jié)構(gòu),以如圖14和圖15所示的方式,可以把RAM塊83連接到總線網(wǎng)絡(luò)上。圖14示出了八個(gè)4×4邏輯單元11塊15以及一些在單元11之間運(yùn)行和在塊15之間的垂直和水平直快總線19和21。轉(zhuǎn)動(dòng)開關(guān)81把所選的垂直和水平總線19和21在它們交錯(cuò)的地方彼此連接。在邏輯單元11的每個(gè)塊15的右下角是RAM塊83。如圖15所示,每個(gè)RAM塊83可以是雙端SRAM,具有寫允許端WE、寫地址端Ain和數(shù)據(jù)輸入端Din,以對(duì)SRAM進(jìn)行寫操作,還具有讀允許端OE、單獨(dú)的讀地址端Aout以及單獨(dú)的數(shù)據(jù)輸出端Dout,以從SRAM進(jìn)行讀數(shù)據(jù)。因此,讀和寫操作可以獨(dú)立進(jìn)行,甚至在單獨(dú)的地址和數(shù)據(jù)線上同時(shí)進(jìn)行。
回到圖14,從總線網(wǎng)絡(luò)或器件的外部端接收對(duì)應(yīng)于要寫入8個(gè)數(shù)據(jù)位的RAM內(nèi)的一組位置的6比特寫地址(WRITE ADDR.)。六個(gè)比特中的兩個(gè)比特輸入到傳統(tǒng)的2至4比特譯碼器171。譯碼器171根據(jù)它接收到的四個(gè)可能的兩比特輸入值中的一些值激活其四個(gè)輸出173中的一個(gè),并且僅僅激活一個(gè)。四個(gè)譯碼器輸出173中的每個(gè)輸出連接到四個(gè)或門175之一的一個(gè)輸入上。在四個(gè)或門175的另一輸入上接收全局寫允許信號(hào)WE?;蜷T輸出177連接到對(duì)應(yīng)于塊15中四列的每一列的垂直直快總線19和RAM塊83上與它們對(duì)應(yīng)于的列上。這些RAM塊的寫允許端WE連接到這些特定垂直直快總線上,以從相應(yīng)的或門輸出177接收經(jīng)譯碼的寫允許信號(hào)。因此,對(duì)于兩個(gè)寫地址比特的任一種組合,如果全局寫允許信號(hào)WE被激活,則將激活RAM塊83的四列中的一列。6比特地址中的其它四位寫地址連接到水平直快總線21上,然后通過轉(zhuǎn)換開關(guān)81到垂直總線19,而這些總線19連接到每個(gè)RAM塊83的寫地址端Ain。8條數(shù)據(jù)輸入線Din(0)-Din(7)通過相鄰于邏輯單元11每行的水平總線19連接到RAM塊83的數(shù)據(jù)輸入端Din上,每個(gè)RAM塊83從Din(0)-Din(3)或Din(4)-Din(7)接收四個(gè)平行的數(shù)據(jù)輸入信號(hào)。因此,需要兩行RAM塊把數(shù)據(jù)的寫信號(hào)字節(jié)寫到任一指定的地址上。
同樣,對(duì)于讀操作,向6比特讀地址(READ ADDRESS)提供連接到另一個(gè)提供四個(gè)輸出174的2至4比特譯碼器172的兩個(gè)地址比特,以及通過水平直快總線21和轉(zhuǎn)換開關(guān)81連接到垂直直快總線19以連到RAM塊的讀地址端的四個(gè)余下的地址比特。再者,向所有8個(gè)RAM塊提供四個(gè)地址比特,但僅向一列RAM塊提供從輸入到譯碼器172的兩個(gè)地址比特得到的讀允許信號(hào)。8根數(shù)據(jù)輸出線Dout(0)-Dout(7)通過水平直快總線連接到兩行RAM塊83內(nèi)的數(shù)據(jù)輸出端Dout。
一種有用的結(jié)構(gòu)在RAM塊83的相鄰列內(nèi)的讀和寫地址端Ain和Aout之間提供了鏡象對(duì)稱。當(dāng)構(gòu)筑了雙端RAM元件時(shí),減少了約一半地址信號(hào)需要的垂直總線資源。請注意,在圖14中,前兩列RAM塊共用同一根讀地址線176。同樣,最后兩列RAM塊共用同一讀地址線178。第二和第三列RAM塊共用同一根寫地址線179。在有更大組的存儲(chǔ)器塊中,諸如具有8列或16列RAM塊和3至8或4至16比特譯碼器的存儲(chǔ)器塊中,用垂直總線資源把一列邏輯塊15的讀地址線用作下一列邏輯塊15的寫地址線。
邏輯單元每塊角上的專用功能元件也可以是特定的邏輯結(jié)構(gòu),例如多路復(fù)用器。例如可以把4×4多路復(fù)用器用相同方式連接到總線網(wǎng)絡(luò)上,作為圖14和15中看到的雙端SRAM,用一個(gè)四比特操作數(shù)代替一組地址輸入,用每二個(gè)四比特操作數(shù)代替另一組地址輸入。多路復(fù)用器的8比特積輸出代替RAM數(shù)據(jù)輸出線上的兩個(gè)四比特?cái)?shù)據(jù)。
參照圖16,陣列邊緣上的邏輯單元11能以多種方法中的任一種方法連接到輸入/輸出(I/O)端17上。這里所示的一種方法把每個(gè)邏輯單元,例如單元112通過I/O線121-123連接到三個(gè)相鄰的I/O端117-119,還把每個(gè)I/O端,例如端118通過I/O線122、124和125連接到三個(gè)相鄰的邏輯單元111-113。這種方法通常在陣列的角上和在端口線的端點(diǎn)上有例外。因此,端點(diǎn)的端口131通過I/O線132和133僅連接到兩個(gè)邏輯單元134和135上。角上的邏輯單元135通過I/O線132和136-138連接到四個(gè)I/O端口,即I/O端口一條線上的端口130和131以及端口的另一條線上的端口139和140。也可能有其它的結(jié)構(gòu)。
圖17詳細(xì)示出了角上的連接方式。其它邏輯單元和I/O端口的連接是相似的。從圖17中看到的特定邏輯單元135是陣列的右下角單元,即,圖1最下一行和最右一列的單元。如圖16所示,該特定單元135連接到最下一行端口內(nèi)的兩個(gè)最右邊的I/O端口139和140,還連接到電路最右一行端口內(nèi)的兩個(gè)最下面的I/O端口130和131。圖17的單元135與陣列中所有其它單元一樣連接到一組相鄰的垂直和水平總線19和21上,通過本地總線23和可重復(fù)的開關(guān)27直接連接到本地總線23或間接連接到直快總線25上。如圖4和圖6所示,單元135與5根水平和5根垂直本地總線23之間的連接可以通過一組雙向數(shù)據(jù)總線29來實(shí)現(xiàn)。角上的單元135還如圖2所示與最近的相鄰單元(未示出)直接連接。然而,由于單元135的右邊和下面沒有相鄰的單元,所以把四個(gè)未用的A和B直接輸入(AE,BE,AS和BS)以及四個(gè)未用的A和B直接輸出(兩個(gè)A′的和兩個(gè)B′的)用于與I/O端口以及與某些直快總線25的方便的連接。
尤其是,不與端部中繼單元27相交的5根直快線25中的每根連接到一對(duì)5至1多路復(fù)用器141和143和一對(duì)五單元開關(guān)組145和147。同樣,不與總線列結(jié)束處的端部中繼單元27相交的5根垂直直快線25連接到多路復(fù)用器142和144以及開關(guān)組146和148。多路復(fù)用器141和142的輸出連接到各個(gè)直接B輸入BE和BS,還連接到輸出信號(hào)路徑153和154上,以連接到I/O端口上。多路復(fù)用器143和144的輸出僅連接到輸出信號(hào)路徑155和156上,以連到I/O端口上。開關(guān)組145和146把單元135的直接B輸出連接到?jīng)]有被中繼器27結(jié)束的10根水平和垂直直快線25上。開關(guān)組147和148把I/O端口的輸入信號(hào)路徑169和170連接到相同的10根水平和垂直直快線25上。輸入信號(hào)路徑169和170還連接到單元135的各個(gè)直接A輸入AE和AS。
右側(cè)輸入信號(hào)路徑151、153和155都進(jìn)入到圖16中右邊的端口線上最下面的兩個(gè)端130和131和底部端口線上最右邊的端口139。底部輸出信號(hào)路徑152、154和156都進(jìn)入到圖16中下部端口線上的最右邊兩個(gè)端139和140和右邊端口線上最底下在端口131。因此,利用四種可用的端口連接可以把每個(gè)輸入信號(hào)路徑151-156有選擇地連接到三個(gè)不同的端口中的任一個(gè)端口。信號(hào)路徑155和156還可以用來向路徑151-154與I/O端口之間的輸出緩存器提供三態(tài)允許信號(hào)。輸入信號(hào)路徑169和170同樣可以連接到I/O端口。導(dǎo)線161、163和165連接到圖16中看到的各端口130、131和139,而導(dǎo)線162、164和166連接到圖16中看到的各端口131、139和140上。輸入選擇多路復(fù)用器167和168都把所選的導(dǎo)線161-166連接到輸入信號(hào)路徑169和170。
參照圖18和19,增加了I/O端口的數(shù)量,從圖16的每個(gè)周邊邏輯單元11一個(gè)端口17增加到圖18和19所示的每對(duì)周邊邏輯單元12三個(gè)端口17′,或者如果要求的話,甚至可以多達(dá)每個(gè)周邊邏輯單元2個(gè)端口。在圖18中,與非角上周邊邏輯單元187-190直接面對(duì)的I/O端口180、181、183、184等可以連接到三個(gè)周邊邏輯單元和圖16所示的與它們相關(guān)的總線上。例如,I/O端口181可連接一周邊邏輯單元187-189和下面參照圖19將看到的相關(guān)的總線上。除了I/O端口182、185等之外,如圖19所示,與周邊邏輯單元非直接面對(duì)但分別相對(duì)于邏輯單元188和189與邏輯單元190和191之間空間設(shè)置的通過與它們相關(guān)的總線被間接地連接到兩個(gè)最近的周邊邏輯單元上。同樣,每個(gè)非角上的周邊邏輯單元187-190等可連接到四個(gè)I/O端口上。例如,單元188可連接到I/O端口180-183。角上的單元191等連接到六個(gè)I/O端口184-186和192-194,三個(gè)來自每條端口線。
如圖19所示,I/O端口181連接到輸入緩存器201上,其輸出202分成三條輸入線203-205,連到邏輯單元187-189的直接單元輸入206-208上。緩存器的輸出202還通過可編程開關(guān)209連接到雙向信號(hào)線210-212上,以在與包括單元187-189的三行邏輯單元的每行相關(guān)的水平總線端部上連到中繼開關(guān)單元27上。與I/O端口181關(guān)聯(lián)的是輸出多路復(fù)用器213。該多路復(fù)用器213連接到來自與邏輯單元187-189關(guān)聯(lián)的三行水平總線21的雙向信號(hào)線210-212,還連接到來自邏輯單元187-189的直接單元輸出217-219的單元輸出線214-216上。這些信號(hào)線210-212和217-219中每條都連接到多路復(fù)用器213的輸入,多路復(fù)用器至多選擇它們中的一個(gè)信號(hào)用于通過輸出緩存器220傳輸?shù)絀/O端口181。與單元187和189直接面對(duì)的I/O端口180和183以與I/O端口181相同的方式連接。
附加I/O端口182位于I/O端口181和183之間。當(dāng)I/O端口181和183設(shè)置成直接面對(duì)周連邏輯單元188和189時(shí),端口182不與任一邏輯單元面對(duì),而是設(shè)置成與單元188和189相關(guān)并含有與單元189相關(guān)的水平總線21的行之間的空間相對(duì)。I/O端口182連接到輸入緩存器221上,其輸出可通過可編程開關(guān)222連接到雙向信號(hào)線223和224上。這些信號(hào)線223和224還通過輸出多路復(fù)用器耦連到輸出緩存器226上,這輸出緩存器連接到I/O端口182。雙向信號(hào)線223和224連接到信號(hào)線210上,使信號(hào)線210連到和來自與單元188和189關(guān)聯(lián)的水平總線21的端部中繼開關(guān)。
參照圖20和21,對(duì)兩個(gè)I/O端口230和231,示出了本發(fā)明的FPGA的輸入/輸出接口的又一個(gè)實(shí)施例。為了能容易地觀看到多路信號(hào)路徑,圖20僅示出了與直接面對(duì)邏輯單元228的一個(gè)I/O端口231關(guān)聯(lián)的路徑。該圖在FPGA器件的單元矩陣周邊周圍的每個(gè)單元227、228、229等上重復(fù)。同樣,圖21僅示出了與設(shè)置成面對(duì)兩邏輯單元227和228之間位置的一個(gè)I/O端口230關(guān)聯(lián)的路徑。雖然通常這些第二I/O端口230僅在單元之間的每個(gè)其它可用位置上出現(xiàn),但該圖也在FPGA周邊周圍上重復(fù)。如從圖19的第二I/O接口實(shí)施例中所看到的,這兩種類型的I/O端口,即直接面對(duì)邏輯單元的端口和面對(duì)單元之間的端口通常在FPGA中都可以找到。
如在圖20和21中所看到的,I/O端口231和230具有上拉晶體管232和252,其柵極受可用戶配置的比特控制(上拉)。這些晶體管232和252的主要功能是向未用的端口提供邏輯“1”。當(dāng)晶體管232或252導(dǎo)通時(shí),它對(duì)電源VCC來說約等效于10K的電阻器。每個(gè)端口231和230分別具有一個(gè)與其連接的輸入緩存器234和254,還分別具有一個(gè)也與其連接的輸出緩存器233和253。輸入緩存器234和254具有可選擇的閾值電平,TTL或CMOS,它由可用戶配置的比特(TTL/CMOS)確定。輸出緩存器233和253具有可選擇的驅(qū)動(dòng)電平,受另一個(gè)可用戶配置的比特(HALF/FULLDRIVE)控制。各驅(qū)動(dòng)電平在它們的直流電流吸收能力方面不同。另一方面,各緩存器具有可控制的旋轉(zhuǎn)速率,或快或慢,具有相同的全直流電流吸收能力。對(duì)速率并非關(guān)鍵問題的輸出來說,推薦使用半驅(qū)動(dòng)或慢旋轉(zhuǎn)速率(其中之一降低了噪聲和接地振動(dòng))。“開放集電極”配置比特可選擇地允許或禁止輸出緩存器233或253的有效上拉。多路復(fù)用器235和255從多個(gè)選項(xiàng)中選出三態(tài)輸出緩存器233和253的允許信號(hào)(TRI-STATE)。這些選項(xiàng)通常包括緩存器要么總是驅(qū)動(dòng),要么從不驅(qū)動(dòng)的固定邏輯電平“0”和“1”以及陣列中產(chǎn)生的多個(gè)動(dòng)態(tài)信號(hào)。與周邊邏輯單元228直接面對(duì)的主I/O端口231具有與三個(gè)可用的輸出單元227、228和229關(guān)聯(lián)的三個(gè)動(dòng)態(tài)信號(hào)選擇(CELL1,CELL2,CELL3),而位于單元間位置上的次級(jí)I/O端口230具有與其兩個(gè)可用的輸出單元227和228關(guān)聯(lián)的兩個(gè)動(dòng)態(tài)信號(hào)選擇(CELL1,CELL2)。動(dòng)態(tài)信號(hào)可以在各單元本身內(nèi)產(chǎn)生,或者可以由與這些單元相關(guān)的總線247、248或249提供。
現(xiàn)在僅參照圖20,I/O端口231通過輸出選擇多路復(fù)用器237和輸出緩存器233利用線241-244連接到與三個(gè)相鄰周邊邏輯單元227、228和229(分別標(biāo)為CELL1、CELL2和CELL3)關(guān)聯(lián)的總線247、248和249上。請注意,兩個(gè)信號(hào)選項(xiàng)可從與面對(duì)端口231的單元228關(guān)聯(lián)的總線248上得到,而僅一個(gè)信號(hào)選項(xiàng)從相鄰總線247和249得到。輸出選擇多路復(fù)用器237還從邏輯單元228接收直接單元輸出245。I/O端口231通過輸入緩存器234連接到直接單元輸入250,并連到邏輯單元228上,還通過用戶可配置開關(guān)251連接到同一線路組241-244上,以連到總線247-249上。
現(xiàn)在參照圖21,設(shè)置成面對(duì)單元227和228之間位置的端口230通過輸出選擇多路復(fù)用器257和輸出緩存器253利用線路261和262連接到與單元227和228相關(guān)的總線247和248上。多路復(fù)用器257還從單元227和228接收直接對(duì)角單元輸出263和264。I/O端口230通過輸入緩存器254連接到單元227和228的直接對(duì)角單元輸入265和266上,還通過用戶可配置開關(guān)267連接到線路261和262上,以連到總線247和248上。
FPGA器件也可以用如圖16-21所示不同的其它I/O接口結(jié)構(gòu)。
權(quán)利要求
1.一種可配置的邏輯集成電路,包含一組輸入和輸出端,多個(gè)非專用的可編程邏輯單元,組織成具有單元的單元塊,在每個(gè)塊中,沿塊內(nèi)的路徑彼此通信,塊沿跨越一個(gè)以上塊的路徑彼此通信,至少一些所述路徑可耦連到所述端子上,以及多個(gè)設(shè)置在所述塊之間空間內(nèi)的專用功能元件,每個(gè)專用功能元件與單元塊相關(guān)聯(lián),并可連接到與該塊相關(guān)的路徑上。
2.如權(quán)利要求1所述的電路,其特征在于,所述邏輯單元布置成單元行列矩陣,所述電路形成現(xiàn)場可編程門陣列。
3.如權(quán)利要求2所述的電路,其特征在于,所述單元塊同樣以塊的行和列柵格圖形布置。
4.如權(quán)利要求3所述的電路,其持征在于,所述專用功能單元設(shè)置在所述塊的角上提供的空間內(nèi)。
5.如權(quán)利要求2所述的電路,其特征在于,所述路徑形成總線網(wǎng)絡(luò),沿邏輯單元的行和列分布。
6.如權(quán)利要求5所述的電路,其特征在于,所述總線網(wǎng)絡(luò)包括各塊內(nèi)部的本地總線組和跨過多個(gè)塊的直快總線組,任一組內(nèi)的本地總線可彼此連接,還可有選擇地連接到與該組相關(guān)的塊內(nèi)的邏輯單元上,直快總線有選擇地彼此連接和與本地總線連接,但不直接連接到任一邏輯單元上。
7.如權(quán)利要求6所述的電路,其特征在于,所述總線網(wǎng)絡(luò)還包括沿所述總線間隔設(shè)置一組中繼開關(guān)單元,并有選擇地把直快總線彼此連接和連接到相關(guān)本地總線上,還使連接到其上的直快總線,跨過一個(gè)以上的邏輯單元塊。
8.如權(quán)利要求7所述的電路,其特征在于,所述中繼開關(guān)單元沿所述塊之間的邊界以行和列對(duì)齊,因而,在中繼開關(guān)單元的所述行和列交叉的塊的角上留出空間,所述專用功能元件位于中繼開關(guān)單元的行和列交叉的所述空間內(nèi)。
9.如權(quán)利要求1所述的電路,其特征在于,所述專用功能元件包含存儲(chǔ)器結(jié)構(gòu)。
10.如權(quán)利要求9所述的電路,其特征在于,所述存儲(chǔ)器結(jié)構(gòu)包含隨機(jī)存取存儲(chǔ)器(RAM)。
11.如權(quán)利要求9所述的電路,其特征在于,所述存儲(chǔ)器結(jié)構(gòu)包含非易失性存儲(chǔ)器。
12.如權(quán)利要求9所述的電路,其特征在于,所述存儲(chǔ)器結(jié)構(gòu)包含雙部分存儲(chǔ)器,它具有單獨(dú)的讀和寫操作的地址輸入,還有進(jìn)行所述讀和寫操作用的單獨(dú)的數(shù)據(jù)總線。
13.如權(quán)利要求1所述的電路,其特征在于,所述專用功能元件包含專用的邏輯結(jié)構(gòu)。
14.如權(quán)利要求13所述的電路,其特征在于,所述專用邏輯結(jié)構(gòu)包含多路復(fù)用器。
15.一種現(xiàn)場可編程門陣列(FPGA),包含一組輸入和輸出端,一組總線,至少一些所述總線耦連到所述端子上,所述總線組包括一組本地總線、一組直快總線和一組把本地總線連接到所述直快總線上的中繼開關(guān)單元,以及多個(gè)可編程邏輯單元,每個(gè)單元連接到所述本地總線組上,其中每根直快總線連接到非連續(xù)中繼開關(guān)單元上。
16.如權(quán)利要求15所述的電路,其特征在于,所述邏輯單元以單元的行列矩陣形式布置,并組織成N×N的單元塊,其中所述中繼開關(guān)單元按每N個(gè)邏輯單元均勻間隔。
17.如權(quán)利要求16所述的FPGA,其特征在于,N=4。
18.如權(quán)利要求15所述的FPGA,其特征在于,直快總線對(duì)以交錯(cuò)的方式連接到中繼開關(guān)單元上,使連續(xù)的中繼開關(guān)單元交替地連接到所述對(duì)的不同直快總線上。
19.一種現(xiàn)場可編程門陣列(FPGA),包含彼此互連并連接到電路的輸入和輸出端上的可編程邏輯單元行列矩陣,矩陣中的每個(gè)邏輯單元在與該邏輯單元相同的行或列上有多至四個(gè)直接相鄰并正交的最鄰近邏輯單元,沿包括該邏輯單元的兩個(gè)在對(duì)角上的邏輯單元之一上有多至四個(gè)直接相鄰的在對(duì)角上最鄰近邏輯單元,每個(gè)邏輯單元具有到至少一個(gè)直接相鄰的正交最鄰近邏輯單元的直接單元至單元輸入連接,并具有到至少一個(gè)直接相鄰在對(duì)角上最鄰近的邏輯單元的直接單元至單元輸入連接,每個(gè)邏輯單元還具有到與其直接單元至單元輸入連接同組的最鄰近邏輯單元的直接單元至單元輸出連接,每個(gè)邏輯單元具有選擇所述正交直接單元至單元輸入連接之一的第一裝置和選擇所述對(duì)角直接單元至單元輸入連接之一的第二裝置。
20.如權(quán)利要求19所述的FPGA,其特征在于,每個(gè)單元具有至所有與其最鄰近的邏輯單元的直接單元至單元輸入連接和直接單元至單元輸出連接。
21.一種現(xiàn)場可編程門陣列(FPGA),包含可編程邏輯單元行列矩陣,矩陣中的每個(gè)邏輯在沿包括該邏輯單元的兩個(gè)對(duì)角上的單元之一上具有多到四個(gè)直接相鄰在對(duì)角上最鄰近的邏輯單元,每個(gè)邏輯單元把直接單元至單元輸入連接到每個(gè)與其在對(duì)角上最鄰近的邏輯單元,每個(gè)邏輯單元具有僅從所述對(duì)角直接單元至單元連接中選擇的裝置,以及包括水平和垂直總線的總線網(wǎng)絡(luò),沿單元的行和列分布,每個(gè)邏輯單元具有到至少一根水平總線和至少一根垂直總線的選擇總線連接。
22.如權(quán)利要求21所述的FPGA,其特征在于,矩陣中的每個(gè)邏輯單元在與該邏輯單元相同的行或列上還具有多至四個(gè)直接相鄰正交最鄰近的邏輯單元,每個(gè)邏輯單元還具有至每個(gè)與其正交的最鄰近邏輯單元的直接單元至單元輸入連接和直接單元至單元輸出連接。
23.一種現(xiàn)場可編程門陣列(FPGA),包含多個(gè)可編程邏輯單元,彼此互連并連接到電路的輸入和輸出端上,每個(gè)邏輯單元包括第一和第二查找表,每個(gè)查找表具有一組地址輸入和輸出,兩查找表的地址輸入從同一組單元輸入中接收信號(hào),每個(gè)邏輯單元還具有一個(gè)設(shè)置在其內(nèi)的與邏輯門,一對(duì)門輸入有選擇地連接到兩個(gè)單元輸入上,門輸出連接到兩查找表的一個(gè)地址輸入上,所述第一和第二查找表的輸出有選擇地連接到各第一和第二單元輸出上,每個(gè)邏輯單元還包括一個(gè)輸出多路復(fù)用器,該多路復(fù)用器有選擇地連接到第三單元輸出上,并具有第一和第二多路復(fù)用器輸入,連接到各第一和第二查找表輸出上,還具有有選擇地連接到額外單元輸入上控制輸入。
24.如權(quán)利要求23所述的FPGA,其特征在于,所述單元輸入和單元輸出包括在對(duì)角相鄰的邏輯單元之間的直接單元至單元連接,所述兩個(gè)單元輸入之一連接到所述“與”邏輯門的輸入端上,作為所述直接單元至單元連接之一。
25.一種現(xiàn)場可編程門陣列(FPGA),包含多個(gè)可編程邏輯單元,它們彼此互連并連接到電路的輸入和輸出端上,每個(gè)邏輯單元包含(a)一對(duì)查找表,每個(gè)查找表具有N個(gè)地址輸入和一個(gè)輸出,其中N為大于1的整數(shù),兩個(gè)查找表的N個(gè)地址輸入從同一單元輸入中接收信號(hào),(b)響應(yīng)于所述查找表對(duì)之一的額外單元輸入和輸出進(jìn)行動(dòng)態(tài)選擇的裝置,以有效地根據(jù)所述查找表對(duì)形成組合的(N+1)輸入查找表,(c)寄存至少一個(gè)所述查找表的輸出的裝置,以及(d)一對(duì)輸出選擇裝置,每個(gè)選擇裝置從(i)N輸入查找表的輸出,(ii)動(dòng)態(tài)選出的組合(N+1)輸入查找表的輸出以及(iii)所述查找表之一的寄存輸出中接收數(shù)據(jù)信號(hào),每個(gè)選擇裝置向單元輸出提供從接收到數(shù)據(jù)信號(hào)選出的一個(gè)信號(hào)。
26.如權(quán)利要求25所述的FPGA,其特征在于,還包含第三輸出裝置,以向連接到總線網(wǎng)絡(luò)上的另一單元輸出提供動(dòng)態(tài)選出的組合(N+1)輸入查找表的輸出。
27.一種現(xiàn)場可編程門陣列,包含彼此相連并連接到電路的輸入和輸出端的可編程邏輯單元行列矩陣,每個(gè)邏輯單元包括至少一個(gè)響應(yīng)于時(shí)鐘信號(hào)的同步單元,一組時(shí)鐘線,包括多根接收不同時(shí)鐘信號(hào)的主時(shí)鐘線和多根彼此相關(guān)的并有選擇地連接到邏輯單元特定列上的列時(shí)鐘線,每個(gè)列時(shí)鐘線有選擇地連接到所述主時(shí)鐘線中的任何線上,以從其接收選出的時(shí)鐘信號(hào),以及每個(gè)列時(shí)鐘線通過連接到該列時(shí)鐘線上的多根扇區(qū)時(shí)鐘線有選擇地連接到其特定相關(guān)的邏輯單元列上,每個(gè)扇區(qū)時(shí)鐘線連接到邏輯單元相關(guān)列內(nèi)的邏輯單元子組上。
28.一種現(xiàn)場可編程門陣列(FPGA),包含彼此互連并連接到電路的輸入和輸出端上的可編程邏輯單元行列矩陣,每個(gè)邏輯單元包括至少一個(gè)響應(yīng)于時(shí)鐘信號(hào)的同步元件,以及一組時(shí)鐘線,包括至少一根接收時(shí)鐘信號(hào)的主時(shí)鐘線、連接到所述至少一根主時(shí)鐘線并與邏輯單元特定列相關(guān)的多根列時(shí)鐘線,以及用于每根列時(shí)鐘線的多根連接到該列時(shí)鐘線的扇區(qū)時(shí)鐘線,每根扇區(qū)線連接到一列邏輯單元子集上并提供時(shí)鐘信號(hào)。
29.如權(quán)利要求28所述的FPGA,其特征在于,沿每個(gè)扇區(qū)時(shí)鐘線設(shè)置有選擇地反轉(zhuǎn)所述時(shí)鐘信號(hào)的裝置。
30.一種現(xiàn)場可編程門陣列(FPGA),包含彼此互連并連接到電路的輸入和輸出端上的可編程邏輯單元的行列矩陣,每個(gè)邏輯單元其內(nèi)包括至少一個(gè)寄存元件,它具有響應(yīng)一置位/復(fù)位信號(hào)置位/復(fù)位能力,以及一組控制線,包括接收所述置位/復(fù)位控制信號(hào)的一根全局置位/復(fù)位線、多根連接到所述全局置位/復(fù)位線并每個(gè)與邏輯單元的特定列相關(guān)聯(lián)的列置位/復(fù)位線以及用于每根列置位/復(fù)位線的連接到該列置位/復(fù)位線上的多根扇區(qū)置位/復(fù)位線,每根扇區(qū)設(shè)置/復(fù)位線連接到邏輯單元關(guān)聯(lián)列內(nèi)的邏輯單元子組上,并向它提供所述置位/復(fù)位控制信號(hào)。
31.如權(quán)利要求30所述的FPGA,其特征在于,沿每個(gè)扇區(qū)置位/復(fù)位線設(shè)置有選擇地反轉(zhuǎn)所述置位/復(fù)位控制信號(hào)的裝置。
32.如權(quán)利要求30所述的FPGA,其特征在于,每個(gè)邏輯單元具有有選擇地把所述置位/復(fù)位控制信號(hào)指定為置位信號(hào)或復(fù)位信號(hào)的裝置。
33.一種現(xiàn)場可編程門陣列(FPGA),包含多個(gè)輸入/輸出端,多個(gè)可編程邏輯單元,它們彼此互連并連接到所述輸入/輸出端上,把多個(gè)所述輸入/輸出端中的每個(gè)端子通過直接連接連到一個(gè)以上邏輯單元上的裝置,以及把多個(gè)所述邏輯單元中的每個(gè)單元通過直接連接連到一個(gè)以上輸入/輸出端的裝置。
34.如權(quán)利要求33所述的FPGA,其特征在于,多個(gè)所述輸入/輸出端中的每個(gè)端子不通過單元連接到總線網(wǎng)絡(luò)上。
35.一種現(xiàn)場可編程門陣列(FPGA),包含彼此互連的可編程邏輯單元的行列矩陣,一組連接到矩陣最外層邏輯單元的輸入/輸出端,每個(gè)輸入/輸出端直接連接到直接相鄰的邏輯單元和兩對(duì)角相鄰的邏輯單元的單元輸入上,矩陣中至少一些所述最外層邏輯單元連接到一個(gè)以上包括直接相鄰端的輸入/輸出端和至少一個(gè)對(duì)角相鄰的端子上。
36.如權(quán)利要求35所述的FPGA,其特征在于,所述邏輯單元通過布置在邏輯單元的行和列之間的總線網(wǎng)絡(luò)連接,至少一些所述輸入/輸出端連接到所述總線網(wǎng)絡(luò)上。
全文摘要
一種現(xiàn)場可編程門陣列,具有可編程邏輯單元(11;12)和本地和直快總線(19,21,23,25)總線網(wǎng)絡(luò)??偩€網(wǎng)絡(luò)有效地把矩陣分成單元塊(15),每個(gè)塊具有其自己不同的本地總線。直快總線利用中繼開關(guān)單元(27)延伸過一個(gè)以上的單元塊,中繼開關(guān)單元(27)還把本地總線連接到直快總線上。把單元分成塊,中繼器在塊之間邊界(13)上以行和列對(duì)齊,從而在塊的角上產(chǎn)生空間,可以用RAM塊(83)、其它存儲(chǔ)結(jié)構(gòu)、特殊邏輯結(jié)構(gòu)或連接到總線網(wǎng)絡(luò)上的其它專用功能元件填充。RAM塊(圖13)可以是單端或雙端SRAM(85),通過總線(86;178,179)尋址。RAM塊中相鄰的列對(duì)可以用同一組總線(圖14)來尋址。其它特殊或?qū)S眠壿嬕部梢蕴畛溥@些角空間。邏輯單元直接連接到相鄰單元,包括對(duì)角相鄰的單元(圖3),還連接到本地總線上。直快總線的結(jié)構(gòu)最好是交叉的,這樣,它們以另一種方式連接到非連續(xù)中繼器(27)上(圖11)。I/O端口(17)連接到矩陣周邊的單元和總線網(wǎng)絡(luò)上。較佳的是端口連接到一個(gè)以上的單元和一根以上的總線行或列上,每個(gè)周邊單元可以連接到幾個(gè)I/O端口的任何一個(gè)上(圖16,18,19)。
文檔編號(hào)H03K19/173GK1194702SQ97190570
公開日1998年9月30日 申請日期1997年5月9日 優(yōu)先權(quán)日1996年5月20日
發(fā)明者弗雷德里卡·C·富爾塔克, 馬丁·T·馬索, 羅伯特·B·盧金 申請人:愛特梅爾股份有限公司