(57)【特許請求の範囲】
【請求項１】
半導体装置の製造後に回路変更が可能なプログラマブルロジックにより構成される領域（以下、プログラマブルロジック）を、複数の既設計論理回路ブロック間または既設計論理回路ブロックと新規設計論理回路ブロックとの間に配置し、前記論理回路ブロック間の接続や論理回路の変更が必要になった場合には、前記プログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更するようにしたことを特徴とする半導体装置の設計方法。
【請求項２】
請求項１記載の半導体装置の設計方法において、
新規設計論理回路ブロック上を通過する配線であって、既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に配置された複数のプログラマブルロジック間を接続する配線を設け、論理回路の変更が必要になった場合には、前記配線によりプログラマブルロジック間を接続し、接続されたプログラマブルロジックを使用して論理回路を変更するようにしたことを特徴とする半導体装置の設計方法。
【請求項３】
請求項１記載の半導体装置の設計方法において、
既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に、複数の既設計論理回路ブロック間を接続する配線の設定が可能なプログラマブルロジックを配置し、論理回路の変更が必要になった場合には、前記プログラマブルロジックを使用して論理回路を変更するようにしたことを特徴とする半導体装置の設計方法。
【請求項４】
請求項１記載の半導体装置の設計方法において、
新規設計論理回路ブロックの内部配線の一部を、既設計論理回路ブロックと新規設計論理回路ブロックを結ぶ信号線が通過可能な領域に配置されたプログラマブルロジックを使用して配線し、論理回路の変更が必要になった場合には、前記プログラマブルロジックを使用して論理回路を変更するようにしたことを特徴とする半導体装置の設計方法。
【請求項５】
請求項１乃至請求項４記載の半導体装置の設計方法において、
新規設計論理回路ブロックの論理回路とプログラマブルロジックを使用した論理回路を変更したものとが組合せ論理回路により表現可能なものである場合に、新規設計論理回路ブロックからの出力信号と、この新規設計論理回路ブロックへの入力信号とを入力とし、かつ変更後の論理による出力信号を出力とするような組合せ論理回路を、既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に配置したプログラマブルロジックにより生成し、新規設計論理回路ブロックからの出力信号と、この新規設計論理回路ブロックへの入力信号とを組合せ論理回路の入力に、また組合せ論理回路の出力を既設計論理回路ブロックの入力にそれぞれ接続し、
前記プログラマブルロジックを使用して新たに組合せ論理回路を生成することにより、新規設計論理回路ブロックの論理回路を変更するようにしたことを特徴とする半導体装置の設計方法。
【請求項６】
請求項１乃至請求項４記載の半導体装置の設計方法において、
新規設計論理回路ブロックの論理回路とプログラマブルロジックを使用した論理回路を変更したものとが組合せ論理回路により表現可能なものである場合に、新規設計論理回路ブロックへの入力信号を入力とし、かつ新規設計論理回路ブロックからの出力信号を変更後の論理による出力とするような組合せ論理回路を、既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に配置したプログラマブルロジックにより生成し、
新規設計論理回路ブロックへの入力信号を組合せ論理回路の入力に、また組合せ論理回路の出力を新規設計論理回路ブロックの入力にそれぞれ接続し、
前記プログラマブルロジックを使用して新たに組合せ論理回路を生成することにより、新規設計論理回路ブロックの論理回路を変更するようにしたことを特徴とする半導体装置の設計方法。
【請求項７】
請求項１乃至請求項４記載の半導体装置の設計方法において、
プログラマブルロジックを使用して新規設計論理回路ブロックの論理回路の入力信号または出力信号を入れ替えることにより、新規設計論理回路ブロックの論理を変更するようにしたことを特徴とする半導体装置の設計方法。
【請求項８】
請求項１乃至請求項４記載の半導体装置の設計方法において、
新規設計論理回路ブロックの入力信号または出力信号をプログラマブルロジックを使用して生成した論理回路の入力信号または出力信号に接続し、前記プログラマブルロジックを使用して新たに論理回路を生成することにより、新規設計論理回路ブロックの論理を変更するようにしたことを特徴とする半導体装置の設計方法。
【請求項９】
請求項１乃至請求項４記載の半導体装置の設計方法において、
新規設計論理回路ブロックの入力信号または出力信号をプログラマブルロジックを使用して生成した論理回路の入力信号または出力信号に接続し、前記プログラマブルロジックを使用して新たに論理回路を生成することにより、内部状態を持つ論理回路により構成される新規設計論理回路ブロックの論理を変更するようにしたことを特徴とする半導体装置の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体装置としてのシステムＬＳＩの設計方法に関し、特に既設計論理回路ブロックを再利用した設計技術に関するものである。
【０００２】
【従来の技術】
大規模で複雑なシステムＬＳＩの設計は完成までに長い期間が必要となる。そこで、システムを構成するすべての回路を再設計するのではなく、新規に設計する論理回路ブロック（以下、グルー回路）と、確実に動作することが分かっている既設計論理回路ブロック（以下、ＨＷ部品）とを組み合わせて、所望の機能を有するＬＳＩを実現するようにした設計方法が用いられている。このように、過去に設計されたＨＷ部品を再利用することにより、比較的短期間にＬＳＩの設計を行うことが可能となる。
【０００３】
【発明が解決しようとする課題】
上述したＨＷ部品にはバグが存在しないと考えられるため、チップの完成後にバグが発見されたときには、グルー回路のみをデバッグすることにより対処することができる。しかし、ＨＷ部品自体にバグが存在していなくても、その仕様を誤解するなどすると、ＨＷ部品間の接続に起因する不整合や複数のＨＷ部品の組合せに伴う保証外の動作が発生するおそれがある。このような場合にはチップの作り直しが必要となるため、ＨＷ部品を再利用する効果が生かせないばかりか、設計に多くの時間がかかるという問題点があった。
【０００４】
この発明は、チップの完成後に不整合などが発見された場合でも、チップを作り直すことなしに容易に所望の機能を実現することができる半導体装置及び半導体装置の設計方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、請求項１の発明に係わる半導体装置は、半導体装置の製造後に回路変更が可能なプログラマブルロジックにより構成される領域（以下、プログラマブルロジック）を、複数の既設計論理回路ブロック間または既設計論理回路ブロックと新規設計論理回路ブロックとの間に配置し、前記プログラマブルロジックを使用して前記論理回路ブロック間の接続や論理回路を変更することにより論理回路システムを構成したことを特徴とする。
【０００６】
上記請求項１の発明によれば、バグの発見されていない段階では、プログラマブルロジックを既設計論理回路ブロック間または既設計論理回路ブロックと新規設計論理回路ブロック間を接続する配線として機能させる。また、バグが発見された場合には、プログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更することによりバグの修正を行うことができる。
【０００７】
請求項２の発明は、請求項１の構成において、新規設計論理回路ブロック上を通過する配線であって、既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に配置された複数のプログラマブルロジック間を接続する配線を設けたことを特徴とする。
【０００８】
上記請求項２の発明によれば、バグの発見されていない段階では、プログラマブルロジックを既設計論理回路ブロックと新規設計論理回路ブロック間を接続する配線として機能させる。また、バグが発見された場合には、設けられた配線により複数のプログラマブルロジック間を接続するとともに、接続されたそれぞれのプログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更することにより、新規設計論理回路ブロックの論理回路を使用することなしにバグの修正を行うことができる。
【０００９】
請求項３の発明は、請求項１の構成において、既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に、複数の既設計論理回路ブロック間を接続する配線の設定が可能なプログラマブルロジックを配置したことを特徴とする。
【００１０】
上記請求項３の発明によれば、バグの発見されていない段階では、プログラマブルロジックを既設計論理回路ブロックと新規設計論理回路ブロック間を接続する配線として機能させる。また、バグが発見された場合には、前記プログラマブルロジック内に、複数の既設計論理回路ブロック間を接続する配線を設定し、この配線を径路とするプログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更することにより、新規設計論理回路ブロック上を通過する配線を設けることなしにバグの修正を行うことができる。
【００１１】
請求項４の発明は、請求項１記載の構成において、新規設計論理回路ブロックの内部配線の一部を、既設計論理回路ブロックと新規設計論理回路ブロックを結ぶ信号線が通過可能な領域に配置されたプログラマブルロジックを使用して配線したことを特徴とする。
【００１２】
上記請求項４の発明によれば、バグの発見されていない段階では、プログラマブルロジック内に、新規設計論理回路ブロックの内部配線の一部として機能する配線を設定する。また、バグが発見された場合には、前記設定した配線を使用せずに、プログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更することにより、使用するゲート量を増やすことなしにバグの修正を行うことができる。
【００１３】
請求項５の発明は、請求項１乃至請求項４記載の構成において、前記プログラマブルロジックを、前記既設計論理回路ブロックと新規設計論理回路ブロックとの間に配置したことを特徴とする。
【００１４】
上記請求項５の発明によれば、バグが発見され、プログラマブルロジックを修正のための論理回路に変更したときに、複数の既設計論理回路ブロック間または既設計論理回路ブロックと新規設計論理回路ブロックとの間の接続を容易に行うことができる。
【００１５】
請求項６の発明は、請求項５記載の構成において、前記プログラマブルロジックを、前記各論理回路ブロックと半導体装置の入出力ピンとの間に配置したことを特徴とする。
【００１６】
上記請求項６の発明によれば、プログラマブルロジックを使って論理回路ブロック間の接続や論理回路の変更を行うことができるだけでなく、半導体装置の入出力ピンに接続する信号線に関しても論理の修正を行うことができる。
【００１７】
請求項７の発明は、請求項５又は請求項６記載の構成において、前記プログラマブルロジック内に記憶素子ブロックを設けたことを特徴とする。
【００１８】
上記請求項７の発明によれば、プログラマブルロジック内に設けた記憶素子ブロックに、観測したい信号線の履歴を記録することができるので、バグの発見が容易なものとなる。
【００１９】
請求項８の発明は、請求項５乃至請求項７記載の構成において、複数の論理回路ブロック間を接続する内部バス配線と論理回路ブロックとの間にプログラマブルロジックを配置したことを特徴とする。
【００２０】
上記請求項８の発明によれば、プログラマブルロジックを使って、内部バス配線のバスプロトコルなどに起因するバグの修正を行うことができる。
【００２１】
請求項９の発明は、請求項５乃至請求項７記載の構成において、複数の論理回路ブロック間を接続する内部バス配線を、論理回路ブロック間に配置されたプログラマブルロジック内部の配線層により構成したことを特徴とする。
【００２２】
上記請求項９の発明によれば、内部バス配線の代わりにプログラマブルロジック内部の配線層を利用するようにしたので、内部バス配線の両側にプログラマブルロジックを配置する必要がなく、このためプログラマブルロジックを配置するための面積を少なくすることができる。
【００２３】
請求項１０の発明は、請求項５乃至請求項７記載の構成において、複数の論理回路ブロック間を接続する内部バス配線を、論理回路ブロック間に配置されたプログラマブルロジックの上層の配線層により構成したことを特徴とする。  上記請求項１０の発明によれば、内部バス配線の代わりにプログラマブルロジックの上層に設けられた配線層を利用するようにしたので、内部バス配線の両側にプログラマブルロジックを配置する必要がなく、このため内部バス配線を配置する領域の面積を少なくすることができる。
【００２４】
請求項１１の発明は、請求項１乃至請求項４記載の構成において、前記プログラマブルロジックを構成するロジックセル列と、少なくとも１列のゲートアレイセル列またはスタンダードセル列とを交互に配置したことを特徴とする。  上記請求項１１の発明によれば、既設計論理回路ブロックまたは新規設計論理回路ブロックの機能を実現するゲートアレイセル列やスタンダードセル列とプログラマブルロジックとを交互に配置するようにしたので、既設計論理回路ブロックまたは新規設計論理回路ブロックとプログラマブルロジックとの接続を容易に行うことができる。これにより、上記請求項１乃至請求項４の発明の構成をセミカスタムＬＳＩとして実現することができる。
【００２５】
請求項１２の発明は、請求項１乃至請求項４記載の構成において、前記プログラマブルロジックを構成するロジックセル列と、少なくとも２列のゲートアレイセル列またはスタンダードセル列とを交互に配置したことを特徴とする。  上記請求項１２の発明によれば、既設計論理回路ブロックや新規設計論理回路ブロックを実現するために必要な回路規模をプログラマブルロジックよりも大きくすることができる。また、この構成においても、上記請求項１乃至請求項４の発明の構成をセミカスタムＬＳＩとして実現することができる。
【００２６】
請求項１３の発明は、請求項１乃至請求項４記載の構成において、格子状に配置されたゲートアレイセル集合の間またはスタンダードセル集合の間にプログラマブルロジックを配置したことを特徴とする。
【００２７】
上記請求項１３の発明によれば、既設計論理回路ブロックまたは新規設計論理回路ブロックの機能を実現するゲートアレイセル集合やスタンダードセル集合が格子状に配置された構成において、プログラマブルロジックをこれらセル集合の間に配置するようにしたので、既設計論理回路ブロックまたは新規設計論理回路ブロックとプログラマブルロジックとの接続を容易に行うことができる。この構成においても、上記請求項１乃至請求項４の発明の構成をセミカスタムＬＳＩとして実現することができる。
【００２８】
請求項１４の発明に係わる半導体装置は、プログラマブルロジックを複数の既設計論理回路ブロック間または既設計論理回路ブロックと新規設計論理回路ブロックとの間に配置し、前記プログラマブルロジックを使用して前記論理回路ブロック間の接続や論理回路を変更することにより論理回路システムを実現した論理回路ブロックを、新たな新規設計論理回路ブロックとして半導体装置上に配置したことを特徴とする。
【００２９】
上記請求項１４の発明によれば、プログラマブルロジックを使用してバグの修正を行った論理回路ブロックを、新たな新規設計論理回路ブロックとして半導体装置上に配置するようにしたので、半導体装置上においてプログラマブルロジックを配置するのに必要な面積を削減することができる。これにより、半導体装置の面積を低減することができ、また装置面積を同じとした場合は、空いた領域に他の部品を配置することができる。
【００３０】
請求項１５の発明に係わる半導体装置の設計方法は、プログラマブルロジックを、複数の既設計論理回路ブロック間または既設計論理回路ブロックと新規設計論理回路ブロックとの間に配置し、前記論理回路ブロック間の接続や論理回路の変更が必要になった場合には、前記プログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更するようにしたことを特徴とする。
【００３１】
上記請求項１５の発明によれば、バグの発見されていない段階では、プログラマブルロジックを既設計論理回路ブロック間または既設計論理回路ブロックと新規設計論理回路ブロック間を接続する配線として機能させる。また、バグが発見された場合には、プログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更することによりバグの修正を行うことができる。  請求項１６の発明は、請求項１５の設計方法において、新規設計論理回路ブロック上を通過する配線であって、既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に配置された複数のプログラマブルロジック間を接続する配線を設け、論理回路の変更が必要になった場合には、前記配線によりプログラマブルロジック間を接続し、接続されたプログラマブルロジックを使用して論理回路を変更するようにしたことを特徴とする。
【００３２】
上記請求項１６の発明によれば、バグの発見されていない段階では、プログラマブルロジックを既設計論理回路ブロックと新規設計論理回路ブロック間を接続する配線として機能させる。また、バグが発見された場合には、設けられた配線により複数のプログラマブルロジック間を接続するとともに、接続されたそれぞれのプログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更することにより、新規設計論理回路ブロックの論理回路を使用することなしにバグの修正を行うことができる。
【００３３】
請求項１７の発明は、請求項１５の設計方法において、既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に、複数の既設計論理回路ブロック間を接続する配線の設定が可能なプログラマブルロジックを配置し、論理回路の変更が必要になった場合には、前記プログラマブルロジックを使用して論理回路を変更するようにしたことを特徴とする。
【００３４】
上記請求項１７の発明によれば、バグの発見されていない段階では、プログラマブルロジックを既設計論理回路ブロックと新規設計論理回路ブロック間を接続する配線として機能させる。また、バグが発見された場合には、前記プログラマブルロジック内に、複数の既設計論理回路ブロック間を接続する配線を設定し、この配線を径路とするプログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更することにより、新規設計論理回路ブロック上を通過する配線を設けることなしにバグの修正を行うことができる。
【００３５】
請求項１８の発明は、請求項１５の設計方法において、新規設計論理回路ブロックの内部配線の一部を、既設計論理回路ブロックと新規設計論理回路ブロックを結ぶ信号線が通過可能な領域に配置されたプログラマブルロジックを使用して配線し、論理回路の変更が必要になった場合には、前記プログラマブルロジックを使用して論理回路を変更するようにしたことを特徴とする。
【００３６】
上記請求項１８の発明によれば、バグの発見されていない段階では、プログラマブルロジック内に、新規設計論理回路ブロックの内部配線の一部として機能する配線を設定する。また、バグが発見された場合には、前記設定した配線を使用せずに、プログラマブルロジックを使用して論理回路ブロック間の接続や論理回路を変更することにより、使用するゲート量を増やすことなしにバグの修正を行うことができる。
【００３７】
請求項１９の発明は、請求項１５乃至請求項１８の設計方法において、新規設計論理回路ブロックの論理回路とプログラマブルロジックを使用した論理回路を変更したものとが組合せ論理回路により表現可能なものである場合に、新規設計論理回路ブロックからの出力信号と、この新規設計論理回路ブロックへの入力信号とを入力とし、かつ変更後の論理による出力信号を出力とするような組合せ論理回路を、既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に配置したプログラマブルロジックにより生成し、新規設計論理回路ブロックからの出力信号と、この新規設計論理回路ブロックへの入力信号とを組合せ論理回路の入力に、また組合せ論理回路の出力を既設計論理回路ブロックの入力にそれぞれ接続し、前記プログラマブルロジックを使用して新たに組合せ論理回路を生成することにより、新規設計論理回路ブロックの論理回路を変更するようにしたことを特徴とする。
【００３８】
上記請求項１９の発明によれば、新規設計論理回路ブロックの後段に配置したプログラマブルロジックを使用して新たに組合せ論理回路を生成するようにしたので、新規設計論理回路ブロックへの入力を変化させずに新規設計論理回路ブロックの論理回路を変更することができる。
【００３９】
請求項２０の発明は、請求項１５乃至請求項１８記載の設計方法において、新規設計論理回路ブロックの論理回路とプログラマブルロジックを使用した論理回路を変更したものとが組合せ論理回路により表現可能なものである場合に、新規設計論理回路ブロックへの入力信号を入力とし、かつ新規設計論理回路ブロックからの出力信号を変更後の論理による出力とするような組合せ論理回路を、既設計論理回路ブロックと新規設計論理回路ブロックとを結ぶ信号線が通過可能な領域に配置したプログラマブルロジックにより生成し、新規設計論理回路ブロックへの入力信号を組合せ論理回路の入力に、また組合せ論理回路の出力を新規設計論理回路ブロックの入力にそれぞれ接続し、前記プログラマブルロジックを使用して新たに組合せ論理回路を生成することにより、新規設計論理回路ブロックの論理回路を変更するようにしたことを特徴とする。
【００４０】
上記請求項２０の発明によれば、新規設計論理回路ブロックの前段に配置したプログラマブルロジックを使用して新たに組合せ論理回路を生成するようにしたので、新規設計論理回路ブロックからの出力を変化させずに新規設計論理回路ブロックの論理回路を変更することができる。
【００４１】
請求項２１の発明は、請求項１５乃至請求項１８の設計方法において、プログラマブルロジックを使用して新規設計論理回路ブロックの論理回路の入力信号または出力信号を入れ替えることにより、新規設計論理回路ブロックの論理を変更するようにしたことを特徴とする。
【００４２】
上記請求項２１の発明によれば、プログラマブルロジックを使用して新規設計論理回路ブロックの論理回路の入力信号または出力信号を入れ替えるようにしたので、変更後の論理回路が新規設計論理回路ブロックの論理回路の入力信号または出力信号を変更したものである場合には、小規模な回路の変更で論理の変更を実現することができる。
【００４３】
請求項２２の発明は、請求項１５乃至請求項１８の設計方法において、新規設計論理回路ブロックの入力信号または出力信号を、プログラマブルロジックを使用して生成した論理回路の入力信号または出力信号に接続し、前記プログラマブルロジックを使用して新たに論理回路を生成することにより、新規設計論理回路ブロックの論理を変更するようにしたことを特徴とする。
【００４４】
上記請求項２２の発明によれば、新規設計論理回路ブロックの論理回路を使用せずに、プログラマブルロジックを使用して新たに論理回路を生成するよにしたので、修正すべき回路の規模が大きい場合には、より簡単に論理の変更を実現することができる。
【００４５】
請求項２３の発明は、請求項１５乃至請求項１８の設計方法において、新規設計論理回路ブロックの入力信号または出力信号をプログラマブルロジックを使用して生成した論理回路の入力信号または出力信号に接続し、前記プログラマブルロジックを使用して新たに論理回路を生成することにより、内部状態を持つ論理回路により構成される新規設計論理回路ブロックの論理を変更するようにしたことを特徴とする。
【００４６】
上記請求項２３の発明によれば、新規設計論理回路ブロックの論理回路を使用せずに、プログラマブルロジックを使用して新たに論理回路を生成するよにしたので、新規設計論理回路ブロックの論理回路内に修正を行うことが困難な内部回路が含まれていても、より簡単に論理の変更を実現することができる。
【００４７】
【発明の実施の形態】
以下、この発明に係わる半導体装置及び半導体装置の設計方法をＬＳＩチップに適用した場合の実施形態について説明する。
【００４８】
［１］第１の実施形態
第１の実施形態として、ＨＷ部品とグルー回路との間に、チップ製造後に回路変更が可能なプログラマブルロジックにより構成される領域（以下、プログラマブルロジックという）を配置した例について説明する。
【００４９】
まず、この発明を適用する回路の基本的な構成を図２に示す。図２は、ＨＷ部品とグルー回路とを信号線により接続した場合の回路構成図であり、符号１、３はＨＷ部品（図中、ＨＷ）、２はグルー回路（図中、ｇｌ）、４、５はそれぞれ信号線を示している。この回路において、２つのＨＷ部品１、３はデバッグ済みであり、ＨＷ部品１、３のみに起因するバグは存在しないと仮定できる。しかし、グルー回路２が存在するために、図２の回路にはバグの存在する可能性がある。また、２つのＨＷ部品１、３の仕様を誤解していた場合にもＨＷ部品間の接続に起因するバグが存在する可能性がある。
【００５０】
そこで、第１の実施形態におけるＬＳＩチップでは、ＨＷ部品とグルー回路との間に、プログラマブルロジックを配置して、チップ製造後に判明したバグにも対処できるように構成している。図１は、第１の実施形態におけるＨＷ部品、グルー回路およびプログラマブルロジック（図中、ＦＰＧＡ）の接続関係を示す回路構成図である。図１において、ＨＷ部品６とグルー回路８との間にはプログラマブルロジック７が配置され、信号線１１、１２により接続されている。また、ＨＷ部品１０とグルー回路８との間にはプログラマブルロジック９が配置され、信号線１３、１４により接続されている。
【００５１】
図１の回路において、バグの発見されていない段階では、プログラマブルロジック７は信号線１１、１２を接続する配線、プログラマブルロジック９は信号線１３、１４を接続する配線として機能させることで、図２の回路と等価な機能を実現している。また、テストなどにより回路にバグが発見された場合には、プログラマブルロジック７、９を使用して論理回路を変更することでバグを回避する。
【００５２】
このように、チップ製造後にＨＷ部品間の接続に起因する不整合などが発生した場合でも、チップを作り直すことなくバグを回避することができるので、ＨＷ部品を効率良く再利用することができるうえ、作り直す場合に比べて設計時間も大幅に短縮することができる。
【００５３】
次に、上記プログラマブルロジックへ送るプログラムの制御回路とプログラマブルロジックブロックへ接続する信号線を切り替えるための回路、およびプログラマブルロジックブロックの回路例について説明する。
【００５４】
図３は、プログラマブルロジックへ送るプログラムを制御する回路の構成図であり、図４は、その制御回路における入出力信号のタイミングチャートである。図３において、制御回路はチップの外部からＳＤＡＴＡ、ＣＬＥＡＲ、ＣＬＯＣＫ、ＰＲＯＧＲＡＭの４本の信号を入力し、プログラマブルロジックブロックのプログラムに必要な信号を作り出す。ＳＤＡＴＡはプログラマブルロジックブロックの論理、配線を指定するためのｄａｔａ信号、ｓｅｌｅｃｔ信号をシリアルに入力するための信号線である。ＣＬＥＡＲ信号は制御回路の初期化を行う信号線、ＣＬＯＣＫ信号は制御のためのクロック信号線、ＰＲＯＧＲＡＭ信号線はプログラムのストローブ信号線である。
【００５５】
ＳＤＡＴＡより入力された信号は、シリアルパラレル変換機４０１によりシリアル信号からパラレル信号に変換される。この信号はタイミング生成回路４０２によりタイミングを調整され、その一部はデコーダ４０３によりデコードされｓｅｌｅｃｔ信号としてプログラマブルロジックブロックへ分配される。残りはｄａｔａ信号となり、同じくプログラマブルロジックブロックへ分配される。これらの信号は図４に示すタイミングで出力される。図４において、符号４００で示される信号は図３に示すタイミング生成回路４０２からの出力信号４０４である。
【００５６】
図５は、ＨＷ部品とグルー回路とを結ぶ信号をプログラマブルロジックブロックに接続する回路の構成図である。図５の回路においては、ラッチ４０９に保持された信号によりスイッチ４０５、４０６、４０７、４０８が制御され、ＨＷ部品とグルー回路とを直接結ぶか、プログラマブルロジックブロックに接続するかを切り替えることができる。図６は、図５のスイッチ４０５〜４０８を実現するための回路構成図である。図６（ａ）に示すようなスイッチの動作は、同図（ｂ）に示すような回路により実現することができる。図６（ｂ）の回路では、入力信号（Ｓ）の状態により、信号線上をＩＯ１からＩＯ２またはＩＯ２からＩＯ１に流れる信号がオン／オフされる。
【００５７】
図７は、複数本の信号線のうち１本を選んで接続する回路の構成図である。図７（ａ）に示すような制御ブロックの機能は、同図（ｂ）に示すようにラッチ２２０、デコーダ２２１、およびスイッチ２２２−１〜２２２−ｎを接続した回路により実現することができる。
【００５８】
図８は、複数本の信号線を切断する回路の構成図である。図８（ａ）に示すような制御ブロックの機能は、同図（ｂ）に示すようにラッチ２２３およびスイッチ２２４−１〜２２４−ｎを接続した回路により実現することができる。
【００５９】
図９は、プログラマブルロジックセルの回路構成図である。図９（ａ）に示すようなプログラマブルロジックセル（Ｇ）の機能は、同図（ｂ）に示すような回路により実現することができる。図９（ｂ）の回路は、ｄａｔａ信号により指定される任意の組合せ論理を実現できる組合せ論理回路４２０と、その出力を保持するためのＤＦ／Ｆ４１０と、組合せ論理回路４２０の出力かＤＦ／Ｆ４１０の出力のいずれかを出力するためのスイッチ４１１、４１２などから構成されている。
【００６０】
図１０は、図９（ａ）に示されるプログラマブルロジックセル（Ｇ）とプログラマブルロジックブロック内の配線とを接続した場合の回路構成図である。図１０において、プログラマブルロジックセル４１９の入力は、スイッチ群４１６により配線４１３のいずれかと接続するように制御される。また、出力はスイッチ４１７により配線４１３のいずれかと接続するように制御される。また、信号線４１３はスイッチ４１５により切断することもできる。さらに、信号線４１３はスイッチ群４１８により信号線４１４との接続を制御することもできる。
【００６１】
以上の説明から明らかなように、図３から図１０に示すような回路を構成することにより、プログラマブルロジックブロックによりバグを回避する回路を実現することができる。
【００６２】
［２］第２の実施形態
第２の実施形態として、ＨＷ部品間にプログラマブルロジックを配置した例について説明する。
【００６３】
まず、この発明を適用する回路の基本的な構成を図１１に示す。図１１は、ＨＷ部品間を信号線により接続した場合の回路構成図であり、図中の符号３１１、３１２はＨＷ部品、３１３は信号線を示している。この回路においては、２つのＨＷ部品３１１、３１２が信号線３１３により直接接続されている。この第２の実施形態におけるＬＳＩチップでは、図１２に示すようにＨＷ部品３１４と３１５との間にプログラマブルロジック１５が配置され、信号線１７、１８により接続されている。
【００６４】
図１２の回路において、バグの発見されていない段階では、プログラマブルロジック１５は信号線１７、１８を接続する配線として機能させることで、図１１の回路と等価な機能を実現している。また、テストなどにより回路にバグが発見された場合には、第１の実施形態の場合と同様に、プログラマブルロジック１５を使用して論理回路を変更することでバグを回避する。
【００６５】
［３］第３の実施形態
第３の実施形態として、第１の実施形態の構成において、グルー回路内部の回路を使用せずにバグを修正する例について説明する。
【００６６】
図１３は、図１の回路における信号線の接続例を示す回路構成図である。第１、第２の実施形態における回路では、プログラマブルロジックはグルー回路を含んだ回路によりバグの修正を行っていたが、グルー回路が組合せ論理の回路ではなく内部状態を持つ回路の場合等には、グルー回路を含んだ回路ではバグの修正ができない場合がある。また、修正のための回路量を考慮した場合、グルー回路内の回路を使用しないでプログラマブルロジックのみで修正を行うほうが少ないゲート数で修正を実現できる場合もある。このような場合にバグを修正するためには、グルー回路内の回路を使用せずにプログラマブルロジックにより回路を構成する必要がある。ここで、ゲート数とは修正に使用されるＡＮＤゲート、ＯＲゲート、Ｆ／Ｆ、インバータなどの回路素子の数をいう。
【００６７】
図１３において、ＨＷ部品１６、２０、グルー回路３１８、プログラマブルロジック３１７、３１９は、信号線２１、２３、２４、２６により接続されている。また、信号線２２は信号線２１と２３とを結ぶプログラマブルロジック３１７内の配線、信号線２５は信号線２４と２６とを結ぶプログラマブルロジック３１９内の配線である。バグの発見されていない段階では、前記信号線２２と２５は、グルー回路３１８とＨＷ部品１６、２０とを直接接続するために使用されている。また信号線２７は、グルー回路３１８の領域内を通過してプログラマブルロジック３１７と３１９とを接続する配線である。この信号線２７は、グルー回路３１８との電気的な接触はないものとする。
【００６８】
バグが発見されたときに、グルー回路３１８内の回路を使用して回避することができない、または使用しないほうが修正のためのゲート数が少なくて済むことが判明した場合には、配線２２または２５を使用せず、配線２７を使用してプログラマブルロジック３１７と３１９とを接続する。そして、破線２８または２９で示される経路を設定し、この配線を径路とするプログラマブルロジックを使用して論理回路を変更する。これにより、グルー回路３１８を使用することなしにバグを回避することができる。
【００６９】
なお、この実施形態ではグルー回路内部の回路を使用せずにバグの修正を行う場合について説明したが、バグの内容によっては配線２７を使用せずにグルー回路内部の回路を使用してバグを回避する。
【００７０】
［４］第４の実施形態
第４の実施形態として、第３の実施形態と同様に、グルー回路内部の回路を使用せずにバグを修正する例について説明する。
【００７１】
上述した第３の実施形態では、グルー回路内部の回路を使用しないでバグ修正のための回路を実現するためにグルー回路の領域を通過する配線を設けているが、このような配線を設けずにプログラマブルロジックをグルー回路を囲むように配置することで等価の効果を得ることができる。
【００７２】
図１４は、図１の回路における信号線の接続例を示す回路構成図であり、プログラマブルロジックがグルー回路を囲むように略凹形状に配置されている点が図１３の構成とは異なる。図１４において、ＨＷ部品３０、３３、グルー回路３２、プログラマブルロジック３１は信号線３４、３６、３７、３９により接続されている。また、配線３５は信号線３４と３６を結ぶプログラマブルロジック３１内の配線、配線３８は信号線３７と３９を結ぶプログラマブルロジック３１内の配線であり、バグの発見されていない段階ではグルー回路３２とＨＷ部品３０、３３を直接接続するために使用されている。
【００７３】
図１４の回路でバグが発見されたときに、グルー回路３２内の回路を使用して回避することができない、または使用しないほうが修正のためのゲート数が少なくて済むことが判明した場合には、配線３５または３８を使用せず、破線４０で示される配線を設定し、この配線４０を径路とするプログラマブルロジックを使用して論理回路を変更することによりバグを回避する。これにより、グルー回路３２を使用することなしにバグを回避することができる。
【００７４】
とくに、前述した第３の実施形態のようにグルー回路の領域を通過する配線をあらかじめ設けるようにしたものでは、修正に必要な配線数がオーバーすることも考えられるが、この第４の実施形態では実際の配線数に応じて柔軟に対応することが可能となる。
【００７５】
なお、この実施形態においてもグルー回路内部の回路を使用せずにバグの修正を行う場合について説明したが、バグの内容によっては配線４０を設定せずにグルー回路内部の回路を使用してバグを回避する。
【００７６】
［５］第５の実施形態
第５の実施形態として、グルー回路内部の回路を使用してバグの修正を行うようにした例について説明する。
【００７７】
図１５は、図１の回路における信号線の接続例を示す回路構成図である。図１５において、ＨＷ部品１５９、１６９、グルー回路１６１、プログラマブルロジック１６０、１６２は信号線１６３、１６５、１６６、１６８により接続されている。また、配線１６４は信号線１６３と１６５とを結ぶプログラマブルロジック１６０内の配線、配線１６７は信号線１６６と１６８とを結ぶプログラマブルロジック１６２内の配線であり、バグの発見されていない段階ではグルー回路１６１とＨＷ部品１５９、１６９とを直接接続するために使用されている。さらに、信号線１６９、１７０はグルー回路１６１の内部配線の一部が引き出されたもので、バグの発見されていない段階ではプログラマブルロジック１６０内の配線１７１により接続されている。
【００７８】
図１５の回路でバグが発見された場合は、必要に応じて配線１７１を使用せずにプログラマブルロジック１６０を使用して論理回路を変更することによりバグを回避する。第３、第４の実施形態の回路構成では、グルー回路内部の回路を使用する、または使用しないの２通りの選択ができるものであったが、この実施形態ではグルー回路内部の回路を使用することを前提としている。ただし、この実施形態のようにグルー回路内部の配線の一部がプログラマブルロジックを通過するようにあらかじめ配線することにより、使用されるゲート数を減らすことができる。すなわち、論理回路を修正する場合に、グルー回路内部の回路を使用して修正を行い、足りない分をプログラマブルロジック内部で修正することにより、修正に使用されるゲート数を減らすことができる。
【００７９】
［６］第６の実施形態
第６の実施形態として、第１〜第５の実施形態に示される回路を実現するためのプログラマブルロジックの配置について説明する。
【００８０】
上記第１〜第５の実施形態に示される回路を実現するためには、ＬＳＩチップ上にプログラマブルロジックを効果的に配置する必要がある。図１６は、４つのＨＷ部品４１、４２、４３、４４とグルー回路４５がＬＳＩチップ４６上に配置されたＬＳＩチップの構成例である。このような構成のＬＳＩチップに対して、第１〜第５の実施形態を適用できるようにプログラマブルロジックを配置した例を図１７に示す。
【００８１】
図１７は、ＨＷ部品４７、４８、４９、５０、グルー回路５１、プログラマブルロジック５２、５３、５４がＬＳＩチップ５５上に配置されている。図１７においてＨＷ部品４７、４８、４９、５０はそれぞれ図１６のＨＷ部品４１、４２、４３、４４に対応し、グルー回路５１は図１６のグルー回路４５に対応している。この配置によれば、プログラマブルロジック５２、５３、５４はＨＷ部品とグルー回路とのほぼ中間位置に配置されているので、第１〜第５の実施形態に示すようなバグの修正を容易に行うことができる。
【００８２】
［７］第７の実施形態
第７の実施形態として、第６の実施形態と同様に、第１〜第５の実施形態に示される回路を実現するためのプログラマブルロジックの配置について説明する。第６の実施形態に示されるようなＨＷ部品、グルー回路の間にプログラマブルロジックを配置した例では、ＬＳＩチップの入出力ピンに接続する信号線に関しては論理を修正することができない。このような信号線に関しても論理の修正ができるようにしたＬＳＩチップの配置例を図１８に示す。
【００８３】
図１８に示されるチップでは、ＨＷ部品５６、５７、５８、５９、グルー回路６０及びプログラマブルロジック６１がＬＳＩチップ６２上に配置されている。この配置例では、ＨＷ部品５６、５７、５８、５９は図１７におけるＨＷ部品４７、４８、４９、５０に、またグルー回路６０は図１７におけるグルー回路５１にそれぞれ対応し、プログラマブルロジック６１は図１７における３つのプログラマブルロジック５２、５３、５４に対応している。
【００８４】
図１８の配置によると、ＨＷ部品５６、５７、５８、５９、グルー回路６０からＬＳＩチップ６２の図示しない入出力ピンに接続する信号線６０ａの領域に関しても、第１〜第５の実施形態に示した手法を適用することによりバグの修正を行うことができる。
【００８５】
［８］第８の実施形態
第８の実施形態として、観測したい信号線の履歴を記録できるようにした例について説明する。
【００８６】
第６、第７の実施形態に示したチップ上の配置例において、信号線の履歴を記録できるように記録素子ブロックを加えた配置例を図１９に示す。図１９に示されるＬＳＩチップ６９には、ＨＷ部品６３、６４、６５、グルー回路６６、プログラマブルロジック６８が配置されている。また、プログラマブルロジック６８には信号線の履歴を記録するための記憶素子ブロック６７が含まれている。
【００８７】
上記第１〜第５の実施形態に示されるような回路の修正を行うためには、バグの原因を発見する必要があり、チップの入出力ピンに接続されていない信号線の観測が必要になる場合がある。ところが、このような信号線はチップ内部に配線されるため、チップ外から直接観測することができない場合が多い。このような時に、プログラマブルロジック６８を利用して記録素子ブロック６７に観測したい信号線の履歴を記録することにより、バグの発見を容易にすることができる。
［９］第９の実施形態
第９の実施形態として、内部バスに接続される複数のＨＷ部品に関してプログラマブルロジックを配置した例について説明する。
【００８８】
複数のＨＷ部品を使用したＬＳＩチップでは、複数のＨＷ部品を接続するための内部バスが必要となることが多い。このような内部バスとＨＷ部品との中間位置にプログラマブルロジックを配置した例を図２０に示す。図２０では、４つのＨＷ部品７０、７１、７２、７３が信号線を通じて内部バス７４により接続されている。このような接続に対しては、プログラマブルロジック７５、７６をＨＷ部品と内部バスとの間に配置することにより、バスプロトコルなどに起因するバグの修正を容易に行うことができる。
【００８９】
［１０］第１０の実施形態
第１０の実施形態として、第９の実施形態と同様に、内部バスに接続される複数のＨＷ部品に関してプログラマブルロジックを配置した例について説明する。上記第９の実施形態による配置では、内部バスの両側にプログラマブルロジックを配置しているため、ＨＷ部品の数が多いときにはプログラマブルロジックの増加によりチップ面積を有効利用できなくなることもある。そこで、内部バスとＨＷ部品とを接続するプログラマブルロジックの面積を少なくするように配置した例を図２１に示す。図２１では、ＨＷ部品７７、７８、７９、８０が図２０の場合と同様に信号線を通じて内部バス８１により接続されている。図２０との違いは、内部バス８１がプログラマブルロジック８２の内部または上層の配線層を利用して配線されている点である。このような配置では、内部バスの両側にプログラマブルロジックを配置する必要がないので、プログラマブルロジックを配置するための面積を少なくすることができる。
【００９０】
［１１］第１１の実施形態
第１１の実施形態として、第１〜第５の実施形態に示される回路をセミカスタムＬＳＩとして実現する例について説明する。
【００９１】
図２２は、第１〜第５の実施形態に示される回路をセミカスタムＬＳＩとして実現するための例を示したもので、とくにゲートアレイ形式のセミカスタムＬＳＩに適用した場合の配置例を示している。図２２において、ゲートアレイ用セル列（図中、ＧＡ）１７２、１７４、１７６はプログラマブルロジック用セル列（図中、ＦＰＧＡ）１７３、１７５と１列ごとに交互に並ぶように配置されている。この配置において、第１〜第５の実施形態に示されるＨＷ部品とグルー回路は、ゲートアレイ用セル列１７２、１７４、１７６を使用して実現し、プログラマブルロジックはプログラマブルロジック用セル列１７３、１７５を使用して実現する。
【００９２】
図２２において、信号線１７７、１７８、１８０、１８２、１８５はＨＷ部品またはグルー回路とプログラマブルロジックを接続するものであり、配線１７９、１８１、１８４はそれぞれ信号線１７７と１７８、１８０と１８２、１８３と１８５を接続するためのものである。また、信号線１８３はＨＷ部品またはグルー回路の内部配線である。この信号線１８３は、１列のセル列で回路を実現できないためプログラマブルロジックの上層の配線層を使用して複数のセル列により回路を実現した場合の配線の例である。この実施形態の配置によれば、ＨＷ部品またはグルー回路とプログラマブルロジックとの接続を容易に行うことができるので、第１〜第５の実施形態に示される回路をセミカスタムＬＳＩとして実現することが可能となる。
【００９３】
なお、図２２では、配線用の領域を空けてセル列を配置しているが、この配線用領域をなくした配置とした場合でも、同様な効果を得ることができる。
【００９４】
［１２］第１２の実施形態
第１２の実施形態として、第１１の実施形態と同様に、第１〜第５の実施形態に示される回路をセミカスタムＬＳＩとして実現する例について説明する。
【００９５】
図２３は、第１１の実施形態（図２２）におけるゲートアレイ用セル列とプログラマブルロジック用セル列の比率を変えた配置例を示したものである。図２３において、ゲートアレイ用セル列１８７、１８８、１９０、１９１とプログラマブルロジック用セル列１８６、１８９は図２２のように１列ごとに交互ではなく、ゲートアレイ用セル列２列に対してプログラマブルロジック用セル１列の割合で交互に配置されている。また図２３において、信号線１９２、１９４、１９５、１９７、１９８、２００はＨＷ部品またはグルー回路とプログラマブルロジックとを接続するものであり、配線１９３、１９６、１９９はそれぞれ信号線１９２と１９４、１９５と１９７、１９８と２００を接続するためのものである。
【００９６】
この実施形態の配置においても、ＨＷ部品またはグルー回路とプログラマブルロジックとの接続を容易に行うことができるので、第１〜第５の実施形態に示される回路をセミカスタムＬＳＩとして実現することが可能となる。とくに、ＨＷ部品、グルー回路を実現するために必要な回路規模がプログラマブルロジックに必要な回路よりも大きい場合には、この実施形態のような配置が面積的に有利となる。
【００９７】
なお、ゲートアレイ用セル列とプログラマブルロジック用セル列の比率は、ＨＷ部品、グルー回路を実現するために必要な回路規模とプログラマブルロジックに必要な回路規模により、例えば３：１あるいは４：２というように、様々な値を取り得ることは言うまでもない。
【００９８】
［１３］第１３の実施形態
第１３の実施形態として、第１１、１２の実施形態と同様に、第１〜第５の実施形態に示される回路をセミカスタムＬＳＩとして実現する例について説明する。
【００９９】
図２４は、第１１、第１２の実施形態（図２２、図２３）に示されるような列ごとではなく、格子状に配置されたゲートアレイ用セル列集合のブロックの間にプログラマブルロジック用セルを配置した例を示したものである。図２４において、ゲートアレイ用セル列集合のブロック（図中、ＧＡ）２０１、２０２、２０３、２０４は、プログラマブルロジック用セル２０５により４辺を囲まれた配置となっている。また図２４において、信号線２０６、２０８、２１０は、プログラマブルロジック用セル２０５上では配線２０７、２０９、２１１を使用して接続されている。
【０１００】
この実施形態の配置においても、ＨＷ部品またはグルー回路とプログラマブルロジックとの接続を容易に行うことができるので、第１〜第５の実施形態に示される回路をセミカスタムＬＳＩとして実現することが可能となる。
【０１０１】
［１４］第１４の実施形態
上記第１１、第１２、第１３の実施形態では、第１〜第５の実施形態に示される回路をゲートアレイ形式のセミカスタムＬＳＩとして実現する例について説明したが、上記実施形態をスタンダードセル形式のセミカスタムＬＳＩに適用しても等価の効果を得ることができる。
【０１０２】
また、フルカスタムＬＳＩの一部分に第１１、第１２、第１３の実施形態を適用することもできる。
【０１０３】
［１５］第１５の実施形態
上記第１〜第５の実施形態の回路を第６〜第１４の実施形態に示す配置でＬＳＩチップ上で実現し、バグの発見、修正を行い、十分なテストを行った後に、グルー回路の論理回路とプログラマブルロジックにより実現された回路とを、新たなグルー回路としてチップ上に配置することもできる。このような構成とした場合は、チップ上でプログラマブルロジックに必要な領域を省くことができるので、チップの面積を低減することができ、またチップ面積を同じとした場合には、空いた領域に他の部品を配置することができる。
【０１０４】
［１６］第１６の実施形態
第１６の実施形態として、ＨＷ部品間接続およびグルー回路に起因するバグが発見された場合の修正方法について説明する。
【０１０５】
図２に示されるようなＨＷ部品およびグルー回路の接続があった場合に、この接続関係をグルー回路への入力信号とグルー回路からの出力信号という観点から書き直すと、図２５のようになる。図２５において、ＨＷ部品８３、８５はグルー回路８４に接続されており、信号線群８６、８７はそれぞれＨＷ部品８３、８５からグルー回路８４へ入力する信号線群を表し、信号線群８８、８９はそれぞれグルー回路８４からＨＷ部品８３、８５へ入力する信号線群を表している。また、図１における接続関係を図２５と同様にグルー回路への入力信号とグルー回路からの出力信号という観点から書き直すと、図２６のようになる。この図２６において、ＨＷ部品９０、９４はプログラマブルロジック９１、９３、グルー回路９２により接続されている。信号線群９５、９６はそれぞれＨＷ部品９０、９４からプログラマブルロジック９１へ入力する信号線群を表し、信号線群９９、１００はそれぞれプログラマブルロジック９３からＨＷ部品９０、９４へ入力する信号線群を表している。また、プログラマブルロジック９１とグルー回路９２は信号線群９７により接続され、グルー回路９２とプログラマブルロジック９３は信号線群９８により接続されている。
【０１０６】
図２６の回路において、バグが発見された場合は、グルー回路９２の回路をプログラマブルロジック９１または９３を使用して修正することになるので、プログラマブルロジック９１、９３により実現する回路としては、図２７、２８に示すような２種類の回路が考えられる。
【０１０７】
図２７は、グルー回路の出力側に新たな論理回路を接続した回路の構成図である。この回路は、グルー回路への入力は変化させず、グルー回路からの出力信号と、グルー回路への入力信号とを入力とし、かつ変更後の論理による出力信号を出力とするような組合せ論理回路をプログラマブルロジックにより実現したものである。図２７において、ＣＴ（１０３）は修正された回路、Ｃ１（１０１）はグルー回路、Ｃ２（１０２）はプログラマブルロジックにより実現すべき回路を表している。また、信号線群１０４は図示しないＨＷ部品からグルー回路Ｃ１（１０１）及びＣ２（１０２）への入力信号であり、信号線群１０５はグルー回路Ｃ１（１０１）からの出力信号、信号線群１０６はＣ２（１０２）からの出力信号を表してる。
【０１０８】
図２８は、グルー回路の入力側に新たな論理回路を接続した回路の構成図である。この回路は、グルー回路からの出力は変化させず、グルー回路への入力信号を入力とし、かつグルー回路からの出力信号を変更後の論理による出力とするような組合せ論理回路をプログラマブルロジックにより実現したものである。図２８において、ＣＴ（１０９）は修正された回路、Ｃ１（１０７）はプログラマブルロジックにより実現すべき回路、Ｃ２（１０８）はグルー回路を表している。また、信号線群１１０は図示しないＨＷ部品からＣ１（１０７）への入力信号、信号線群１１１はＣ１（１０７）からの出力信号、信号線群１１２はＣ２（１１２）からの出力信号を表している。
【０１０９】
図２７、２８に示したブロック図の構成において、修正された回路（ＣＴ）を求める方法としては、対象とする回路つまりグルー回路と修正された回路が組合せ論理のみで構成されている場合は、参考文献１「スイッチング回路理論」ｐｐ．６１〜６４、当麻喜弘著、電子情報通信学会編、昭和６１年、に記載されているような方法を用いることができる。この方法は、図２７に示すようなブロック図にしたがった修正の場合には、グルー回路の入力信号とグルー回路の出力信号を入力とし、修正後の組合せ論理を出力とするような真理値表を作成し、この真理値表を満たすような論理回路をプログラマブルロジックにより実現すべき回路とするものであり、図２８に示すようなブロック図にしたがった修正の場合には、グルー回路の入力信号を入力としグルー回路に入力させた場合に修正後の組合せ論理を出力するような入力信号を出力とする真理値表を作成し、この真理値表を満たすような論理回路をプログラマブルロジックにより実現すべき回路とするものである。
【０１１０】
この方法を用い、図２７に示すようなブロック図に対応する修正方法の結果として、ｕ０＝ｘ０＊ｘ１＋ｘ１＊ｘ２＋ｘ３＊ｘ０を表す回路であったグルー回路を、ｙ０＝ｘ０＊ｘ１＊〜ｘ２＋ｘ０＊ｘ１＊ｘ２＋〜ｘ０＊ｘ１＊ｘ２に修正した場合の真理値表を図２９に、この真理値表を満足する論理回路を図３０にそれぞれ示す。
【０１１１】
図２９は、ｘ０、ｘ１、ｘ２とｕ０を入力としてｙ０を出力する関数の真理値表である。この真理値表によれば〜（ｘ０＊ｘ１＊ｘ２）＊ｕ０を図２７におけるＣ２（１０２）として実現すれば良いことが分かる。また図３０において、Ｃ１（１１３）はｕ０を出力するグルー回路であり、Ｃ２（１１４）が新たに生成された論理回路である。
【０１１２】
図３１は、ｘ０、ｘ１、ｘ２を入力として、ｕ０、ｕ１、ｕ２を出力する関数の真理値表であり、図３２はこの真理値表を満足する論理回路の構成図である。このｕ０、ｕ１、ｕ２を元のグルー回路の入力とすると正しい出力ｙ０が得られる。上記参考文献１に示されるようにこの方式による修正回路は一意ではないが、この真理値表によればｕ０＝〜（ｘ０＊ｘ１＊ｘ２）＊ｘ０、ｕ１＝〜（ｘ０＊ｘ１＊ｘ２）＊ｘ１を、図２８におけるＣ１（１０７）として実現すれば良いことが分かる。また図３２において、Ｃ１（１１５）はｕ０、ｕ１、を出力する新たに生成された回路であり、Ｃ２（１１６）はグルー回路である。
【０１１３】
次に、小規模な回路変更の例について説明する。
【０１１４】
図３３は、信号線の極性が反転していた場合の例を示すもので、図３３（ａ）は変更前の信号線１１７を示している。この場合は、同図（ｂ）に示すようにプログラマブルロジックを使用してインバータ１１８の機能を実現することで対応することができる。
【０１１５】
図３４は、データバス配線のＭＳＢとＬＳＢが逆になっていた場合の例を示すもので、図３４は（ａ）は変更前のデータバス配線１１９を示している。この場合は、同図（ｂ）に示すようにプログラマブルロジックを使用してＭＳＢ、ＬＳＢを逆にしたデータバス配線１２０を実現することで対応することができる。
【０１１６】
図３５は、変更する前のグルー回路の例を示したもので、このグルー回路はＡＮＤゲート１２１と信号線により構成されている。
【０１１７】
図３６は、図３５で示される回路のＡＮＤゲートの出力を変更した例を示している。図３５に示すＡＮＤゲート１２１の回路を、図３６（ａ）に示すような３入力ＡＮＤゲート１２２の回路に変更したい場合は、同図（ｂ）に示すようにプログラマブルロジックを使用してＡＮＤゲート１２１に対応する２入力ＡＮＤゲート１２３の出力を新たな２入力ＡＮＤゲート１２４の入力に接続する。このような変更を行うことにより図３６（ａ）と等価の論理回路を得ることができる。図３７は、図３５で示される回路のＡＮＤゲートの入出力信号を変更した例を示している。図３５に示すＡＮＤゲート１２１の回路を、図３７（ａ）に示すようなＡＮＤゲート１２５の回路に変更したい場合は、同図（ｂ）に示すようにプログラマブルロジックを使用して配線１２７、１２８を追加し、入出力信号線の接続関係を変更する。このような変更を行うことにより、図３７（ａ）と等価の論理回路を得ることができる。
【０１１８】
［１７］第１７の実施形態
第１７の実施形態として、グルー回路の回路を使用せずに新たな回路を生成することにより回路変更を行う例について説明する。
【０１１９】
上記第１６の実施形態では、元から存在するグルー回路の入力または出力に新たな回路を追加する、または入／出力の信号線接続を変えることにより回路の変更を行っているが、修正すべき回路の規模によってはグルー回路の回路を使用せずに新たな回路を生成した方が有利な場合がある。
【０１２０】
図３８は、図３５で示される回路のＡＮＤゲートを３入力のＯＲゲートに変更する例を示している。図３５に示すＡＮＤゲート１２１の回路を、図３８（ａ）に示すような３入力のＯＲゲート１２９の回路に変更する場合、前述した図３６、３７の例ではゲートの追加、配線の変形で回路の変更を行っていた。しかし、この実施形態では図３８（ｂ）に示すようにグルー回路の回路を使用せずに、プログラマブルロジックにより新たな３入力ＯＲゲート１３２を生成し、図３５の回路に対応するグルー回路内部の信号線１３１、および２入力ＡＮＤゲート１３０を配線１３３、１３４により切り離している。このような変更により、図３８（ａ）と等価の論理回路を得ることができる。
【０１２１】
このように、修正すべき回路の規模が大きい場合には、グルー回路の回路を使用せずにプログラマブルロジックを使用して新たに論理回路を生成することにより、簡単に論理の変更を行うことができる。
【０１２２】
［１８］第１８の実施形態
第１６、１７の実施形態では組合せ論理回路の修正方法について説明したが、第１８の実施形態として、内部状態を持つ回路の修正方法について説明する。
【０１２３】
図３９は、内部回路を持つグルー回路の例を示している。図３９はＤＦ／Ｆ１３５によりクロックＣでサンプリングした信号をＡＮＤゲート１３６でマスクしている。このような回路を修正するための一般的な方法は存在しないと考えられるので、第１７の実施形態のように元のグルー回路を切り離して修正することになる。
【０１２４】
図４０は、図３９の回路を修正した回路の構成例を示している。図３９に示すＤＦ／Ｆ１３５の回路を、図４０（ａ）に示すようにＤＦ／Ｆの出力をマスクしていたゲートを入力のマスクに変え、ＡＮＤゲート１３７とＤＦ／Ｆ１３８による回路に変更したい場合は、同図（ｂ）に示すようにプログラマブルロジックを使用して、元の回路のＤＦ／Ｆ１３５とＡＮＤゲート１３６に対応するＤＦ／Ｆ１３９とＡＮＤゲート１４０とを配線１４３、１４４の接続により切り離し、新たにＡＮＤゲート１４１とＤＦ／Ｆ１４２による回路を生成する。このような変更により、図４０（ａ）と等価の論理回路を得ることができる。
【０１２５】
また、図４１は内部回路を持つグルー回路の他の構成例を示している。図４１は２つのＤＦ／Ｆ１４５、１４７の間にＡＮＤゲート１４６が挟まれた構造になっている。このような回路を修正するための一般的な方法は存在しないと考えられるので、この例においても第１７の実施形態のように元のグルー回路を切り離して修正することになる。
【０１２６】
図４２は、図４１の回路を修正した回路の例を示している。図４１に示す２つのＤＦ／Ｆ１４５、１４７とＡＮＤゲート１４６からなる回路を、図４２（ａ）に示すように、２つのＤＦ／Ｆに挟まれていたＡＮＤゲートを入力側に移動し、ＡＮＤゲート１４８、ＤＦ／Ｆ１４９、１５０による回路に変更したい場合は、同図（ｂ）に示すようにプログラマブルロジックを使用して、配線１５７、１５８により元の回路のＤＦ／Ｆ１４５、１４７とＡＮＤゲート１４６に対応するＤＦ／Ｆ１５１、１５３とＡＮＤゲート１５２とを切り離し、新たにＡＮＤゲート１５４とＤＦ／Ｆ１５５、１５６による回路を生成する。このような変更により、図４２（ａ）と等価の論理回路を得ることができる。
【０１２７】
【発明の効果】
以上説明したように、この発明に係わる半導体装置及び半導体装置の設計方法によれば、プログラマブルロジックを複数のＨＷ部品間またはＨＷ部品とグルー回路間に配置し、バグに対しては、前記プログラマブルロジックを使用して前記回路間の接続や論理回路を変更することで対応するようにしたので、チップの完成後に不整合などが発見された場合でも、チップを作り直すことなしに所望の機能を実現することができる。これによれば、ＨＷ部品を有効に再利用することができるだけでなく、チップを作り直す場合に比べて設計時間を大幅に短縮することが可能となる。
【図面の簡単な説明】
【図１】ＨＷ部品、グルー回路およびプログラマブルロジックの接続関係を示す回路構成図。
【図２】ＨＷ部品とグルー回路とを信号線により接続した場合の回路構成図。
【図３】プログラマブルロジックへ送るプログラムを制御する回路の構成図。
【図４】図３の制御回路における入出力信号のタイミングチャート。
【図５】ＨＷ部品とグルー回路とを結ぶ信号をプログラマブルロジックブロックに接続する回路の構成図。
【図６】図５のスイッチを実現するための回路構成図。
【図７】複数本の信号線のうち１本を選んで接続する回路の構成図。
【図８】複数本の信号線を切断する回路の構成図。
【図９】プログラマブルロジックセルの回路構成図。
【図１０】プログラマブルロジックセルとプログラマブルロジックブロック内の配線とを接続した場合の回路構成図。
【図１１】ＨＷ部品間を信号線により接続した場合の回路構成図。
【図１２】ＨＷ部品とプログラマブルロジックとの接続関係を示す回路構成図。
【図１３】グルー回路を通過する配線が追加された場合のＨＷ部品とプログラマブルロジックとグルー回路との接続関係を示す回路構成図。
【図１４】プログラマブルロジック内部にグルー回路を通過しない配線を設定可能とした場合のＨＷ部品とプログラマブルロジックとグルー回路との接続関係を示す回路構成図。
【図１５】グルー回路の内部配線の一部がプログラマブルロジック内部に引き出された場合のＨＷ部品とプログラマブルロジックとグルー回路との接続関係を示す回路構成図。
【図１６】ＨＷ部品とグルー回路により構成されるＬＳＩチップの構成図。
【図１７】ＨＷ部品とグルー回路とプログラマブルロジックとにより構成されるＬＳＩチップの構成図。
【図１８】入出力ピンとＨＷ部品とグルー回路との間にもプログラマブルロジックが配置されたＬＳＩチップの構成図。
【図１９】プログラマブルロジックに記憶素子ブロックが配置されたシステムＬＳＩチップの構成図。
【図２０】内部バスとＨＷ部品との間にプログラマブルロジックを配置した回路の構成図。
【図２１】内部バスとＨＷ部品とを接続するプログラマブルロジックの面積を少なくするように配置した回路の構成図。
【図２２】
プログラマブルロジック用セル列とゲートアレイ用セル列とを交互に配置した場合の構成図。
【図２３】
プログラマブルロジック用セル列と２列のゲートアレイ用セル列とを交互に配置した場合の構成図。
【図２４】
格子状に配置されたゲートアレイ用セル列集合のブロックの間にプログラマブルロジック用セルを配置した場合の構成図。
【図２５】
ＨＷ部品とグルー回路との接続関係を示す回路構成図。
【図２６】
ＨＷ部品とグルー回路とプログラマブルロジックとの接続関係を示す回路構成図。
【図２７】
グルー回路の出力側に新たな論理回路を接続した回路の構成図。
【図２８】
グルー回路の入力側に新たな論理回路を接続した回路の構成図。
【図２９】
修正された新たな論理回路を表現する真理値表を示す説明図。
【図３０】
図２９の真理値表を満足する論理回路の構成図。
【図３１】
修正された新たな論理回路を表現する真理値表を示す説明図。
【図３２】
図３１の真理値表を満足する論理回路の構成図。
【図３３】
インバータを挿入して信号線の極性を変更した場合の回路構成図。
【図３４】データバス配線のＭＳＢとＬＳＢとを入れ替えた場合の回路構成図。
【図３５】変更前のグルー回路の構成図。
【図３６】グルー回路のＡＮＤゲートの出力を変更した場合の回路構成図。
【図３７】グルー回路の入出力信号線の接続関係を変更した場合の回路構成図。
【図３８】グルー回路を切り離して論理を変更した場合の回路構成図。
【図３９】内部回路を持つグルー回路の構成図。
【図４０】グルー回路を切り離して内部状態を持つ論理回路の論理を変更した場合の回路構成図。
【図４１】内部回路を持つグルー回路の他の構成図。
【図４２】グルー回路を切り離して内部状態を持つ論理回路の論理を変更した場合の回路構成図。
【符号の説明】
１  ＨＷ部品
２  グルー回路
３  ＨＷ部品
４  ＨＷ部品とグルー回路とを接続する信号線
５  ＨＷ部品とグルー回路とを接続する信号線
６  ＨＷ部品
７  プログラマブルロジック
８  グルー回路
９  プログラマブルロジック
１０  ＨＷ部品
１１  ＨＷ部品とプログラマブルロジックとを接続する信号線
１２  プログラマブルロジックとグルー回路とを接続する信号線
１３  プログラマブルロジックとグルー回路とを接続する信号線
１４  ＨＷ部品とプログラマブルロジックとを接続する信号線
【図１】
0003575938.tif 000002
【図２】
0003575938.tif 000003
【図３】
0003575938.tif 000004
【図４】
0003575938.tif 000005
【図５】
0003575938.tif 000006
【図６】
0003575938.tif 000007
【図７】
0003575938.tif 000008
【図８】
0003575938.tif 000009
【図９】
0003575938.tif 000010
【図１０】
0003575938.tif 000011
【図１１】
0003575938.tif 000012
【図１２】
0003575938.tif 000013
【図１３】
0003575938.tif 000014
【図１４】
0003575938.tif 000015
【図１５】
0003575938.tif 000016
【図１６】
0003575938.tif 000017
【図１７】
0003575938.tif 000018
【図１８】
0003575938.tif 000019
【図１９】
0003575938.tif 000020
【図２０】
0003575938.tif 000021
【図２１】
0003575938.tif 000022
【図２２】
0003575938.tif 000023
【図２３】
0003575938.tif 000024
【図２４】
0003575938.tif 000025
【図２５】
0003575938.tif 000026
【図２６】
0003575938.tif 000027
【図２７】
0003575938.tif 000028
【図２８】
0003575938.tif 000029
【図２９】
0003575938.tif 000030
【図３０】
0003575938.tif 000031
【図３１】
0003575938.tif 000032
【図３２】
0003575938.tif 000033
【図３３】
0003575938.tif 000034
【図３４】
0003575938.tif 000035
【図３５】
0003575938.tif 000036
【図３６】
0003575938.tif 000037
【図３７】
0003575938.tif 000038
【図３８】
0003575938.tif 000039
【図３９】
0003575938.tif 000040
【図４０】
0003575938.tif 000041
【図４１】
0003575938.tif 000042
【図４２】
0003575938.tif 000043