(57)【要約】【課題】各種の機能を有する機能ハードウェアと、内蔵されたＣＰＵ上で動作して各種の機能を実行させるための機能実行ソフトウェアとの協働によって各種の機能が実現される半導体集積回路およびその機能検証方法に関し、高価な試験治具を用いずにＬＳＩの機能検証に要する時間を短縮することを目的とする。【解決手段】所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現するＣＰＵとからなる半導体集積回路１において、ＣＰＵが生成した半導体集積回路１の機能検証を行うためのテストデータを格納する第１の記憶部６と、半導体集積回路１の機能検証の結果に関する検証結果データを格納する第２の記憶部７とを備えるように構成される。【選択図】      図１
2004361171.tif 000002
【特許請求の範囲】
【請求項１】
所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路において、
前記中央演算処理部が生成した前記半導体集積回路の機能検証を行うためのテストデータを格納する第１の記憶部と、
前記半導体集積回路の機能検証の結果に関する検証結果データを格納する第２の記憶部とを備えることを特徴とする半導体集積回路。
【請求項２】
前記中央演算処理部の動作の状態に基づいて、前記機能ハードウェアを動作させる機能動作クロックを停止させる機能動作クロック停止判断部を備えることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記半導体集積回路の機能検証を行うか否かのモードの切替えを示すテストモード選択入力用の端子を備えることを特徴とする請求項１または２記載の半導体集積回路。
【請求項４】
所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能検証方法において、
前記中央演算処理部にて所定の機能を実現するための第１のソフトウェアと、前記半導体集積回路の機能を機能検証するための第２のソフトウェアとを、該中央演算処理部において同居させて動作させ、
前記第２のソフトウェアが前記半導体集積回路の機能を機能検証するためのテストデータを生成し、
前記テストデータを第１の記憶部に格納し、
該テストデータを用いて、前記機能ハードウェアと前記第１のソフトウェアとを動作させ、該機能ハードウェアと該第１のソフトウェアの動作の結果として出力される検証結果データを第２の記憶部に格納することを特徴とする半導体集積回路の機能検証方法。
【請求項５】
前記第２のソフトウェアが、前記検証結果データを前記第２の記憶部より取り出し、該検証結果データを解析することを特徴とする請求項４記載の機能検証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各種の機能を有する機能ハードウェアのロジック（論理）と、内蔵された中央演算処理部（通常、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ）と略記する）上で動作して各種の機能を実行させるための機能実行ソフトウェアとの協働によって上記各種の機能を実現させるようにした半導体集積回路、および、当該半導体集積回路の各種の機能が正常であるか否かを検証するための機能検証方法に関する。
【０００２】
近年、大規模集積回路（以下、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）と略記する）等の半導体集積回路においては、当該半導体集積回路の微細化および高集積化等のテクノロジーの進歩によって、ＬＳＩ等のゲートの数や機能の複雑さが増大する共に処理速度の高速化が要求される傾向にある。本発明は、このような傾向に対処するために、高価な試験治具等を用いることなく短時間でＬＳＩ等の各種の機能を検証するための一手法について言及するものである。
【０００３】
【従来の技術】
一般に、ハードウェア記述言語（以下、ＨＤＬ（ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ  ）と略記する）を用いたＬＳＩの機能検証において、外部のエンジニアリング・ワークステーション／パーソナルコンピュータ（以下、ＥＷＳ／ＰＣと略記する）上で実行するソフトウェアのシミュレータを利用してシミュレーションを行った場合、ＬＳＩのゲートの数の増大、機能の複雑化および処理速度の高速化等によって、シミュレーションの速度が非常に遅くなり、ＬＳＩの各種の機能を備えたロジックの検証に膨大な時間を要する。
【０００４】
シミュレーションの速度向上を狙って、ＨＤＬを用いたＬＳＩの設計データ（例えば、複数のレジスタ間の動作で表す設計のレベルであるＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ  ））の一部または全部をエミュレータ上にマッピングしてシミュレーションを実行した場合、このエミュレータの部分の動作速度は許容範囲程度にまで速くなる。しかしながら、ＬＳＩのロジックを検証するためのテストパターンやテスト用プログラムを生成するテストベンチ（一般にソフトウェア）のみは、通常、集積回路全体の機能のみを表したビヘイビア記述言語等により構成されており、エミュレータ上に直接マッピングすることができずソフトウェアのシミュレーションによりＥＷＳ／ＰＣ上で実行させなければならない。
【０００５】
それゆえに、エミュレータとＥＷＳ／ＰＣ間の通信オーバーヘッド、およびテストベンチの処理の負荷により、予測した程のシミュレーションの速度が得られない。特に最近では、複雑な機能を備えたＬＳＩを検証するために、テストベンチに関しても高機能化の必要性が高まっているので、シミュレーションの速度が遅くなるといったような問題が顕著になっている。このため、テストベンチの設計工数も増加しており、上記のようなＬＳＩのロジックの検証が大規模システムのＬＳＩ開発のボトルネックになっている。
【０００６】
ＬＳＩのゲートの数や機能の複雑さの増大は、実機試験においても、テストプログラムの複雑化および長大化や、ＣＰＵにより設定されるメモリ空間の巨大化等を招き、試験時間の長大化の問題が顕著になっている。また一方で、ＬＳＩのテクノロジーの進歩は、ＬＳＩの機能の処理速度の高速化をももたらすようになっている（例えば、１チップで１０Ｇｂｐｓ（ギガビット／秒）の処理速度）。それゆえに、上記ＬＳＩのエンジニアリング・サンプル（通常、ＥＳ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｓａｍｐｌｅ）と略記する）の実機試験を行うために高機能の試験治具または試験器具が必要となり、このエンジニアリング・サンプルを正しく評価するために必要な評価コストの上昇も問題となっている。
【０００７】
ここで、従来のＬＳＩ等の半導体集積回路の機能検証方法に関する問題点をより明確にするために、添付図面（図５および図６）を参照しながら、これまで行われている代表的な半導体集積回路の機能試験方法を説明する。
【０００８】
図５は、一般の被試験用半導体集積回路の実機試験環境を示すブロック図であり、図６は、従来のＣＰＵ内蔵型の半導体集積回路の構成を示すブロック図である。
【０００９】
ただし、図５のブロック図では、被試験用の半導体集積回路１００としてＬＳＩのエンジニアリング・サンプルを使用した場合に、当該ＬＳＩの機能ブロック１０２の機能検証方法を実行するための実機試験環境を簡略化して示す。さらに、図６のブロック図では、後述のようなＣＰＵ内蔵型の半導体集積回路の構成を簡略化して示す。
【００１０】
図５の実機試験環境において、一般に、機能ブロック１０２は、大規模のゲートアレイからなるＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ  ）等のハードウェアのロジックにより構成されている。このハードウェアのロジックにより、ユーザ等が要求する機能が実行される。また一方で、上記のような機能ブロック１０２の機能を検証するためのテストパターン等のデータを生成するパターン発生器１０１が、被試験用のＬＳＩの外部に設けられている。このパターン発生器１０１は、入力インタフェース部１２０を介して、被試験用のＬＳＩの入力部（図示していない）からＬＳＩ内の機能ブロック１０２へ各種の信号（テストパターン等のデータを含む）を供給する回路であり、通常、ハードウェアのロジック、ＣＰＵ、ＲＡＭ（ランダムアクセス・メモリ）またはＲＯＭ（読み出し専用メモリ）等のメモリ、およびタイマー等により構成される。
【００１１】
また一方で、テスト用プログラムや、上位のＣＰＵからの設定データ等に関しては、パーソナルコンピュータ１０４からＲＳ−２３２Ｃ等のシリアル通信ポートおよび上位ソフトインタフェース部１１０を介して被試験用のＬＳＩと通信を行うのが一般的である。被試験用のＬＳＩの実機試験を行うに際しては、通常、被試験用のＬＳＩをリセットしてから、パーソナルコンピュータ１０４によりＬＳＩ内部の設定レジスタ等の設定を行う。その後、パターン発生器１０１よりデータを供給し、被試験用のＬＳＩ内の機能ブロック１０２にて当該データを処理した後に、出力インタフェース部１８０を介して、ＬＳＩの外部の出力部１０３に当該データを転送する。出力部１０３では、当該データの処理結果が解析される。この出力部１０３は、機能ブロック１０２の出力信号の波形をモニタしたり、実際の出力信号の値とパターン発生器１０１から与えられた出力信号の期待値とを比較したりすることによって、ＬＳＩの機能の正常性を検証する。
【００１２】
近年のＬＳＩは、大規模のゲート（またはゲートアレイ）により構成され機能も複雑化しているために開発費が莫大になり、製品のリメークや複数品種の開発が困難になってきている。このため、近年では、ソフトウェアのプログラムを実行させるためのＣＰＵを内蔵したＣＰＵ内蔵型の半導体集積回路の開発がさかんに行われるようになっている。
【００１３】
図６のブロック図では、従来のＣＰＵ内蔵型の半導体集積回路１０５として、ＣＰＵの機能を有するＣＰＵコア５００が内蔵されたＣＰＵ内蔵型のＬＳＩの構成を代表して示す。ここでは、ハードウェアのロジックにより構成される機能コア（ＣＰＵ依存部）２００および機能コア（ＣＰＵ非依存部）３００をＬＳＩの内部に設けると共に、ソフトウェア（機能実行ソフトウェア）を機能させるためのＣＰＵコア５００をＬＳＩの内部に設けている。さらに、機能コア（ＣＰＵ依存部）２００および機能コア（ＣＰＵ非依存部）３００には、これらの機能コアの動作中に生成される中間変数を一時的に格納する中間変数格納メモリ２１０、３１０がそれぞれ設けられている。機能コア（ＣＰＵ依存部）２００は、ＣＰＵコア５００の動作のタイミングに従って所定の機能を実行する機能ハードウェアであり、機能コア（ＣＰＵ非依存部）３００は、ＣＰＵコア５００の動作のタイミングに依存しない状態で所定の機能を実行する機能ハードウェアである。ここでは、前述の機能ブロック（図５参照）の機能の一部が、上記の機能コア（ＣＰＵ依存部）２００および機能コア（ＣＰＵ非依存部）３００によって構成されている。
【００１４】
図６のＣＰＵ内蔵型のＬＳＩにおいて、ＣＰＵコア５００は、ＬＳＩの外部の外部記憶装置８００から内蔵メモリ９００を介してダウンロードされるソフトウェア（機能実行ソフトウェア）のプログラムを保持しており、このプログラムに従って機能ブロックの機能の一部を実行させるようにしている。換言すれば、これまでハードウェアのロジック（例えば、前述の図５の機能ブロック）のみで処理されていた機能の一部が、ＣＰＵコア５００によるソフトウェアのプログラム処理を行うことで実行されるようになり、プログラムの改版によってＬＳＩの機能変更（機能エンハンス）や機能追加等にある程度対処することができるようになっている。
【００１５】
特に、通信の分野で主信号処理系を構成するＣＰＵ内蔵型のＬＳＩにおいては、非常に高い処理速度やデータのリアルタイム処理が要求される場合が多く、ソフトウェアのプログラムによる処理のみではユーザ等が要求する性能を満足させることが非常に困難になっている。それゆえに、ハードウェアとして機能する処理部（例えば、図７の機能コア２００、３００）とソフトウェアを機能させるための処理部（例えば、図７のＣＰＵコア５００）の両方によりＬＳＩの機能を構成するのが一般的である。
【００１６】
さらに、図６においては、前述の図５の場合と同様に、ＣＰＵ内蔵型のＬＳＩ内の機能コア２００、３００の機能を検証するためのテストパターン等のデータが、入力インタフェース部１２０を介して、外部入力用の端子からＬＳＩ内の機能コア２００、３００に供給される。ここで、上記のテストパターン等のデータは、ハードウェアとソフトウェアとの間のインタフェースを取るために、ハード／ソフトＩ／Ｆ（インタフェース）用メモリ１４０等のデータバッファに一旦保持される。このハード／ソフトＩ／Ｆ用メモリ１４０内のデータは、ＣＰＵコア５００上で動作するプログラムに従って検証される。
【００１７】
ＣＰＵ内蔵型のＬＳＩの実機試験を行うに際しては、通常、ＣＰＵコア５００上で動作するプログラムに従って当該ＬＳＩをリセットした後、外部入力用の端子からデータを供給し、ＬＳＩ内の機能コア２００、３００およびＣＰＵコア５００により当該データの検証を行うようになっている。このデータの検証結果は、ソフトウェアとハードウェアとの間のインタフェースを取るために、ソフト／ハードＩ／Ｆ（インタフェース）用メモリ１５０等のデータバッファに一旦保持される。このソフト／ハードＩ／Ｆ用メモリ１５０内のデータは、必要に応じて出力インタフェース部１８０から外部出力用の端子に転送される。さらに、ＬＳＩの外部の出力部（図示していない）は、機能コア２００、３００からの実際の出力信号の値と出力信号の期待値とを比較することによって、ＬＳＩの機能の正常性を検証する。このように、図６のＣＰＵ内蔵型のＬＳＩでは、ハードウェアとして機能する機能コア２００、３００とソフトウェアを機能させるＣＰＵコア５００の両方によって、ＬＳＩの機能変更や機能追加等が容易に行えるような柔軟なシステム開発が可能になる。
【００１８】
さらに、ＣＰＵ内蔵型のＬＳＩの実機試験においては、必要に応じて、上位ソフトインタフェース部１１０を介して外部のパーソナルコンピュータ（図示していない）と通信を行うことができるようになっている。
【００１９】
上記のようなＣＰＵ内蔵型の半導体集積回路に類似した構成として、１チップマイクロコンピュータに内蔵されたＣＰＵコアが論理回路群等にテストパターンを入力し、この論理回路群等から得られる出力信号により自己検査を行う構成が、下記の先行技術文献に記載されている。
【００２０】
【特許文献１】
特開２００１−２７９５８号公報
【００２１】
【発明が解決しようとする課題】
上記のとおり、従来のＣＰＵ内蔵型のＬＳＩ等の半導体集積回路においては、ＣＰＵの機能を有するＣＰＵコアをＬＳＩの内部に設け、このＣＰＵコアによるプログラム処理を行うことによって、ＬＳＩの機能変更や機能追加等にある程度対処するようにしていた。しかしながら、ＣＰＵ内蔵型のＬＳＩを使用した場合には、ＬＳＩのゲート規模の増大や機能の複雑化や処理速度の高速化によってシミュレーションの速度が非常に低速となり、ＬＳＩのロジックの検証に膨大な時間を要するという問題が生じてくる。例えば、動作周波数１ＧＨｚのＬＳＩに対して実時間１秒分のシミュレーションを行う場合、ＣＰＵのクロックが１ＧＨｚのマシーンを使用してソフトウェアによるシミュレータ（シミュレーション速度：１００Ｈｚ）を動作させると、シミュレーションが終了するまでに約１０メガ秒（Ｍｓｅｃ）＝１１５．７日かかる。
【００２２】
これに対し、エミュレータ（シミュレーション速度：１ＭＨｚ）を使用した場合は、シミュレーションが１０００秒で終了する。ただし、この数値は、あくまでもＬＳＩ内の全ての回路をエミュレータに載せた場合に達成し得るものである。前述のように、通常は、ＬＳＩのロジックを検証するためのテストパターンやテスト用プログラムを生成するテストベンチはビヘイビア記述言語等により構成されており、エミュレータに載せることができるような回路に変換することが困難である。このため、テストベンチのみはソフトウェアのシミュレータにより動作させるようにしている。換言すれば、エミュレータのシミュレーション速度がいくら速くても、全体のシミュレーション速度はソフトウェアのシミュレータにより決定されてしまうので、現実的には数ｋＨｚのシミュレーション速度しか出ないことになる。ここで、シミュレーション速度の高速化を図るため、テストベンチをエミュレータに載せようとした場合は、このテストベンチもＲＴＬで記述する必要があり、多大な工数がかかる。
【００２３】
さらに、従来のＣＰＵ内蔵型のＬＳＩ等の半導体集積回路を用いた実機試験においては、高機能の試験治具または試験器具の開発や、外部（例えば、実機に接続されるパーソナルコンピュータ）からのソフトウェアによる制御が必要となるため、実機試験環境が非常に高価なものになり、ＬＳＩを正しく評価するための評価コストが上昇するという問題も生じてくる。
【００２４】
本発明は上記問題点に鑑みてなされたものであり、高価な試験治具等を用いることなくＬＳＩ等の機能検証に要する時間を従来の場合よりも短縮することが可能な半導体集積回路および半導体集積回路の機能検証方法を提供することを目的とするものである。
【００２５】
【課題を解決するための手段】
上記問題点を解決するために、本発明は、所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部（ＣＰＵ：ＣＰＵコアともよばれる）とからなる半導体集積回路において、上記中央演算処理部が生成した上記半導体集積回路の機能検証を行うためのテストデータを格納する第１の記憶部と、上記半導体集積回路の機能検証の結果に関する検証結果データを格納する第２の記憶部とを備える半導体集積回路を提供する。
【００２６】
好ましくは、本発明の半導体集積回路は、上記中央演算処理部の動作の状態に基づいて、上記機能ハードウェアを動作させる機能動作クロックを停止させる機能動作クロック停止判断部を備える。
【００２７】
さらに、好ましくは、本発明の半導体集積回路は、上記半導体集積回路の機能検証を行うか否かのモードの切替えを示すテストモード選択入力用の端子を備える。
【００２８】
また一方で、本発明は、所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能検証方法において、上記中央演算処理部にて所定の機能を実現するための第１のソフトウェアと、上記半導体集積回路の機能を機能検証するための第２のソフトウェアとを、上記中央演算処理部において同居させて動作させ、上記第２のソフトウェアが上記半導体集積回路の機能を機能検証するためのテストデータを生成し、上記テストデータを第１の記憶部に格納し、上記テストデータを用いて、上記機能ハードウェアと上記第１のソフトウェアとを動作させ、上記機能ハードウェアと上記第１のソフトウェアの動作の結果として出力される検証結果データを第２の記憶部に格納する半導体集積回路の機能検証方法を提供する。
【００２９】
好ましくは、本発明の半導体集積回路の機能検証方法において、上記第２のソフトウェアは、上記検証結果データを上記第２の記憶部より取り出し、上記検証結果データを解析する。
【００３０】
また一方で、本発明は、所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能を検証するプログラムであって、コンピュータに、上記半導体集積回路の機能を機能検証するためのテストデータを生成する手段と、生成された上記テストデータを第１の記憶部に格納する手段と、上記テストデータを用いて、上記機能ハードウェアと上記中央演算処理部を機能させるソフトウェアとを動作させ、上記機能ハードウェアと上記ソフトウェアの動作の結果として出力される検証結果データを第２の記憶部に格納する手段とを機能させるための半導体集積回路の機能検証プログラムを提供する。
【００３１】
要約すれば、本発明においては、ＬＳＩ等の半導体集積回路に内蔵されたＣＰＵコアに、所定の機能を実行させるための第１のソフトウェア（例えば、機能実行ソフトウェア）と上記所定の機能を検証するための第２のソフトウェア（例えば、機能検証ソフトウェアまたはテストベンチソフトウェア）とを予め取り込んで同居させ、ハードウェアのロジック等からなる機能ハードウェアの動作を停止させた状態で、第２のソフトウェアによりＬＳＩの機能検証を行うためのテストパターン等のデータを生成し、機能ハードウェアの動作を開始させた後に、当該データを用いてＬＳＩ自身の機能検証を行うようにしているので、高価な試験治具等を用いることなくＬＳＩ単体でＬＳＩ自身の機能検証を行うことができる。
【００３２】
かくして、本発明では、ＬＳＩ等の半導体集積回路に内蔵されたＣＰＵコアを、機能ハードウェアの動作に加えてテストパターン等のデータの生成や当該データを用いた機能検証に利用することにより、高機能の試験治具等の開発が不要になってＬＳＩの評価コストの上昇が抑えられると共に、外部のパーソナルコンピュータ等による制御が不要になってＬＳＩの機能検証に要する時間を大幅に短縮することが可能になる。
【００３３】
【発明の実施の形態】
以下、添付図面（図１〜図４）を参照しながら、本発明の好ましい実施例の構成および動作を説明する。
【００３４】
図１は、本発明の一実施例に係る機能自己検証式の半導体集積回路の構成を示すブロック図であり、図２は、図１のＣＰＵコアにて機能実行ソフトウェアと機能検証ソフトウェアとを同居させた状態を示すブロック図である。
【００３５】
ただし、図１のブロック図では、本発明の一実施例に係る機能自己検証式の半導体集積回路１として、ＣＰＵの機能を有するＣＰＵコア５が内蔵されたＣＰＵ内蔵型のＬＳＩの構成を簡略化して示す。なお、これ以降、前述した構成要素と同様のものについては、同一の参照番号を付して表すこととする。
【００３６】
図１のＣＰＵ内蔵型のＬＳＩでは、ハードウェアのロジックにより構成される機能コア（ＣＰＵ依存部）２および機能コア（ＣＰＵ非依存部）３をＬＳＩの内部に設けると共に、ソフトウェアとして機能するＣＰＵコア５をＬＳＩの内部に設けている。上記の機能コア（ＣＰＵ依存部）２および機能コア（ＣＰＵ非依存部）３は、それぞれ、前述の図７の機能コア（ＣＰＵ依存部）２００および機能コア（ＣＰＵ非依存部）３００にほぼ対応するものである。機能コア（ＣＰＵ依存部）２および機能コア（ＣＰＵ非依存部）３には、前述の図７の場合と同様に、上記の機能コア２、３の動作中に生成される中間変数を一時的に格納する中間変数格納メモリが設けられている（図１では、中間変数格納メモリを省略する）。機能コア（ＣＰＵ依存部）２は、ＣＰＵコア５の動作のタイミングに従って所定の機能を実行する機能ハードウェアであり、機能コア（ＣＰＵ非依存部）３は、ＣＰＵコア５の動作に依存しない状態で所定の機能を実行する機能ハードウェアである。
【００３７】
さらに、図１のＣＰＵ内蔵型のＬＳＩにおいて、ＣＰＵコア５は、前述の図７の従来例の場合と同様に、ＬＳＩの外部の外部記憶装置８から内蔵メモリ９を介してダウンロードされる機能実行ソフトウェア（第１のソフトウェア）５１のプログラムを保持している。この機能実行ソフトウェア５１のプログラムをＣＰＵコア５上で動作させることによって、機能コア２、３にて設定されているＬＳＩの機能が実行される。
【００３８】
本発明の一実施例では、図２に示すように、ＬＳＩに内蔵されたＣＰＵコア５に、上記の機能実行ソフトウェア５１と、ＬＳＩの機能を検証するための機能検証ソフトウェアまたはテストベンチソフトウェア（第２のソフトウェア）５２とを同居させて動作させ、ＬＳＩ単体でＬＳＩ自身の機能検証を行うことが可能になる構成を提供する。この場合、機能検証ソフトウェア５２もまた、ＬＳＩの外部の外部記憶装置８から内蔵メモリ９を介してダウンロードされ、ＣＰＵコア５に保持されている。好ましくは、外部記憶装置８は、ＲＡＭもしくはＲＯＭ、磁気ディスク装置、光磁気ディスク装置または光ディスク装置等により構成される。また一方で、内蔵メモリ９は、ＲＡＭまたはＲＯＭにより構成される。なお、この内蔵メモリ９として、ＣＰＵコアに内蔵のＲＡＭまたはＲＯＭを用いることも可能である。
【００３９】
より詳しく説明すると、図１および図２の実施例において、機能検証ソフトウェア５２は、機能コア２、３および機能実行ソフトウェア５１に入力されるテストパターンやテスト用プログラム等のデータの信号値を生成したり、機能コア２、３から出力されるＬＳＩの機能検証の結果に関するデータの信号値を取り込んでその解析を行ったりする。
【００４０】
さらに、図１および図２の実施例においては、機能コア２、３および機能実行ソフトウェア５１の動作と機能検証ソフトウェア５２の動作とのタイミングを調整するために、機能コア２、３を動作させる機能動作クロックを停止させる機能動作クロック停止判断部４が設けられている。
【００４１】
上記の機能検証ソフトウェア５２は、機能動作クロック停止判断部４により機能動作クロックを停止させた状態でＬＳＩの機能検証を行うためのテストパターンやテスト用プログラム等のデータを生成する。さらに、機能検証ソフトウェア５２は、機能動作クロックを開始させた状態で、当該データを用いて機能コア２、３および機能実行ソフトウェア５１を動作させ、ＬＳＩ自身の機能検証を行う。さらにまた、機能検証ソフトウェア５２は、機能動作クロックを再び停止させた状態で、機能ハードウェアおよび機能実行ソフトウェアから出力されるＬＳＩの機能検証の結果に関するデータを取り込んで解析することができる。
【００４２】
ここでは、機能動作クロック停止判断部４として半導体スイッチ素子を用い、この半導体スイッチ素子のオン・オフ動作により機能動作クロックを開始または停止させて機能コア２、３の動作を制御している。しかしながら、ソフトウェアのプログラムを利用して機能コア２、３の動作を開始または停止させることも可能である。
【００４３】
さらに、図１および図２の実施例においては、機能コア２、３および機能実行ソフトウェア５１に入力されるデータの入力元を切替える入力切替部１３が設けられている。この入力切替部１３では、ＬＳＩの外部端子（テストモード選択入力用の端子）から供給される切替制御信号に応じてＬＳＩのモードを切替えることにより、機能コア１、２および機能実行ソフトウェアに入力されるデータの入力元として、ＬＳＩの外部または機能検証ソフトウェア５２のいずれか一方を選択することが可能である。
【００４４】
データの入力元としてＬＳＩの外部が選択された場合、ＬＳＩの機能を検証するためのデータが、入力インタフェース部１２および入力切替部１３を介して、外部入力用の端子から機能コア２、３に供給される。また一方で、データの入力元として機能検証ソフトウェア５２が選択された場合、この機能検証ソフトウェア５２は、テストデータバッファ６および入力切替部１３を介して、自分自身で生成したＬＳＩの機能を検証するためのデータを機能コア２、３に供給する。さらに、入力切替部１３にてモードを切替えることにより、任意の時刻にＬＳＩの機能検証を行うことも可能である。
【００４５】
ここで、上記のテストデータバッファ（第１の記憶部）６は、機能実行ソフトウェア５１および機能検証ソフトウェア５２の両方をＣＰＵコア５上で時分割により動作させるために、ＬＳＩの機能検証を行うためのデータを一時的に格納する機能を有している。
【００４６】
さらに、図１および図２の実施例においては、機能コア２、３および機能実行ソフトウェア５１から出力されるデータの出力先を切替える出力切替部１７が設けられている。この出力切替部１７では、ＬＳＩの外部端子（テストモード選択入力用の端子）から供給される切替制御信号に応じてＬＳＩのモードを切替えることにより、機能コア１、２および機能実行ソフトウェアから出力されるデータの出力先として、ＬＳＩの外部または機能検証ソフトウェア５２のいずれか一方を選択することが可能である。
【００４７】
データの出力先としてＬＳＩの外部が選択された場合、ＬＳＩの機能検証の結果に関するデータが、出力切替部１７および出力インタフェース部１８を介して外部出力用の端子に転送される。また一方で、データの出力先として機能検証ソフトウェア５２が選択された場合、この機能検証ソフトウェア５２は、出力切替部１７および検証結果バッファ７を介して、ＬＳＩの機能検証の結果に関するデータを取り込んで解析する。
【００４８】
ここで、上記の検証結果バッファ（第２の記憶部）７は、機能実行ソフトウェア５１および機能検証ソフトウェア５２の両方をＣＰＵコア５上で時分割により動作させるために、ＬＳＩの機能検証の結果に関するデータを一時的に格納する機能を有している。機能検証ソフトウェア５２は、機能動作クロックを再び停止させた状態で、検証結果バッファ（第２の記憶部）７に一旦格納されているＬＳＩの機能検証の結果に関するデータを改めて取り出し詳細な解析を行うことができる。ＬＳＩの機能検証の結果に関するデータを解析した結果は、解析結果選択出力用のＡＮＤゲート１６を介してＬＳＩの外部端子（解析結果出力用の端子）に出力することが可能である。
【００４９】
上記のように、図１および図２の実施例では、ＬＳＩの外部端子（テストモード選択入力用の端子）から供給される切替制御信号に応じて、機能コア２、３に入力されるデータの入力元、および、機能コア２、３から出力されるデータの出力先を、ＬＳＩの外部入力用もしくは外部出力用の端子にするか機能検証ソフトウェア５２にするかを選択することが容易に可能である。また一方で、機能検証ソフトウェアによって解析された結果はＬＳＩの外部端子（解析結果出力用の端子）に出力することが容易に可能である。
【００５０】
なお、本実施例ではテストモード選択は外部端子から行うものとしているが、ＬＳＩ内部にテストモード選択用のレジスタを備え、そのレジスタにソフトウェアで値を設定することによりテストモード選択を行う構成とすることも可能である。
【００５１】
さらに、図１および図２の実施例においては、ＬＳＩの機能を検証するためのテストパターン等のデータを機能コア２、３および機能実行ソフトウェア５１に供給する際に、上記テストパターン等のデータは、ハードウェアとソフトウェアとの間のインタフェースを取るために、ハード／ソフトＩ／Ｆ（インタフェース）用メモリ１４等のデータバッファに一旦保持される。このハード／ソフトＩ／Ｆ用メモリ１４内のデータは、ＣＰＵコア５上で動作する機能実行ソフトウェア５１により取り出されて検証される。
【００５２】
ＣＰＵ内蔵型のＬＳＩの実機試験を行うに際しては、ＣＰＵコア５上で動作する機能検証ソフトウェア５２により当該ＬＳＩをリセットした後、ＬＳＩの機能を検証するためのテストパターン等のデータを供給し、ＬＳＩ内の機能コア２、３および機能実行ソフトウェア５１により当該データの検証を行うようになっている。機能実行ソフトウェア５１の検証結果は、ソフトウェアとハードウェアとの間のインタフェースを取るために、ソフト／ハードＩ／Ｆ（インタフェース）用メモリ１５等のデータバッファに一旦保持される。このソフト／ハードＩ／Ｆ用メモリ１５内のデータは、機能コア２により取り出されて解析される。
【００５３】
さらに、ＣＰＵ内蔵型のＬＳＩの実機試験においては、必要に応じて、上位ソフトインタフェース部１１を介して外部のパーソナルコンピュータ（図示していない）と通信を行うことができるようになっている。
【００５４】
ついで、本発明の機能検証方法に従って、図１および図２の実施例に係るＣＰＵ内蔵型のＬＳＩの機能検証を行う手順を下記の（１）〜（５）に説明する。なお、機能実行ソフトウェア５１および機能検証ソフトウェア５２は、予め外部記憶装置８からＬＳＩ内部にダウンロードされているものとする。
【００５５】
（１）テストモード切替
（ａ）ＣＰＵ内蔵型のＬＳＩのテストモード選択入力用の端子をアクティブのレベルにし、ＬＳＩを機能自己検証可能な状態（テストモード）にする。これによって、データの入力元としてテストデータバッファ６が選択されると共に、データの出力先として検証結果バッファ７が選択される。
【００５６】
（２）テストデータのバッファリング
（ａ）機能コア２、３を動作させるクロックである機能動作クロックを停止させ、機能コア２、３を動作させないようにする。
【００５７】
（ｂ）機能検証ソフトウェア（またはテストベンチソフトウェア）５２が動作を開始する。
【００５８】
（ｃ）機能検証ソフトウェア５２が、自分自身で生成したテストデータをテストデータバッファ６に転送する。テストデータとして、例えば１フレーム分等のように、区切りの良い単位量を転送する。
【００５９】
（３）ＬＳＩの機能動作および機能検証の結果のバッファリング
（ａ）テストデータをテストデータバッファ６に転送終了後、機能検証ソフトウェア５２の動作が停止し、機能動作クロックが再開する。
【００６０】
（ｂ）テストデータバッファ６に格納されているテストデータを用いて、機能コア２、３および機能実行ソフトウェア５１を動作させる。
【００６１】
（ｃ）機能コア２、３および機能実行ソフトウェア５１を動作させて得られた結果は、検証結果バッファ７に格納される。
【００６２】
（４）機能検証の結果の取り込みおよび解析
（ａ）テストデータバッファ６に格納されたテストデータ分（例えば１フレーム分）に関して、ＬＳＩの機能動作が終了した後、機能動作クロックを停止させ、機能コア２、３を動作させないようにする。
【００６３】
（ｂ）機能検証ソフトウェア５２が再び動作を開始する。
【００６４】
（ｃ）機能検証ソフトウェア５２が、検証結果バッファ７から機能検証の結果を取り込む。
【００６５】
（ｄ）機能検証ソフトウェア５２が、取り込んだ検証結果をもとにデータの解析を行う。データの解析結果の情報（検証結果にエラーが発生している等）は、解析結果出力部からＬＳＩの外部に出力することが可能である。
【００６６】
（ｅ）データの解析後、さらに機能検証ソフトウェア５２にて機能検証を行う場合は、前述の（２）の（ｃ）に戻る。機能検証を終了する場合は、次の（５）に進む。
【００６７】
（５）通常動作モード切替
（ａ）ＬＳＩのテストモード選択入力用の端子をネガティブのレベルにし、ＬＳＩの機能自己検証を終了する。これによって、データの入力元として外部入力が選択されると共に、データの出力先として外部出力が選択され、通常動作モードによるＬＳＩの通常動作が可能になる。
【００６８】
上記実施例によれば、ＬＳＩ等の半導体集積回路に内蔵されたＣＰＵコア５に、ＬＳＩの機能を実行させるための機能実行ソフトウェア５１とＬＳＩの機能を検証するための機能検証ソフトウェア５２とを同居させて動作させているので、周辺ハードウェア資源および高価な試験治具等を用いることなくＬＳＩ単体でＬＳＩ自身の機能検証を行うことができるようになる。それゆえに、従来必要であった周辺ハードウェア資源や試験治具等が不要になり、実機試験に伴う部品コストや製造コストや評価コストを大幅に節減することが可能になる。
【００６９】
さらに、上記実施例によれば、ＬＳＩ単体での実機試験を行うことができるので、外部のパーソナルコンピュータからのテストデータの設定が不要になり、ＬＳＩ内のＣＰＵと外部のパーソナルコンピュータとの間の通信オーバーヘッドによる試験時間の長大化が節減される。
【００７０】
さらに、上記実施例によれば、機能ハードウェアのロジックの検証において、ＣＰＵ内に取り込まれたテストベンチソフトウェアを含む全ての要素をエミュレータに載せることができるので、エミュレータ上にマッピングされたＬＳＩ設計データのみでロジックの検証を行うことが可能になる。これによって、ＬＳＩの製造前であっても高速のロジックの検証が可能になり、ＬＳＩの開発期間の短縮やＬＳＩの品質向上が図れる。
【００７１】
図３は、本発明の半導体集積回路の機能検証を実行する手順を説明するためのフローチャートである。ここでは、図１のＣＰＵコアに同居させている機能実行ソフトウェアおよび機能検証ソフトウェア（またはテストベンチソフトウェア）を動作させて、図１の実施例に係るＣＰＵ内蔵型のＬＳＩの機能検証を行うための詳細な手順を説明する。なお、機能実行ソフトウェアおよび機能検証ソフトウェアは、予め外部記憶装置からＬＳＩ内部にダウンロードされているものとする。
【００７２】
初めに、ＣＰＵ内蔵型のＬＳＩのテストモード選択入力用の端子をアクティブのレベルにし、ＬＳＩを機能自己検証可能な状態（すなわち、テストモード）に設定する（ステップＳ１）。この状態では、ＬＳＩの機能検証を行うためのデータの入力元としてテストデータバッファが選択されると共に、ＬＳＩの機能検証の結果に関するデータの出力先として検証結果バッファが選択される。
【００７３】
つぎに、機能コアおよび機能実行ソフトウェアの動作と機能検証ソフトウェアの動作とのタイミングを調整するために、機能動作クロックを停止させ、機能コアを動作させないようにする（ステップＳ２）。このときに、機能検証ソフトウェアが動作を開始する。
【００７４】
その後、機能検証ソフトウェアが、自分自身で生成したある単位量のテストデータ（例えば１フレーム分のテストデータ）をテストデータバッファに格納する（ステップＳ３）。
【００７５】
上記のテストデータをテストデータバッファに格納した後、機能検証ソフトウェアの動作が停止し、機能動作クロックが再開する（ステップＳ４）。
【００７６】
さらに、テストデータバッファに格納されているテストデータに基づき、機能コアおよび機能実行ソフトウェアがある単位量分動作する。これらの機能コアおよび機能実行ソフトウェアの動作により得られた結果を検証結果バッファに格納する（ステップＳ５）。
【００７７】
テストデータバッファに格納されたテストデータ分（例えば１フレーム分のテストデータ）に関して、ＬＳＩの機能動作が終了した後、機能動作クロックを停止させ、機能コア２、３を動作させないようにする（ステップＳ６）。このときに、機能検証ソフトウェアが再び動作を開始する。
【００７８】
その後、機能検証ソフトウェアが、検証結果バッファから機能検証の結果を取り込む（ステップＳ７）。さらに、機能検証ソフトウェアが、取り込んだ検証結果に関するデータの解析を行う（ステップＳ８）。
【００７９】
当該データを解析した後、機能検証ソフトウェアにてＬＳＩの機能検証を継続して行いたい場合は（Ｙｅｓ）、前述のステップＳ３に戻る（ステップＳ９）。機能検証を終了する場合は（Ｎｏ）、次のステップＳ１０に進む。
【００８０】
このステップＳ１０において、ＬＳＩのテストモード選択入力用の端子をネガティブのレベルにし、ＬＳＩ自身によるＬＳＩの機能検証を終了する。これによって、データの入力元として外部入力が選択されると共に、データの出力先として外部出力が選択され、通常のＬＳＩ（半導体集積回路）の動作が遂行されるような通常動作モードになる（ステップＳ１１）。
【００８１】
図４は、本発明の半導体集積回路の機能検証を実行する際の信号およびデータの流れを説明するためのタイミングチャートである。この場合も、機能実行ソフトウェアおよび機能検証ソフトウェアは、予め外部記憶装置からＬＳＩ内部にダウンロードされているものとする。
【００８２】
ＣＰＵ内蔵型のＬＳＩの機能検証を実行する場合、図４の（Ｂ）の「テストモード選択入力」に示すように、テストモード選択入力用の端子に供給されるテストモード選択入力信号（すなわち、切替制御信号）をアクティブのレベル（ここでは、“１”のレベル）にし、ＬＳＩを機能自己検証可能な状態（テストモード）に設定する。このときに、図４の（Ａ）の「機能動作クロック」に示すように、機能コアの入力部の機能動作クロックを停止させ、機能コアを動作させないようにする。上記のテストモードでは、データの入力元としてテストデータバッファが選択されると共に、データの出力先として検証結果バッファが選択される。
【００８３】
さらに、図４の（Ｃ）の「外部入力フレームパルス」と図４の（Ｄ）の「外部入力データ」に示すように、機能検証ソフトウェアが、自分自身で生成した１フレーム分のテストデータをテストデータバッファに格納する（図４の（Ｉ）の「テストデータバッファ格納」参照）。
【００８４】
より詳しくいえば、図４の（Ｃ）の「外部入力フレームパルス」によってテストデータの単位量（ここでは、１フレーム分）が指定され、この外部入力フレームパルスにより指定された単位量に相当するテストデータ（図４の（Ｄ）の「外部入力データ」参照）が、テストデータバッファに転送され格納されることになる。なお、図４の（Ｃ）および（Ｄ）に記載の  ”Ｄｏｎ’ｔ  Ｃａｒｅ”  は、ＬＳＩがテストモードに設定されている間は、ＬＳＩの外部からどのような信号が入ってきた場合でも、ＬＳＩの機能検証の動作に影響を及ぼさないことを意味するものである。
【００８５】
因みに、ＣＰＵ内蔵型のＬＳＩが通常動作モードになっている場合、テストモード選択入力用の端子に供給されるテストモード選択入力信号はネガティブのレベル（ここでは、“０”のレベル）になっている。この通常動作モードでは、図４の（Ｄ）の「外部入力データ」と図４の（Ｅ）の「外部出力データ」から明らかなように、図４の（Ｄ）の外部入力データが、そのまま外部出力用の端子から出力される。これに対し、ＬＳＩがテストモードに設定されている間は、外部出力データは不定の状態になり、通常のＬＳＩの動作が遂行されない。
【００８６】
さらに、図４の（Ｆ）の「機能コア入力フレームパルス」と図４の（Ｇ）の「機能コア入力データ」に示すように、外部入力フレームパルスに同期した機能コア入力フレームパルスに基づき、テストデータバッファに格納されているテストデータが、機能コア入力データとして機能コアに入力される。
【００８７】
上記のテストデータをテストデータバッファに転送して格納した後、機能検証ソフトウェアの動作が停止し、図４の（Ａ）の機能動作クロックが再開する。その後、機能コアに入力されたテストデータを用いて、機能コアおよび機能実行ソフトウェアを動作させる。これらの機能コアおよび機能実行ソフトウェアを動作させて得られた結果は、図４の（Ｈ）の「機能コア出力データ」と図４の（Ｊ）の「検証結果バッファ格納」に示すように、機能コアから出力されて検証結果バッファに格納される。
【００８８】
なお、図４の（Ｇ）に記載の  ”Ｄｏｎ’ｔ  Ｃａｒｅ”  は、ＬＳＩがテストモードに設定されている間は、機能コアにどのような信号が入力された場合でも、ＬＳＩの機能検証の動作に影響を及ぼさないことを意味するものである。また一方で、図４の（Ｈ）から明らかなように、ＬＳＩがテストモードに設定されている間は、機能コアから出力される機能コア出力データは不定の状態になっている。
【００８９】
さらに、テストデータバッファに格納された１フレーム分のテストデータに関して、ＬＳＩの機能動作が終了した後、機能動作クロックを再び停止させ（図４の（Ａ）の「機能動作クロック」参照）、機能コアを動作させないようにする。このときに、機能検証ソフトウェアが再び動作を開始し、図４の（Ｋ）の「検証結果解析中」に示すように、検証結果バッファから機能検証の結果を取り込む。さらに、機能検証ソフトウェアが、取り込んだ検証結果をもとにデータの解析を行う。データの解析結果の情報は、解析結果出力部からＬＳＩの外部に出力することが可能である。
【００９０】
データの解析後、さらに機能検証ソフトウェアにて機能検証を行う場合は、前述の（Ｃ）の「外部入力フレームパルス」によってテストデータの単位量が再び指定され、この外部入力フレームパルスにより指定された単位量に相当するテストデータ（図４の（Ｄ）の「外部入力データ」参照）が、テストデータバッファに転送され格納される。
【００９１】
機能検証を終了する場合は、テストモード選択入力信号をネガティブのレベルにし（図４の（Ｂ）の「テストモード選択入力」参照）、ＬＳＩの機能自己検証を終了する。これによって、機能動作クロックが再開し（図４の（Ａ）の「機能動作クロック」参照）、通常動作モードによるＬＳＩの通常動作に戻る。
【００９２】
これまで述べた実施例において、ＬＳＩに内蔵されたＣＰＵコアにオペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を搭載し、ソフトウェアをマルチタスクで動作させることが可能な場合、機能実行ソフトウェアと機能検証ソフトウェア（またはテストベンチソフトウェア）をそれぞれ別のタスクに割り当てることによって、上記の機能実行ソフトウェアおよび機能検証ソフトウェアを並列で動作させることができる。それゆえに、より短いレイテンシでＬＳＩの機能検証を行うことが可能になる。
【００９３】
（付記１）  所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路において、
前記中央演算処理部が生成した前記半導体集積回路の機能検証を行うためのテストデータを格納する第１の記憶部と、
前記半導体集積回路の機能検証の結果に関する検証結果データを格納する第２の記憶部とを備えることを特徴とする半導体集積回路。
【００９４】
（付記２）  前記中央演算処理部の動作の状態に基づいて、前記機能ハードウェアを動作させる機能動作クロックを停止させる機能動作クロック停止判断部を備えることを特徴とする付記１記載の半導体集積回路。
【００９５】
（付記３）  前記半導体集積回路の機能検証を行うか否かのモードの切替えを示すテストモード選択入力用の端子を備えることを特徴とする付記１または２記載の半導体集積回路。
【００９６】
（付記４）  前記検証結果データの解析結果を出力する解析結果出力端子を備えることを特徴とする付記１、２または３記載の半導体集積回路。
【００９７】
（付記５）  前記テストモード選択入力の状態に基づいて、前記機能ハードウェアおよび前記中央演算処理部に入力されるデータの入力元として、外部入力または前記第１の記憶部のいずれかを選択する入力切替部を備えることを特徴とする付記３記載の半導体集積回路。
【００９８】
（付記６）  前記テストモード選択入力の状態に基づいて、前記機能ハードウェアおよび前記中央演算処理部から出力されるデータの出力元として、外部出力または前記第２の記憶部のいずれかを選択する出力切替部を備えることを特徴とする付記３または５記載の半導体集積回路。
【００９９】
（付記７）  所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能検証方法において、
前記中央演算処理部にて所定の機能を実現するための第１のソフトウェアと、前記半導体集積回路の機能を機能検証するための第２のソフトウェアとを、該中央演算処理部において同居させて動作させ、
前記第２のソフトウェアが前記半導体集積回路の機能を機能検証するためのテストデータを生成し、
前記テストデータを第１の記憶部に格納し、
該テストデータを用いて、前記機能ハードウェアと前記第１のソフトウェアとを動作させ、該機能ハードウェアと該第１のソフトウェアの動作の結果として出力される検証結果データを第２の記憶部に格納することを特徴とする半導体集積回路の機能検証方法。
【０１００】
（付記８）  前記第２のソフトウェアが、前記検証結果データを前記第２の記憶部より取り出し、該検証結果データを解析することを特徴とする付記７記載の機能検証方法。
【０１０１】
（付記９）  前記第２のソフトウェアが、前記テストデータを生成するときには前記機能ハードウェアを動作させる機能動作クロックを停止させ、
前記テストデータを用いて、前記機能ハードウェアと前記第１のソフトウェアとを動作させるときには前記機能動作クロックを動作させ、
前記検証結果データを解析するときには、前記機能ハードウェアを動作させる機能動作クロックを停止させることを特徴とする付記７または８記載の機能検証方法。
【０１０２】
（付記１０）  所定の機能を有する機能ハードウェアと、ソフトウェアのプログラムを実行することにより所定の機能を実現する中央演算処理部とからなる半導体集積回路の機能を検証するプログラムであって、コンピュータに、
前記半導体集積回路の機能を機能検証するためのテストデータを生成する手段と、
生成された前記テストデータを第１の記憶部に格納する手段と、
前記テストデータを用いて、前記機能ハードウェアと前記中央演算処理部を機能させるソフトウェアとを動作させ、該機能ハードウェアと該ソフトウェアの動作の結果として出力される検証結果データを第２の記憶部に格納する手段とを機能させるための半導体集積回路の機能検証プログラム。
【０１０３】
【発明の効果】
以上説明したように、本発明によれば、ＬＳＩ等の半導体集積回路に内蔵されたＣＰＵに、所定の機能を実行させるための機能実行ソフトウェアと上記所定の機能を検証するための機能検証ソフトウェアとを予め取り込んで同居させ、機能ハードウェアの動作を停止させて、機能検証ソフトウェアによりＬＳＩの機能検証を行うためのテストパターン等のデータを生成し、機能ハードウェアの動作を開始させて、当該データを用いてＬＳＩの機能検証を行うようにしているので、高価な試験治具等を用いることなくＬＳＩ単体でＬＳＩ自身の機能検証を行うことが可能になる。
【０１０４】
また一方で、ＬＳＩ等に内蔵されたＣＰＵを、テストパターン等のデータの生成や当該データを用いた機能検証に利用することにより、高機能の試験治具等の開発が不要になってＬＳＩの評価コストの上昇が抑えられると共に、外部のパーソナルコンピュータ等による制御が不要になってＬＳＩの機能検証に要する時間を大幅に短縮することが可能になる。
【図面の簡単な説明】
【図１】本発明の一実施例に係る機能自己検証式の半導体集積回路の構成を示すブロック図である。
【図２】図１のＣＰＵコアにて機能実行ソフトウェアと機能検証ソフトウェアとを同居させた状態を示すブロック図である。
【図３】本発明の半導体集積回路の機能検証を実行する手順を説明するためのフローチャートである。
【図４】本発明の半導体集積回路の機能検証を実行する際の信号およびデータの流れを説明するためのタイミングチャートである。
【図５】一般の被試験用半導体集積回路の実機試験環境を示すブロック図である。
【図６】従来のＣＰＵ内蔵型の半導体集積回路の構成を示すブロック図である。
【符号の説明】
１…半導体集積回路
２…機能コア（ＣＰＵ依存部）
３…機能コア（ＣＰＵ非依存部）
４…機能動作クロック停止判断部
５…ＣＰＵコア
６…テストデータバッファ
７…検証結果バッファ
８…外部記憶装置
９…内蔵メモリ
１１…上位ソフトインタフェース部
１２…入力インタフェース部
１３…入力切替部
１４…ハード／ソフトインタフェース用メモリ
１５…ソフト／ハードインタフェース用メモリ
１６…ＡＮＤゲート
１７…出力切替部
１８…出力インタフェース部
５１…機能実行ソフトウェア
５２…機能検証ソフトウェア
１００…半導体集積回路
１０１…パターン発生器
１０２…機能ブロック
１０３…出力部
１０４…パーソナルコンピュータ
１０５…ＣＰＵ内蔵型の半導体集積回路
１１０…上位ソフトインタフェース部
１２０…入力インタフェース部
１４０…ハード／ソフトインタフェース用メモリ
１５０…ソフト／ハードインタフェース用メモリ
１８０…出力インタフェース部
２００…機能コア（ＣＰＵ依存部）
２１０…中間変数格納メモリ
３００…機能コア（ＣＰＵ非依存部）
３１０…中間変数格納メモリ
５００…ＣＰＵコア
８００…外部記憶装置
９００…内蔵メモリ
【図１】
2004361171.tif 000003
【図２】
2004361171.tif 000004
【図３】
2004361171.tif 000005
【図４】
2004361171.tif 000006
【図５】
2004361171.tif 000007
【図６】
2004361171.tif 000008