6的漏極與第二位線qBL連接。第四nMOS晶體管166 的柵極與字線WL連接。
[0133] 通過上述構成,在寫入動作中,單端口存儲元件40通過字線WL的信號電平"H"來 保持寫入位線BL以及寫入位線qBL的信號電平。
[0134] 〔 2. 3〕MLUT的邏輯動作
[0135] A?邏輯部件
[0136] 圖6為表示作為邏輯部件工作的MLUT的一例的圖。圖6所示的MLUT30a、30b從邏 輯動作用地址線A0?A3接收邏輯動作用地址LA,向邏輯動作用數據線DO?D3輸出邏輯 動作用數據LD。另外,MLUT30a的邏輯動作用地址線A2與相鄰的MLUT30b的邏輯動作用數 據線D0連接,MLUT30a接收從MLUT30b輸出的邏輯動作用數據LD作為邏輯動作用地址LA。 此外,MLUT30a的邏輯動作用數據線D2與MLUT30b的邏輯動作用地址線A0連接,MLUT30a 所輸出的邏輯動作用數據LD作為邏輯動作用地址LA被MLUT30b接收。這樣,MPLD之間的 連結使用1對的地址線和數據線。以下,將如MLUT30a的邏輯動作用地址線A2和邏輯動作 用數據線D2這樣的,用于MLUT的連結的地址線和數據線對稱為"AD對"。
[0137] 另外,在圖6中,MLUT30a、30b所具有的AD對為4對,但如后面所述,AD對的數量 并不限于4。
[0138] 圖7為表示作為邏輯電路工作的MLUT的一例的圖。在本例中,將邏輯動作用地址 線A0以及A1作為2輸入NOR電路701的輸入,將邏輯動作用地址線A2以及A3作為2輸入 NAND電路702的輸入。而且,構成向2輸入NAND電路703輸入2輸入NOR電路的輸出和2 輸入NAND電路702的輸出,向數據線D0輸出2輸入NAND電路703的輸出的邏輯電路。
[0139] 圖8為表示圖7所示的邏輯電路的真值表的圖。圖7的邏輯電路為4輸入,因此, 將輸入A0?A3的所有輸入作為輸入使用。另一方面,輸出只有1個,因此,僅將輸出D0作 為輸出使用。真值表的輸出D1?D3欄中記載有這表示可以是"0"或"1"的任一 值。但是,實際上在為了進行重構而向MLUT寫入真值表數據時,這些欄中需要寫入"0"或 "1"的任一值。
[0140] B.連接部件的功能
[0141]圖9為表示作為連接部件工作的MLUT的一例的圖。在圖9中,作為連接部件的 MLUT以向數據線D1輸出地址線A0的信號,向數據線D2輸出地址線A1的信號,向數據線 D3輸出邏輯動作用地址線A2的信號的方式工作。作為連接部件的MLUT還以向數據線D1 輸出地址線A3的信號的方式工作。
[0142]圖10為表示圖9所示的連接部件的真值表的圖。圖9所示的連接部件為4輸入 4輸出。因此,使用了輸入A0?A3的全部輸入和輸出D0?D3的全部輸出。根據圖10所 示的真值表,MLUT作為將輸入A0的信號向輸出D1輸出,將輸入A1的信號向輸出D2輸出, 將輸入A2的信號向輸出D3輸出,將輸入A3的信號向輸出D0輸出的連接部件工作。
[0143] 圖11為表示通過具有4個AD對的MLUT實現的連接部件的一例的圖。在圖11中, 單點劃線表示輸入到AD對0的信號被輸出至AD對1的信號流。雙點劃線表示輸入到第二 AD對ADA的信號被輸出至AD對2的信號流。虛線表示輸入到AD對2的信號被輸出至AD 對3的信號流。實線表示輸入至AD對3的信號被輸出至AD對0的信號流。
[0144] 另外,在圖11中,MLUT30所具有的AD對為4對,但如后面所述,AD對的數量并不 限于4。
[0145] C.邏輯部件與連接部件的組合功能
[0146] 圖12為表示1個MLUT作為邏輯部件以及連接部件工作的一例的圖。在圖12所 示的例子中,構成將地址線A0以及A1作為2輸入NOR電路121的輸入,將2輸入NOR電路 121的輸出和邏輯動作用地址線A2作為2輸入NAND電路122的輸入,向數據線D0輸出2 輸入NAND電路122的輸出的邏輯電路。此外,同時構成向數據線D2輸出地址線A3的信號 的連接部件。
[0147] 圖13中示出圖12所示的邏輯部件以及連接部件的真值表。圖12的邏輯動作使 用輸入D0?D3的3個輸入,并使用1個輸出D0作為輸出。另一方面,圖(a)的連接部件 構成將輸入A3的信號向輸出D2輸出的連接部件。
[0148] 圖14為表示通過具有4個AD對的MLUT實現的邏輯動作以及連接部件的一例的 圖。如上所述,MLUT30通過1個MLUT30實現3輸入1輸出的邏輯動作和1輸入1輸出的 連接部件這2個動作。具體地講,邏輯動作將AD對0的地址線、AD對1的地址線和AD對 2的地址線作為輸入使用。而且,將AD對0的地址線作為輸出使用。此外,如虛線所示,連 接部件把輸入到AD對3的信號向AD對2輸出。
[0149] 另外,在具有N個AD對的MLUT中,能夠構成具有N個輸入并具有N個輸出的任意 的邏輯電路。而且,在具有N個AD對的MLUT中,能夠同時構成合計具有1?N的任意數的 輸入數并具有1?N的任意數的輸出數的任意的邏輯動作和連接部件。
[0150] 〔2.4〕具有 7 個 AD 對的 MLUT
[0151] 使用圖15?圖17,對在具有7個AD對的MLUT上實現真值表的動作的一例加以說 明。
[0152] 圖15為表示由MLUT構成的2位加法器的電路構成的一例的圖。2位加法器通過 將2個1位全加法器連接起來而構成。在圖15中,2位加法器具有將輸入A0、B0以及Cin 作為輸入使用,并將輸出SO以及進位輸出作為輸出使用的第一 1位全加法器。此外,具有 將輸入Al、B1以及第一 1位全加法器的進位作為輸入使用,并將輸出S1以及Cout作為輸 出使用的第二1位全加法器。
[0153] 第一 1位全加法器將輸入A0以及B0作為第一 2輸入X0R電路4. 401和第一 2輸 入AND電路152的輸入。將第一 2輸入X0R電路151的輸出以及輸入Cin作為第二2輸入 X0R電路153和第二2輸入AND電路154的輸入。將第一 2輸入AND電路152的輸出以及 第二2輸入AND電路154的輸出作為第一 2輸入OR電路155的輸入。而且,將第二2輸入 X0R電路153的輸出作為輸出S0,將第一 2輸入OR電路155的輸出作為進位輸出。
[0154] 第二1位全加法器將輸入A1以及B1作為第三2輸入X0R電路156和第三2輸入 AND電路157的輸入。將第三2輸入X0R電路156的輸出以及第一 2輸入OR電路155的輸 出作為第四2輸入X0R158電路和第四2輸入AND電路159的輸入。將第三2輸入AND電 路157的輸出以及第四2輸入AND電路159的輸出作為第二2輸入OR電路4. 410的輸入。 而且,將第四2輸入X0R電路158的輸出作為輸出S1,將第二2輸入OR電路160的輸出作 為輸出Cout。
[0155] 圖16為表示圖15的2位加法器動作的真值表的圖。圖15的2位加法器動作使 用輸入八031、80、81以及(^11的5個輸入。而且,使用輸出50、51以及(:〇此的3個輸出。
[0156] 圖17為表示具有7個AD對的MLUT的一例的圖。為了將圖15以及圖16中記載的 2位加法器作為真值表在圖17所示的MLUT30中實現,需要將5個AD對的邏輯控制用地址 線作為輸入線使用,將3個AD對的邏輯控制用數據線作為輸出線使用。而且,2個AD對能 夠用于連接部件。因此,在具有7個AD對的MLUT30中,能夠實現2位加法器的邏輯動作, 并且實現2個連接部件。
[0157] 例如,將AD對0用于輸入A0以及輸出S0,將AD對1用于輸入A1以及輸出S1,將 AD對2用于輸入Cin以及輸出Cout,將AD對3的地址線用于輸入B0。而且,能夠將第五 AD對AD4的地址線用于輸入B1。
[0158] 加法器為在構成四則運算等運算電路時使用得非常多的電路。此外,在通常的運 算處理中,能夠對2位以上的數據進行處理。因此,有利的是:通過用1個MLUT來構成由5 輸入3輸出構成的2位加法器,MPLD的布局/布線效率將提高。即,通過用1個MLUT來構 成2位加法器,能夠增加可搭載于具有同一數量的MLUT的MPLD上的運算電路的數量。而 且,也可以準備多位加法器以及多位乘法器等布線圖案固定了的邏輯電路,作為具有2位 加法器的模塊。
[0159] 此外,在具有7個AD對的MLUT中,若考慮到MPLD的布局/布線效率,則更加有利 的是:能夠在實現2位加法器的邏輯動作的基礎上,進一步實現2路的連接部件。即,在執 行布局/布線算法時,可以在配置了2位加法器的MLUT中進一步附加地具有連接部件。因 此,對配置于MLUT的真值表分別進行布線時的自由度提高。另外,所謂布局/布線,由于 MLUT作為邏輯部件以及/或連接部件工作,因此向MLUT寫入真值表數據即意味著邏輯動作 的布局以及/或MLUT間的布線。因此,將真值表數據的生成稱為"布局/布線"。
[0160]本例中,對在具有7個AD對的MLUT中同時實現2位加法器的邏輯動作和連接部件 的實施方式進行了說明。但是,在具有5個AD對的MLUT中,能夠實現2位加法器的邏輯動 作。此外,在具有6個AD對的MLUT中,能夠實現2位加法器的邏輯動作和1個連接部件。 而且,在具有8個AD對的MLUT中,能夠實現2位加法器的邏輯動作和3個連接部件。
[0161] 此外,在具有9個AD對的MLUT中,能夠實現4位加法器的邏輯動作。在具有10個 AD對的MLUT中,能夠實現4位加法器的邏輯動作和1個連接部件。這樣,如果是具有5? 10個左右的AD對的MLUT,能夠形成使布局/布線效率提高的構成。
[0162] 〔2. 5〕MLUT的物理配置
[0163] 圖18A為表示具有7個AD對的MLUT的一例的圖。圖18A所示的MLUT30具有地 址行譯碼器9c、地址列譯碼器9d和存儲元件40c。在圖18A所示的MLUT30中,輸入分別由 7個信號構成的邏輯動作用地址LA和寫入數據WD,并輸出分別由7個信號構成的讀出數據 RD和邏輯動作用數據LD。地址切換電路10a、輸出數據切換電路10b進行與使用圖4說明 的電路同樣的工作,因此省略其說明。
[0164] 地址行譯碼器9c對m根信號輸入亦即邏輯動作用地址LA進行譯碼,并向2的m 次方的字線輸出字選擇信號。存儲元件40c為2L個存儲元件塊(40c - 1,???,40c - 2L)。各存儲元件塊具有nX 2m個存儲元件,并配置于2m根字線、n根寫入數據線和n個輸 出位線的連接部分。m為N - L的整數,L為小于n的整數。"n,m,L"例如為"7,5,2"或 "7,4,3"。
[0165] 地址列譯碼器9d對L根信號輸入亦即邏輯動作用地址LA進行譯碼,生成2的L 次方的塊選擇信號,并通過塊選擇信號,選擇上述2L個存儲元件塊的任意一個存儲元件塊 的n個輸出位線。例如,在L = 2的情況下,存儲元件塊為22 = 4個,各存儲元件塊具有25 =32根字線以及輸出位線,所以,地址列譯碼器9d通過塊選擇信號選擇任意一個存儲元件 塊的輸出位線32根。此外,在L = 3的情況下,存儲元件塊為23 = 8個,各存儲元件塊具 有24 = 16根字線以及輸出位線,因此,地址列譯碼器9d通過塊選擇信號選擇任意一個存 儲元件塊的輸出位線16根。
[0166] 通過設置地址列譯碼器9d并沿列方向擴展存儲元件,能夠縮短輸出位線的長度。
[0167] 圖18B為表示將2個圖18A所示的MLUT30組合而成的MLUT的平面布置圖。圖 18B所示的MLUT30包含圖18A所示的MLUT所具有的構成。圖18B所示的MLUT30具有存儲 邏輯控制部l〇c、地址行譯碼器9c 一 1以及9c 一 2、地址列譯碼器9d - 1以及9d - 2、存 儲兀件40c - 1以及40c - 2、讀出驅動部11a - 1以及11a - 2。
[0168] 輸入從存儲邏輯控制部10c輸出的7個選擇地址信號的7個選擇地址線分別連接 于地址行譯碼器9c 一 1以及9c 一 2以及地址行譯碼器9d - 1以及9d - 2。地址行譯碼 器9c 一 1以及地址列譯碼器9d - 1向存儲元件40c - 1分別提供字選擇信號以及塊選擇 信號。地址行譯碼器9c 一 2以及地址列譯碼器9d - 2向存儲元件40c - 2分別提供字選 擇信號以及塊選擇信號。
[0169] 雖未作圖示,當分別由7個信號構成時,向圖18B所示的MLUT30中輸入邏輯動作 用地址LA和寫入數據WD,而輸出分別由7個信號構成的讀出數據RD和邏輯動作用數據LD。 雖未作圖示,還向圖18B所示的MLUT30中輸入存儲動作用地址MA和動作切換信號。
[0170] 在存儲邏輯控制部l〇c中配置有圖18A的地址切換電路10a和輸出數據切換電路 l〇b。存儲動作用地址MA、邏輯動作用地址LA、寫入數據WD、讀出數據RD和邏輯動作用數據 LD分別借助于存儲邏輯控制部10c針對MLUT30被進行輸入輸出。
[0171] 地址行譯碼器9c 一 1以及9c 一 2配置于存儲元件區域40c - 1與存儲元件40c - 2之間。
[0172] 第一以及第二讀出驅動部11a以及lib分別配置于第一以及第二存儲元件區域 40c以及40d和存儲邏輯控制部10c之間。第一以及第二讀出驅動部11a以及lib構成為 對從配置于第一以及第二存儲元件區域40c以及40d的存儲元件40讀出的7個位信號進 行放大,并使讀出速度高速化。
[0173] 在本例中,將輸入到地址行地址的選擇地址信號的數量設為4個或5個。通過將選 擇地址信號的數量設為5以下,由此,字選擇信號的數量成為24 = 16根或25 = 32根,能 夠縮短輸出位線的長度。因此,不需要一般的SRAM電路中必須的構成要素亦即讀出放大器 和預充電電路的電路構成得以實現。圖18A或圖18B所示的MLUT30與一般的SRAM不同, 不必使存儲元件數的數量大規模化。
[0174] 包含于MLUT的存儲元件的數量為至多10X210個左右。與作為一般作為數M位 以上的大規模電路構成的存儲裝置的SRAM存儲器相比,為非常小的電路。因此,在搭載于 作為一般的SRAM存儲器使用的存儲裝置時,在細微化上不成問題的讀出放大器、預充電電 路以及這些外圍電路的大小在MLUT的電路構成中成為問題。配置于一般的SRAM存儲器等 的存儲裝置中的讀出放大器以及預充電電路是為了防止布線層中產生的時間常數t變大 及信號的傳遞延遲時間變長而配置的電路。這是因為地址譯碼器與存儲元件之間的布線長 度較長。因此,通過將地址譯碼器與存儲元件之間的布線長度中產生的時間常數t抑制到 不影響MLUT的工作的程度,能夠形成不需要讀出放大器以及預充電電路的構成。在圖18A 以及圖18B所示的例子中,通過將輸入到地址行譯碼器的選擇地址信號的數量設為5個以 下,能夠將地址行譯碼器與存儲元件之間的布線長度抑制到不影響MLUT的工作的程度。
[0175] 而且在本例中,地址行譯碼器9c配置于第一存儲元件區域40c與第二存儲元件區 域40d之間。在一般的SRAM存儲器等的存儲裝置中,地址行譯碼器與存儲元件區域的一邊 相接而配置。當這樣配置了地址行譯碼器時,與地址行譯碼器相鄰的存儲元件和離地址行 譯碼器最遠的存儲元件的布線距離不同。因此,布線層中產生的時間常數t不同,所以來 自地址行譯碼器的信號傳遞延遲時間不同。如上所述,在本例中,形成沒有讀出放大器以及 預充電電路的構成,因此,理想的是成為縮小各存儲元件之間的信號傳遞延遲時間的差的 構成。所以,在本例中,將存儲元件區域劃分為具有相同大小的第一存儲元件區域40c和第 二存儲元件區域40d,在此存儲元件區域之間配置地址行譯碼器9c。由此,能夠抑制各存儲 元件之間的信號傳遞延遲時間。
[0176] 在本例中,地址行譯碼器的選擇地址的數量為5個,但地址行譯碼器的選擇地址 的數量可以設為6個以下的任意數。但是,在地址行譯碼器的數量為不適當的數量的情況 下,地址列譯碼器的布線長度有可能增大,有時不能構成適當的電路。對具有7個AD對的 MLUT進行了說明,而通過調整向地址行譯碼器以及地址列譯碼器進行布線的選擇地址數, 可以將AD對的數量設為5?10的任意數量。
[0177] 〔2.6〕MLUT 的第二例
[0178] 在上述圖4?圖18B中,對作為單端口型存儲元件使用的MLUT進行了說明,而對 于以下所示的作為2端口型存儲元件使用MLUT也可適用。
[0179] 圖19為表示MLUT的第二例的圖。圖19所示的MLUT30能夠同時進行數據的寫入 和讀出。圖19所示的MLUT30具有存儲動作用的地址譯碼器9a、邏輯動作用的地址譯碼器 9b和存儲元件40。與圖4所示的MLUT不同,圖19所示的MLUT能夠同時進行邏輯動作和 存儲動作。因此,與圖4所示的MLUT不同,圖19所示的MLUT30不需要動作切換選擇信號, 且不具有地址切換電路l〇a以及輸出數據選擇電路,而另一方面則具有各個地址用地址譯 碼器9a、9b。此外,與圖4所示的MLUT具有相同的構成。另外,包含于圖18B的MLUT30的 存儲元件為能夠進行數據的寫入和讀出的2端口存儲元件。
[0180] 〔2. 7〕2端口存儲元件
[0181] 圖20為表示2端口存儲元件的一例的圖。在圖19所示的例子中,2端口存儲元 件40B為SRAM,具有第一以及第二pMOS晶體管501、502和第三?第八nMOS晶體管503? 508 〇
[0182] 如圖20所示,由多個M0S晶體管構成的2端口 SRAM40與VDD、VSS、寫入字線WWL、 讀出字線RWL、第一寫入位線WBL、第二寫入位線qWBL、第一讀出位線RBL以及第二讀出位線 qRBL連接。施加于第一寫入位線WBL的信號為施加于第二寫入位線qWBL的信號的反相信 號。同樣地,施加于第一讀出位線RBL的信號為施加于第二讀出位線qRBL的信號的反相信 號。
[0183] 第一 pMOS晶體管501的源極與第二pMOS晶體管502的源極與VDD連接。第一 pMOS晶體管501的漏極與第一 nMOS晶體管503的源極、第二pMOS晶體管的柵極502、第二 nMOS晶體管的柵極194、第三nMOS晶體管195的源極和第四nMOS晶體管506的源極連接。
[0184] 第一 pMOS晶體管501的柵極與第一 nMOS晶體管503的柵極、第二pMOS晶體管 502的漏極、第二nMOS晶體管194的漏極、第五nMOS晶體管197的源極和第六nMOS晶體 管198的源極連接。第一 nMOS晶體管503的漏極和第二nMOS晶體管194的漏極與VSS連 接。
[0185] 第三nMOS晶體管195的漏極與第一寫入位線WBL連接。第三nMOS晶體管195的 柵極與寫入字線WWL連接。第四nMOS晶體管506的漏極與第一讀出位線RBL連接。第四 nMOS晶體管506的柵極與讀出字線RWL連接。
[0186] 第五nMOS晶體管197的漏極與第二寫入位線qWBL連接。第五nMOS晶體管197 的柵極與寫入字線WWL連接。第六nMOS晶體管198的漏極與第二讀出位線qRBL連接。第 六nMOS晶體管198的柵極與讀出字線RWL連接。
[0187] 通過上述構成,在寫入動作中,2端口 SRAM40通過寫入字線WWL的信號電平"H"來 保持第一寫入位線WBL以及第二寫入位線qWBL的信號電平。
[0188] 通過上述構成,在讀出動作中,2端口 SRAM40通過讀出字線RWL的信號電平"H"使 第一讀出位線RBL以及第二讀出位線qRBL成為在2端口 SRAM40保持的信號電平。
[0189] 這樣,存儲動作用地址MA以及邏輯動作用地址LA使存儲元件的1個字線活化,由 此,能夠僅對nX 2n個存儲元件的一部分進行存儲動作或邏輯動作。此外,存儲動作用地址 MA以及邏輯動作用地址LA與MLUT30內的所有存儲元件相連著,因此,能夠對n X 2n個存儲 元件的所有存儲元件進行存儲動作或邏輯動作。另外,具有2端口存儲元件的MLUT能夠同 時進行存儲動作和邏輯動作。
[0190] 〔2. 8〕MLUT 的第三例
[0191] 圖21為表示MLUT的第三例的圖。圖21所示的MLUT30具有地址譯碼器9a、地址 譯碼器%、第一存儲元件40a、第二存儲元件40b和NOT電路171。圖21所示的MLUT30輸 入存儲動作用地址MA、邏輯動作用地址LA、寫入數據WD和選擇信號,而輸出讀出數據RD和 邏輯動作用數據LD。
[0192] 第三例中的MLUT與第二例中的MLUT的不同點是第一存儲元件40a和第二存儲元 件40b能夠通過選擇信號分別進行不同的動作。即,能夠構成為:當第一存儲元件40a和第 二存儲元件40b的一方作為邏輯動作用而被選擇時,選擇另一方作為存儲動作用。
[0193] NOT電路171具有輸入選擇信號的輸入端子和輸出選擇信號反相后的信號的輸出 端子。
[0194] n X 2n個第一以及第二存儲元件40具有2n個存儲動作用字端子(未作圖示)、2n 個邏輯動作用字端子(未作圖示)、n個寫入數據端子(未作圖示)、n個讀出數據端子(未 作圖示)、n個邏輯動作用數據輸出端子(未作圖示)和選擇端子(未作圖示)。連接于存 儲動作用字端子的存儲動作用字端子分別構成為對n個存儲元件進行選擇。同樣地,連接 于邏輯動作用字端子的邏輯動作用字端子分別構成為對n個存儲元件進行選擇。向寫入數 據端子輸入寫入數據WD。當使MLUT進行存儲動作時或在重構MLUT時,使用寫入數據WD。 但是,在讀出已寫入MLUT的真值表數據時不使用寫入數據WD。即,構成為:在讀出已寫入 MLUT的真值表數據時,寫入數據WD不被施加于存儲元件,而是成為高阻抗輸入。讀出