説明

集積回路装置、検証装置及び検証方法

【課題】集積回路装置が仕様通りとなっているかの検証の容易化を図る。
【解決手段】集積回路装置10は、マスターモジュール11と、マスターモジュール11に接続されたインターコネクト12と、インターコネクト12によってマスターモジュール11の接続先とされるスレーブモジュール13を含む。集積回路装置10は更に、そのスレーブモジュール13に対してインターコネクト12から送信されてくる読み出し命令信号を受信する固定値応答回路14を含む。インターコネクト12から読み出し命令信号を受信した固定値応答回路14は、インターコネクト12によってマスターモジュール11の接続先とされたスレーブモジュール13固有の固定値を、インターコネクト12に送信する。この固定値に基づき、接続先が仕様通りか否かを検証する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路装置並びに、集積回路装置を検証する検証装置及び検証方法に関する。
【背景技術】
【0002】
システムLSI(Large Scale Integration)等の集積回路装置に関し、所定のマスターモジュールを、インターコネクト(バススイッチ、バスマトリックス等とも称される)を介して、所定のスレーブモジュールに接続する技術が知られている。インターコネクトでは、アドレス信号等に基づいて接続先のスレーブモジュールが決定される。
【0003】
更に、マスターモジュールとスレーブモジュールの間に、複数のインターコネクトを設ける技術、複数のインターコネクト間をバスブリッジで接続する技術も知られている。また、インターコネクトに接続されたマスターモジュールとスレーブモジュールの、異なる複数の組み合わせに対して、トランザクションを同時に行えるようにする技術も知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−199859号公報
【特許文献2】特開2004−126646号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記のようにマスターモジュールとスレーブモジュールをインターコネクトで接続する場合には、マスターモジュールが、インターコネクトによって、仕様通りのスレーブモジュールに接続されるか、検証を行う場合がある。検証方法としては、インターコネクトの回路構成や信号波形を目視で検証する方法がある。また、論理シミュレーションを行い、所定の読み出し命令に対する、マスターモジュールに接続されたスレーブモジュールからの読み出し値に基づき、当該スレーブモジュールが仕様通りの接続先であるのかを検証する方法もある。
【0006】
しかし、目視で検証する方法では、マスターモジュールとスレーブモジュールの間に複数のインターコネクトが設けられる等、回路構成が比較的複雑になると、適正な検証が困難になる場合がある。また、論理シミュレーションで検証する方法では、ある決められた動作フローに従ってはじめて、スレーブモジュールから適正な読み出し値が得られる場合等もあり、スレーブモジュールから適正な読み出し値が得られないことが起こり得る。このような場合には、目視による検証作業が行われることになる。
【0007】
このように、マスター、スレーブの各モジュールと、インターコネクトを含む集積回路装置においては、インターコネクトを介したモジュール間の接続がその集積回路装置の仕様通りとなっているか否かの検証が必ずしも容易でなかった。
【課題を解決するための手段】
【0008】
本発明の一観点によれば、自ら命令を発行する第1のモジュールと、前記第1のモジュールに接続され、受信した信号を当該信号に基づいて指定される前記第1のモジュールの接続先に転送するインターコネクトと、前記インターコネクトによって前記第1のモジュールの接続先に指定される第2のモジュールと、前記インターコネクトから前記第2のモジュールに対する読み出し命令信号が送信されたときに、前記読み出し命令信号を受信して前記第2のモジュール固有の固定値を前記インターコネクトに送信する固定値応答回路とを含む集積回路装置が提供される。
【0009】
また、本発明の一観点によれば、このような集積回路装置のハードウェアモデルを用いた検証装置及び検証方法が提供される。
【発明の効果】
【0010】
集積回路装置或いはそのハードウェアモデルにおける、インターコネクトを介したモジュール間の接続が、仕様通りとなっているか否かの検証を容易に行うことが可能になる。
【図面の簡単な説明】
【0011】
【図1】集積回路装置の構成例を示す図である。
【図2】第1の実施の形態に係るシステムLSIの構成例を示す図である。
【図3】第1の実施の形態に係るシステムLSIの要部の説明図である。
【図4】固定値応答回路の一例の説明図である。
【図5】アドレスマップの一例を示す図である。
【図6】論理シミュレーション装置の構成例を示す図である。
【図7】第1の実施の形態に係る論理シミュレーション装置の一例を示す図である。
【図8】第1の実施の形態に係る論理シミュレーションフローの一例を示す図である。
【図9】論理シミュレーション装置の別例を示す図である。
【図10】論理シミュレーションフローの別例を示す図である。
【図11】第1のバスプロトコルの適用例を説明する図である。
【図12】第2のバスプロトコルの適用例を説明する図である。
【図13】第2の実施の形態に係るシステムLSIの要部の説明図である。
【図14】第3の実施の形態に係るシステムLSIの構成例を示す図である。
【図15】第3の実施の形態に係るシステムLSIの要部の説明図である。
【図16】第3の実施の形態に係る論理シミュレーション装置の一例を示す図である。
【図17】第3の実施の形態に係る論理シミュレーション時のマスターモジュールの説明図である。
【図18】第3の実施の形態に係る論理シミュレーションフローの一例を示す図である。
【図19】第4の実施の形態に係るシステムLSIの要部の説明図である。
【図20】論理シミュレーション装置のハードウェアの構成例を示す図である。
【発明を実施するための形態】
【0012】
図1は集積回路装置の構成例を示す図である。
図1に示す集積回路装置10は、マスターモジュール11、インターコネクト12、スレーブモジュール13及び固定値応答回路14を有している。マスターモジュール11は、インターコネクト12に接続され、インターコネクト12には、スレーブモジュール13及び固定値応答回路14が接続される。インターコネクト12は、例えば、マスターモジュール11と、その接続先(アクセス先)となるスレーブモジュール13の間を相互に接続する機能を有している。
【0013】
マスターモジュール11は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DMA(Direct Memory Access)コントローラに代表されるようなモジュールで、自らバスにトランザクション等の命令を発行するモジュールである。
【0014】
スレーブモジュール13は、メモリコントローラ、インターラプトコントローラ、タイマに代表されるようなモジュールで、マスターモジュールからバスを通してトランザクション等の命令を受け、それに対する応答を返すようなモジュールである。
【0015】
インターコネクト12は、このようなマスターモジュール11とスレーブモジュール13の間を相互に接続する機能を有するモジュールである。
尚、図1には、インターコネクト12に、マスターモジュール11と、その接続先となるスレーブモジュール13が、1つずつ接続されている場合を例示している。このほか、インターコネクト12には、複数のマスターモジュール11が接続されてもよく、また、複数のスレーブモジュール13が接続されてもよい。この場合、インターコネクト12は、所定の制御信号に基づき、所定の組み合わせのマスターモジュール11とスレーブモジュール13の間を相互に接続する機能を有していてもよい。また、固定値応答回路14は、複数のスレーブモジュール13のそれぞれに対応して、或いは複数のスレーブモジュール13のうちの一部に対応して、設けることができる。
【0016】
固定値応答回路14は、インターコネクト12から、マスターモジュール11の接続先となるスレーブモジュール13に対して送信される信号を、受信する。集積回路装置10では、このような、スレーブモジュール13を接続先とする信号を、例えば、選択器(選択回路)を用いて、スレーブモジュール13か固定値応答回路14のいずれかに受信させる。固定値応答回路14は、インターコネクト12から、スレーブモジュール13を接続先とする信号を受信したときに、そのスレーブモジュール13に設定されている固有の値(固定値)を、インターコネクト12に送信(応答)する。
【0017】
このような構成を有する集積回路装置10によれば、スレーブモジュール13がマスターモジュール11の接続先として適正であるか否かを容易に知ることができる。即ち、この集積回路装置10の固定値応答回路14は、インターコネクト12によってマスターモジュール11の接続先とされたスレーブモジュール13に送られてくる信号を、スレーブモジュール13に代わって受信する。当該信号を受信した固定値応答回路14は、スレーブモジュール13固有の固定値を、インターコネクト12に応答する。この固定値応答回路14から応答される固定値により、インターコネクト12によってマスターモジュール11の接続先とされたスレーブモジュール13を、当該スレーブモジュール13の内部で処理を行わせることなく、識別することができる。これにより、マスターモジュール11とスレーブモジュール13の間のインターコネクト12による接続が適正か否か、換言すればその接続が集積回路装置10の仕様通りとなっているか否かを、容易に知ることができる。
【0018】
尚、このような集積回路装置10の製造にあたり、論理シミュレーションによる検証を行う場合には、図1のような回路構成を有する、ハードウェア記述言語で記述された、ハードウェアモデルが用いられる。
【0019】
以下、集積回路装置及びその検証について、システムLSI及びその検証を例に、より詳細に説明する。
まず、第1の実施の形態について説明する。
【0020】
図2は第1の実施の形態に係るシステムLSIの構成例を示す図、図3は第1の実施の形態に係るシステムLSIの要部の説明図である。
図2に示すシステムLSI10Aは、マスターモジュール100、スレーブモジュール300、及びそれらを接続するインターコネクト200を有している。ここでは一例として、4つのマスターモジュール100(M0,M1,M2,M3)と、4つのスレーブモジュール300(S0,S1,S2,S3)を、1つのインターコネクト200(IC)で接続する場合を例示している。
【0021】
マスターモジュール100は、例えば、マスターモジュールM0,M1をCPU、マスターモジュールM2をDMAコントローラ、マスターモジュールM3をGPUとすることができる。また、スレーブモジュール300は、例えば、スレーブモジュールS0をメモリコントローラ、スレーブモジュールS1をインターラプトコントローラ、スレーブモジュールS2を内部メモリ、スレーブモジュールS3をシステム制御レジスタとすることができる。
【0022】
各マスターモジュール100は、インターコネクト200との間で信号のやり取りを行うためのバスインタフェース(I/F)110(MB0,MB1,MB2,MB3)を有している。マスターモジュール100は、アドレス信号、バス制御信号等を含む制御信号(例えば、リードトランザクション等の読み出し命令信号)を発行する。マスターモジュール100で発行された信号は、バスI/F110を介して、インターコネクト200に送信される。
【0023】
インターコネクト200は、図2に示したように、バスI/F210,240、デコード部220(D0,D1,D2,D3)、及び調停部230(A0,A1,A2,A3)を有している。
【0024】
バスI/F210は、各マスターモジュール100(バスI/F110)に対応して設けられる。インターコネクト200は、各バスI/F210を介して、各マスターモジュール100との間で信号のやり取りを行う。また、バスI/F240は、各スレーブモジュール300に対応して設けられる。インターコネクト200は、各バスI/F240を介して、各スレーブモジュール300との間で信号のやり取りを行う。
【0025】
インターコネクト200のデコード部220及び調停部230はそれぞれ、各マスターモジュール100及び各スレーブモジュール300に対応して設けられる機能ブロックである。
【0026】
各デコード部220は、対応するマスターモジュール100から送信されてくる、アドレス信号等を含む制御信号を、デコードする。各デコード部220は、そのデコード結果に従って、アクセス先の調停部230との間をバスで接続する。即ち、デコード部220は、それに対応するマスターモジュール100からの信号を、その信号に基づいて指定されるアクセス先のスレーブモジュール300に対して転送する処理を行う。
【0027】
各調停部230は、複数(ここでは4つ)のデコード部220から転送されてくる、リードトランザクション等の信号を、調停する。各調停部230は、その調停結果に従って、転送されてくる信号を、バスI/F240を介して、対応するスレーブモジュール300に送信する。
【0028】
各スレーブモジュール300は、インターコネクト200との間で信号のやり取りを行うためのバスI/F310(SB0,SB1,SB2,SB3,SB)を有している。更に、各スレーブモジュール300は、バスI/F310に接続され、各スレーブモジュール300の処理機能を実現する機能ブロック(回路ブロック)320(SF0,SF1,SF2,SF3,SF)を有している。
【0029】
更にまた、図2及び図3に示したように、各スレーブモジュール300(S0〜S3,S)は、内部に設けられた固定値応答回路400(SR0,SR1,SR2,SR3,SR)及び選択器410(SS0,SS1,SS2,SS3,SS)を有している。
【0030】
固定値応答回路400は、所定の入力を受け付けたときに、当該固定値応答回路400が設けられているスレーブモジュール300に固有の値(固定値)を含んだ信号を出力する。固定値は、予め各スレーブモジュール300に対してそれぞれ設定される。
【0031】
選択器410は、選択信号であるテスト信号(TEST)に基づき、インターコネクト200から送られてくる信号を、バスI/F310を介して機能ブロック320に送信するか、固定値応答回路400に送信するかの選択(切り替え)を行う。インターコネクト200からの信号が機能ブロック320に送信されると、スレーブモジュール300は、その機能ブロック320の処理を実行し、その処理結果を、バスI/F310及び選択器410を介してインターコネクト200に応答する。一方、インターコネクト200からの信号が固定値応答回路400に送信されると、スレーブモジュール300は、当該スレーブモジュール300に設定された固定値を、固定値応答回路400から選択器410を介してインターコネクト200に応答する。
【0032】
図4は固定値応答回路の一例の説明図である。
図4に示す固定値応答回路400は、有効転送判定回路401及び応答信号生成回路402を含んでいる。
【0033】
有効転送判定回路401は、インターコネクト200から、選択器410を介して入力される信号に基づき、当該有効転送判定回路401が含まれるスレーブモジュール300での処理が実行可能な、有効な信号が転送されたか否かを判定する。例えば、インターコネクト200からの信号に含まれている、アドレス信号、及び転送の継続又は終了を示すバス制御信号から、転送された信号が、スレーブモジュール300に対する転送が終了した有効な信号か否かが判定される。
【0034】
応答信号生成回路402は、有効転送判定回路401において、有効な信号が転送されたと判定された場合に、当該応答信号生成回路402が含まれるスレーブモジュール300の固定値を含む信号を生成する。更に、応答信号生成回路402は、生成したその固定値を含む信号が、転送先のモジュールでの処理が実行可能な、有効な信号であることを示すバス制御信号を生成する。応答信号生成回路402で生成された、固定値及びバス制御信号を含む信号(応答信号)は、選択器410を介してインターコネクト200に送信(応答)される。
【0035】
固定値応答回路400からインターコネクト200に送信された信号は、その固定値応答回路400を含むスレーブモジュール300に対して読み出し命令信号を発行したマスターモジュール100に、調停部230及びデコード部220を介して返信される。
【0036】
上記構成を有するシステムLSI10Aにおいて、その仕様通りの処理動作を実現するためには、各マスターモジュール100及び各スレーブモジュール300の処理動作に加え、それらを接続するインターコネクト200の処理動作が検証される。
【0037】
各マスターモジュール100自体の処理動作、及び各スレーブモジュール300自体の処理動作については、機能シミュレーション等によって検証が行われる。
インターコネクト200については、ここでは、デコード部220のデコード処理動作が、システムLSI10Aのアドレスマップの仕様と同じになるかを、例えば、システムLSI10Aのハードウェアモデルを用いた論理シミュレーションによって検証する。
【0038】
まず、アドレスマップの一例を図5に示す。
この図5には、各マスターモジュール100(M0〜M3)から見た、アドレス信号(ADR)0xN(N=00000000〜FFFFFFFF)とスレーブモジュール300(S0〜S3)の関係の一例を示している。このような関係は、システムLSI10Aの仕様(仕様書)に基づいて設定される。
【0039】
図5のアドレスマップには、便宜上、各スレーブモジュールS0〜S3に対して設定されている固定値の一例を、併せて示している。即ち、この例では、スレーブモジュールS0には0x1900BA5E、スレーブモジュールS1には0x1901BA5E、スレーブモジュールS2には0x1902BA5E、スレーブモジュールS3には0x1903BA5Eの各固定値が設定されている。上記の各スレーブモジュール300(S0〜S3)に設けられた固定値応答回路400からは、このような固定値がそれぞれ出力されるようになっている。
【0040】
尚、この図5のアドレスマップに例示した、各スレーブモジュールS0〜S3の固定値は、後述のようにアドレス信号ADRに基づいて行われる論理シミュレーションの出力値として期待される値(期待値)と言うことができる。
【0041】
インターコネクト200は、本来、デコード部220に送信されてくる信号に含まれるアドレス信号ADRに基づき、図5のようなアドレスマップで規定されるスレーブモジュールS0〜S3をアクセス先として、信号の転送を行う。第1の実施の形態では、インターコネクト200のデコード部220が、図5のようなアドレスマップ仕様通りの処理動作(デコード及びそれに基づく転送)を行うか、論理シミュレーションによって固定値応答回路400から出力される固定値を基に、検証する。
【0042】
まず、論理シミュレーションによる検証に用いる検証装置(論理シミュレーション装置)について述べる。
図6は論理シミュレーション装置の構成例を示す図である。
【0043】
図6に示す論理シミュレーション装置500は、ハードウェアモデル510、テストベンチ550、シミュレーション部520、照合部530、及び記憶部540を有している。
【0044】
ハードウェアモデル510は、検証対象のシステムLSIをハードウェア記述言語で記述したモデルである。ハードウェアモデル510は、検証対象のシステムLSIの仕様書に基づいて作成され、論理シミュレーション装置500に実装される。また、作成されたハードウェアモデル510について、その動作を検証するためのテストベンチ550が作成され、ハードウェアモデル510と共に、論理シミュレーション装置500に実装される。
【0045】
シミュレーション部520は、テストベンチ550、論理シミュレーションに要する各種データやプログラム等(シミュレーション情報560)を用いて、ハードウェアモデル510の論理シミュレーションを実行する。尚、シミュレーション情報560は、ハードウェアモデル510及びテストベンチ550と共に、論理シミュレーション装置500に実装されてもよい。シミュレーション部520は、論理シミュレーションを実行し、ハードウェアモデル510の出力値を取得する。シミュレーション部520は、その取得された出力値を、記憶部540に記憶する。
【0046】
照合部530は、シミュレーション部520で取得された出力値を、予め設定された期待値と比較し、出力値が期待値と一致するか否かを判定する。照合部530は、その判定結果を示す情報を、記憶部540に記憶する。
【0047】
記憶部540は、シミュレーション部520で取得された出力値、その出力値と照合するための期待値、照合部530による判定結果等の情報を、例えばデータベース(DB)化して、記憶する。
【0048】
システムLSI10Aの処理動作を、このような論理シミュレーション装置500を用いて検証する場合について、より詳細に説明する。
図7は第1の実施の形態に係る論理シミュレーション装置の一例を示す図、図8は第1の実施の形態に係る論理シミュレーションフローの一例を示す図である。
【0049】
システムLSI10Aの論理シミュレーションによる検証では、図7に示すように、システムLSI10Aのハードウェアモデル510Aが、そのテストベンチ550Aと共に、論理シミュレーション装置500に実装される。論理シミュレーション装置500は、テストベンチ550A等に基づき、シミュレーション部520によるシミュレーションを実行する。
【0050】
その際、論理シミュレーション装置500は、まず、スレーブモジュール300に設けた選択器410に入力するテスト信号TESTを、有効(“1”)に設定する(ステップS1)。尚、テスト信号TESTを有効にするか否かは、論理シミュレーションを実行するに際して、作業者が論理シミュレーション装置500に対して設定することができる。
【0051】
次いで、論理シミュレーション装置500は、マスターモジュール100を起動する(ステップS2)。更に、論理シミュレーション装置500は、一のアドレス信号ADR0xNを読み込む命令を実行し、マスターモジュール100から、読み込んだアドレス信号ADR、及びバス制御信号を含む、読み出し命令信号を発行する(ステップS3)。例えば、論理シミュレーション装置500は、テストベンチ550A、及びマスターモジュール100を制御するマスターモジュール制御プログラム560Aに基づき、マスターモジュール100から、リードトランザクション等の読み出し命令信号を発行させる。
【0052】
マスターモジュール100から出力された読み出し命令信号は、上記のように、インターコネクト200のデコード部220でデコードされ、そのデコード結果が示すアクセス先の調停部230を経て、対応するスレーブモジュール300へと転送される。スレーブモジュール300では、テスト信号TESTが有効(“1”)に設定されていることで、インターコネクト200からの信号が、選択器410によって固定値応答回路400に送信される。そして、固定値応答回路400は、当該固定値応答回路400が含まれるスレーブモジュール300の固定値(0x1900BA5E,0x1901BA5E,0x1902BA5E,0x1903BA5E)を含んだ信号を応答する。その際、固定値応答回路400は、スレーブモジュール300の固定値を含む信号を、それが有効であることを示す信号と共に、選択器410を介してインターコネクト200に応答する。
【0053】
例えば、固定値応答回路400は、インターコネクト200から信号が到達したときに、当該固定値応答回路400が含まれるスレーブモジュール300の固定値を含む有効な信号を、そのままインターコネクト200に応答する。
【0054】
また、固定値応答回路400が図4に示したような有効転送判定回路401及び応答信号生成回路402を有している場合には、例えば、次のようにしてスレーブモジュール300の固定値を含む有効な信号を、インターコネクト200に応答する。即ち、まず、有効転送判定回路401が、インターコネクト200から有効な信号が到達したか否かを判定する。そして、有効転送判定回路401によって有効な信号が到達したと判定されたときに、応答信号生成回路402が、スレーブモジュール300の固定値を含む有効な信号を、インターコネクト200に応答する。
【0055】
固定値応答回路400からは、スレーブモジュール300の固定値を含む有効な信号が、インターコネクト200に応答されるようになっている。
インターコネクト200に応答された、スレーブモジュール300の固定値を含む信号は、そのスレーブモジュール300(固定値応答回路400)に、発行した読み出し命令信号が転送されたマスターモジュール100に返信される。論理シミュレーション装置500は、マスターモジュール100に送信された信号に含まれる固定値を、読み出し値(RD)として取得する(ステップS4)。そして、論理シミュレーション装置500は、その読み出し値RDを、現在のアドレス信号ADRと共に、記憶部540(読み出し値DB540a)に記憶する。
【0056】
論理シミュレーション装置500は、このようなシミュレーション部520によるシミュレーションの後、その論理シミュレーションで取得された読み出し値RDについて、照合部530による照合処理を実行する。
【0057】
その際、論理シミュレーション装置500は、図8に示すように、取得された読み出し値RDを、予め設定され、記憶部540(期待値DB540b)に記憶されている期待値(EXP)と照合する(ステップS5)。期待値EXPは、システムLSI10Aの仕様書570に基づいて設定される、図5に示したようなアドレスマップの、各スレーブモジュール300に対して予め設定されている固定値である。
【0058】
例えば、現在のアドレス信号ADRが0x00000000であるとする。この場合、論理シミュレーション装置500は、各マスターモジュールM0〜M3に送信されて来た読み出し値RDを、それぞれの期待値EXP、即ち0x1900BA5E,0x1902BA5E,0x1902BA5E,0x1903BA5Eと比較する。
【0059】
論理シミュレーション装置500は、このようにして現在のアドレス信号ADRで取得された読み出し値RDと、そのアドレス信号ADRに対応する期待値EXPとの比較を行う。そして、それらが一致する場合には(ステップS6)、一致することを示すPASSデータを、記憶部540(検証結果DB540c)に記憶する(ステップS7)。一致しない場合には(ステップS6)、一致しないことを示すFAILデータを記憶部540(検証結果DB540c)に記憶する(ステップS8)。PASSデータ、FAILデータは、例えば論理シミュレーション装置500にモニタが接続されていれば、そのモニタに表示させることもできる。
【0060】
その後、論理シミュレーション装置500は、現在のアドレス信号ADRが最大値であるか否かを判定し(ステップS9)、最大値でない場合には、アドレス信号ADRを変化(N=N+1)させ(ステップS10)、ステップS3に戻る。論理シミュレーション装置500は、アドレス信号ADRが最大値となるまで、ステップS3〜S10の処理を繰り返す。
【0061】
このように論理シミュレーション装置500は、アドレス信号ADRを変化させてマスターモジュール100から読み出し命令信号を発行し、スレーブモジュール300の固定値応答回路400から、そのスレーブモジュール300の固定値を取得する。そして、その取得された固定値(読み出し値RD)と、アドレスマップに対応する期待値EXPとの一致、不一致を判定する。
【0062】
これにより、マスターモジュール100で発行された読み出し命令信号が、アドレスマップ仕様通りのスレーブモジュール300に対して転送されたか否かを、取得される固定値から検証することができる。換言すれば、インターコネクト200のデコード部220が、マスターモジュール100で発行された読み出し命令信号を、アドレスマップ仕様通りのスレーブモジュール300に転送しているか否かを、取得される固定値から検証することができる。
【0063】
ここでは、インターコネクト200のデコード部220が、アドレスマップ仕様通りの処理動作を行っているかの検証に、各スレーブモジュール300の固定値応答回路400から応答される固定値を用いる。そのため、各スレーブモジュール300の機能ブロック320からの出力値を用いてデコード部220の処理動作を検証する場合に比べ、当該処理動作を容易に検証することが可能になる。
【0064】
ここで比較のため、上記のような固定値応答回路を含まないシステムLSIの検証例について説明する。
図9は論理シミュレーション装置の別例を示す図、図10は論理シミュレーションフローの別例を示す図である。
【0065】
図9に示す論理シミュレーション装置500aは、上記のような固定値応答回路400及び選択器410を含まないシステムLSIのハードウェアモデル510aが用いられている点で、図7に示した論理シミュレーション装置500と相違する。図9に示した論理シミュレーション装置500aでは、このようなハードウェアモデル510a及びそのテストベンチ550aが実装され、シミュレーションが実行される。
【0066】
論理シミュレーション装置500aは、まず、各マスターモジュール100及び各スレーブモジュール300の初期化、起動を行う(ステップS20)。
次いで、論理シミュレーション装置500aは、一のアドレス信号ADR0xNを読み込む命令を実行する。そして、論理シミュレーション装置500aは、テストベンチ550a及びマスターモジュール制御プログラム560aに基づき、マスターモジュール100から、リードトランザクション等の読み出し命令信号を発行させる(ステップS21)。
【0067】
このようにしてマスターモジュール100から出力された読み出し命令信号は、インターコネクト200のデコード部220でデコードされ、そのデコード結果が示すアクセス先の調停部230を経て、対応するスレーブモジュール300へと転送される。スレーブモジュール300に転送された信号は、バスI/F310を介して機能ブロック320へと送信される。
【0068】
機能ブロック320での処理動作が実行された結果得られた出力値は、インターコネクト200に応答され、当該機能ブロック320に対して発行した読み出し命令信号が転送されたマスターモジュール100に返信される。論理シミュレーション装置500aは、マスターモジュール100において、機能ブロック320からの有効な応答が得られた場合には、読み出し(リード)成功と判定する(ステップS22)。そして、論理シミュレーション装置500aは、その機能ブロック320からの応答信号を読み出し値(RDa)として取得し、現在のアドレス信号ADRと共に、読み出し値DB540aに記憶する(ステップS23)。
【0069】
次いで、論理シミュレーション装置500aは、読み出し値RDa(スレーブモジュール300の機能ブロック320からの出力値)を、期待値DB540bに記憶されている期待値(EXPa)と照合する(ステップS24)。ここでの期待値EXPaは、システムLSIの仕様書570に基づき、そのアドレスマップにおける各アドレス信号ADRについて、スレーブモジュール300の機能ブロック320からの出力値(読み出し値RDa)として期待される値である。
【0070】
論理シミュレーション装置500aは、現在のアドレス信号ADRで取得された読み出し値RDaと期待値EXPaとが一致する場合には(ステップS25)、PASSデータを検証結果DB540cに記憶する(ステップS26)。一致しない場合には(ステップS25)、FAILデータを検証結果DB540cに記憶する(ステップS27)。また、論理シミュレーション装置500aは、上記のステップS22において、マスターモジュール100に有効な応答が返信されず、リード不成功と判定した場合も同様に、FAILデータを検証結果DB540cに記憶する(ステップS27)。
【0071】
その後、論理シミュレーション装置500aは、現在のアドレス信号ADRが最大値であるか否かを判定し(ステップS28)、最大値でない場合には、アドレス信号ADRを変化させ(ステップS29)、ステップS21に戻る。論理シミュレーション装置500aは、アドレス信号ADRが最大値となるまで、ステップS21〜S29の処理を繰り返す。
【0072】
このように論理シミュレーション装置500aを用いた検証では、各スレーブモジュール300の機能ブロック320からの出力値を読み出し値RDaとし、それを期待値EXPaと比較することで、それらの一致、不一致を判定する。
【0073】
しかし、この場合、読み出し値RDaを取得するために、実際に各スレーブモジュール300の機能ブロック320を動作させる(シミュレーションする)ことを要し、検証を効率的に行うことができないことがある。
【0074】
また、各スレーブモジュール300の機能ブロック320からは、読み出し値RDaとして、必ずしも有効な応答が取得されるとは限らない。各スレーブモジュール300は、リードトランザクション等の読み出し命令信号に対して有効な応答を出力するのに、ある決められた動作フローに従わなければならない場合があるためである。
【0075】
例えば、スレーブモジュールS0をメモリコントローラとしているような場合、スレーブモジュールS0は、外部のメインメモリと接続されていなければ、読み出し命令信号を受信しても何も読み出されなかったり、読み出しエラーが発生したりしてしまう。また、スレーブモジュールS1をインターラプトコントローラとしているような場合、所定の外部割り込み動作がなければ、読み出し命令信号を受信しても読み出しエラー等が発生してしまう。また、スレーブモジュールS2を内部メモリとしているような場合、予め内部メモリに対する書き込みが行われていなければ、読み出し命令信号を受信しても読み出しエラー等が発生してしまう。また、スレーブモジュールS3をシステム制御レジスタとしているような場合、読み出し命令信号を受信した結果、ハードウェアモデル510a(システムLSI)が意図しない動作モードに移行してしまい、目的の読み出し値RDaが得られないことが起こり得る。
【0076】
このように、各スレーブモジュール300は、ある決められた動作フローに従わなければ、リードトランザクション等の読み出し命令信号に対する有効な応答を出力することができない場合がある。この場合、単にアドレス信号ADRを変化させながらリードトランザクションを発行するのみでは、有効な応答(読み出し値RDa)を得ることができない。
【0077】
有効な応答が得られなかった場合、論理シミュレーション装置500aは、上記のステップS22において、リード不成功と判定してしまう。但し、このようにリード不成功とされたものの中には、インターコネクト200のデコード部220自体は、マスターモジュール100からの読み出し命令信号を、アドレスマップ仕様通りのアクセス先のスレーブモジュール300に転送しているものも含まれ得る。従って、リード不成功の場合には、信号波形や仕様書570等に基づき、デコード部220が、マスターモジュール100からの読み出し命令信号を、アドレスマップ仕様通りのスレーブモジュール300に転送しているか否かを、目視で検証することになる。
【0078】
このような目視での検証作業には、時間、労力を要する。また、ここでは1つのインターコネクト200を例にしているが、システムLSIによっては、マスターモジュール100とスレーブモジュール300の間に、直列に接続された複数のインターコネクト200が設けられる場合がある。このほか、マスターモジュール100によって、対応するデコード部220のデコードの仕組み等、その仕様が異なる場合もある。このようにマスターモジュール100とスレーブモジュール300の間の回路構成が比較的複雑になると、目視での適切な検証作業は困難になり得る。
【0079】
これに対し、上記の論理シミュレーション装置500を用いたシステムLSI10Aの、デコード部220の処理動作の検証では、そのような目視での検証作業を行うことなく、効率的に検証を行うことが可能になる。
【0080】
即ち、論理シミュレーション装置500では、マスターモジュール100で発行された読み出し命令信号が、インターコネクト200からスレーブモジュール300に対して転送されたときに、当該スレーブモジュール300の固定値を固定値応答回路400から応答する。そして、応答される固定値から、インターコネクト200のデコード部220が、マスターモジュール100で発行された読み出し命令信号を、アドレスマップ仕様通りのスレーブモジュール300に転送しているか否かを検証する。論理シミュレーションによる検証時に、機能ブロック320を介さないため、読み出しエラー等の発生を抑制することができ、従って、デコード部220の処理動作を、目視での検証作業を行うことなく、効率的に検証することが可能になる。
【0081】
尚、システムLSI10Aのスレーブモジュール300には、インターコネクト200からの信号を、固定値応答回路400側と機能ブロック320側のいずれかに送信する選択器410を設けている。この選択器410に入力するテスト信号TESTを無効(“0”)に設定すれば、インターコネクト200からの信号が、バスI/F310を介して機能ブロック320に送信されるようになる。この場合には、システムLSI10Aのハードウェアモデル510Aにおいて、機能ブロック320の動作によって出力される信号を取得することができる。このようなシステムLSI10Aのハードウェアモデル510Aを用いた論理シミュレーションでは、機能ブロック320の動作(シミュレーション)によって出力される信号を、読み出し値RDaとして取得し、期待値EXPaとの比較を行うことも可能である。
【0082】
上記のような固定値応答回路400を含むシステムLSI10A及びそのハードウェアモデル510Aには、様々なバスプロトコルを適用することができる。以下に、2種類のバスプロトコルの適用例を示す。
【0083】
図11は第1のバスプロトコルの適用例を説明する図である。
図11には、AMBA(Advanced Microcontroller Bus Architecture)のAHB(Advanced High-performance Bus)プロトコルの適用例を示している。
【0084】
スレーブモジュール300には、マスターモジュール100で発行される読み出し命令信号が、インターコネクト200を介して転送される。スレーブモジュール300には、例えば、HADDR信号、HTRANS信号、HWRITE信号、HSIZE信号、HWDATA信号、HSEL信号、HREADYin信号の各信号が転送される。
【0085】
尚、HADDR信号は、所定ビットのシステムアドレスバスを示す信号である。HTRANS信号は、転送タイプ(NONSEQUENTIAL,SEQUENTIAL,IDLE,BUSY)を示す信号である。HWRITE信号は、書き込み又は読み出しを示す信号であって、Highの場合に書き込みを、Lowの場合に読み出しを示す信号である。HSIZE信号は、転送のサイズ(バイト数)を示す信号である。HWDATA信号は、書き込み時のライトデータバスを示す信号である。HSEL信号は、アドレスバスの組み合わせをデコードした信号であって、当該信号が転送されるスレーブモジュール300の選択を示す信号である。HREADYin信号は、スレーブモジュール300への入力時の転送の継続又は終了を示す信号であって、Highの場合には転送が終了したことを、Lowの場合には転送が継続していることを示す信号である。
【0086】
例えば、これらの信号がインターコネクト200からスレーブモジュール300の選択器410に入力される(図11の点線矢印)。
選択器410のテスト信号TESTが、有効であることを示す“1”(High)に設定されている場合には、選択器410に入力された信号が、固定値応答回路400に入力される。固定値応答回路400は、その入力を受けて、当該固定値応答回路400が設けられているスレーブモジュール300の固定値を含む所定の信号を、選択器410を介してインターコネクト200に応答する。固定値応答回路400からは、例えば、HRDATA信号、HREADYout信号、HRESP信号の各信号が、インターコネクト200に対して応答される。
【0087】
また、選択器410のテスト信号TESTが、無効であることを示す“0”(Low)に設定されている場合には、インターコネクト200から選択器410に入力された信号が、バスI/F310を介して機能ブロック320に入力される。機能ブロック320は、その入力、及びスレーブモジュール300に入力されるクロック信号等を受けて、所定の処理を実行し、その処理結果(出力値)を含む所定の信号を、バスI/F310及び選択器410を介してインターコネクト200に応答する。機能ブロック320での処理の際、スレーブモジュール300には、HCLK信号、HRESETn信号が入力される。機能ブロック320側からは、例えば、HRDATA信号、HREADYout信号、HRESP信号の各信号が、インターコネクト200に対して応答される。
【0088】
尚、スレーブモジュール300に入力されるHCLK信号は、クロックを示す信号である。HRESETn信号は、システムとバスをリセットする信号であって、通常動作時はHighとされ、リセット時にLowとされる。
【0089】
固定値応答回路400及びバスI/F310、並びに選択器410から出力されるHRDATA信号は、読み出し時のリードデータバスを示す信号であって、スレーブモジュール300に設定された固定値、或いは機能ブロック320の出力値を含む。HREADYout信号は、スレーブモジュール300からの出力時の転送の継続又は終了を示す信号であって、Highの場合には転送が終了したことを、Lowの場合には転送が継続していることを示す信号である。このHREADYout信号は、固定値応答回路400からの固定値の出力時には、Highに固定される。HRESP信号は、転送状態(OKAY,ERROR,RETRY、SPLIT)を示す信号であり、固定値応答回路400からの固定値の出力時には、Lowに固定される。
【0090】
図11の固定値応答回路400には、HRDATA信号、HREADYout信号、HRESP信号の各信号の一例を示している。
図12は第2のバスプロトコルの適用例を説明する図である。
【0091】
図12には、AMBAのAPB(Advanced Peripheral Bus)3プロトコルの適用例を示している。
スレーブモジュール300には、マスターモジュール100で発行される読み出し命令信号が、インターコネクト200を介して転送される。スレーブモジュール300には、例えば、PADDR信号、PSEL信号、PENABLE信号、PWRITE信号、PWDATA信号の各信号が転送される。
【0092】
尚、PADDR信号は、アドレスバスを示す信号である。PSEL信号は、スレーブモジュール300が選択され、転送が行われることを示す信号である。PENABLE信号は、スレーブモジュール300に対するアクセスのタイミングを示す信号である。PWRITE信号は、書き込み又は読み出しを示す信号であって、Highの場合に書き込みを、Lowの場合に読み出しを示す信号である。PWDATA信号は、書き込み時のライトデータバスを示す信号である。
【0093】
例えば、これらの信号がインターコネクト200からスレーブモジュール300の選択器410に入力される(図12の点線矢印)。
選択器410のテスト信号TESTが、有効であることを示す“1”(High)に設定されている場合には、選択器410に入力された信号が、固定値応答回路400に入力される。固定値応答回路400は、その入力を受けて、当該固定値応答回路400が設けられているスレーブモジュール300の固定値を含む所定の信号を、選択器410を介してインターコネクト200に応答する。固定値応答回路400からは、例えば、PRDATA信号、PREADY信号、PSLVERR信号の各信号が、インターコネクト200に対して応答される。
【0094】
また、選択器410のテスト信号TESTが、無効であることを示す“0”(Low)に設定されている場合には、インターコネクト200から選択器410に入力された信号が、バスI/F310を介して機能ブロック320に入力される。機能ブロック320は、その入力、及びスレーブモジュール300に入力されるクロック信号等を受けて、所定の処理を実行し、その処理に応じた出力値を含む所定の信号を、バスI/F310及び選択器410を介してインターコネクト200に応答する。機能ブロック320での処理の際、スレーブモジュール300には、PCLK信号、PRESETn信号が入力される。機能ブロック320側からは、例えば、PRDATA信号、PREADY信号、PSLVERR信号の各信号が、インターコネクト200に対して応答される。
【0095】
尚、スレーブモジュール300に入力されるPCLK信号は、クロックを示す信号である。PRESETn信号は、システムとバスをリセットする信号であって、通常動作時はHighとされ、リセット時にLowとされる。
【0096】
固定値応答回路400及びバスI/F310、並びに選択器410から出力されるPRDATA信号は、読み出し時のリードデータバスを示す信号であって、スレーブモジュール300に設定された固定値、或いは機能ブロック320の出力値を含む。PREADY信号は、スレーブモジュール300からの出力時の転送の継続又は終了を示す信号であって、Highの場合には転送が終了したことを、Lowの場合には転送が継続していることを示す信号である。このPREADY信号は、固定値応答回路400からの固定値の出力時には、Highに固定される。PSLVERR信号は、転送状態を示す信号であり、固定値応答回路400からの固定値の出力時には、Lowに固定される。
【0097】
図12の固定値応答回路400には、PRDATA信号、PREADY信号、PSLVERR信号の各信号の一例を示している。
ここでは、AHBプロトコル、APB3プロトコルを例示したが、AXI(Advanced eXtensible Interface)プロトコル等、その他のバスプロトコルを適用し、システムLSI10A及びそのハードウェアモデル510Aを実現することも可能である。
【0098】
尚、以上の説明では、スレーブモジュール300の内部に固定値応答回路400及び選択器410を設けたシステムLSI10A及びそのハードウェアモデル510Aを例示した。
【0099】
製造するシステムLSIには、上記のような固定値応答回路400及び選択器410が含まれていてもよい。この場合は、そのようなシステムLSIの動作時に、選択器410に入力するテスト信号TESTを無効(“0”)に設定しておけばよい。また、選択器410に入力するテスト信号TESTを有効(“1”)に設定し、そのシステムLSIの動作確認を行うこともできる。
【0100】
製造するシステムLSIには、固定値応答回路400及び選択器410を設けない構成とすることもできる。この場合は、そのようなシステムLSIを製造する際に行う、論理シミュレーションによる検証時に、上記のような固定値応答回路400及び選択器410を設けたハードウェアモデル510Aを用いるようにすればよい。
【0101】
次に、第2の実施の形態について説明する。
図13は第2の実施の形態に係るシステムLSIの要部の説明図である。
上記第1の実施の形態では、図3等に示したように、システムLSI10Aに設ける固定値応答回路400及び選択器410を、スレーブモジュール300の内部に設ける場合を例示した。この図13に示す、第2の実施の形態に係るシステムLSI10Bは、固定値応答回路400及び選択器410が、スレーブモジュール300の外部に設けられている点で、上記第1の実施の形態に係るシステムLSI10Aと相違する。尚、図13には、インターコネクト200についてはその一部を図示し、マスターモジュール100についてはその図示を省略している。
【0102】
この第2の実施の形態に係るシステムLSI10Bでは、固定値応答回路400及び選択器410を、各スレーブモジュール300に対応してそれぞれ設けることができる。
マスターモジュール100で発行されたリードトランザクション等の読み出し命令信号は、インターコネクト200から、デコード部220のデコード結果に応じたアクセス先のスレーブモジュール300に対して転送される。インターコネクト200内をアクセス先のスレーブモジュール300に対して転送された信号は、まず、そのスレーブモジュール300に対応して設けられた選択器410に入力される。
【0103】
テスト信号TESTが有効(“1”)に設定されていれば、選択器410に入力された信号は、選択器410同様、そのスレーブモジュール300に対応して設けられた固定値応答回路400に入力される。固定値応答回路400は、対応するスレーブモジュール300に設定されている固定値を含む信号を出力し、その出力信号は、選択器410を介してインターコネクト200に応答され、マスターモジュール100に返信される。
【0104】
テスト信号TESTが無効(“0”)に設定されていれば、選択器410に入力された信号は、対応するスレーブモジュール300の機能ブロック320に、バスI/F310を介して入力される。機能ブロック320は、その処理を実行し、処理結果を含む信号を、バスI/F310及び選択器410を介してインターコネクト200に応答する。
【0105】
論理シミュレーションによる検証時には、このように固定値応答回路400及び選択器410を、対応するスレーブモジュール300の外部に設けたシステムLSI10Bのハードウェアモデルが用いられる。
【0106】
尚、製造するシステムLSIには、上記のような固定値応答回路400及び選択器410が含まれていてもよい。この場合は、そのようなシステムLSIの動作時に、選択器410に入力するテスト信号TESTを無効(“0”)に設定しておけばよい。また、選択器410に入力するテスト信号TESTを有効(“1”)に設定し、そのシステムLSIの動作確認を行うこともできる。
【0107】
製造するシステムLSIには、固定値応答回路400及び選択器410を設けない構成とすることもできる。この場合は、そのようなシステムLSIを製造する際に行う、論理シミュレーションによる検証時に、上記のような固定値応答回路400及び選択器410を設けたハードウェアモデルを用いるようにすればよい。
【0108】
第2の実施の形態のように、固定値応答回路400及び選択器410を、対応するスレーブモジュール300の外部に設ける場合にも、上記第1の実施の形態で述べたのと同様の効果を得ることができる。
【0109】
次に、第3の実施の形態について説明する。
図14は第3の実施の形態に係るシステムLSIの構成例を示す図、図15は第3の実施の形態に係るシステムLSIの要部の説明図である。
【0110】
図14及び図15に示す、第3の実施の形態に係るシステムLSI10Cは、マスターモジュール100(M0〜M3,M)に、読み出し命令発行回路600(MR0〜MR3,MR)及び選択器610(MS0〜MS3,MS)を設けられている。このような点で、この第3の実施の形態に係るシステムLSI10Cは、上記第1の実施の形態に係るシステムLSI10Aと相違する。
【0111】
読み出し命令発行回路600は、アドレス信号ADR0xN(N=00000000〜FFFFFFFF)を変化させるアドレスカウンタ601を備える。読み出し命令発行回路600は、アドレスカウンタ601でセットされるアドレス信号ADRごとに、マスターモジュール100の機能ブロック120(MF0〜MF3,MF)に代わって、有効なリードトランザクション等の読み出し命令信号(制御信号)を発行する。
【0112】
選択器610は、テスト信号TESTに基づき、バスI/F110(MB0〜MB3,MB)を介してインターコネクト200に送信する読み出し命令信号を、読み出し命令発行回路600から送信するか、機能ブロック120から送信するかの選択を行う。
【0113】
システムLSI10Cでは、読み出し命令発行回路600から発行された読み出し命令信号に対する応答(読み出し値RD)、及びその読み出し命令信号発行時のアドレス信号ADRが、例えば、マスターモジュール100の外部に取り出されるようになっている。
【0114】
続いて、このようなシステムLSI10Cのハードウェアモデルを用い、インターコネクト200のデコード部220の処理動作を、論理シミュレーションによって検証する場合について説明する。
【0115】
システムLSI10Cの論理シミュレーションによる検証には、例えば、上記図6に示したような構成を有する論理シミュレーション装置500を用いることができる。システムLSI10Cの処理動作を、このような論理シミュレーション装置500を用いて検証する場合について、より詳細に説明する。
【0116】
図16は第3の実施の形態に係る論理シミュレーション装置の一例を示す図、図17は第3の実施の形態に係る論理シミュレーション時のマスターモジュールの説明図、図18は第3の実施の形態に係る論理シミュレーションフローの一例を示す図である。
【0117】
システムLSI10Cの論理シミュレーションによる検証では、図16に示すように、システムLSI10Cのハードウェアモデル510C(510)が、そのテストベンチ550C(550)と共に、論理シミュレーション装置500に実装される。論理シミュレーション装置500は、テストベンチ550C等に基づき、シミュレーション部520によるシミュレーションを実行する。
【0118】
その際、論理シミュレーション装置500は、まず、マスターモジュール100に設けた選択器610、及びスレーブモジュール300に設けた選択器410に入力するテスト信号TESTを有効(“1”)に設定する(ステップS30)。
【0119】
次いで、論理シミュレーション装置500は、読み出し命令発行回路600を起動する(ステップS31)。更に、論理シミュレーション装置500は、読み出し命令発行回路600が備えるアドレスカウンタ601(図17)により、一のアドレス信号ADR0xNをセットする。そして、論理シミュレーション装置500は、読み出し命令発行回路600により、セットされたアドレス信号ADRに対応する有効なリードトランザクション等の読み出し命令信号を発行する(ステップS32)。
【0120】
マスターモジュール100の読み出し命令発行回路600から出力された信号は、インターコネクト200のデコード部220でデコードされ、そのデコード結果が示すアクセス先のスレーブモジュール300へと転送される。スレーブモジュール300では、テスト信号TESTが有効(“1”)に設定されていることで、インターコネクト200からの信号が、選択器410によって固定値応答回路400へと送信される。固定値応答回路400からは、当該固定値応答回路400が含まれるスレーブモジュール300の固定値を含む有効な信号が、インターコネクト200に応答される。
【0121】
インターコネクト200に応答された信号は、マスターモジュール100(選択器610)に返信される。論理シミュレーション装置500は、マスターモジュール100の選択器610に送信された信号に含まれる固定値を、読み出し値RDとして取得する(ステップS33)。そして、論理シミュレーション装置500は、その読み出し値RDを、現在のアドレス信号ADRと共に、読み出し値DB540aに記憶する。
【0122】
論理シミュレーション装置500は、このようなシミュレーション部520によるシミュレーションの後、その論理シミュレーションで取得された読み出し値RDについて、照合部530による照合処理を実行する。
【0123】
その際、論理シミュレーション装置500は、図18に示すように、読み出し値RDを、期待値DB540bに記憶されている期待値EXP(仕様書570に基づき各スレーブモジュール300に設定されている固定値)と照合する(ステップS34)。
【0124】
論理シミュレーション装置500は、現在のアドレス信号ADRで取得された読み出し値RDとその期待値EXPが一致する場合には(ステップS35)、PASSデータを検証結果DB540cに記憶する(ステップS36)。一致しない場合には(ステップS35)、FAILデータを検証結果DB540cに記憶する(ステップS37)。PASSデータ、FAILデータは、例えば論理シミュレーション装置500にモニタが接続されていれば、そのモニタに表示させることもできる。
【0125】
その後、論理シミュレーション装置500は、現在のアドレス信号ADRが最大値であるか否かを判定する(ステップS38)。アドレス信号ADRが最大値でない場合には、ステップS32に戻り、アドレスカウンタ601によってアドレス信号ADRを変化(N=N+1)させたうえで、ステップS32以降の処理を実行する。論理シミュレーション装置500は、アドレス信号ADRが最大値となるまで、ステップS32〜S38の処理を繰り返す。
【0126】
このような論理シミュレーションによれば、順次アドレス信号ADRを変化させながら有効な読み出し命令信号を発行していくため、いずれのマスターモジュール100についても、論理シミュレーション時の制御フローが統一される。各マスターモジュール100についてのマスターモジュール制御プログラムを不要にすることができる。そのため、マスターモジュール100の機能ブロック120から読み出し命令信号を出力させる場合に比べ、インターコネクト200のデコード部220の処理動作を、一層効率的に検証することができる。
【0127】
尚、マスターモジュール100には、読み出し命令信号を読み出し命令発行回路600側と機能ブロック120側のいずれかからインターコネクト200に送信する選択器610を設けている。この選択器410に入力するテスト信号TESTを無効(“0”)に設定すれば、機能ブロック120で発行される読み出し命令信号を、バスI/F110を介してインターコネクト200に送信することもできる。
【0128】
この第3の実施の形態では、読み出し命令発行回路600及び選択器610を設けたシステムLSI10C及びそのハードウェアモデル510Cを例示した。
製造するシステムLSIには、上記のような読み出し命令発行回路600及び選択器610、並びに固定値応答回路400及び選択器410が含まれていてもよい。この場合は、そのようなシステムLSIの動作時に、選択器610,410に入力するテスト信号TESTを無効(“0”)に設定しておけばよい。また、選択器610,410に入力するテスト信号TESTを有効(“1”)に設定し、そのシステムLSIの動作確認を行うこともできる。
【0129】
製造するシステムLSIには、読み出し命令発行回路600及び選択器610、並びに固定値応答回路400及び選択器410を設けない構成とすることもできる。この場合は、そのようなシステムLSIを製造する際に行う、論理シミュレーションによる検証時に、上記のような読み出し命令発行回路600、固定値応答回路400及び選択器610,410を設けたハードウェアモデル510Cを用いるようにすればよい。
【0130】
尚、読み出し命令発行回路600及び選択器610は、固定値応答回路400及び選択器410をスレーブモジュール300の外部に設けた、上記第2の実施の形態に係るシステムLSI10Bのマスターモジュール100にも同様に適用可能である。
【0131】
次に、第4の実施の形態について説明する。
図19は第4の実施の形態に係るシステムLSIの要部の説明図である。
上記第3の実施の形態では、マスターモジュール100の内部に、読み出し命令発行回路600及び選択器610を設ける場合を例示した。この図19に示す、第4の実施の形態に係るシステムLSI10Dは、読み出し命令発行回路600及び選択器610が、マスターモジュール100の外部に設けられている点で、上記第3の実施の形態に係るシステムLSI10Cと相違する。尚、図19には、インターコネクト200についてはその一部を図示し、スレーブモジュール300並びにその内部又は外部に設けられる固定値応答回路400及び選択器410についてはその図示を省略している。
【0132】
この第4の実施の形態に係るシステムLSI10Dでは、読み出し命令発行回路600及び選択器610を、各マスターモジュール100に対応してそれぞれ設けることができる。論理シミュレーションによる検証時には、このように読み出し命令発行回路600及び選択器610を、対応するマスターモジュール100の外部に設けたシステムLSI10Dのハードウェアモデルが用いられる。
【0133】
尚、上記第3の実施の形態で述べたのと同様に、製造するシステムLSIに読み出し命令発行回路600、固定値応答回路400及び選択器610,410を含め、選択器610,410に入力するテスト信号TESTで動作を制御するようにしてもよい。
【0134】
また、読み出し命令発行回路600、固定値応答回路400及び選択器610,410は、製造するシステムLSIには設けず、論理シミュレーションによる検証時に用いるハードウェアモデルに設けるようにしてもよい。
【0135】
第4の実施の形態のように、読み出し命令発行回路600及び選択器610を、対応するスレーブモジュール300の外部に設ける場合にも、上記第3の実施の形態で述べたのと同様の効果を得ることができる。
【0136】
以上、システムLSI及びそのハードウェアモデル、並びにハードウェアモデルを用いた論理シミュレーション装置及び論理シミュレーション方法について説明した。尚、論理シミュレーション装置には、コンピュータを用いることができる。
【0137】
図20は論理シミュレーション装置のハードウェアの構成例を示す図である。
論理シミュレーション装置500は、CPU(Central Processing Unit)581によって装置全体が制御されている。CPU581には、バス588を介してRAM(Random Access Memory)582及び複数の周辺機器が接続されている。
【0138】
RAM582は、論理シミュレーション装置500の主記憶装置として使用される。RAM582には、CPU581に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM582には、CPU581による処理に必要な各種データが格納される。
【0139】
バス588に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)583、グラフィック処理装置584、入力I/F585、光学ドライブ装置586、及び通信I/F587がある。
【0140】
HDD583は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD583は、論理シミュレーション装置500の二次記憶装置として使用される。HDD583には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。尚、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【0141】
グラフィック処理装置584には、モニタ591が接続されている。グラフィック処理装置584は、CPU581からの命令に従って、画像をモニタ591の画面に表示させる。モニタ591としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等がある。
【0142】
入力I/F585には、キーボード592及びマウス593が接続されている。入力I/F585は、キーボード592或いはマウス593から送られてくる信号をCPU581に送信する。尚、マウス593は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
【0143】
光学ドライブ装置586は、レーザ光等を利用して、光ディスク594に記録されたデータの読み取りを行う。光ディスク594は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク594には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等がある。
【0144】
通信I/F587は、ネットワーク700に接続されている。通信I/F587は、ネットワーク700を介して、他のコンピュータ又は通信機器との間でデータの送受信を行う。
【0145】
以上のようなハードウェア構成によって、論理シミュレーション装置500の処理機能を実現することができる。
論理シミュレーション装置500の処理機能は、コンピュータによって実現され、その場合、論理シミュレーション装置500が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、HDD、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、DVD、DVD−RAM、CD−ROM/RW等がある。光磁気記録媒体には、MO(Magneto-Optical disk)等がある。
【0146】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0147】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム若しくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。尚、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0148】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現することもできる。
【0149】
以上説明した実施の形態に関し、更に以下の付記を開示する。
(付記1) 自ら命令を発行する第1のモジュールと、
前記第1のモジュールに接続され、受信した信号を当該信号に基づいて指定される前記第1のモジュールの接続先に転送するインターコネクトと、
前記インターコネクトによって前記第1のモジュールの接続先に指定される第2のモジュールと、
前記インターコネクトから前記第2のモジュールに対する読み出し命令信号が送信されたときに、前記読み出し命令信号を受信して前記第2のモジュール固有の固定値を前記インターコネクトに送信する固定値応答回路と、
を含むことを特徴とする集積回路装置。
【0150】
(付記2) 選択信号に基づいて前記読み出し命令信号を前記第2のモジュールと前記固定値応答回路のいずれかに入力させる選択器を更に含むことを特徴とする付記1に記載の集積回路装置。
【0151】
(付記3) 前記インターコネクトは、当該インターコネクトに送信される、アドレス信号を含む制御信号をデコードするデコード部を含み、前記デコード部のデコード結果に基づいて、前記第2のモジュールを前記第1のモジュールの接続先に指定し、
前記読み出し命令信号は、前記制御信号が前記デコード部でデコードされた信号であることを特徴とする付記1又は2に記載の集積回路装置。
【0152】
(付記4) 前記第1のモジュールは、前記制御信号を生成して前記インターコネクトに送信することを特徴とする付記3に記載の集積回路装置。
(付記5) 前記制御信号を生成し、生成された前記制御信号を前記インターコネクトに送信する読み出し命令発行回路を更に含むことを特徴とする付記3に記載の集積回路装置。
【0153】
(付記6) 前記固定値応答回路は、前記第2のモジュール内に設けられることを特徴とする付記1乃至5のいずれかに記載の集積回路装置。
(付記7) 前記固定値応答回路に、AMBAのAHBプロトコル又はAPB3プロトコルが用いられることを特徴とする付記1乃至6のいずれかに記載の集積回路装置。
【0154】
(付記8) 自ら命令を発行する第1のモジュールと、前記第1のモジュールに接続され、受信した信号を当該信号に基づいて指定される前記第1のモジュールの接続先に転送するインターコネクトと、前記インターコネクトによって前記第1のモジュールの接続先に指定される第2のモジュールと、前記インターコネクトから前記第2のモジュールに対する読み出し命令信号が送信されたときに、前記読み出し命令信号を受信して前記第2のモジュール固有の固定値を前記インターコネクトに送信する固定値応答回路とを含む集積回路装置のハードウェアモデルと、
前記ハードウェアモデルを用い、前記固定値応答回路に前記読み出し命令信号を受信させるシミュレーションを実行して前記固定値を取得するシミュレーション部と、
前記シミュレーション部によって取得された前記固定値と、前記集積回路装置の仕様に基づいて設定された期待値とを照合する照合部と、
を含むことを特徴とする検証装置。
【0155】
(付記9) 前記ハードウェアモデルは、選択信号に基づいて前記読み出し命令信号を前記第2のモジュールと前記固定値応答回路のいずれかに送信する選択器を含み、
前記シミュレーションの際には、前記選択器によって前記読み出し命令信号を前記固定値応答回路に受信させる、
ことを特徴とする付記8に記載の検証装置。
【0156】
(付記10) 前記インターコネクトは、当該インターコネクトに送信される、アドレス信号を含む制御信号をデコードするデコード部を含み、前記デコード部のデコード結果に基づいて、前記第2のモジュールを前記第1のモジュールの接続先に指定し、
前記読み出し命令信号は、前記制御信号が前記デコード部でデコードされた信号であることを特徴とする付記8又は9に記載の検証装置。
【0157】
(付記11) 前記シミュレーション部は、前記第1のモジュールによって前記制御信号を生成して前記インターコネクトに送信することを特徴とする付記10に記載の検証装置。
【0158】
(付記12) 前記ハードウェアモデルは、前記制御信号を生成し、生成した前記制御信号を前記インターコネクトに送信する読み出し命令発行回路を含み、
前記シミュレーション部は、前記読み出し命令発行回路によって前記制御信号を生成して前記インターコネクトに送信することを特徴とする付記10に記載の検証装置。
【0159】
(付記13) 前記シミュレーション部は、アドレス信号を変化させながら当該各アドレス信号について前記制御信号を生成することを特徴とする付記11又は12に記載の検証装置。
【0160】
(付記14) コンピュータが、
自ら命令を発行する第1のモジュールと、前記第1のモジュールに接続され、受信した信号を当該信号に基づいて指定される前記第1のモジュールの接続先に転送するインターコネクトと、前記インターコネクトによって前記第1のモジュールの接続先に指定される第2のモジュールと、前記インターコネクトから前記第2のモジュールに対する読み出し命令信号が送信されたときに、前記読み出し命令信号を受信して前記第2のモジュール固有の固定値を前記インターコネクトに送信する固定値応答回路とを含む集積回路装置のハードウェアモデルを用い、シミュレーション部により、前記固定値応答回路に前記読み出し命令信号を受信させるシミュレーションを実行して前記固定値を取得し、
前記シミュレーション部により取得された前記固定値と、前記集積回路装置の仕様に基づいて設定された期待値とを照合部によって照合する、
ことを特徴とすることを特徴とする検証方法。
【0161】
(付記15) コンピュータに、
自ら命令を発行する第1のモジュールと、前記第1のモジュールに接続され、受信した信号を当該信号に基づいて指定される前記第1のモジュールの接続先に転送するインターコネクトと、前記インターコネクトによって前記第1のモジュールの接続先に指定される第2のモジュールと、前記インターコネクトから前記第2のモジュールに対する読み出し命令信号が送信されたときに、前記読み出し命令信号を受信して前記第2のモジュール固有の固定値を前記インターコネクトに送信する固定値応答回路とを含む集積回路装置のハードウェアモデルを用い、シミュレーション部により、前記固定値応答回路に前記読み出し命令信号を受信させるシミュレーションを実行して前記固定値を取得し、
前記シミュレーション部により取得された前記固定値と、前記集積回路装置の仕様に基づいて設定された期待値とを照合部によって照合する、
処理を実行させることを特徴とする検証プログラム。
【符号の説明】
【0162】
10 集積回路装置
10A,10B,10C,10D システムLSI
11,100 マスターモジュール
12,200 インターコネクト
13,300 スレーブモジュール
14,400 固定値応答回路
110,210,240,310 バスI/F
120,320 機能ブロック
220 デコード部
230 調停部
401 有効転送判定回路
402 応答信号生成回路
410,610 選択器
500,500a 論理シミュレーション装置
510,510a,510A,510C ハードウェアモデル
520 シミュレーション部
530 照合部
540 記憶部
540a 読み出し値DB
540b 期待値DB
540c 検証結果DB
550,550a,550A,550C テストベンチ
560 シミュレーション情報
560a,560A マスターモジュール制御プログラム
570 仕様書
581 CPU
582 RAM
583 HDD
584 グラフィック処理装置
585 入力I/F
586 光学ドライブ装置
587 通信I/F
588 バス
591 モニタ
592 キーボード
593 マウス
594 光ディスク
600 読み出し命令発行回路
601 アドレスカウンタ
700 ネットワーク

【特許請求の範囲】
【請求項1】
自ら命令を発行する第1のモジュールと、
前記第1のモジュールに接続され、受信した信号を当該信号に基づいて指定される前記第1のモジュールの接続先に転送するインターコネクトと、
前記インターコネクトによって前記第1のモジュールの接続先に指定される第2のモジュールと、
前記インターコネクトから前記第2のモジュールに対する読み出し命令信号が送信されたときに、前記読み出し命令信号を受信して前記第2のモジュール固有の固定値を前記インターコネクトに送信する固定値応答回路と、
を含むことを特徴とする集積回路装置。
【請求項2】
前記インターコネクトは、当該インターコネクトに送信される、アドレス信号を含む制御信号をデコードするデコード部を含み、前記デコード部のデコード結果に基づいて、前記第2のモジュールを前記第1のモジュールの接続先に指定し、
前記読み出し命令信号は、前記制御信号が前記デコード部でデコードされた信号であることを特徴とする請求項1に記載の集積回路装置。
【請求項3】
前記制御信号を生成し、生成された前記制御信号を前記インターコネクトに送信する読み出し命令発行回路を更に含むことを特徴とする請求項2に記載の集積回路装置。
【請求項4】
自ら命令を発行する第1のモジュールと、前記第1のモジュールに接続され、受信した信号を当該信号に基づいて指定される前記第1のモジュールの接続先に転送するインターコネクトと、前記インターコネクトによって前記第1のモジュールの接続先に指定される第2のモジュールと、前記インターコネクトから前記第2のモジュールに対する読み出し命令信号が送信されたときに、前記読み出し命令信号を受信して前記第2のモジュール固有の固定値を前記インターコネクトに送信する固定値応答回路とを含む集積回路装置のハードウェアモデルと、
前記ハードウェアモデルを用い、前記固定値応答回路に前記読み出し命令信号を受信させるシミュレーションを実行して前記固定値を取得するシミュレーション部と、
前記シミュレーション部によって取得された前記固定値と、前記集積回路装置の仕様に基づいて設定された期待値とを照合する照合部と、
を含むことを特徴とする検証装置。
【請求項5】
前記インターコネクトは、当該インターコネクトに送信される、アドレス信号を含む制御信号をデコードするデコード部を含み、前記デコード部のデコード結果に基づいて、前記第2のモジュールを前記第1のモジュールの接続先に指定し、
前記読み出し命令信号は、前記制御信号が前記デコード部でデコードされた信号であることを特徴とする請求項4に記載の検証装置。
【請求項6】
前記ハードウェアモデルは、前記制御信号を生成し、生成した前記制御信号を前記インターコネクトに送信する読み出し命令発行回路を含み、
前記シミュレーション部は、前記読み出し命令発行回路によって前記制御信号を生成して前記インターコネクトに送信することを特徴とする請求項5に記載の検証装置。
【請求項7】
前記シミュレーション部は、アドレス信号を変化させながら当該各アドレス信号について前記制御信号を生成することを特徴とする請求項6に記載の検証装置。
【請求項8】
コンピュータが、
自ら命令を発行する第1のモジュールと、前記第1のモジュールに接続され、受信した信号を当該信号に基づいて指定される前記第1のモジュールの接続先に転送するインターコネクトと、前記インターコネクトによって前記第1のモジュールの接続先に指定される第2のモジュールと、前記インターコネクトから前記第2のモジュールに対する読み出し命令信号が送信されたときに、前記読み出し命令信号を受信して前記第2のモジュール固有の固定値を前記インターコネクトに送信する固定値応答回路とを含む集積回路装置のハードウェアモデルを用い、シミュレーション部により、前記固定値応答回路に前記読み出し命令信号を受信させるシミュレーションを実行して前記固定値を取得し、
前記シミュレーション部により取得された前記固定値と、前記集積回路装置の仕様に基づいて設定された期待値とを照合部によって照合する、
ことを特徴とする検証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−238089(P2012−238089A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−105266(P2011−105266)
【出願日】平成23年5月10日(2011.5.10)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】