説明

検証機能を有する半導体デバイス

【課題】内部バスの検証モジュールを有する半導体デバイスを提供する。
【解決手段】内部バスと、第1の接続点において前記バスに接続されたマスターと、第2の接続点において前記内部バスに接続され、前記マスターと通信可能に設けられたスレーブと、検証モジュールとを備えた半導体デバイス。前記検証モジュールは、前記マスターが前記スレーブに供給した制御信号を検出し、当該検出信号に基づいて、前記内部バスの通信量に関するデータを生成する。前記制御信号は、前記マスターが前記スレーブを制御するための信号であって、例えば、書き込み信号、読み出し信号、バースト信号等を含む。前記検証モジュールは、各制御信号がアサートされた回数に基づいて、前記内部バスの通信量に関するデータを生成してもよい。前記検証モジュールは、前記内部バスに接続された検証用マスター及び検証用スレーブをさらに有してもよい。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体デバイスの検証技術に関する。
【背景技術】
【0002】
従来、デジタルLSI等の半導体デバイスの検証を行うための手法として、専用のシミュレーションソフトウェアでの検証や計測器を使用しての検証が知られている(例えば、特許文献1参照)。前者は、性能を検証するために専用のシミュレーションソフトウェアをデザインのたびに開発して仮想的な環境を構築し、その環境の中で性能実験を行う手法である。後者は、チップ内部の観測ポイントに導線を接続して外部に信号を排出し、ロジックアナライザーやオシロスコープのような計測器を使用してチップ内部の信号を直接観測して性能確認を行う手法である。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−283102号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、シミュレーションソフトウェアでの検証においては、CPUがより高性能化、高機能化していくにつれて、実行時間が膨大になるため、シミュレーションソフトウェアでの検証を利用することは現実的ではない。例えば、シミュレーションソフトウェアを使用して5秒の画像を流す場合、一般に結果が出るまでに24時間程度、1分間の画像であれば約12日、1時間の画像であれば約720日かかると言われている。今後、デジタル機器が性能を向上させるにつれて、検証のためにさらに複雑なソフトウェアが必要になるため、シミュレーションソフトウェアでの検証は、現実的には使用不可能になることが予想される。
【0005】
また、計測器を使用しての検証においては、半導体デバイス本体のプロセス(トランジスタの大きさを示すもの)微細化がより進むと、計測器のように導線を接続し外部に信号を排出する方法では、チップコアの電圧低下のため計測することが困難であったり、外に信号を排出することすら不可能になったりしてしまうという問題が指摘されている。半導体デバイスは年々技術が進化しており、現在のプロセスの主流は45nm(ナノメートル)、2011年には32nm、2012年には28nmが量産段階に入る見込みであるが、現在の計測器の限界は30nmと言われており、製造プロセスが30nmより微細化されると計測器を用いた波形の計測は不可能になると考えられる。
【0006】
このように、シミュレーションソフトウェアや計測器を使用した従来の検証手法では、近い将来、最先端の半導体デバイスの検証ができなくなるおそれがある。
【0007】
本発明は、斯かる実情に鑑み、半導体デバイスの検証を行うために、内部バスの検証モジュールを有する半導体デバイスを提供しようとするものである。
【課題を解決するための手段】
【0008】
本発明の一態様による半導体デバイスは、内部バスの信号を観測するための検証モジュールをチップ内部に備える。すなわち、半導体デバイスは、内部バスと、第1の接続点において内部バスに接続されたマスターと、第2の接続点において内部バスに接続され、マスターと通信可能に設けられたスレーブと、マスターがスレーブを制御するために出力した制御信号を、第1の接続点及び第2の接続点の少なくとも一方において検出する検証モジュールと、を備えるものである。好適には、検証モジュールは、所定の制御信号がアサートされた回数を検出するカウンタを含む。また好適には、検証モジュールは、検出されたデータを外部機器に出力するための通信インターフェイスを含む。そして、検証モジュールにより検出されたデータは、内部バスの通信に関するデータを分析するために利用される。
【0009】
また、本発明の一態様による検証システムは、上述の半導体デバイスと、外部インターフェイスを介して検証モジュールから受信した検出データに基づいて、内部バスの通信に関するデータを生成する外部機器と、を備える。好適には、通信に関するデータとして、スレーブ使用率、転送タイプ率、バースト転送率、ライト/リード率、転送サイズ率、保護制御率、ロック転送率、転送応答率、総ウェイトサイクル数、最大ライトウェイトサイクル数又は最大リードウェイトサイクル数のいずれかを含む。また、本発明の一態様による外部機器は上述の半導体デバイスに含まれる検証モジュールと通信可能に設けられていて、検証モジュールにより検出されたデータに基づいて、内部バスの通信に関するデータを分析し、分析した結果を出力するディスプレイを備える。
【0010】
さらに、本発明の一態様による検証モジュールは、内部バスに接続されたマスターが内部バスに接続されたスレーブを制御するために出力した制御信号を、マスターと内部バスとの接続点及びスレーブと内部バスとの接続点の少なくとも一方において検出する検出部を備える。そして、この検証モジュールが半導体デバイスの内部に組み込まれたものであることを特徴とする。
【0011】
また、本発明の一態様による半導体デバイスの内部状態を検証する方法は、半導体デバイスの内部に組み込まれた検証モジュールが、内部バスに接続されたマスターが内部バスに接続されたスレーブを制御するために出力した制御信号を、マスターと内部バスとの接続点及びスレーブと内部バスとの接続点の少なくとも一方において検出するステップと、検証モジュールが、検出された制御信号に基づいて生成された解析データを外部機器に出力するステップと、外部機器が、検証モジュールから受信した検出データに基づいて、内部バスの通信に関するデータを分析するステップと、を備える。
【発明の効果】
【0012】
本発明によれば、内部バスの信号を観測するための検証モジュールをチップ内部に備えることにより、チップの内部状態をリアルタイムでモニタリング及び解析することができるという優れた効果を奏する。
【図面の簡単な説明】
【0013】
【図1】本発明の一実施形態による検証システム100の全体構成を示す概略図である。
【図2】本実施形態における半導体デバイス10の内部構成を示す概略図である。
【図3】本実施形態における内部バス14と検証モジュール16の機能構成を示すブロック図である。
【図4】本実施形態における検出部161の構成を示すブロック図である。
【図5】本実施形態におけるマスターポート解析部41の構成を示すブロック図である。
【図6】本実施形態におけるスレーブポート解析部42の構成を示すブロック図である。
【図7】サンプル周期カウンタ43においてサンプル周期を生成する際のタイムチャートの一例である。
【図8】マスターポート解析部41が書き込み信号を検出した回数をカウントする際のタイムチャートの一例である。
【図9】マスターポート解析部41が読み込み信号を検出した回数をカウントする際のタイムチャートの一例である。
【図10】外部機器20において出力されるメインモニタ画面の一例である。
【図11】外部機器20において出力されるマスターモニタ画面の一例である。
【図12】外部機器20において出力されるスレーブモニタ画面の一例である。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。
【0015】
図1は、本発明の一実施形態による検証システム100の全体構成を示す概略図である。同図に示すように、検証システム100は、テスト用ボードに搭載された検証対象の半導体デバイス10と、半導体デバイス10の内部状態をモニタリング及び分析するためGUIとして機能する外部機器20とを含み、これらが、外部インターフェイス30を介して互いに通信可能に接続される。
【0016】
図2は、本発明の一実施形態による半導体デバイス10の内部構成を示す概略図である。同図に示すように、半導体デバイス10は、検証対象となる内部システムを構成する、例えばARM等のプロセッサコア、USB、メモリ、その他の各種モジュール12が内部バス14に接続されている。本実施形態においては、半導体デバイス10は、さらに、内部バス14に接続され、内部バス14を伝搬する信号を観測するための検証モジュール16を備える。内部バス14は、半導体デバイス10内部のオンチップバスであり、本実施形態では内部バス14としてAHB(商標)(アドバンスドハイパフォーマンスバス)を用いる例を示すが、内部バス14はAHBに限定されるものではなく、AXI(商標)やその他の任意の仕様のバスを利用可能である。
【0017】
図3は、本実施形態における内部バス14と検証モジュール16の機能構成を示すブロック図である。本実施形態では、同図に示すように、8個のマスター121a〜hがそれぞれ所定の接続点においてマスターポート141a〜hを介して内部バス14に接続されている(マスター121a〜hを個々に区別する必要性がないときは、これらを「マスター121」と総称する。「マスターポート141」並びに後述する「スレーブ122」、「スレーブポート142」、「マスターポート解析部41」及び「スレーブポート解析部42」についても同様である。)。また、8個のスレーブ122a〜hがそれぞれ所定の接続点においてスレーブポート142a〜hを介して内部バス14に接続され、任意のマスター121と通信可能に設けられている。
【0018】
検証モジュール16は、検出部161と、制御部162と、通信インターフェイス163と、検証用マスター164と、検証用スレーブ165とを含んで構成される。
【0019】
検出部161は、マスターポート141に接続され、マスターポート141において、マスター121がスレーブ122に出力した制御信号を検出する。また、検出部161は、スレーブポート142に接続され、スレーブポート142においてスレーブ122に供給される制御信号やスレーブ122からマスター121に供給される応答信号を検出する。検出部161は、これら検出された信号に基づいて、内部バス14の通信量に関する解析データを生成する。
【0020】
通信インターフェイス163は、制御部162を介して検出部161から受信した解析データを、外部機器20と通信可能な形式に変換し、通信ポート18に接続された外部インターフェイス30を介して外部機器20に出力する。本実施形態において、通信インターフェイス163は、一例として、RS−232C規格に準拠したUARTインターフェイスであり、そのシリアルポートにおいて外部機器20とシリアル通信を行う。通信インターフェイス163は、他の例として、JTAGインターフェイスでもよく、TAPコントローラを介して外部機器20と通信を行うようにしてもよい。
【0021】
制御部162は、検出部161が生成した解析データを収集し、通信インターフェイス163に渡す。また、制御部162は、通信インターフェイス163を介して外部機器20から受信したデータに基づいて、検出部161、検証用マスター164及び検証用スレーブ165の動作を制御する。検証用マスター164は、制御部162からの制御に従って、擬似的な制御信号を供給する擬似的なマスターである。検証用スレーブ165は、制御部162からの制御に従って、制御信号又は当該擬似的な制御信号に基づいて動作する擬似的なスレーブである。検証用マスター164及び検証用スレーブ165を内部バス14に接続し、検証用マスター164から検証用スレーブ165に擬似的な制御信号を供給して検証用スレーブ165を動作させることにより、内部バス14を伝搬する信号量を仮想的に増加させて、内部バス14に対して過負荷テストなどの仮想テストを行うことが可能になる。例えば、検証用スレーブ165から内部バス14に流すデータ量を意図的に制御することによって、内部バス14に流すことができるデータ量を確認するテストなどを行うことが可能になる。これにより、開発初期段階で半導体デバイス10の性能を可視化し、内部バス14において転送速度が低下する原因がどこにあるのか、半導体デバイス10において消費電力が大きくなっている原因がどこにあるのかといったことを特定することができる。これにより、内部バス14における転送速度を向上することが可能になる。
【0022】
なお、仮想テストが不要な場合には、制御部162と、検証用マスター164と、検証用スレーブ165を設けなくともよい。すなわち、仮想テストが不要な場合には、これらの構成を省略して、検出部161と通信インターフェイス163によって検証モジュール16を構成することができる。
【0023】
また、バスクロックHCLKと、リセット信号HRESETnが、半導体デバイス10の内部、すなわち、モジュール12、内部バス14及び検証モジュール16に供給される。バスクロックHCLKはバス転送のタイミングをとるために用いられる。信号タイミングはバスクロックHCLKの立ち上がりエッジによって決まる。リセット信号HRESETnは、モジュール12、内部バス14及び検証モジュール16のリセットに使用される。
【0024】
図4−6は、検出部161のより詳細な構成を示すブロック図である。詳細は後述するが、検出部161は、マスターポート141及びスレーブポート142の信号を検出して、所定の解析条件に従って当該検出信号を解析し、個々のマスターポート141及び個々のスレーブポート142ごとに、内部バス14の通信量に関する解析データを生成する。本実施形態においては、所定のサンプル周期内において解析条件に一致する制御信号がアサートされた回数に基づいて、解析データを生成する。生成された解析データは、制御部162を介して通信インターフェイス163に渡される。外部機器20は、外部インターフェイスを介して検証モジュール16から解析データを受信すると、解析データに基づいて、半導体デバイス10の内部状態を分析する。
【0025】
図4は、本実施形態における検出部161の構成を示すブロック図である。同図に示すように、検出部161は、各マスターポート141a〜hからそれぞれ信号を受信するマスターポート解析部41a〜hと、各スレーブポート142a〜hからそれぞれ信号を受信するスレーブポート解析部42a〜hと、各マスターポート解析部41及び各スレーブポート解析部42に解析イネーブル信号analyze_enableとサンプル周期信号count_fullを供給するサンプル周期カウンタ43と、を備える。
【0026】
マスターポート解析部41及びスレーブポート解析部42の詳細構成は後述するが、それぞれ所定のマスターポート141及び所定のスレーブポート142に接続されている。本実施形態においては、解析イネーブル信号analyze_enableがアサートされている間、マスターポート解析部41及びスレーブポート解析部42はそれぞれ、マスターポート141及びスレーブポート142に供給される信号を検出する。この間、マスターポート解析部41及びスレーブポート解析部42は、ユーザ等により設定された任意のサンプル周期ごとに解析データを生成して出力する。すなわち、マスターポート解析部41及びスレーブポート解析部42は、マスターポート141及びスレーブポート142に供給される信号を検出して、検出された信号が所定の解析条件に一致する場合にはカウンタイネーブルcount_enaをアサートし、解析条件ごとにカウンタイネーブルcount_enaがアサートされた回数をカウントする。カウントはサンプル周期ごとに行われ、サンプル周期ごとに当該サンプル周期においてカウントされたカウント値が出力される。本実施形態では、マスターポート解析部41において、35種類の解析条件のそれぞれについて、カウント値が、32ビットのデータとして出力される。また、スレーブポート解析部42において、9種類の解析条件のそれぞれについて、カウント値が、32ビットのデータとして出力される。
【0027】
本実施形態では、内部バス14はAHB仕様のバスであり、マスターポート解析部41は、AHB仕様のバスで利用される以下の制御信号をモニタする。アドレス信号HADDR[31:0]、書き込み信号としての書き込みデータ信号HWDATA[31:0]、読込み信号としての読み込みデータ信号HRDATA[31:0]、転送タイプ信号HTRANS[1:0]、転送サイズ信号HSIZE[2:0]、バーストの種類を示すバースト信号HBURST[2:0]、保護制御信号HPROT[3:0]、ロックされた転送を示すロック動作信号HLOCK、転送方向信号HWRITE、転送応答信号HRESP[1:0]、転送完(I)信号HREADYI。また、スレーブポート解析部42は、以下の制御信号又はスレーブ122からマスター121への応答信号をモニタする。転送タイプ信号HTRANS[1]、転送方向信号HWRITE、転送応答信号HRESP[1:0]、転送完(I)信号HREADYI、転送完(O)信号HREADYO。なお、本明細書において「[N−1:0]」は、Nビットのデータであることを示す。AHB仕様のバスで用いられる信号の詳細については、ARM社が提供する「AMBATM仕様書(Rev2.0)」に基づくものである。
【0028】
サンプル周期カウンタ43は、設定されたサンプルカウントまでカウントアップすることを繰り返すことによってサンプル周期を計測するカウンタである。また、サンプル周期カウンタ43は、このサンプル周期に同期し、サンプル周期が到来するたびにアサートされるサンプル周期信号count_fullを生成し、マスターポート解析部41及びスレーブポート解析部42に供給する。これにより、マスターポート解析部41及びスレーブポート解析部42において、サンプル周期ごとに解析データを生成することが可能になる。
【0029】
図5は、本実施形態におけるマスターポート解析部41の構成を示すブロック図である。同図に示すように、マスターポート解析部41は、マスターポート141の制御信号を検出するマスターポートコマンド解析部51と、検出された制御信号に基づいて、解析データを生成する複数のマスターポートコマンドカウント部52と、を備える。
【0030】
本実施形態において、マスターポートコマンド解析部51には、予め定められた種々の解析条件が格納されている。マスターポートコマンド解析部51は、マスターポート141の制御信号を検出し、検出した制御信号を解析条件に従って解析する。解析条件としては、例えば、監視しているマスターポート141x(xはa〜hのいずれか)に接続されているマスター121xからスレーブ122aに制御信号が供給された場合に真となる条件、マスター121xからスレーブ122bに制御信号が供給された場合に真となる条件、マスター121xの転送タイプがSEQUENTIALの場合に真となる条件、マスター121xの転送タイプがIDLEの場合に真となる条件、などがある。本実施形態では、マスターポートコマンド解析部51には、35個の解析条件が格納されており、マスター121xからどのスレーブ122y(yはa〜hのいずれか)に制御信号が供給されたか、マスターxの制御信号の転送タイプ、転送サイズ、バースト動作、ロック動作、転送方向及び保護制御を解析する。マスターポートコマンド解析部51は、解析条件ごとにカウンタイネーブルcount_enaを生成しており、ある解析条件が真のとき、当該解析条件のカウンタイネーブルcount_enaをアサートする。
【0031】
マスターポートコマンドカウント部52はそれぞれ、カウンタ53とラッチ54を備える。マスターポートコマンドカウント部52は、それぞれ、1つの解析条件に対応して設けられている。本実施形態では、マスターポートコマンド解析部51には35個の解析条件が格納されており、マスターポート解析部41は、これに対応して35個のマスターポートコマンドカウント部52を備えている。1つのマスターポートコマンドカウント部52には、対応する1つの解析条件に関するカウンタイネーブルcount_enaがマスターポートコマンド解析部51から供給される。各マスターポートコマンドカウント部52内のカウンタ53は、カウンタイネーブルcount_enaがアサートされた回数を検出しており、バスクロックHCLKの周期ごとにマスターポートコマンド解析部51から供給されるカウンタイネーブルcount_enaを見て、それがアサートされている場合には、そのカウント値をカウントアップする。こうして、各カウンタ53は、それぞれ対応する解析条件が真であった回数をサンプル周期ごとにカウントする。例えば、本実施形態では、あるカウンタ53は、マスター121xからスレーブ122aに制御信号が転送された回数をカウントし、別のカウンタ53は、マスター121xからスレーブ122bに制御信号が転送された回数をカウントし、さらにまた別のカウンタ53は、マスター121xの転送タイプがSEQUENTIALであった回数をカウントするといった具合である。本実施形態では、カウンタ53は、各制御信号の状態又はそれらの組み合わせが上述の35個の解析条件のそれぞれに一致した回数をカウントする。そして、カウンタ53は、サンプル周期信号count_fullがアサートされたとき、そのカウント値をラッチ54に渡し、当該カウンタ53のカウント値をリセットするとともに、新たなカウントを開始する。各ラッチ54に保持された合計35個のカウント値は、解析データとして制御部162に出力される。
【0032】
図6は、本発明の一実施形態によるスレーブポート解析部42の構成を示すブロック図である。スレーブポート解析部42は、スレーブポート142において、マスター121からスレーブ122に供給される制御信号やスレーブ122からマスター121への応答信号をモニタすることを除いて、構成及び処理内容はマスターポート解析部41と同様である。同図に示すように、スレーブポート解析部42は、スレーブポート142の制御信号及び応答信号を検出するスレーブポートコマンド解析部61と、検出された信号に基づいて、解析データを生成する複数のスレーブポートコマンドカウント部62と、を備える。
【0033】
本実施形態において、スレーブポートコマンド解析部61には、予め定められた種々の解析条件が格納されている。スレーブポートコマンド解析部61は、スレーブポート142の制御信号及び応答信号を検出し、検出した信号を解析条件に従って解析する。解析条件としては、例えば、監視しているスレーブポート142yに接続されているスレーブ122yの転送方向がWRITE転送の場合に真となる条件、スレーブ122yの転送方向がREAD転送の場合に真となる条件、スレーブ122yの転送応答がOKAYの場合に真となる条件、などがある。本実施形態では、スレーブポートコマンド解析部61には、9個の解析条件が格納されており、スレーブ122yの転送方向、転送応答、ウェイト率及び最大ウェイトサイクル数を解析する。スレーブポートコマンド解析部61は、解析条件ごとにカウンタイネーブルcount_enaを生成しており、ある解析条件が真のとき、当該解析条件ごとのカウンタイネーブルcount_enaをアサートする。
【0034】
スレーブポートコマンドカウント部62はそれぞれ、カウンタ63とラッチ64を備える。スレーブポートコマンドカウント部62は、それぞれ1つの解析条件に対応して設けられている。本実施形態では、スレーブポートコマンド解析部61には9個の解析条件が格納されており、スレーブポート解析部42は、これに対応して9個のスレーブポートコマンドカウント部62を備えている。1つのスレーブポートコマンドカウント部62には、対応する1つの解析条件に関するカウンタイネーブルcount_enaがスレーブポートコマンド解析部61から供給される。各スレーブポートコマンドカウント部62内のカウンタ63は、カウンタイネーブルcount_enaがアサートされた回数を検出しており、バスクロックHCLKの周期ごとにスレーブポートコマンド解析部61から供給されるカウンタイネーブルcount_enaを見て、それがアサートされている場合には、そのカウント値をカウントアップする。こうして、各カウンタ63は、それぞれ対応する解析条件が真であった回数をサンプル周期ごとにカウントする。例えば、本実施形態では、あるカウンタ63は、スレーブ122yの転送方向がWRITE転送であった回数をカウントし、別のカウンタ63は、スレーブ122yの転送応答がOKAYであった回数をカウントする。本実施形態では、カウンタ63は、各制御信号や応答信号の状態又はそれらの組み合わせが上述の9個の解析条件のそれぞれに一致した回数をカウントする。そして、カウンタ63は、サンプル周期信号count_fullがアサートされたとき、そのカウント値をラッチ64に渡し、当該カウンタ63のカウント値をリセットするとともに、新たなカウントを開始する。各ラッチ64に保持された合計9個のカウント値は、解析データとして制御部162に出力される。
【0035】
図7は、サンプル周期カウンタ43においてサンプル周期を生成する際のタイムチャートの一例である。サンプル周期カウンタ43は、その内部に設けられたサンプルカウンタのカウント値main_tim_countの値が0のときに、サンプル周期カウンタ43に供給されるシステム・イネーブル信号set_ip_enaがアサートされることに応答して、サンプルカウンタのカウント値main_tim_countのカウントアップを開始する。サンプル周期カウンタ43は、サンプルカウンタのカウント値main_tim_countがサンプルカウントの設定値set_smptimに達したことを検出したとき、サンプル周期信号count_fullを1クロックサイクル分アサートする。同時に、サンプル周期カウンタ35は、解析イネーブル信号analyze_enableをアサートする。また、サンプル周期カウンタ43は、サンプルカウンタのカウント値main_tim_countをリセットする。サンプル周期カウンタ43は、サンプル周期信号count_fullをアサートしたときにシステム・イネーブル信号set_ip_enaがアサートされているか否かを検出し、システム・イネーブル信号set_ip_enaがアサートされている場合には、解析イネーブル信号analyze_enableをアサートし続ける。
サンプルカウンタのカウント値main_tim_countがリセットされた後、サンプル周期カウンタ43は、システム・イネーブル信号set_ip_enaがアサートされているか否かを判別する。そして、システム・イネーブル信号set_ip_enaがアサートされ、かつ、サンプルカウンタのカウント値main_tim_countが0のとき、サンプル周期カウンタ43は、サンプルカウンタのカウント値main_tim_countのカウントアップを新たに開始する。サンプル周期カウンタ43は、サンプルカウンタのカウント値main_tim_countがサンプルカウントの設定値set_smptimに達したことを検出したとき、サンプル周期信号count_fullを1クロックサイクル分アサートする。また、サンプル周期カウンタ43は、サンプルカウンタのカウント値main_tim_countをリセットする。サンプル周期カウンタ43は、サンプル周期信号count_fullをアサートしたときにシステム・イネーブル信号set_ip_enaがアサートされているか否かを検出し、システム・イネーブル信号set_ip_enaがアサートされているときには、解析イネーブル信号analyze_enableをアサートし続ける。従って、システム・イネーブル信号set_ip_enaがアサートされている間、サンプル周期カウンタ43は、サンプルカウンタのカウント値main_tim_countをサンプルカウントの設定値set_smptimまでカウントアップした後、サンプル周期信号count_fullを1クロックサイクル分アサートし、また、サンプルカウンタのカウント値main_tim_countをリセットするという処理を繰り返すことになる。
サンプル周期カウンタ43は、システム・イネーブル信号set_ip_enaがネゲートされた後も、サンプルカウンタのカウント値main_tim_countがサンプルカウントの設定値set_smptimに達するまで、サンプルカウンタのカウント値main_tim_countのカウントアップを続ける。サンプル周期カウンタ43は、サンプルカウンタのカウント値main_tim_countがサンプルカウントの設定値set_smptimに達したことを検出したとき、サンプル周期信号count_fullを1クロックサイクル分アサートする。また、サンプル周期カウンタ43は、サンプル周期信号count_fullをアサートしたときにシステム・イネーブル信号set_ip_enaがアサートされているか否かを検出し、システム・イネーブル信号set_ip_enaがネゲートされている場合には、解析イネーブル信号analyze_enableをネゲートする。さらに、サンプル周期カウンタ43は、サンプルカウンタのカウント値main_tim_countをリセットする。サンプル周期カウンタ43は、サンプルカウンタのカウント値main_tim_countが0のときに、システム・イネーブル信号set_ip_enaがネゲートされている場合には、サンプルカウンタのカウント値main_tim_countの新たなカウントアップを開始しない。このようにして、サンプル周期カウンタ43は、サンプル周期を生成する。
【0036】
図8は、マスターポート解析部41が書き込み信号を検出した回数をカウントする際のタイムチャートの一例である。マスターポート解析部41x内のマスターポートコマンド解析部51は、マスターポート141xの制御信号を検出し、検出信号が書き込み信号であるかを解析するための解析条件に基づいて検出信号を解析する。マスターポートコマンド解析部51は、当該解析条件が真のとき、当該解析条件のカウンタイネーブルcount_ena(図8では図示略)をアサートする。しかし、マスターポートコマンドカウント部52に供給される解析イネーブル信号analyze_enableがアサートされていないとき、マスターポートコマンドカウント部52は解析条件に一致した回数のカウントを行わない。
一方、マスターポートコマンドカウント部52に供給される解析イネーブル信号analyze_enableがアサートされると、マスターポートコマンドカウント部52のカウンタ53は、カウンタイネーブルcount_enaがアサートされたことに応答して、カウント値dcount[23:0]をカウントアップする。その後、マスターポートコマンドカウント部52に供給されるサンプル周期信号count_fullがアサートされると、これに応答して、カウンタ53のカウント値dcount[23:0]が、ラッチ54に渡される。カウンタ53は、カウント値dcount[23:0]をラッチ54に渡した後、カウント値dcount[23:0]をリセットする。ラッチ54は、カウンタ53から渡されたカウント値dcount[23:0]の値を、解析データdcount_lch[23:0]としてラッチする。こうして、解析イネーブル信号analyze_enableがアサートされている間、マスターポートコマンドカウント部52は、サンプル周期ごとに、解析条件に一致した回数をカウントし、解析データdcount_lch[23:0]としてラッチ54にラッチされる。図8においては、あるサンプル周期において、カウント値「16」がラッチ54にラッチされた例が示されている。マスターポートコマンドカウント部52のカウンタ53は、解析イネーブル信号analyze_enableがネゲートされると、カウント値dcount[23:0]をクリアする。
【0037】
図9は、マスターポート解析部41が読み込み信号を検出した回数をカウントする際のタイムチャートの一例である。この動作は、図8に示したものと基本的に同様である。図9においては、あるサンプル周期において、カウント値「5」がラッチ54にラッチされた例が示されている。
【0038】
図10は、外部機器20において出力されるメインモニタ画面の一例である。外部機器20は、ディスプレイに出力されるメインモニタ画面を介して、検証モジュール16に対して、半導体デバイス10の内部バス14のモニタの開始、停止、システム環境設定等の制御を行う。内部バス14のモニタ実行時に、外部機器20は、検証モジュール16の通信インターフェイス163経由でのレジスタリード/ライトアクセスにより、検証モジュール16の制御と生成された解析データの取得を行う。そして、外部機器20は、取得した解析データに基づいて半導体デバイス10の内部状態を分析し、後述する各モニタ項目についてチャート(グラフ)やテキスト描画等の表示を制御し、また、ログファイルへの出力を制御する。
【0039】
本実施形態では、外部機器20は、サンプル周期ごとに、各マスターポート141のそれぞれから生成された35種類のカウント値と各スレーブポート142のそれぞれから生成された9種類のカウント値とを含む解析データ受信し、解析データを分析することによって、各マスター121の使用率や各スレーブ122の使用率など、図10−12に例示する各モニタ項目の値を算出する。例えば、マスター121aの使用率は、マスター121aの転送タイプがSEQUENTIALであった回数をカウントしたカウント値とマスター121aの転送タイプがNONSEQUENTIALであった回数をカウントしたカウント値の和を、1サンプル周期の総サイクル数、すなわち、サンプルカウントの設定値set_smptimで割ることにより、算出される。
【0040】
本実施形態において、領域101は測定の設定を行うためのGUIである。ユーザはこの領域101で、データを測定するサンプリング周波数、バスクロックHCLKの周波数、マスター121の数、スレーブ122の数及びスレーブアドレスマップを設定することができる。領域102は測定の制御を行うためのGUIである。ユーザはこの領域102で、測定の開始または停止及びモニタ表示のクリアを制御することができる。領域103は接続制御を行うためのGUIである。ユーザはこの領域103で、検証モジュール16との接続や切断を制御することができる。領域104は各マスター121の使用率をチャート形式で表示するためのGUIである。ユーザが任意のマスター121を選択(チェック)することにより、選択されているマスター121について、使用率を折れ線型チャートで表示する。領域105は各スレーブ122の使用率をチャート形式で表示するためのGUIである。ユーザが任意のスレーブ122を選択(チェック)することにより、選択されているスレーブ122について、使用率を折れ線型チャートで表示する。領域106、各マスター121別に、内部状態をより詳細に分析した結果を表示するためのマスターモニタ画面を呼び出すためのGUIである。領域107は、各スレーブ122別に、内部状態をより詳細に分析した結果を表示するためのスレーブモニタ画面を呼び出すためのGUIである。
【0041】
図11は、外部機器20において出力されるマスターモニタ画面の一例である。このマスターモニタ画面では、各マスター121別に各項目のチャートが描画される。同図においては、上から、スレーブ使用率、転送タイプ率、バースト転送率、ライト/リード率、転送サイズ率、保護制御率及びロック転送率のチャートが表示されている。各項目はそれぞれ、折れ線型の時系列表示と、ドーナツ型の統計表示を含んでいる。
【0042】
図12は、外部機器20において出力されるスレーブモニタ画面の一例である。このスレーブモニタ画面では、各スレーブ122別に各項目のチャートが描画される。同図においては、上から、ライト/リード率、転送応答率、総ウェイトサイクル数、最大ライトウェイトサイクル数及び最大リードウェイトサイクル数のチャートが表示されている。各項目はそれぞれ、折れ線型の時系列表示を含んでいる。また、ライト/リード率と転送応答率については、ドーナツ型の統計表示を含んでいる。
【0043】
以上のとおり、本実施形態では、半導体デバイス10の内部に組み込まれた検証モジュール16が、マスターポート141及びスレーブポート142に供給される信号を検出し、検出された信号に基づいて、内部バス14の通信量に関する解析データを所定のサンプル周期ごとに生成する。外部機器20は、検証モジュール16から取得したサンプル周期ごとの解析データを分析することによって、各マスター121の使用率など、半導体デバイス10の内部状態に関する種々のデータを算出し、表示することができる。このように、検証モジュール16は、マスターポート141及びスレーブポート142から検出した信号のデータをそのまま外部機器20に出力するのではなく、任意のサンプリング周期ごとに、例えば、所定の解析条件に合致したカウント値などの形にまとめた解析データを生成することにより、半導体デバイス10の検証に必要なデータを効率よく収集するとともに、効率よく外部機器20に出力することを可能としている。これにより、検証モジュール16と外部機器20との間の通信速度にかかわらず、半導体デバイス10の内部状態のリアルタイムでのモニタリング及び分析を実現している。
【0044】
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。また、各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。例えば、本実施形態では、8個のマスター121と8個のスレーブ122が内部バス14に接続される構成を例示したが、内部バス14に接続されるマスター121及びスレーブ122の数は、それぞれ任意の数により構成可能である。また、本実施形態では、検証モジュール16が8個のマスターポート141と8個のスレーブポート142の信号を検出する構成を例示したが、信号を検出するポートは任意に設定可能である。さらに、本実施形態では、検証モジュール16は、マスターポート141のそれぞれから35種類の解析データを生成し、スレーブポート142のそれぞれから9種類の解析データを生成する構成を例示したが、検証モジュール16で解析する解析データの数及び種類は、本実施形態に例示したものに限定されず、様々な解析条件を設定することにより、様々な解析データを生成することが可能である。また、外部機器20において分析される項目は、本実施形態に例示したものに限定されず、様々な項目を分析するように構成可能である。
【符号の説明】
【0045】
10 半導体デバイス、12 モジュール、14 内部バス、16 検証モジュール、18 通信ポート、20 外部機器、30 外部インターフェイス、41 マスターポート解析部、42 スレーブポート解析部、43 サンプル周期カウンタ、51 マスターポートコマンド解析部、52 マスターポートコマンドカウント部、53 カウンタ、54 ラッチ、54 各ラッチ、61 スレーブポートコマンド解析部、62 スレーブポートコマンドカウント部、63 カウンタ、64 ラッチ、100 検証システム、121 マスター、122 スレーブ、141 マスターポート、142 スレーブポート、161 検出部、162 制御部、163 通信インターフェイス、164 検証用マスター、165 検証用スレーブ

【特許請求の範囲】
【請求項1】
内部バスと、
第1の接続点において前記内部バスに接続されたマスターと、
第2の接続点において前記内部バスに接続され、前記マスターと通信可能に設けられたスレーブと、
前記マスターが前記スレーブを制御するために出力した制御信号を、前記第1の接続点及び前記第2の接続点の少なくとも一方において検出する検証モジュールと、
を備える半導体デバイス。
【請求項2】
前記検証モジュールは、前記検出された制御信号に基づいて、前記内部バスの通信量に関するデータを生成することを特徴とする請求項1に記載の半導体デバイス。
【請求項3】
前記検証モジュールは、所定の制御信号がアサートされた回数に基づいて、前記内部バスの通信量に関するデータを生成することを特徴とする請求項2に記載の半導体デバイス。
【請求項4】
前記制御信号は、前記マスターが前記スレーブを制御するための信号であって、書き込み信号、読み出し信号、転送タイプ信号、転送サイズ信号、バースト信号、ロック動作信号、転送方向信号又は保護制御信号のいずれかを含む、請求項1乃至3のいずれかに記載の半導体デバイス。
【請求項5】
前記検証モジュールは、前記内部バスの通信量に関するデータを外部機器に出力するための通信インターフェイスを含む、請求項2乃至4のいずれかに記載の半導体デバイス。
【請求項6】
前記検証モジュールにより生成された前記内部バスの通信量に関するデータは、前記半導体デバイスの内部状態を分析するために利用される、請求項2乃至5のいずれかに記載の半導体デバイス。
【請求項7】
請求項2乃至5のいずれかに記載の半導体デバイスと、
外部インターフェイスを介して前記検証モジュールから受信した前記内部バスの通信量に関するデータに基づいて、前記半導体デバイスの内部状態を分析する外部機器と、
を備える検証システム。
【請求項8】
前記分析される内部状態は、スレーブ使用率、転送タイプ率、バースト転送率、ライト/リード率、転送サイズ率、保護制御率、ロック転送率、転送応答率、総ウェイトサイクル数、最大ライトウェイトサイクル数又は最大リードウェイトサイクル数のいずれかを含む、請求項7に記載の検証システム。
【請求項9】
請求項2乃至5のいずれかに記載の半導体デバイスに含まれる前記検証モジュールと通信可能に設けられた外部機器であって、
前記検証モジュールにより生成された前記内部バスの通信量に関するデータに基づいて、前記半導体デバイスの内部状態を分析し、分析した結果を出力するディスプレイを備える外部機器。
【請求項10】
半導体デバイスの内部バスに接続されたマスターが前記内部バスに接続されたスレーブを制御するために出力した制御信号を、前記マスターと前記内部バスとの接続点及び前記スレーブと前記内部バスとの接続点の少なくとも一方において検出する検出部を備える検証モジュールであって、
前記検証モジュールが前記半導体デバイスの内部に組み込まれたものであることを特徴とする検証モジュール。
【請求項11】
半導体デバイスの内部状態を検証する方法であって、
前記半導体デバイスの内部に組み込まれ、検証モジュールが、前記内部バスに接続されたマスターが前記内部バスに接続されたスレーブを制御するために出力した制御信号を、前記マスターと前記内部バスとの接続点及び前記スレーブと前記内部バスとの接続点の少なくとも一方において検出し、前記検出された制御信号に基づいて、前記内部バスの通信量に関するデータを生成するステップと、
前記検証モジュールが、前記内部バスの通信量に関するデータを外部機器に出力するステップと、
前記外部機器が、前記検証モジュールから受信した前記内部バスの通信量に関するデータに基づいて、前記半導体デバイスの内部状態を分析するステップと、
を備える方法。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図1】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2012−181603(P2012−181603A)
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願番号】特願2011−42667(P2011−42667)
【出願日】平成23年2月28日(2011.2.28)
【出願人】(507374985)ベリフィケーションテクノロジー株式会社 (1)
【Fターム(参考)】