(57)【要約】      （修正有）【課題】チップ内での占有面積を抑制できる書き換え可能な論理演算回路を備えた半導体装置を提供する。【解決手段】１つの第１入力端子と１つの第１出力端子を含み論理演算を行う論理ブロック１２０Ａを備える。論理ブロックは、一部の配線が前記１つの第１入力端子に接続される複数の配線１２２と、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第２入力端子と、第２出力端子と、を含む複数の第１選択回路１２４ａと、複数の第１選択回路の第２出力端子にそれぞれ接続される複数の第３入力端子と、第３出力端子と、を含むルックアップテーブル回路１２６ａと、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第４入力端子と、第４出力端子と、を含む複数の第２選択回路１２４ｂと、複数の第４出力端子に接続される複数の第５入力端子を含む論理ゲート回路１８２と、を備える。【選択図】図８
2017169070.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの第１入力端子と少なくとも１つの第１出力端子を含み論理演算を行う論理ブロックを備え、前記論理ブロックは、
複数の配線であって、その少なくとも一部の配線が前記少なくとも１つの第１入力端子に接続される複数の配線と、
複数の第１選択回路であって、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第２入力端子と、第２出力端子と、を含む複数の第１選択回路と、
前記複数の第１選択回路の前記第２出力端子にそれぞれ接続される複数の第３入力端子と、第３出力端子と、を含むルックアップテーブル回路と、
複数の第２選択回路であって、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第４入力端子と、第４出力端子と、を含む複数の第２選択回路と、
前記複数の第４出力端子に接続される複数の第５入力端子を含み、ＡＮＤ回路およびＯＲ回路のうちの少なくとも一方を含む回路と、
を備えた半導体装置。
【請求項２】
前記少なくとも一方を含む回路は、ＮＯＴ回路を更に備えた請求項１記載の半導体装置。
【請求項３】
前記論理ブロックは、
前記複数の配線のうちの一部の配線に接続される複数の第６入力端子と、第５出力端子と、を含む第３選択回路と、前記第５出力端子に接続される第７入力端子および前記第１出力端子に接続される第６出力端子を含む第１フリップフロップと、を更に備えた請求項１または２記載の半導体装置。
【請求項４】
前記第６出力端子は、前記複数の配線のうちの少なくとも一つの配線にも接続される請求項３記載の半導体装置。
【請求項５】
第８入力端子と第７出力端子とを含み前記第３出力端子に前記第８入力端子が接続された第２フリップフロップと、複数の第９入力端子と第８出力端子を含む第４選択回路と、を更に備え、
前記第４選択回路は、前記第９入力端子の一つが前記第３出力端子に接続され、残りのうちの一つが前記第７出力端子に接続され、前記第８出力端子が前記第１出力端子に接続される請求項１乃至４のいずれかに記載の半導体装置。
【請求項６】
前記第８出力端子は前記複数の配線のうちの少なくとも一つの配線にも接続される請求項５記載の半導体装置。
【請求項７】
第１０入力端子と第９出力端子とを含み前記少なくとも一方を含む回路の出力端子に前記第１０入力端子が接続された第３フリップフロップと、複数の第１１入力端子と第１０出力端子とを含む第５選択回路と、を更に備え、
前記第５選択回路は、前記複数の第１１入力端子の一つが前記少なくとも一方を含む回路の前記出力端子に接続され、残りのうちの一つが前記第９出力端子に接続され、第１０出力端子が前記第１出力端子に接続される請求項１乃至６のいずれかに記載の半導体装置。
【請求項８】
前記第１０出力端子が前記複数の第２配線のうちの少なくとも一つの配線にも接続される請求項７記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体装置に関する。
【背景技術】
【０００２】
近年、フィールドプログラマブルゲートアレイ（以下、ＦＰＧＡ(Field Programmable Gate Array)）に代表されるリコンフィギャラブルな半導体装置が注目されている。この半導体装置に含まれる書き換え可能な論理演算回路は、特定の入力数（典型的には３から６程度）の真理値表を実現する回路、すなわちルックアップテーブル回路のネットワークで形成されている。
【０００３】
書き換え可能な真理値表により構成される論理演算回路は、組み込まれている真理値表の入力の内の一部のみ使用される場合があり、チップ内での占有面積が無駄に使用されていると云う問題点があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６，７９８，２３９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本実施形態は、チップ内での占有面積を抑制することのできる書き換え可能な論理演算回路を備えた半導体装置を提供する。
【課題を解決するための手段】
【０００６】
本実施形態による半導体装置は、少なくとも１つの第１入力端子と少なくとも１つの第１出力端子を含み論理演算を行う論理ブロックを備え、前記論理ブロックは、複数の配線であって、その少なくとも一部の配線が前記少なくとも１つの第１入力端子に接続される複数の配線と、複数の第１選択回路であって、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第２入力端子と、第２出力端子と、を含む複数の第１選択回路と、前記複数の第１選択回路の前記第２出力端子にそれぞれ接続される複数の第３入力端子と、第３出力端子と、を含むルックアップテーブル回路と、複数の第２選択回路であって、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第４入力端子と、第４出力端子と、を含む複数の第２選択回路と、前記複数の第４出力端子に接続される複数の第５入力端子を含み、ＡＮＤ回路およびＯＲ回路のうちの少なくとも一方を含む回路と、を備えている。
【図面の簡単な説明】
【０００７】
【図１】書き換え可能な論理演算回路を備えた半導体装置の一例を示すブロック図。
【図２】論理ブロックの一具体例を示す回路図。
【図３】基本論理エレメント内の選択回路の一具体例を示す回路図。
【図４】基本論理エレメント内のルックアップテーブル回路の一具体例を示す回路図。
【図５】ＡＮＤ回路の一具体例を示す回路図。
【図６】ＯＲ回路の一具体例を示す回路図。
【図７】一実施形態による半導体装置を示すブロック図。
【図８】一実施形態の半導体装置に用いられる論理ブロックの一例を示す回路図。
【図９】図９（ａ）乃至９（ｄ）は、書き換え可能な論理回路と書き換え不能な論理回路の個数および配置例を示す図。
【図１０】図１０（ａ）乃至１０（ｄ）は、書き換え可能な論理回路と書き換え不能な論理回路の個数および配置例を示す図。
【発明を実施するための形態】
【０００８】
まず、本発明の実施形態を説明する前に、本発明に至った経緯について説明する。
【０００９】
書き換え可能な論理演算回路を備えた半導体装置の一例を図１に示す。この半導体装置１００は、アレイ状に配置された論理演算を行う複数の論理ブロック（以下、ＬＢとも云う）１２０と、各論理ブロック１２０の周囲に配列された複数のスイッチブロック（以下、ＳＢとも云う）１３０と、を備えている。各スイッチブロック１３０は、縦横に配置された配線間の接続または非接続を制御する半導体素子（図示せず）を有しており、任意の方向に信号を伝達することを可能にする。また、スイッチブロック１３０は、近接して配置された論理ブロック１２０との接続も行う。
【００１０】
また、論理ブロック１２０は、配線群１２２と、複数の選択回路（以下、ＭＵＸとも云う）１２４ａ、１２４ｂと、複数の基本論理エレメント（以下、ＢＬＥとも云う）１２６と、フリップフロップ（以下、ＦＦとも云う）１２８と、を備えている。基本論理エレメント１２６は、論理ブロック１２０の入力端子、配線群１２２の一部の配線、選択回路１２４ａを介して送られる信号に基づいて論理演算を行い、その演算結果を論理ブロック１２０の出力端子の何れかと、配線群１２２とに出力する。
【００１１】
基本論理エレメント１２６は、ルックアップテーブル回路１２６ａと、選択回路（以下、ＭＵＸとも云う）１２６ｂと、フリップフロップ１２６ｃとを備えている。ルックアップテーブル回路１２６ａは任意の論理関数を実現することができる。なお、フリップフロップ１２６ｂは、同期出力を得る、または順序回路を構成する際に用いられる。したがって、フリップフロップを含まない基本論理エレメントも存在してもよい。ルックアップテーブル回路１２６ａは、基本論理エレメント１２６に入力された信号の値に基づいて論理演算を行い、その演算結果を、選択回路１２６ｂを介して論理ブロック１２０の出力端子の何れかと、配線群１２２とに出力するとともにフリップフロップ１２６ｃの入力端子にも出力する。フリップフロップ１２８は、入力端子が選択回路１２４ｂの出力端子に接続され、出力端子が論理ブロック１２０の出力端子に接続されるとともに配線群１２２の一つの配線に接続される。
【００１２】
以下では、論理ブロック１２０について図２を参照して詳細に説明するが、この論理ブロック１２０に含まれるルックアップテーブル回路としては、入力数が４であるルックアップテーブル回路を例に取って説明する。
【００１３】
図２に示すように、この論理ブロック１２０は、図１で説明したと同様に、複数の配線を有する配線群１２２と、複数の選択回路１２４ａ、１２４ｂと、複数の基本論理エレメント１２６と、複数のフリップフロップ１２８と、を備えている。各基本論理エレメント１２６は、ルックアップテーブル回路１２６ａと、選択回路１２６ｂと、フリップフロップ１２６ｃと、を備えている。
【００１４】
各選択回路１２４ａは、例えば８つの入力端子がそれぞれ配線群１２２の一部の配線と接続されている。４つの選択回路１２４ａのそれぞれの出力端子がルックアップテーブル回路１２６ａの４つの入力端子に接続される。ルックアップテーブル回路１２６ａの出力端子は、フリップフロップ１２６ｃの入力端子に接続されるとともに選択回路１２６ｂの１つの入力端子に接続される。選択回路１２６ｂの出力端子は論理ブロック１２０の出力端子に接続されるとともに、配線群１２２のうちの１つの配線に接続される。なお、各フリップフロップ１２８に対応して１つの選択回路１２４ｂが配置され、フリップフロップ１２８の入力端子は対応する選択回路１２４ｂの１つの出力端子に接続される。フリップフロップ１２８の出力端子は論理ブロック１２０の出力端子の何れかに接続されるとともに、配線群１２２のうちの１つの配線に接続される。
【００１５】
選択回路１２４ａ、１２４ｂ、または選択回路１２６ｂとして、例えば図３に示す選択回路１４０が用いられる。この選択回路１４０においては入力数がＮ（≧２）個である。なお、図２に示す選択回路１２４ａ、１２４ｂにおいてＮは図１の１つの論理ブロック内に配置された基本論理エレメントとフリップフロップとの入力の総数と、論理ブロックの入力端子の数との和であり、選択回路１２６ｂにおいてＮは２である。
【００１６】
この選択回路１４０はｎ（≧１）段の選択部１４２１〜１４２ｎを備えている。各選択部１４２ｉ（ｉ＝１，・・・，ｎ）は、メモリＭｉと、インバータ１４４ｉと、ｋｉ（２≦ｋｉ≦２ｉ）個のトランスファーゲート１４６と、を有している。各トランスファーゲート１４６は、一対のｐチャネルトランジスタおよびｎチャネルトランジスタを備えている。各メモリＭｉ（ｉ＝１，・・・，ｎ）は、データ「０」またはデータ「１」を記憶する。これらのデータは、半導体装置が使用されるときに外部から各メモリＭｉ（ｉ＝１，・・・，ｎ）に格納される。インバータ１４４ｉ（ｉ＝１，・・・，ｎ）は、入力端子がメモリＭｉに接続されている。
【００１７】
各選択部１４２ｉ（ｉ＝１，・・・，ｎ）においては、ｋｉ（２≦ｋｉ≦２ｉ）個のトランスファーゲート１４６は、２個を１組としたトランスファーゲート群に分けられる。各トランスファーゲート群においては、一方のトラスファーゲートのｐチャネルトランジスタのゲートおよび他方のトランスファーゲートのｎチャネルトランジスタのゲートがインバータ１４４ｉの出力端子に接続される。上記一方のトランスファーゲートのｎチャネルトランジスタのゲートおよび上記他方のトランスファーゲートのｐチャネルトランジスタのゲートがメモリＭｉに接続される。また、各選択部１４２ｉ（ｉ＝１，・・・，ｎ−１）の各トランスファーゲートにおいては、入力端子が選択部１４２ｉ＋１における１組のトランスファーゲート群の２つのトランスファーゲートの出力端子にそれぞれ接続される。選択部１４２ｎは、Ｎ（≦２ｎ）個のトランスファーゲート１４６を有し、上からｊ（１≦ｊ≦Ｎ）番目のトランスファーゲートの入力端子が入力信号Ｓｊを受ける。
【００１８】
このような構成を有する選択回路１４０においては、入力信号Ｓ１〜ＳＮのうちの１つが選択回路１４０の出力端子ＯＵＴから出力される。
【００１９】
このような構成を有する選択回路１２４ａ、１２４ｂにより、各基本論理エレメント１２６におけるルックアップテーブル回路１２６ａの入力端子およびフリップフロップ１２８の入力端子が、論理ブロック１２０の入力端子に接続されるか、または他の基本論理ブロック１２６におけるルックアップテーブル回路１２６ａの出力端子または他のフリップフロップ１２８の出力端子に接続される。
【００２０】
また、各基本論理エレメント１２６における入力数が２の選択回路１２６ｂにより、ルックアップテーブル回路１２６ａの出力端子およびフリップフロップ１２６ｃの出力端子の何れかから出力される信号が上記基本論理エレメント１２６の出力端子から出力される。
【００２１】
各選択回路１４０内のメモリ、すなわちメモリＭ１〜Ｍｎに記憶される値を設定することにより、ルックアップテーブル回路１２６ａないしフリップフロップ１２８の入力信号の接続先、または各基本論理エレメントにおけるルックアップテーブル回路１２６ａないしフリップフロップ１２６ｃの何れの出力信号が選択されるかを規定し、このことにより回路全体として、所望の論理系を実現することができる。
【００２２】
ネットワークを形成しているルックアップテーブル回路の入力数をＮとすると、すべてのルックアップテーブル回路においてＮ個の入力の全てが使用されているとは限らず、その内のＭ（＜Ｎ）個を入力として持つルックアップテーブル回路として使用される場合もある。
【００２３】
次に、Ｎ個の入力を持つルックアップテーブル回路の一例を図４に示す。このルックアップテーブル回路１５０は、Ｎ個の選択部１５２１〜１５２Ｎを備えている。各選択部１５２ｉ（ｉ＝１，・・・，Ｎ）は、インバータ１５４ｉと、２ｉ個のトランスファーゲート１５６と、を有している。各トランスファーゲート１５６は、一対のｐチャネルトランジスタおよびｎチャネルトランジスタを備えている。インバータ１５４ｉ（ｉ＝１，・・・，Ｎ）は、入力端子がルックアップテーブル回路１５０の入力端子ＩＮｉに接続される。
【００２４】
各選択部１５２ｉ（ｉ＝１，・・・，Ｎ）においては、２ｉ個のトランスファーゲート１５６は、２個を１組としたトランスファーゲート群に分けられる。各トランスファーゲート群においては、一方のトラスファーゲートのｐチャネルトランジスタのゲートおよび他方のトランスファーゲートのｎチャネルトランジスタのゲートがインバータ１５４ｉの出力端子に接続される。上記一方のトランスファーゲートのｎチャネルトランジスタのゲートおよび上記他方のトランスファーゲートのｐチャネルトランジスタのゲートが選択回路１５２iの入力端子ＩＮｉに接続される。また、各選択部１５２ｉ（ｉ＝１，・・・，Ｎ−１）の各トランスファーゲートにおいては、入力端子が選択部１５２ｉ＋１における１組のトランスファーゲート群の２つのトランスファーゲートのそれぞれの出力端子に接続される。選択部１５２Ｎは、２Ｎ個のトランスファーゲート１５６を有し、上からｊ（１≦ｊ≦２Ｎ）番目のトランスファーゲートの入力端子が論理値ＬＶｊを受ける。
【００２５】
このような構成を有するルックアップテーブル回路１５０においては、論理値ＬＶ１〜ＬＶ２Ｎのうちの１つが選択されてルックアップテーブル回路１５０の出力端子ＯＵＴから出力される。
【００２６】
これらの２Ｎ個の論理値ＬＶ１〜ＬＶ２Ｎとしては、このルックアップテーブル回路１５０で演算処理を行いたい論理系に従って定まる値を図示しないメモリに記憶する。このルックアップテーブル回路１５０において必要なトランジスタの数は、論理値を記憶するメモリ部分を除くと、各選択部１５２ｉ（ｉ＝１，・・・，Ｎ）において、２ｉ個のトランスファーゲート１５６と、インバータ１５４ｉとを有し、各トランスファーゲート１５６は２つのトランジスタから構成され、インバータ１５４ｉは２個のトランジスタから構成される。このため、各選択部１５２ｉ（ｉ＝１，・・・，Ｎ）においては、２ｉ＋１＋２個のトランジスタが必要となる。したがって、ルックアップテーブル回路１５０全体としては、合計で２Ｎ＋２＋２Ｎ−４個必要となる。
【００２７】
そして論理値の記憶に例えば６個のトランジスタからなるＳＲＡＭ（Static Random Access Memory）を用いたとすると、各々の論理値に６個ずつ必要となる。それ故、合計では５×２Ｎ＋１＋２Ｎ−４個のトランジスタが必要となる。Ｎが２，３，４，５，６の場合に必要なトランジスタの数は各々４０，８２，１６４，３２６，６４８個となる。この様に必要なトランジスタの数は入力数Ｎの増大に伴って急激に増大する。
【００２８】
上述したように、ルックアップテーブル回路においては入力の一部しか用いられない場合があるため、論理ゲートとしてルックアップテーブル回路を用いた半導体装置においては、過剰に多くのトランジスタが配置される。その結果として過剰に大きなチップ面積が必要になる。
【００２９】
そこで、本発明者達は、鋭意研究に努めた結果、例えば、２入力のルックアップテーブル回路を２入力のＡＮＤ回路またはＯＲ回路等を含む論理ゲートで置き換えることができれば、チップにおける占有面積を抑制することが可能になると、考えた。
【００３０】
例えば、２個の入力ＩＮ１，ＩＮ２を有する論理ゲートとしてＡＮＤ回路およびＯＲ回路を形成した具体例を図５および図６にそれぞれ示す。図５および図６からわかるように、ＡＮＤ回路１６０およびＯＲ回路１７０のいずれも、６個のトランジスタで実現することが可能となる。これに対して２個の入力ＩＮ１，ＩＮ２を有するルックアップテーブル回路を実現するために必要なトランジスタの数は、上述したように、４０個である。
【００３１】
このように、ルックアップテーブル回路の一部を論理ゲートで置き換えれば、チップにおける論理ブロックの占有面積を抑制することが可能になる。
【００３２】
以下に、ルックアップテーブル回路の一部を論理ゲートで置き換えた半導体装置を実施形態として説明する。
【００３３】
（一実施形態）
一実施形態による半導体装置を図７に示す。この実施形態の半導体装置１０はＦＰＧＡを有し、このＦＰＧＡは、アレイ状に配置された論理演算を行う複数の論理ブロック（以下、ＬＢとも云う）１２０Ａと、各論理ブロック１２０Ａの周囲に配列された複数のスイッチブロック（以下、ＳＢとも云う）１３０と、を備えている。各スイッチブロック１３０は、縦横に配置された配線間の接続または非接続を制御する半導体素子（図示せず）を有しており、任意の方向に信号を伝達することを可能にする。また、スイッチブロック１３０は、近接して配置された論理ブロック１２０Ａとの接続も行う。
【００３４】
また、論理ブロック１２０Ａは、配線群１２２と、複数の選択回路（以下、ＭＵＸとも云う）１２４ａ、１２４ｂと、複数の基本論理エレメント（以下、ＢＬＥとも云う）１２６と、フリップフロップ（以下、ＦＦとも云う）１２８と、少なくとも１つの論理ゲートエレメント１８０と、を備えている。
【００３５】
基本論理エレメント１２６は、論理ブロック１２０Ａの入力端子、配線群１２２の一部の配線、選択回路１２４ａを介して送られる信号に基づいて論理演算を行い、その演算結果を論理ブロック１２０Ａの出力端子の何れかと、配線群１２２とに出力する。基本論理エレメント１２６は、ルックアップテーブル回路１２６ａと、選択回路（以下、ＭＵＸとも云う）１２６ｂと、フリップフロップ１２６ｃとを備えている。ルックアップテーブル回路１２６ａは任意の論理関数を実現することができる。なお、フリップフロップ１２６ｂは、同期出力を得る、または順序回路を構成する際に用いられる。したがって、フリップフロップを含まない基本論理エレメントも存在してもよい。ルックアップテーブル回路１２６ａは、基本論理エレメント１２６に入力された信号の値に基づいて論理演算を行い、その演算結果を、選択回路１２６ｂを介して論理ブロック１２０Ａの出力端子の何れかと配線群１２２とに出力するとともにフリップフロップ１２６ｃの入力端子に出力する。
【００３６】
以下では、論理ブロック１２０Ａについて図８を参照して詳細に説明するが、この論理ブロック１２０Ａに含まれるルックアップテーブル回路としては、入力数が４であるルックアップテーブル回路を例に取って説明する。
【００３７】
図８に示すように、この論理ブロック１２０Ａは、図１で説明したと同様に、複数の配線を有する配線群１２２と、複数の選択回路１２４ａ、１２４ｂと、複数の基本論理エレメント１２６と、複数のフリップフロップ１２８と、少なくとも１つの論理ゲートエレメント１８０と、を備えている。各基本論理エレメント１２６は、ルックアップテーブル回路１２６ａと、選択回路１２６ｂと、フリップフロップ１２６ｃと、を備えている。また、論理ゲートエレメント１８０は、ＡＮＤ回路およびＯＲ回路の少なくとも１方の回路を備えた論理ゲート回路１８２と、フリップフロップ（以下、ＦＦとも云う）１８４と、選択回路（以下、ＭＵＸとも云う）１８６と、を備えている。
【００３８】
各選択回路１２４ａは、図２で説明した選択回路１２４と同じ構成を有している。すなわち、選択回路１２４ａは、例えば１２個の入力端子がそれぞれ配線群１２２の一部の配線と接続されている。４つの選択回路１２４ａのそれぞれの出力端子がルックアップテーブル回路１２６ａの４つの入力端子に接続される。ルックアップテーブル回路１２６ａの出力端子は、フリップフロップ１２６ｃの入力端子に接続されるとともに選択回路１２６ｂの１つの入力端子に接続される。選択回路１２６ｂの出力端子は論理ブロック１２０Ａの出力端子の何れかに接続されるとともに、配線群１２２のうちの１つの配線に接続される。なお、各フリップフロップ１２８に対応して１つの選択回路１２４ｂが配置され、フリップフロップ１２８の入力端子は対応する選択回路１２４ｂの１つの出力端子に接続される。フリップフロップ１２８の出力端子は論理ブロック１２０Ａの出力端子の何れかに接続されるとともに、配線群１２２のうちの１つの配線に接続される。
【００３９】
選択回路１２４ａ、１２４ｂ、選択回路１２６ｂ、または選択回路１８６としては、例えば図３に示す選択回路１４０が用いられる。なお、この選択回路１４０については説明済みのため、省略する。
【００４０】
このような構成を有する選択回路１２４ａにより、各基本論理エレメント１２６におけるルックアップテーブル回路１２６ａの入力端子およびフリップフロップ１２８の入力端子が、論理ブロック１２０の入力端子に接続されるか、または他の基本論理ブロック１２６におけるルックアップテーブル回路１２６ａの出力端子または他のフリップフロップ１２８の出力端子または他の論理ゲートエレメント１８０の出力端子に接続される。
【００４１】
また、各基本論理エレメント１２６における入力数が２の選択回路１２６ｂにより、ルックアップテーブル回路１２６ａの出力端子およびフリップフロップ１２６ｃの出力端子の何れかから出力される信号が上記基本論理エレメントの出力端子から出力される。
【００４２】
各選択回路１２４a、１２４ｂ、１２６ｂ内のメモリ、すなわちメモリＭ１〜Ｍｎに記憶される値を設定することにより、ルックアップテーブル回路１２６ａないしフリップフロップ１２８の入力信号の接続先、ないし各基本論理エレメントにおけるルックアップテーブル回路１２６ａないしフリップフロップ１２６ｃの何れの出力信号が選択されるかを規定し、そのことにより回路全体として、所望の論理系を実現することができる。
【００４３】
論理ゲートエレメント１８０内の論理ゲート回路１８２は、第１および第２入力端子を有し、第１入力端子は２つの選択回路１２４ａのうちの一方の選択回路の出力端子に接続され、第２入力端子は２つの選択回路１２４ａのうちの他方の選択回路の出力端子に接続される。また、論理ゲート回路１８２の出力端子は、フリップフロップ１８４の入力端子に接続されるとともに選択回路１８６の２つの入力端子のうちの一方の入力端子に接続される。選択回路１８６の他方の入力端子はフリップフロップ１８４の出力端子に接続され  る。なお、論理ゲート回路１８２は、ルックアップテーブル回路１２６ａと異なり書き換え不能である。すなわち、論理ブロック１２０Ａは、書き換え可能な真理値表、すなわちルックアップテーブル回路１２６ａを備えているとともに書き換え不能な論理ゲート回路１８２をも備えている。
【００４４】
なお、図８に示す配線群１２２の配線はいずれも、その配置されている論理ブロック１２０Ａの内部に含まれるように配置されており、論理ブロック１２０Ａの外部にまで延在するものではない。
【００４５】
（論理系の変換）
所望の論理系に対し、それと論理的に等価であるルックアップテーブル回路の組み合わせで表される論理系への変換は次の様にして行われる。所望の論理系は真理値表の組で与えられる。個々の真理値表を考えると、入力の可能な組み合わせの各々に対して出力値としてデータ「０」またはデータ「１」が与えられている。真理値表の入力数をｎとする。例えば出力値として「１」を与える入力値の組を抽出する。それらがｍ組あるとして、それらを｛ａ１１，ａ１２，  …，ａ１ｎ｝、｛ａ２１，ａ２２，…，ａ２ｎ｝．…，｛ａｍ１，ａｍ２，…，ａｍｎ｝と表す。ａｉｊ（１≦ｉ≦ｍ）（１≦ｊ≦ｎ）は、データ「０」またはデータ「１」を表す。
【００４６】
入力をｉｎ１，ｉｎ２，…，ｉｎｎとすると、その真理値表は、例えば次の論理式と論理的に等価となる。但し、１≦ｉ≦ｍ、１≦ｊ≦ｎに対し、ａｉｊ＝０ならばｂｉｊ＝／ｉｎｊ、ａｉｊ＝１ならばｂｉｊ＝ｉｎｊを意味する。ここに記号／は論理的な否定を表す。
【００４７】
（…（ｂ１１ＡＮＤｂ１２）ＡＮＤｂ１３）ＡＮＤｂ１４）ＡＮＤ…）ＡＮＤｂ１ｎ）ＯＲ
（…（ｂ２１ＡＮＤｂ２２）ＡＮＤｂ２３）ＡＮＤｂ２４）ＡＮＤ…）ＡＮＤｂ２ｎ）ＯＲ
…
（…（ｂｍ１ＡＮＤｂｍ２）ＡＮＤｂｍ３）ＡＮＤｂｍ４）ＡＮＤ…）ＡＮＤｂｍｎ）
この様に表すと、任意の真理値表は、２入力のＡＮＤ回路と、２入力のＯＲ回路と、ＮＯＴ回路（すなわちインバータ）と、により表される。それ故、真理値表の組み合わせである任意の論理系は、ＡＮＤ回路と、ＯＲ回路と、ＮＯＴ回路とにより表される。この様に論理系をＡＮＤ回路と、ＯＲ回路と、ＮＯＴ回路とにより表したものはＡＩＧ（And Inverter Graph）と呼ばれる。なお、特定の論理系をこの特定の論理系と論理的に等価であるＡＩＧで表す方法は周知であるが、その表し方は一意的とは限らない。
【００４８】
先ず、このようにして所望の論理系をＡＩＧに変換する。ルックアップテーブル回路の入力数をＮとすると、続いてＡＩＧをそれと論理的に等価であり且つ入力数がＮ個以下のルックアップテーブル回路のネットワークに変換する必要がある。それは次のようになされる。
【００４９】
先ず、ＡＩＧの出力に着目する。ＡＩＧの出力と同じ出力を持ち且つ全体の入力がＮ個以下となるＡＮＤ回路、ＯＲ回路、またはＮＯＴ回路からなる組を、この組と論理的に等価な一つのルックアップテーブル回路に置き換える。
【００５０】
次に、上記ルックアップテーブル回路の入力の各々に対し、上記入力を出力に持ち且つ全体の入力がＮ個以下となる、ＡＮＤ回路、ＯＲ回路、またはＮＯＴ回路の組をこの組と論理的に等価な一つのルックアップテーブル回路に置き換える。この操作を、所望の論理系の入力に至るまで続ける。この様にすることで所望の論理系は入力数がＮ個以下のルックアップテーブル回路のネットワークに変換される。
【００５１】
なお、ここには所望の論理系が組み合わせ論理の場合を例に取って説明したが、順序論理の場合にはその内に存在している論理値を一時的に保持する素子であるフリップフロップの各々に対して、フリップフロップの入力を仮想的に論理系の出力、フリップフロップの出力を仮想的に論理系の入力、と見做すと上記した操作と同様の操作により、先ずＡＩＧに変換され、続いてルックアップテーブル回路のネットワークに変換される。
【００５２】
上記操作を実際に行い、得られた最終的な論理系において、２つの入力を持つルックアップテーブル回路を調べた。２つの入力は、各々データ「０」とデータ「１」との２種類の論理値を取り得るので、その組み合わせは「００」、「０１」、「１０」、「１１」の４通りが可能である。そして、これらの４通りの各々に対応する出力もまたデータ「０」とデータ「１」の２種類の論理値を取り得るので、２つの入力を持つルックアップテーブル回路は１６（＝２４）通りの出力のパターンがあり得る。
【００５３】
そこで、ルックアップテーブル回路の入力数が３、４、５、６の各々の場合に対して、２つの入力を持つルックアップテーブル回路の内で如何なる出力のパターンを持つものが多く現れるかを本発明者達は調べた。その結果は以下の通りであった。
【００５４】
２入力のＡＮＤ回路と、２入力のＯＲ回路とが多く現れることが分かった。１６通りあり得る出力パターンを持ちかつ２つの入力を持つルックアップテーブル回路の内でこれらの２つの出力のパターンを持つルックアップテーブル回路が多く現れた理由は、論理系の変換において、初めの論理系を先ずＡＩＧに変換してから最終的な論理系に変換したために、ルックアップテーブル回路に纏め切れずに２入力のＡＮＤ回路乃至２入力のＯＲ回路が残ったためである。それ故、最終的に得られたルックアップテーブル回路の内で２つの入力を持つルックアップテーブル回路の内で、２入力のＡＮＤ回路ないし２入力のＯＲ回路が多く現れることは、初めの論理系を、ＡＩＧを経て最終的なルックアップテーブル回路の論理系に変換する限りにおいては普遍性がある。
【００５５】
なお、全ルックアップテーブル回路の個数に対する２入力のＡＮＤ回路の割合は、平均値が２．３７％、標準偏差が２．５１％であり、２入力のＯＲ回路の割合は、平均値が１．５４％、標準偏差が１．６４％であった。それ故、２入力のＡＮＤ回路と、２入力のＯＲ回路との少なくとも一方の全ルックアップテーブル回路に対する割合は、各々の平均値の小さい方の値である１．５４％以上とすることが好ましく、各々の平均値の大きい方の値である２．３７％以上であるとより好ましい。そして、各々の平均値と標準偏差との和の小さい方の値である３．１８％以上とすることは更に好ましく、各々の平均値と標準偏差との和の大きい方の値である４．８８％以上とすることはより一層、好ましい。
【００５６】
また、２入力のＡＮＤ回路と、２入力のＯＲ回路との個数の和の全ルックアップテーブル回路に占める割合は、各々の平均値の和の値である３．９１％以上であることが好ましい。両者の和の全ルックアップテーブル回路に占める割合の標準偏差は、各々の標準偏差の二乗の和の平方根である３．００％なので、２入力のＡＮＤ回路と、２入力のＯＲ回路との個数の和の全ルックアップテーブル回路に占める割合は、各々の平均値の和である３．９１％に、和の標準偏差を加えた値である６．９１％以上であることがより好ましい。また、各々の平均値の和と各々の標準偏差の和とを加えた値である８．０６％以上であるとすることが更に好ましい。
【００５７】
また、特定の論理系を、それと論理的に等価であるＡＩＧを経て、ルックアップテーブル回路の組み合わせで表される論理的に等価である論理系へ変換する具体的な方法は知られている。この方法は、例えば文献１(Jason Cong, et al., “FlowMap: An Optimal Technology Mapping Algorithm for Delay Optimization in Lookup-Table Based FPGA Designs,” in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 13, no. 1 (1994) pp.1-12)に開示されている。この方法は、論理系への外部からの入力から、論理系の外部への出力に至る経路上のルックアップテーブル回路の個数を最少化する方法である。このことは演算処理時間が最短であることを意味する。すなわち、回路の動作速度が高速であることを意味するので、上記文献１の方法を用いることは、面積の低減に加えて、回路の動作速度の高速化という他の利点をも奏するので好ましい。
【００５８】
また、本実施形態において行う特定の出力パターンを持つ論理演算を行う回路はルックアップテーブル回路に替えて論理ゲートを用いることに加えて、論理系を構成するルックアップテーブル回路の総数を抑制する方法は知られている。この方法は、例えば文献２(Stephen Jang, et al., “WireMap: FPGA Technology Mapping for Improved Routability and Enhanced LUT Merging,” in ACM Transactions of Reconfigurable Technology and Systems, Vol. 2, No. 2, Article 14 (2009))に開示されている。それ故、文献２に記載の方法を用いると、面積の低減において更なる効果を奏するので好ましい。
【００５９】
本実施形態においては、論理ゲートエレメント１８０は、ある論理ブロックの内に配置されているように図７に示した。しかし、このことは本質ではなく全ての論理ブロック中に配置してもよく、論理ゲートエレメント１８０の配置されている論理ブロックと、配置されていない論理ブロックとが混在していても良い。
【００６０】
また、本実施形態においては、１つの論理ゲートエレメント１８０が論理ブロック内に配置されているように図７および図８に示した。しかし、このことは本質ではなく論理ゲートエレメント１８０が２つ以上配置されている論理ブロックが存在してもよく、また様々な個数の論理ゲートエレメントが配置されている論理ブロックが混在してもよい。
【００６１】
また、本実施形態においては、図７に示す論理ブロック内の論理ブロックエレメント１８０は、２入力のＡＮＤ回路であってもよいし、２入力のＯＲ回路であってもよい。また、２入力のＡＮＤ回路と２入力のＯＲ回路の双方が備えられていてもよい。そして様々な配置の論理ブロックが混在してもよい。
【００６２】
また、本実施形態の図８においては、基本論理エレメント１２６と、基本論理エレメント内に配置されていないフリップフロップ１２８と、書き換え不能な論理ゲート１８２と、が各々１個のみ示されているが、このことは本質ではない。これらの何れかないし全てが複数個論理ブロック内に存在しても同様の効果が得られることは言うまでもない。
【００６３】
また、本実施形態においては、基本論理エレメント以外に配置されるフリップフロップ１２８をも含む例が示されているが、基本エレメント外に配置されるフリップフロップは存在しなくても同様の効果が得られることは言うまでもない。
【００６４】
また、本実施形態の図８においては、論理ブロックの入力端子に接続される配線群１２２、各ルックアップテーブル回路１２６ａないしフリップフロップ１２８の出力に接続される配線群１２２、書き換え不能な論理ゲート１８２の出力に接続される配線群１２２、のいずれもが４本、示されているが、それらの配線群の配線の本数が４本であることに必然性はない。それらの何れかないしは全ての本数が４本よりも多いまたは少ない場合にも同様の効果が得られることもまた言うまでもない。また、それらの本数が相互に相等しくはないとしても同様の効果が得られることもまた言うまでもない。
【００６５】
また、本実施形態においては、書き換え可能な論理演算回路に関して記したが、このことは本質ではなく、図９（ａ）乃至９（ｄ）に示すように、書き換え可能な論理演算回路と例えばＡＳＩＣ(Application Specific Integrated Circuit)等の書き換え不能な論理演算回路とが混載されていてもよい。なお、図９（ａ）乃至９（ｄ）においては、書き換え可能な論理演算回路と書き換え不能な論理演算回路との各々に対して特定の形状ないし配置の場合を例示したが、両者の形状ないし配置は図９（ａ）乃至９（ｄ）に例示したものに限るものではないのは言うまでもない。
【００６６】
また、図９（ａ）乃至９（ｄ）に示した例においては、書き換え可能な論理演算回路と書き換え不能な論理演算回路との何れもが１個のみの場合を例示したが、例えば図１０（ａ）乃至１０（ｄ）に示すように何れかないし両者が複数個であっても同様の効果が得られることは言うまでもない。書き換え可能な論理演算回路と書き換え不能な論理演算回路との各々の形状ないし配置ないし個数は図１０（ａ）乃至１０（ｄ）に例示したものに限るものではないこともまた言うまでもない。
【００６７】
なお、上記実施形態では、論理ゲートエレメント１８０は、２入力のＡＮＤ回路または２入力のＯＲ回路を備えていたが、３入力以上のＡＮＤ回路または３入力以上のＯＲ回路を備えていてもよい。
【００６８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００６９】
１０・・・半導体装置、１００，１００Ａ・・・半導体装置、１２０，１２０Ａ・・・論理ブロック、１２２・・・配線群、１２４ａ、１２４ｂ・・・選択回路（ＭＵＸ）、１２６・・・基本論理エレメント、１２６ａ・・・ルックアップテーブル回路（ＬＵＴ）、１２６ｂ・・・選択回路（ＭＵＸ）、１２６ｃ・・・フリップフロップ（ＦＦ）、１３０・・・スイッチブロック、１４０・・・選択回路、１４２１〜１４２ｎ・・・選択部、１４４１〜１４４ｎ・・・インバータ、１４６・・・トランスファーゲート、１５０・・・ルックアップテーブル回路、１５２１〜１５２Ｎ・・・選択部、１５４１〜１５４Ｎ・・・インバータ、１５６・・・トランスファーゲート、１６０・・・２入力ＡＮＤ回路、１７０・・・２入力ＯＲ回路、１８０・・・論理ゲートエレメント、１８２・・・２入力論理ゲート、１８４・・・フリップフロップ（ＦＦ）、１８６・・・選択回路（ＭＵＸ）
【図１】
2017169070.tif 000003
【図２】
2017169070.tif 000004
【図３】
2017169070.tif 000005
【図４】
2017169070.tif 000006
【図５】
2017169070.tif 000007
【図６】
2017169070.tif 000008
【図７】
2017169070.tif 000009
【図８】
2017169070.tif 000010
【図９】
2017169070.tif 000011
【図１０】
2017169070.tif 000012