特許第5994661号(P5994661)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソシオネクストの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5994661
(24)【登録日】2016年9月2日
(45)【発行日】2016年9月21日
(54)【発明の名称】検証プログラム、検証方法及び検証装置
(51)【国際特許分類】
   G06F 11/22 20060101AFI20160908BHJP
   G06F 17/50 20060101ALI20160908BHJP
   G06F 13/00 20060101ALI20160908BHJP
【FI】
   G06F11/22 610
   G06F17/50 666S
   G06F13/00 301X
【請求項の数】19
【全頁数】31
(21)【出願番号】特願2013-16352(P2013-16352)
(22)【出願日】2013年1月31日
(65)【公開番号】特開2014-149565(P2014-149565A)
(43)【公開日】2014年8月21日
【審査請求日】2015年10月1日
(73)【特許権者】
【識別番号】514315159
【氏名又は名称】株式会社ソシオネクスト
(74)【代理人】
【識別番号】100092152
【弁理士】
【氏名又は名称】服部 毅巖
(72)【発明者】
【氏名】河村 拓
【審査官】 三坂 敏夫
(56)【参考文献】
【文献】 特開2010−146292(JP,A)
【文献】 特開2008−262457(JP,A)
【文献】 特開2012−89104(JP,A)
【文献】 特開平5−108401(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/22
G06F 13/00
G06F 17/50
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
バスに接続された複数のマスターユニットと複数のスレーブユニットとを含む検証対象の、一のマスターユニットと一のスレーブユニットの間を転送される第1信号の第1転送期間を取得し、
前記検証対象の、前記第1転送期間と少なくとも一部が重なる第2転送期間で第2信号が転送されるマスターユニットとスレーブユニットの組み合わせを示す第2組み合わせ情報を取得し、
前記第1転送期間を、設定された第3転送期間と比較し、
前記第1転送期間が前記第3転送期間よりも長い場合に、前記一のマスターユニットと前記一のスレーブユニットの組み合わせを示す第1組み合わせ情報と、取得した前記第2組み合わせ情報とを関連付けて記録部に記録する
処理を実行させることを特徴とする検証プログラム。
【請求項2】
前記第3転送期間は、前記第1信号の最短の転送期間であることを特徴とする請求項1に記載の検証プログラム。
【請求項3】
前記コンピュータに、前記第1信号が転送されるチャネルを示す第1チャネル情報と、前記第2信号が転送されるチャネルを示す第2チャネル情報とを関連付けて前記記録部に記録する処理を実行させることを特徴とする請求項1又は2に記載の検証プログラム。
【請求項4】
前記コンピュータに、前記第1信号のデータ種類を前記記録部に記録する処理を実行させることを特徴とする請求項3に記載の検証プログラム。
【請求項5】
前記コンピュータに、複数種類の前記第1信号についてそれぞれ、前記第1転送期間を取得し、前記第2組み合わせ情報を取得し、前記第1転送期間を前記第3転送期間と比較し、前記第1転送期間が前記第3転送期間よりも長い場合に、前記第1組み合わせ情報と前記第2組み合わせ情報とを関連付けて前記記録部に記録する処理を実行させることを特徴とする請求項1乃至4のいずれかに記載の検証プログラム。
【請求項6】
前記コンピュータに、
前記複数のマスターユニットと前記複数のスレーブユニットのうち前記一のマスターユニットと前記一のスレーブユニットの組み合わせを除いたマスターユニットとスレーブユニットの組み合わせについてそれぞれ前記第2組み合わせ情報を取得し、
前記第1転送期間を前記第3転送期間と比較し、前記第1転送期間が前記第3転送期間よりも長い場合に、前記第1組み合わせ情報と前記第2組み合わせ情報とを関連付けて前記記録部に記録する処理を実行させることを特徴とする請求項1乃至5のいずれかに記載の検証プログラム。
【請求項7】
前記コンピュータに、
前記複数のマスターユニットと前記複数のスレーブユニットのうち前記一のマスターユニットと前記一のスレーブユニットとは異なるマスターユニットとスレーブユニットについて、前記第1転送期間を取得し、前記第2組み合わせ情報を取得し、前記第1転送期間を前記第3転送期間と比較し、前記第1転送期間が前記第3転送期間よりも長い場合に、前記第1組み合わせ情報と前記第2組み合わせ情報とを関連付けて前記記録部に記録する処理を実行させることを特徴とする請求項1乃至6のいずれかに記載の検証プログラム。
【請求項8】
前記第1転送期間を取得する処理と、前記第2組み合わせ情報を取得する処理は、前記検証対象が所望の機能を達成するように前記複数のマスターユニットと前記複数のスレーブユニットの組み合わせをそれぞれ動作させるシナリオを用いて、前記検証対象を動作させることにより、行われることを特徴とする請求項1乃至7のいずれかに記載の検証プログラム。
【請求項9】
前記コンピュータに、
前記第1転送期間を取得する処理より前に、前記複数のマスターユニットと前記複数のスレーブユニットの組み合わせのうち、前記一のマスターユニットと前記一のスレーブユニットの組み合わせのみを単独で動作させるシナリオを用いて、前記検証対象を動作させることにより、前記第3転送期間を取得する処理を実行させることを特徴とする請求項1乃至8のいずれかに記載の検証プログラム。
【請求項10】
コンピュータが、
バスに接続された複数のマスターユニットと複数のスレーブユニットとを含む検証対象の、一のマスターユニットと一のスレーブユニットの間を転送される第1信号の第1転送期間を取得し、
前記検証対象の、前記第1転送期間と少なくとも一部が重なる第2転送期間で第2信号が転送されるマスターユニットとスレーブユニットの組み合わせを示す第2組み合わせ情報を取得し、
前記第1転送期間を、設定された第3転送期間と比較し、
前記第1転送期間が前記第3転送期間よりも長い場合に、前記一のマスターユニットと前記一のスレーブユニットの組み合わせを示す第1組み合わせ情報と、取得した前記第2組み合わせ情報とを関連付けて記録部に記録する
ことを特徴とする検証方法。
【請求項11】
前記第3転送期間は、前記第1信号の最短の転送期間であることを特徴とする請求項10に記載の検証方法。
【請求項12】
前記コンピュータが、前記第1信号が転送されるチャネルを示す第1チャネル情報と、前記第2信号が転送されるチャネルを示す第2チャネル情報とを関連付けて前記記録部に記録することを特徴とする請求項10又は11に記載の検証方法。
【請求項13】
前記コンピュータが、前記第1信号の種類を前記記録部に記録することを特徴とする請求項12に記載の検証方法。
【請求項14】
前記コンピュータが、複数種類の前記第1信号についてそれぞれ、前記第1転送期間を取得し、前記第2組み合わせ情報を取得し、前記第1転送期間を前記第3転送期間と比較し、前記第1転送期間が前記第3転送期間よりも長い場合に、前記第1組み合わせ情報と前記第2組み合わせ情報とを関連付けて前記記録部に記録することを特徴とする請求項10乃至13のいずれかに記載の検証方法。
【請求項15】
前記コンピュータが、
前記複数のマスターユニットと前記複数のスレーブユニットのうち前記一のマスターユニットと前記一のスレーブユニットの組み合わせを除いたマスターユニットとスレーブユニットの組み合わせについてそれぞれ前記第2組み合わせ情報を取得し、
前記第1転送期間を前記第3転送期間と比較し、前記第1転送期間が前記第3転送期間よりも長い場合に、前記第1組み合わせ情報と前記第2組み合わせ情報とを関連付けて前記記録部に記録することを特徴とする請求項10乃至14のいずれかに記載の検証方法。
【請求項16】
前記コンピュータが、前記複数のマスターユニットと前記複数のスレーブユニットのうち前記一のマスターユニットと前記一のスレーブユニットとは異なるマスターユニットとスレーブユニットについて、前記第1転送期間を取得し、前記第2組み合わせ情報を取得し、前記第1転送期間を前記第3転送期間と比較し、前記第1転送期間が前記第3転送期間よりも長い場合に、前記第1組み合わせ情報と前記第2組み合わせ情報とを関連付けて前記記録部に記録する処理を実行させることを特徴とする請求項10乃至15のいずれかに記載の検証方法。
【請求項17】
前記第1転送期間の取得と、前記第2組み合わせ情報の取得は、前記検証対象が所望の機能を達成するように前記複数のマスターユニットと前記複数のスレーブユニットの組み合わせをそれぞれ動作させるシナリオを用いて、前記検証対象を動作させることにより、行われることを特徴とする請求項10乃至16のいずれかに記載の検証方法。
【請求項18】
前記コンピュータが、
前記第1転送期間を取得するより前に、前記複数のマスターユニットと前記複数のスレーブユニットの組み合わせのうち、前記一のマスターユニットと前記一のスレーブユニットの組み合わせのみを単独で動作させるシナリオを用いて、前記検証対象を動作させることにより、前記第3転送期間を取得することを特徴とする請求項10乃至17のいずれかに記載の検証方法。
【請求項19】
バスに接続された複数のマスターユニットと複数のスレーブユニットとを含む検証対象の、一のマスターユニットと一のスレーブユニットの間を転送される第1信号の第1転送期間を取得する第1処理部と、
前記検証対象の、前記第1転送期間と少なくとも一部が重なる第2転送期間で第2信号が転送されるマスターユニットとスレーブユニットの組み合わせを示す第2組み合わせ情報を取得する第2処理部と、
前記第1転送期間を、設定された第3転送期間と比較する第3処理部と、
前記第1転送期間が前記第3転送期間よりも長い場合に、前記一のマスターユニットと前記一のスレーブユニットの組み合わせを示す第1組み合わせ情報と、取得した前記第2組み合わせ情報とを関連付けて記録部に記録する第4処理部と
を含むことを特徴とする検証装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検証プログラム、検証方法及び検証装置に関する。
【背景技術】
【0002】
LSI(Large Scale Integration)等の集積回路として、バスに接続された複数のマスターユニット及びスレーブユニットを含むものが知られている。このような集積回路の開発では、仕様に基づく設計、及びその設計の検証が行われる。設計検証の1種に、バスを介して異なる組み合わせのマスターユニットとスレーブユニットの間を転送される信号同士の競合を検証する、競合検証がある。
【0003】
尚、競合に関しては、マルチプロセッサシステムにおいて、各プロセッサからのバス使用要求信号を用いて共通バスの使用状態をモニタする技術や、各プロセッサからの処理要求を用いて競合発生状況を確認する技術が知られている。また、1つのプロセッサからの実リクエストを基に、それと競合する擬似リクエストを生成し、リクエスト競合の環境を実現する技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開昭63−276660号公報
【特許文献2】特開昭60−063642号公報
【特許文献3】特開平04−184557号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
バスに接続された複数のマスターユニット及びスレーブユニットを含む集積回路(検証対象)の競合検証では、例えば、検証パターン(シナリオ)を用いて複数のマスターユニット及びスレーブユニットを並列に動作させ、競合を発生させる。
【0006】
しかし、これまでの競合検証では、集積回路で起こり得る様々な組み合わせの信号同士の競合をどれだけ発生させて検証したのか、その検証の網羅性を適正に評価できず、必ずしも競合を過不足(重複、漏れ)なく十分に検証できていない可能性があった。
【課題を解決するための手段】
【0007】
本発明の一観点によれば、コンピュータに、バスに接続された複数のマスターユニットと複数のスレーブユニットとを含む検証対象の、一のマスターユニットと一のスレーブユニットの間を転送される第1信号の第1転送期間を取得し、前記検証対象の、前記第1転送期間と少なくとも一部が重なる第2転送期間で第2信号が転送されるマスターユニットとスレーブユニットの組み合わせを示す第2組み合わせ情報を取得し、前記第1転送期間を、設定された第3転送期間と比較し、前記第1転送期間が前記第3転送期間よりも長い場合に、前記一のマスターユニットと前記一のスレーブユニットの組み合わせを示す第1組み合わせ情報と、取得した前記第2組み合わせ情報とを関連付けて記録部に記録する処理を実行させる検証プログラムが提供される。
【0008】
この検証プログラムでは、マスターユニットとスレーブユニットの間を転送される信号の転送期間に基づいて競合が判別され、競合するマスターユニットとスレーブユニットの組み合わせに関する情報が記録される。
【0009】
また、本発明の一観点によれば、コンピュータを用いて上記のような処理を行う検証方法、検証を行う検証装置が提供される。
【発明の効果】
【0010】
開示の技術によれば、検証対象で起こり得る競合の十分な検証、検証の網羅性の適正な評価が可能になり、競合の重複や漏れの発生を抑え、検証精度の向上、検証期間の短縮、検証コストの低減を図ることが可能になる。
【図面の簡単な説明】
【0011】
図1】検証対象の一例を示す図(その1)である。
図2】検証対象の一例を示す図(その2)である。
図3】マスターユニット間競合の一例の説明図である。
図4】スレーブユニット間競合の一例の説明図である。
図5】バス内競合の一例の説明図である。
図6】カバレッジ表(レベル1)の一例を示す図である。
図7】カバレッジ表(レベル2)の一例を示す図である。
図8】カバレッジ表(レベル3)の一例を示す図である。
図9】競合モニタの接続例を示す図である。
図10】検証装置の構成例を示す図である。
図11】検証装置に用いるコンピュータのハードウェア構成例を示す図である。
図12】検証装置の処理フローの一例を示す図である。
図13】競合検証手法の一例の説明図である。
図14】データベースの一例を示す図(その1)である。
図15】データベースの一例を示す図(その2)である。
図16】競合モニタによる情報取得の説明図(その1)である。
図17】競合モニタによる情報取得の説明図(その2)である。
図18】競合モニタによる情報取得の説明図(その3)である。
図19】競合モニタによる情報取得の説明図(その4)である。
図20】競合モニタによる情報取得の説明図(その5)である。
図21】競合モニタによる情報取得の説明図(その6)である。
図22】競合候補チャネルの説明図である。
図23】競合相手チャネルの説明図である。
図24】カバレッジ表の出力例を示す図(その1)である。
図25】カバレッジ表の出力例を示す図(その2)である。
図26】カバレッジ表の出力例を示す図(その3)である。
図27】カバレッジ表の出力例を示す図(その4)である。
図28】競合検証手法の適用例を示す図である。
【発明を実施するための形態】
【0012】
まず、検証対象で発生する競合について説明する。
図1及び図2は検証対象の一例を示す図である。尚、図1及び図2には、検証対象とその内部を転送される信号の経路(転送経路)を模式的に図示している。
【0013】
図1には、バス11と、バス11に接続された複数のマスターユニット12及び複数のスレーブユニット13とを有する検証対象(Device Under Test;DUT)10を例示している。検証対象10は、例えば、レジスタ・トランスファ・レベル(RTL)で論理設計された集積回路である。ここでは、マスターユニット12として、3つのマスターユニットM1,M2,M3を例示し、スレーブユニット13として、3つのスレーブユニットS1,S2,S3を例示している。
【0014】
尚、マスターユニット12は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DMAC(Direct Memory Access Controller)等のように、自らバス11に対して命令を発行するユニットである。スレーブユニット13は、SRAM(Static Random Access Memory)やSDRAM(Synchronous Dynamic Random Access Memory)といったメモリ等のように、マスターユニット12からバス11を通して命令を受け、応答を返すようなユニットである。
【0015】
バス11は、1つ又は2つ以上(ここでは一例として4つ)のスイッチ11aを含んでおり、スイッチ11aを介して所定のマスターユニット12とスレーブユニット13の間を相互に接続する。例えば、図1に示すように、バス11が、マスターユニットM1とスレーブユニットS2の間を転送経路21で接続する(鎖線)。同様にバス11は、マスターユニットM2とスレーブユニットS3の間を転送経路22で接続し(点線)、マスターユニットM3とスレーブユニットS2の間を転送経路23で接続する(実線)。
【0016】
検証対象10では、その動作時に転送される信号の転送経路や転送期間が重なることで、不具合が発生し得る。例えば、図2のように、マスターユニットM1とスレーブユニットS2を接続する転送経路21に、マスターユニットM3とスレーブユニットS2を接続する転送経路23が重なり、各々を転送される信号のタイミング(転送期間)が重なると、不具合が発生し得る。
【0017】
検証対象10の競合検証では、例えば、検証装置を用いて所定のシナリオ(検証パターン)で複数のマスターユニット12及びスレーブユニット13を動作(マスターユニット12とスレーブユニット13の組み合わせが異なるものを並列に動作)させる。しかし、検証装置で処理するうえで競合の定義が明確でなく、また、検証対象10で起こり得る様々な組み合わせの信号同士の競合状況をどれだけ発生させて検証したのか、その検証の網羅性を適正に評価できない場合がある。そのため、マスターユニット12とスレーブユニット13の或る組み合わせに対し、重複する競合状況を発生させて検証してしまったり、競合状況を発生させることなく検証を終えてしまったりすることが起こり得る。
【0018】
そこで、検証対象10の競合検証に、以下に説明するような技術を採用する。
まず、競合検証における競合の定義を明確にする。
ここでは、競合検証における競合を、或る組み合わせのマスターユニット12とスレーブユニット13の間を転送される信号の最短の転送期間(他の信号の影響を受けずに転送される時の転送期間)を基準にして判別する。或る組み合わせのマスターユニット12とスレーブユニット13の間の転送期間が、基準となる最短の転送期間よりも長くなる場合、その組み合わせのマスターユニット12とスレーブユニット13の間の転送経路上に何らかの競合が発生しているとする。
【0019】
尚、転送期間は、マスターユニット12が所定の信号を送信してからそれをスレーブユニット13が受信するまでの期間、或いは、スレーブユニット13が所定の信号を送信してからそれをマスターユニット12が受信するまでの期間である。以下では、この転送期間をビジー期間とも言う。
【0020】
図2を例にすると、マスターユニットM1とスレーブユニットS2を繋ぐ転送経路21を転送される信号の転送期間がビジー期間である。この信号がマスターユニットM3とスレーブユニットS2の間を転送される信号を含む他の信号の影響を受けずに転送される時の最短の転送期間が、最短ビジー期間である。マスターユニットM1とスレーブユニットS2の間のビジー期間が最短ビジー期間よりも長くなる場合、その転送経路21上に競合が発生しているとする。
【0021】
競合には、次のような3種類が存在する。
1つ目は、複数のマスターユニット12が1つのスレーブユニット13へアクセスする場合に発生する競合(マスターユニット間競合)である。2つ目は、1つのマスターユニット12が複数のスレーブユニット13へアクセスする場合に発生する競合(スレーブユニット間競合)である。3つ目は、複数のマスターユニット12が別々のスレーブユニット13へアクセスする場合に発生する競合(バス内競合)である。各競合について、図3図5を参照して具体的に説明する。
【0022】
図3はマスターユニット間競合の一例の説明図である。
図3には、異なるマスターユニットM1とマスターユニットM3が、1つのスレーブユニットS3にアクセスする場合を例示している。例えば、CPUやDMACといったマスターユニットM1及びマスターユニットM3が、メモリのスレーブユニットS3に対して書き込み(ライト)を行うような場合が、これに該当する。
【0023】
マスターユニットM1とスレーブユニットS3を繋ぐ転送経路21aのビジー期間が、その最短ビジー期間よりも、マスターユニットM3とスレーブユニットS3を繋ぐ転送経路23aの信号転送の影響で長くなれば、転送経路21aに競合が発生したとする。また、マスターユニットM3とスレーブユニットS3を繋ぐ転送経路23aのビジー期間が、その最短ビジー期間よりも、マスターユニットM1とスレーブユニットS3を繋ぐ転送経路21aの信号転送の影響で長くなれば、転送経路23aに競合が発生したとする。
【0024】
図4はスレーブユニット間競合の一例の説明図である。
図4には、1つのマスターユニットM3が、異なるスレーブユニットS1とスレーブユニットS3にアクセスする場合を例示している。例えば、CPUやDMACといったマスターユニットM3が、メモリのスレーブユニットS1及びスレーブユニットS3に対してそれぞれ読み出し(リード)を行うような場合が、これに該当する。
【0025】
マスターユニットM3とスレーブユニットS1を繋ぐ転送経路23bのビジー期間が、その最短ビジー期間よりも、マスターユニットM3とスレーブユニットS3を繋ぐ転送経路23cの信号転送の影響で長くなれば、転送経路23bに競合が発生したとする。また、マスターユニットM3とスレーブユニットS3を繋ぐ転送経路23cのビジー期間が、その最短ビジー期間よりも、マスターユニットM3とスレーブユニットS1を繋ぐ転送経路23bの信号転送の影響で長くなれば、転送経路23cに競合が発生したとする。
【0026】
図5はバス内競合の一例の説明図である。
図5には、異なるマスターユニットM1とマスターユニットM3が、それぞれ異なるスレーブユニットS1とスレーブユニットS2にアクセスする場合を例示している。
【0027】
マスターユニットM1とスレーブユニットS1を繋ぐ転送経路21dのビジー期間が、その最短ビジー期間よりも、マスターユニットM3とスレーブユニットS2を繋ぐ転送経路23dの信号転送の影響で長くなれば、転送経路21dに競合が発生したとする。また、マスターユニットM3とスレーブユニットS2を繋ぐ転送経路23dのビジー期間が、その最短ビジー期間よりも、マスターユニットM1とスレーブユニットS1を繋ぐ転送経路21dの信号転送の影響で長くなれば、転送経路23dに競合が発生したとする。
【0028】
バス11を介して複数のマスターユニット12(M1,M2,M3)と複数のスレーブユニット13(S1,S2,S3)が接続された検証対象10で発生する競合は、図3図5に示したような3種類の競合のいずれかに該当する。
【0029】
検証対象10の競合検証では、競合したマスターユニット12とスレーブユニット13の組み合わせを示す情報が、互いの組み合わせが関連付けられて、競合検証を行う検証装置の記録部に記録される。例えば、図6に示すようなカバレッジ表に対応して、競合したマスターユニット12とスレーブユニット13の組み合わせを示す情報が関連付けられて記録部に記録される。
【0030】
図6はカバレッジ表(レベル1)の一例を示す図である。
図6のカバレッジ表31(レベル1)は、着目するマスターユニット12とスレーブユニット13の組み合わせ(欄31a)と、競合相手のマスターユニット12とスレーブユニット13の組み合わせ(欄31b)との関係を表す。
【0031】
例えば、着目するマスターユニット12とスレーブユニット13の組み合わせが、M1−S1の場合、その競合相手となり得る組み合わせは、M1−S2、M1−S3、M2−S1、M2−S2、M2−S3、M3−S1、M3−S2、M3−S3である。これら競合相手の組み合わせのうち、着目するM1−S1の組み合わせとマスターユニットM1が共通するM1−S2、M1−S3の組み合わせは、上記図4に例示したようなスレーブユニット間競合に該当する。着目するM1−S1の組み合わせとマスターユニットM1が異なり、スレーブユニットS1が共通するM2−S1、M3−S1の組み合わせは、上記図3に例示したようなマスターユニット間競合に該当する。着目するM1−S1の組み合わせとマスターユニットM1もスレーブユニットS1も異なるM2−S2、M2−S3、M3−S2、M3−S3の組み合わせは、上記図5に例示したようなバス内競合に該当する。尚、着目するM1−S1の組み合わせと同じ組み合わせ、即ちM1−S1それ自体は競合相手とはならない。
【0032】
着目するマスターユニット12とスレーブユニット13の組み合わせがM1−S1以外のものについても同様であり、競合相手となり得る組み合わせは、マスターユニット間競合、スレーブユニット間競合、バス内競合のいずれかに該当するようになる。
【0033】
検証対象10の競合検証では、図6に示すレベル1のカバレッジ表31に対応して、着目するマスターユニット12とスレーブユニット13の組み合わせとその競合相手の組み合わせとを示す情報が記録される。これにより、競合検証の網羅性の評価が可能になる。即ち、検証対象10に含まれる複数のマスターユニット12及び複数のスレーブユニット13の、どの組み合わせ同士の競合について検証が行われたのか、その検証の網羅性を評価することが可能になる。
【0034】
尚、図6に示すカバレッジ表31の全ての組み合わせ(欄31c(マスターユニット12とスレーブユニット13が共通する組み合わせの欄を除く))に対応して記録がなされれば、検証対象10で起こり得る全ての競合が検証されたことになる。
【0035】
検証対象10の競合検証では、このようなマスターユニット12とスレーブユニット13の組み合わせに加え、競合したチャネル(信号の転送経路)の組み合わせを示す情報が検証装置の記録部に記録されてもよい。例えば、図7に示すようなカバレッジ表に対応して、競合したチャネルの組み合わせを示す情報が記録部に記録される。
【0036】
図7はカバレッジ表(レベル2)の一例を示す図である。
例えば、バス11のプロトコルにAXI(Advanced eXtensible Interface)を採用した検証対象10の場合、ライトアドレス、ライトデータ、ライト応答、リードアドレス、リードデータの5つのチャネルが存在する。尚、ライトアドレスチャネルでは、マスターユニット12からスレーブユニット13にライトアドレスが転送される(M→S)。ライトデータチャネルでは、マスターユニット12からスレーブユニット13にライトデータが転送される(M→S)。ライト応答チャネルでは、スレーブユニット13からマスターユニット12にライト応答が転送される(S→M)。リードアドレスチャネルでは、マスターユニット12からスレーブユニット13にリードアドレスが転送される(M→S)。リードデータチャネルでは、スレーブユニット13からマスターユニット12にリードデータが転送される(S→M)。
【0037】
図7に示すカバレッジ表32(レベル2)は、着目する組み合わせのマスターユニット12とスレーブユニット13のチャネル(欄32a)と、その競合相手の組み合わせのマスターユニット12とスレーブユニット13のチャネル(欄32b)との関係を表す。この図7に示すレベル2のカバレッジ表32が、上記図6に示したレベル1のカバレッジ表31の各欄31cに対応して設定される。
【0038】
競合検証では、図7に示すレベル2のカバレッジ表32に対応して、着目するマスターユニット12とスレーブユニット13のチャネルとその競合相手となったマスターユニット12とスレーブユニット13のチャネルとを関連付けた情報が記録される。このカバレッジ表32の全てのチャネル組み合わせ(欄32c)に対応して記録がなされれば、着目する組み合わせのマスターユニット12及びスレーブユニット13とその競合相手との間で起こり得る全てのチャネル組み合わせの競合が検証されたことになる。カバレッジ表32を用いることで、着目する組み合わせのマスターユニット12及びスレーブユニット13とその競合相手との間で、どのチャネル組み合わせの競合について検証が行われたのか、その検証の網羅性を評価することが可能になる。
【0039】
検証対象10の競合検証では、上記のようなマスターユニット12とスレーブユニット13の組み合わせ、及びチャネル組み合わせに加え、チャネルを転送された信号のデータ種類(ライト及びリードデータの場合)を示す情報が、記録部に記録されてもよい。例えば、図8に示すようなカバレッジ表に対応して、チャネルを転送された信号のデータ種類を示す情報が記録部に記録される。
【0040】
図8はカバレッジ表(レベル3)の一例を示す図である。
例えば、バス11のプロトコルにAXIを採用した検証対象10の場合、チャネルを転送されるライト及びリードデータには、複数種のデータが存在する。図8には、バースト転送のデータ種類を例示している。バースト転送のタイプには、アドレスを固定して転送するタイプ(FIXED)、アドレスを増加(インクリメント)して転送するタイプ(INCR)、アドレスがインクリメントして所定のラッピング境界で折り返すタイプ(WRAP)がある。バースト転送では、各タイプに対し、バーストサイズ、バースト長が設定されている。バーストサイズは、1つのデータ転送で転送されるバイト(byte)数であり、1バイト、2バイト、4バイト、8バイトが設定されている。バースト長は、1つのバースト転送におけるデータ転送回数であり、FIXEDタイプ及びINCRタイプの場合は1(シングル)転送から16転送、WRAPタイプの場合は2,4,8,16転送が設定されている。
【0041】
この図8に示すようなデータ種類(欄に○印で示したもの)が、レベル3のカバレッジ表33に設定されている。検証対象10のライト及びリードデータとしては、このレベル3のカバレッジ表33に設定されているような種類のデータが転送され得る。
【0042】
競合検証では、ライト及びリードデータとして転送された信号のデータ種類が、図8に示すレベル3のカバレッジ表33に対応して記録される。上記図7に示したカバレッジ表32のライト及びリードデータについて、この図8に示すカバレッジ表33に示される全ての種類のデータが記録されれば、ライト及びリードチャネルで転送され得る全ての種類のデータについて、競合が検証されたことになる。レベル3のカバレッジ表33を用いることで、チャネルを転送されるデータがどのような種類の時の競合について検証が行われたのか、その検証の網羅性を評価することが可能になる。
【0043】
次に、競合検証を行う検証装置及び検証処理について説明する。
競合検証では、所定のシナリオを用いて検証対象10を動作させ、それによって発生する競合をモニタし、上記のようなカバレッジ表31〜33に対応して所定の情報の記録を行う。ここで、発生する競合は、競合モニタを検証対象10に接続してモニタする。
【0044】
図9は競合モニタの接続例を示す図である。
AXIを採用した検証対象10では、バス11に接続される各々のマスターユニット12及びスレーブユニット13に、5つのチャネルが存在している。即ち、各マスターユニット12(M1,M2,M3)には、ライトアドレスチャネル41、ライトデータチャネル42、ライト応答チャネル43、リードアドレスチャネル44、リードデータチャネル45の5つのチャネルが存在している。各スレーブユニット13(S1,S2,S3)にも同様に、ライトアドレスチャネル41、ライトデータチャネル42、ライト応答チャネル43、リードアドレスチャネル44、リードデータチャネル45の5つのチャネルが存在している。
【0045】
競合モニタ50は、これらの各チャネル(ライトアドレスチャネル41、ライトデータチャネル42、ライト応答チャネル43、リードアドレスチャネル44、リードデータチャネル45)に接続される。
【0046】
競合モニタ50は、バス11を介して所定のマスターユニット12とスレーブユニット13を繋ぐ各チャネルをモニタし、ビジーからアイドルの状態に遷移した際、転送された転送信号のデータ種類を示す情報、ビジー期間を示す情報を取得する。更に、その際、競合モニタ50は、転送信号に競合した可能性のある信号が転送されたチャネル(競合候補チャネル)を示す情報を取得する。更にまた、競合モニタ50は、取得された競合候補チャネル等を示す情報に基づき、競合した信号が転送されたチャネル(競合相手チャネル)を決定する。
【0047】
尚、検証対象10及び競合モニタ50は、例えば、RTLで作成することができる。
検証対象10に競合モニタ50を接続して行う競合検証には、例えば、図10に示すような検証装置が用いられる。
【0048】
図10は検証装置の構成例を示す図である。
図10に示す検証装置60は、シナリオ70、検証対象10、競合モニタ50、及び記録部80を備える。
【0049】
この検証装置60で用いるシナリオ70は、検証対象10で競合が発生しないシナリオ71と、検証対象10で競合が発生するシナリオ72とを含む。検証装置60は、シナリオ70を用いて検証対象10を動作させる。検証対象10には、競合モニタ50が接続される。競合モニタ50は、上記図9に示したように検証対象10に接続され、バス11を介して所定のマスターユニット12とスレーブユニット13を繋ぐ各チャネルをモニタする。
【0050】
競合が発生しないシナリオ71は、競合モニタ50により、各チャネルを転送される信号のデータ種類を示す情報、最短ビジー期間を示す情報を取得する際に用いられる。尚、競合が発生しないシナリオ71は、所定の1組のマスターユニット12とスレーブユニット13のみを動作させるシナリオであり、このシナリオ71を用いた時に競合モニタ50で取得されるビジー期間が、最短ビジー期間となる。競合が発生するシナリオ72は、競合モニタ50により、各チャネルを転送される信号のデータ種類を示す情報、ビジー期間を示す情報、競合候補チャネルを示す情報を取得する際に用いられる。
【0051】
競合モニタ50は、ステートマシン部51、比較部52、及びカバレッジチェック部53を有している。
競合モニタ50のステートマシン部51は、データ種類取得部51a、ビジー期間取得部51b、競合候補チャネル取得部51cを有している。
【0052】
データ種類取得部51aは、競合が発生しないシナリオ71で検証対象10が動作された際、各チャネルの転送信号のデータ種類を示す情報を取得する。データ種類取得部51aは、競合が発生するシナリオ72で検証対象10が動作された際も同様に、各チャネルの転送信号のデータ種類を示す情報を取得する。
【0053】
ビジー期間取得部51bは、競合が発生しないシナリオ71で検証対象10が動作された際、各チャネルの最短ビジー期間を示す情報を取得する。ビジー期間取得部51bは、競合が発生するシナリオ72で検証対象10が動作された際は、各チャネルのビジー期間を示す情報を取得する。尚、ビジー期間取得部51bは、各チャネルの最短ビジー期間及びビジー期間を、転送信号のデータ種類毎に、取得する。
【0054】
競合候補チャネル取得部51cは、競合が発生するシナリオ72で検証対象10が動作された際、各チャネルについて、転送信号のデータ種類毎に、その競合候補チャネルを示す情報を取得する。競合候補チャネル取得部51cは、一のチャネルについて、そのビジー期間に少なくとも一部が重なるビジー期間のチャネル(1つ又は複数)を示す情報を、その一のチャネルの競合候補チャネルを示す情報として取得する。
【0055】
比較部52は、ビジー期間取得部51bで取得された各チャネルのビジー期間と最短ビジー期間とを比較し、ビジー期間が最短ビジー期間よりも長いか否かを判定する。尚、一のチャネルについて、そのビジー期間が最短ビジー期間よりも長くなった場合、その一のチャネルの競合候補チャネルが、競合相手チャネルとして確定する。
【0056】
カバレッジチェック部53は、最短ビジー期間よりも長いビジー期間のチャネルとそのチャネルで繋がるマスターユニット12とスレーブユニット13の組み合わせの情報、及び転送信号のデータ種類、並びに競合相手の情報を、記録部80に記録する。
【0057】
記録部80は、データ種類データベース(DB)81、最短ビジー期間DB82、ビジー期間DB83、競合候補チャネルDB84、比較結果DB85、及びカバレッジ表DB86を有している。
【0058】
データ種類DB81には、データ種類取得部51aで取得された、各チャネルの転送信号のデータ種類を示す情報が記録される。
最短ビジー期間DB82には、ビジー期間取得部51bで取得された、各チャネル(データ種類毎)の最短ビジー期間を示す情報が記録される。
【0059】
ビジー期間DB83には、ビジー期間取得部51bで取得された、各チャネル(データ種類毎)のビジー期間を示す情報が記録される。
競合候補チャネルDB84には、競合候補チャネル取得部51cで取得された、各チャネル(データ種類毎)の競合候補チャネルを示す情報が記録される。
【0060】
比較結果DB85には、比較部52でのビジー期間と最短ビジー期間の比較結果、即ちビジー期間が最短ビジー期間よりも長いチャネルを示す情報が記録される。
カバレッジ表DB86には、例えば、上記図6〜8に示したようなレベル1〜3のカバレッジ表31〜33に対応する情報が記録される。競合モニタ50では、ビジー期間が最短ビジー期間よりも長くなったチャネルとそのチャネルで繋がるマスターユニット12とスレーブユニット13の組み合わせの情報、及び転送信号のデータ種類、並びに競合相手の情報が取得される。カバレッジチェック部53は、これらの情報に基づき、カバレッジ表DB86に、各カバレッジ表31〜33の各欄に対応する所定の情報を記録する。
【0061】
カバレッジチェック部53は、レベル3のカバレッジ表33(図8)の各欄に対応する情報として、ビジー期間が最短ビジー期間よりも長くなったチャネル(着目チャネル)の転送信号のデータ種類を示す情報を記録する。カバレッジチェック部53は、レベル2のカバレッジ表32(図7)の各欄に対応する情報として、着目チャネルとその競合相手チャネルの組み合わせを示す情報を記録する。カバレッジチェック部53は、レベル1のカバレッジ表31(図6)の各欄に対応する情報として、着目チャネルで繋がるマスターユニット12とスレーブユニット13の組み合わせと、競合相手チャネルで繋がるマスターユニット12とスレーブユニット13の組み合わせを示す情報を記録する。
【0062】
尚、記録部80には、データ種類、ビジー期間及び競合候補チャネルを示す情報がまとめて記録されるDBを設けてもよい。
上記のような検証装置60の処理機能は、コンピュータを用いて実現することができる。
【0063】
図11は検証装置に用いるコンピュータのハードウェア構成例を示す図である。
検証装置60に用いるコンピュータ100は、プロセッサ101によって全体が制御される。プロセッサ101には、バス109を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、又はPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0064】
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データ(上記の記録部80に記録される情報等)が格納される。
【0065】
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107、及びネットワークインタフェース108がある。
【0066】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD103は、コンピュータ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。尚、補助記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【0067】
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像を表示装置104aの画面に表示させる。表示装置104aとしては、CRT(Cathode Ray Tube)を用いた表示装置、液晶表示装置等がある。
【0068】
入力インタフェース105には、キーボード105aとマウス105bが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号をプロセッサ101に送信する。尚、マウス105bは、ポインティングデバイスの一例であり、タッチパネル、タブレット、タッチパッド、トラックボール等の他のポインティングデバイスを使用することもできる。
【0069】
光学ドライブ装置106は、レーザ光等を利用して、光ディスク106aに記録されたデータの読み取りを行う。光ディスク106aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク106aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等がある。
【0070】
機器接続インタフェース107は、コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置107aやメモリリーダライタ107bを接続することができる。メモリ装置107aは、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ107bは、メモリカード107bbへのデータの書き込み、又はメモリカード107bbからのデータの読み出しを行う装置である。メモリカード107bbは、カード型の記録媒体である。
【0071】
ネットワークインタフェース108は、ネットワーク110に接続されている。ネットワークインタフェース108は、ネットワーク110を介して、他のコンピュータ又は通信機器との間でデータの送受信を行う。
【0072】
上記のようなハードウェア構成によって、検証装置60の処理機能を実現することができる。
コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、検証装置60の処理機能を実現する。コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また、コンピュータ100に実行させるプログラムを、光ディスク106a、メモリ装置107a、メモリカード107bb等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0073】
競合検証の際には、コンピュータ100のHDD103に、RTLの検証対象10及び競合モニタ50、並びにシナリオ70(71,72)等が格納される。HDD103には、例えば、論理シミュレータが格納される。この場合、検証装置60では、コンピュータ100により、HDD103に格納されたシナリオ70、検証対象10及び競合モニタ50の情報が用いられて、検証対象10の論理シミュレーションが実行される。
【0074】
また、検証装置60は、RTLの検証対象10、又は検証対象10と競合モニタ50を、FPGA(Field Programable Gate Array)に展開した論理エミュレータを備えてもよい。この場合、検証装置60では、例えば、コンピュータ100のHDD103に格納された命令セットシミュレータが用いられて、検証対象10の論理エミュレーションが実行される。
【0075】
続いて、以上述べたような構成を有する検証装置60の処理フローについて説明する。
図12は検証装置の処理フローの一例を示す図である。
検証装置60は、例えば、まず競合しないシナリオ71を用いて、検証対象10を動作させ、競合モニタ50で各チャネルをモニタする。ここで、競合しないシナリオ71とは、検証対象10において、複数のマスターユニット12と複数のスレーブユニット13の組み合わせのうち、1つの組み合わせのみを単独で動作させるシナリオであり、上述した各競合が発生しないシナリオである。検証装置60は、競合モニタ50のデータ種類取得部51aにより、検証対象10の各チャネルを転送された信号のデータ種類を示す情報を取得し(ステップS1)、ビジー期間取得部51bにより、各チャネルの最短ビジー期間を示す情報を取得する(ステップS2)。取得されたデータ種類及び最短ビジー期間を示す情報は、最短ビジー期間DB82に記録される。
【0076】
次いで、検証装置60は、競合するシナリオ72を用いて、検証対象10を動作させ、競合モニタで各チャネルをモニタする。ここで、競合するシナリオ72とは、検証対象10となる集積回路等が所望の機能を達成するように、検証対象10において複数のマスターユニット12と複数のスレーブユニット13の組み合わせをそれぞれ動作させるシナリオであり、上述した各競合の発生が想定されるシナリオである。検証装置60は、データ種類取得部51aにより、検証対象10の各チャネルを転送された信号のデータ種類を示す情報を取得し(ステップS3)、ビジー期間取得部51bにより、各チャネルのビジー期間を示す情報を取得する(ステップS4)。更に、検証装置60は、競合候補チャネル取得部51cにより、各チャネルについて、そのビジー期間に少なくとも一部が重なるビジー期間の競合候補チャネルを示す情報を取得する(ステップS5)。取得された各チャネルのデータ種類を示す情報は、データ種類DB81に記録される。取得された各チャネルのビジー期間を示す情報は、ビジー期間DB83に記録される。取得された各チャネルの競合候補チャネルを示す情報(チャネルで繋がるマスターユニット12とスレーブユニット13の組み合わせを示す情報を含む)は、競合候補チャネルDB84に記録される。
【0077】
次いで、検証装置60は、比較部52により、各チャネルについて、ステップS4で取得されたビジー期間とステップS2で取得された最短ビジー期間とを比較する(ステップS6)。ビジー期間が最短ビジー期間よりも長いチャネルを示す情報は、比較結果DB85に記録される。
【0078】
更に、検証装置60は、カバレッジチェック部53により、ステップS3で取得されたデータ種類、ステップS5で取得された競合候補チャネル、ステップS6で取得された比較結果を示す情報を用いて、カバレッジ表DB86への記録(カバレッジチェック)を行う(ステップS7)。
【0079】
カバレッジチェック部53は、レベル3のカバレッジ表33に対応する情報として、ビジー期間が最短ビジー期間よりも長いチャネル(着目チャネル)を転送された信号のデータ種類を示す情報を、カバレッジ表DB86に記録する。カバレッジチェック部53は、レベル2のカバレッジ表32に対応する情報として、着目チャネルとその競合相手チャネル(着目チャネルの競合候補チャネル)の組み合わせを示す情報を、カバレッジ表DB86に記録する。カバレッジチェック部53は、レベル1のカバレッジ表31に対応する情報として、着目チャネルで繋がるマスターユニット12とスレーブユニット13の組み合わせと、競合相手チャネルで繋がるマスターユニット12とスレーブユニット13の組み合わせを示す情報を、カバレッジ表DB86に記録する。カバレッジチェック部53は、このようにして上記のレベル1〜3のカバレッジ表31〜33に対応する情報を、カバレッジ表DB86に記録する。
【0080】
続いて、上記の検証装置60を用いた競合検証手法について、より具体的に説明する。
図13は競合検証手法の一例の説明図である。
検証装置60では、検証対象10に競合モニタ50が接続され(図9及び図10)、各チャネル(ライトアドレスチャネル41、ライトデータチャネル42、ライト応答チャネル43、リードアドレスチャネル44、リードデータチャネル45)がモニタされる。検証装置60では、競合しないシナリオ71が用いられて検証対象10が動作され、競合モニタ50のステートマシン部51により、各チャネルのデータ種類を示す情報、最短ビジー期間を示す情報が取得され、それらの情報が最短ビジー期間DB82に記録される。最短ビジー期間DB82の一例を図14に示す。
【0081】
最短ビジー期間DB82には、マスターユニットM1,M2,M3(12)とスレーブユニットS1,S2,S3(13)の各組み合わせのライトアドレスチャネル41、リードアドレスチャネル44及びライト応答チャネル43についてそれぞれ、最短ビジー期間を示す情報が記録される。マスターユニットM1,M2,M3とスレーブユニットS1,S2,S3の各組み合わせのライトデータチャネル42及びリードデータチャネル45については、データ種類毎の最短ビジー期間を示す情報が記録される。図14の例では、各組み合わせのライトデータチャネル42及びリードデータチャネル45についてそれぞれ、AXIを採用した場合におけるバースト転送の、データ種類毎の最短ビジー期間を示す情報が記録される。
【0082】
競合モニタ50のステートマシン部51によって取得された、検証対象10の各チャネルの最短ビジー期間を示す情報、又は、データ種類及び最短ビジー期間を示す情報が、このような最短ビジー期間DB82に記録される。
【0083】
検証装置60では、競合するシナリオ72が用いられて検証対象10が動作され、競合モニタ50のステートマシン部51により、各チャネルのデータ種類(ライト及びリードデータの場合)、ビジー期間及び競合候補チャネルを示す情報が取得される。取得された情報は、記録部80のデータベース(DB)80aに記録される。DBの一例を図15に示す。
【0084】
DB80aには、マスターユニットM1,M2,M3とスレーブユニットS1,S2,S3の各組み合わせのライトアドレスチャネル41、リードアドレスチャネル44及びライト応答チャネル43についてそれぞれ、ビジー期間及び競合候補チャネルを示す情報が記録される。マスターユニットM1,M2,M3とスレーブユニットS1,S2,S3の各組み合わせのライトデータチャネル42及びリードデータチャネル45については、データ種類毎に、そのデータ種類、ビジー期間及び競合候補チャネルを示す情報が記録される。
【0085】
競合モニタ50のステートマシン部51によって取得された、検証対象10の各チャネルのビジー期間及び競合候補チャネルを示す情報、又は、データ種類、ビジー期間及び競合候補チャネルを示す情報が、このようなDB80aに記録される。
【0086】
ここで、検証対象10の各チャネルをモニタする競合モニタ50は、チャネルがビジーからアイドルの状態に遷移した時に、上記のデータ種類(ライト及びリードデータの場合)、最短ビジー期間又はビジー期間、競合候補チャネルを示す情報を取得する。競合モニタによる情報取得について、図16図21を参照して説明する。
【0087】
マスターユニット12(M1,M2,M3)とスレーブユニット13(S1,S2,S3)の間の信号転送時には、図16(A)及び図16(B)に示すように、マスターユニット12とバス11の間、バス11とスレーブユニット13の間で、VALID及びREADYの信号が遣り取りされる。
【0088】
尚、図16(A)に示すVALID<M>は、マスターユニット12がバス11に出す要求信号であり、READY<M>は、バス11がマスターユニット12に出す許可信号である。VALID<S>は、バス11がスレーブユニット13に出す要求信号であり、READY<S>は、スレーブユニット13がバス11に出す許可信号である。ライトアドレス、ライトデータ及びリードアドレスの転送時にこのような信号の遣り取りが行われる。
【0089】
また、図16(B)に示すVALID<S>は、スレーブユニット13がバス11に出す要求信号であり、READY<S>は、バス11がスレーブユニット13に出す許可信号である。VALID<M>は、バス11がマスターユニット12に出す要求信号であり、READY<M>は、マスターユニット12がバス11に出す許可信号である。ライト応答及びリードデータの転送時にこのような信号の遣り取りが行われる。
【0090】
競合モニタ50は、このようなVALID、READYの信号を用いて、各チャネルがビジー(BUSY)の状態かアイドル(IDLE)の状態かを判別する。
図17(A)はライトアドレスチャネルのステートマシンの一例を示す図、図17(B)はライトアドレスチャネルの信号波形の一例を示す図である。
【0091】
或るマスターユニット12とスレーブユニット13を繋ぐライトアドレスチャネル41では、例えば、図17(A)のようなステートマシン90、及び図17(B)のような信号波形となる。ライトアドレスチャネル41では、マスターユニット12からVALID<M>が出され、バス11からREADY<M>が出された後、バス11からVALID<S>が出され、スレーブユニット13からREADY<S>が出される。マスターユニット12からのライトアドレスの信号は、バス11からマスターユニット12にREADY<M>が出されることで転送が開始され、スレーブユニット13からバス11にREADY<S>が出されることで、スレーブユニット13で受け取られる。
【0092】
ライトアドレスチャネル41は、READY<M>が出されてからREADY<S>が出されるまでの期間、ビジー状態であり、その期間がビジー期間Tとなる。
図18(A)はライトデータチャネルのステートマシンの一例を示す図、図18(B)はライトデータチャネルの信号波形の一例を示す図である。
【0093】
或るマスターユニット12とスレーブユニット13を繋ぐライトデータチャネル42では、例えば、図18(A)のようなステートマシン90、及び図18(B)のような信号波形となる。ライトデータチャネル42では、マスターユニット12からVALID<M>が出され、バス11からREADY<M>が出されて、ライトデータ(図18(B)の例ではD1,D2,D3,D4の4転送のDATA<M>)の転送が開始される。マスターユニット12からは、ライトデータの最後尾D4を示す信号LAST<M>が併せて転送される。
【0094】
そして、バス11からVALID<S>が出され、スレーブユニット13からREADY<S>が出されて、スレーブユニット13にライトデータ(図18(B)の例ではD1,D2,D3,D4の4転送のDATA<S>)が転送される。スレーブユニット13には、ライトデータの最後尾D4を示す信号LAST<S>が併せて転送される。
【0095】
ライトデータチャネル42は、マスターユニット12から1転送目のライトデータD1の転送が開始されてから、スレーブユニット13で最後尾のライトデータD4が受け取られるまでの期間、ビジー状態であり、その期間がビジー期間Tとなる。
【0096】
図19(A)はライト応答チャネルのステートマシンの一例を示す図、図19(B)はライト応答チャネルの信号波形の一例を示す図である。
或るマスターユニット12とスレーブユニット13を繋ぐライト応答チャネル43では、例えば、図19(A)のようなステートマシン90、及び図19(B)のような信号波形となる。ライト応答チャネル43では、スレーブユニット13からVALID<S>が出され、バス11からREADY<S>が出された後、バス11からVALID<M>が出され、マスターユニット12からREADY<M>が出される。スレーブユニット13からのライト応答の信号は、バス11からスレーブユニット13にREADY<S>が出されることで転送が開始され、マスターユニット12からバス11にREADY<M>が出されることで、マスターユニット12で受け取られる。
【0097】
ライト応答チャネル43は、READY<S>が出されてからREADY<M>が出されるまでの期間、ビジー状態であり、その期間がビジー期間Tとなる。
図20(A)はリードアドレスチャネルのステートマシンの一例を示す図、図20(B)はリードアドレスチャネルの信号波形の一例を示す図である。
【0098】
或るマスターユニット12とスレーブユニット13を繋ぐリードアドレスチャネル44では、例えば、図20(A)のようなステートマシン90、及び図20(B)のような信号波形となる。リードアドレスチャネル44では、マスターユニット12からVALID<M>が出され、バス11からREADY<M>が出された後、バス11からVALID<S>が出され、スレーブユニット13からREADY<S>が出される。マスターユニット12からのリードアドレスの信号は、バス11からマスターユニット12にREADY<M>が出されることで転送が開始され、スレーブユニット13からバス11にREADY<S>が出されることで、スレーブユニット13で受け取られる。
【0099】
リードアドレスチャネル44は、READY<M>が出されてからREADY<S>が出されるまでの期間、ビジー状態であり、その期間がビジー期間Tとなる。
図21(A)はリードデータチャネルのステートマシンの一例を示す図、図21(B)はリードデータチャネルの信号波形の一例を示す図である。
【0100】
或るマスターユニット12とスレーブユニット13を繋ぐリードデータチャネル45では、例えば、図21(A)のようなステートマシン90、及び図21(B)のような信号波形となる。リードデータチャネル45では、スレーブユニット13からVALID<S>が出され、バス11からREADY<S>が出されて、リードデータ(図21(B)の例ではD1,D2,D3,D4の4転送のDATA<S>)の転送が開始される。スレーブユニット13からは、リードデータの最後尾D4を示す信号LAST<S>が併せて転送される。
【0101】
そして、バス11からVALID<M>が出され、マスターユニット12からREADY<M>が出されて、マスターユニット12にリードデータ(図21(B)の例ではD1,D2,D3,D4の4転送のDATA<M>)が転送される。マスターユニット12には、リードデータの最後尾D4を示す信号LAST<M>が併せて転送される。
【0102】
リードデータチャネル45は、スレーブユニット13から1転送目のリードデータD1の転送が開始されてから、マスターユニット12で最後尾のリードデータD4が受け取られるまでの期間、ビジー状態であり、その期間がビジー期間Tとなる。
【0103】
競合モニタ50は、図13に示したように、モニタする各チャネルについて、ステートマシン90のビジー(BUSY)からアイドル(IDLE)への遷移時に、転送された信号の各種情報を取得する。即ち、競合モニタ50が、ステートマシン部51により、データ種類(ライト及びリードデータの場合)、ビジー期間及び競合候補チャネルを示す情報を取得する。そして、競合モニタ50は、取得されたこれらの情報を、DB80a(図13及び図15)に記録する。同様に、競合モニタ50は、各チャネルについて、ステートマシン90のビジーからアイドルへの遷移時に、転送された信号のデータ種類、最短ビジー期間を示す情報を取得し、最短ビジー期間DB82(図13及び図14)に記録している。
【0104】
競合モニタ50は、一のチャネルのビジー期間に少なくとも一部が重なるビジー期間のチャネルを、その一のチャネルの競合候補チャネルとする。
図22は競合候補チャネルの説明図である。
【0105】
今、マスターユニット12とスレーブユニット13の組み合わせとしてM1−S1を考え、そのライトデータチャネル42に着目する。図22には、このM1−S1のライトデータチャネル42のビジー期間T1を模式的に図示している。図22には、M3−S2のリードアドレスチャネル44のビジー期間Ta、M3−S1のリードデータチャネル45のビジー期間Tb、M2−S2のライトアドレスチャネル41のビジー期間Tcを、併せて模式的に図示している。
【0106】
この図22の例では、M3−S1のリードデータチャネル45のビジー期間Tbが、着目するM1−S1のライトデータチャネル42のビジー期間T1に部分的に重なる。このような場合、M3−S1のリードデータチャネル45が、着目するM1−S1のライトデータチャネル42の競合候補チャネルとなる。
【0107】
図22に示したM3−S2のリードアドレスチャネル44、M2−S2のライトアドレスチャネル41は、それらのビジー期間Ta,Tcが、着目するM1−S1のライトデータチャネル42のビジー期間T1と重ならないため、競合候補チャネルとはならない。
【0108】
競合モニタ50は、ステートマシン部51の競合候補チャネル取得部51cにより、各チャネル(ライト及びリードデータの場合はその種類毎)について、着目チャネルのビジー期間に少なくとも一部が重なるビジー期間となるチャネルを競合候補チャネルとする。そして、競合モニタ50は、その競合候補チャネルの情報をDB80aに記録する。
【0109】
検証装置60では、以上のようにして競合モニタ50のステートマシン部51で各種情報が取得され、それらが記録された最短ビジー期間DB82、DB80aが得られた後に、比較部52での処理が行われる。比較部52では、ステートマシン部51で取得された情報のうち、DB80aに記録された各チャネルのビジー期間を、最短ビジー期間DB82に記録された最短ビジー期間と比較する処理が行われる。
【0110】
例えば、競合モニタ50は、ステートマシン部51により、図13に示したようなM1−S1のライトデータチャネル42のステートマシン90における、ビジーからアイドルへの遷移時に、転送されたライトデータのデータ種類及びビジー期間を示す情報を取得する。その際、競合モニタ50は、ステートマシン部51により、競合候補チャネルを示す情報も取得する。競合モニタ50は、取得した情報をDB80aに記録する。ここでは一例として、M1−S1のライトデータチャネル42のデータ種類がINCR/8byte/4転送、ビジー期間が20サイクル、競合候補チャネルがM3−S1のリードデータチャネル45(図22)である場合の情報80aaを例示している。尚、DB80aには、このような情報が、マスターユニット数×スレーブユニット数×チャネル数×データ種類だけ含まれている。
【0111】
最短ビジー期間DB82には、図13に示したように、DB80aの情報80aaに対応する、M1−S1のライトデータチャネル42のデータ種類がINCR/8byte/4転送である場合の最短ビジー期間が記録されている。ここでは一例として、その最短ビジー期間が16サイクルである情報82aaを例示している。尚、最短ビジー期間DB82には、このような情報が、マスターユニット数×スレーブユニット数×チャネル数×データ種類だけ含まれている。
【0112】
競合モニタ50は、比較部52により、M1−S1のライトデータチャネル42について、DB80aに含まれる情報80aaのビジー期間を、最短ビジー期間DB82に含まれる情報82aaの最短ビジー期間と比較する。この図13の例では、ビジー期間が20サイクルで、最短ビジー期間が16サイクルであるため、競合モニタ50は、比較部52により、ビジー期間が最短ビジー期間よりも長いと判定する。競合モニタ50が、このようにビジー期間が最短ビジー期間よりも長いと判定した場合、M1−S1のライトデータチャネル42の競合候補チャネルであったM3−S1のリードデータチャネル45は、競合相手チャネルとなる。
【0113】
図23は競合相手チャネルの説明図である。
図23には、M1−S1のライトデータチャネル42のビジー期間T1及び最短ビジー期間T0、並びにM3−S1のリードデータチャネル45のビジー期間Tbを模式的に図示している。M3−S1のリードデータチャネル45のビジー期間Tbは、M1−S1のライトデータチャネル42のビジー期間T1に部分的に重なっている。
【0114】
図23に示すように、M1−S1のライトデータチャネル42のビジー期間T1は、最短ビジー期間T0よりも長くなっている。上記のように、競合モニタ50が、ビジー期間T1と最短ビジー期間T0を比較し、ビジー期間T1が最短ビジー期間T0よりも長いと判定した場合、ここではM1−S1のライトデータチャネル42に競合が発生したとされる。上記図13の例では、この競合の候補を、M3−S1のリードデータチャネル45としている(図22)。競合候補チャネルのM3−S1のリードデータチャネル45は、競合モニタ50でM1−S1のライトデータチャネル42のビジー期間T1が最短ビジー期間T0よりも長いと判定された場合、M1−S1のライトデータチャネル42の競合相手チャネルとなる。
【0115】
尚、図23には、M3−S2のリードアドレスチャネル44のビジー期間Ta、M2−S2のライトアドレスチャネル41のビジー期間Tcを併せて模式的に図示している。これらのビジー期間Ta,Tcは、M1−S1のライトデータチャネル42のビジー期間T1とは重ならないため、競合候補チャネルとはならず、競合相手チャネルともならない。
【0116】
図13に例示したように、M1−S1のライトデータチャネル42のビジー期間が最短ビジー期間よりも長いと判定した場合、競合モニタ50は、カバレッジチェック部53により、記録部80のカバレッジ表DB86に記録を行う。例えば、DB80aに含まれる情報群から、ビジー期間が最短ビジー期間よりも長くなる情報(上記の情報80aa等)を抽出し、カバレッジ表DB86に記録する。
【0117】
この図13の例では、レベル1のカバレッジ表31(図6)に対応する情報として、着目するM1−S1の組み合わせを示す情報と、その競合相手であるM3−S1の組み合わせを示す情報とが、関連付けられて記録される。レベル2のカバレッジ表32(図7)に対応する情報として、ライトデータチャネル42を示す情報と、リードデータチャネル45を示す情報とが、関連付けられて記録される。レベル3のカバレッジ表33(図8)に対応する情報として、INCR/8byte/4転送を示す情報が記録される。
【0118】
検証装置60は、カバレッジ表DB86に記録された情報に基づき、レベル1〜3のカバレッジ表31〜33を生成し、検証装置60が備える表示装置104a等に出力する。
図24図27はカバレッジ表の出力例を示す図である。
【0119】
図13の例の場合、例えば、レベル1〜3のカバレッジ表31〜33として、図24に例示するようなカバレッジ表31〜33が出力される。
例えば、レベル1のカバレッジ表31として、カバレッジ表DB86に関連付けられて記録された情報に基づき、着目する組み合わせがM1−S1でその競合相手の組み合わせがM3−S1である欄にマーク31Aが付与されたカバレッジ表31が出力される。レベル2のカバレッジ表32として、カバレッジ表DB86に関連付けられて記録された情報に基づき、着目チャネルがライトデータチャネル42でその競合チャネルがリードデータチャネル45である欄にマーク32Aが付与されたカバレッジ表32が出力される。レベル3のカバレッジ表33として、カバレッジ表DB86に記録された情報に基づき、データ種類がINCR/8byte/4転送である欄にマーク33Aが付与されたカバレッジ表33が出力される。
【0120】
レベル1〜3のカバレッジ表31〜33の各欄について、マーク31A,32A,33Aが付与されているか否かにより、競合が発生する条件で検証が行われたか否かを評価することが可能になる。
【0121】
ここで、マーク31A,32A,33Aの付与方法の一例について述べる。
例えば、レベル3のカバレッジ表33の欄に付与するマーク33Aは、図24に示したように、黒丸(●)印とする。
【0122】
レベル2のカバレッジ表32の欄に付与するマーク32Aは、図24に示したように、その欄に対応する、最下層のレベル3のカバレッジ表33に設定されている全てのデータ種類について検証が行われるまでは白丸(○)印を付与する。そして、最下層のレベル3のカバレッジ表33に設定されている全てのデータ種類について検証が行われた時には、図25に示すように、レベル2のカバレッジ表32の欄にマーク32Aとして●印を付与する。
【0123】
また、レベル1のカバレッジ表31の欄に付与するマーク31Aは、図24に示したように、その欄に対応する、より下層のレベル2のカバレッジ表32に設定されている全てのチャネル組み合わせについて検証が行われるまでは○印を付与する。そして、下層のレベル2のカバレッジ表32に設定されている全てのチャネル組み合わせについて検証が行われた時には、図26に示すように、レベル1のカバレッジ表31の欄にマーク31Aとして●印を付与する。
【0124】
このようにマーク31A,32A,33Aを付与することで、レベル1〜3のカバレッジ表31〜33からそれぞれ、検証対象10の競合検証に用いたシナリオ72でどれだけの競合を発生させて検証が行われたのか、その検証の網羅性を評価することが可能になる。また、このようにマーク31A,32A,33Aを付与することで、レベル1〜3のカバレッジ表31〜33からそれぞれ、検証対象10で起こり得る競合のうち、どれだけの競合を発生させて検証が行われたのか、その検証の網羅性を評価することが可能になる。上記の例では、検証対象10で起こり得る全ての競合が検証された場合、図27に示すように、レベル1のカバレッジ表31に設定されている全ての欄に●印が付与されるようになる。
【0125】
様々なシナリオ72(データ種類、競合するチャネル組み合わせ、マスターユニット12とスレーブユニット13の組み合わせ、信号の転送タイミング等を変更したシナリオ)を用いて競合検証を行うことで、検証対象10に対して網羅的な競合検証が実施できる。
【0126】
検証装置60では、このようなカバレッジ表31〜33を生成、出力できるように、各種情報が記録部80のカバレッジ表DB86に記録される。
上記図24図27に示したようなカバレッジ表31〜33は、例えば、検証装置60が備える表示装置104aに表示させることができる。尚、カバレッジ表31〜33は、カバレッジ表31〜33のうちの複数をまとめて表示させたり、カバレッジ表31〜33のうちのいずれかを個別に表示させたりすることができる。
【0127】
尚、上記の競合検証手法(図13)の説明では、M1−S1のライトデータチャネル42の競合候補チャネル及び競合相手チャネルがM3−S1のリードデータチャネル45のみである場合(図22及び図23)を例示した。競合候補チャネル及び競合相手チャネルが複数存在する場合には、例えば、それぞれについてレベル1〜3のカバレッジ表31〜33の該当欄にマーク31A,32A,33Aが付与されるように、カバレッジ表DB86への記録を行う。或いは、1つの競合候補チャネル及び競合相手チャネルが存在する場合のみ、その着目チャネルについてカバレッジ表DB86への記録を行い、複数の競合候補チャネル及び競合相手チャネルが存在する場合には、カバレッジ表DB86への記録を行わないようにする。或いはまた、競合候補チャネル及び競合相手チャネルが複数生じないように、予めシナリオ72の作成を行うようにする。
【0128】
また、上記の競合検証手法の説明では、検証対象10のバス11のプロトコルとしてAXIを採用した場合を例示した。上記の競合検証手法は、このほか、バス11にAHB(Advanced High-performance Bus)、APB(Advanced Peripheral Bus)等の他のプロトコルを採用した検証対象10を用いる場合にも、同様に適用可能である。
【0129】
図28は競合検証手法の適用例を示す図である。
この図28に示すような構成を有する検証対象10aに上記のような競合モニタ50を接続し、上記のような競合検証を実施することもできる。
【0130】
図28に示す検証対象10aは、AXI、AHB、APBを採用したバス11b、及びAHBを採用したバス11cを有し、それらに各種ユニットが接続されている。ここではバス11b,11cに接続されるユニットとして、CPU15a、SRAM15b、SDRAM15c、DMAC15d、NF15e、REG(REGister)15f、USB(Universal Serial Bus)15g、MS(Memory Stick)15h、SD(Secure Digital memory card)15iを例示している。
【0131】
バス11b,11cと各ユニットの間を繋ぐ、図28に示した矢印の向きは、マスターユニットからスレーブユニットへの信号転送の向きを表している。ここで、図28に示した実線の矢印はAXIを介した信号転送の向きを、点線の矢印はAHBを介した信号転送の向きを、鎖線の矢印はAPBを介した信号転送の向きを、それぞれ表している。
【0132】
バス11b,11cと各ユニットの間(ポイント16)にそれぞれ競合モニタ50が接続され、転送信号がモニタされる。このようにAXI、AHB、APBといった複数のプロトコルを採用した検証対象10aに対しても、上記のような競合検証手法を用いることが可能である。
【0133】
以上説明したように、この競合検証手法では、マスターユニットとスレーブユニットの間を信号が転送される際のビジー期間を用い、ビジー期間が最短ビジー期間よりも長くなった場合、競合が発生したと判定する。これにより、検証対象内の競合の発生を明確に検証することができる。
【0134】
また、この競合検証手法では、競合が発生したマスターユニットとスレーブユニットの組み合わせに関する情報を示すカバレッジ表又はそのDBから、どれだけの競合が検証されたのかを明確にすることができる。更に、マスターユニットとスレーブユニットの組み合わせに加え、競合が発生したチャネルの組み合わせ、チャネルを転送された信号のデータ種類に関する情報をカバレッジ表又はDBに記録することで、発生した競合について、より詳細な情報が得られる。
【0135】
この競合検証手法では、カバレッジ表又はそのDBから、検証対象にどれだけ競合を発生させて検証したのか、どの部分で競合を発生させて検証したのか、といった点を明確にし、検証の重複や漏れの発生を抑えて、網羅的な競合検証を実施することができる。或いは、カバレッジ表又はそのDBから、検証対象の検証に用いたシナリオでどれだけ競合を発生させて検証することができたのか、行ったその競合検証の網羅性を評価することができる。この競合検証手法によれば、競合検証の検証精度の向上、検証期間の短縮、検証コストの低減を図ることができる。
【0136】
また、この競合検証手法では、検証対象のマスターユニット及びスレーブユニットとバスとの間のチャネルに競合モニタを接続し、ビジー期間に基づき競合検証を行う。そのため、様々な構成のバスを備える検証対象について、競合検証を行うことができる。たとえ検証対象のバスの構成が不明であっても、競合モニタを用い、競合検証を行うことができる。
【符号の説明】
【0137】
10,10a 検証対象
11,11b,11c,109 バス
11a スイッチ
12,M1,M2,M3 マスターユニット
13,S1,S2,S3 スレーブユニット
15a CPU
15b SRAM
15c SDRAM
15d DMAC
15e NF
15f REG
15g USB
15h MS
15i SD
16 ポイント
21,21a,21d,22,23,23a,23b,23c,23d 転送経路
31,32,33 カバレッジ表
31a,31b,31c,32a,32b,32c 欄
31A,32A,33A マーク
41 ライトアドレスチャネル
42 ライトデータチャネル
43 ライト応答チャネル
44 リードアドレスチャネル
45 リードデータチャネル
50 競合モニタ
51 ステートマシン部
51a データ種類取得部
51b ビジー期間取得部
51c 競合候補チャネル取得部
52 比較部
53 カバレッジチェック部
60 検証装置
70,71,72 シナリオ
80 記録部
80a DB
80aa,82aa 情報
81 データ種類DB
82 最短ビジー期間DB
83 ビジー期間DB
84 競合候補チャネルDB
85 比較結果DB
86 カバレッジ表DB
90 ステートマシン
100 コンピュータ
101 プロセッサ
102 RAM
103 HDD
104 グラフィック処理装置
104a 表示装置
105 入力インタフェース
105a キーボード
105b マウス
106 光学ドライブ装置
106a 光ディスク
107 機器接続インタフェース
107a メモリ装置
107b メモリリーダライタ
107bb メモリカード
108 ネットワークインタフェース
110 ネットワーク
T0 最短ビジー期間
T,T1,Ta,Tb,Tc ビジー期間
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28