專利名稱:非常精細(xì)顆粒的現(xiàn)場(chǎng)可編程門陣列結(jié)構(gòu)和電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到集成電路設(shè)計(jì)領(lǐng)域,特別是可編程門陣列。
門陣列集成電路在本技術(shù)領(lǐng)域中是很普通的,通過(guò)把預(yù)先定義和預(yù)先制造好的門陣列單元互相連接起來(lái)實(shí)現(xiàn),可以設(shè)計(jì)專用集成電路?,F(xiàn)場(chǎng)可編程門陣列(FPGA),使用通常的可編程器件,允許用戶使用地點(diǎn)上單元的互連的產(chǎn)生,或編程?;ミB可以通過(guò)熔絲,可選的開關(guān),存儲(chǔ)控制可用開關(guān)的圖案等等來(lái)產(chǎn)生。美國(guó)專利5 594 363“現(xiàn)場(chǎng)可編程門陣列中的邏輯單元和布線結(jié)構(gòu)”,由Freeman等人于1997年1月14日提交,附在本文的參考文獻(xiàn)中,該專利公布了一種基于非易失存儲(chǔ)單元值的單元之間布線的技術(shù),它包括連接選定垂直線與水平線的開關(guān)矩陣。典型地,設(shè)計(jì)者給定執(zhí)行功能的描述,以及判斷實(shí)現(xiàn)該功能的互連程序的計(jì)算機(jī)輔助設(shè)計(jì)(CAD)程序。這種描述可以是邏輯程序、數(shù)據(jù)流圖、狀態(tài)圖或者表、結(jié)構(gòu)設(shè)計(jì)語(yǔ)言中的一連串指令等等。
從設(shè)計(jì)描述到門陣列程序的轉(zhuǎn)換取決于門陣列的內(nèi)容。如果門陣列的單元是高級(jí)塊,例如計(jì)數(shù)器、奇偶產(chǎn)生器等類似的塊,那么所需程序量被約束在這些大的,或者粗糙顆粒單元之間的互連上。另一方面,如果門矩陣的單元是低級(jí)塊,例如門、鎖存器等,那么編程量顯著提高,因?yàn)檫@些較小的,或者精細(xì)顆粒的單元需要實(shí)現(xiàn)更高級(jí)功能的互連,例如前面提到的計(jì)數(shù)器和奇偶產(chǎn)生器。在一些設(shè)計(jì)中,通過(guò)應(yīng)用精細(xì)顆粒單元,可以達(dá)到較高的電路密度,因?yàn)檩^簡(jiǎn)單的功能可以由小的低級(jí)單元來(lái)實(shí)現(xiàn),而不是由那些其高級(jí)功能沒(méi)有得到使用的高級(jí)單元來(lái)實(shí)現(xiàn)。相反,一些復(fù)雜的設(shè)計(jì)不能在精細(xì)顆粒門陣列中有效地體現(xiàn),因?yàn)榈图?jí)單元之間所需互連的數(shù)目超過(guò)了門陣列的容量。在某些情況下,互連可以在門陣列的容量?jī)?nèi),但是這樣得到的低級(jí)單元之間的布線路徑超過(guò)達(dá)到目標(biāo)功能所需的傳輸延遲或者偏移約束。對(duì)于優(yōu)化操作,與特別功能相關(guān)的精細(xì)顆粒單元應(yīng)該一起放置,但當(dāng)這樣一起放置產(chǎn)生布線“瓶頸”時(shí),這通常要對(duì)功能塊的連接布線施加約束。
已經(jīng)提出來(lái)多種結(jié)構(gòu)來(lái)優(yōu)化電路密度、布線效率、功能操作約束等之間的折衷方案。例如,1991年3月19日授予Cliff等人的美國(guó)專利5 001 368“可構(gòu)造的邏輯陣列”,指出了僅含NAND門單元的門陣列結(jié)構(gòu)的不足,并且詳細(xì)說(shuō)明了在每個(gè)單元中加入一個(gè)附加電路以包含一鎖存器功能。在一般門陣列單元設(shè)計(jì)中需要鎖存功能是一個(gè)普遍的話題,因?yàn)槿绻纬涉i存器的器件經(jīng)過(guò)長(zhǎng)布線路徑,或者經(jīng)過(guò)中間緩沖器互連,引入的相移就能夠?qū)е骆i存器震蕩。典型的門陣列一般包含至少一個(gè)鎖存器,有時(shí)候更多。1991年10月8日授予Galbracth等人的美國(guó)專利5 055 718“具有構(gòu)造綜合和時(shí)序塊的邏輯模塊”,詳細(xì)說(shuō)明了一種結(jié)構(gòu)門陣列單元,它能實(shí)現(xiàn)從簡(jiǎn)單NAND功能到異步復(fù)位的邊沿觸發(fā)觸發(fā)器的“廣泛的多種”組合與時(shí)序邏輯功能。如上所述,不管實(shí)現(xiàn)的是簡(jiǎn)單NAND門或者復(fù)雜的觸發(fā)器,都要消耗同樣數(shù)量的單元面積。
為了減輕布線任務(wù),1998年3月11日授予Kean等人的U.S專利5 831 448“精細(xì)顆粒FPGA的功能單元”,詳細(xì)說(shuō)明了把可構(gòu)造門陣列單元組織成塊層次,例如4×4單元塊,4×4單元塊的4×4構(gòu)造等等。層次的每一層包含專屬該層的布線路徑,因此允許其布線策略是距離項(xiàng)的對(duì)數(shù)函數(shù)。前面提到的美國(guó)專利5 594 363也公開了層次布線電路通道的使用。市售FPGA的摩托羅拉MPA 1000系列提供了多功能結(jié)構(gòu)門陣列單元,此單元以10×10單元和諸如端口單元和時(shí)鐘分布單元的輔助組元區(qū)構(gòu)造成,該區(qū)被構(gòu)造成四個(gè)象限。布線路徑的層次為局域互連提供近鄰或者次近鄰單元之間的連接;中等互連提供區(qū)之間的互連;而全局互連提供四個(gè)象限以及全局信號(hào)和總線布線之間的互連。
盡管層次式布線對(duì)于管理互連復(fù)雜性很有效,但當(dāng)單元層次與設(shè)計(jì)中使用的功能層次不一致時(shí),固定的單元層次會(huì)導(dǎo)致失效,類似地,盡管通過(guò)包含諸如觸發(fā)器的中等復(fù)雜器件,多功能結(jié)構(gòu)單元減輕了布線任務(wù),但可達(dá)到的電路密度受設(shè)計(jì)中的低級(jí)動(dòng)能單元的數(shù)目的直接影響,因?yàn)闊o(wú)論如何簡(jiǎn)化,它們都將消耗一個(gè)中等復(fù)雜的中等尺寸單元。而且,當(dāng)由于所有可用布線路徑的約定而使可用邏輯元件不能接觸到其它邏輯單元,或者優(yōu)選的布線路徑不能接觸特定的邏輯單元時(shí),把面積劃分成邏輯單元區(qū)和布線路徑區(qū)也能導(dǎo)致失效。
本發(fā)明的目的是提供一種具有非常精細(xì)顆粒單元結(jié)構(gòu)的門陣列結(jié)構(gòu)。本發(fā)明的另一個(gè)目的是提供一種方便單元之間有效布線的門陣列結(jié)構(gòu)。本發(fā)明的另一個(gè)目的是提供一種支持用戶可定義的門陣列單元的門陣列結(jié)構(gòu)。本發(fā)明的另一個(gè)目的是提供一種方便創(chuàng)建用戶可定義宏單元的產(chǎn)生的門陣列結(jié)構(gòu)。
這些目的和其余的目的通過(guò)提供非常精細(xì)顆粒門陣列,和通過(guò)提供方便“門海”放置的單元布局和布線技術(shù)而實(shí)現(xiàn)。優(yōu)選門陣列單元包含一個(gè)仔細(xì)定義的“核心”元件,它的重復(fù)體現(xiàn)了最小未用勢(shì)的邏輯實(shí)施方案。在優(yōu)選實(shí)施方案中,門陣列單元包含一個(gè)雙輸入邏輯器件和一個(gè)帶緩沖器的級(jí)聯(lián)NAND門。NAND門從另一個(gè)單元接受一個(gè)級(jí)聯(lián)輸入,NAND門的級(jí)聯(lián)輸出提供作為其它單元的級(jí)聯(lián)輸入,以方便交叉耦合器件的有效實(shí)現(xiàn)。另一個(gè)優(yōu)選實(shí)施方案中,門陣列單元包含一個(gè)三輸入神經(jīng)單元。為了減輕布線任務(wù),在這些優(yōu)選實(shí)施方案中,每一個(gè)門陣列單元的輸出被預(yù)先穿線以方便到近鄰單元、次近鄰單元、與遠(yuǎn)處單元的每一個(gè)邏輯輸入的編程互連,以及上面所提到的到近鄰上下單元的級(jí)聯(lián)連接。這種構(gòu)造允許近鄰和次近鄰單元輕易地互相連接以形成相應(yīng)于更高級(jí)功能塊的宏單元。優(yōu)選實(shí)施方案中的門陣列并不包含清晰的布線通道;應(yīng)用與每一個(gè)門陣列單元成整體的預(yù)先穿線布線來(lái)實(shí)現(xiàn)布線。
以下參照附圖以舉例的方式來(lái)進(jìn)一步詳細(xì)解釋本發(fā)明。
圖1示出了根據(jù)本發(fā)明的范例門陣列單元邏輯圖。
圖2示出了根據(jù)本發(fā)明的范例多單元邏輯圖。
圖3示出了根據(jù)本發(fā)明的范例多單元觸發(fā)器結(jié)構(gòu)。
圖4示出了根據(jù)本發(fā)明的范例單元布線圖。
圖5示出了根據(jù)本發(fā)明的范例多單元布線圖。
圖6示出了根據(jù)本發(fā)明的范例輸出扇出布線圖。
圖7示出了根據(jù)本發(fā)明的范例變通門陣列單元邏輯圖。
圖8示出了根據(jù)本發(fā)明的范例布線路徑。
圖9示出了另一個(gè)根據(jù)本發(fā)明的范例變通門陣列單元邏輯圖。
圖10示出了根據(jù)本發(fā)明的具有近鄰單元區(qū)域的門陣列單元的范例根據(jù)本發(fā)明的門陣列單元的優(yōu)選實(shí)施方案,包含一個(gè)具有精心定義功能的核心元,它可以用做邏輯系統(tǒng)中的積木塊而不引入明顯的配置或者使布線無(wú)效。如本領(lǐng)域中眾所周知,只用NAND門或只用NOR門可以產(chǎn)生任何邏輯器件。然而,從諸如NAND門或NOR門的核心簡(jiǎn)單門單元的結(jié)合而產(chǎn)生的設(shè)計(jì),需要一定數(shù)目的布線路徑。如上所述,從復(fù)雜多功能單元產(chǎn)生的設(shè)計(jì)經(jīng)常使一定數(shù)目的門未被使用,每次諸如NAND或NOR功能的低級(jí)功能被放置在一個(gè)復(fù)雜多功能單元中以實(shí)現(xiàn)低級(jí)功能。因此,門陣列單元的優(yōu)選實(shí)施方案包含足夠的功能復(fù)雜性以使單元之間所需的布線最少,還提供一個(gè)功能上使未用的低級(jí)功能邏輯元最少的核心。
圖1示出了根據(jù)本發(fā)明這一情況的門陣列單元100的范例邏輯圖。單元100包含4個(gè)可編程的組元多路器110、120和140、以及搜索表130。多路器110、120和140中的每個(gè)分別有多個(gè)輸入101、102和103、以及一個(gè)單一輸出111、121和141。每個(gè)多路器的編程控制決定多個(gè)輸入中的哪一個(gè)與輸出相連。通常有多種技術(shù)可用來(lái)對(duì)多路器進(jìn)行編程。熔絲連接可以用來(lái)將各個(gè)輸入連接到輸出或從輸出斷開連接;旁路晶體管能形成由可編程存儲(chǔ)器件控制的開關(guān);同樣,電可擦除晶體管能夠形成可編程開關(guān),等等。
多路器110、120的輸出111、121形成到兩輸入搜索表130的輸入。對(duì)搜索表130進(jìn)行編程控制以產(chǎn)生輸入邏輯值四個(gè)組合的每個(gè)的所需輸出131。即,例如為實(shí)現(xiàn)AND功能,相應(yīng)于1-1輸入組合的表入口被編程至邏輯1,相應(yīng)于另三個(gè)輸入組合(0-0,0-1,1-0)的每個(gè)表入口被編程至邏輯0。因?yàn)樗兴膫€(gè)輸入組合只有一個(gè)可編程的結(jié)果輸出,故包含那些通常被描述成具有反相輸入的所有邏輯功能是可達(dá)到的。進(jìn)一步討論,圖3示出了多種編程控制邏輯功能。因此,如所示,多路器110和120以及搜索表130的編程控制提供了任何輸入101和任何輸入102的任何邏輯組合的實(shí)現(xiàn)。
把多路器140編程選為輸出141,兩個(gè)邏輯輸入152’和153’中的一個(gè),即固定邏輯1值。如下面進(jìn)一步討論,輸入152’的153’相應(yīng)于近鄰單元的中間輸出信號(hào),并方便交叉耦合門和級(jí)聯(lián)門的形成,它們對(duì)諸如觸發(fā)器,加法器,計(jì)數(shù)器等的多種更高級(jí)的邏輯塊來(lái)說(shuō)都是普通的。
NAND門150組合搜索表輸出131和多路器輸出141以形成中間輸出151。反相緩沖器160把中間輸出151反相形成單元輸出161。因?yàn)镹AND門150普遍用在級(jí)聯(lián)門布局中,為方便參考和理解,此處稱它為級(jí)聯(lián)門150,而它的輸出被稱為級(jí)聯(lián)輸出151。
圖1中分別示出了在級(jí)聯(lián)輸出151和單元輸出161處的扇出箭頭151-153、161-163。根據(jù)本發(fā)明,這些扇出箭頭用來(lái)說(shuō)明每個(gè)單元100的輸出151、161被預(yù)先穿線以提供其它單元的輸入101、102、103。圖2闡述了多個(gè)單元250、251、260、261、270和271的范例預(yù)先穿線結(jié)構(gòu)。相應(yīng)于圖1中單元輸出節(jié)點(diǎn)161的單元輸出260,在圖2中標(biāo)記為210,并提供近鄰單元261的輸入。這個(gè)單元輸出210也被預(yù)先穿線來(lái)提供分別到單元251、271、250和270的輸入211、212、213、和214。用同樣的方法,單元260的級(jí)聯(lián)輸出220被預(yù)先穿線以分別提供上面所提到的到單元250和270的級(jí)聯(lián)輸入221和222(圖1中的節(jié)點(diǎn)152’和153’)。根據(jù)本發(fā)明,門陣列包含多個(gè)重復(fù)單元,它們每個(gè)都有到其它單元的預(yù)先穿線扇出。單元260的范例扇出只是為了闡述,根據(jù)本公開內(nèi)容,對(duì)于本技術(shù)領(lǐng)域中的普通技術(shù)人員來(lái)說(shuō),各種變通安排是顯而易見(jiàn)的。一般說(shuō)來(lái),近鄰左右上下單元的預(yù)先穿線方便了諸如鎖存器和觸發(fā)器的低壓縮和中級(jí)邏輯塊的產(chǎn)生。圖2中所闡述的對(duì)角單元也被預(yù)先穿線,且如215和216的扇出線所示,較遠(yuǎn)分開的線也被預(yù)先穿線。用同樣的方法,從另一個(gè)單元到單元260的每個(gè)輸入被預(yù)先穿線,如從單元250的級(jí)聯(lián)輸出210和單元250的輸出240節(jié)點(diǎn)的輸入231、241所闡述。在優(yōu)選實(shí)施方案中,除了中間近鄰單元,單元輸出節(jié)點(diǎn)210、240的扇出延伸到左,右,上,和下每個(gè)方向中單元之外的2、4和8單元。
圖3闡述了圖2中單元的范例預(yù)先穿線扇出如何方便更高級(jí)邏輯塊300的產(chǎn)生,它是一個(gè)D觸發(fā)器,使用四個(gè)單元301-304。如上所述,為了產(chǎn)生邏輯塊300,對(duì)每個(gè)邏輯單元301-304中的每個(gè)多路器和搜索表進(jìn)行編程,以實(shí)現(xiàn)預(yù)期的邏輯功能。這個(gè)編程由圖3通過(guò)在每個(gè)邏輯多路器311-314、321-324、和341-344之內(nèi)連線,和通過(guò)相應(yīng)于每個(gè)單元301-304中的搜索表331-334的真值表331’-334’予以解釋。亦即,在單元301中,第一個(gè)多路器311把D 391輸入連接到搜索表331的第一個(gè)輸入,第二個(gè)多路器321把CLK 392輸入連接到搜索表331的第二個(gè)輸入。
搜索表331實(shí)現(xiàn)由真值表331’描述的邏輯功能。按照慣例,上面的多路器在真值表中稱為I1,其余的輸入是I2。在這個(gè)范例中,真值表331’相應(yīng)于一個(gè)簡(jiǎn)單的OR功能。因此,多路器311和321以及搜索表331的編程控制提供D 391(I1)和CLK 392(I2)的OR。用類似的方法,多路器313和323以及搜索表333的編程控制提供了CLK 392(I2)與D 391(I1)反相的OR。多路器312和322以及搜索表332的編程控制提供了單元301的輸出381(I1)與CLK 392(I2)反相的OR。而多路器314和324以及搜索表334的編程控制提供了單元303的輸出383(I1)與CLK 392(I2)反相的OR。未示出的是,CLK信號(hào)392可由門陣列的每個(gè)單元100內(nèi)預(yù)先穿線以便能夠存取的全局時(shí)鐘信號(hào)來(lái)提供。D信號(hào)391-392可來(lái)自其它單元,并可作為其它單元的輸出扇出被提供到每一個(gè)單元301、303。
圖3中闡述了多路器341-344的編程控制,如提供交叉耦合門。即,多路器341和343的編程控制提供級(jí)聯(lián)門351和353的交叉耦合,而多路器342和344的編程控制提供級(jí)聯(lián)門352和354的交叉耦合。單元302、303的輸出Q398,Q’399可分別顯示為一般正邊沿觸發(fā)的D觸發(fā)器的輸出,它具有時(shí)鐘CLK 392和數(shù)據(jù)輸入D 391。注意,根據(jù)本發(fā)明,每個(gè)單元的級(jí)聯(lián)輸出到每個(gè)上面和下面近鄰單元的級(jí)聯(lián)輸入的預(yù)先穿線提供了具有最小互連通道延遲的鎖存器的有效而緊湊的實(shí)現(xiàn)。
于是,通過(guò)定義一個(gè)能夠做為一類應(yīng)用積木塊的核心功能,如傳統(tǒng)時(shí)序邏輯設(shè)計(jì)的范例單元100的可編程半鎖存器功能,復(fù)雜的設(shè)計(jì)能夠以最少的單元之間布線數(shù)目和最少的未用低級(jí)功能邏輯數(shù)目得以生成。用同樣的方法,圖11中的范例單元900是包含神經(jīng)單元功能核的門陣列的實(shí)施方案,特別適合神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)。神經(jīng)單元900包含多個(gè)輸入多路器910、920…,供選擇到可編程權(quán)重表930的多個(gè)輸入信號(hào)911、921、…。與神經(jīng)網(wǎng)絡(luò)工藝相一致,每個(gè)輸入都被賦予一個(gè)在訓(xùn)練任務(wù)中能被調(diào)整的權(quán)重??删幊虣?quán)重表930的輸出951是相應(yīng)于邏輯值“1”的每個(gè)輸入信號(hào)的編程控制權(quán)重之和。這個(gè)和是多位值,如圖11中總和輸出端951上“M”位寬顯示所示。根據(jù)本發(fā)明,與單元100的級(jí)聯(lián)輸出152、153類似,權(quán)重表930的和輸出951扇出至近鄰單元(未示出),如M位輸出線952、953所示。閾值探測(cè)器960接受951和輸出,以及來(lái)自近鄰單元952’、953’的和輸出?;谳斎牒椭?51、952’和953’,控制970將參數(shù)提供給閾值探測(cè)器,以判斷何時(shí)“發(fā)射”。例如,把控制970編程以便控制在閾值探測(cè)器中使用和輸入952’還是使用和輸入953’。例如,如果總共有5個(gè)輸入信號(hào)911、921、…,近鄰輸出和信號(hào)952’和953’允許直到10個(gè)附加輸入信號(hào)來(lái)實(shí)現(xiàn)這個(gè)神經(jīng)單元900的發(fā)射。如果只有5個(gè)或者更少的輸入信號(hào)被連接到這個(gè)神經(jīng)單元900,則可編程控制970被編程用來(lái)控制閾值探測(cè)器忽略近鄰和輸入952’、953’。用同樣方法,把控制970編程以控制閾值,以便閾值探測(cè)器用來(lái)判斷是否維持發(fā)射信號(hào)961。根據(jù)本發(fā)明,輸出發(fā)射信號(hào)961把962扇出到其余鄰近和遠(yuǎn)鄰近單元,與單元100的輸出160類似,并形成其它單元900的輸入多路器910、920的輸入。用這種方法,多個(gè)單元900能夠有效地構(gòu)造形成神經(jīng)網(wǎng)絡(luò)?;诘湫偷嘏c傳統(tǒng)神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)相聯(lián)系的目標(biāo)結(jié)構(gòu)約束,可以判斷輸入多路器910、920的數(shù)目、扇出952、953的延伸、到閾值探測(cè)器960的和輸入952’、953’的數(shù)目、和信號(hào)951、952’或953’的位寬度、以及神經(jīng)單元900的其它參數(shù)。在優(yōu)選的實(shí)施方案中,提供5個(gè)輸入多路器910、920,每個(gè)有5個(gè)輸入,而和輸出951是8位寬,閾值探測(cè)器960接受3個(gè)和輸入951、952’或953’。注意,因?yàn)闄?quán)重表930是可編程的,并且控制970是可編程的,故可以通過(guò)單元900實(shí)現(xiàn)其它功能。尤其,通過(guò)把權(quán)重表編程控制至除一個(gè)以外的所有輸入為0,給所選輸入賦予最大權(quán)重,當(dāng)這個(gè)編程控制的最大的權(quán)重以輸入信號(hào)被接受時(shí),將控制器970編程以維持發(fā)射信號(hào)961,單元900能夠被編程為穿過(guò)扇出器件。用這種方式,按照要求,單元900的輸出961能夠使用被連接達(dá)及遠(yuǎn)處單元900的其它單元900之一。
在優(yōu)選的實(shí)施方案中,單元“布局”程序和門陣列有關(guān)。單元布局程序把門陣列的單元放置到設(shè)計(jì)的每個(gè)邏輯元處,使每個(gè)被放置單元都有合適的程序。根據(jù)本發(fā)明,通過(guò)允許諸如圖3中的D觸發(fā)器的預(yù)先定義邏輯塊,或者宏單元的定義,每個(gè)單元輸出的預(yù)先穿線扇出以及級(jí)聯(lián)輸入和輸出端連接的預(yù)先穿線,使布局和編程任務(wù)方便。如上所做的詳細(xì)說(shuō)明,當(dāng)設(shè)計(jì)中含有D觸發(fā)器時(shí),單元布局程序只對(duì)四個(gè)近鄰單元100布局并為每個(gè)多路器和搜索表做適當(dāng)編程控制。注意,這可以使諸如觸發(fā)器的較大邏輯塊緊湊而有效實(shí)現(xiàn),而不需對(duì)所有的門進(jìn)行固定的預(yù)先定位,直至這種較大的塊真正在設(shè)計(jì)中被采用,為了實(shí)現(xiàn)較大邏輯塊,這是需要的。例如,圖2中所闡述的六個(gè)單元能夠編程為包含一個(gè)D觸發(fā)器,或者不包含,這取決于本設(shè)計(jì)是否需要D觸發(fā)器的放置和產(chǎn)生。與在每個(gè)單元中包含預(yù)先構(gòu)造的D觸發(fā)器的傳統(tǒng)的較大顆粒門陣列單元結(jié)構(gòu)相反,例如,如果布圖程序所要完成的特殊設(shè)計(jì)不需要D觸發(fā)器,則圖3中包含D觸發(fā)器的四個(gè)單元中的每個(gè)都能夠設(shè)置以執(zhí)行其他的任務(wù)。用同樣的方法,通過(guò)放置近鄰單元900和適當(dāng)?shù)貙?duì)970控制進(jìn)行編程,使閾值探測(cè)器960根據(jù)這些多個(gè)輸入而發(fā)射,單元900使具有大量輸入的神經(jīng)單元得以有效布圖。相反地,只有幾個(gè)輸入的神經(jīng)單元可以被布置到單一的單元900,并適當(dāng)?shù)貙?duì)控制器970編程,使其忽略近鄰的單元,從而允許近鄰的單元被放置到其它的神經(jīng)單元處。
根據(jù)本發(fā)明的另一種情況,盡管圖2和3的布線圖暗示了單元之間布線通道的應(yīng)用,但是消除了存在于每個(gè)單元中的布線和傳統(tǒng)的布線通道。圖4顯示了根據(jù)本發(fā)明的單元400的集成單元布線版圖,而圖5和6顯示了單元接頭處的布線結(jié)構(gòu),它不需預(yù)先定義布線通道。因?yàn)檫壿媶卧梢苑胖玫綀D5中任何物理單元400處而不必考慮預(yù)布線區(qū)域,鄰接單元的相鄰區(qū)域被稱為“單元?!?。圖10顯示了門陣列800的范例實(shí)施方案,根據(jù)本發(fā)明,門陣列單元800擁有相鄰單元810的區(qū)域。圖10中還顯示了傳統(tǒng)的輸入/輸出單元840和其它范例電路塊820、830。
圖4中顯示了單元400的輸出節(jié)點(diǎn)Q 461,它相應(yīng)于圖1中邏輯單元100的邏輯輸出節(jié)點(diǎn)161。為了方便參考和理解,圖1中的邏輯單元100此處被用來(lái)闡述本發(fā)明互連布線方面的原則。由后來(lái)的公開內(nèi)容來(lái)看,正如本領(lǐng)域中的普通技術(shù)人員所知,諸如神經(jīng)單元900之類的其它核心單元能夠被類似地構(gòu)造以實(shí)現(xiàn)本發(fā)明的這種情況。
連接到單元400的節(jié)點(diǎn)461的,是四部分線段461R、461U、461L、和461D,它們分別提供從節(jié)點(diǎn)461到右、上、左、和下方向的連接??邕^(guò)單元400引入的線的拐點(diǎn)提供接點(diǎn)461上的信號(hào)傳輸?shù)浇弳卧系倪m當(dāng)接點(diǎn)。例如單元400中的線461D與線471D垂直對(duì)準(zhǔn)。線471D被連接到節(jié)點(diǎn)401A,它相應(yīng)于圖1的單元100的輸入信號(hào)101。當(dāng)這個(gè)單元400橋接到它下面的另外一個(gè)單元時(shí),單元400中的在461D處的輸出信號(hào)461經(jīng)過(guò)其它單元相應(yīng)的線471D和節(jié)點(diǎn)401A被連接到其它單元的輸入信號(hào)101上。圖6闡述了根據(jù)本發(fā)明的單元輸出信號(hào)461到近鄰單元的結(jié)果扇出。圖6中黑實(shí)線闡述了當(dāng)單元橋接時(shí)被電連接到節(jié)點(diǎn)461的線;帶陰影的單元闡述了每個(gè)被扇出連接的單元。例如,沿著向下的路徑,單元400A的節(jié)點(diǎn)461,在471處被連接到下邊緊鄰單元400B的輸入節(jié)點(diǎn),在481處被連接到對(duì)角近鄰單元400C,而在491處被連接到較遠(yuǎn)單元400D。如上面所說(shuō),例如,預(yù)先穿線布線能夠延伸超過(guò)491而連接到遠(yuǎn)處單元即4、8等單元,它們都是400A以下的單元。注意每個(gè)單元的每個(gè)輸出節(jié)點(diǎn)的扇出被類似地預(yù)先穿線,如以相應(yīng)于單元400X的輸出節(jié)點(diǎn)461’的節(jié)點(diǎn)471’、481’、491’所闡述;連接到節(jié)點(diǎn)461的黑實(shí)線只是被提出來(lái)用做說(shuō)明的。相應(yīng)于圖1中邏輯單元100的級(jí)聯(lián)輸出152和153以及級(jí)聯(lián)輸入152’和153’的圖4中單元400的預(yù)先穿線節(jié)點(diǎn)452、453、452’和453’,提供了近鄰垂直單元之間的級(jí)聯(lián)連接,但是為了清晰起見(jiàn),在圖6中沒(méi)有示出。
注意,如圖5和10所示,通過(guò)提供橋接單元的相鄰區(qū)域,對(duì)于門陣列來(lái)說(shuō)并沒(méi)有預(yù)先定義結(jié)構(gòu)的層次。亦即,在物理約束區(qū)域和四個(gè)象限中的區(qū)域等等之中沒(méi)有單元。然而,通過(guò)預(yù)先定義能夠?qū)崿F(xiàn)諸如D觸發(fā)器300或者是諸如同步計(jì)數(shù)器的更加復(fù)雜功能的邏輯功能層次的單元的安置,由本發(fā)明可以獲得層次布局的優(yōu)勢(shì),因?yàn)榘鎴D層次是按命令產(chǎn)生的,它對(duì)應(yīng)于被編程控制的專門設(shè)計(jì)的要求。亦即,由用戶所定義的在門陣列邏輯設(shè)計(jì)中使用的每個(gè)D觸發(fā)器或者任何宏單元,在可編程門陣列中具有其相應(yīng)的宏版圖結(jié)構(gòu)。
單元布線和邏輯的變通結(jié)構(gòu)對(duì)于本領(lǐng)域中的普通技術(shù)人員來(lái)說(shuō)是顯而易見(jiàn)的。例如,圖7闡述了類似于圖1中單元100的單元500。單元500包含兩個(gè)附加的緩沖器510、520和一個(gè)三輸入可編程多路器550,該多路器選擇是使用緩沖器510、520之一的輸出511、521還是使用級(jí)聯(lián)門150。當(dāng)選擇級(jí)聯(lián)門150時(shí),單元500的操作與上面所討論的單元100相同。選擇緩沖器510和520之一,使所選輸入信號(hào)101、102分別通過(guò)多路器110、120實(shí)現(xiàn)直接傳輸?shù)捷敵鼍彌_器160。這樣,單元500能夠被構(gòu)造成提供重新構(gòu)成和傳輸輸入信號(hào)101、102到輸出161的“中繼器”的功能,與上面描述的單元900的通過(guò)扇出功能類似。這個(gè)中繼器功能能夠被用來(lái)分散諸如局部時(shí)鐘發(fā)生器的高扇出門上的負(fù)載,或者用來(lái)避免信號(hào)沿著長(zhǎng)的路線傳輸?shù)乃p。
圖8闡述了根據(jù)本發(fā)明的范例布線路徑,它應(yīng)用前面提到的單元500的中繼器功能,它沿著延伸的距離傳輸信號(hào)。圖8中假設(shè)在單元600的輸出節(jié)點(diǎn)661產(chǎn)生的信號(hào)601需要跨過(guò)在位置601A、601B和601C上可用的多個(gè)單元傳輸。布線605的第一段利用了單元600的輸出節(jié)點(diǎn)661的扇出路徑,到達(dá)位置601C。在單元610處,從輸出節(jié)點(diǎn)661的布線路徑終止。如單元610處的虛線所示,單元610被構(gòu)造成中繼器單元,把信號(hào)601傳輸?shù)絾卧?10的輸出節(jié)點(diǎn)。從單元610的輸出的預(yù)先穿線的線段615,在單元620處終止,它也被構(gòu)造成中繼器單元,以便把信號(hào)601傳輸?shù)絾卧?20的輸出節(jié)點(diǎn)。預(yù)先穿線的布線線段和中繼器單元的這一時(shí)序通過(guò)中繼器單元630、640,被傳送到位置601A,并通過(guò)中繼器單元630、650、660,被傳送到位置601B。于是,用這種方法,只要在每個(gè)中繼器單元處恢復(fù),信號(hào)能夠通過(guò)門陣列傳輸而不必使用專門的布線通道。注意,在優(yōu)選的實(shí)施方案中每個(gè)單元輸出的預(yù)先穿線扇出延伸到8個(gè)單元或者更遠(yuǎn)的距離,因此,中繼器單元位置的數(shù)目要比圖8范例所示的明顯更少。
前面只闡述了本發(fā)明的原則,因此,本領(lǐng)域中的技術(shù)人員可以理解,能夠設(shè)計(jì)各種各樣盡管此處未明確描述的體現(xiàn)本發(fā)明的原則并因此在本發(fā)明的構(gòu)思和范圍之內(nèi)的安排。例如,圖9闡述了一種變通的單元設(shè)計(jì)700,它提供了改善的中繼器單元性能。與圖7中的單元500相比較,相比于單元500的三個(gè)輸入的多路器550,單元700有一個(gè)7輸入的多路器750。多路器750的附加輸入是來(lái)自被距離長(zhǎng)的水平或者垂直距離分隔的各單元的輸出信號(hào),如由更遠(yuǎn)上邊701、更遠(yuǎn)右702、更遠(yuǎn)下703、和更遠(yuǎn)左704輸入信號(hào)標(biāo)志所示。在單元700中沒(méi)有單元500的緩沖器510和520,單元700中的輸出緩沖器760是非反相的。就象在本領(lǐng)域中普遍的那樣,非反相緩沖器760包含兩個(gè)反相器(未示出)第一個(gè)反相器以一定的尺寸設(shè)計(jì)使在輸入線701-704上有最小負(fù)載,而第二個(gè)反相器以一定的尺寸設(shè)計(jì)向輸出線761提供足夠的驅(qū)動(dòng)能力。
其它的變通也是明顯的。例如,門陣列單元100的特殊邏輯構(gòu)造可以用例如NOR門作為級(jí)聯(lián)邏輯器件150,或者是另外一個(gè)可編程搜索表作為級(jí)聯(lián)器件150來(lái)進(jìn)行修正。同樣,只要級(jí)聯(lián)緩沖器有足夠的驅(qū)動(dòng)容量來(lái)驅(qū)動(dòng)輸出節(jié)點(diǎn)扇出,輸出緩沖器160就能夠是一個(gè)“透明的緩沖器”,或僅僅是線。從本發(fā)明來(lái)看,對(duì)于本領(lǐng)域中的技術(shù)人員來(lái)說(shuō),這些和其它的結(jié)構(gòu)的修正是顯而易見(jiàn)的并包含在下面權(quán)利要求的范圍之內(nèi)。
權(quán)利要求
1.一種集成電路,它包含多個(gè)相鄰單元多個(gè)相鄰單元的每個(gè)單元(400)包含至少一個(gè)邏輯器件(130,150,160),該邏輯器件基于至少一個(gè)輸入信號(hào)(101,102)而提供輸出信號(hào),以及每個(gè)單元(400B)包含多個(gè)布線路徑,其中至少一條布線路徑提供多個(gè)相鄰單元的第一近鄰單元(400A)的輸出(461)到另一個(gè)單元(400C,400D)的輸入(491)之間的通信路徑。
2.根據(jù)權(quán)利要求1的集成電路,多個(gè)單元中每個(gè)單元(100,400,500,700)包含可編程以接受多個(gè)第一輸入信號(hào)(101)之一和從其中提供第一邏輯輸入(111)的第一多路器(110),可編程以接受多個(gè)第二輸入信號(hào)(102)之一和從其中提供第二邏輯輸入(121)的第二多路器(120),可操作耦合到第一多路器(110)和第二多路器(120)的可編程邏輯器件(130),它提供取決于第一邏輯輸入(111)和第二邏輯輸入(121)的第一邏輯輸出(131),可編程以接受多個(gè)第三輸入信號(hào)(103)之一和從其中提供級(jí)聯(lián)邏輯輸入(141)的第三多路器(140),可操作耦合到可編程邏輯器件(130)和第三多路器(140)的級(jí)聯(lián)邏輯器件(150),它提供取決于級(jí)聯(lián)邏輯輸入(141)和第一邏輯輸出(131)的級(jí)聯(lián)輸出(151),以及可操作耦合到級(jí)聯(lián)邏輯器件(150)的輸出緩沖器(160),它提供可操作耦合到多個(gè)其它單元的單元邏輯輸出(161,210,461,661),并構(gòu)造形成多個(gè)單元中至少一個(gè)其它單元(250)的多個(gè)第一輸入信號(hào)的第一輸入信號(hào)(213)。
3.根據(jù)權(quán)利要求2的集成電路,可編程邏輯器件包含可操作耦合到第一多路器(910)和第二多路器(920)的可編程權(quán)重表,它提供取決于第一邏輯輸入(911)的和輸出(951)、與第一邏輯輸入(911)相關(guān)的編程第一權(quán)重、第二邏輯輸入(921)、和與第二邏輯輸入(921)相關(guān)的編程第二權(quán)重,以及提供取決于和輸出(951)的輸出信號(hào)(961)的閾值探測(cè)器(960)。
4.權(quán)利要求2的集成電路,其中每個(gè)單元(100,400,500,700)的級(jí)聯(lián)輸出(151,220)被操作耦合到至少一個(gè)其它單元(250)的多個(gè)第三輸入信號(hào)(103)中的至少一個(gè)(221)。
5.權(quán)利要求2的集成電路,其中多個(gè)單元中每個(gè)單元(100,400,500,700)進(jìn)一步包含多條單元布線路徑(162,163),當(dāng)單元(100,260,400,500,700)橋接到至少一個(gè)其它單元(250)時(shí),它們可將單元邏輯輸出(161,461,661)操作耦合到至少一個(gè)其它單元的第一輸入信號(hào)。
6.權(quán)利要求5的集成電路,其中多個(gè)單元中的每個(gè)單元(100,400,500,700)的邏輯輸出的可操作耦合只由多個(gè)單元布線路徑(162,163)實(shí)現(xiàn)。
7.權(quán)利要求2的集成電路,其中在可編程門陣列(800)內(nèi)的多個(gè)單元,形成單元(810)的單一相鄰區(qū)域。
8.權(quán)利要求1的集成電路,其中多個(gè)相鄰單元的至少一個(gè)單元(610)的可編程器件(130)被構(gòu)造成產(chǎn)生等于輸入信號(hào)的輸出信號(hào),從而提供中繼器單元,它方便了輸入信號(hào)傳輸?shù)竭h(yuǎn)距離的其它單元。
9.權(quán)利要求1的集成電路,其中每個(gè)單元(400B)在第一方向上具有第一相鄰單元(400A),并在垂直于第一方向的第二方向上具有第二相鄰單元(400C),且多個(gè)相鄰單元被構(gòu)造成使每個(gè)單元(400B)與它的第一相鄰(400A)橋接,且每個(gè)單元(400B)與它的第二相鄰(400C)橋接,從而形成相鄰單元的二維陣列。
10.權(quán)利要求4的集成電路,進(jìn)一步包含多個(gè)單元布線路徑(152,153,162,163),它們方便了級(jí)聯(lián)輸出(151)到其它可編程邏輯單元(250)的連接(220-221),單元邏輯輸出(161,461,661)到其它可編程邏輯單元(250)的連接(210-213),從其它可編程邏輯單元(250)的邏輯輸出節(jié)點(diǎn)(240)到多個(gè)第一輸入信號(hào)(101)和多個(gè)第二輸入信號(hào)(102)中至少一個(gè)的連接(240-241),以及從相同的其它可編程邏輯單元(250)的級(jí)聯(lián)輸出節(jié)點(diǎn)到多個(gè)第三輸入信號(hào)(103)中的至少一個(gè)的連接(230-231)。
11.權(quán)利要求10的集成電路,進(jìn)一步包含可操作耦合到級(jí)聯(lián)邏輯器件(150)和輸出緩沖器(160)的第四多路器(550,750),它能夠被編程以接受級(jí)聯(lián)輸出(151)和至少一個(gè)第四輸入信號(hào)(511,521,701-704)中的一個(gè),并從其中向緩沖器(160)提供單元邏輯輸出(161,461,661)依賴的輸入。
全文摘要
提供了一種非常精細(xì)顆粒的門陣列單元,該單元包含一個(gè)兩輸入邏輯器件和一個(gè)帶有緩沖輸出的級(jí)聯(lián)NAND門。NAND門從另一個(gè)單元接受一個(gè)級(jí)聯(lián)輸入,而NAND門的級(jí)聯(lián)輸出被提供作為其它單元的級(jí)聯(lián)輸入,以方便交叉耦合器件的有效實(shí)現(xiàn)。每個(gè)單元包含集成的方便“門?!辈紙D方法的布線路徑。為了減輕布線任務(wù),每一個(gè)門陣列單元的輸出被預(yù)先穿線,以方便到近鄰單元、次近鄰單元、以及遠(yuǎn)處單元的每一個(gè)邏輯輸入的編程互連,和上面所提到的到近鄰上下單元的級(jí)聯(lián)連接。這種構(gòu)造使近鄰和次近鄰單元能夠容易地互連以形成與更高級(jí)功能塊一致的宏單元。門陣列不包含明顯的布線通道;應(yīng)用與每一個(gè)門陣列單元成整體的預(yù)先穿線布線來(lái)實(shí)現(xiàn)布線。
文檔編號(hào)H03K19/173GK1321359SQ00801917
公開日2001年11月7日 申請(qǐng)日期2000年7月12日 優(yōu)先權(quán)日1999年7月16日
發(fā)明者R·L·克萊因 申請(qǐng)人:皇家菲利浦電子有限公司