數據 端子輸出存儲于通過存儲動作用字端子選擇的n個存儲元件中的數據。同樣地,邏輯動作 用數據輸出端子輸出存儲于通過邏輯動作用字端子選擇的n個存儲元件的數據。
[0195] 向第一存儲元件的選擇端子輸入選擇信號。向第二存儲元件的選擇信號輸入NOT 電路的輸出信號、即選擇信號反相后的信號。由此,構成為:在第一存儲元件與第二存儲元 件的一方作為邏輯動作用被選擇時,選擇另一方作為存儲動作用。通過采用這樣的構成,能 夠實現動態重構。即,能夠實現一方的存儲元件進行邏輯動作,而另一方的存儲元件進行存 儲動作。
[0196] 〔3〕MLUT 的構造
[0197] 對MLUT的構造加以說明。首先,對配置于MLUT區域的各MLUT的配置構造加以說 明,接著,對MLUT的AD對的連線構造加以說明。然后,最后對MLUT區域的構造的1個實施 方式加以說明。
[0198] 〔3. 1〕MLUT的配置構造
[0199] 在此,對配置于MLUT區域的各MLUT的配置構造加以說明。首先,對MLUT的矩陣 配置構造加以說明,接著,對MLUT的交替配置構造加以說明。
[0200] 〔3. 1. 1〕MLUT的矩陣配置構造
[0201] 圖22為表示MLUT配置的第一例的俯視圖。參照圖22,對MLUT區域中的MLUT的 配置的第一例加以說明。在圖22中,為了說明,將MLUT表示成圓形。但是,如上所述,在本 發明的通常的實施方式中,MLUT的平面形狀為長方形或正方形。此外,在以下的說明中,有 時將MLUT表示成圓形,但應該理解為各MLUT為長方形或正方形。
[0202] 在圖22中,將MLUT30配置成矩陣狀。MLUT區域8為半導體裝置中配置MLUT30 的區域。在MLUT區域8中,MLUT30以相同的距離間隔配置于第一方向,并以與第一方向的 間隔相同或不同的間隔配置于與第一方向成直角的第二方向。通過這樣配置MLUT30,在對 MLUT30進行近距離布線時,能夠規則地連線。另外,所謂近距離布線是指連接相鄰MLUT間 的布線。
[0203] 〔3. 1. 2〕MLUT的交替配置構造
[0204] 圖23為表示MLUT的配置的第二例的俯視圖。參照圖23,對MLUT區域8中的MLUT 的配置的第二例加以說明。在圖23所示的第二例中,MLUT30以相同的距離間隔配置于第一 方向,并以相同的間隔配置于與第一方向成直角的第二方向。此外,配置成具有以相同間隔 配置成與第一以及第二方向不同方向的四邊形的MLUT30。在本說明書中,將這樣的配置構 造稱為交替配置構造。另外,可以優選地使第一或第二方向的MLUT間的距離與配置成四邊 形的其他MLUT30之間的距離相同。此外,可以將配置成四邊形的MLUT30配置在由配置于 第一方向的2個MLUT30和配置于第二方向的2個MLUT30構成的長方形對角線的交點上。 該情況下,各MLUT30分別以相同的間隔配置于第一方向以及與第一方向垂直的第二方向。 此外,也可以以相同的間隔配置于與第一以及第二方向不同的第三以及第四方向。
[0205] 〔 3. 2〕MLUT間的AD對連線構造
[0206] 〔3. 2. 1〕AD對連線構造
[0207] 圖24為表示MLUT間的連線的一例的圖。在此所示的AD對是在使MLUT作為真值 表工作時作為MPLD的輸入輸出信號線使用的。MLUT也分別具有在將MLUT作為存儲器電 路使用時所使用的存儲動作用地址線、存儲動作用數據線以及控制信號線等其他布線。但 是,為了簡化說明,在圖24中省略AD對以外的布線。參照圖24,對相鄰MLUT間的連線、即 近距離布線的連線加以說明。另外,間隔布線是指對并非近距離布線的MLUT間進行連線的 AD對的布線。在圖24中,具有6個AD對的MLUT30、與MLUT30相鄰的第一 MLUT30a、第二 MLUT30b、第三MLUT30c、第四MLUT30d、第五MLUT30e和第六MLUT30f以交替配置的方式被 配置。此外,在圖24中,將平行于連結第一 MLUT30a與第四MLUT30d的直線的方向假定為 MLUT30的縱方向,將平行于連結第二MLUT30b與第六MLUT30f的直線的方向假定為MLUT區 域8的橫方向。
[0208] 在本例中,將MLUT30所具有的各AD對分別與不同的MLUT進行相鄰布線。即,第 一AD對與相鄰的第一MLUT30a連線。第二AD對與相鄰的第二MLUT30b連線。第三AD對 與相鄰的第三MLUT30C連線。第四AD對與相鄰的第四MLUT30d連線。第五AD對與相鄰的 第五MLUT30e連線。第六AD對與相鄰的第六MLUT30f連線。
[0209] 圖25為表示隔著相鄰的MLUT而隔開距離配置的2個MLUT的連接的一例的圖。 該情況下,MLUT30f作為對MLUT30a與MLUT30進行連接的連接部件而工作。這樣,在將 MLUT30f作為連接隔開距離配置的MLUT30a與MLUT30的連接部件使用的情況下,MLUTf?的 真值表的一部分被用于MLUT30與30a之間的連接關系,因此,能夠通過MLUT30f中的真值 表實現的邏輯電路的規模變小。如圖25所示,當將相鄰的MLUT用作連接部件來連接隔開 距離配置的MLUT30以及30a時,與圖24所示的MLUT相比,構成所希望的邏輯電路所需的 MLUT的總量將增加。
[0210] 圖26A?圖26D為表示構成所希望的邏輯電路所需的MLUT數量的一例的圖。圖 27為表示作為通過AD對與相鄰的MLUT連接的MLUT構造的密排配置構造31A和作為通過 AD對連接被間隔配置的MLUT之間的MLUT構造的非密排配置構造31B的圖。所希望的邏 輯電路是通過由自動布局布線工具將CLA加法器、RCA加法器、be加法器以及8字螺線LED 電路等的電路布局布線于具有200?1000左右的數量的MLUT的MPLD上來實現的。
[0211] 結果,在本比較中所使用的所有電路構成中,無論使用任何大小的MPLD,與具有 非密排配置構造31B的MPLD相比,具有密排配置構造31A的MPLD的非布局/布線效率均 變高。因此,與具有非密排配置構造31B的MPLD相比,具有密排配置構造31A的MPLD能 夠減少構成所希望的邏輯電路的MLUT的總量。
[0212] 圖28為表示密排配置構造中的AD對的數量的一例的圖。在圖28中,對手動構成 32位乘法電路的情況下的所需存儲器容量和關鍵路徑單元的數量進行了計算。如圖所示, 當MLUT所具備的AD對的數量為6以上時,關鍵路徑MLUT的數量將減少。此外,當MLUT所 具備的AD對的數量為6以上時,所需存儲器容量將增加。該結果表示:在AD對的數量少的 情況下,對MPLD20進行所希望的邏輯電路的布局布線時,在分別作為邏輯電路工作的MLUT 間的布線中作為開關用而插入的MLUT的數量將增加。當AD對的數量少時,能夠作為連接 部件發揮作用的MLUT的數量將受限。因此,如果不大量地通過作為連接部件發揮作用的 MLUT,則有可能無法在作為邏輯電路工作的MLUT間進行布線。結果,當AD對的數量少時, 實現邏輯電路所需的MLUT數量有可能增加。在圖28的例子中,理想的是將MLUT所具有的 N個AD對中的5個AD對用于作為邏輯電路而構成真值表。因此,優選MLUT所具備的AD對 的數量為5以上。
[0213] 另一方面,可以預測到的是:若增加MLUT所具備的AD對的數量,則在已經布局/ 布線時實際使用的每個MLUT的AD對的數量將減少。而且,因此,布局/布線效率有可能降 低。在圖28所示的通過手動進行32位乘法電路的布局/布線的情況下,當將AD對的數量 設為8時,布局/布線所需的區域增至將AD對的數量設為6時的4倍。
[0214] 〔3. 2. 2〕矩陣配置構造中的AD對連線構造
[0215] 圖29為表示MLUT的AD對的連線構造的一例的圖。MLUT30配置成矩陣狀,且分別 具有6個AD對。在圖29中,將平行于連接MLUT30和MLUT30a的直線的方向假定為MLUT 區域8的縱向。而且,將平行于連接MLUT30和MLUT30c的直線的方向假定為MLUT區域8 的橫向。MLUT30具有:與沿縱向配置的MLUT30a以及30b近距離布線的第一以及第二AD 對、與沿橫向配置的MLUT30C以及30d近距離布線的第三以及第四AD對、分別與位于縱向 的MLUT30的橫向相鄰的2個MLUT30e以及30f近距離布線的第五以及第六AD對。
[0216] 這樣,在本例中,配置于某列的MLUT(例如,MLUT30)的2個AD對分別與在第一 列方向相鄰的MLUT的橫向相鄰的2個MLUT近距離布線。而且,配置于與此列相鄰的列的 MLUT(例如,MLUT30C以及30d)的2個AD對分別與在作為第一列方向的反方向的第二列方 向相鄰的MLUT的橫向相鄰的2個MLUT近距離布線。通過這樣進行近距離布線,能夠形成 對相鄰的MLUT進行連線的AD對在同一平面上不交叉的構造。
[0217] 另外,在該例子中,所有的MLUT的第五以及第六AD對分別與沿縱向配置的MLUT 的橫向相鄰的2個MLUT近距離布線。但是,也可以成為將該AD對與沿橫向配置的MLUT的 縱向相鄰的MLUT近距離布線的構造。例如,MLUT30的第五以及第六AD對可以分別與沿橫 向配置的MLUT30的縱向相鄰的2個MLUT30e以及30g近距離布線。
[0218] 〔3. 2. 3〕交替配置構造中的AD對連線構造
[0219] 圖30為表示MLUT的AD對的連線構造的其他例的圖。MLUT30分別以交替配置構 造被配置,并分別具有6個AD對。在圖30中,將平行于連接MLUT30和MLUT30a的直線的方 向假定為MLUT區域8的縱向,將平行于連接MLUT30b和MLUT30f的直線的方向假定為MLUT 區域8的橫向。
[0220] MLUT30具有:與沿縱向配置的2個MLUT30a以及3d連線的第一以及第二AD對和 與4個MLUT30b、30c、30e以及30f近距離布線的第三、第四、第五以及第六AD對,其中,上 述4個MLUT30b、30c、30e以及30f配置在與配置有MLUT30的列相鄰的列的兩列的相鄰位 置。
[0221] 在本例中,能夠形成將MLUT連線的AD對在同一平面上不交叉的構造。而且,能夠 使所有MLUT的AD對的連線構造成為同樣的構造。另外,在該例子中,所有MLUT的2個AD 對與沿縱向配置的MLUT連線,但也可以成為將該AD對與沿橫向配置的MLUT連線的構造。 SP,可以使MLUT30的第一以及第二AD對不是與沿縱向配置的沿橫向配置的MLUT30a以及 3d近距離布線,而是與2個MLUT30h以及30k近距離布線。
[0222] 〔3. 2. 4〕具有D觸發器連線的MLUT的AD對連線構造
[0223] 圖31為表示MLUT的AD對的連線構造的其他例的圖。MLUT分別以交替配置構造 被配置,并分別具有7個AD對。此外,MLUT分別與D觸發器13相鄰而配置。在MLUT所具 有的7個AD對中,6個AD對與相鄰的6個MLUT分別近距離布線。剩下的1個AD對與相鄰 的D觸發器13連線。能夠使近距離布線的6個AD對形成具有與圖30所示的連線相同的 連線構造的近距離布線。剩下的1個AD對中的地址線與D觸發器13的D輸入連線,數據 線與Q輸出連線。對D觸發器13的所有CK輸入進行連線,并能夠使所有D觸發器13以1 個時鐘信號進行動作。此外,能夠按列對D觸發器13的CK輸入進行連線,使得D觸發器13 按列以不同的時鐘信號進行動作。此外,能夠將D觸發器13的CK輸入按8個或16個等任 意數的組進行連線,使D觸發器13在各組以不同的時鐘信號進行動作。
[0224] 在本例中,D觸發器與各MLUT的1個AD對連線,因此,能夠在MLUT區域形成時序 電路。在僅以只具有構成真值表的功能的MLUT構成的MLUT區域中,可以構成組合電路,但 很難構成時序電路。因此,在本例中,通過將D觸發器與各MLUT的1個AD對連線,能夠形 成時序電路。
[0225] 另外,在本例中,將D觸發器與AD對連線,但也可以連接置位復位觸發器、T觸發 器或JK觸發器等其他觸發器。此外,也可以連接具有置位輸入、復位輸入或QB輸出等輸入 輸出的D觸發器。而且,可以使與D觸發器的Q輸出連線的MLUT的數據線與D觸發器的QB 輸出連線。進而,無需所有MLUT分別具有與D觸發器連線的AD對,可以成為在構成MLUT 區域的MLUT中,僅規定比例的MLUT具有與D觸發器連線的AD對的構造。此外,在以下的 說明中,有時把使MLUT的1個AD對與D觸發器連線這一情況稱為D觸發器連線。
[0226] 〔3. 2. 5〕具有間隔布線的情況下的MLUT的AD對連線構造
[0227] 圖32為表示MLUT的AD對的連線構造的其他例的圖。MLUT30分別具有7個AD 對,并分別以交替配置構造被配置。在MLUT30所具有的7個AD對中,6個AD對與相鄰的6 個MLUT30分別近距離布線。剩下的1個AD對與逐列改變了 1列的MLUT30間隔布線。
[0228] 在本例中,MLUT30分別具有1個間隔布線,因此,與將MLUT30作為連接部件使用 來將MLUT之間進行連接相比,間隔布線能夠減少數據的傳播延遲時間。此外,在將邏輯電 路在MLUT區域8上按邏輯電路信息進行布局/布線時,間隔布線能夠提高布線的靈活性。 另外,間隔布線為并非近距離布線的MLUT間的連接布線。由此,通過與并非相鄰的MLUT的 MLUT連接,將產生上述間隔布線的效果。
[0229] 另外,在本例中,所有MLUT分別具有被間隔布線的AD對,但也可以成為僅規定比 例的MLUT具有進行間隔布線的AD對的構造。例如,可以將某種比例的MLUT的1個AD對 作為間隔布線使用,而將其他MLUT的1個AD對與D觸發器連線。
[0230] 〔3. 3〕MLUT區域的構造
[0231] 〔3. 3. 1〕MLUT區域的整體構造
[0232] 圖33為表示MLUT的AD對的連線構造的其他例的圖。參照圖33,對本例的MLUT 區域的整體構造的一例加以說明。在本例中,MLUT區域8具有以15行X 30列的交替配置 構造被配置的450個MLUT30。MLUT分別具有7個AD對,并將6個AD對作為近距離布線使 用。剩下的1個AD對用于間隔布線或D觸發器連線。在圖中,未連線有間隔布線的MLUT 與D觸發器連線。
[0233] 在本例中,使用以15行X 30列的交替配置構造被配置的具有7個AD對的MLUT, 對MLUT區域加以說明。但是,使用其他配置的MLUT能夠構成MLUT區域的事實是被本領域 技術人員明確理解的。此外,在配置于MLUT區域的MLUT中,連線有間隔布線的MLUT和與D 觸發器連線的MLUT的比例可以根據使用MPLD的用途以及功能來任意選擇。此外,在本例 中,MLUT的配置構造為交替配置構造,但是即使在矩陣配置構造中,也能夠具有與本例相同 的連線構造。即,也可以成為,在維持本例的布線構造的同時,將MLUT的配置構造從交替配 置構造在拓撲上變換為矩陣配置構造而得到的構造(參照圖29以及圖30)。
[0234] 〔3. 3. 2〕MLUT 塊的構造
[0235] 圖34為表示具有MLUT的MLUT塊的一例的圖。在本例中,MLUT塊是將3行X 6列 的MLUT作為1個塊而構成的塊。各塊內的MLUT分別根據基本相同的布線規則,進行間隔 布線或與D觸發器連線。
[0236] 以下,記述基本的連線規則。
[0237] 6個AD對用于近距離布線。該規則對于配置于MLUT區域8的端部的MLUT30也是 相同的。因此,本例中的MLUT區域8具有作為近距離布線而配置的AD對并將其作為輸入 輸出線AD對,通過這些AD對能夠與配置于半導體裝置100的其他構成要素連線。
[0238] 在包含于1個MLUT塊中的18個MLUT30中,6個MLUT將1個AD對與D觸發器連 線。因此,本例中的MLUT區域成為三分之一數量的MLUT與D觸發器連線。具體地講,在圖 34中為被賦予符號"30F"的MLUT30。即,在圖34中為下行左起第2列以及第3列的MLUT、 中間行左起第5列以及第6列的MLUT、和上行左起第3列以及第6列的MLUT。
[0239] 對包含在1個MLUT塊中的剩余的12個MLUT連線有間隔布線。間隔布線當中的4 根以在沿縱向配置的MLUT之間連線的第一間隔布線圖案進行連線。其他4根以在從左下 至右上排列的MLUT之間連線的第二間隔布線圖案進行連線。剩余的4根以在從右下至左 上排列的MLUT之間連線的第三間隔布線圖案進行連線。
[0240] 以第一間隔布線圖案被連線的MLUT為下行左起第1列以及第4列的MLUT、中間 行左起第1列的MLUT、和上行左起第4列的MLUT。在圖34中,這些MLUT分別被賦予符號 "30C"。下行左起第4列的MLUT和中間行左起第1列的MLUT分別與沿縱上方向離開的第5 個MLUT連線有間隔布線。下行左起第1列的MLUT和上行左起第4列的MLUT分別與沿縱 下方向離開的第5個MLUT連線有間隔布線。
[0241] 以第二間隔布線圖案被連線的MLUT為下行左起第6列的MLUT、中間行左起第2 列以及第3行的MLUT和上行左起第5列的MLUT。在圖34中,這些MLUT分別被賦予符號 "30L"。下行左起第6列的MLUT和中間行左起第3列的MLUT分別與沿右上方向離開的第5 個MLUT連線有間隔布線。中間行左起第2列的MLUT和上行左起第5列的MLUT分別與沿 左下方向離開的第5個MLUT連線有間隔布線。
[0242] 以第三間隔布線圖案被連線的MLUT為下行左起第5列的MLUT、中間行左起第4 行的MLUT和上行左起第1行以及第2列的MLUT。在圖34中,這些MLUT分別被賦予符號 "3R"。中間行左起第4列的MLUT和上行左起第1列的MLUT分別與沿左上方向離開的第5 個MLUT連線有間隔布線。下行左起第5列的MLUT和上行左起第2列的MLUT分別與沿右 下方向離開的第5個MLUT連線有間隔布線。
[0243] 圖35為表示具有15行X 30列的MLUT的MLUT區域中的近距離布線圖案的配置 的一例的圖。在圖35中示出以圓形形狀表示的450個MLUT和分別對相鄰的6個MLUT之 間進行連線的近距離布線。位于MLUT區域8的端部的MLUT30所具有的若干個AD對未連 線。如上所述,這些未連線的AD對能夠與輸入輸出電路部15或內部總線電路部等半導體 裝置內的其他構成部件連線。
[0244] 圖36?圖38中示出本例中的MLUT區域的第一?第三間隔布線圖案的配置。以 下,參照各圖,對第一?第三間隔布線圖案的配置的一例加以說明。
[0245] 〔3. 3. 3〕第一間隔布線圖案的配置構造
[0246] 圖36為表示具有15行X30列的MLUT的MLUT區域的第一間隔布線圖案的配置 的圖。在圖36中示出以圓形形狀表示的450個MLUT30、分別對相鄰的6個MLUT之間進行 連線的近距離布線和沿縱向每5個MLUT30進行連線的第一間隔布線圖案。另外,在配置于 應該以第一間隔布線圖案連線有間隔布線的位置上的MLUT中,位于MLUT區域8的上端部 以及下端部附近的若干個MLUT30未以第一間隔布線圖案連線有間隔布線。這些MLUT中應 該基于第一間隔布線的規則進行連線的MLUT不存在于MLUT區域8上。因此,以后述的第 四以及第五間隔布線圖案連線有間隔布線。
[0247] 〔3. 3. 4〕第二間隔布線圖案的配置構造
[0248] 圖37為表示具有15行X30列的MLUT的MLUT區域的第二間隔布線圖案的配置 的圖。在圖37中示出以圓形形狀表示的450個MLUT30、分別對相鄰的6個MLUT之間進行 連線的近距離布線和在從左下至右上排列的MLUT之間每5個MLUT進行連線的第二間隔布 線圖案。另外,與第一間隔布線圖案相同地,在配置于應該以第二間隔布線圖案連線有間隔 布線的位置的MLUT中,位于MLUT區域8的端部附近的若干個MLUT30以后述的第四以及第 五間隔布線圖案連線有間隔布線。
[0249] 〔3. 3. 5〕第三間隔布線圖案的配置構造
[0250] 圖38為表示具有15行X30列的MLUT的MLUT區域的第三間隔布線圖案的配置 的圖。圖中示出以圓形形狀表示的450個MLUT30、分別對相鄰的6個MLUT之間進行連線 的近距離布線和在從右下至左上排列的MLUT之間每5個MLUT進行連線的第三間隔布線圖 案。另外,與第一以及第二間隔布線圖案相同地,在配置于應該以第三間隔布線圖案連線有 間隔布線的位置的MLUT30中,位于MLUT區域8的端部附近的若干個MLUT30以后述的第四 以及第五間隔布線圖案連線有間隔布線。
[0251] 〔3. 3. 6〕第四間隔布線圖案的配置構造
[0252] 圖39為表示具有15行X30列的MLUT的MLUT區域的第四間隔布線圖案的配置 的圖。如上所述,第四間隔布線圖案的配置并不基于圖34所示的MLUT塊中所規定的連線 規則,而是用來對位于MLUT區域8的端部附近的若干個MLUT30進行連線。但是,第四間隔 布線圖案被配置成與第一?第三隔離布線圖案的配置類似的配置。第四布線圖案的規則如 以下所示。
[0253] 首先,與第一?第三間隔布線圖案相同地,第四間隔布線圖案被配置為與沿縱向、 從左下至右上方向或從右下至左上方向的任意一個方向的MLUT所排列的方向平行。
[0254] 接著,第四間隔布線圖案是沿任意一個方向按每4個分離的MLUT進行MLUT的配 置。為了遵照該規則,本來應該以第一?第三間隔布線圖案進行連線的若干個MLUT以第四 間隔布線圖案進行連線。例如,在圖38中,配置于上端行的左端列的M