(57)【要約】【課題】再構成可能デバイスの回路面積を縮小する。【解決手段】  本発明による半導体集積回路は、複数の機能ブロック１０と、複数の構成情報が格納された複数の構成情報メモリ１１と、自身に入力される構成情報に応じたスイッチング動作によって、機能ブロック１０間の接続を制御する複数のプログラマブルスイッチ１２、１３とを具備する。複数のプログラマブルスイッチ１２、１３は、複数の構成情報メモリ１１のうち、共通の構成情報メモリ１１内に格納された構成情報を利用する。【選択図】図２
2011160211.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能ブロックと、
複数の構成情報が格納された複数の構成情報メモリと、
自身に入力される構成情報に応じたスイッチング動作によって、前記機能ブロック間の接続を制御する複数のプログラマブルスイッチと
を具備し、
前記複数のプログラマブルスイッチは、前記複数の構成情報メモリのうち、共通の構成情報メモリ内に格納された構成情報を利用する
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
前記複数のプログラマブルスイッチから、前記複数の構成情報メモリの１つと接続するプログラマブルスイッチを選択する切替回路を更に具備する
半導体集積回路。
【請求項３】
請求項２に記載の半導体集積回路において、
前記複数の機能ブロックは、マトリクス状に配置され、
前記複数の機能ブロックの行方向に延設された水平配線資源と、
前記複数の機能ブロックの列方向に延設された垂直配線資源と
を更に具備し、
前記複数のプログラマブルスイッチは、前記垂直配線資源に接続された第１スイッチと、前記水平配線資源に接続された第２スイッチとを備え、
前記切替回路は、前記第１スイッチと前記第２スイッチの一方を前記複数の構成情報メモリに接続するプログラマブルスイッチとして選択する
半導体集積回路。
【請求項４】
請求項２に記載の半導体集積回路において、
ｎビット幅の第１配線資源と、
ｍビット幅の第２配線資源と
を更に具備し、
前記ｎ及び前記ｍは自然数であり、
前記複数のプログラマブルスイッチは、前記第１配線資源に接続された第１スイッチと、前記第２配線資源に接続された第２スイッチとを備え、
前記切替回路は、前記第１スイッチと前記第２スイッチの一方を前記複数の構成情報メモリに接続するプログラマブルスイッチとして選択する
半導体集積回路。
【請求項５】
請求項２に記載の半導体集積回路において、
切替情報が格納される切替情報記憶素子を更に具備し、
前記切替回路は、前記切替情報に基づいて、前記複数の構成情報メモリの１つに接続するプログラマブルスイッチを前記複数のプログラマブルスイッチから選択する
半導体集積回路。
【請求項６】
請求項５に記載の半導体集積回路において、
前記複数の構成情報メモリのそれぞれには複数の構成情報が格納され、
前記切替情報記憶素子には、前記複数の構成情報に対応する複数の切替情報が格納される
前記切替回路は、前記複数の切替情報から選択された切替情報に基づいて、前記複数の構成情報メモリの１つに接続するプログラマブルスイッチを選択し、
前記選択されたプログラマブルスイッチは、前記選択された切替情報に対応する構成情報に基づいて機能ブロック間を接続する
半導体集積回路。
【請求項７】
請求項５又は６に記載の半導体集積回路において、
前記切替情報記憶素子は、フリップフロップ、ラッチ、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｓｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ヒューズ、又はアンチヒューズのいずれかを備える
半導体集積回路。
【請求項８】
請求項２に記載の半導体集積回路において、
前記複数のプログラマブルスイッチは、制御情報に応じて出力が制御されるトライステートバッファ、トランスミッションゲート又はＭＯＳ（Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）トランジスタのいずれかであり、
前記切替回路は、前記複数のプログラマブルスイッチのうち、前記複数の構成情報メモリの１つと接続するプログラマブルスイッチ以外のプログラマブルスイッチの出力をハイインピーダンスとするための制御信号を出力する
半導体集積回路。
【請求項９】
請求項２に記載の半導体集積回路において、
前記複数のプログラマブルスイッチは、制御情報に応じて出力が制御されるマルチプレクサであり、
前記切替回路は、前記複数のプログラマブルスイッチのうち、前記複数の構成情報メモリの１つと接続するプログラマブルスイッチ以外のプログラマブルスイッチの出力を所定の値とするための制御信号を出力する
半導体集積回路。
【請求項１０】
請求項１に記載の半導体集積回路において、
前記複数の構成情報メモリと前記複数のプログラマブルスイッチとを共通接続する共通配線を更に具備する
を具備する
半導体集積回路。
【請求項１１】
１つの構成情報メモリから構成情報が入力されるプログラマブルスイッチを、複数のプログラマブルスイッチから選択するステップと、
前記選択されたプログラマブルスイッチが入力された構成情報に基づいて機能ブロック間を接続するステップと
を具備する
半導体集積回路の構成変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能な半導体集積回路及びその構成変更方法に関する。
【背景技術】
【０００２】
現在、各種のデータ処理を自在に実行できるプロセッサユニットとしては、いわゆるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）と呼称される製品が実用化されている。
【０００３】
このようなプロセッサユニットを利用したデータ処理システムでは、複数の命令コードが記述された各種のアプリケーションプログラムと各種の処理データとがメモリデバイスに格納される。プロセッサユニットはメモリデバイスから命令コードや処理データを順番にデータ読出して複数の演算処理を逐次実行する。
【０００４】
プロセッサユニットは、各種のデータ処理を実現できるが、複数の演算処理を順番に逐次実行する必要がある。又、プロセッサユニットは、処理ごとにメモリデバイスから命令コードをデータ読出する必要があるため、複雑なデータ処理を高速に実行することは困難である。
【０００５】
一方、実行するデータ処理が１つに限定されている場合、当該データ処理を実行する論理をハードウェアで形成することで、プロセッサユニットにおける逐次処理を省略できる。すなわち、メモリデバイスから複数の命令コードを順番にデータ読出して逐次処理する必要はなくなる。しかし、ハードウェアで構成された論理回路は、複雑なデータ処理を高速に実行することが可能であるが、１つのデータ処理しか実行することができない。
【０００６】
つまり、アプリケーションプログラムを切換自在としたデータ処理システムは、各種のデータ処理を実行できるが、データ処理を高速に実行することが困難である。一方、ハードウェアで構成された論理回路は、データ処理を高速に実行することが可能であるが、アプリケーションプログラムを変更できないので１つのデータ処理しか実行できない。
【０００７】
この２つの極端な例の中間に位置するのが再構成可能デバイスである。これは必要に応じて異なる所定の構成（論理）へと再構成することが可能なデバイスである。従って、再構成可能デバイスは、適切な再構成により現在の計算上の必要性を満たすように、そのハードウェアリソースを変更するコンピュータの可能性を提供するものとなる。
【０００８】
再構成可能デバイスは、小規模の多数の機能ブロックがマトリクス状に配列されており、アプリケーションプログラムに対応して、多数の機能ブロックの個々の動作と、プログラマブルな配線資源によって接続された多数の演算器の相互の接続関係とが変更される。
【０００９】
再構成可能デバイスは、アプリケーションプログラムを変更することでハードウェアの構成が変化するため、各種のデータ処理を実行することができる。又、再構成可能デバイスは、ハードウェアとして小規模の多数の機能ブロックが簡単な演算処理を並列に実行するため、データ処理を高速に実行することができる。
【００１０】
再構成可能デバイスで実現される処理は非常に多岐にわたっており、機能ブロックや種々の回路間の効率的な接続を可能にするため、様々な構成のプログラマブルな配線資源が種々考案されている。
【００１１】
例えば、属性の異なる複数の種類の配線資源を持つ再構成可能デバイスが、特開２００２−０７６８８３（特許文献１参照）や、特開２００３−０７６６６８（特許文献２参照）に記載されている。又、例えば、複数の構成情報を格納できる再構成可能デバイスが特開２０００−２２４０２５（特許文献３参照）や、特開２００１−３１２４８１（特許文献４）に記載されている。
【００１２】
特許文献１に記載の再構成可能デバイスでは、多ビットデータが主に移動する水平方向に均一性の高いプログラマブル相互接続路（配線資源）が用いられている。ここでは、ＡＬＵ  （Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃ  Ｕｎｉｔ）が延びている垂直方向に、ＡＬＵ  単位の処理に適したプログラマブル相互接続路（配線資源）を用いることで、高性能多ビットデータパスを効率的にインプリメントできるようにしている。
【００１３】
又、特許文献２に記載の再構成可能デバイスでは、多ビット幅（ｍｂｉｔ）データ処理と少ビット幅（ｎｂｉｔ）データ処理（ｎ＜ｍ）を各々効率良く実行するために、配線資源をｍｂｉｔ幅データパス（配線資源）とｎｂｉｔ幅データパス（配線資源）に分けて利用している。
【００１４】
再構成可能デバイスでは、図１に示すように、多数の機能ブロック１０がマトリクス状に配列されている。機能ブロック１０は、ＡＬＵ等に例示される演算器、レジスタファイル、メモリ等によって構成され、多用な論理機能をプログラマブルに設定できる。
【００１５】
又、再構成可能デバイスは、プログラマブル配線資源（バス２０、３０）によって自由に機能ブロック１０の接続関係を変更することによって、さまざまな処理を実現できる。
【００１６】
再構成可能デバイスの配線資源（バス２０、３０)の接続関係を変更するためのプログラマブルスイッチ（図示なし）は、メモリやフリップフロップ（ＦＦ）等に例示される記憶素子（以下、構成情報メモリと称す）によって制御されている。又、複数ワードのメモリを利用して複数の構成情報を格納できる構成情報メモリの構成が、例えば特開２００８−１５７７２に記載されている（特許文献５参照）。
【００１７】
上述の特許文献や従来技術では、いずれの場合も、ＮＭＯＳ（Ｎ  Ｃｈａｎｎｅｌ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）、トランスミッションゲート、トライステートバッファ、マルチプレクサといったプログラマブルスイッチの要素は、その要素にのみ対応する構成情報によって制御されている。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００２−０７６８８３
【特許文献２】特開２００３−０７６６６８
【特許文献３】特開２０００−２２４０２５
【特許文献４】特開２００１−３１２４８１
【特許文献５】特開２００８−１５７７２
【発明の概要】
【発明が解決しようとする課題】
【００１９】
再構成可能デバイスは、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の専用回路に比べて回路構成の柔軟性が大きいという利点があるが、回路構成が冗長になるという弱点がある。再構成可能デバイスは、回路構成の切り替えに対応した複数の機能ブロック、回路構成情報を格納する構成情報メモリ等を備えている。又、機能ブロック間の接続関係を切り替えるためのプログラマブルスイッチは、専用回路の配線に比べて多くの面積を必要とする。このため、再構成可能デバイスで所望の回路を構成する場合、同一の回路を専用回路によって構成する場合に比べて集積度が低く面積効率が悪くなる。例えば、（Ａ＋Ｂ）＊（Ｃ＋Ｄ）→Ｙという算術演算を行う回路を、再構成可能デバイスと専用回路のそれぞれで構成した場合、特許文献５に記載されているように再構成可能デバイスの冗長性は明らかである。そのため、再構成可能デバイスの競争力向上には面積削減が求められる。ただし、これにより回路構成の柔軟性を失っては再構成可能デバイスの意義がなくなるため、いかに回路構成の柔軟性を保ったまま面積を縮小するかが再構成可能デバイス設計時の課題となる。
【００２０】
再構成可能デバイスを設計するにあたっては、例えば、水平方向と垂直方向、ｍｂｉｔとｎｂｉｔといった属性の異なる複数の種類の配線資源の比率を、予め決め打ちで固定して設計しなければならない。又、設計後はそれらの比率は固定され変更は不可能となる。設計段階で狙ったターゲットには効率がよくとも、他で効率が悪くなることは当然想定される。バランスをある処理に特化させれば、汎用性は失われ、逆に汎用を目指すと、どのような処理にも相対的に性能が出ないことになる。
【００２１】
全ての用途に対して最適となるように、水平方向と垂直方向、ｍｂｉｔとｎｂｉｔといった異なる種類の配線資源を、いずれも全てのアプリケーションで必要とされる最大本数用意すると、面積が爆発的に増大し面積効率は低下する。これは、あるアプリケーションを選択使用した場合、他のアプリケーションで使用する属性の配線資源が大量に使用されずに無駄な領域となるからである。又、面積の増大は配線長の増大につながり、遅延が増大するため絶対性能も低下する。
【００２２】
再構成可能デバイスの用途数（アプリケーション数）を増大させた場合、それぞれの用途に対する高性能化は望めず、用途を特化した場合、汎用性で劣ることになる。又、将来、設計時と異なる特性の処理を再構成可能デバイスで実現することが必要になることがある。この場合、用途を特化して設計された再構成可能デバイスは、当該処理に全く不向きな構成である恐れもある。
【００２３】
複数の属性の割合を偏向させて設計した場合、再構成可能デバイスの特性が明確となるが、使用用途が特化されるため柔軟性がなくなってしまう。一方、複数の属性を同じ割合にすると、汎用性を有するがそれぞれが低性能化してしまう。又、どのような場合でも高性能となるように、いずれの属性も多く設定すると、面積が肥大化してしまう。更に、この場合、ある処理においてある属性のリソースばかりが使われ、他の属性のリソースが余って無駄になることが予想される。つまり、面積が肥大化する上、多くの処理でその増大したリソースの大部分は使われなくなり、面積効率の悪いアーキテクチャとなり得る。
【００２４】
一般的に構成情報メモリは、再構成可能デバイスにおいて大きな面積を占めている。例えば、特許文献５を参照すると、再構成可能デバイスが専用回路に比べて冗長な部分は構成情報メモリ及びプログラマブルスイッチであることは明白である。特に、特許文献３や特許文献５のように複数の構成情報を格納できる再構成可能デバイスでは、複数ワードのメモリが構成情報メモリとして使われるため、構成情報メモリの面積に占める割合はさらに大きくなる。将来、この構成情報のワード数が増大する方向に拡張されていった場合、構成情報メモリの面積に占める割合が今よりもさらに大きくなるのは明らかである。そのため、面積を縮小するには構成情報メモリをいかに削減するかが重要である。
【課題を解決するための手段】
【００２５】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための形態］の記載との対応関係を明らかにするために、［発明を実施するための形態］で使用される番号・符号が付加されている。ただし、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００２６】
本発明による半導体集積回路は、複数の機能ブロック（１０）と、複数の構成情報が格納された複数の構成情報メモリ（１１）と、自身に入力される構成情報に応じたスイッチング動作によって、機能ブロック（１０）間の接続を制御する複数のプログラマブルスイッチ（１２、１３）とを具備する。複数のプログラマブルスイッチ（１２、１３）は、複数の構成情報メモリ（１１）のうち、共通の構成情報メモリ（１１）内に格納された構成情報を利用する。
【００２７】
本発明によれば、複数のプログラマブルスイッチ（１２、１３）が共通の構成情報メモリ（１１）を利用することで、再構成可能デバイスに設けられる構成情報メモリの数を削減することが可能となる。
【００２８】
又、本発明による半導体集積回路の構成変更方法は、１つの構成情報メモリ（１１）から構成情報が入力されるプログラマブルスイッチを、複数のプログラマブルスイッチ（１２、１３）から選択するステップと、選択されたプログラマブルスイッチが入力された構成情報に基づいて機能ブロック間を接続するステップとを具備する。
【００２９】
本発明によれば、共通の構成情報メモリ（１１）を利用するプログラバブルスイッチを複数のプログラマブルスイッチ（１２、１３）から選択しているため、再構成可能デバイスに設けられる構成情報メモリの数を削減することができる。
【発明の効果】
【００３０】
本発明によれば、再構成可能デバイスの回路面積を縮小できる。
【図面の簡単な説明】
【００３１】
【図１】図１は、本発明による半導体集積回路の全体構成の一例を示す図である。
【図２】図２は、本発明による半導体集積回路の実施の形態における構成を示す図である。
【図３】図３は、本発明による半導体集積回路の第１の実施の形態における構成を示す図である。
【図４】図４は、本発明に係る切替回路の構成の一例を示す図である。
【図５】図５は、本発明による半導体集積回路の比較例の構成を示す図である。
【図６】図６は、第１の実施の形態における半導体集積回路の変形例を示す図である。
【図７】図７は、非同期ループが起こる可能性のある構成の一例を示す図である。
【図８】図８は、第１の実施の形態における半導体集積回路の他の変形例を示す図である。
【図９】図９は、本発明による半導体集積回路の第２の実施の形態における構成を示す図である。
【図１０】図１０は、本発明による半導体集積回路の第３の実施の形態における構成を示す図である。
【図１１】図１１は、本発明による半導体集積回路の第４の実施の形態における構成を示す図である。
【発明を実施するための形態】
【００３２】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【００３３】
図１は、本発明による半導体集積回路の全体構成の一例を示す図である。図１を参照して、本発明による半導体集積回路は、マトリクス状（２次元アレイ状）に配置された複数の機能ブロック１０と、複数の機能ブロック１０間を接続するバス２０、３０を具備する再構成可能デバイスである。機能ブロック１０は、アプリケーションプログラムに対応する機能を実現し、後述する構成情報（コンフィギュレーション情報）によって、その機能が変更される。バス２０はマトリクス状に配置された機能ブロック１０の行方向（水平方向）に延設され、バス３０は列方向（垂直方向）に延設される。バス２０、３０は、プログラマブルスイッチによって機能ブロック１０との接続が制御されるプログラマブル配線資源として機能する。すなわち、本発明による半導体集積回路は、垂直方向配線資源（列方向配線資源）と、水平方向配線資源（行方向配線資源）の２つの属性を持つ再構成可能デバイスとなる。
【００３４】
単方向線を使用するよりも小さな面積で自由度の高い接続が可能であるため、バス２０、３０としては双方向バスを利用することが好ましい。例えば、バス２０、３０は、プログラマブル配線資源として利用するため、トライステートバッファやパストランジスタ等をプログラマブルスイッチとして用いた双方向バスが好適に利用される。
【００３５】
本発明による半導体集積回路（以下、再構成可能デバイスと称す）は、実行するアプリケーションプログラムを変更した場合、機能ブロック１０の動作（構成）や、バス２０、３０に接続される機能ブロック１０内の演算器が変更される。これにより、再構成可能デバイスは、そのハードウェア構成が変更され、異なる機能を実現することができる。このように、再構成可能デバイスは、プログラマブルな配線資源によって自由に機能ブロックの接続関係を変更することによって、さまざまな処理を実現できる。
【００３６】
図２を参照して、本発明による再構成可能デバイスにおいて利用されるプログラマブル配線資源の構成の詳細を説明する。図２は、本発明による半導体集積回路の実施の形態における構成を示す図である。以下の実施の形態では、水平方向配線資源（バス２０）及び垂直方向配線資源(バス３０)のそれぞれにおける一部のプログラマブルスイッチを、同じ構成情報メモリで制御させる構成及び動作を示す。
【００３７】
本発明による再構成可能デバイスは、複数の構成情報メモリ１１、複数のプログラマブルスイッチ１２、１３、及びメモリ共有化回路１００を具備する。又、バス２０は、複数の配線２０１〜２０ｊ（ｊは自然数）を備え、バス３０は、複数の配線３０１〜３０ｉ（ｉは自然数）を備える。
【００３８】
プログラマブルスイッチ１２は、バス２０（水平方向配線資源）と機能ブロック１０との間の接続を制御し、プログラマブルスイッチ１３は、バス３０（垂直方向配線資源）と機能ブロック１０における所定の演算器との間の接続を制御する。詳細には、プログラマブルスイッチ１２は、複数の配線２０１〜２０ｊのいずれかに接続される。同様に、プログラマブルスイッチ１３は、複数の配線３０１〜３０ｉのいずれかに接続される。
【００３９】
プログラマブルスイッチ１２、１３は、例えば、トランジスタスイッチ（例示  ＭＯＳトランジスタ）、トランスミッションゲート、トライステートバッファ、マルチプレクサによって実現されることが好ましい。
【００４０】
プログラマブルスイッチ１２、１３は、メモリ共有化回路１００を介して共通の構成情報メモリ１１に接続され、当該構成情報メモリ１１に格納された構成情報に応じてそのスイッチング動作が制御される。すなわち、本実施の形態では、水平方向配線資源（バス２０）及び垂直方向配線資源（バス３０）のプログラマブルスイッチ１２、１３は同じ構成情報メモリ１１によって制御されることとなる。
【００４１】
構成情報メモリ１１は、メモリやフリップフロップ等の記憶素子が好適に利用され、再構成可能デバイスの構成を設定するための構成情報が記録される。メモリ共有化回路１００は、構成情報メモリ１１とプログラマブルスイッチ１２、１３との接続を制御し、プログラマブルスイッチ１２、１３の一方を選択して構成情報メモリ１１とを接続する。例えば、プログラマブルスイッチ１２、１３の一方と構成情報メモリ１１とを接続した場合、プログラマブルスイッチ１２、１３の一方は入力される構成情報に応じて機能ブロック１０とバスとを接続し、他方はハイインピーダンス状態となる。又、構成情報メモリ１１と接続するプログラマブルスイッチを切替えることで、機能ブロック１０とバスとを接続するプログラマブルスイッチを変更することができる。更に、メモリ共有化回路１００は、共通の構成情報によって制御されても再構成可能デバイスが所定の機能を実現できれば、共通の構成情報メモリ１１に，プログラマブルスイッチ１２、１３の両方を接続してもよい。メモリ共有化回路１００の具体的な構成の詳細は後述する。
【００４２】
尚、構成情報メモリ１１の出力信号（構成情報）は、プログラマブルスイッチのほかに機能ブロック１０にも入力され、機能ブロック１０内の演算器等の構成（接続関係）を変更する。
【００４３】
以上のように、本発明による再構成可能デバイスによれば、メモリ共有化回路１００によって、複数のプログラマブルスイッチが共通の構成情報メモリ１１を利用することが可能となる。この結果、従来のようにプログラマブルスイッチ毎に構成情報メモリ１１を用意する必要がなくなり、構成情報メモリ１１の数を削減することができる。
【００４４】
以下、第１から第４の実施の形態を参照して、図２に示す再構成可能デバイスの構成及び動作の詳細を説明する。
【００４５】
１．第１の実施の形態
以下、図３から図７を参照して、本発明による再構成可能デバイスの第１の実施の形態を説明する。第１の実施の形態では、プログラマブルスイッチの有効化／無効化を切替可能なメモリ共有化回路１００を利用した形態を説明する。このため、構成情報メモリ１１の構成は上述と同様であるのでその説明は省略する。
【００４６】
図３は、第１の実施の形態における再構成可能デバイスの構成を示す図である。図３を参照して、プログラマブルスイッチ１２、１３はトライステートバッファで構成され、メモリ共有化回路１００は、複数の切替回路１０１及び複数の切替回路１０１のそれぞれに接続された切替情報記憶素子１０２を備える。又、再構成可能デバイスは、構成するデバイスの機能に応じて、複数のプログラマブルスイッチに共有されない構成情報メモリ１５と、当該構成情報メモリによって、スイッチング動作が制御されるプログラマブルスイッチ１４（トライステートバッファ）を更に具備してもよい。図３に示す一例では、説明の簡単化のため、バス２０として配線２０１〜２０３のみを示し、バス３０として配線３０１〜３０３のみを示し手説明する。
【００４７】
メモリ共有化回路１００は、プログラマブルスイッチ１２、１３のうち、対象アプリケーションが必要とする方を有効化し、もう一方を無効化する。この有効化／無効化は切替情報記憶素子１０２に格納された切替情報の値によって制御される。切替回路１０１は、切替情報の値に基づいて、有効化するプログラマブルスイッチと構成情報メモリとを接続し、無効化するプログラマブルスイッチとの接続を遮断する。例えば、プログラマブルスイッチの構成要素がトライステートバッファやＮＭＯＳ、トランスミッションゲートを使っている場合、すなわちスイッチが、バスの衝突がありえるようなプログラマブルスイッチである場合、切替回路１０１は、所定の信号レベルの信号を無効化するプログラマブルスイッチに供給し、当該スイッチの出力をハイインピーダンスとなるように制御する。
【００４８】
切替情報記憶素子１０２は、ラッチやフリップフロップが好適に利用されるが、他の記憶素子、例えばＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）でも実現できる。又、切替情報記憶素子１０２として、フラッシュメモリやＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）のような不揮発メモリが利用されても良い。この場合、起動毎に行われる切替情報の設定の手間が省ける。ただし、動作中に構成を切り替える際は、多大な時間を要することが想定される。しかし、ＭＲＡＭ（Ｍａｇｎｅｓｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような新しい不揮発メモリを切替情報記憶素子１０２として利用することで、このような欠点は解消される。
【００４９】
図４は、本発明に係る切替回路１０１の構成の一例を示す図である。図４を参照して、切替回路１０１は、プログラマブルスイッチ１２の制御端子に接続されるセレクタ１１１と、プログラマブルスイッチ１３の制御端子に接続されるセレクタ１１２とを備える。セレクタ１１１は、切替情報に応じて、構成情報メモリ１１からの出力１１０と接地端子１２０の一方を選択してプログラマブルスイッチ１２に接続する。同様にセレクタ１１２は、切替情報に応じて、構成情報メモリ１１からの出力１１０と接地端子１２０の一方を選択してプログラマブルスイッチ１３に接続する。この際、セレクタ１１１、１１２の接続する対象は、反転していることが好ましい。例えばハイレベルの切替情報に対し、セレクタ１１１は、構成情報メモリ１１の出力１１０とプログラマブルスイッチ１２とを接続し、セレクタ１１２は、接地端子１２０とプログラマブルスイッチ１３とを接続する。この場合、プログラマブルスイッチ１２は有効となり、機能ブロック１０と配線２０ｊとが接続される。一方、切替回路１００で生成したハイインピーダンス設定値“０”によりプログラマブルスイッチ１３は無効となる。無効化されたプログラマブルスイッチ１３に接続された配線３０ｉはハイインピーダンスとなりバスの衝突を防ぐことができる。
【００５０】
一方、ローレベルの切替情報が切替情報記憶素子１０２に格納されている場合、セレクタ１１１は、接地端子１２０とプログラマブルスイッチ１２とを接続し、セレクタ１１２は、構成情報メモリ１１の出力１１０とプログラマブルスイッチ１３とを接続する。この場合、有効／無効は上述の場合に対して反転し、プログラマブルスイッチ１３は有効となり、機能ブロック１０と配線３０ｉとが接続され、切替回路１００で生成したハイインピーダンス設定値“０”によりプログラマブルスイッチ１２は無効となる。無効化されたプログラマブルスイッチ１２に接続された配線２０ｊはハイインピーダンスとなる。
【００５１】
切替情報記憶素子１０２として、ヒューズやアンチヒューズに例示される配線経路を１度だけ切り替え可能な回路を使うことも考えられる。これでも、ユーザーが自分のアプリケーションに応じて手元で切り替えることは可能である。もちろん一度切り替えたら取り返しはつかないため、後日性質の異なるアプリケーションを載せたくなった場合に対応不能である。
【００５２】
以上のように、本実施の形態における再構成可能デバイスにでは、切替情報に応じて、有効化するプログラマブルスイッチを切替えることができるため、複数のプログラマブルスイッチが共通の構成情報メモリ１１を利用することが可能となる。この結果、従来のようにプログラマブルスイッチ毎に構成情報メモリ１１を用意する必要がなくなり、構成情報メモリ１１の数を削減することができる。
【００５３】
図３の比較例として従来技術による再構成可能デバイスの構成を図５に示す。従来技術による再構成可能デバイスは、機能ブロック１０とバス２０、３０とを接続する複数のプログラマブルスイッチ１４の各々に対し１つの構成情報メモリ１５が接続される。すなわち、プログラマブルスイッチ１４に対して１対１で割り当てられた構成情報メモリ１５によってそれぞれのプログラマブルスイッチ１４は制御される。
【００５４】
図３に示す本発明における再構成可能デバイスと、図５に示す比較例では、同じ１２個のプログラマブルスイッチ（ここではトライステートバッファ）が搭載されている。この場合、図５に示す比較例では、プログラマブルスイッチ１４と同じ数（１２個）の構成情報メモリ１５を用意する必要がある。しかし、本発明による再構成可能デバイスでは、プログラマブルスイッチ１２、１３が再構成情報メモリ１１を共有している。図３に示す一例では、４組のプログラマブルスイッチ１２、１３がそれぞれ４つの構成情報メモリ１１を共有し、他の４つのプログラマブルスイッチ１４のそれぞれは、構成情報メモリ１５を利用している。このため、再構成情報メモリの総数は８個となる。又、４組のプログラマブルスイッチの有効／無効の切替を２組の切替回路１０１及び切替情報記憶素子１０２によって制御している。この場合、メモリ素子の総数は、再構成情報メモリの８個と切替回路記憶素子の２個の合計１０個となる。
【００５５】
上述の例では、メモリ数を２個減じることが可能となることが示されたが、再構成可能デバイスに使用されるプログラマブルスイッチの数は膨大であるため、本発明を適用した場合、多くのメモリ数を削減することができ、回路面積が大幅に縮小することが可能となる。
【００５６】
又、図３に示す一例では、プログラマブルスイッチ１２、１３、１４としてトライステートバッファを利用した形態を示したがこれに限らず、図６に示すようなマルチプレクサ（セレクタ）を利用した形態でも構わない。あるいは、プログラマブルスイッチ１２、１３、１４としてＭＯＳスイッチやトランスミッションゲートを利用してもよいし、これらのいずれかを組みあせた形態でも構わない。
【００５７】
無効化されたスイッチに接続された配線はハイインピーダンスとなりバスの衝突を防ぐことができる。ただし、図６に示すようにセレクタをプログラマブルスイッチとして利用した再構成可能デバイスでは、バスの衝突がない場合でも、図７に示すように、非同期ループが起こる可能性がある。このような場合、非同期ループにおいて発振し、予想外の電力消費が起こり得る。従って、切替回路１０１は、スイッチを無効化するための切替情報に応じて、ループの起こらない経路を強制的に選択するような値（信号）を生成し、無効化するプログラマブルスイッチへ出力する必要がある。
【００５８】
又、図８に示すように、複数の切替回路１０１を１つの切替情報記憶素子１０２で制御しても構わない。これにより、複数セットの配線資源に接続される水平方向及び垂直方向プログラマブルスイッチの組の制御を、１つの切替情報記憶素子１０２で行うことが可能となる。
【００５９】
この場合、垂直方向及び水平方向のプログラマブルスイッチのリソース比率の調整が荒くなるが、制御を１つの切替情報記憶素子１０２で行うため、その分回路量を減らすことができる。例えば、図８に示す一例では、垂直方向の配線３０２、３０３の２本を有効にするか、水平方向の配線２０１、２０２の２本を有効にするかの切り替えを、１つの切替情報記憶素子１０２に格納された切替情報によって制御することとなる。一方、図３に示す一例では、垂直方向の配線と水平方向の配線を、１本単位で切り替えることが可能である。このように、切替情報記憶素子１０２を共通化することで調整単位が大きくなるが、切替情報記憶素子１０２の数を減らすことで回路量を削減することができる。
【００６０】
図３、図６及び図８に示す一例では一部の水平方向及び垂直方向プログラマブルスイッチについてのみ、構成情報メモリを共有しているが、プログラマブルスイッチ１４を削除して、全ての水平方向及び垂直方向のプログラマブルスイッチについて構成情報メモリ共有しても構わない。
【００６１】
２．第２の実施の形態
第１の実施の形態では、垂直方向及び水平方向の配線資源を切替える構成及び動作を説明したが、ｍｂｉｔ−ｎｂｉｔ及び他の属性についても適用することが可能である。図９を参照して、第２の実施の形態として、ｍｂｉｔ幅及びｎｂｉｔ幅の配線資源を切替える切替回路１００を有する再構成可能デバイスの一例を説明する。ただし、ｎ、ｍは自然数。第２の実施の形態において、バス２０は、ｍｂｉｔ幅の配線資源として配線４０１を有し、ｎｂｉｔ幅の配線資源として配線４０２を有する。又、バス３０は、ｍｂｉｔ幅の配線資源として配線５０１を有し、ｎｂｉｔ幅の配線資源として配線５０２を有する。本実施の形態における切替回路１０１は、垂直方向及び水平方向の代わりに、ｍｂｉｔ配線資源（配線４０１、５０１）に接続されるプログラマブルスイッチ１６と、ｎｂｉｔ配線資源（配線４０２、５０２）に接続されるプログラマブルスイッチ１７の有効／無効を切替える。その他の構成は、第１の実施の形態と同様である。
【００６２】
本実施の形態でも第１の実施の形態と同様に、切替回路１０１及び切替情報記憶素子１０２によってプログラマブルスイッチ１６、１７のどちらか一方を有効にして他方を無効にする構成と、その逆の構成とを切り替えることができる。
【００６３】
従来の構成では、属性Ａ（例えば垂直方向やｍｂｉｔ幅）の配線資源を多量に使うアプリケーションでは、属性Ｂ（例えば水平方向やｎｂｉｔ幅）のプログラマブルスイッチを制御する構成情報メモリが無駄になり、逆に属性Ｂを多量に使うアプリケーションでは属性Ａのプログラマブルスイッチを制御する構成情報メモリが無駄になった。
【００６４】
このため、属性Ａを多量に使うアプリケーション、属性Ｂを多量に使うアプリケーションのどちらもマッピングしたい場合、従来構成では双方の属性の配線資源を大量に搭載した巨大な規模の再構成可能デバイスを必要とした。そして、どちらのアプリケーションを載せても、アプリケーションを選択した段階で、もう一方の属性は無駄となった。
【００６５】
本発明では、同時に使用されない属性Ａと属性Ｂのプログラマブルスイッチを、共通の構成情報メモリによって制御しているため、属性Ａ及び属性Ｂの一方を多量に使うアプリケーションに設定してときの、使用されずに無駄になる構成情報メモリの数は従来に比べて少なくなる。このため、本発明による再構成可能デバイスは、使用する配線資源の属性の比率が偏向したアプリケーションを複数マッピング可能であるとともに、その回路量又は回路面積を大幅に縮小することができる。
【００６６】
３．第３の実施の形態
構成情報メモリには、複数の構成情報が格納されても良い。図１０は、本発明による半導体集積回路の第３の実施の形態における構成を示す図である。図１０を参照して、第３の実施の形態における再構成可能デバイスは、構成情報メモリ１１、１５に替えて、複数の構成情報が格納される構成情報メモリ１８、１９を備えるとともに、切替情報記憶素子１０２に替えて、複数の切替情報が格納される切替情報記憶素子１０３を備える。その他の構成は、第１の実施の形態と同様であるが、第１の実施の形態と異なる構成及び動作について説明する。
【００６７】
本実施の形態におけるプログラマブルスイッチ１２、１３は、メモリ共有化回路１００（切替回路１０１）を介して共通の構成情報メモリ１８に接続される。又、プログラマブルスイッチ１４は構成情報メモリ１９に接続される。更に、切替回路１０１は、切替情報記憶素子１０３に接続される。
【００６８】
複数の切替情報及び構成情報は、複数のアプリケーションに対応付けられたワード数（例えばｎ個）分だけ用意されている。ここで、ｎ番目のアプリケーションを設定する場合、これに対応するｎ番目の切替情報が切替情報記憶素子１０３から切替回路１０１に設定されるとともに、ｎ番目の構成情報が、構成情報メモリ１８から切替回路１００に設定される。又、同様に、ｎ番目の構成情報が、構成情報メモリ１９からプログラマブルスイッチ１４に設定される。
【００６９】
切替情報記憶素子１０３を構成情報メモリ１８、１９と同じｗｏｒｄ数を持つメモリとすることで、面（アプリケーション）毎に性質の異なる回路をマッピングする場合に、面毎に属性毎の比率を調整することができる。
【００７０】
本発明では、複数のプログラマブルスイッチが利用する構成情報メモリを共通化することで、構成情報メモリの数を削減することができる。このような効果は、本実施の形態のように、容量の大きな構成情報メモリを利用する場合に特に有効である。又、複数ｂｉｔ幅を持つ構成情報メモリの一部又は全部を、切替情報記憶素子１０３として利用することも可能である。このように構成情報の一部又は全部を切替情報として割り当てることで、更なる回路素子数の削減を実現できる。
【００７１】
４．第４の実施の形態
図１１は、本発明による半導体集積回路の第４の実施の形態における構成を示す図である。図１１を参照して、無効化するプログラマブルスイッチをハイインピーダンスにしなくても、バス衝突のような致命的な問題や非同期ループが発生しない場合、共通配線１０４によってプログラマブルスイッチ１２、１３と構成情報メモリ１１を共通接続してもよい。この場合、切替回路１０１や切替情報記憶素子１０２の分だけ第１の実施の形態より回路量を減らすことができる。
【００７２】
尚、ユーザーは無効化されるプログラマブルスイッチに接続される配線資源はないものとしてアプリケーションをマッピングすればよい。この場合、無効化されたプログラマブルスイッチには、有効なプログラマブルスイッチの構成情報が無意味なデータとして流れ込むが、バス衝突／非同期ループによる発振がおきないのであれば問題は無い。例えば、トライステートバス構成としない場合、バス衝突は起こらない。このような構成において、更に非同期ループの起こらない構成である場合には、無効化されたプログラマブルスイッチに関する制御を省略しても実害はない。このような場合に、本実施の形態を適用することが好適である。
【００７３】
本発明による再構成可能デバイスでは構成情報メモリを削減することができるが、その代わりにメモリ共有化回路１００が追加される。しかし、メモリ共有化回路１００は、例えば切替回路１０１や切替情報記憶素子１０２、あるいは共通配線１０４は構成情報メモリと同等もしくはそれよりも単純な構成であるため、増加する面積は僅かである。
【００７４】
以上のように、本発明では同時に使用しない複数のプログラマブルスイッチをまとめて１つの構成情報で制御することによって、構成情報メモリ量を大幅に削減し、柔軟性を維持したまま面積を縮小できる。
【００７５】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。又、第１から第４の実施の形態は、技術的に矛盾のない範囲で組み合わせて適用できる。
【００７６】
第１の実施の形態において、切替回路１０１をなくしてしまうと、バスファイトや非同期ループが発生してしまうことがある。しかし、切替情報記憶素子１０２によって切替回路１０１を設定するのではなく、切替回路１０１の内容を配線層を入れ替えて切り替えを実現することも可能である。例えば、回線パタン設計時においてプログラマブルスイッチ１２、１３に接続する構成情報メモリ１１を１つ用意しておき、製造工程において、どちらか一方の配線のみを接続することで、無駄な構成情報メモリの形成を省くことができる。
【００７７】
この場合、第１から第４の実施の形態と異なり、出荷後の切り替えは不可能であるが、異なる性質をもった再構成可能デバイスの複数のラインアップを安価に展開することができる。この方法を利用した場合、構成を変更して大量に作り直す場合に、再設計コストやマスクコストを大きく削減できるが、作った後に切り替えることはできない。しかし、上述の実施の形態の中で最も面積を小さくすることができる。
【符号の説明】
【００７８】
１０：機能ブロック
１１、１５、１８、１９：構成情報メモリ
１２〜１４、１６、１７：プログラマブルスイッチ
２０、３０：プログラマブル配線資源（バス）
２０１〜２０ｊ、３０１〜３０ｉ、４０１、４０２、５０１、５０２：配線
１００：メモリ共有化回路
１０１：切替回路
１０２、１０３：切替情報記憶素子
１０４：共通配線
１１１、１１２：セレクタ
【図１】
2011160211.tif 000003
【図２】
2011160211.tif 000004
【図３】
2011160211.tif 000005
【図４】
2011160211.tif 000006
【図５】
2011160211.tif 000007
【図６】
2011160211.tif 000008
【図７】
2011160211.tif 000009
【図８】
2011160211.tif 000010
【図９】
2011160211.tif 000011
【図１０】
2011160211.tif 000012
【図１１】
2011160211.tif 000013