(57)【要約】【課題】ユーザシステムの最終段階で各信号の細かな設定を行うことが可能となり、ユーザが極めて短時間でＬＳＩ上に論理回路を組むことができ、利便性が高いＬＳＩを実現することができる半導体装置を提供する。【解決手段】ＣＰＵ１、不揮発性メモリであるフラッシュメモリ２、ＳＲＡＭ型ＦＰＧＡであるプログラマブルロジック３、コンフィグ動作を司るコンフィグ回路４などから構成されるＬＳＩであって、電源投入リセット時に、コンフィグ回路４の制御によってフラッシュメモリ２内の構築データをプログラマブルロジック３に転送してプログラマブルロジック３に論理回路を構築することにより、電源投入リセット直後に早期にプログラマブルロジック３に構築した回路を使用することが可能となる。【選択図】　　　　図２
2004056716.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、構築データの書き込みにより論理回路を構成するＳＲＡＭ型ＦＰＧＡと、前記ＳＲＡＭ型ＦＰＧＡに論理回路を構成する構築データを記憶する不揮発性メモリと、前記不揮発性メモリに記憶された構築データを用いて前記ＳＲＡＭ型ＦＰＧＡに対するコンフィグ動作を司るコンフィグ回路とを有し、前記ＳＲＡＭ型ＦＰＧＡ、前記不揮発性メモリ及び前記コンフィグ回路を同一半導体基板上に構成するものであって、
前記コンフィグ回路は、電源投入リセット時に、前記不揮発性メモリ内の構築データを前記ＳＲＡＭ型ＦＰＧＡに転送する機能を有することを特徴とする半導体装置。
【請求項２】
請求項１記載の半導体装置において、
前記コンフィグ回路は、コンフィグ動作の完了後に内部リセット信号を解除する機能を有することを特徴とする半導体装置。
【請求項３】
請求項２記載の半導体装置において、
前記不揮発性メモリは前記コンフィグ動作時の構築データを前記コンフィグ回路に転送するための専用のバスを有することを特徴とする半導体装置。
【請求項４】
請求項１記載の半導体装置において、
前記コンフィグ回路によるコンフィグ動作の完了を検知する端子を設け、前記端子により周辺の半導体装置を起動する機能を有することを特徴とする半導体装置。
【請求項５】
請求項１記載の半導体装置において、
前記不揮発性メモリはフラッシュメモリであることを特徴とする半導体装置。
【請求項６】
ＣＰＵと、構築データの書き込みにより論理回路を構成するＳＲＡＭ型ＦＰＧＡと、前記ＳＲＡＭ型ＦＰＧＡに論理回路を構成する構築データを記憶する不揮発性メモリと、前記不揮発性メモリに記憶された構築データを用いて前記ＳＲＡＭ型ＦＰＧＡに対するコンフィグ動作を司るコンフィグ回路とを有し、前記ＳＲＡＭ型ＦＰＧＡ、前記不揮発性メモリ及び前記コンフィグ回路を同一半導体基板上に構成するものであって、
前記コンフィグ回路は、動作中に、前記不揮発性メモリから転送された前記ＳＲＡＭ型ＦＰＧＡ内の構築データの一部を再構築する機能を有することを特徴とする半導体装置。
【請求項７】
請求項６記載の半導体装置において、
前記不揮発性メモリはフラッシュメモリであることを特徴とする半導体装置。
【請求項８】
ＣＰＵと、構築データの書き込みにより論理回路を構成するＳＲＡＭ型ＦＰＧＡと、前記ＳＲＡＭ型ＦＰＧＡに論理回路を構成する構築データを記憶する不揮発性メモリと、前記不揮発性メモリに記憶された構築データを用いて前記ＳＲＡＭ型ＦＰＧＡに対するコンフィグ動作を司るコンフィグ回路とを有し、前記ＳＲＡＭ型ＦＰＧＡ、前記不揮発性メモリ及び前記コンフィグ回路を同一半導体基板上に構成するものであって、
前記ＳＲＡＭ型ＦＰＧＡの構築データに対応する複数の端子を設け、前記コンフィグ回路は、前記複数の端子のそれぞれと対応する前記不揮発性メモリ内の構築データを選択して前記ＳＲＡＭ型ＦＰＧＡに転送する機能を有することを特徴とする半導体装置。
【請求項９】
請求項８記載の半導体装置において、
前記不揮発性メモリはフラッシュメモリであることを特徴とする半導体装置。
【請求項１０】
ＣＰＵと、構築データの書き込みにより論理回路を構成するＳＲＡＭ型ＦＰＧＡと、前記ＳＲＡＭ型ＦＰＧＡに論理回路を構成する構築データを記憶する不揮発性メモリと、前記不揮発性メモリに記憶された構築データを用いて前記ＳＲＡＭ型ＦＰＧＡに対するコンフィグ動作を司るコンフィグ回路とを有し、前記ＳＲＡＭ型ＦＰＧＡ、前記不揮発性メモリ及び前記コンフィグ回路を同一半導体基板上に構成するものであって、
前記ＳＲＡＭ型ＦＰＧＡの構築データに対応する複数の値を格納するレジスタを設け、前記コンフィグ回路は、前記レジスタの複数の値のそれぞれと対応する前記不揮発性メモリ内の構築データを選択して前記ＳＲＡＭ型ＦＰＧＡに転送する機能を有することを特徴とする半導体装置。
【請求項１１】
請求項１０記載の半導体装置において、
前記不揮発性メモリはフラッシュメモリであることを特徴とする半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体装置に関し、特にＳＲＡＭ型ＦＰＧＡと、フラッシュメモリなどのような不揮発性メモリとを混載した半導体装置に適用して有効な技術に関する。
【０００２】
【従来の技術】
本発明者が検討したところによれば、マイクロコンピュータ（マイコン）などのＬＳＩや、それを組み込んだ電子機器に関しては、以下のような技術が考えられる。
【０００３】
近年、マイコン組み込み電子機器においては、プログラム規模の増大や製品開発期間の短縮、機器仕様の改善、制御データの調整のため、開発から試作、生産立ち上げ、量産の各工程においてマイコンプログラムの書き換えや調整が容易なフィールドプログラマビリティが求められている。それに対応するために、ＣＰＵとフラッシュメモリをワンチップ化したマイコンが開発されてきている。
【０００４】
一方、顧客においては、実際にシステムを構築する際、フラッシュメモリによるソフトの変更だけでは対応できない各信号の細かなチューニングやカスタム化などのために、顧客システム基板上にフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）やプログラマブル・ロジック・デバイス（ＰＬＤ）などを載せ、基板上でＬＳＩと接続して対応している。ＦＰＧＡやＰＬＤは、高位記述言語や論理回路図をもとにして、ユーザが極めて短時間にＬＳＩ上に論理回路を組むことができるデバイスであり、利便性が高い。
【０００５】
なお、このようなユーザ基板上にＬＳＩとＦＰＧＡを搭載する技術としては、たとえば特開平５−２３３８４４号公報に記載される技術などが挙げられる。この公報には、構築データの書き込みにより論理回路を構成するＳＲＡＭ型ＦＰＧＡ、このＳＲＡＭ型ＦＰＧＡに論理回路を構成する構築データを記憶するＰＲＯＭなどから構成される半導体装置が開示されている。
【０００６】
【発明が解決しようとする課題】
ところで、前記のようなユーザ基板上にＬＳＩとＦＰＧＡを搭載する技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００７】
たとえば、前述のように、ユーザ基板上にＬＳＩとＦＰＧＡとを別々に搭載する技術では、▲１▼ユーザシステム上の部品点数の増加によるコスト増大および基板設計の複雑化による開発期間の増大、▲２▼基板上で結線を行うことによって生じる配線遅延の増大や対ノイズ性の低下からくる性能／品質の低下、▲３▼別々のチップを開発／評価していくことによる開発費の増大、などの課題がある。
【０００８】
また、前記特開平５−２３３８４４号公報に記載の技術では、ＳＲＡＭ型ＦＰＧＡの構築データをＰＲＯＭに格納する技術であり、フラッシュメモリに格納するようにした技術ではない。
【０００９】
そこで、本発明者は、フラッシュメモリを搭載したＬＳＩに、さらにＦＰＧＡを内蔵させることにより、従来は困難であったシステム構築の際のソフトウェアによる変更だけでは対応できない各信号の細かなチューニングやカスタム化が可能となり、ユーザが極めて短時間でＬＳＩ上に論理回路を組むことができ、利便性が高いＬＳＩを実現することが可能となることを見出した。更に、ＳＲＡＭ型ＦＰＧＡであるために電源を投入するたびにＦＰＧＡロジックの構築が必要となるが、この構築のためのデータ転送制御のための回路をも同一チップ内に搭載することにより、より効率的なＦＰＧＡロジックの構築が可能となる。
【００１０】
このように、ワンチップ内にフラッシュメモリとＦＰＧＡを搭載するということは、ソフトウェアのフィールドプログラマビリティとハードウェアのフィールドプログラマビリティの両方をワンチップで実現できるということであり、ユーザにおいてはその制御がより容易となる。更にＦＰＧＡ構築用データを内蔵フラッシュメモリより転送するための制御回路を同一チップ内に搭載することで、構築のための制御がより効率的に行うことが可能となる。
【００１１】
また、ユーザ基板上で電源を入れ直す度にロジックが初期化されてしまうようなＦＰＧＡを使用している場合、電源を投入する度にＦＰＧＡロジックの構築をしなくてはならなくなるが、この場合、ロジック構築データが基板上を通るため、機密性が極めて低い。すなわち、セキュリティに弱いと言える。
【００１２】
しかし、フラッシュメモリを搭載し、そのメモリの中にロジック構築データを内蔵させておけば、更にはそのロジック構築データを転送制御するための制御回路が内蔵されていればロジック構築データはフラッシュメモリから内蔵ＦＰＧＡへと、ＬＳＩ外部を経由せずに転送することができ、ＬＳＩ外部にそのデータが乗ることなくＦＰＧＡにロジックを構築することができ、カスタム化されたＦＰＧＡ内ロジックの機密性を保持しなければならないような場合に非常に有効である。
【００１３】
そこで、本発明の目的は、ＳＲＡＭ型ＦＰＧＡと、フラッシュメモリなどのような不揮発性メモリおよびそのＦＰＧＡ構築のためのデータ転送制御用の回路とを混載した半導体装置において、ユーザが極めて短時間でＬＳＩ上に論理回路を組むことができ、利便性が高いＬＳＩを実現することができる半導体装置を提供することにある。
【００１４】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【００１５】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１６】
すなわち、本発明は、ＣＰＵと、構築データの書き込みにより論理回路を構成するＳＲＡＭ型ＦＰＧＡと、このＳＲＡＭ型ＦＰＧＡに論理回路を構成する構築データを記憶する不揮発性メモリと、この不揮発性メモリに記憶された構築データを用いてＳＲＡＭ型ＦＰＧＡに対するコンフィグ動作を司るコンフィグ回路とを有する半導体装置に適用され、以下のような特徴を有するものである。
【００１７】
（１）コンフィグ回路は、電源投入リセット時に、同一チップ内の不揮発性メモリ内のＦＰＧＡ構築データをＳＲＡＭ型ＦＰＧＡに転送する機能を有するものである。さらに、コンフィグ回路は、コンフィグ動作の完了後に内部リセット信号を解除する機能を有したり、あるいはコンフィグ回路によるコンフィグ動作の完了を検知する端子若しくは信号を設け、この端子または信号により周辺の半導体装置を起動する機能を有するものであり、特にフラッシュメモリなどのような不揮発性メモリに適用するようにしたものである。
【００１８】
（２）コンフィグ回路は、不揮発性メモリから転送されたＳＲＡＭ型ＦＰＧＡ内の構築データの一部を通常動作中に再構築する機能を有するものである。
【００１９】
（３）ＳＲＡＭ型ＦＰＧＡの構築データに対応する複数の端子若しくは構築データ選択転送制御モード選択信号を設け、コンフィグ回路は、複数の端子若しくは構築データ選択制御モード選択信号のそれぞれと対応する不揮発性メモリ内の構築データを選択してＳＲＡＭ型ＦＰＧＡに転送する機能を有するものであり、特にフラッシュメモリなどのような不揮発性メモリに適用するようにしたものである。
【００２０】
（４）ＳＲＡＭ型ＦＰＧＡの構築データに対応する複数の転送制御情報を格納するレジスタを設け、コンフィグ回路は、レジスタに格納された複数の転送制御情報のそれぞれと対応する不揮発性メモリ内の構築データを選択してＳＲＡＭ型ＦＰＧＡに転送する機能を有するものであり、特にフラッシュメモリなどのような不揮発性メモリに適用するようにしたものである。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一機能を有する部材には同一の符号を付し、その繰り返しの説明は省略する。
【００２２】
本発明は、ＳＲＡＭ型ＦＰＧＡと、フラッシュメモリなどのような不揮発性メモリとを混載した半導体装置に適用される。よって、▲１▼ＳＲＡＭ型のＦＰＧＡは電源を投入したら最初のコンフィグ動作（ＦＰＧＡ内にロジックを構築）するのは常である、▲２▼最初にＦＰＧＡにコンフィグするためのデータは不揮発性メモリ（たとえばフラッシュメモリ）の中に通常のＣＰＵ動作プログラムと同様に格納されているのが普通である、▲３▼コンフィグ動作は通常動作中にも行われることが可能である、などという観点から、本実施の形態では、上記で述べたＦＰＧＡ＋不揮発性メモリ内蔵ＬＳＩにおいて、その内部に専用のコンフィグ回路を搭載し、その動作を提示する。
【００２３】
本発明のように、専用のコンフィグ回路を設けることには幾つかのメリットがある。たとえば、コンフィグ動作における各リソース（ＣＰＵ、ＤＭＡＣ、コンフィグ回路）使用時の比較を示すと、図１のようになる。本発明では、コンフィグ回路という専用ハード形態になってしまうが、専用コンフィグ回路を搭載することにより、▲１▼ＳＲＡＭタイプのＦＰＧＡをＣＰＵによるプログラム介入が不要であるためにハードロジックであると見せることが可能となる、▲２▼内蔵されたフラッシュメモリ及びコンフィグ回路の構成によって不揮発性ＦＰＧＡと見なせるようになる、などの大きな利点が得られる。
【００２４】
具体的に、コンフィグ回路の場合には、ＣＰＵやＤＭＡＣに比べて、立ち上げ時間が速く（設定不要）、プログラムを不要とし、さらにコンフィグタイミングをリセット中あるいはリセット後に行うことが可能となる。これにより、ＣＰＵやＤＭＡＣにより論理回路の構築データを転送する場合に比べ、電源投入リセット時にＣＰＵからの転送制御を待つことなく不揮発性メモリ内の構築データをＦＰＧＡに転送することができ、電源投入リセット直後に早期にＦＰＧＡに構築された回路を使用することが可能となる。
【００２５】
以下において、本発明の、ＣＰＵと、構築データの書き込みにより論理回路を構成するＳＲＡＭ型ＦＰＧＡと、このＳＲＡＭ型ＦＰＧＡに論理回路を構成する構築データを記憶するフラッシュメモリなどのような不揮発性メモリと、この不揮発性メモリに記憶された構築データを用いてＳＲＡＭ型ＦＰＧＡに対するコンフィグ動作を司るコンフィグ回路とを有する半導体装置の実施の形態を具体的に説明する。
【００２６】
（実施の形態１）
図２〜図７により、本発明の実施の形態１の半導体装置の構成および動作の一例を説明する。図２は本実施の形態１の半導体装置のブロック図、図３はコンフィグ動作のタイミング図をそれぞれ示す。また、図４および図５は本実施の形態１における変形例、図６および図７は他の変形例をそれぞれ示す半導体装置のブロック図およびコンフィグ動作のタイミング図である。
【００２７】
本実施の形態の半導体装置（ＬＳＩ）は、たとえば図２に一例を示すように、ＬＳＩ全体の演算処理を司るＣＰＵ１、不揮発性メモリであるフラッシュメモリ２、ＳＲＡＭ型ＦＰＧＡであるプログラマブルロジック３、コンフィグ動作を司るコンフィグ回路４や、バスコントローラ５、割り込みコントローラ６、パワーオン検知回路７などから構成され、ＣＰＵ１とフラッシュメモリ２とコンフィグ回路４とプログラマブルロジック３とバスコントローラ５がデータバスやアドレスバスなどにより構成されている内部バス１１を介して接続され、プログラマブルロジック３とコンフィグ回路４がＦＰＧＡバス１２を介して接続されている。更にコンフィグ回路４はコンフィグデータ転送のためにフラッシュメモリ２と専用のデータバス１３を介して接続されている。更にプログラマブルロジック３とＦＰＧＡバス１２及びアドレスバス１６との接続部にセレクタを設け、内部バス１１とＦＰＧＡバス１２及びアドレスバス１６とのバスセレクトが可能になるようにしても良い。コンフィグ動作時はＦＰＧＡバス１２及びアドレスバス１６が選択され、通常動作時は内部バス１１が選択されるように構成する事も出来る。このような構成にすると、コンフィグ回路４はコンフィグ動作時のみ動作させ、それ以外の時はウェイト状態あるいは停止状態にして低消費電力化を図る事が出来る。
【００２８】
このＬＳＩには、外部端子として、リセット端子２１、ＦＰＧＡ用端子２２、外部端子２３、コンフィグ完了検知端子２４などがそれぞれ設けられている。リセット端子２１はパワーオン検知回路７、ＦＰＧＡ用端子２２はプログラマブルロジック３、外部端子２３はバスコントローラ５、コンフィグ完了検知端子２４はコンフィグ回路４にそれぞれ接続されている。更に外部端子２３は外部のメモリや周辺ＬＳＩと接続可能で、データ信号、アドレス信号やチップセレクト信号等の制御信号を入出力することが可能である。
【００２９】
コンフィグ回路４には、たとえばコンフィグ動作設定／制御回路、デコード回路、コンフィグスタートアドレス／転送データ量設定回路、周辺回路接続選択設定回路、リセット制御回路などが設けられている。コンフィグ動作設定／制御回路は、アドレスインクリメント、転送制御、各領域からコンフィグデータ読み出し／プログラマブルロジックへコンフィグデータ書き込み、コンフィグデータ転送量のカウント、コンフィグ完了フラグ、再コンフィグビット、コンフィグ完了時、割り込み要求／クリア制御などの各機能を備えている。デコード回路は、外部からの信号のデコード、回路内の内部信号のデコードなどの各機能を備えている。コンフィグスタートアドレス／転送データ量設定回路は、ＣＰＵにより書き換え可能なレジスタ群などを備えている。周辺回路接続選択設定回路は、ＣＰＵで書き換え可能であり、電源投入時はフラッシュメモリからコンフィグデータを読み出した後にさらに読み出してきたデータを自動設定する機能などを備えている。リセット制御回路は、電源投入後、コンフィグ動作に関係しないＬＳＩ内の各回路を制御するリセット信号を制御する機能などを備えている。
【００３０】
このコンフィグ回路４は、割り込みコントローラ６に対して割り込み要求信号１４を、ＣＰＵ１、バスコントローラ５、割り込みコントローラ６に対して第２内部リセット信号１９を、フラッシュメモリ２に対してアドレス１５を、プログラマブルロジック３に対してアドレス１６をそれぞれ供給する。また、コンフィグ回路４には、パワーオン検知回路７から第１内部リセット信号１８が供給される。さらに、このコンフィグ回路４からは、コンフィグ動作設定レジスタ３１に設定されたコンフィグ完了フラグがコンフィグ完了検知端子２４を通じて外部に出力することも可能となっている。
【００３１】
以上のように構成されるＬＳＩにおいて、コンフィグ回路４によるコンフィグ動作は、ＣＰＵ１による通常動作とは別に、たとえば図３に一例を示すようなタイミングとなる。
【００３２】
（１）ＬＳＩに対してリセット端子２１をアサートする。
【００３３】
（２）パワーオン検知回路７がリセット信号を検知し、第１内部リセット信号１８をアサートして発振安定時間待つ。
【００３４】
（３）この時、コンフィグ回路４はパワーオン検知回路７から受けた第１内部リセット信号１８を第２内部リセット信号１９として、コンフィグ動作に関係しないＬＳＩ内の各モジュールに分配する。
【００３５】
（４）発振安定時間が経過すると、パワーオン検知回路７が第１内部リセット信号１８をネゲートする。
【００３６】
（５）これにより、コンフィグに関係する回路が動作を開始し、専用データバス１３、ＦＰＧＡバス１２を介して、コンフィグ回路４が自動的にアドレスバス１５によって指定したフラッシュメモリ２内の決まった領域（アドレス）から決まった量のコンフィグデータをアドレスバス１６によって指定したプログラマブルロジック３内の領域へ転送し、ロジックを構築する。この時、第２内部リセット信号１９はアサートされたままになっている。
【００３７】
（６）コンフィグ回路４によるコンフィグデータ転送が終わってプログラマブルロジック３内にロジックが構築できると、コンフィグ回路４内のコンフィグ動作設定レジスタ３１のコンフィグ完了フラグが１にセットされる。
【００３８】
（７）この時、第２内部リセット信号１９もネゲートされ、通常のＣＰＵ１による動作が開始される。
【００３９】
なお、以上のようなコンフィグ回路４によるコンフィグ動作のタイミングによって、以下のようなことも可能となる。
【００４０】
（１１）リセット端子２１のネゲートは、コンフィグ動作が完了する前に行ってもよい。
【００４１】
（１２）ＣＰＵ１が通常動作を開始したときには、既にプログラマブルロジック３内にロジックが構築されているので、プログラマブルロジック３に即座にアクセス、動作開始が可能である。
【００４２】
（１３）外部回路においては、たとえば図３に示すように、コンフィグ完了フラグの値をコンフィグ完了検知端子２４から値を自動的に出力することにより、外部回路もＦＰＧＡ用端子２２へのアクセスが可能となったことを知ることができる。
【００４３】
（１４）本実施の形態において、コンフィグデータの格納領域は、通常、ユーザのプログラム／データが格納されているフラッシュメモリ２としたが、ユーザのプログラム／データが格納されているフラッシュメモリとコンフィグデータが格納されているフラッシュメモリがそれぞれ独立していても良い。これにより、たとえば高速動作が可能なプログラムは高価だが高速動作可能なフラッシュメモリの領域に、コンフィグデータの読み出しのように多少遅くてもよいデータは廉価なフラッシュメモリの領域に、という具合に区別することにより、ＬＳＩの最適化を図ることができる。
【００４４】
（１５）前記（１１）において、リセット端子２１のアサート後にフラッシュメモリ２の決まったアドレス（領域）からデータを読み出すのではなく、たとえば図３に示すように、まず最初にフラッシュメモリ２のある決まったアドレスから、ベクタフェッチの動作と同様な動作でコンフィグデータが格納されている最初のアドレス値を読み出し、そこからコンフィグデータを読み出してコンフィグ動作を行うような構成にしても良い。こうすると、ユーザが作成するプログラムにおいて、コンフィグデータを格納する領域の自由度が広がる。
【００４５】
（１６）パワーオン検知回路７はコンフィグ回路４の中に含めても良い。
【００４６】
（１７）コンフィグデータは専用バスによって転送されるだけでなく、内部バスを一時的に占有してコンフィグデータを転送可能にしても良い。
【００４７】
コンフィグ回路４はプログラマブルロジック３に対するコンフィグデータ転送が終了した後には、内部バス１１とプログラマブルロジック３とを接続させるためのブリッジ回路として機能しても良い。
【００４８】
ＦＰＧＡバス１２はコンフィグデータ転送のためのバスとして機能するだけでなく、通常動作時においてもバスとして動作することが可能である。
【００４９】
アドレスバス１５はフラッシュメモリ２内の任意の領域に格納されたコンフィグ用データを転送するためのアドレス指定に用いることが可能である。
【００５０】
アドレスバス１６はコンフィグデータ以外のデータをプログラマブルロジック３の任意の領域に格納するためのアドレス指定のために利用しても良い。
【００５１】
従って、本実施の形態によれば、▲１▼リセット入力は、発振安定時間を気にせずにいつでもネゲートできる、▲２▼発振安定時間経過後、特別な設定なしにプログラマブルロジック３に対するコンフィグ動作を自動的に行える、▲３▼コンフィグデータをフラッシュメモリ２の任意の場所に配置することができる、▲４▼ＣＰＵ１が通常動作を開始する時には既にコンフィグ動作が完了しているので、すぐにプログラマブルロジック３にアクセスが可能である、▲５▼外部回路はコンフィグ動作が終了したことをコンフィグ完了検知端子２４から確認できる、▲６▼コンフィグ動作のデータバス１３を専用バス化することにより、バス制御を必要とすることなくコンフィグ動作を行うことができる、などの効果を得ることができる。
【００５２】
次に、図４および図５により、本実施の形態１の変形例の半導体装置の構成および動作の一例を説明する。
【００５３】
図４に示す半導体装置は、前記図２の構成からパワーオン検知回路７を削除した構成となっており、コンフィグ回路４によるコンフィグ動作は図５に示すようなタイミングとなる。
【００５４】
（１）ＬＳＩに対してリセット端子２１をアサートする。
【００５５】
（２）リセット端子２１からの入力は第１内部リセット信号１８として、ＬＳＩ内部の各モジュールに分配される。この時、コンフィグ動作に関係のない各モジュールに対しては、コンフィグ回路４が第２内部リセット信号１９を分配する。
【００５６】
（３）リセット端子２１からの入力は、規定された発振安定時間以上アサートする。
【００５７】
（４）発振安定時間以上経過したら、リセット端子２１をネゲートする。
【００５８】
（５）これを受けると、第１内部リセット信号１８がネゲートされ、コンフィグ回路４が自動的にフラッシュメモリ２内の決まった領域（アドレス）から決まった量のコンフィグデータをプログラマブルロジック３へ転送し、ロジックを構築する。この時、依然として第２内部リセット信号１９はアサートされたままになっており、コンフィグ動作に関係しないモジュールは動作を停止している。
【００５９】
（６）コンフィグ回路４によるコンフィグデータ転送が終わってプログラマブルロジック３内にロジックが構築できると、コンフィグ回路４内のコンフィグ動作設定レジスタ３１のコンフィグ完了フラグが１にセットされる。
【００６０】
（７）この時、コンフィグ回路４が第２内部リセット信号１９をネゲートすることにより、ＣＰＵ１が通常動作を開始する。
【００６１】
なお、以上のようなコンフィグ回路４によるコンフィグ動作のタイミングにおいては、以下のようなことも可能である。
【００６２】
（２１）ＣＰＵ１でコンフィグ完了フラグを読み出さなくても、コンフィグ完了フラグの値をコンフィグ完了検知端子２４から値を自動的に出力することにより、外部回路もＦＰＧＡ用端子２２へのアクセスが可能となったことを知ることができる。また、コンフィグ動作が完了したら、コンフィグ回路４から割り込みコントローラ６へ割り込み要求信号１４を発生させることによっても、コンフィグ動作が完了したことを知ることができる。
【００６３】
（２２）フラッシュメモリ２からコンフィグデータを読み出すときに使用するデータバスとして、ＣＰＵ１などと共有している内部バス１１ではなく、コンフィグデータ読み出し専用データバス１３を設けても良い。
【００６４】
（２３）前記図３において示した（１２）〜（１５）の内容については同様に当てはまる。
【００６５】
従って、本実施の形態１の変形例によれば、▲１▼リセットアサート後、特別な設定をせずにプログラマブルロジック３に対するコンフィグ動作を自動的に行える、▲２▼コンフィグデータをフラッシュメモリ２の任意の場所に配置することができる、▲３▼ＣＰＵ１が通常動作を開始する時には既にコンフィグ動作が完了しているので、すぐにプログラマブルロジック３にアクセスが可能である、▲４▼外部回路はコンフィグ動作が終了したことをコンフィグ完了検知端子２４から確認できる、▲５▼コンフィグ動作のデータバス１３を専用バス化することにより、バス制御を必要とすることなくコンフィグ動作を行うことができる、などの効果を得ることができる。
【００６６】
次に、図６および図７により、本実施の形態１の他の変形例の半導体装置の構成および動作の一例を説明する。
【００６７】
図６に示す半導体装置は、前記図４と同じ構成において、コンフィグ回路４が第２内部リセット信号１９を生成する代わりに、リセット端子２１からの入力信号により制御するような構成となっており、コンフィグ回路４によるコンフィグ動作は図７に示すようなタイミングとなる。
【００６８】
（１）ＬＳＩに対してリセット端子２１をアサートする。
【００６９】
（２）リセット端子２１からの入力は第１内部リセット信号１８として、ＬＳＩ内部の各モジュールに分配される。
【００７０】
（３）リセット端子２１からの入力は、規定された発振安定時間以上アサートする。
【００７１】
（４）発振安定時間以上経過したら、リセット端子２１をネゲートする。
【００７２】
（５）これを受け、ＣＰＵ１による通常動作が開始されるとともに、コンフィグ回路４が自動的にフラッシュメモリ２内の決まった領域（アドレス）から決まった量のコンフィグデータをプログラマブルロジック３へ転送し、ロジックを構築する。
【００７３】
（６）コンフィグ回路４によるコンフィグデータ転送が終わってプログラマブルロジック３内にロジックが構築できると、コンフィグ回路４内のコンフィグ動作設定レジスタ３１のコンフィグ完了フラグが１にセットされる。
【００７４】
なお、以上のようなコンフィグ回路４によるコンフィグ動作のタイミングにおいては、以下のようなことも可能である。
【００７５】
（３１）ＣＰＵ１がコンフィグ完了フラグを読み出すことにより、ＬＳＩはプログラマブルロジック３へのアクセスが可能となったことを知ることができる。
【００７６】
（３２）コンフィグ回路４内に書き込み保護機能（ビット）を設け、コンフィグ動作を行っている最中はコンフィグ動作に関するレジスタの設定を上書きできないようにプロテクトする機能を設けても良い。
【００７７】
（３３）フラッシュメモリ２内の値はＣＰＵ１以外では読めないように、一度でも外部から読もうとすると、ＡＬＬ“０”しか読めなくなってしまうようなプログラムプロテクト機能を有している場合もあるが、コンフィグデータに関しても同様に、コンフィグ動作中以外はプログラマブルロジック３内からＦＰＧＡバス１２を経由してデータを読み出せないように制御する。すなわち、コンフィグ時におけるデータベリファイ以外では、ＦＰＧＡバス１２を経由してきたデータは内部バスに乗せないようにする機能を設け、セキュリティを強化しても良い。
【００７８】
（３４）前記図３において示した（１２）〜（１５）、前記図５において示した（２１）〜（２２）の内容については同様に当てはまる。
【００７９】
従って、本実施の形態１の他の変形例によれば、▲１▼リセットアサート後、特別な設定を行うことなくプログラマブルロジック３に対するコンフィグ動作を自動的に行える、▲２▼コンフィグデータをフラッシュメモリ２の任意の場所に配置することができる、▲３▼コンフィグ動作が終了したことを、コンフィグ完了検知端子２４から、あるいはレジスタ内のフラグの値を読み出すことによって確認できる、▲４▼コンフィグ動作のデータバス１３を専用バス化することにより、ＣＰＵ１などによる動作と並行してコンフィグ動作を行うことができる、などの効果を得ることができる。
【００８０】
（実施の形態２）
図８および図９により、本発明の実施の形態２の半導体装置の構成および動作の一例を説明する。図８は本実施の形態２の半導体装置のブロック図、図９はコンフィグ動作のタイミング図をそれぞれ示す。
【００８１】
本実施の形態の半導体装置（ＬＳＩ）は、たとえば図８に一例を示すように、ＣＰＵ１、フラッシュメモリ２、プログラマブルロジック３、コンフィグ回路４、バスコントローラ５などから構成され、前記実施の形態１との相違点は、コンフィグ回路４内にコンフィグデータの読み出し先アドレスを設定するレジスタがあり、また外部からリセット端子をアサートしなくてもコンフィグ回路４内のレジスタのあるビットに書き込みをすれば、コンフィグを再度行う機能を持つようにした点である。
【００８２】
すなわち、このＬＳＩのコンフィグ回路４には、コンフィグ動作設定レジスタ３１、コンフィグスタートアドレス設定レジスタ３２、コンフィグデータ転送回数設定レジスタ３３が設けられている。コンフィグ動作設定レジスタ３１には、コンフィグ完了フラグの他に、コンフィグ開始ビット、再コンフィグビットが設定される。
【００８３】
さらに、外部端子として、コンフィグ開始トリガ端子２５が設けられ、このコンフィグ開始トリガ端子２５からの入力によって、コンフィグ回路４のコンフィグ動作設定レジスタ３１に再コンフィグビットが設定され、またリセット端子２１からの入力とともにゲート回路で演算処理されてコンフィグ開始ビットが設定される。またこの動作はＣＰＵからのプログラム制御により、ＦＰＧＡでのデータ処理等を終わらせたうえで、コンフィグ開始ビットを設定することにより再びフラッシュメモリからＦＰＧＡへのコンフィグ動作が行われても良い。
【００８４】
このような構成において、コンフィグ回路４によるコンフィグ動作（再コンフィグ時）は図９に示すようなタイミングとなる。
【００８５】
（１）コンフィグ動作を開始するのは、▲１▼リセット端子２１がアサートされた時、▲２▼コンフィグ開始トリガ端子２５がアサートされた時、▲３▼ＣＰＵ１が内部バス１１を経由して、コンフィグ回路４内のコンフィグ動作設定レジスタ３１内のコンフィグ開始ビットに設定を行った時、の各ケースである。上記▲１▼、▲２▼を行うと、コンフィグ開始ビットが自動的にセットされる。
【００８６】
（２）上記▲２▼、▲３▼においては、コンフィグ回路４内のコンフィグ動作設定レジスタ３１の再コンフィグビットも自動的にセットされる。ここで、再コンフィグビットがセットされた場合には、コンフィグ回路４内のコンフィグスタートアドレス設定レジスタ３２からコンフィグデータを読み出すアドレスを読み出した後、その領域からデータを転送してコンフィグ動作を行う。
【００８７】
（３）コンフィグ回路４内には、コンフィグスタートアドレス設定レジスタ３２以外に、コンフィグデータ転送回数設定レジスタ３３も存在している。これにより、プログラマブルロジック３内に構築する論理の規模によって可変であるコンフィグデータのデータ転送量を設定することができるため、プログラマブルロジック３内の一部の論理だけを再構築することができる。
【００８８】
（４）本実施の形態においても、前記実施の形態１で説明した機能が設けられていても構わない。
【００８９】
従って、本実施の形態２によれば、▲１▼リセット解除後の通常動作中に再度、コンフィグ動作が行える、▲２▼再コンフィグ動作は、コンフィグ開始トリガ端子２５からのトリガ信号入力か、あるいはＣＰＵ１などを用いてビットを設定することにより実現できる、▲３▼コンフィグデータの格納場所を、アドレスマップされた全領域に広げることができる、▲４▼コンフィグデータ量を任意に設定できるため、プログラマブルロジック３を一部だけ再構築することが可能となる、などの効果を得ることができる。
【００９０】
（実施の形態３）
図１０により、本発明の実施の形態３の半導体装置の構成および動作の一例を説明する。図１０は本実施の形態３の半導体装置のブロック図を示す。
【００９１】
本実施の形態の半導体装置（ＬＳＩ）は、たとえば図１０に一例を示すように、ＣＰＵ１、フラッシュメモリ２、プログラマブルロジック３、コンフィグ回路４、バスコントローラ５などから構成され、前記実施の形態１および２との相違点は、コンフィグデータが格納されているアドレスを予め複数設定可能であり、実際にどのアドレスからコンフィグデータを読み出すかの制御については外部端子から、あるいはコンフィグ回路４内のレジスタを設定することによって実現されるようにした点である。
【００９２】
すなわち、このＬＳＩのコンフィグ回路４には、コンフィグ動作設定レジスタ３１、複数のコンフィグスタートアドレス設定レジスタ３２ａ，３２ｂ，…およびコンフィグデータ転送回数設定レジスタ３３ａ，３３ｂ，…、コンフィグアドレス選択レジスタ３４、デコード回路３５が設けられている。コンフィグ動作設定レジスタ３１には、コンフィグ完了フラグ、コンフィグ開始ビット、再コンフィグビットの他に、チェーン設定ビットが格納される。コンフィグアドレス選択レジスタ３４には、アドレスレジスタ選択、端子／レジスタ設定選択のビットが設定される。これらコンフィグスタートアドレス設定レジスタ３２ａ，３２ｂ，…、コンフィグデータ転送回数設定レジスタ３３ａ，３３ｂ，…に設定するための値は予めＣＰＵ等の制御によって設定しておく必要がある。
【００９３】
さらに、外部端子として、転送アドレス選択端子２６〜２８が設けられ、この転送アドレス選択端子２６〜２８からの入力信号をデコード回路３５によってデコードし、各コンフィグスタートアドレス設定レジスタ３２ａ，３２ｂ，…、コンフィグデータ転送回数設定レジスタ３３ａ，３３ｂ，…の選択制御を行う。また、この各コンフィグスタートアドレス設定レジスタ３２ａ，３２ｂ，…、コンフィグデータ転送回数設定レジスタ３３ａ，３３ｂ，…を選択する制御としては前記転送アドレス選択端子２６〜２８のみでなく、コンフィグ回路内のコンフィグアドレス選択レジスタ３４によっても選択することが可能となる。
【００９４】
このような構成において、コンフィグ回路４によるコンフィグ動作は前記実施の形態１および２と同様のタイミングとなる。
【００９５】
（１）コンフィグ回路４内には、多数のコンフィグスタートアドレス設定レジスタ３２ａ，３２ｂ，…と、コンフィグデータ転送回数設定レジスタ３３ａ，３３ｂ，…があり、それらの設定によりコンフィグ動作を開始する時に、どこの領域にあるデータをコンフィグデータとして転送するか、選択することが可能となる。ここで、コンフィグスタートアドレス設定レジスタ３２ａ，３２ｂ，…と、コンフィグデータ転送回数設定レジスタ３３ａ，３３ｂ，…は、予めＣＰＵ１などを用いて値を設定しておく必要がある。
【００９６】
（２）ここで、前記実施の形態２の手順（１）の▲２▼、▲３▼の時、転送アドレスレジスタ選択端子２６〜２８の設定によって、多種類（例えば本例では３本の選択端子からの信号による３ビットで最大８種類）のコンフィグスタートアドレス／転送回数設定を選択することができる。
【００９７】
（３）上記（２）の設定では、外部端子からではなく、コンフィグ回路４内に設けられたコンフィグアドレス選択レジスタ３４によっても選択することができる。この時、コンフィグアドレス選択レジスタ３４で設定した値は転送アドレスレジスタ選択端子２６〜２８の入力値をデコードするデコード回路３５内に入力され、転送アドレスレジスタ選択端子２６〜２８の設定か、あるいはコンフィグアドレス選択レジスタ３４の設定値かを選ぶことができる。
【００９８】
（４）前記実施の形態２までは、コンフィグデータはあるアドレス領域から連続したデータを１回だけ転送してプログラマブルロジック３内にロジックを構築していたが、コンフィグしたいデータが空間として不連続なアドレスに存在した場合、コンフィグスタートアドレス設定レジスタ３２ａ，３２ｂ，…／コンフィグデータ転送回数設定レジスタ３３ａ，３３ｂ，…をそれぞれのレジスタで設計された分だけ順番に転送を行なっていく事により対応出来る。このように、いくつかのレジスタで設定された内容通りに順番に転送していく、いわゆるチェーン動作の設定は、コンフィグ回路４内のコンフィグ動作設定レジスタ３１で行えば良い。
【００９９】
（５）本実施の形態においても、前記実施の形態１および２で説明した機能が設けられていても構わない。
【０１００】
従って、本実施の形態３によれば、▲１▼再コンフィグを行う際、予め設定した多くのアドレス値の中から状況に応じて任意のコンフィグデータをコンフィグすることができる、▲２▼コンフィグデータがアドレス的に連続していなくても、連続したコンフィグ動作を行うことができる、などの効果を得ることができる。
【０１０１】
（実施の形態４）
図１１および図１２により、本発明の実施の形態４の半導体装置の構成および動作の一例を説明する。図１１は本実施の形態４の半導体装置のブロック図、図１２はコンフィグ動作のタイミング図をそれぞれ示す。
【０１０２】
本実施の形態の半導体装置（ＬＳＩ）は、たとえば図１１に一例を示すように、ＣＰＵ１、フラッシュメモリ２、プログラマブルロジック３、コンフィグ回路４、バスコントローラ５、ＣＭＴ４１、ＳＣＩＦ４２、ＭＴＵ４３、周辺回路接続信号セレクタ回路４４などから構成され、前記実施の形態１〜３との相違点は、プログラマブルロジック３とＬＳＩ内部の各種信号を接続有効／無効の切り替えが自動的になされる回路を持ち、また接続信号はいくつかの信号とマルチプレクスされており、選択することが可能なようにした点である。更に周辺回路であるＣＭＴ４１、ＳＣＩＦ４２、ＭＴＵ４３は内部バス１１と接続可能な構成となっており、ＣＰＵ１等からの制御が可能となる。
【０１０３】
すなわち、このＬＳＩにおいて、ＣＭＴ４１はコンペア・マッチ・タイマ、ＳＣＩＦ４２はシリアル・コミュニケーション・インタフェース、ＭＴＵ４３はマルチファンクション・タイマパルス・ユニットである。
【０１０４】
また、周辺回路接続信号セレクタ回路４４には、たとえばＦＰＧＡ入力側セレクト回路、ＦＰＧＡ出力側セレクト回路、周辺回路接続有効／無効制御回路などが設けられている。ＦＰＧＡ入力側セレクト回路は、周辺回路からプログラマブルロジック３への接続信号をコンフィグ回路内の周辺回路接続選択設定回路により選択する機能などを備えている。ＦＰＧＡ出力側セレクト回路は、プログラマブルロジック３から周辺回路への接続信号をコンフィグ回路内の周辺回路接続選択設定回路により選択する機能などを備えている。周辺回路接続有効／無効制御回路は、コンフィグ動作中は接続信号を無効にして、周辺回路が誤動作しないようにする機能などを備えている。
【０１０５】
さらに、このＬＳＩのコンフィグ回路４には、コンフィグ動作設定レジスタ３１、デコード回路３５などの他に、セレクタ制御レジスタ３６が設けられている。
【０１０６】
このような構成において、コンフィグ回路４によるコンフィグ動作は図１２に示すようなタイミングとなる。
【０１０７】
（１）▲１▼リセット端子２１のアサート、▲２▼コンフィグ開始トリガ端子２５のアサート、▲３▼コンフィグ回路４内のコンフィグ動作設定レジスタ３１のコンフィグ開始ビット（再コンフィグビットは自動的にセット）のいずれかを行うと、コンフィグ動作を開始する。
【０１０８】
（２）コンフィグ動作を行っている最中は、プログラマブルロジック３とＣＭＴ４１、ＳＣＩＦ４２、ＭＴＵ４３などのＬＳＩ内モジュールとの接続信号が無効であるように、周辺回路接続信号セレクタ回路４４が制御を行う（接続信号をネゲート状態に保つ）。
【０１０９】
（３）コンフィグ動作が完了すると、コンフィグ回路４内のコンフィグ動作設定レジスタ３１のコンフィグ完了フラグがセットされるが、これと同時に接続信号有効ビットもセットされる。周辺回路接続信号セレクタ回路４４は接続信号有効ビットがセットされたのを受けて、自動的に各モジュールとの接続信号を有効状態にする。
【０１１０】
（４）再コンフィグの際には、接続信号有効ビットの値は自動的にクリアされ、周辺接続信号有効ビットを無効状態（ネゲート状態）に保つ。
【０１１１】
なお、以上のようなコンフィグ回路４によるコンフィグ動作においては、以下のようなことも可能である。
【０１１２】
（４１）プログラム開発後は、プログラマブルロジック３のどの内部Ｉ／Ｏをどのモジュールと接続するかが決定されているが、開発段階では、それが決定していない。ここで、もしプログラマブルロジック３の内部Ｉ／ＯとＣＭＴ４１、ＳＣＩＦ４２、ＭＴＵ４３のようなＬＳＩ内のモジュールと接続が一意に決まっているとすると、プログラマブルロジック３に構築するロジックにＩ／Ｏの配置制限が加わることになり、プログラマブルロジック３の設計自由度が下がる。そこで、どのプログラマブルロジック３の内部Ｉ／ＯをＣＭＴ４１、ＳＣＩＦ４２、ＭＴＵ４３などに接続すればいいかを選択する機能を設けることにより、プログラマブルロジック３のＩ／Ｏ配置制限を緩和することができる。
【０１１３】
（４２）周辺回路接続信号セレクタ回路４４での選択は、コンフィグ回路４内のセレクタ制御レジスタ３６に値を書き込むことによって実現される。これは、コンフィグ動作を行う時に、コンフィグ回路４内のセレクタ制御レジスタ３６に値を書き込む（つまりデータを転送する）よう、コンフィグデータにデータを追加しておくだけで良い。
【０１１４】
（４３）セレクタ制御レジスタ３６の値は、ＣＰＵ１などを用いて通常動作中にセットしても良い。
【０１１５】
（４４）接続信号有効ビットの値も、ＣＰＵ１などを用いて通常動作中に書き換えしても良い。
【０１１６】
（４５）本実施の形態においても、前記実施の形態１〜３で説明した機能が設けられていても構わない。
【０１１７】
従って、本実施の形態４によれば、▲１▼プログラマブルロジック３とＣＭＴ４１、ＳＣＩＦ４２、ＭＴＵ４３などのモジュールとの接続信号を、コンフィグ動作の最中では無効にし、さらにコンフィグが完了すると、自動的に接続信号を有効状態に切り替えることができる、▲２▼プログラマブルロジック３と各モジュールの接続信号をセレクタ制御レジスタ３６の設定によって切り替えられるようにして、プログラマブルロジック３のＩ／Ｏ割り当て制限を緩和できる、などの効果を得ることができる。
【０１１８】
（実施の形態５）
図１３により、本発明の実施の形態５の半導体装置の構成および動作の一例を説明する。図１３は本実施の形態５の半導体装置のブロック図を示す。
【０１１９】
本実施の形態の半導体装置（ＬＳＩ）は、たとえば図１３に一例を示すように、ＣＰＵ１、フラッシュメモリ２、プログラマブルロジック３、コンフィグ回路４、バスコントローラ５、端子制御回路５１などから構成され、前記実施の形態１〜４との相違点は、ＦＰＧＡ用端子２２を制御することが可能な端子制御回路５１を持つようにした点である。
【０１２０】
すなわち、このＬＳＩにおいて、端子制御回路５１には、たとえばプルアップ／プルダウン回路５２、このプルアップ／プルダウン回路５２の制御回路５３などが設けられている。プルアップ／プルダウン回路５２は、各端子において、コンフィグ動作時に端子の電圧レベルを制御する機能、電源投入後、コンフィグ動作が完了するまでは電圧レベルをハイにしておく（プルアップＭＯＳＦＥＴを有効）機能などを備えている。
【０１２１】
更に、プルアップ／プルダウン回路５２は、プルアップＭＯＳＦＥＴ５２ａとプルダウンＭＯＳＦＥＴ５２ｂなどからなり、それぞれ制御回路５３によりゲート制御され、またプルアップＭＯＳＦＥＴ５２ａのソースは電源電位に、プルダウンＭＯＳＦＥＴ５２ｂのソースは接地電位にそれぞれ接続され、ドレインが共通に接続されてＦＰＧＡ用端子２２に接続されている。
【０１２２】
このような構成において、コンフィグ回路４によるコンフィグ動作は前記図１２に示すようなタイミングとなる。
【０１２３】
（１）▲１▼リセット端子２１のアサート、▲２▼コンフィグ開始トリガ端子２５のアサート、▲３▼コンフィグ回路４内のコンフィグ動作設定レジスタ３１のコンフィグ開始ビット（再コンフィグビットは自動的にセット）のいずれかを行うと、コンフィグ動作を開始する。
【０１２４】
（２）コンフィグ動作を行っている最中は、プログラマブルロジック３とＦＰＧＡ用端子２２の接続が無効であるように、端子制御回路５１が制御を行う（接続信号をネゲート状態に保つ）。
【０１２５】
（３）コンフィグ動作が完了すると、コンフィグ回路４内のコンフィグ完了フラグと接続信号有効ビットがセットされる。端子制御回路５１はこれを受けて、自動的にプログラマブルロジック３、及びＦＰＧＡ用端子２２との接続信号を有効状態にする。
【０１２６】
（４）再コンフィグの際には、接続信号有効ビットの値は自動的にクリアされ、再び接続信号を無効状態（ネゲート状態）に保つ。
【０１２７】
なお、以上のようなコンフィグ回路４によるコンフィグ動作においては、以下のようなことも可能である。
【０１２８】
（５１）上記（２）において、ＦＰＧＡ用端子２２はＬＳＩにとって入力か出力か、ハイアクティブかローアクティブなのかはコンフィグが完了するまで分からない。そこで、端子制御回路５１は端子がいずれの場合でも適応可能とするために、プルアップＭＯＳＦＥＴ５２ａを用意し、コンフィグが完了するまで、ＦＰＧＡ用端子２２はこのプルアップＭＯＳＦＥＴ５２ａにより１をドライブするようにしておく。コンフィグが完了したら、プルアップＭＯＳＦＥＴ５２ａの動作を無効にし、プログラマブルロジック３とＦＰＧＡ用端子２２を接続した状態（有効な状態）にする。
【０１２９】
（５２）場合によっては、ＦＰＧＡ用端子２２に対して、プルダウンＭＯＳＦＥＴ５２ｂを接続して０をドライブしたい場合もあり得る。この場合、コンフィグ回路４内のＦＰＧＡ用端子コントロールレジスタに値を設定することにより、プルアップＭＯＳＦＥＴ５２ａを無効にして、プルダウンＭＯＳＦＥＴ５２ｂを有効にするように切り替える。
【０１３０】
（５３）上記（５２）の設定は、▲１▼通常動作中にＣＰＵ１などによる設定と、▲２▼コンフィグ動作中にコンフィグデータとともに、ＦＰＧＡ用端子コントロールレジスタに設定が行われるように、コンフィグデータに設定値を追加しておく、の２通りが考えられる。
【０１３１】
（５４）電源投入直後から端子レベルをプルダウン設定することができないが、通常動作中に再コンフィグを行いたい時などに端子状態を固定させるときに有効となる。
【０１３２】
（５５）本実施の形態においても、前記実施の形態１〜４で説明した機能が設けられていても構わない。
【０１３３】
従って、本実施の形態５によれば、▲１▼プログラマブルロジック３と外部端子との接続信号を、コンフィグ動作の最中は無効にし、さらにコンフィグが完了すると、自動的に接続信号を有効状態に切り替えることができる、▲２▼コンフィグ最中はプルアップＭＯＳＦＥＴ５２ａを動作させることにより、他のＬＳＩに悪影響を与えないようにすることができる、▲３▼プルアップＭＯＳＦＥＴ５２ａではなく、プルダウンＭＯＳＦＥＴ５２ｂが必要な場合には、レジスタに値を設定することによって切り替えることにより、再コンフィグなどの時、端子状態の電圧レベルをハイ／ローどちらかに任意に固定させることができる、などの効果を得ることができる。
【０１３４】
以上、実施の形態１〜５で説明したようなＬＳＩのアプリケーションとしては、たとえば図１４に一例を示すように、ロジック（１）＋ロジック（２）＋ロジック（３）≧プログラマブルロジック３の規模であっても、時間的に必要なロジックのみを動的にプログラマブルロジック３内に再コンフィグしていくことにより、プログラマブルロジック３の節約、具体的にはチップ面積の縮小による売価の低価格化および不良率の低減などが可能となる。
【０１３５】
さらに、チップ内部に格納したコンフィグ用データを必要に応じて選択的にＦＰＧＡに対して転送制御を行うコンフィグ回路を有することにより、他のアプリケーションとして、たとえば図１５に一例を示すように、一般的には、産業向け、通信向け、ＡＳＩＣなどのように、それぞれのユーザに合ったロジックをソフトウェア（プログラム）のみで作成可能であり、さらにそれらによって、部品点数が増えない、１チップのままで対応することが可能となる。
【０１３６】
以上で述べた実施の形態において、コンフィグ回路４はプログラマブルロジック３に対するコンフィグデータ転送が終了した後には、内部バス１１とプログラマブルロジック３とを接続させるためのブリッジ回路として機能しても良い。
【０１３７】
ＦＰＧＡバス１２はコンフィグデータ転送のためのバスとして機能するだけでなく、通常動作時においてもバスとして動作することが可能である。
【０１３８】
アドレスバス１５はフラッシュメモリ２内の任意の領域に格納されたコンフィグ用データを転送するためのアドレス指定に用いることが可能である。
【０１３９】
アドレスバス１６はコンフィグデータ以外のデータをプログラマブルロジック３の任意の領域に格納するためのアドレス指定のために利用しても良い。
【０１４０】
コンフィグデータは専用データバス１３を介してだけでなく、内部バス１１を介することによってもプログラマブルロジック３に対して転送することが可能である。
【０１４１】
プログラマブルロジック３に接続されたＦＰＧＡ端子２２と外部に接続されたデバイスとの接続は、バス接続が可能となるように接続されてあっても良いし、信号線によって接続されてあっても良い。つまり、プログラマブルロジック３とＦＰＧＡ端子２２との接続はバス接続に限定されるだけでなく、制御信号線が接続されるようになっていても良い。
【０１４２】
更に、各実施例で示された内容は其々単独で実施することに限定されるだけでなく、其々を任意に組み合わせて実施されても良い。
【０１４３】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１４４】
【発明の効果】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【０１４５】
（１）ＳＲＡＭ型ＦＰＧＡ内蔵ＬＳＩにおいて必須の動作であるコンフィグ動作を司る回路をハード化した事により、パワーオンリセット後のＬＳＩ立上げ期間が短く出来る。
【０１４６】
（２）コンフィグ動作プログラムが不要となる。
【０１４７】
（３）再コンフィグが容易にフレキシブルに行なえる。
【０１４８】
（４）コンフィグ動作が完了した事を外部に接続された回路が容易に知る事が出来る。
【図面の簡単な説明】
【図１】本発明において、コンフィグ動作における各リソース使用時の比較を示す説明図である。
【図２】本発明の実施の形態１の半導体装置を示すブロック図である。
【図３】本発明の実施の形態１の半導体装置において、コンフィグ動作を示すタイミング図である。
【図４】本発明の実施の形態１における変形例の半導体装置を示すブロック図である。
【図５】本発明の実施の形態１における変形例の半導体装置において、コンフィグ動作を示すタイミング図である。
【図６】本発明の実施の形態１における他の変形例の半導体装置を示すブロック図である。
【図７】本発明の実施の形態１における他の変形例の半導体装置において、コンフィグ動作を示すタイミング図である。
【図８】本発明の実施の形態２の半導体装置を示すブロック図である。
【図９】本発明の実施の形態２の半導体装置において、コンフィグ動作を示すタイミング図である。
【図１０】本発明の実施の形態３の半導体装置を示すブロック図である。
【図１１】本発明の実施の形態４の半導体装置を示すブロック図である。
【図１２】本発明の実施の形態４の半導体装置において、コンフィグ動作を示すタイミング図である。
【図１３】本発明の実施の形態５の半導体装置を示すブロック図である。
【図１４】本発明の実施の形態の半導体装置におけるアプリケーションを示す説明図である。
【図１５】本発明の実施の形態の半導体装置における他のアプリケーションを示す説明図である。
【符号の説明】
１　ＣＰＵ
２　フラッシュメモリ
３　プログラマブルロジック
４　コンフィグ回路
５　バスコントローラ
６　割り込みコントローラ
７　パワーオン検知回路
１１　内部バス
１２　ＦＰＧＡバス
１３　専用データバス
１４　割り込み要求信号
１５，１６　アドレス
１８　第１内部リセット信号
１９　第２内部リセット信号
２１　リセット端子
２２　ＦＰＧＡ用端子
２３　外部端子
２４　コンフィグ完了検知端子
２５　コンフィグ開始トリガ端子
２６〜２８　転送アドレス選択端子
３１　コンフィグ動作設定レジスタ
３２　コンフィグスタートアドレス設定レジスタ
３３　コンフィグデータ転送回数設定レジスタ
３４　コンフィグアドレス選択レジスタ
３５　デコード回路
４１　ＣＭＴ
４２　ＳＣＩＦ
４３　ＭＴＵ
４４　周辺回路接続信号セレクタ回路
５１　端子制御回路
５２　プルアップ／プルダウン回路
５２ａ　プルアップＭＯＳＦＥＴ
５２ｂ　プルダウンＭＯＳＦＥＴ
５３　制御回路
【図１】
2004056716.tif 000003
【図２】
2004056716.tif 000004
【図３】
2004056716.tif 000005
【図４】
2004056716.tif 000006
【図５】
2004056716.tif 000007
【図６】
2004056716.tif 000008
【図７】
2004056716.tif 000009
【図８】
2004056716.tif 000010
【図９】
2004056716.tif 000011
【図１０】
2004056716.tif 000012
【図１１】
2004056716.tif 000013
【図１２】
2004056716.tif 000014
【図１３】
2004056716.tif 000015
【図１４】
2004056716.tif 000016
【図１５】
2004056716.tif 000017