(57)【要約】【課題】内部バスの検証モジュールを有する半導体デバイスを提供する。【解決手段】内部バスと、第１の接続点において前記バスに接続されたマスターと、第２の接続点において前記内部バスに接続され、前記マスターと通信可能に設けられたスレーブと、検証モジュールとを備えた半導体デバイス。前記検証モジュールは、前記マスターが前記スレーブに供給した制御信号を検出し、当該検出信号に基づいて、前記内部バスの通信量に関するデータを生成する。前記制御信号は、前記マスターが前記スレーブを制御するための信号であって、例えば、書き込み信号、読み出し信号、バースト信号等を含む。前記検証モジュールは、各制御信号がアサートされた回数に基づいて、前記内部バスの通信量に関するデータを生成してもよい。前記検証モジュールは、前記内部バスに接続された検証用マスター及び検証用スレーブをさらに有してもよい。【選択図】図３
2012181603.tif 000002
【特許請求の範囲】
【請求項１】
内部バスと、
第１の接続点において前記内部バスに接続されたマスターと、
第２の接続点において前記内部バスに接続され、前記マスターと通信可能に設けられたスレーブと、
前記マスターが前記スレーブを制御するために出力した制御信号を、前記第１の接続点及び前記第２の接続点の少なくとも一方において検出する検証モジュールと、
を備える半導体デバイス。
【請求項２】
前記検証モジュールは、前記検出された制御信号に基づいて、前記内部バスの通信量に関するデータを生成することを特徴とする請求項１に記載の半導体デバイス。
【請求項３】
前記検証モジュールは、所定の制御信号がアサートされた回数に基づいて、前記内部バスの通信量に関するデータを生成することを特徴とする請求項２に記載の半導体デバイス。
【請求項４】
前記制御信号は、前記マスターが前記スレーブを制御するための信号であって、書き込み信号、読み出し信号、転送タイプ信号、転送サイズ信号、バースト信号、ロック動作信号、転送方向信号又は保護制御信号のいずれかを含む、請求項１乃至３のいずれかに記載の半導体デバイス。
【請求項５】
前記検証モジュールは、前記内部バスの通信量に関するデータを外部機器に出力するための通信インターフェイスを含む、請求項２乃至４のいずれかに記載の半導体デバイス。
【請求項６】
前記検証モジュールにより生成された前記内部バスの通信量に関するデータは、前記半導体デバイスの内部状態を分析するために利用される、請求項２乃至５のいずれかに記載の半導体デバイス。
【請求項７】
請求項２乃至５のいずれかに記載の半導体デバイスと、
外部インターフェイスを介して前記検証モジュールから受信した前記内部バスの通信量に関するデータに基づいて、前記半導体デバイスの内部状態を分析する外部機器と、
を備える検証システム。
【請求項８】
前記分析される内部状態は、スレーブ使用率、転送タイプ率、バースト転送率、ライト／リード率、転送サイズ率、保護制御率、ロック転送率、転送応答率、総ウェイトサイクル数、最大ライトウェイトサイクル数又は最大リードウェイトサイクル数のいずれかを含む、請求項７に記載の検証システム。
【請求項９】
請求項２乃至５のいずれかに記載の半導体デバイスに含まれる前記検証モジュールと通信可能に設けられた外部機器であって、
前記検証モジュールにより生成された前記内部バスの通信量に関するデータに基づいて、前記半導体デバイスの内部状態を分析し、分析した結果を出力するディスプレイを備える外部機器。
【請求項１０】
半導体デバイスの内部バスに接続されたマスターが前記内部バスに接続されたスレーブを制御するために出力した制御信号を、前記マスターと前記内部バスとの接続点及び前記スレーブと前記内部バスとの接続点の少なくとも一方において検出する検出部を備える検証モジュールであって、
前記検証モジュールが前記半導体デバイスの内部に組み込まれたものであることを特徴とする検証モジュール。
【請求項１１】
半導体デバイスの内部状態を検証する方法であって、
前記半導体デバイスの内部に組み込まれ、検証モジュールが、前記内部バスに接続されたマスターが前記内部バスに接続されたスレーブを制御するために出力した制御信号を、前記マスターと前記内部バスとの接続点及び前記スレーブと前記内部バスとの接続点の少なくとも一方において検出し、前記検出された制御信号に基づいて、前記内部バスの通信量に関するデータを生成するステップと、
前記検証モジュールが、前記内部バスの通信量に関するデータを外部機器に出力するステップと、
前記外部機器が、前記検証モジュールから受信した前記内部バスの通信量に関するデータに基づいて、前記半導体デバイスの内部状態を分析するステップと、
を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体デバイスの検証技術に関する。
【背景技術】
【０００２】
従来、デジタルＬＳＩ等の半導体デバイスの検証を行うための手法として、専用のシミュレーションソフトウェアでの検証や計測器を使用しての検証が知られている（例えば、特許文献１参照）。前者は、性能を検証するために専用のシミュレーションソフトウェアをデザインのたびに開発して仮想的な環境を構築し、その環境の中で性能実験を行う手法である。後者は、チップ内部の観測ポイントに導線を接続して外部に信号を排出し、ロジックアナライザーやオシロスコープのような計測器を使用してチップ内部の信号を直接観測して性能確認を行う手法である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２８３１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、シミュレーションソフトウェアでの検証においては、ＣＰＵがより高性能化、高機能化していくにつれて、実行時間が膨大になるため、シミュレーションソフトウェアでの検証を利用することは現実的ではない。例えば、シミュレーションソフトウェアを使用して５秒の画像を流す場合、一般に結果が出るまでに２４時間程度、１分間の画像であれば約１２日、１時間の画像であれば約７２０日かかると言われている。今後、デジタル機器が性能を向上させるにつれて、検証のためにさらに複雑なソフトウェアが必要になるため、シミュレーションソフトウェアでの検証は、現実的には使用不可能になることが予想される。
【０００５】
また、計測器を使用しての検証においては、半導体デバイス本体のプロセス（トランジスタの大きさを示すもの）微細化がより進むと、計測器のように導線を接続し外部に信号を排出する方法では、チップコアの電圧低下のため計測することが困難であったり、外に信号を排出することすら不可能になったりしてしまうという問題が指摘されている。半導体デバイスは年々技術が進化しており、現在のプロセスの主流は４５ｎｍ（ナノメートル）、２０１１年には３２ｎｍ、２０１２年には２８ｎｍが量産段階に入る見込みであるが、現在の計測器の限界は３０ｎｍと言われており、製造プロセスが３０ｎｍより微細化されると計測器を用いた波形の計測は不可能になると考えられる。
【０００６】
このように、シミュレーションソフトウェアや計測器を使用した従来の検証手法では、近い将来、最先端の半導体デバイスの検証ができなくなるおそれがある。
【０００７】
本発明は、斯かる実情に鑑み、半導体デバイスの検証を行うために、内部バスの検証モジュールを有する半導体デバイスを提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明の一態様による半導体デバイスは、内部バスの信号を観測するための検証モジュールをチップ内部に備える。すなわち、半導体デバイスは、内部バスと、第１の接続点において内部バスに接続されたマスターと、第２の接続点において内部バスに接続され、マスターと通信可能に設けられたスレーブと、マスターがスレーブを制御するために出力した制御信号を、第１の接続点及び第２の接続点の少なくとも一方において検出する検証モジュールと、を備えるものである。好適には、検証モジュールは、所定の制御信号がアサートされた回数を検出するカウンタを含む。また好適には、検証モジュールは、検出されたデータを外部機器に出力するための通信インターフェイスを含む。そして、検証モジュールにより検出されたデータは、内部バスの通信に関するデータを分析するために利用される。
【０００９】
また、本発明の一態様による検証システムは、上述の半導体デバイスと、外部インターフェイスを介して検証モジュールから受信した検出データに基づいて、内部バスの通信に関するデータを生成する外部機器と、を備える。好適には、通信に関するデータとして、スレーブ使用率、転送タイプ率、バースト転送率、ライト／リード率、転送サイズ率、保護制御率、ロック転送率、転送応答率、総ウェイトサイクル数、最大ライトウェイトサイクル数又は最大リードウェイトサイクル数のいずれかを含む。また、本発明の一態様による外部機器は上述の半導体デバイスに含まれる検証モジュールと通信可能に設けられていて、検証モジュールにより検出されたデータに基づいて、内部バスの通信に関するデータを分析し、分析した結果を出力するディスプレイを備える。
【００１０】
さらに、本発明の一態様による検証モジュールは、内部バスに接続されたマスターが内部バスに接続されたスレーブを制御するために出力した制御信号を、マスターと内部バスとの接続点及びスレーブと内部バスとの接続点の少なくとも一方において検出する検出部を備える。そして、この検証モジュールが半導体デバイスの内部に組み込まれたものであることを特徴とする。
【００１１】
また、本発明の一態様による半導体デバイスの内部状態を検証する方法は、半導体デバイスの内部に組み込まれた検証モジュールが、内部バスに接続されたマスターが内部バスに接続されたスレーブを制御するために出力した制御信号を、マスターと内部バスとの接続点及びスレーブと内部バスとの接続点の少なくとも一方において検出するステップと、検証モジュールが、検出された制御信号に基づいて生成された解析データを外部機器に出力するステップと、外部機器が、検証モジュールから受信した検出データに基づいて、内部バスの通信に関するデータを分析するステップと、を備える。
【発明の効果】
【００１２】
本発明によれば、内部バスの信号を観測するための検証モジュールをチップ内部に備えることにより、チップの内部状態をリアルタイムでモニタリング及び解析することができるという優れた効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態による検証システム１００の全体構成を示す概略図である。
【図２】本実施形態における半導体デバイス１０の内部構成を示す概略図である。
【図３】本実施形態における内部バス１４と検証モジュール１６の機能構成を示すブロック図である。
【図４】本実施形態における検出部１６１の構成を示すブロック図である。
【図５】本実施形態におけるマスターポート解析部４１の構成を示すブロック図である。
【図６】本実施形態におけるスレーブポート解析部４２の構成を示すブロック図である。
【図７】サンプル周期カウンタ４３においてサンプル周期を生成する際のタイムチャートの一例である。
【図８】マスターポート解析部４１が書き込み信号を検出した回数をカウントする際のタイムチャートの一例である。
【図９】マスターポート解析部４１が読み込み信号を検出した回数をカウントする際のタイムチャートの一例である。
【図１０】外部機器２０において出力されるメインモニタ画面の一例である。
【図１１】外部機器２０において出力されるマスターモニタ画面の一例である。
【図１２】外部機器２０において出力されるスレーブモニタ画面の一例である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。
【００１５】
図１は、本発明の一実施形態による検証システム１００の全体構成を示す概略図である。同図に示すように、検証システム１００は、テスト用ボードに搭載された検証対象の半導体デバイス１０と、半導体デバイス１０の内部状態をモニタリング及び分析するためＧＵＩとして機能する外部機器２０とを含み、これらが、外部インターフェイス３０を介して互いに通信可能に接続される。
【００１６】
図２は、本発明の一実施形態による半導体デバイス１０の内部構成を示す概略図である。同図に示すように、半導体デバイス１０は、検証対象となる内部システムを構成する、例えばＡＲＭ等のプロセッサコア、ＵＳＢ、メモリ、その他の各種モジュール１２が内部バス１４に接続されている。本実施形態においては、半導体デバイス１０は、さらに、内部バス１４に接続され、内部バス１４を伝搬する信号を観測するための検証モジュール１６を備える。内部バス１４は、半導体デバイス１０内部のオンチップバスであり、本実施形態では内部バス１４としてＡＨＢ（商標）（アドバンスドハイパフォーマンスバス）を用いる例を示すが、内部バス１４はＡＨＢに限定されるものではなく、ＡＸＩ（商標）やその他の任意の仕様のバスを利用可能である。
【００１７】
図３は、本実施形態における内部バス１４と検証モジュール１６の機能構成を示すブロック図である。本実施形態では、同図に示すように、８個のマスター１２１ａ〜ｈがそれぞれ所定の接続点においてマスターポート１４１ａ〜ｈを介して内部バス１４に接続されている（マスター１２１ａ〜ｈを個々に区別する必要性がないときは、これらを「マスター１２１」と総称する。「マスターポート１４１」並びに後述する「スレーブ１２２」、「スレーブポート１４２」、「マスターポート解析部４１」及び「スレーブポート解析部４２」についても同様である。）。また、８個のスレーブ１２２ａ〜ｈがそれぞれ所定の接続点においてスレーブポート１４２ａ〜ｈを介して内部バス１４に接続され、任意のマスター１２１と通信可能に設けられている。
【００１８】
検証モジュール１６は、検出部１６１と、制御部１６２と、通信インターフェイス１６３と、検証用マスター１６４と、検証用スレーブ１６５とを含んで構成される。
【００１９】
検出部１６１は、マスターポート１４１に接続され、マスターポート１４１において、マスター１２１がスレーブ１２２に出力した制御信号を検出する。また、検出部１６１は、スレーブポート１４２に接続され、スレーブポート１４２においてスレーブ１２２に供給される制御信号やスレーブ１２２からマスター１２１に供給される応答信号を検出する。検出部１６１は、これら検出された信号に基づいて、内部バス１４の通信量に関する解析データを生成する。
【００２０】
通信インターフェイス１６３は、制御部１６２を介して検出部１６１から受信した解析データを、外部機器２０と通信可能な形式に変換し、通信ポート１８に接続された外部インターフェイス３０を介して外部機器２０に出力する。本実施形態において、通信インターフェイス１６３は、一例として、ＲＳ−２３２Ｃ規格に準拠したＵＡＲＴインターフェイスであり、そのシリアルポートにおいて外部機器２０とシリアル通信を行う。通信インターフェイス１６３は、他の例として、ＪＴＡＧインターフェイスでもよく、ＴＡＰコントローラを介して外部機器２０と通信を行うようにしてもよい。
【００２１】
制御部１６２は、検出部１６１が生成した解析データを収集し、通信インターフェイス１６３に渡す。また、制御部１６２は、通信インターフェイス１６３を介して外部機器２０から受信したデータに基づいて、検出部１６１、検証用マスター１６４及び検証用スレーブ１６５の動作を制御する。検証用マスター１６４は、制御部１６２からの制御に従って、擬似的な制御信号を供給する擬似的なマスターである。検証用スレーブ１６５は、制御部１６２からの制御に従って、制御信号又は当該擬似的な制御信号に基づいて動作する擬似的なスレーブである。検証用マスター１６４及び検証用スレーブ１６５を内部バス１４に接続し、検証用マスター１６４から検証用スレーブ１６５に擬似的な制御信号を供給して検証用スレーブ１６５を動作させることにより、内部バス１４を伝搬する信号量を仮想的に増加させて、内部バス１４に対して過負荷テストなどの仮想テストを行うことが可能になる。例えば、検証用スレーブ１６５から内部バス１４に流すデータ量を意図的に制御することによって、内部バス１４に流すことができるデータ量を確認するテストなどを行うことが可能になる。これにより、開発初期段階で半導体デバイス１０の性能を可視化し、内部バス１４において転送速度が低下する原因がどこにあるのか、半導体デバイス１０において消費電力が大きくなっている原因がどこにあるのかといったことを特定することができる。これにより、内部バス１４における転送速度を向上することが可能になる。
【００２２】
なお、仮想テストが不要な場合には、制御部１６２と、検証用マスター１６４と、検証用スレーブ１６５を設けなくともよい。すなわち、仮想テストが不要な場合には、これらの構成を省略して、検出部１６１と通信インターフェイス１６３によって検証モジュール１６を構成することができる。
【００２３】
また、バスクロックＨＣＬＫと、リセット信号ＨＲＥＳＥＴｎが、半導体デバイス１０の内部、すなわち、モジュール１２、内部バス１４及び検証モジュール１６に供給される。バスクロックＨＣＬＫはバス転送のタイミングをとるために用いられる。信号タイミングはバスクロックＨＣＬＫの立ち上がりエッジによって決まる。リセット信号ＨＲＥＳＥＴｎは、モジュール１２、内部バス１４及び検証モジュール１６のリセットに使用される。
【００２４】
図４−６は、検出部１６１のより詳細な構成を示すブロック図である。詳細は後述するが、検出部１６１は、マスターポート１４１及びスレーブポート１４２の信号を検出して、所定の解析条件に従って当該検出信号を解析し、個々のマスターポート１４１及び個々のスレーブポート１４２ごとに、内部バス１４の通信量に関する解析データを生成する。本実施形態においては、所定のサンプル周期内において解析条件に一致する制御信号がアサートされた回数に基づいて、解析データを生成する。生成された解析データは、制御部１６２を介して通信インターフェイス１６３に渡される。外部機器２０は、外部インターフェイスを介して検証モジュール１６から解析データを受信すると、解析データに基づいて、半導体デバイス１０の内部状態を分析する。
【００２５】
図４は、本実施形態における検出部１６１の構成を示すブロック図である。同図に示すように、検出部１６１は、各マスターポート１４１ａ〜ｈからそれぞれ信号を受信するマスターポート解析部４１ａ〜ｈと、各スレーブポート１４２ａ〜ｈからそれぞれ信号を受信するスレーブポート解析部４２ａ〜ｈと、各マスターポート解析部４１及び各スレーブポート解析部４２に解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅとサンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌを供給するサンプル周期カウンタ４３と、を備える。
【００２６】
マスターポート解析部４１及びスレーブポート解析部４２の詳細構成は後述するが、それぞれ所定のマスターポート１４１及び所定のスレーブポート１４２に接続されている。本実施形態においては、解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅがアサートされている間、マスターポート解析部４１及びスレーブポート解析部４２はそれぞれ、マスターポート１４１及びスレーブポート１４２に供給される信号を検出する。この間、マスターポート解析部４１及びスレーブポート解析部４２は、ユーザ等により設定された任意のサンプル周期ごとに解析データを生成して出力する。すなわち、マスターポート解析部４１及びスレーブポート解析部４２は、マスターポート１４１及びスレーブポート１４２に供給される信号を検出して、検出された信号が所定の解析条件に一致する場合にはカウンタイネーブルｃｏｕｎｔ＿ｅｎａをアサートし、解析条件ごとにカウンタイネーブルｃｏｕｎｔ＿ｅｎａがアサートされた回数をカウントする。カウントはサンプル周期ごとに行われ、サンプル周期ごとに当該サンプル周期においてカウントされたカウント値が出力される。本実施形態では、マスターポート解析部４１において、３５種類の解析条件のそれぞれについて、カウント値が、３２ビットのデータとして出力される。また、スレーブポート解析部４２において、９種類の解析条件のそれぞれについて、カウント値が、３２ビットのデータとして出力される。
【００２７】
本実施形態では、内部バス１４はＡＨＢ仕様のバスであり、マスターポート解析部４１は、ＡＨＢ仕様のバスで利用される以下の制御信号をモニタする。アドレス信号ＨＡＤＤＲ［３１：０］、書き込み信号としての書き込みデータ信号ＨＷＤＡＴＡ［３１：０］、読込み信号としての読み込みデータ信号ＨＲＤＡＴＡ［３１：０］、転送タイプ信号ＨＴＲＡＮＳ［１：０］、転送サイズ信号ＨＳＩＺＥ［２：０］、バーストの種類を示すバースト信号ＨＢＵＲＳＴ［２：０］、保護制御信号ＨＰＲＯＴ［３：０］、ロックされた転送を示すロック動作信号ＨＬＯＣＫ、転送方向信号ＨＷＲＩＴＥ、転送応答信号ＨＲＥＳＰ［１：０］、転送完（Ｉ）信号ＨＲＥＡＤＹＩ。また、スレーブポート解析部４２は、以下の制御信号又はスレーブ１２２からマスター１２１への応答信号をモニタする。転送タイプ信号ＨＴＲＡＮＳ［１］、転送方向信号ＨＷＲＩＴＥ、転送応答信号ＨＲＥＳＰ［１：０］、転送完（Ｉ）信号ＨＲＥＡＤＹＩ、転送完（Ｏ）信号ＨＲＥＡＤＹＯ。なお、本明細書において「［Ｎ−１：０］」は、Ｎビットのデータであることを示す。ＡＨＢ仕様のバスで用いられる信号の詳細については、ＡＲＭ社が提供する「ＡＭＢＡTM仕様書（Ｒｅｖ２．０）」に基づくものである。
【００２８】
サンプル周期カウンタ４３は、設定されたサンプルカウントまでカウントアップすることを繰り返すことによってサンプル周期を計測するカウンタである。また、サンプル周期カウンタ４３は、このサンプル周期に同期し、サンプル周期が到来するたびにアサートされるサンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌを生成し、マスターポート解析部４１及びスレーブポート解析部４２に供給する。これにより、マスターポート解析部４１及びスレーブポート解析部４２において、サンプル周期ごとに解析データを生成することが可能になる。
【００２９】
図５は、本実施形態におけるマスターポート解析部４１の構成を示すブロック図である。同図に示すように、マスターポート解析部４１は、マスターポート１４１の制御信号を検出するマスターポートコマンド解析部５１と、検出された制御信号に基づいて、解析データを生成する複数のマスターポートコマンドカウント部５２と、を備える。
【００３０】
本実施形態において、マスターポートコマンド解析部５１には、予め定められた種々の解析条件が格納されている。マスターポートコマンド解析部５１は、マスターポート１４１の制御信号を検出し、検出した制御信号を解析条件に従って解析する。解析条件としては、例えば、監視しているマスターポート１４１ｘ（ｘはａ〜ｈのいずれか）に接続されているマスター１２１ｘからスレーブ１２２ａに制御信号が供給された場合に真となる条件、マスター１２１ｘからスレーブ１２２ｂに制御信号が供給された場合に真となる条件、マスター１２１ｘの転送タイプがＳＥＱＵＥＮＴＩＡＬの場合に真となる条件、マスター１２１ｘの転送タイプがＩＤＬＥの場合に真となる条件、などがある。本実施形態では、マスターポートコマンド解析部５１には、３５個の解析条件が格納されており、マスター１２１ｘからどのスレーブ１２２ｙ（ｙはａ〜ｈのいずれか）に制御信号が供給されたか、マスターｘの制御信号の転送タイプ、転送サイズ、バースト動作、ロック動作、転送方向及び保護制御を解析する。マスターポートコマンド解析部５１は、解析条件ごとにカウンタイネーブルｃｏｕｎｔ＿ｅｎａを生成しており、ある解析条件が真のとき、当該解析条件のカウンタイネーブルｃｏｕｎｔ＿ｅｎａをアサートする。
【００３１】
マスターポートコマンドカウント部５２はそれぞれ、カウンタ５３とラッチ５４を備える。マスターポートコマンドカウント部５２は、それぞれ、１つの解析条件に対応して設けられている。本実施形態では、マスターポートコマンド解析部５１には３５個の解析条件が格納されており、マスターポート解析部４１は、これに対応して３５個のマスターポートコマンドカウント部５２を備えている。１つのマスターポートコマンドカウント部５２には、対応する１つの解析条件に関するカウンタイネーブルｃｏｕｎｔ＿ｅｎａがマスターポートコマンド解析部５１から供給される。各マスターポートコマンドカウント部５２内のカウンタ５３は、カウンタイネーブルｃｏｕｎｔ＿ｅｎａがアサートされた回数を検出しており、バスクロックＨＣＬＫの周期ごとにマスターポートコマンド解析部５１から供給されるカウンタイネーブルｃｏｕｎｔ＿ｅｎａを見て、それがアサートされている場合には、そのカウント値をカウントアップする。こうして、各カウンタ５３は、それぞれ対応する解析条件が真であった回数をサンプル周期ごとにカウントする。例えば、本実施形態では、あるカウンタ５３は、マスター１２１ｘからスレーブ１２２ａに制御信号が転送された回数をカウントし、別のカウンタ５３は、マスター１２１ｘからスレーブ１２２ｂに制御信号が転送された回数をカウントし、さらにまた別のカウンタ５３は、マスター１２１ｘの転送タイプがＳＥＱＵＥＮＴＩＡＬであった回数をカウントするといった具合である。本実施形態では、カウンタ５３は、各制御信号の状態又はそれらの組み合わせが上述の３５個の解析条件のそれぞれに一致した回数をカウントする。そして、カウンタ５３は、サンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌがアサートされたとき、そのカウント値をラッチ５４に渡し、当該カウンタ５３のカウント値をリセットするとともに、新たなカウントを開始する。各ラッチ５４に保持された合計３５個のカウント値は、解析データとして制御部１６２に出力される。
【００３２】
図６は、本発明の一実施形態によるスレーブポート解析部４２の構成を示すブロック図である。スレーブポート解析部４２は、スレーブポート１４２において、マスター１２１からスレーブ１２２に供給される制御信号やスレーブ１２２からマスター１２１への応答信号をモニタすることを除いて、構成及び処理内容はマスターポート解析部４１と同様である。同図に示すように、スレーブポート解析部４２は、スレーブポート１４２の制御信号及び応答信号を検出するスレーブポートコマンド解析部６１と、検出された信号に基づいて、解析データを生成する複数のスレーブポートコマンドカウント部６２と、を備える。
【００３３】
本実施形態において、スレーブポートコマンド解析部６１には、予め定められた種々の解析条件が格納されている。スレーブポートコマンド解析部６１は、スレーブポート１４２の制御信号及び応答信号を検出し、検出した信号を解析条件に従って解析する。解析条件としては、例えば、監視しているスレーブポート１４２ｙに接続されているスレーブ１２２ｙの転送方向がＷＲＩＴＥ転送の場合に真となる条件、スレーブ１２２ｙの転送方向がＲＥＡＤ転送の場合に真となる条件、スレーブ１２２ｙの転送応答がＯＫＡＹの場合に真となる条件、などがある。本実施形態では、スレーブポートコマンド解析部６１には、９個の解析条件が格納されており、スレーブ１２２ｙの転送方向、転送応答、ウェイト率及び最大ウェイトサイクル数を解析する。スレーブポートコマンド解析部６１は、解析条件ごとにカウンタイネーブルｃｏｕｎｔ＿ｅｎａを生成しており、ある解析条件が真のとき、当該解析条件ごとのカウンタイネーブルｃｏｕｎｔ＿ｅｎａをアサートする。
【００３４】
スレーブポートコマンドカウント部６２はそれぞれ、カウンタ６３とラッチ６４を備える。スレーブポートコマンドカウント部６２は、それぞれ１つの解析条件に対応して設けられている。本実施形態では、スレーブポートコマンド解析部６１には９個の解析条件が格納されており、スレーブポート解析部４２は、これに対応して９個のスレーブポートコマンドカウント部６２を備えている。１つのスレーブポートコマンドカウント部６２には、対応する１つの解析条件に関するカウンタイネーブルｃｏｕｎｔ＿ｅｎａがスレーブポートコマンド解析部６１から供給される。各スレーブポートコマンドカウント部６２内のカウンタ６３は、カウンタイネーブルｃｏｕｎｔ＿ｅｎａがアサートされた回数を検出しており、バスクロックＨＣＬＫの周期ごとにスレーブポートコマンド解析部６１から供給されるカウンタイネーブルｃｏｕｎｔ＿ｅｎａを見て、それがアサートされている場合には、そのカウント値をカウントアップする。こうして、各カウンタ６３は、それぞれ対応する解析条件が真であった回数をサンプル周期ごとにカウントする。例えば、本実施形態では、あるカウンタ６３は、スレーブ１２２ｙの転送方向がＷＲＩＴＥ転送であった回数をカウントし、別のカウンタ６３は、スレーブ１２２ｙの転送応答がＯＫＡＹであった回数をカウントする。本実施形態では、カウンタ６３は、各制御信号や応答信号の状態又はそれらの組み合わせが上述の９個の解析条件のそれぞれに一致した回数をカウントする。そして、カウンタ６３は、サンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌがアサートされたとき、そのカウント値をラッチ６４に渡し、当該カウンタ６３のカウント値をリセットするとともに、新たなカウントを開始する。各ラッチ６４に保持された合計９個のカウント値は、解析データとして制御部１６２に出力される。
【００３５】
図７は、サンプル周期カウンタ４３においてサンプル周期を生成する際のタイムチャートの一例である。サンプル周期カウンタ４３は、その内部に設けられたサンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔの値が０のときに、サンプル周期カウンタ４３に供給されるシステム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがアサートされることに応答して、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔのカウントアップを開始する。サンプル周期カウンタ４３は、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔがサンプルカウントの設定値ｓｅｔ＿ｓｍｐｔｉｍに達したことを検出したとき、サンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌを１クロックサイクル分アサートする。同時に、サンプル周期カウンタ３５は、解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅをアサートする。また、サンプル周期カウンタ４３は、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔをリセットする。サンプル周期カウンタ４３は、サンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌをアサートしたときにシステム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがアサートされているか否かを検出し、システム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがアサートされている場合には、解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅをアサートし続ける。
サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔがリセットされた後、サンプル周期カウンタ４３は、システム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがアサートされているか否かを判別する。そして、システム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがアサートされ、かつ、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔが０のとき、サンプル周期カウンタ４３は、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔのカウントアップを新たに開始する。サンプル周期カウンタ４３は、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔがサンプルカウントの設定値ｓｅｔ＿ｓｍｐｔｉｍに達したことを検出したとき、サンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌを１クロックサイクル分アサートする。また、サンプル周期カウンタ４３は、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔをリセットする。サンプル周期カウンタ４３は、サンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌをアサートしたときにシステム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがアサートされているか否かを検出し、システム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがアサートされているときには、解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅをアサートし続ける。従って、システム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがアサートされている間、サンプル周期カウンタ４３は、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔをサンプルカウントの設定値ｓｅｔ＿ｓｍｐｔｉｍまでカウントアップした後、サンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌを１クロックサイクル分アサートし、また、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔをリセットするという処理を繰り返すことになる。
サンプル周期カウンタ４３は、システム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがネゲートされた後も、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔがサンプルカウントの設定値ｓｅｔ＿ｓｍｐｔｉｍに達するまで、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔのカウントアップを続ける。サンプル周期カウンタ４３は、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔがサンプルカウントの設定値ｓｅｔ＿ｓｍｐｔｉｍに達したことを検出したとき、サンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌを１クロックサイクル分アサートする。また、サンプル周期カウンタ４３は、サンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌをアサートしたときにシステム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがアサートされているか否かを検出し、システム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがネゲートされている場合には、解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅをネゲートする。さらに、サンプル周期カウンタ４３は、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔをリセットする。サンプル周期カウンタ４３は、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔが０のときに、システム・イネーブル信号ｓｅｔ＿ｉｐ＿ｅｎａがネゲートされている場合には、サンプルカウンタのカウント値ｍａｉｎ＿ｔｉｍ＿ｃｏｕｎｔの新たなカウントアップを開始しない。このようにして、サンプル周期カウンタ４３は、サンプル周期を生成する。
【００３６】
図８は、マスターポート解析部４１が書き込み信号を検出した回数をカウントする際のタイムチャートの一例である。マスターポート解析部４１ｘ内のマスターポートコマンド解析部５１は、マスターポート１４１ｘの制御信号を検出し、検出信号が書き込み信号であるかを解析するための解析条件に基づいて検出信号を解析する。マスターポートコマンド解析部５１は、当該解析条件が真のとき、当該解析条件のカウンタイネーブルｃｏｕｎｔ＿ｅｎａ（図８では図示略）をアサートする。しかし、マスターポートコマンドカウント部５２に供給される解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅがアサートされていないとき、マスターポートコマンドカウント部５２は解析条件に一致した回数のカウントを行わない。
一方、マスターポートコマンドカウント部５２に供給される解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅがアサートされると、マスターポートコマンドカウント部５２のカウンタ５３は、カウンタイネーブルｃｏｕｎｔ＿ｅｎａがアサートされたことに応答して、カウント値ｄｃｏｕｎｔ［２３：０］をカウントアップする。その後、マスターポートコマンドカウント部５２に供給されるサンプル周期信号ｃｏｕｎｔ＿ｆｕｌｌがアサートされると、これに応答して、カウンタ５３のカウント値ｄｃｏｕｎｔ［２３：０］が、ラッチ５４に渡される。カウンタ５３は、カウント値ｄｃｏｕｎｔ［２３：０］をラッチ５４に渡した後、カウント値ｄｃｏｕｎｔ［２３：０］をリセットする。ラッチ５４は、カウンタ５３から渡されたカウント値ｄｃｏｕｎｔ［２３：０］の値を、解析データｄｃｏｕｎｔ＿ｌｃｈ［２３：０］としてラッチする。こうして、解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅがアサートされている間、マスターポートコマンドカウント部５２は、サンプル周期ごとに、解析条件に一致した回数をカウントし、解析データｄｃｏｕｎｔ＿ｌｃｈ［２３：０］としてラッチ５４にラッチされる。図８においては、あるサンプル周期において、カウント値「１６」がラッチ５４にラッチされた例が示されている。マスターポートコマンドカウント部５２のカウンタ５３は、解析イネーブル信号ａｎａｌｙｚｅ＿ｅｎａｂｌｅがネゲートされると、カウント値ｄｃｏｕｎｔ［２３：０］をクリアする。
【００３７】
図９は、マスターポート解析部４１が読み込み信号を検出した回数をカウントする際のタイムチャートの一例である。この動作は、図８に示したものと基本的に同様である。図９においては、あるサンプル周期において、カウント値「５」がラッチ５４にラッチされた例が示されている。
【００３８】
図１０は、外部機器２０において出力されるメインモニタ画面の一例である。外部機器２０は、ディスプレイに出力されるメインモニタ画面を介して、検証モジュール１６に対して、半導体デバイス１０の内部バス１４のモニタの開始、停止、システム環境設定等の制御を行う。内部バス１４のモニタ実行時に、外部機器２０は、検証モジュール１６の通信インターフェイス１６３経由でのレジスタリード／ライトアクセスにより、検証モジュール１６の制御と生成された解析データの取得を行う。そして、外部機器２０は、取得した解析データに基づいて半導体デバイス１０の内部状態を分析し、後述する各モニタ項目についてチャート（グラフ）やテキスト描画等の表示を制御し、また、ログファイルへの出力を制御する。
【００３９】
本実施形態では、外部機器２０は、サンプル周期ごとに、各マスターポート１４１のそれぞれから生成された３５種類のカウント値と各スレーブポート１４２のそれぞれから生成された９種類のカウント値とを含む解析データ受信し、解析データを分析することによって、各マスター１２１の使用率や各スレーブ１２２の使用率など、図１０−１２に例示する各モニタ項目の値を算出する。例えば、マスター１２１ａの使用率は、マスター１２１ａの転送タイプがＳＥＱＵＥＮＴＩＡＬであった回数をカウントしたカウント値とマスター１２１ａの転送タイプがＮＯＮＳＥＱＵＥＮＴＩＡＬであった回数をカウントしたカウント値の和を、１サンプル周期の総サイクル数、すなわち、サンプルカウントの設定値ｓｅｔ＿ｓｍｐｔｉｍで割ることにより、算出される。
【００４０】
本実施形態において、領域１０１は測定の設定を行うためのＧＵＩである。ユーザはこの領域１０１で、データを測定するサンプリング周波数、バスクロックＨＣＬＫの周波数、マスター１２１の数、スレーブ１２２の数及びスレーブアドレスマップを設定することができる。領域１０２は測定の制御を行うためのＧＵＩである。ユーザはこの領域１０２で、測定の開始または停止及びモニタ表示のクリアを制御することができる。領域１０３は接続制御を行うためのＧＵＩである。ユーザはこの領域１０３で、検証モジュール１６との接続や切断を制御することができる。領域１０４は各マスター１２１の使用率をチャート形式で表示するためのＧＵＩである。ユーザが任意のマスター１２１を選択（チェック）することにより、選択されているマスター１２１について、使用率を折れ線型チャートで表示する。領域１０５は各スレーブ１２２の使用率をチャート形式で表示するためのＧＵＩである。ユーザが任意のスレーブ１２２を選択（チェック）することにより、選択されているスレーブ１２２について、使用率を折れ線型チャートで表示する。領域１０６、各マスター１２１別に、内部状態をより詳細に分析した結果を表示するためのマスターモニタ画面を呼び出すためのＧＵＩである。領域１０７は、各スレーブ１２２別に、内部状態をより詳細に分析した結果を表示するためのスレーブモニタ画面を呼び出すためのＧＵＩである。
【００４１】
図１１は、外部機器２０において出力されるマスターモニタ画面の一例である。このマスターモニタ画面では、各マスター１２１別に各項目のチャートが描画される。同図においては、上から、スレーブ使用率、転送タイプ率、バースト転送率、ライト／リード率、転送サイズ率、保護制御率及びロック転送率のチャートが表示されている。各項目はそれぞれ、折れ線型の時系列表示と、ドーナツ型の統計表示を含んでいる。
【００４２】
図１２は、外部機器２０において出力されるスレーブモニタ画面の一例である。このスレーブモニタ画面では、各スレーブ１２２別に各項目のチャートが描画される。同図においては、上から、ライト／リード率、転送応答率、総ウェイトサイクル数、最大ライトウェイトサイクル数及び最大リードウェイトサイクル数のチャートが表示されている。各項目はそれぞれ、折れ線型の時系列表示を含んでいる。また、ライト／リード率と転送応答率については、ドーナツ型の統計表示を含んでいる。
【００４３】
以上のとおり、本実施形態では、半導体デバイス１０の内部に組み込まれた検証モジュール１６が、マスターポート１４１及びスレーブポート１４２に供給される信号を検出し、検出された信号に基づいて、内部バス１４の通信量に関する解析データを所定のサンプル周期ごとに生成する。外部機器２０は、検証モジュール１６から取得したサンプル周期ごとの解析データを分析することによって、各マスター１２１の使用率など、半導体デバイス１０の内部状態に関する種々のデータを算出し、表示することができる。このように、検証モジュール１６は、マスターポート１４１及びスレーブポート１４２から検出した信号のデータをそのまま外部機器２０に出力するのではなく、任意のサンプリング周期ごとに、例えば、所定の解析条件に合致したカウント値などの形にまとめた解析データを生成することにより、半導体デバイス１０の検証に必要なデータを効率よく収集するとともに、効率よく外部機器２０に出力することを可能としている。これにより、検証モジュール１６と外部機器２０との間の通信速度にかかわらず、半導体デバイス１０の内部状態のリアルタイムでのモニタリング及び分析を実現している。
【００４４】
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。また、各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。例えば、本実施形態では、８個のマスター１２１と８個のスレーブ１２２が内部バス１４に接続される構成を例示したが、内部バス１４に接続されるマスター１２１及びスレーブ１２２の数は、それぞれ任意の数により構成可能である。また、本実施形態では、検証モジュール１６が８個のマスターポート１４１と８個のスレーブポート１４２の信号を検出する構成を例示したが、信号を検出するポートは任意に設定可能である。さらに、本実施形態では、検証モジュール１６は、マスターポート１４１のそれぞれから３５種類の解析データを生成し、スレーブポート１４２のそれぞれから９種類の解析データを生成する構成を例示したが、検証モジュール１６で解析する解析データの数及び種類は、本実施形態に例示したものに限定されず、様々な解析条件を設定することにより、様々な解析データを生成することが可能である。また、外部機器２０において分析される項目は、本実施形態に例示したものに限定されず、様々な項目を分析するように構成可能である。
【符号の説明】
【００４５】
１０  半導体デバイス、１２  モジュール、１４  内部バス、１６  検証モジュール、１８  通信ポート、２０  外部機器、３０  外部インターフェイス、４１  マスターポート解析部、４２  スレーブポート解析部、４３  サンプル周期カウンタ、５１  マスターポートコマンド解析部、５２  マスターポートコマンドカウント部、５３  カウンタ、５４  ラッチ、５４  各ラッチ、６１  スレーブポートコマンド解析部、６２  スレーブポートコマンドカウント部、６３  カウンタ、６４  ラッチ、１００  検証システム、１２１  マスター、１２２  スレーブ、１４１  マスターポート、１４２  スレーブポート、１６１  検出部、１６２  制御部、１６３  通信インターフェイス、１６４  検証用マスター、１６５  検証用スレーブ
【図２】
2012181603.tif 000003
【図３】
2012181603.tif 000004
【図４】
2012181603.tif 000005
【図５】
2012181603.tif 000006
【図６】
2012181603.tif 000007
【図７】
2012181603.tif 000008
【図８】
2012181603.tif 000009
【図９】
2012181603.tif 000010
【図１】
2012181603.tif 000011
【図１０】
2012181603.tif 000012
【図１１】
2012181603.tif 000013
【図１２】
2012181603.tif 000014