專利名稱:具有構造塊的集成電路的制作方法
技術領域:
本發明與一種集成電路有關,這種集成電路包括多個基本相同的相互連接的構造塊(building block),它們分布在規則的網格上,每個構造塊包括邏輯單元;耦合到該邏輯單元上的第一路由裝置,用于該邏輯單元與網格上第一方向的另一個第1邏輯單元之間的數據通信;耦合到該邏輯單元上的第二路由裝置,用于該邏輯單元與網格上第二方向的另一個第二邏輯單元之間的的數據通信;以及開關裝置,用于耦合第一路由裝置到第二路由裝置。
在半導體領域,人們進行了大量的努力來創造多種集成電路。因為集成電路(IC)以及帶有這種電路的電子設備的花費都在增長,迫切需要能完成多個任務的集成電路,以盡可能再次利用該硬件。這個目標的一種可能的實現是通過使用可重配置的IC,如現場可編程門陣列(FPGA)。這種電路通常包括多個構造塊,該構造塊包含一個能夠執行多個任務的可編程邏輯單元,以及可編程的路由硬件以提供構造塊之間的相互連接或路由網絡。通常這些構造塊以規則的方式排列,如網格,以保證這些不同的構造塊之間的相互連接距離較短,這有助于IC的性能提高。很重要的一點是路由網絡盡可能完備,如構造塊之間的數據路徑應盡可能保持較短,因為這樣減少了構造塊之間數據傳輸對IC性能的影響。
設計這種IC的復雜性在于,盡管該網格總的對稱性很高,構造塊本身的對稱性通常很低。例如,構造塊在一條邊上有路由裝置以在第一方向上向或從路由邏輯單元轉發數據,在構造塊的第二邊上還有另一個路由裝置,以在第二方向上向或從路由邏輯單元轉發數據。這意味著該構造塊的其它邊缺少路由硬件,這將在網格的邊緣上產生路由問題,這些邊緣是由缺少路由資源的構造塊的邊緣組成的,特別地,如果那些構造塊要求與網格外的數據進行通信更是這樣。有時這意味著有些任務不能映射到該IC上,因為這個特殊的任務所要求的路由的基礎結構不可用。雖然該問題可以通過在其所有邊上用路由硬件擴展該構造塊來解決,但是這種解決方案被認為是不符合需要的,因為它大大增加了硅的面積,這既增加了IC的復雜度,也增加了IC的復雜性和開銷。
專利US 6002268提供了該問題的一個解決方案,即公開一個在FPGA的網格周圍用填充幀(padframe)擴展的FPGA。這些填充幀的專門任務是在網格的構造塊和網格外的I/O單元之間提供路徑連接。這是一個缺點,因為這些填充幀增加了硅的面積而僅僅提供有限的功能。應當指出的是,設計可重配置的邏輯設計的主要瓶頸之一是相比于專有設備,其有效面積更小,這強調了需要增大有效面積的解決方案來解決前面提到的路由問題。
尤其地,本發明的目標是根據開篇段落所述,提供一種具有更多的圍繞在網格周圍的多用路由功能的集成電路。
本發明由獨立權利要求所描述。附屬的要求定義了有利的實施例。
本發明基于如下認識具有重復結構的集成電路可以通過結合構造塊來設計,以形成所期望的IC。主要的設計重點在于構造塊的設計,該構造塊應當能夠執行多個所期望完成的任務。這包括邏輯單元的設計,也包括第一和第二路由裝置的設計。在這完成之后,通過組合構造塊,以類似瓷磚(tile-like)的形式,直接構造網格。從而,形成了該網格的第一邊的組合的這些構造塊的第一路由裝置和形成了該網格的第二邊的組合的這些構造塊的第二路由裝置組合成圍繞該網格的部分路由網絡。該路由網絡通過應用路由單元,如路由塊來完成,以連通到沒有被部分路由網絡所覆蓋的網格的邊緣,該部分路由網絡由第一和第二路由裝置組合而成。這個方案有如下的優點,即該路由網絡可以很容易地通過組合路由硬件而形成,這些路由硬件是現成的,具有專門的路由塊,它們生成一種路由網絡,可以同時用在網格內和網格外的通信。開關單元完善路由網絡,開關單元具有將路由網絡的某一部分耦合到另一部分的功能。這個開關單元可以是一個獨立的塊,但也可以被集成到某個路由單元中,或者該網格的構造塊中,它通常將多個路由單元的子集耦合到多個構造塊的第一和第二子集之一。
應當強調的是,盡管包含額外的路由單元和開關單元增加了要設計的構造塊的數量,但這不是一個缺點,因為路由單元和開關單元具有相對較低的復雜性。因此,它們可以很快地被設計出來,而且由于它們的可用性減少了開發構造塊所要求的設計工作,總的設計工作并不一定增加。另外,因為該網格可以使用單一類型的構造塊,該IC的可擴展性得到增強,在涉及設計重用時這是一個很重要的優點。
如果這些多個路由單元中的每一個被排列為至少連接網格上的一個相鄰邏輯單元到網格外的硬件,這是有利的。雖然路由單元可以被用來升級網格上的路由功能,而路由單元更適合用來改善網格上的構造塊和網格外的硬件之間的路由。這增加了IC的靈活性,允許在IC上映射范圍更大的任務。應當指出的是,一個路由單元可以被用來為多個構造塊提供路由,即幾個構造塊可以共享一個路由單元。
另外一個有利的地方是,如果集成電路進一步包括多個相互連接單元,它們被排列用來連接從第一子集和第二子集的構造塊到網格外的硬件。
雖然連接構成第一和第二子集的構造塊到網格外的硬件的互連硬件可以被包含在這些構造塊中,但人們更愿意通過獨立的互連單元的方式來提供這些互連硬件,如提供這種互連硬件的磚(tile)。這具有以下優點,即構成網格的構造塊可以保持盡可能的相似。顯然,這樣的互連功能最好出現在路由單元覆蓋的網格的邊緣上。額外的互連單元可以被用在那些邊緣上,盡管人們更愿意將互連功能集成進路由單元。
如果這里的開關裝置包括多個可編程開關,又是另一優點。
在開關裝置中包括可編程開關使得該開關裝置可重復配置。因此,通過第一路由裝置和第二路由裝置的不同構造塊之間的網格上的路由變得非常靈活,從而通過允許在IC上映射更大范圍的任務而進一步增加了IC的靈活性。
本發明的另一實施例中,構造塊具有基本上是矩形的形狀;這些多個路由單元包括路由單元的第一個子集,用于經由矩形形狀的第一邊集成構造塊的第三子集到路由網絡;路由單元的第二個子集,用于經由矩形形狀的第二條邊集成構造塊的第四子集到路由網絡;第一條邊在長度上不同于第二條邊。
如果構造塊不是正方形而是矩形,則有必要使用多于一個的路由單元的大小來避免映射(mapping)即布局(layout)。顯然,路由單元的寬度通常是由面向網格邊緣的構造塊的寬度定義的。對于矩形的構造塊,這導致了路由單元的兩個子集,它們的寬度分別匹配構造塊的邊的尺寸。
電子設備,如芯片上的系統,所要求的性能越來越高,不僅是在速度方面,而且在功能的多用性方面。在這樣的設備中包含根據本發明的集成電路可以改善該設計的功能多用性,因為多個任務可以被映射到IC上。因此,該電子設備只需要較少的專用硬件,這減少了該電子設備的硅的實際用量,從而,生產這樣一個設備,可以比缺少根據本發明的IC的設計花費要少。
本發明的設計方法允許直接設計具有很高對稱性網格的IC,這減少了設計IC的工作量,特別是當路由單元和開關單元可以作為磚(tile)被加到網格中,尤其適合使用具有某種功能描述的圖形用戶界面。因此,通過該種方法開發的IC的上市時間減少了,這是一個很重要的優點。
本發明參照附圖,通過非限定性的示例的方式進行詳細說明,其中
圖1說明具有這種構造塊的IC的示例構造塊;圖2a-2c說明依照本發明的不同類型的路由單元;圖3顯示根據本發明的周圍路由網絡的IC;圖4顯示根據本發明的周圍路由網絡的另一個IC;圖5說明具有根據本發明的IC的電子設備。
圖1顯示一種可重復配置電路的網格的構造塊100,如像FPGA一樣的具有細密粒度的設備,或者一種較粗糙粒度的可重復配置電路。通常構造塊100包括邏輯單元120,該邏輯單元能夠執行多個任務,可以通過配置該邏輯單元120來從這些任務中選擇任務。構造塊100的邏輯單元120通過一個連接盒(connection box)150V耦合到第一路由網絡130,以激活與網格中其它構造塊在第一方向,如垂直方向,的數據通信。另外,邏輯單元120通過一個連接盒150H被耦合到第二路由網絡140,以激活與網格中其它構造塊在第二方向,如水平方向,的數據通信。第一路由網絡130和第二路由網絡140通過位于開關盒160內的多個可編程開關162耦合在一起。使用可編程開關使得可以配置網格的路由,即構造塊之間的數據通信連接。構造塊100進一步包含多個互連122,用于在網格上將該構造塊耦合到其它構造塊。
應當強調的是,構造塊100的體系結構只是作為非限制性的示例。其它的眾所周知的用于規則網格的構造塊的體系結構同樣是可接受的,這不會偏離本發明的教導。另外,對于那些本領域的技術人員來說,應當認識到,由路由網絡130、140和開關盒160組成的路由結構是高度示意性的描述,并作為非限制性的示例;可以想出更加復雜的結構,其中可以呈現單向的、雙向的和緩沖的路由結構,而不超出本發明的范圍。
可重配置電路的網格更適合由基本相同的構造塊構成,如構造塊100,因為這只需要少量的設計工作。但是,如在圖1中所看到的那樣,這種構造塊通常是非對稱的,因為路由網絡130和140只覆蓋構造塊100的兩條邊。這種非對稱性將反映到網格中,它也是基本非對稱的,從而導致在由構造塊的邊組成的網格的邊緣缺少路由硬件,這些構造塊未被路由網絡覆蓋。因此,直到現在,可重配置電路的網格是使用多種類型的構造塊來構造的,以確保實現網格上的完整的路由網絡,或者是使用專有的環繞網格的路由網絡,以避免因使用單一類型的構造塊100而導致的在網格邊緣上的路由問題。
然而,使用如圖2a-2c所描述的本發明的單元,使得可以應用單一類型的構造塊100,而不需要使用專有的環繞網格的網絡,因為使用這些邏輯單元解決了網格上未被覆蓋的邊的路由問題。在圖2a中描述了一種路由單元。該路由單元200包括路由線路210,它耦合到開關單元230,其包括可編程開關232。這樣的開關單元230也可以用作獨立的構造塊,以互相連接相鄰的路由單元,雖然這樣做有著增加不同類型構造塊的數目的缺點。另外,路由單元200包含連接盒220,以連接構造塊100的一個邏輯單元到路由單元200。路由單元200最好具有互連240,以連接環繞網格的路由網絡到網格外的硬件,雖然這個功能也可以通過使用互連單元實現(如下展示)。應當強調,如在圖2a中所描述的路由單元200的布局與邏輯單元100的路由體系結構相一致,這只是作為示例。顯然,如果邏輯單元100的路由體系結構改變,路由單元200的結構也相應改變(如在下面所展示的那樣)。
在圖2b中,顯示了包括可編程開關252的開關單元250。這樣的開關單元可以用作互連環繞網格的路由網絡的不同段。在首選的解決方案中,只需要一個開關單元250來完成環繞網格的路由網絡。應當強調,開關單元250可以集成到路由單元200中,這不會超出本發明的范圍。
在圖2c中,顯示了互連單元260。這樣一個互連單元可以用來互連網格邊緣上的構造塊100到網格外的硬件。互連單元260可以集成到網格邊緣上的構造塊100中。這將使得這些構造塊100與網格中的其它構造塊基本相同。然而,最好是讓互連單元260作為自治單元,以便只設計單一類型的構造塊100。另外,如果這些單元本身缺少這樣的功能,互連單元可以在由路由單元200覆蓋的網格邊緣作為自治單元。
在圖3中展示了圖2中所描述的不同單元與圖1中所描述的構造塊形成的網格的示例組合。集成電路300具有多個構造塊100a-i,它們被組織在一個規則的網格上。構造塊100a,d,g,100b,e,h和100c,f,i的第一路由網絡通過構造塊100a-i各自的開關單元形成了垂直方向的路由結構。構造塊100a,b,c,100d,e,f和100g,h,i的第二路由網絡通過構造塊100a-i各自的開關單元形成了水平方向的路由結構。各個構造塊100a-i的非對稱特征反映在所形成的IC 300的網格的非對稱性上。該網格在其上邊緣和左邊緣缺少路由結構。
現在,根據本發明,已經呈現在網格邊緣的路由結構被用來組成環繞整個網格的路由網絡280。路由網絡280的第一部分由路由結構330組成,它包括多個構造塊,即構造塊100c,f,i,的第一子集的第一路由網絡。路由網絡280的第二部分由路由結構340組成,它包括多個構造塊,即構造塊100g-i,的第二子集的第二路由網絡。另外,通過將路由單元200耦合到構造塊100a-c的上邊緣和構造塊100a,d,f的左邊緣,路由單元200被用來在網格的上邊緣和左邊緣提供路由裝置。這樣,路由單元200也成為環繞網格的路由網絡280的一部分。另一路由結構340被耦合到路由網絡280的一部分,該網絡由路由單元200通過開關單元250形成,這樣完成了路由網絡280。為簡單起見,路由網絡280由一條單實線描述。IC 300的結構由互連單元260完成,這些互連單元分別耦合構造塊100g-i和100c,f,i到網格外的硬件,如數據通信總線或其它通信硬件。因此,可重配置IC 300具有很高的對稱性和很大的路由靈活性,這意味著多個應用可映射到IC 300的網格上。
在圖3中所顯示的實施例中,路由單元200包括一個像互連單元260一樣的互連單元,以提供網格和外部硬件之間的所需互連。然而,應當指出,嚴格來說這并不是必需的;路由單元200不必包括這樣的功能,在這種情況下,互連單元260可以在網格的所有邊緣找到。而且應當強調,路由單元200的其它的布局也是可能的,該種布局不會超出本發明的范圍;如網格左邊的路由單元200可以沿著單個構造塊對齊,在這種情況下,開關單元250將位于IC 300的左上邊。顯然,像左邊、右邊、上邊、下邊這樣的名稱不應被認為是一種限制,它們純粹是為了說明簡單而被使用。另外,路由單元可以被設計為覆蓋不只一個構造塊100,例如通過在路由單元200中包括多個開關單元230。在此設計中,路由單元200將典型地為多個構造塊提供路由,構造塊的數目等于所包含的開關單元230的數目。
如果形成IC 300的網格的構造塊100是矩形而不是正方形,則有必要使用兩種大小的路由單元200。這種IC 300的示意性的示例在圖4中給出。
路由單元200的第一子集,即路由單元200a-c被用作通過其矩形的第一邊集成多個構造塊即構造塊100a-c的第三子集到路由網絡,路由單元200的第二子集,即路由單元200d-f被用作通過其矩形的第二邊集成多個構造塊即構造塊100a,d,g的第四子集到路由網絡,第一邊在長度上不同于第二邊。通常路由單元的第一子集具有長度w1,對應于構造塊100的寬度,路由單元200的第二子集具有長度w2,對應于構造塊100的長度。
同樣的情況適用于互連單元260。互連單元260的第一子集,即路由單元260a-c被用作通過其矩形的第一邊連接多個構造塊,即構造塊100a-c的子集到網格外的硬件,互連單元260的第二子集,即互連單元260d-f被用作通過其矩形的第二邊連接多個構造塊,即構造塊100c,f,i的另一子集到網格外的硬件。
圖5顯示了一種電子設備500,它具有根據本發明的集成電路300。集成電路300被耦合到數據通信總線560,或另一種數據通信體系結構,如它們是處理單元520,通常被用來執行專有任務,以及數據存儲單元540,如RAM、ROM或其它存儲設備。電子設備500可以是一個移動電話、一個導航系統或處理數字數據的另一設備,它們均可從根據本發明的集成電路300中獲益,因為集成電路300結合了很大程度的路由的靈活性,這增加了此種可重配置電路可以完成的任務的數目,同時降低價格,因為這種電路的設計工作相對較少,這是基于下面的事實,即只有一種類型的用于網格的構造塊要被設計。因此,電子設備500可以具有競爭力的價格進入市場,并且提供多種功能,因為多個任務可以被映射到IC 300上。
本發明的教義允許像FPGA的集成電路和其它可重配置電路的非常有效的設計方法。
如已提到的那樣,在這種電路的設計中,主要的瓶頸是組成集成電路網格的構造塊的設計。要避免伴隨前面提到的非對稱性而來的由設計單一類型的邏輯單元所引入的路由問題,至少要設計兩種對稱的相互補充的構造塊類型。這樣就增加了設計過程的復雜性,以及相關的集成電路的上市時間,這是一個缺點,因為市場上較短的上市時間是半導體產品成功的重要因素。
在本發明的方法中,第一步包括設計多個基本上一樣的互相連接的構造塊,每個構造塊包括邏輯單元,該構造塊還有耦合到該邏輯單元上的第一路由裝置,用于該邏輯單元與網格上第一方向的另一個第1邏輯單元之間的數據通信;耦合到該邏輯單元上的第二路由裝置,用于該邏輯單元與網格上第二方向的另一個第二邏輯單元之間的的數據通信,該構造決還包括開關裝置,用于耦合第一路由裝置到第二路由裝置。換句話說,一種單一類型的構造塊被設計出來,減少了開發集成電路所要的設計工作。因而,多個構造塊分布在規則的網格上。
此外,要避免在網格布局上路由非對稱的負面后果,該方法包含通過包括以下內容設計環繞網格的路由網絡的步驟多個構造塊的第一子集,它們分別具有第一路由裝置,形成路由網絡的一部分;多個構造塊的第二子集,它們分別具有第二路由裝置,形成圍繞網格的路由網絡的另一部分;和多個路由單元以及開關單元,用于完成環繞網格的路由網絡。呈現在網格邊緣上的路由硬件,與專有路由單元和開關單元的組合消除了由單一類型構造塊建造的網格的路由的非對稱性。專有路由單元和開關單元是相對簡單的模塊,可以在單獨的設計步驟中很容易被設計出來。因而,本發明的方法涉及僅僅結合了該集成電路的一個完整的、對稱的路由體系結構的單一類型的構造塊設計。
應當強調,用本發明的方法設計的集成電路中組合的不同元件的模塊特征使得這種方法特別適合于被集成到計算機輔助設計(CAD)工具,以設計所期望的集成電路。
應當注意到,上面提到的實施例是說明性的,而不是限制本發明,那些本領域的技術人員將會設計許多替代的實施例而不偏離所附權利要求的范圍。在權利要求中,位于括號中的引用符號不應被解釋為限制該權利要求。單詞“包括”并不排除要求中所列的單元或步驟之外的內容。某個元件前面的單詞“一個”并不排除使用多個這樣的元件。在枚舉幾個裝置的設備權利要求中,這些裝置中的一些可以由一個以及硬件的相同項目體現。一些方法交互引述在不同獨立權利要求中的簡單事實并不預示這些方法的組合不能被使用以獲益。
權利要求
1.一種集成電路,包括多個基本相同的相互連接的構造塊分布在規則的網格上,每個構造塊包括邏輯單元;耦合到該邏輯單元上的第一路由裝置,用于該邏輯單元與網格上第一方向的另一個第1邏輯單元之間的數據通信;耦合到該邏輯單元上的第二路由裝置,用于該邏輯單元與網格上第二方向的另一個第二邏輯單元之間的的數據通信;以及開關裝置,用于耦合第一路由裝置到第二路由裝置;該集成電路的特征在于,多個構造塊的第一子集分別具有其第一路由裝置,組成環繞網格的路由網絡的一部分;多個構造塊的第二子集分別具有其第二路由裝置,組成環繞網格的路由網絡的另一部分;該集成電路還包括多個路由單元,其耦合到路由網絡的該一部分和該另一部分,用于完成環繞網格的路由網絡。
2.如權利要求1中的集成電路,其特征在于,多個路由單元包括開關單元,其用于耦合多個路由單元的子集到多個構造塊的第一子集和第二子集之一。
3.如權利要求1中的集成電路,其特征在于,多個路由單元的每個路由單元被排列為將網格中的至少一個相鄰邏輯單元連接到網格外的硬件。
4.如權利要求1-3中任何一項的集成電路,其特征在于,還包括多個互連單元,其被排列成將來自第一子集和第二子集的構造塊連接到網格外的硬件。
5.如權利要求1中的集成電路,其特征在于,開關裝置包括多個可編程的開關。
6.如權利要求1中的集成電路,其特征在于,構造塊具有大致的矩形形狀;并且,多個路由單元包括路由單元的第一子集,用于通過矩形形狀的第一邊將多個構造塊的第三子集集成到路由網絡;和路由單元的第二子集,用于通過矩形形狀的第二邊將多個構造塊的第四子集集成到路由網絡,第一邊在長度上不同于第二邊。
7.一種電子設備,包括數據通信裝置;耦合到數據通信裝置的數據存儲元件,用于存儲數據;耦合到數據通信裝置的處理元件,用于通過執行專門任務來處理數據;如權利要求1中的集成電路,用于進一步通過執行來自多個任務中的任務來處理數據,通過配置該集成電路可以選擇任務,該集成電路被耦合到數據通信裝置。
8.一種設計集成電路的方法,包括設計多個基本相同的相互連接的構造塊,每個構造塊包括邏輯單元;耦合到該邏輯單元的第一路由裝置,用于在該邏輯單元和網格上第一方向的另一第一邏輯單元之間進行數據通信;耦合到該邏輯單元的第二路由裝置,用于在該邏輯單元和網格上第二方向的另一第二邏輯單元之間進行數據通信;開關裝置用于耦合第一路由裝置到第二路由裝置;在規則網格上排列多個構造塊;該方法的特征在于,進一步包括如下步驟通過包括以下內容設計環繞網格的路由網絡多個構造塊的第一子集,具有它們各自的第一路由裝置,形成路由網絡的一部分;多個構造塊的第二子集,具有它們各自的第二路由裝置,形成路由網絡的另一部分;和多個路由單元耦合到路由網絡的該一部分和該另一部分,用于完成環繞網格的路由網絡。
9.如權利要求8中的方法,其特征在于,還包括增加互連裝置的步驟,用于將位于網格邊緣上的多個構造塊連接到網格外的硬件。
全文摘要
集成電路(300)具有規則的網格,該網格由基本一樣的構造塊(100a-i)形成。要避免可能發生在集成電路(300)邊緣的路由沖突,該沖突是由使用單一類型的非對稱構造塊所引入的,該集成電路(300)與路由單元(200)擴展,提供在網格邊緣的路由,這個邊緣未被構造塊(100a-i)的路由網絡覆蓋。路由單元(200)和開關單元(250)由第一路由結構(330)和第二路由結構(340)組合在一起,以形成環繞在集成電路(300)的網格周圍的路由網絡(280)。因此,集成電路(300)表現為只包括單一類型的構造塊(100a-i),但仍具有完全對稱的路由結構。
文檔編號H01L21/82GK1666341SQ03815372
公開日2005年9月7日 申請日期2003年6月17日 優先權日2002年6月28日
發明者K·萊坦諾瓦克, A·卡托奇 申請人:皇家飛利浦電子股份有限公司