專利名稱:具有可編程邏輯單元陣列的電子電路的制作方法
技術領域:
本發明涉及具有可編程邏輯單元(cell)陣列的電子電路。
可編程邏輯單元使電路設計者能夠采用已經大量生產的電子電路諸如集成電路的個體實例的邏輯功能。這減少工作電路從設計到生產的時間間隔,并且降低生產小批量產品以及設計樣機的制造成本。
在一個實施的實例中,可編程單元包括利用該單元的輸入信號尋址的存儲器,且該存儲器將輸入信號值的每個組合的預編程輸出信號存儲在利用這些值尋址的相應地址上。據說該存儲器具有LUT(查找表)功能,用于查找響應于各種輸入信號而產生的輸出信號。
可以利用LUT實現任何邏輯功能,假定其包含足夠的存儲空間。然而,實際上只有需要有限數量(通常不超過4個)輸入的邏輯功能才在具有可編程邏輯單元的電路中利用LUT來實現。這樣的LUT需要16個存儲位置。這允許對具有4個輸入位的隨機邏輯功能進行編程。在很多情況下,具有包括4個輸入位功能的這樣的單元的電路就足夠了。具有這種單元的陣列的電路允許設計者實現更復雜的邏輯功能,在該電路中單元的輸出耦合到其它單元的輸入。
設計者越來越多地實現這樣的邏輯功能,對于這些功能可編程邏輯單元陣列的一部分用于實現諸如加法的信號處理運算。許多信號處理運算具有這樣的特性,即較寬的輸入操作數的許多比特均能夠通過進位效應來影響輸出結果中的許多比特。當使用4位輸入LUT實現這種寬依賴性時,獲得效率非常低的實現。
Xilinx在其可編程邏輯器件的Virtex家族中通過將進位鏈加到4位輸入LUT單元的陣列已經解決了這個問題。圖1示出了這種器件的可編程邏輯單元。該單元包含執行LUT功能的4位地址存儲器10以及具有進位輸入和進位輸出的進位電路12。存儲器10的輸出耦合到進位電路12,進位電路12將進位輸入信號與LUT的輸出信號組合,以形成進位輸出信號。異或門14用于從進位輸入信號和LUT的輸出信號中形成輸出信號。該單元的進位輸入和進位輸出耦合到該陣列(未示出)中相鄰單元的進位輸出和進位輸入,以形成進位鏈。該進位鏈從一個4位輸入LUT的輸出到另一個執行進位功能。因此,不需要分配LUT來執行進位功能。當電路用于執行包括一些信號處理運算的邏輯功能時,這節省了可觀數量的LUT。
然而,與專用信號處理電路相比,在也能夠實現隨機邏輯功能的這種更通用電路中信號處理功能的實現仍然相當低效。希望該效率可以提高。
這對于不使用存儲器而使用可編程單元執行LUT的可編程邏輯電路也是如此。更通常地,可編程邏輯單元的邏輯功能利用該電路中的一組配置位的值來控制。這些配置位的值可以例如在存儲元件中進行設置,或者通過諸如熔絲熔固(blowing of fuses)的技術被不可逆地進行編程。LUT的內容可以由配置位來設置,但是至邏輯門的輸入或邏輯電路的控制信號也可以利用配置位來設置。在這些電子電路中,配置位的數量是一個重要設計參數。大數量的配置位通常允許更寬的用于編程電路的范圍,但是存儲大量比特的需要也使得此電路更加昂貴并且其響應可能變慢。已經發現在這些電路中實施信號處理運算或需要具有大量配置位的單元,或需要更多的其中每一個具有較少配置位的單元。希望該效率可以提高。
發明內容
特別地,本發明的一個目的是提供具有可編程邏輯單元陣列的電子電路,允許實施隨機邏輯功能和信號處理運算,其中有效使用配置位。
在權利要求1中闡述了根據本發明的電子電路。該電子電路包括具有多個可編程邏輯部件的可編程邏輯單元,這些可編程邏輯部件并聯耦合在該單元的信號輸入端和輸出端之間。該可編程邏輯單元被配置成在隨機邏輯模式和多位操作數模式中操作。在多位操作數模式中,該單元中的不同可編程邏輯部件均從該單元的信號輸入端接收輸入信號,并且這些可編程邏輯部件的輸出并行提供給該單元的輸出。進位信號在這些可編程邏輯部件之間傳播。在隨機邏輯模式中,該單元的每個可編程邏輯部件從該單元的信號輸入端接收相同的信號;來自信號輸入端的另外信號選擇哪個可編程邏輯部件具有耦合到該單元輸出的輸出。
因而,可以編程該單元以利用可編程邏輯部件的少量配置位來執行隨機邏輯功能和多位信號處理操作。例如使用4個雙輸入可編程邏輯部件,該單元可以被配置成實現信號處理運算以及4位輸入隨機邏輯運算(兩個輸入位提供給可編程邏輯部件中的每一個,且剩余兩位選擇哪個可編程邏輯部件用于提供輸出信號)的4位有效級(level)。使用用于編程該單元的可編程邏輯部件的僅僅16位完全實現這種可配置性。
在一個實施例中,進位信號對可編程邏輯部件中的至少一個的影響利用將可編程部件的輸出信號反相或不反相的專用電路來實現,這取決于該進位信號。該專用電路通常具有異或功能。因此,不需要配置位來實現進位效應。
在其他實施例中,該單元可以包括用于配置進位鏈的操作的電路,至少以便確定適合于減法和加法的進位信號。此外,可以提供用于以相同被乘數倍增該單元中的多位操作數的每個位的電路。輸入電路可以只提供該單元的信號輸入和可編程邏輯部件的輸入之間的耦合的有限選擇,包括用于多位操作數信號處理和用于計算隨機邏輯功能的耦合。通過只提供有限的選擇,可以減少配置該輸入電路所需的配置位的數量而不影響配置該單元以實現多位信號處理和隨機邏輯功能的能力。
在還一個實施例中,該單元使用用于說明多位操作數模式中的進位信號的電路支持多路復用器模式中的多路復用功能的配置。
本發明也涉及這種類型的可編程電路,這些電路已經被配置成分別執行多位操作數功能、隨機邏輯功能和多路復用器功能。
將使用以下附圖來描述本發明的這些和其它目標和有益方面。
圖1示出了現有技術的可編程邏輯單元;圖2示出了根據本發明的可編程邏輯單元;圖3示出了邏輯單元的陣列;圖4示出了可編程邏輯部件和進位鏈的一部分;圖5示出了圖4的電路的修改;圖6示出了進位鏈;圖6a示出了可供選擇的進位鏈;圖6b示出了另一可供選擇的進位鏈;和圖7示出了輸入電路。
具體實施例方式
圖2示出了可編程邏輯單元20。單元20包括輸入電路22、多個可編程邏輯部件24a-d、輸出電路26和進位鏈28。單元20的信號輸入21和信號輸出27通過輸入電路22的級聯、可編程邏輯部件24a-d和輸出電路26的并聯安排進行耦合。進位鏈28具有進位輸入29a和進位輸出29b,并且在沿該鏈的一系列位置上被耦合到可編程邏輯部件。
輸出電路26包括許多級的多路復用器264a、b和266以及轉換級268。第一級中的多路復用器264a、b的控制輸入耦合到輸入電路22的相應輸出。第一級中的多路復用器264a、b的信號輸入耦合到可編程邏輯部件24a-d的對的輸出、第二級中的多路復用器266的信號輸入耦合到第一級的多路復用器264a、b的輸出。
可編程邏輯部件24a-d以及第二級的多路復用器266的輸出耦合到轉換級268的輸入。轉換級268的輸出耦合到單元20的信號輸出27。轉換級268可配置成將可編程邏輯部件24a-d的輸出耦合到輸出27,或者將第一和第二級的多路復用器264a、b、266的輸出耦合到輸出27,或者至少將第二級的多路復用器266的輸出耦合到輸出27。轉換級268可以被配備有用于鎖存輸出信號的鎖存器(未示出),以便單元20可以充當流水線電路中的流水線級的最終部分。優選地,轉換級268可配置成在鎖存之后或在不鎖存的情況下傳送信號。
單元20已被設計成使設計者能夠配置單元20來實現選擇的輸入-輸出功能。通過編程可編程邏輯部件24a-d、輸入電路22、輸出電路26和進位鏈28的配置位,可以配置單元20的功能。(配置位存儲在配置存儲器(未示出)中,其通過編程路徑(未示出)進行裝載,這二者本身對于可編程邏輯器件都是已知的)。配置位確定哪一些信號輸入21被耦合到可編程邏輯部件24a-d中的哪一些,這些配置位確定可編程邏輯部件24a-d為了響應各個輸入信號值而將產生哪些輸出信號值,這些配置位確定轉換級268將向信號輸出27傳送哪些信號,并且這些配置位確定來自進位輸入29a的進位輸入信號是否將傳送到單元20。在操作中,單元20可以被配置成工作在隨機邏輯模式中和多位操作數處理模式中。在操作中,多位操作數模式單元20輸出輸出結果的多個位,其中輸出結果取決于具有多個位的輸入操作數。每個輸入操作數中的位具有連續較高的有效級。在多位操作數模式中,每個可編程邏輯部件24a-d與不同的有效級相關聯。輸入電路22被配置成將代表來自不同操作數的位信號傳送到每個可編程邏輯部件24a-d,每個位對應于與可編程邏輯部件24a-d相關聯的有效級。每個可編程邏輯部件24a-d通過在與可編程邏輯部件24a-d相關聯的有效級上計算結果的位、考慮從較低有效級從進位鏈28接收的信號中的進位并且向進位鏈提供進位輸出以便在較高有效級上使用來響應這些信號。在多位操作數模式中,通常將所有可編程邏輯部件24a-d配置成在它們的輸入信號和輸出信號之間提供相同的關系。輸出電路26被配置成將計算出的所有可編程邏輯部件24a-d的結果的位作為輸出信號并行傳送給輸出27。
進位鏈28計算進位信號并將這些進位信號從一個可編程邏輯部件24a-d傳送到另一個。進位鏈28的配置控制進位鏈28是否使用來自進位輸入29a的進位輸入信號來確定進位信號。如果單元20處理的輸入信號是較大操作數的更有效的位,則該單元被配置成使得這樣的進位輸入信號被用于接收處理較低有效操作數的另一單元的進位輸出信號。
圖3示出了圖2所示類型的單元20的二維陣列。該陣列被組織成具有單元20的行和列的矩陣。相鄰單元的信號輸入、信號輸出、進位輸入和進位輸出相互耦合。此外,提供總線以使不相鄰單元30之間能夠耦合。(僅僅為了簡單起見,單元和總線之間的連接示意性地用單個交叉線來表示)。在這種類型的陣列中,可以容易地實現隨機邏輯功能和多位信號處理操作的任何組合。
在操作中在隨機邏輯模式中,單元20的輸出信號是多個輸入信號的隨機邏輯函數。此隨機邏輯函數使用可編程邏輯部件24a-d以及第一和第二級的多路復用器264a、b、266來實現。輸入電路22將相同的輸入信號傳送到可編程功能部件24a-d中的每一個。在其他的輸入信號的控制下,多路復用器264a、b、266從可編程邏輯部件24a-d中選擇一個,輸出信號從該被選擇的可編程邏輯部件傳送到轉換級268,這些其他控制信號中的第一信號控制第一級中的多路復用器264a、b,這些其他控制信號中的第二信號控制第二級中的多路復用器266,這在第一級中的多路復用器264a、b的輸出之間選擇。因此,實現了依賴于可編程邏輯部件24a-d的輸入信號并依賴于控制多路復用器264a、b、266的其他輸入信號的邏輯功能。可編程邏輯部件24a-d中的每一個為響應于相同的輸入信號而產生輸出信號,這些相同的輸入信號中的每一個對于其他輸入信號的不同值用作輸出信號。轉換級268將得到的輸出信號從多路復用器266傳送到單元20的信號輸出。
進位鏈28被配置,以使得沒有外部進位輸入信號用在隨機邏輯模式中。根據進位鏈28的實現,進位鏈28仍然可以將一些在輸入的某些輸入值上出現的進位信號傳送給可編程邏輯部件24a-d。在這種情況下,進一步沿著進位鏈向下的可編程邏輯部件24a-d的結構可適應于對于輸入值的特定值考慮(account for)進位信號的存在。在進位鏈28的一個可供選擇的實現中,多路復用器可以包含在進位鏈中,其在多位操作數模式中傳送來自在前有效級的進位信號,或者在隨機邏輯模式中傳送預定信號(例如,對于所有有效級都為零)。在該實施例中,可編程邏輯部件24a-d的結構不需要進行改變以考慮信號相關進位信號的存在。
因此,在隨機邏輯模式和多位操作數模式之間有對照。一方面,在隨機邏輯模式中,每個可編程邏輯部件24a-d接收相同的輸入信號,并且每個對于控制多路復用級260、262的其他輸入信號的不同值提供可能不同的輸入-輸出功能。另一方面,在多位操作數模式中,可編程邏輯部件24a-d接收不同的輸入信號,但是通常提供相同的輸入-輸出函數。
作為選擇,一方面通過將可編程邏輯部件用于執行對兩個多位操作數信號處理操作的不同有效級的計算,并且另一方面通過將其用作計算不止兩個位-輸入隨機邏輯函數的結構的一部分,支持隨機邏輯功能和多位操作數信號處理實現所需的配置位的數量被最小化。在圖2的例子中,由于具有4個雙輸入可編程邏輯部件24a-d(每個都可使用4個配置位進行完全編程),16位足以定義任何4位-輸入隨機邏輯函數,并在同時定義任何雙操作數信號處理操作的4個有效級。相反,考慮已經使用4位輸入可編程邏輯部件24a-d(其中每一個需要16個配置位來完全編程)的情況。這樣的可編程邏輯部件可以在多位操作數信號處理操作的兩個有效級上執行計算,但是這對于每個有效級將需要兩倍的配置位。
在另一實施例中,安排單元20,以使得其也可配置成產生具有三個輸入位的兩個隨機邏輯功能的結果。在這種情況下,輸出電路26的第一級的多路復用器264a,b的輸出用作單元的輸出。由于單元20具有用于傳送多位結果的4位的4個輸出,這些來自多路復用器264a、b的輸出的結果可以與來自第二級中的多路復用器266的輸出信號并行進行傳送。
在該另一實施例中,優選地,安排單元20,以使得其能夠被配置成使這兩個隨機邏輯功能的輸入信號來自不同的輸入21,或者至少可以被選擇成來自不同的輸入。即,兩個可編程邏輯部件24a、b接收相同對的輸入信號,并且兩外其他的可編程邏輯部件24c、d接收另一對的輸入信號。為此,優選安排輸入電路22,以使得其能夠被配置成獨立地選擇這些對。此外,在配置位的控制下,輸出電路26的第二級中的多路復用器266的控制信號被饋送至第一級的多路復用器264a、b之一。因此,由多路復用器264a、b作出的選擇也受控于獨立選擇的位。單元20在此第三模式(兩個3位輸入隨機邏輯功能)中的操作處于隨機邏輯模式和多位操作數模式之間,其中可編程邏輯部件24a-d部分地接收相同的信號并且部分地接收不同的信號,以及其中產生兩個輸出信號。
圖4示出了可編程邏輯部件40和進位鏈42的一部分的一個實施例。可編程邏輯部件包含LCT部件400、配置存儲器404和第一異或門402。進位鏈42的這部分包含第二異或門420和多路復用器422。可編程邏輯部件40的信號輸入A、B耦合到LUT部件400的輸入。配置存儲器404也耦合到LUT部件400。LUT部件400的輸出耦合到第一異或門402的輸入。第一異或門402的第二輸入耦合到進位鏈42的進位輸入,并且第一異或門402的輸出形成可編程邏輯部件40的輸出。可編程邏輯部件40的信號輸入A、B耦合到第二異或門420的輸入,第二異或門420的輸出耦合到多路復用器422的控制輸入。多路復用器422的輸入分別耦合到進位輸入以及可編程邏輯部件40的信號輸入之一。LUT部件400與配置存儲器404的組合可以實現為多個用于具有多路復用結構的配置位的存儲元件,所述多路復用結構在來自信號輸入的信號的控制下選擇所述存儲元件之一的輸出,并且從LUT部件400輸出所選存儲元件的內容。常規的4位存儲結構可用于此目的。配置存儲器404具有用于通過傳統配置路徑(未示出)將配置位裝載到配置存儲器404的輸入406。
在工作中,LUT部件400實現可配置的輸入輸出功能。響應于輸入信號A、B的每個可能組合,LUT部件400輸出利用輸入信號選擇的相應的輸出信號。輸入信號的每個組合具有通過存儲在配置存儲器404中的配置位指定給它的輸出信號。4個配置位足以使得配置任何可能的指定成為可能。通過異或門402的動作,當進位輸入信號是邏輯低時,LUT部件400的輸出信號的副本從該可編程邏輯部件輸出,并且如果進位輸入信號是邏輯高,輸出該輸出信號的反相副本。從進位輸入信號和可編程邏輯部件的輸入信號A、B中確定進位輸出信號。當輸入信號A、B相等時,多路復用器422輸出一個輸入信號A作為進位輸出信號,并且當輸入信號A、B不等時,多路復用器422輸出進位輸入信號作為進位輸出信號。
存在具有相同邏輯功能的可編程邏輯部件的幾個可供選擇的實施例是清楚的。作為一種選擇,例如,可以利用三輸入LUT部件(未示出)實現可編程邏輯部件40的功能,所述三輸入LUT部件在其輸入上除了接收輸入信號A、B之外還接收進位信號,并且產生可配置的輸出信號。然而,這種LUT部件需要8個配置位來完全可編程。使用第一異或門402實現進位使得有可能編程任何隨機2位邏輯功能以及信號處理操作,所述信號處理操作在LUT部件400中涉及具有不超過4個配置位的進位。類似地,進位輸出信號的確定可能已經使用另一LUT(未示出)來實現,但代價是更多的配置位。但是,甚至在利用硬接線電路來實現上,進位信號的計算的幾個可供選擇的實施例也是可能的,當然,使用具有與圖4所示的電路相同的輸入輸出功能的邏輯電路。
利用圖4的電路,可以通過編程LUT部件400的配置位以執行異或功能來實施算術加法運算。在邏輯高進位輸入信號用在最低有效級上時,除了加法之外的運算也可以通過不同地編程LUT部件400來實現,并且當然第一和第二操作數的相加等效于從第一操作數中減去第二操作數的補數。
圖5示出了對進位鏈42和可編程邏輯部件40的一些添加,以使其適于執行算術減法而沒有外部補數形成以及1位相乘-加-累加(multiplication-plus-accumulation)(例如,作為多位乘法的一步)。通過在一側上LUT部件和第二異或門以及在另一側上信號輸入A、B之一之間增加異或門50來有助于減法的實現,所述信號輸入A、B之一接收必須被減去的操作數的位。向異或門50的輸入之一提供減法控制信號,以便輸入信號被邏輯反相。當需要加法時,將減法控制信號設定為零。為此,可以使用用于單元20中所有可編程邏輯部件的公用減法控制信號。該減法控制信號可以由單元20的配置位加以控制,或者利用外部單元20的信號進行控制。在減法的情況中,邏輯高進位輸入信號被施加到與最低有效級相關聯的可編程邏輯部件。
通過在一側上LUT部件和第二異或門以及在另一側上信號輸入A、B之一之間增加ADD(與)門52并且向該與門的輸入之一提供因子信號來支持相乘-加-累加的實現,其中所述信號輸入A、B之一接收操作數的必須被乘的位。為此,可以使用用于單元20中所有可編程邏輯部件的公共因子信號。在需要加法時,該因子信號被設定為一。
如所示的,可以組合提供與門52和異或門50,但是,當然,在不需要減法或乘法時可以略去任何一個。同樣,可以理解,能夠以各種可供選擇的方式利用電路中不同位置上的異或門50的等效物和/或LUT部件400的不同配置來實現乘法和減法。例如,異或門50可以耦合在輸入電路的輸出和進位鏈42的輸入之間,所述輸入電路的輸出不通過異或門50被耦合到可編程邏輯部件40,假設可編程邏輯部件40的配置位在減法的情況下適于不存在異或門50的影響。然而,在這種情況下,當從加法轉換到減法時,可編程邏輯部件的配置需要被改變。
圖6更詳細地示出了單元20的進位鏈60。進位鏈60包括輸入多路復用器62、進位輸入配置存儲器64、選擇配置存儲器66以及多個進位邏輯部件68a-d。單元20的進位輸入和進位輸入配置存儲器64耦合到多路復用器62的的信號輸入。選擇配置存儲器66耦合到多路復用器62的控制輸入。多路復用器62的輸出耦合到級聯的進位邏輯單元68a-d,這些進位邏輯部件68a-d的輸入耦合到每個可編程邏輯部件24a-d的輸入A、B且輸出耦合到這些可編程邏輯部件24a-d。進位輸入配置存儲器64、選擇配置存儲器66的內容可通過配置路徑(未示出)進行編程。
在工作中,選擇配置存儲器66在使用來自外部單元20的進位輸入信號和使用來自進位輸入配置存儲器64的進位輸入內容之間選擇。在單元的操作的隨機邏輯模式下選擇后者,以及在操作的多位操作數模式下(當單元20必須處理多位操作數的最低有效位時)選擇后者。根據所需的多位操作數運算或者根據適于隨機邏輯運算的級別設定進位輸入配置存儲器64的進位輸入內容。在后一種情況下,當可編程邏輯部件24a-d中的每一個接收相同的輸入信號A、B時,這些可編程邏輯部件24a-d被編程以考慮來自進位鏈的進位信號的影響。
圖6a示出了可供選擇的進位鏈,其中使用可配置進位抑制電路實現進位邏輯部件68a-d,所述可配置進位抑制電路例如為多路復用器69a-d,其或者將進位邏輯電路68a-c的進位輸出耦合到可編程邏輯部件(未示出)的進位信號輸入,或者將預定信號值的源例如配置存儲器64或者硬連線邏輯零耦合到可編程邏輯部件的進位信號輸入。進位抑制電路受配置位控制,所述配置位控制該電路是操作在隨機邏輯模式中還是操作在多位操作數模式中。當該電路被配置在隨機邏輯模式中時,進位抑制電路利用具有預定邏輯級的信號取代被饋送至可編程邏輯部件的進位信號。因此,在隨機邏輯模式中,沒有進位傳播影響單元20。這使得該電路更快且不太容易在輸出信號中產生閃信號。在這種情況下,當處于隨機邏輯模式中時,給定預定進位輸入信號,可編程邏輯部件24a-d全部被編程為執行相同的邏輯功能。雖然已經示出多路復用器69b-d在進位鏈和可編程邏輯部件之間,但是當然它們也可以被包含在連續的進位邏輯電路68a-d之間的路徑中。在這種情況下,這些進位邏輯電路68a-d也不受進位傳播的影響。
多路復用器功能需要相對大量的輸入最小可能的多路復用器需要3個輸入,兩個用于信號以及一個用于控制。4路多路復用器需要6個輸入。由于大量的輸入,因此用于實現多路復用器功能的可編程單元的輸入配置通常效率低。
圖6b示出了支持該單元作為多路復用器的配置的圖6a的進位鏈的修改。異或門600的和與門602的級聯已經加在每個多路復用器62、69b-d的輸入上。每個異或門600的輸入耦合到相應信號輸入A、B,并且異或門的輸出耦合到相應與門602的輸入。與門的輸出耦合到多路復用器62、69b-d的第一輸入,多路復用器62、69b-d接收圖6a中的預定信號。與門的第二輸入共同耦合到輔助輸入604。
在操作中,異或門600和與門602支持該單元配置成多路復用器。當該單元被配置成多路復用器時,其操作是多位操作數模式中操作和隨機邏輯模式中操作的混合。如在多位操作數模式中一樣,輸入電路22將不同的輸入信號傳送到每個可編程功能部件24a-d。也象在多位操作數模式中一樣,每個可編程邏輯部件被配置成實現相同的邏輯功能。象在隨機邏輯模式中一樣,在其他一些輸入信號的控制下,多路復用器264a、b、266選擇可編程邏輯部件24a-d之一,從中將輸出信號傳送到轉換級268。可編程邏輯部件24a-d中的每個在輔助輸入604處的信號的控制下實現2∶1多路復用器功能。為此,可編程邏輯部件被配置成在它們的輸出上再現它們的輸入信號A、B之一(假定A)的值。當輔助輸入604處的信號是零時,將該信號傳送到異或門402的輸出。當輔助輸入604處的信號是1時,如果輸入信號A、B不相等(如由異或門600所表示的),異或門402的輸出上的信號被反相,即信號A的副本被反相成等于信號B。在異或門402的所有輸出信號中為output=EXOR(A,C*EXOR(A,B))此處C是輔助輸入604上的信號。這是2∶1多路復用器函數(multiplexer function)。在與多路復用器264a、b、266的選擇組合中,實現8∶1或者一對4∶1多路復用器函數。有利的是,進位鏈42的異或門402可用于執行異或門600的功能。作為輔助輸入604處的信號,可使用該單元的輸入信號,或者可以使用用于在加法和減法之間選擇的控制信號。
當然,可編程邏輯部件的配置可用于將多路復用功能與一些邏輯運算進行組合,以便例如轉換A和B輸入的作用。
圖7示出了輸入電路70。輸入電路70具有耦合到單元20的輸入的多個輸入72以及多個輸出74,這些輸出74耦合到可編程邏輯部件24a-d的輸入和單元20的輸出電路中的多路復用器。輸入72和輸出74通過兩層轉換電路76、78進行耦合。可以使用每個轉換電路76、78(只詳細示出了一個)中的兩個多路復用器760來實現所述轉換電路,每個多路復用器760提供從該轉換電路的每個輸入到相應一個輸出的可配置耦合。輸入電路70也包括第三多路復用器(未示出),用于選擇被饋送至輸出級的多路復用器264a、b、266的輸入信號。轉換電路76、78以及第三多路復用器的操作利用配置存儲器(未示出)的配置位進行控制。
兩層76、78被組織成轉換電路76、78(每一個將這些輸入的相應對耦合到輸出的相應對)的組并且被安排成使得每個組中的轉換電路76、78能夠可配置地在一方面將來自每一個輸入對的信號復制到其輸出對中的兩個輸出和另一方面將來自輸入對中的每個輸入的信號耦合到輸出對中的相應輸出之間進行轉換。層76、78串聯組合,其中來自第一層的轉換電路76的對的輸出被交叉耦合到第二層78中的一對不同轉換電路78的輸入。結果,層76、78將輸入72的四聯體(quadruplet)耦合到輸出74的相應四聯體,并且能夠在將來自輸入72的每個四聯體的信號復制到輸出74的相應四聯體中的所有輸出和將輸入的相應四聯體耦合到輸出的相應四聯體之間可配置地轉換。
單元20具有耦合到轉換電路76、78的控制輸入的配置存儲器(未示出),以便所述配置存儲器的內容控制輸入電路的多路復用器的轉換。所述配置存儲器至少在隨機邏輯模式和多位操作數模式之間選擇。在隨機邏輯模式中,轉換電路76、78被控制以便將來自兩個輸入72的信號復制到每個可編程邏輯部件的輸入,且第三多路復用器(未示出)被控制以便將來自所述輸入的其它一些輸入的信號耦合到輸出電路中的多路復用器的控制輸入。在多位操作數模式中,轉換電路76、78被控制,以便將相應輸入72耦合到相應輸出74。原則上,用于一個配置位的存儲器足以在這兩種模式之間選擇,但是在隨機邏輯模式中,優選地提供用于額外配置位的存儲器,該存儲器選擇哪一些輸入被復制到所有可編程邏輯部件。在后一情況下,可以使用5個配置位一個配置位用于在多位操作數模式(一個信號到一個信號傳送)和隨機邏輯模式(4次復制)之間選擇;以及2×2配置位,每個用于選擇被耦合到每個可編程邏輯部件的輸入的四個輸入之一。
第三多路復用器(未示出)選擇輸入,從所述輸入中信號被饋送至輸出電路26中的多路復用器級的控制輸入。優選地,提供兩個第三復用器,每一個用于選擇用于控制輸出電路26的相應級的輸入信號。
原則上,該單元的信號輸入可以被組成為(例如4個)信號輸入的組,其中一組的每個信號輸入提供對應于該組的多位操作數中的相應位。為了支持隨機邏輯模式和多位操作數模式,該單元具有在傳送來自邏輯輸入組的各對的輸入信號以及傳送一套輸入的副本給所有可編程邏輯部件之間選擇的配置位就足夠了,其中每個可編程邏輯部件接收來自該對中的兩個組的信號。可以提供額外的配置位來選擇所述組或所述套。
在本上下文中,具有四個可編程邏輯部件的單元尤其有利,因為在此情況下隨機邏輯功能的輸入信號的數量與多位操作數中的位數相同。這意味著,對應于操作數的每個組也可以被選擇為用于隨機邏輯功能的一套輸入。用于選擇多位操作數模式中的組的配置位(如果有的話)可用于選擇隨機邏輯模式中的組。在這種情況下,單個額外配置位足以用于隨機邏輯模式中,以選擇將在多位操作數模式中用作操作數的組將用作隨機邏輯功能的輸入組。
如將意識到的,當使用在可編程邏輯電路中時,前面所述的單元使得有可能配置該電路以執行涉及不同位級別之間的進位信號的多位操作數信號處理運算以及4位輸入隨機邏輯功能。也可以支持兩個三位輸入隨機邏輯功能的配置。少量的配置位足以選擇操作的模式。16個配置位足以定義4位輸入隨機邏輯功能和多位信號處理運算。
然而,將認識到,在能夠進行相似可配置性的單元20中各種變化是可能的。例如,可以使用具有較大數量的2位輸入可編程邏輯部件24a-d的單元,例如,具有8個這種元件并且具有多路復用器在三個輸入信號的控制下選擇這8個可編程邏輯部件之一的輸出的單元。因此,可以使用例如8位多位信號處理操作。
權利要求
1.一種具有可編程邏輯單元陣列的電子電路,每個單元包括具有多個邏輯輸入的輸入電路;輸出電路;進位輸入和進位輸出,進位鏈,耦合在進位輸入、輸入電路和進位輸出之間;多個可編程邏輯部件,并聯耦合在輸入電路和輸出電路之間,輸入電路可配置在隨機邏輯模式和多位操作數處理模式之間,在隨機邏輯模式中每個可編程邏輯部件從邏輯輸入的相同組合中接收邏輯輸入信號,而在多位操作數處理模式中每個可編程邏輯部件從不同的邏輯輸入中接收邏輯輸入信號,所述可編程邏輯部件至少在多位操作數處理模式中被耦合到沿進位鏈的連續位置,以便處理來自進位鏈的進位信號,輸出電路在隨機邏輯模式中在另外的輸入信號的控制下選擇自可編程邏輯部件的輸出信號,并在多位操作數處理模式中并行傳送來自可編程邏輯部件的輸出。
2.根據權利要求1的電子電路,其中至少一個可編程邏輯部件包括可配置查找表電路,具有輸出和耦合以接收來自輸入電路的邏輯輸入信號的輸入;可控反相器/非反相器電路,查找表電路的輸出經由該反相/非反相電路耦合到輸出電路,進位鏈的進位輸出耦合到該反相/非反相電路的反相非反相控制輸入。
3.根據權利要求1的電子電路,其中所述單元包括被安排成控制進位鏈的至少一個進位輸出確定運算的減法控制電路,進位鏈從輸入信號和沿該進位鏈的每個位置上的進位輸入信號中確定進位輸出信號,通過減法控制電路的控制在減法控制信號的控制下至少在適于加法的確定和適于減法的確定之間轉換進位輸出確定。
4.根據權利要求1的電子電路,其中所述單元包括用于每個可編程邏輯部件的相應乘法電路,所述乘法電路被耦合以便在將輸入信號中的至少一個提供給可編程邏輯部件的輸入之前利用被乘數乘以可編程邏輯部件的輸入信號中的至少一個。
5.根據權利要求1的電子電路,其中每個可編程邏輯部件具有用于來自邏輯輸入的信號的兩個部件輸入,每個可編程邏輯部件可配置成獨立地實現邏輯輸入的任何2-輸入位邏輯功能。
6.根據權利要求1的電子電路,其中進位鏈電路具有在所述位置和所述單元的進位輸出之間的可配置耦合,用于在配置存儲器的配置信息的控制下可配置地將進位輸出信號或將標準信號提供給進位鏈。
7.根據權利要求1的電子電路,其中進位鏈電路具有多個可配置耦合,每個耦合在相應一個所述位置和相應一個可編程邏輯部件之間,用于在配置存儲器的配置信息的控制下可配置地將來自所述位置的進位信號提供給可編程邏輯電路,或者通過進位鏈將不是傳播結果的另外的信號提供給可編程邏輯電路。
8.根據權利要求7的電子電路,其中每個可編程邏輯部件包括可配置查找表電路,具有輸出和耦合以接收來自輸入電路的邏輯輸入信號的輸入;可控反相器/非反相器電路,查找表電路的輸出經由該反相/非反相電路耦合到輸出電路,可配置耦合被耦合到該反相/非反相電路的反相非反相控制輸入;異或電路,具有輸入耦合到可編程邏輯部件的輸入和可配置耦合以便根據多路復用控制信號的斷言提供另外信號的輸出,其中所述多路復用控制信號對于可編程邏輯單元是公共的。
9.根據權利要求1的電子電路,其中輸入電路被安排成可配置為只提供在所述單元的信號輸入和可編程邏輯部件的輸入之間的所有可能耦合的一個合適子集,該子集包括多位操作數耦合和隨機邏輯耦合,其中在多位操作數耦合中相應信號輸入被耦合到相應可編程邏輯部件的相應輸入,而在隨機邏輯耦合中信號輸入的一個子集耦合到每個可編程邏輯部件的輸入。
10.根據權利要求7的電子電路,其中所述子集包括2位輸出隨機邏輯耦合,其中第一和第二子集的信號輸入分別耦合到第一和第二子集的多個可編程邏輯部件中的每一個的輸入。
11.根據權利要求1的電子電路,被配置成執行隨機邏輯功能,其中每個可編程邏輯部件被配置成提供相應輸入-輸出關系,并且來自邏輯輸入的邏輯輸入信號選擇邏輯輸出信號從哪個可編程邏輯部件傳送到輸出電路的邏輯輸出。
12.根據權利要求1的電子電路,被配置成執行多位操作數信號處理功能,其中每個可編程邏輯部件被配置成提供受進位鏈的進位輸入信號控制的相同的輸入-輸出關系,并且輸出電路并行從可編程邏輯部件中輸出輸出信號。
13.根據權利要求1的電子電路,被配置成執行多路復用功能,其中每個可編程邏輯部件被配置成將其輸入信號之一傳送到輸出,并且在對于可編程邏輯部件是公共的多路復用器控制信號被確定以及可編程邏輯部件的輸入信號相互不同時在所述傳送期間將這一個輸入信號反相。
全文摘要
一種電子電路包括具有多個可編程邏輯部件的可編程邏輯單元,所述可編程邏輯部件能夠被配置成操作在多位操作數模式和隨機邏輯模式中。所述可編程邏輯部件并聯耦合在輸入電路和輸出電路之間。在隨機邏輯模式中,輸入電路可被配置成將來自邏輯輸入的相同組合的邏輯輸入信號提供給可編程邏輯部件。在多位操作數處理模式中,輸入電路被配置成將來自不同邏輯輸入的邏輯輸入信號提供給可編程邏輯部件。至少在多位操作數模式中,這些可編程邏輯部件被耦合到沿進位鏈的連續位置,以便處理來自進位鏈的進位信號。輸出電路在隨機邏輯模式中在另外的輸入信號的控制下選擇來自可編程邏輯部件的輸出信號,并且在多位操作數模式中并行傳送來自可編程邏輯部件的輸出。
文檔編號H03K19/177GK1666417SQ03816244
公開日2005年9月7日 申請日期2003年7月4日 優先權日2002年7月10日
發明者K·萊滕-諾瓦克 申請人:皇家飛利浦電子股份有限公司