(57)【要約】【課題】  論理システムにおける機能ブロック間でのデータの受け渡しを行うシナリオ検証を効率的に行うことを目的とする。【解決手段】  機能ブロックテストの出力が他の機能ブロックテストの入力となるかどうかを判定する手段と、出力を他の機能ブロックテストの入力とする手段を設ける。【選択図】  図１
2007026179.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能ブロックから構成される論理システムを検証対象とし、単体の機能ブロックを論理検証する機能ブロックテストを複数同時に実行することで論理システムの論理検証を行う論理シミュレーションを含む動的な論理検証手法において、
前記機能ブロックテストが、当該テストの出力属性を他の機能ブロックテストの入力属性と成り得るかどうかを判定する手段と、
前記判定手段に基づき、機能ブロックテストが当該テストの出力属性を他の機能ブロックテストの入力属性とする手段
を備えたことを特徴とする論理検証手法。
【請求項２】
前記機能ブロックテストは、メモリ上のデータ開始アドレス値、データのサイズ値を含むテストパラメータを含む前記入力属性を示したテストデータフォーマットを備えることを特徴とする請求項１記載の論理検証手法。
【請求項３】
前記入力属性を示すテストデータフォーマットの各パラメータにおいて、確定必須パラメータと未確定可能パラメータの2種類があることを特徴とする請求項１、２記載の論理検証手法。
【請求項４】
前記判定手段は、出力属性であるパラメータと入力属性を示すテストデータフォーマットの確定必須パラメータが対応しているかどうかを判定基準とすることを特徴とする請求項1、２、３記載の論理検証手法。
【請求項５】
前記機能ブロックテストは、テスト実行時に入力属性であるテストデータのパラメータに未確定パラメータがある場合、パラメータを生成することを特徴とする請求項1、２、３、４記載の論理検証手法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機能ブロックから構成される論理システムの動的な論理検証に係わる。
【背景技術】
【０００２】
ＬＳＩを含む複数の機能ブロックから構成される論理システムの規模は、年毎に増加している。それに伴い、論理システムの複雑度は指数関数的に上昇し、要求仕様を満たす機能を検証する困難度も増加している。一方、市場には消費者が欲するときに製品を投入しなければならず、ＬＳＩを始めとした論理システムの開発期間は短くなっている。そのため、論理システムの検証効率向上を図る必要が生じている。
【０００３】
複数の機能ブロックから構成される論理システムの検証は、主に論理シミュレーションを含む動的な論理検証手法が用いられており、それは以下の2ステップに分けて行われる。
【０００４】
１、各機能ブロックごとの単体検証を行う。機能ブロックテストを作成し機能ブロック検証を行う。
【０００５】
２、全ての機能ブロックを接続した論理システムの検証を行う。論理システムテストを作成し論理システム検証を行う。
【０００６】
機能ブロック検証における主な検証項目は、各機能ブロックの詳細な機能である。論理システム検証における主な検証項目は、実使用を想定した複数の機能ブロックが連携して動作し、かつ各機能ブロック間でデータ受け渡しを行う、データのフォーマットやデータ受け渡しの正当性を検証するシナリオ検証と、複数の機能ブロックが動作することにより生じる競合状態の検証である競合検証といった論理システムにおける動作である。
【０００７】
また、検証をより効率的に行うため、機能ブロック検証において作成した機能ブロックテストを用いて、論理システム検証を行う検証手法も行われている。図を用いて例を示す。
【０００８】
図5は、検証対象である複数の機能ブロックから構成された論理システムを示す図である。(501)は、論理システムである。(506)は、データを格納するメモリである。(507)は、論理システムを制御するCPUである。(502)は、JPEGデコーダ機能ブロックである。CPUからの設定により、メモリからJPEGデータを読み込み、JPEGデコード後、RAWデータをメモリに書き込む機能を持つ。(503)は、画像回転機能ブロックである。CPUからの設定により、メモリからRAWデータを読み込み、回転処理後、RAWデータをメモリに書き込む機能を持つ。(504) は、画像拡大縮小機能ブロックである。CPUからの設定により、メモリからRAWデータを読み込み、拡大もしくは縮小処理後、RAWデータをメモリに書き込む機能を持つ。(505)は、JPEGエンコーダ機能ブロックである。CPUからの設定により、メモリからRAWデータを読み込み、JPEGエンコード後、JPEGデータをメモリに書き込む機能を持つ。
【０００９】
機能ブロック検証では、機能ブロックを接続した論理システム環境で、機能ブロックテストを作成し検証を行う。例えば、(502)JPEGデコーダの機能ブロックテストは、(507)CPUと(506)メモリを使用し、CPUからJPEGデコーダに設定を行い、メモリからJPEGデータを読み込み、JPEGデコード後に、メモリにRAWデータを書き込む。また、設定とJPEGデータから、期待値となるRAWデータを作成し、メモリ上のRAWデータと期待値比較を行うテストとなる。(503)画像回転機能ブロック、(504)画像拡大縮小機能ブロック、(505)JPEGエンコーダ機能ブロックも、同様に、CPUとメモリを使用し、メモリからデータを読み込み処理したあとメモリに書き込む機能ブロックテストを作成し、機能ブロック検証を行う。
【００１０】
次に、論理システム検証では、機能ブロックを接続した論理システム環境で、各機能ブロックテストを用いて、それらを同時に実行させることで検証を行う。各機能ブロックが同時に平行して動作するため、競合状態が起こせ、論理システム検証の競合検証が容易に行える。
【００１１】
又、従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開平 6-348542号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記の機能ブロック検証において作成した機能ブロックテストを用いて、論理システム検証を行う検証手法を用いたとしても、検証できるのは競合検証のみで、各機能ブロック間でデータ受け渡しを行う、データのフォーマットやデータ受け渡しの正当性を検証するシナリオ検証は行われない。従って、シナリオ検証を行うために、新たに論理システムテストを作成する負荷が発生することには変わりがない。
【００１３】
また、上記図5の例の場合、JPEGデータに関しては、(505)JPEGエンコーダ機能ブロックの出力から(502)JPEGデコーダ機能ブロックへの入力のシナリオしか存在しない。しかし、RAWデータに関しては、RAWデータを入力とする機能ブロックは、(503)画像回転機能ブロック、(504)画像拡大縮小機能ブロック、(505)JPEGエンコーダ機能ブロックの３つがあり、また、RAWデータを出力する機能ブロックは、(502)JPEGデコーダ機能ブロック、(503)画像回転機能ブロック、(504)画像拡大縮小機能ブロックの３つがあるので、計6シナリオある。また、実際には、各機能ブロックの様々な設定値が含まれてくるので、シナリオ数は膨大な数となる。
【００１４】
さらに、今後、論理システムの複雑度が増大するに伴って、シナリオ数も増大し、論理システム検証における論理システムテスト作成の負荷がますます大きな問題となる。従って、論理システムの検証遅延により、製品サイクルがますます早くなる今後において、消費者が欲するときにタイムリーに製品を投入することが不可能になる。
【００１５】
本発明は、上記課題を解決するためになされたもので、機能ブロック検証における機能ブロックテストに適用することで、新たに論理システムテストを作成することなく競合検証とシナリオ検証を含む論理システム検証を行う手段を提供する。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、複数の機能ブロックから構成される論理システムを検証対象とし、単体の機能ブロックを論理検証する機能ブロックテストを複数同時に実行することでシステムの論理検証を行う論理シミュレーションを含む動的な論理検証手法において、
前記機能ブロックテストが、当該テストの出力属性を他の機能ブロックテストの入力属性と成り得るかどうかを判定する手段と、
前記判定手段に基づき、機能ブロックテストが当該テストの出力属性を他の機能ブロックテストの入力属性とする手段
を備えたことを特徴とする論理検証手法を適用する。
【発明の効果】
【００１７】
以上説明したように、本発明によれば、複数の機能ブロックから構成される論理システムにおいて、機能ブロック検証における機能ブロックテストに、テストの出力属性を他の機能ブロックテストの入力属性と成り得るかどうかを判定する仕組みと、判定結果に基づき、機能ブロックテストが当該テストの出力属性を他の機能ブロックテストの入力属性とする仕組みを設けることで、機能ブロックテストをそのまま競合検証及びシナリオ検証を行う論理システム検証に用いることができる。新たに論理シナリオ検証のための論理システムテストを作成する必要がなくなる。
【００１８】
よって、本発明によれば、論理システムの検証効率の向上が図れ、その結果、市場が欲するときに製品を投入することが可能となる。
【発明を実施するための最良の形態】
【００１９】
上記従来技術の説明で用いた図5に示す論理システムを用いて本発明の一実施例を説明する。
【００２０】
図5は、検証対象である複数の機能ブロックから構成された論理システムを示す図である。(501)は、論理システムである。(506)は、データを格納するメモリである。(507)は、論理システムを制御するCPUである。(502)は、JPEGデコーダ機能ブロックである。CPUからの設定により、メモリからJPEGデータを読み込み、JPEGデコード後、RAWデータをメモリに書き込む機能を持つ。(503)は、画像回転機能ブロックである。CPUからの設定により、メモリからRAWデータを読み込み、回転処理後、RAWデータをメモリに書き込む機能を持つ。(504)は、画像拡大縮小機能ブロックである。CPUからの設定により、メモリからRAWデータを読み込み、拡大もしくは縮小処理後、RAWデータをメモリに書き込む機能を持つ。(505) は、JPEGエンコーダ機能ブロックである。CPUからの設定により、メモリからRAWデータを読み込み、JPEGエンコード後、JPEGデータをメモリに書き込む機能を持つ。
【００２１】
次に、(501)論理システムを検証するための本発明である論理システムテストの全体図を図１に示す。(101)は、論理システムテストである。内部に、各機能ブロックを検証するための機能ブロックテストである(102)JPEGデコードの機能ブロックテスト、(108)画像回転の機能ブロックテスト、(114)画像拡大縮小の機能ブロックテスト、(115)JPEGエンコーダの機能ブロックテストと、論理システムテストで実行する全ての機能ブロックテストが登録された(116)テストリストを持つ。論理システムテストは、全ての機能ブロックテストを同時に実行するテストである。(102)JPEGデコーダテストは、(103)入力テストデータフォーマット、(104)入力テストデータリスト、(105)検証実行部、(106)出力テストデータ、(107)判定および入力部を持つ。(108)画像回転テストは、(109)入力テストデータフォーマット、(110)入力テストデータリスト、(111)検証実行部、(112)出力テストデータ、(113)判定および入力部を持つ。他の機能ブロックテストも同様に、入力データフォーマット、入力テストデータ、検証実行部、出力テストデータ、判定および入力部を持つ構成をとる。
【００２２】
入力テストデータフォーマットは、当該機能ブロックテストが受付可能な即ちテストを行うのに必要なテストパラメータを示したテストデータのデータフォーマットである。入力テストデータリストは、当該機能ブロックテストが実行するテストパラメータを登録したリストである。入力テストデータリストの要素は、入力テストデータフォーマットと同じデータフォーマットである。検証実行部は、入力テストデータリストに登録されているテストパラメータに従って、実際に検証を行うブロックである。出力テストデータは、検証実行部により行われたテストの結果である。判定および入力部は、(116)テストリストから他のテストの入力テストデータフォーマットを参照し、当該出力テストデータが、他の入力テストデータと成ることが可能かどうかを判定し、可能な場合には、該当テストの入力テストデータリストに当該テストの出力テストデータを登録する。
【００２３】
例えば、(102)JPEGデコーダテストを例にすると、(105)検証実行部は、(104)入力テストデータリストからテストパラメータを取得し、それに基づいてJPEGデコーダを設定し検証を実行する。テストパラメータは、JPEGデータの画像サイズ、メモリの読み込み開始アドレスなどを含むパラメータ群である。CPUからJPEGデコーダを設定そして起動する。JPEGデコーダは、メモリから読み込み、JPEGデコード後のRAWデータをメモリに書き込む。メモリに書き込まれたRAWデータが期待値どおりかをチェックする。(106)出力テストデータは、出力したデータのRAWデータ、データのサイズ、メモリの書き込みアドレスを含むテスト結果情報である。(107)判定及び入力部は、（１）で(116)テストリストを参照し、登録されているテスト情報を得る。（２）で登録されているテストの(109)入力テストデータフォーマットを参照し、(106)出力テストデータが(108)画像回転テストの入力テストデータとなることが可能かを判定する。可能な場合、(109)入力テストデータフォーマットの形式で、出力テストデータを入力し、(110)入力テストデータリストに登録する。
【００２４】
(101)論理システムテストは、(102)JPEGデコーダテスト、(108)画像回転テスト、(114)画像拡大縮小テスト、(115)JPEGデコーダテストの全ての機能ブロックテストを同時に実行させることで、論理システム検証における競合検証が可能である。かつ、各機能ブロックテストは当該機能ブロックテストの出力テストデータを受け渡し可能な他の機能ブロックテストに渡し、受け取った機能ブロックは、他の機能ブロックテストの出力データを用いて検証を行うので論理システム検証におけるシステム検証も可能となる。
【００２５】
入力テストデータフォーマットの例を図２に示す。(201)は、JPEGデコーダ機能ブロックの入力テストデータフォーマットのである。フォーマットには、「テストパラメータ名」、「確定必須パラメータ」、「テスト可能パラメータ」、「テストパラメータ」がある。「テストパラメータ名」には、各機能ブロックテストが用いるテストパラメータ全てを登録する。(202)データ形式、(203)データサイズ、(204)データ読み出しアドレス、(205)データ書き込みアドレス、(206)その他の項目が登録されている。即ち、JPEGデコーダの(105)検証実行部において、データ形式、データのサイズ、メモリのデータ読み出しアドレス、メモリへのデータ書き込みアドレス、その他パラメータに従って検証が行われる。「確定必須パラメータ」は、(105)検証実行部が、テストパラメータを取得したときに、確定している必要があるかどうかを示す。YESの場合、あらかじめ確定している必要がある。「テスト可能パラメータ」は、テストを行うのに必要なテストパラメータの条件を示している。「テストパラメータ」には、実際に(105)検証実行部がテストを行うパラメータを登録する。
【００２６】
テストの出力テストデータが、他の機能ブロックテストの入力と成るかどうかを判定する場合、「確定必須パラメータ」がYESである全ての「テストパラメータ名」の項目において、出力テストデータにデータが存在し、かつ、出力テストデータのテストパラメータが「テスト可能パラメータ」の条件を満たしている場合に入力となりえると判定する。例えば、(201)JPEGデコーダの入力テストデータフォーマットにおいて、他のテストの出力テストデータのパラメータに、
1、データ形式があり、JPEGデータである
2、データサイズがあり、256Byte以上65535Byte以下である
3、データ読み出しアドレスがあり、0x0から0x1FFF_FFFFの範囲である
の3つの条件が成立する場合に、他のテストの当該出力テストデータは、JPEGデコータテストの入力となりえると判定する。
【００２７】
データ書き込みアドレスに関しては、「確定必須パラメータ」がNOであるので、無視することが出来る。
【００２８】
入力テストデータリストに登録する場合は、入力テストデータフォーマットの「テストパラメータ」項目に値を入力し、入力テストデータフォーマットを入力テストデータリストに登録する。また、検証実行部が、テストパラメータを取得したときに、「テストパラメータ」項目に未確定のテストパラメータがある場合、「テスト可能パラメータ」の条件に合うようにテストパラメータを生成する。
【００２９】
(207)は、画像回転機能ブロックの入力テストデータフォーマットである。回転角度に関する固有な項目がある。(208)は、画像拡大縮小機能ブロックの入力テストデータフォーマットである。拡大縮小率に関する固有な項目がある。(209)JPEGエンコーダ機能ブロックの入力テストデータフォーマットである。圧縮モードに関する固有な項目がある。
【００３０】
機能ブロックテストのフローを図3に示す。
【００３１】
ステップ(S301)
テストパラメータを含む入力テストデータを取得するために、入力テストデータリストを参照する。
【００３２】
ステップ(S302)
入力テストデータリストに、入力テストデータが登録されているかどうかを判定。YESの場合、(S303)に進む。NOの場合、(S314)に進む。
【００３３】
ステップ(S303)
入力テストデータリストから入力テストデータを取得し、入力テストデータリストの当該入力テストデータを削除する。
【００３４】
ステップ(S304)
入力テストデータのテストパラメータを参照し、未確定テストパラメータがあるかどうかを判定。YESの場合は、(S305)に進む。NOの場合は、(S306)に進む。
【００３５】
ステップ(S305)
未確定テストパラメータにおいて、入力テストデータフォーマットの「テスト可能パラメータ」の条件に合うように、テストパラメータを生成する。
【００３６】
ステップ(S306)
検証実行部において、入力テストデータのテストパラメータに基づいて検証を行う。
【００３７】
ステップ(S307)
検証の結果、出力テストデータが確定する。
【００３８】
ステップ(S308)
全ての機能ブロックテストが登録されたテストリストを参照する。
【００３９】
ステップ(S309)
当該機能ブロックテスト以外に機能ブロックテストが登録されているかを判定。YESの場合、(S310)に進む。NOの場合は、(S301)に戻る。
【００４０】
ステップ(S310)
当該機能ブロックテスト以外の全てのテストの入力テストデータフォーマットを参照する。
【００４１】
ステップ(S311)
出力テストデータが、他の機能ブロックテストの入力テストデータを成りえるか、入力テストデータフォーマットをチェックすることで判定する。YESの場合、１つでも他の機能ブロックテストの入力テストデータと成りえる場合、(S312)に進む。NOの場合、(S301)に戻る。
【００４２】
(502)JPEGデコーダの機能ブロックテストの場合、出力データは、RAWデータであり、RAWデータを入力とする機能ブロックは、(503)画像回転、(504)画像拡大縮小、(505)JPEGエンコーダであるので、入力テストデータとなりえる機能ブロックテストは、3つ存在する。
【００４３】
ステップ(S312)
どの機能ブロックテストの入力テストデータとするかを決定する。入力テストデータとなりえる機能ブロックテストが複数存在する場合、どれかひとつを乱数により決定する。また、複数全ての機能ブロックテストの入力テストデータとしても良いし、乱数ではなく順番にローテンションで決定しても良い。
【００４４】
ステップ(S313)
入力テストデータフォーマットの「テストパラメータ」の項目に、出力テストデータのパラメータを入力し、入力テストリストに登録する。(S301)に戻る。
ステップ(S314)
規定回数以上連続して、入力テストリストに検証すべきテストパラメータを含む入力テストデータが登録されない場合は、機能ブロックテストを終了する。
【００４５】
論理システムテストのフローを図4に示す。
【００４６】
ステップ(S401)
テストリストに実行する全ての機能ブロックテストを登録する。
【００４７】
ステップ(S402)
シナリオの起点となる機能ブロックテストの入力テストデータリストに、入力テストデータを登録する。
【００４８】
ステップ(S403)
テストリストに登録されている全ての機能ブロックテストを同時に実行する。
【００４９】
ステップ(S404)
全ての機能ブロックテストが終了、もしくは、各機能ブロックテストの検証実行部が規定回数以上実行されるまで待ち、論理システムテストを終了する。
【００５０】
上記のように、機能ブロックテストおよび論理システムテストを作成する。機能ブロック単体の検証を行う場合は、実行する機能ブロックテストの入力テストデータリストに、実行する入力テストデータを登録することで、機能ブロックテストは、検証を行うことが出来る。単体検証では、テストリストには、当該機能ブロックテストしか登録されていないので、ステップ(S309)は常にNOとなる。また、論理システムテストでは、ステップ(S309)がYESとなり、各機能ブロックテストが、他の機能ブロックテストに出力テストデータを渡し、シナリオ検証を行う事が可能となる。
【図面の簡単な説明】
【００５１】
【図１】本発明による一実施例を示すテスト全体図である。
【図２】本実施例における入力テストデータフォーマットを示す図である。
【図３】本実施例における機能ブロックテストのフローを示した図である。
【図４】本実施例における論理システムテストのフローを示した図である。
【図５】本実施例における論理システムを示した図である。
【符号の説明】
【００５２】
101  複数の機能ブロックテストを持つ論理システムテスト
102  JPEGデコーダの機能ブロックテスト
103  JPEGデコーダテストの入力テストデータフォーマット
104  JPEGデコーダテストの入力テストデータリスト
105  JPEGデコーダテストの検証実行部
106  JPEGデコーダテストの出力テストデータ
107  JPEGデコーダテストの判定および入力部
108  画像回転の機能ブロックテスト
109  画像回転テストの入力テストデータフォーマット
110  画像回転テストの入力テストデータリスト
111  画像回転テストの検証実行部
112  画像回転テストの出力テストデータ
113  画像回転テストの判定および入力部
114  画像回転縮小の機能ブロックテスト
115  JPEGエンコーダの機能ブロックテスト
116  機能ブロックテストが登録されたテストリスト
201  JPEGデコーダ機能ブロックテストの入力テストデータフォーマット
202  データ形式を示す項目
203  データサイズを示す項目
204  データ読み出しアドレスを示す項目
205  データ書き込みアドレスを示す項目
206  その他の項目
207  画像回転機能ブロックテストの入力テストデータフォーマット
208  画像拡大縮小機能ブロックテストの入力テストデータフォーマット
209  JPEGエンコーダ機能ブロックテストの入力テストデータフォーマット
S301〜S314  機能ブロックテストのフローの各ステップ
S401〜S404  論理システムテストのフローの各ステップ
501  複数の機能ブロックから構成された論理システム
502  JPEGのデコードを行う機能ブロック
503  画像の回転を行う機能ブロック
504  画像の拡大及び縮小を行う機能ブロック
505  JPEGのエンコードを行う機能ブロック
506  データを格納するメモリ
507  論理システムを制御するCPU
【図１】
2007026179.tif 000003
【図２】
2007026179.tif 000004
【図３】
2007026179.tif 000005
【図４】
2007026179.tif 000006
【図５】
2007026179.tif 000007