特開2015-96997(P2015-96997A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社メガチップスの特許一覧

<>
  • 特開2015096997-論理検証方法 図000003
  • 特開2015096997-論理検証方法 図000004
  • 特開2015096997-論理検証方法 図000005
  • 特開2015096997-論理検証方法 図000006
  • 特開2015096997-論理検証方法 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2015-96997(P2015-96997A)
(43)【公開日】2015年5月21日
(54)【発明の名称】論理検証方法
(51)【国際特許分類】
   G06F 17/50 20060101AFI20150424BHJP
【FI】
   G06F17/50 664L
【審査請求】未請求
【請求項の数】4
【出願形態】OL
【全頁数】14
(21)【出願番号】特願2013-236458(P2013-236458)
(22)【出願日】2013年11月15日
(71)【出願人】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100088672
【弁理士】
【氏名又は名称】吉竹 英俊
(74)【代理人】
【識別番号】100088845
【弁理士】
【氏名又は名称】有田 貴弘
(72)【発明者】
【氏名】安井 基晃
【テーマコード(参考)】
5B046
【Fターム(参考)】
5B046AA08
5B046BA02
5B046JA05
(57)【要約】
【課題】ブロック検証環境およびチップ検証環境の設計を簡略化して、論理検証に費やす時間を短縮した論理検証方法を提供する。
【解決手段】複数の機能ブロックのそれぞれを検証する複数のブロック検証環境と、半導体集積回路全体を検証するチップ検証環境とで共通して使用されるモジュールおよびタスクを含む共通検証環境を設計するステップ(a)と、共通検証環境を利用することで構築される複数のブロック検証環境を用いて、複数の機能ブロックのそれぞれの論理を検証するステップ(b)と、ステップ(b)の後、共通検証環境を利用することで構築されるチップ検証環境を用いて、半導体集積回路全体の論理を検証するステップ(c)とを備えている。
【選択図】図2
【特許請求の範囲】
【請求項1】
複数の機能ブロックを有した半導体集積回路の論理を検証する論理検証方法であって、
(a)前記複数の機能ブロックのそれぞれを検証する複数のブロック検証環境と、前記半導体集積回路全体を検証するチップ検証環境とで共通して使用されるモジュールおよびタスクを含む共通検証環境を設計するステップと、
(b)前記共通検証環境を利用することで構築される前記複数のブロック検証環境を用いて、前記複数の機能ブロックのそれぞれの論理を検証するステップと、
(c)前記ステップ(b)の後、前記共通検証環境を利用することで構築される前記チップ検証環境を用いて、前記半導体集積回路全体の論理を検証するステップと、を備える、論理検証方法。
【請求項2】
前記ステップ(b)の後、
(d)前記ステップ(b)で不具合が発見された機能ブロックについて、前記モジュールおよび前記タスクの修正を行うステップと、
前記ステップ(c)の後、
(e)前記ステップ(c)で不具合が発見された前記半導体集積回路について、前記モジュールおよび前記タスクの修正を行うステップと、を備え、
前記ステップ(d)および(e)は、前記共通検証環境を構成する前記モジュールおよび前記タスクを修正する、請求項1記載の論理検証方法。
【請求項3】
前記ステップ(d)は、
前記共通検証環境を介して、前記複数のブロック検証環境間で前記不具合の情報を互いにフィードバックするステップを含む、請求項2記載の論理検証方法。
【請求項4】
前記複数のブロック検証環境および前記チップ検証環境は、同じファイル構成を有する、請求項1〜請求項3の何れか1項に記載の論理検証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ハードウェア記述言語等で設計された論理回路を検証する論理検証方法に関する。
【背景技術】
【0002】
電子機器等に用いられている半導体集積回路(LSI:Large Scale Integration)は、一般的にRTL(Register Transfer Level)などのHDL(Hardware Description Language)によって設計されているが、設計されたLSIが正常に動作するか否かを確認するために論理検証が行われる。
【0003】
この論理検証は、例えば、コンピューター上に構築されたシミュレータの論理検証環境上で行われ、仕様書等に基づいたテストパターンを準備し、当該テストパターンに基づいて、シミュレータ上で検証対象の半導体集積回路を構築して検証するが、半導体集積回路の集積度が向上し、論理回路の規模が大きくなるに従って、論理回路の機能を保証するための検証項目が増大し、検証に費やす時間が長期化する傾向にある。この論理検証に費やす時間を短縮することが、半導体集積回路の開発期間の短縮につながることから、論理検証時間の短縮が求められている。
【0004】
論理検証時間の短縮を目的として、例えば特許文献1には、テストベンチのコマンドに対して、インターフェースを変更するようなコマンドラッパーを被せることで、テストコードの大部分を全く変更することなく再利用できるようにする技術が開示されている。
【0005】
ここで、図5を用いて従来の論理検証方法について説明する。図5は、従来の論理検証方法の一例を示すフローチャートである。
【0006】
図5に示すように、論理回路の仕様を決定すると、仕様に従って、論理回路を構成するブロックごとにモジュールを設計する。図5の例では、論理回路がブロックAおよびブロックBを有している場合を示しており、ブロックAおよびBは、互いに、検証シナリオおよび検証項目が異なったブロックである。
【0007】
ステップS101でブロックAのモジュールを設計し、ステップS102でブロックBのモジュールを設計する。
【0008】
そして、各ブロックに合わせて検証環境を設計し、ステップS103では、ブロックAの検証環境を設計し、ステップS104では、ブロックBの検証環境を設計する。
【0009】
その後、ブロックAの検証環境を用いてブロックAの論理検証を行い(ステップS105)、ブロックAの動作の不具合の有無を確認し(ステップS106)、不具合があればフィードバックをかけてブロックAの該当箇所を修正する(ステップS107)。一方、不具合がなければステップS111に進む。
【0010】
同様に、ブロックBの検証環境を用いてブロックBの論理検証を行い(ステップS108)、ブロックBの不具合の有無を確認し(ステップS109)、不具合があればフィードバックをかけてブロックBの該当箇所を修正する(ステップS110)。一方、不具合がなければステップS111に進む。
【0011】
このように、ステップS105、S106およびS107の繰り返し、およびステップS108、S109およびS110の繰り返しにより、それぞれブロックAおよびブロックBの不具合を修正する。
【0012】
ステップS111では、ブロックAおよびBを含む半導体集積回路(チップ)全体の検証環境を設計する。そして、設計したチップ検証環境を用いてチップの検証を行う(ステップS112)。なお、チップ検証では、ブロックAおよびBの単体動作だけでなく、両者の連携動作についても検証を行う。
【0013】
そして、ブロックAの動作の不具合の有無を確認し(ステップS113)、不具合があればフィードバックをかけてブロックAの該当箇所を修正する(ステップS116)。一方、不具合がなければステップS114に進み、ブロックBの動作の不具合の有無を確認し、不具合があればフィードバックをかけてブロックBの該当箇所を修正する(ステップS117)。一方、不具合がなければステップS115に進む。
【0014】
ステップS115では、ブロックAとブロックBとの連携動作についての不具合の有無を確認し、連携動作に不具合があれば、フィードバックをかけて連携部分を修正する(ステップS118)。一方、不具合がなければ検証作業を終了する。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開2006−127108号公報
【発明の概要】
【発明が解決しようとする課題】
【0016】
以上説明した従来の論理検証方法によれば、検証シナリオ、検証項目が異なる場合、ブロックごとにブロック検証環境を設計する必要があり、また、チップ検証環境も別途に設計する必要がある。
【0017】
また、ブロック検証環境(設定ファイル、シナリオ記述)を移植してチップ検証環境を設計しようとしても、ブロック検証とチップ検証とでは検証環境が違うため、移植工数が多大となる可能性が高い。
【0018】
と言って、ブロック検証をチップ検証環境で行うと、ブロック単位の細かい検証ができず、検証効率および検証カバレッジが低くなる。
【0019】
また、ステップS113、S114で示されるように、チップ検証でブロックの不具合が判明した場合、不具合の内容によってはステップS107、S110に戻ってブロック検証を再度行う必要があるが、ブロック検証とチップ検証とで環境が異なるので、修正および再検証に手間と時間がかかる。
【0020】
本発明は上記のような問題を解決するためになされたもので、ブロック検証環境およびチップ検証環境の設計を簡略化して、論理検証に費やす時間を短縮した論理検証方法を提供することを目的とする。
【課題を解決するための手段】
【0021】
本発明に係る論理検証方法の第1の態様は、複数の機能ブロックを有した半導体集積回路の論理を検証する論理検証方法であって、前記複数の機能ブロックのそれぞれを検証する複数のブロック検証環境と、前記半導体集積回路全体を検証するチップ検証環境とで共通して使用されるモジュールおよびタスクを含む共通検証環境を設計するステップ(a)と、前記共通検証環境を利用することで構築される前記複数のブロック検証環境を用いて、前記複数の機能ブロックのそれぞれの論理を検証するステップ(b)と、前記ステップ(b)の後、前記共通検証環境を利用することで構築される前記チップ検証環境を用いて、前記半導体集積回路全体の論理を検証するステップ(c)とを備えている。
【0022】
本発明に係る論理検証方法の第2の態様は、前記ステップ(b)の後、前記ステップ(b)で不具合が発見された機能ブロックについて、前記モジュールおよび前記タスクの修正を行うステップ(d)と、前記ステップ(c)の後、前記ステップ(c)で不具合が発見された前記半導体集積回路について、前記モジュールおよび前記タスクの修正を行うステップ(e)とを備え、前記ステップ(d)および(e)は、前記共通検証環境を構成する前記モジュールおよび前記タスクを修正する。
【0023】
本発明に係る論理検証方法の第3の態様は、前記ステップ(d)が、前記共通検証環境を介して、前記複数のブロック検証環境間で前記不具合の情報を互いにフィードバックするステップを含んでいる。
【0024】
本発明に係る論理検証方法の第4の態様は、前記複数のブロック検証環境および前記チップ検証環境が、同じファイル構成を有している。
【発明の効果】
【0025】
本発明によれば、共通検証環境を利用することで複数のブロック検証環境およびチップ検証環境を構築するので、ブロック検証環境およびチップ検証環境の設計を簡略化して、論理検証に費やす時間を短縮することができる。
【図面の簡単な説明】
【0026】
図1】本発明に係る論理検証方法を実行するテストベンチの構成を示す図である。
図2】本発明に係る論理検証方法により検証環境を作成する方法を説明する概念図である。
図3】本発明に係る論理検証方法を説明するフローチャートである。
図4】ファイル構成の一例を説明する図である。
図5】従来の論理検証方法を説明するフローチャートである。
【発明を実施するための形態】
【0027】
<実施の形態>
<テストベンチの構成>
まず、図1を用いて、本発明に係る論理検証方法を実行するテストベンチTBの構成について説明する。
【0028】
図1に示すテストベンチTBは、検証対象となるチップ10と、チップ10に対するテストシナリオを与えるテストコントローラ1、チップ10に対して、実在する素子をシミュレーションのためにモデル化したデバイスモデル2およびチップ10における信号をモニタする信号モニタ3とを備えている。
【0029】
チップ10は、CPU(Central Processing Unit)11、簡易的なメモリモデルである通常メモリモデル12、DUT(Device Under Test)13およびバスの混雑状況を作り出すバスストレスメモリモデル14を有し、それぞれが、システムバス15に接続されている。
【0030】
また、CPU11は、簡易的なCPU動作モデルであるBFM(Bus Functional Model)21と、実際のクロックサイクルベースでCPUの動作をシミュレーションするDSM(Design Simulation Model)22とを、有している。
【0031】
なお、上述したテストベンチTBの各構成は、HDL等で記述されている。
【0032】
BFM21は、レジスタのリード、ライトなど簡易な動作をシミュレーションするモデルであり、主に画像処理のモジュールなどのブロック検証およびチップ検証で使用され、DSM22は、主にCPUのブートモジュールのブロック検証やチップ検証などのメインシナリオで使用するモデルである。
【0033】
通常メモリモデル12は、主にブロック検証で使用され、バスストレスメモリモデル14は、主にブロック検証のバスインターフェース検証シナリオ等で使用される。
【0034】
また、システムバス15としては、バスのデータ幅やバスプロトコルが異なる複数のバリエーションを準備することで、幅広いモジュール仕様に対応することができる。
【0035】
<論理検証方法>
次に、以上説明したテストベンチTBを用いて論理検証を行う論理検証方法について、図2図4を用いて説明する。
【0036】
<検証環境作成の概念>
図2は、本発明に係る論理検証方法により検証環境を作成する方法を説明する概念図である。なお、以下では、検証対象の半導体集積回路(チップ)として、ISP(Image Signal Processing)モジュールおよび動画圧縮規格の1つであるH.264に基づいて画像処理を行うH264モジュールを有しているチップを例に採って説明する。
【0037】
図2に示すように、本発明に係る論理検証方法では、様々な検証シナリオ、検証項目に共通して使用できる共通検証環境100を準備することとし、ISPとして動作する機能ブロック(ISPブロック)およびH.264に基づいて画像処理を行う機能ブロック(H264ブロック)に対応する検証環境の構築に際しては、共通検証環境100をリンク(参照)することで、それぞれに必要な、モジュールやテストシナリオを利用して、それぞれISPブロック検証環境200およびH264ブロック検証環境300を構築する構成となっている。
【0038】
また、チップ検証環境の構築に際しても、共通検証環境100をリンクすることで、それぞれに必要な、モジュールやテストシナリオを利用してチップ検証環境400を構築する構成となっている。この場合、チップ検証環境とブロック検証環境とでファイル構成を共通化することでブロック検証環境の移植を容易としている。なお、ファイル構成の共通化については、後に、図4を用いて説明する。
【0039】
図2において、共通検証環境100は、共通ブロック検証環境101と、ISPモジュール130と、H264モジュール140と、ISPタスク150と、H264タスク160とを有している。
【0040】
共通ブロック検証環境101は、共通モジュール110および共通タスク120を有し、共通モジュール110は、CPUモジュール111およびメモリモジュール112を含んでいる。また、共通タスク120は、レジスタR/Wタスク121およびメモリR/Wタスク122を含んでいる。
【0041】
ここで、レジスタR/Wタスク121は、BFMレジスタR/Wタスク1211およびDSMレジスタR/Wタスク1212を含んでいる。
【0042】
BFMレジスタR/Wタスク1211およびDSMレジスタR/Wタスク1212の一例としては、8bit、16bit、32bitおよび64bitで、1回だけレジスタに対するリードまたはライトを行うシングルアクセスを実行させるタスク、64bitで、1回の命令で複数回のリードまたはライトを行うバーストアクセスを実行させるタスクなどが挙げられる。
【0043】
また、メモリR/Wタスク122は、通常メモリR/Wタスク1221およびバスストレスメモリR/Wタスク1222を含んでいる。
【0044】
通常メモリR/Wタスク1221の一例としては、論物変換を行わず、受けたデータをそのままメモリに書き込むタスク、面順次の画像データを点順次の画像データに変換する面点変換のタスク、点順次の画像データを面順次の画像データに変換する点面変換のタスク、フレーム構造からフィールド構造への変換タスク、フィールド構造からフレーム構造への変換タスク、ベイヤ配列の12bitから16bitへの変換タスクおよびベイヤ配列の16bitから12bitへの変換タスクなどが挙げられる。
【0045】
CPUモジュール111は、BFMモジュール1111およびDSMモジュール1112を含み、メモリモジュール112は、通常メモリモジュール1121およびバスストレスメモリモジュール1122を含んでいる。
【0046】
また、ISPモジュール130は、ISPデバイス131を含み、H264モジュール140は、H264デバイス141を含んでいる。なお、ISPデバイス131およびH264デバイス141は、図1に示したDUT13に構築される。
【0047】
ISPタスク150は、ISPデバイス131における各種処理の検証を行うための複数のタスクを含んでいる。図2では、ISP入力画像設定タスク151、ISPフィルタ設定タスク152、ISP拡大縮小設定タスク153およびISP出力画像取得タスク154を含む例を示しているが、これら以外にも、ダイナミックレンジ設定タスク、オートフォーカス設定タスク、バッファアドレス設定タスクなどを含む場合もある。
【0048】
なお、ISP入力画像設定タスク151は、共通タスク120のメモリR/Wタスク122をリンクして利用し、ISPフィルタ設定タスク152、ISP拡大縮小設定タスク153およびISP出力画像取得タスク154は、共通タスク120のレジスタR/Wタスク121をリンクして利用することが示されている。
【0049】
また、H264タスク160は、H264デバイス141における各種処理の検証を行うための複数のタスクを含んでいる。図2では、H264入力画像設定タスク161、H264動き探索設定タスク162、H264量子化設定タスク163およびH264出力ストリーム取得タスク164を含む例を示しているが、これら以外にも、エントロピー符号化設定タスク、レート制御設定タスク、バッファアドレス設定タスクなどを含む場合もある。
【0050】
なお、H264入力画像設定タスク161、H264動き探索設定タスク162およびH264量子化設定タスク163は、共通タスク120のレジスタR/Wタスク121をリンクして利用することが示され、H264出力ストリーム取得タスク164は、共通タスク120のメモリR/Wタスク122をリンクして利用することが示されている。
【0051】
以上説明した共通検証環境100を利用することで、各種ブロック検証環境だけでなく、チップ検証環境も容易に構築することができる。
【0052】
すなわち、図2に示されるように、ISPブロック検証環境200は、モジュール201およびISPテストシナリオ202を有しているが、モジュール201は、共通検証環境100の共通モジュール110のCPUモジュール111およびメモリモジュール112をリンクし、また、ISPモジュール130のISPデバイス131をリンクし、それらを利用するように構成されている。
【0053】
また、ISPテストシナリオ202は、共通検証環境100のISPタスク150のISP入力画像設定タスク151、ISPフィルタ設定タスク152、ISP拡大縮小設定タスク153およびISP出力画像取得タスク154をリンクし、それらを利用するように構成されている。
【0054】
このように構成されたISPブロック検証環境200において、ISPテストシナリオ202を実行することで、ISPブロックを構成するISPデバイス131、CPUモジュール111およびメモリモジュール112の論理検証を行うことができる。
【0055】
また、H264ブロック検証環境300は、モジュール301およびH264テストシナリオ302を有しているが、モジュール301は、共通検証環境100の共通モジュール110のCPUモジュール111およびメモリモジュール112をリンクし、また、H264モジュール140のH264デバイス141をリンクし、それらを利用するように構成されている。
【0056】
また、H264テストシナリオ202は、共通検証環境100のH264タスク160のH264入力画像設定タスク161、H264動き探索設定タスク162、H264量子化設定タスク163およびH264出力ストリーム取得タスク164をリンクし、それらを利用するように構成されている。
【0057】
このように構成されたH264ブロック検証環境300において、H264テストシナリオ302を実行することで、H264ブロックを構成するH264デバイス141、CPUモジュール111およびメモリモジュール112の論理検証を行うことができる。
【0058】
また、チップ検証環境400は、モジュール401およびチップテストシナリオ402を有しているが、モジュール401は、共通検証環境100の共通モジュール110のCPUモジュール111およびメモリモジュール112をリンクすると共に、ISPモジュール130のISPデバイス131およびH264モジュール140のH264デバイス141をリンクし、それらを利用するように構成されている。
【0059】
チップテストシナリオ402は、共通検証環境100のISPタスク150のISP入力画像設定タスク151、ISPフィルタ設定タスク152、ISP拡大縮小設定タスク153、H264タスク160のH264動き探索設定タスク162、H264量子化設定タスク163およびH264出力ストリーム取得タスク164をリンクし、それらを利用するように構成されている。
【0060】
このように構成されたチップ検証環境400において、チップテストシナリオ402を実行することで、チップを構成するISPデバイス131、H264デバイス141、CPUモジュール111およびメモリモジュール112の論理検証を行うことができる。
【0061】
なお、チップ検証環境400では、チップ内の全てのモジュールをインスタンス化(実体化)するのではなく、使用しないモジュールについてはインスタンス化しない。これにより、シミュレーション時間、メモリ使用量を削減できる。
【0062】
なお、図2に示す共通検証環境100、ISPブロック検証環境200、H264ブロック検証環境300およびチップ検証環境400においては、矢印で示されるような利用およびフィードバックの関係を有している。
【0063】
すなわち、共通検証環境100に対しては、先に説明したように、ISPブロック検証環境200、H264ブロック検証環境300およびチップ検証環境400が利用する関係にあると共に、ブロック検証およびチップ検証で発見されたモジュールやテストシナリオの不具合を、共通検証環境100にフィードバックする関係にある。
【0064】
これにより、トータルの開発工数(検証環境設計、移植時間、検証時間)、開発コストおよび管理の手間を削減できる。
【0065】
また、チップ検証環境400と、ISPブロック検証環境200およびH264ブロック検証環境300との間では、互いの不具合をフィードバックする関係にある。
【0066】
例えば、ブロック検証環境からチップ検証環境にフィードバックする情報としては、モジュールの不具合、シナリオの不具合(設定値の間違い、設定不足、設定の順番間違いなど)が挙げられる。
【0067】
一方、チップ検証環境からブロック検証環境にフィードバックする情報としては、モジュール401に含まれるISPデバイス131とH264デバイス141との間の連携に関する不具合や、パフォーマンス改善のためのチップテストシナリオ402の設定値の変更情報などが挙げられる。
【0068】
また、ISPブロック検証環境200およびH264ブロック検証環境300との間でも、共通検証環境100を介して、共通ブロック検証環境101の不具合情報などをフィードバックすることができる。
【0069】
なお、図2に示した例では、チップが、ISPモジュールおよびH264モジュールを有するものとして説明したが、これら以外に、JPEGモジュール、GPU(Graphical Processing Unit)モジュール、センサーインターフェース(IF)モジュール、画像出力モジュール、DSP(Digital Signal Processor)モジュール、メモリコントローラモジュール、イーサネット(登録商標)モジュール、USBモジュールなどを有する場合もある。
【0070】
<論理検証方法のフロー>
次に、図3に示すフローチャートを用いて、本発明に係る論理検証方法について説明する。
【0071】
図3に示すように、論理回路の仕様を決定すると、仕様に従って、論理回路を構成するブロックごとにモジュールを設計する。図3の例では、論理回路がブロックAおよびブロックBを有している場合を示しており、ブロックAおよびBは、互いに、検証シナリオおよび検証項目が異なったブロックである。
【0072】
ステップS1でブロックAのモジュールを設計し、ステップS2でブロックBのモジュールを設計する。このステップS1およびステップS2で設計されるモジュールは、ISPモジュール130、H264モジュール140、ISPタスク150およびH264タスク160などの各ブロックに固有のモジュールであり、他のブロックとの間で共通化できないモジュールである。
【0073】
また、ステップS3では共通検証環境を設計する。このステップS3で設計されるのが、例えば、図2に示した共通ブロック検証環境101であり、共通利用されるモジュールについてはステップS3で設計される。
【0074】
なお、ステップS3で設計された共通検証環境を利用することで、ブロックごとの検証環境(ブロックAの検証環境およびブロックBの検証環境)を設計する必要がほとんどないので、図3においてはブロックごとに検証環境を設計するステップを省略している。
【0075】
また、同様に、共通検証環境を利用することで、チップ検証環境も設計する必要がほとんどない。すなわち、図2に示したISPデバイス131とH264デバイス141との間の連携部分のみを設計することで足りるので、チップ検証環境を設計するステップを省略している。
【0076】
そして、ステップS4では、共通検証環境を利用することで得られたブロックAの検証環境を用いてブロックAの論理検証を行い、ブロックAの動作の不具合の有無を確認し(ステップS5)、不具合があればフィードバックをかけてブロックAの該当箇所を修正する(ステップS6)。この場合、モジュールだけの修正に止まらず、タスクやシナリオについても不具合があれば修正する。一方、不具合がなければステップS10に進む。
【0077】
同様に、ステップS7では、共通検証環境を利用することで得られたブロックBの検証環境を用いてブロックBの論理検証を行い、ブロックBの不具合の有無を確認し(ステップS8)、不具合があればフィードバックをかけてブロックBの該当箇所を修正する(ステップS9)。この場合、モジュールだけの修正に止まらず、タスクやシナリオについても不具合があれば修正する。一方、不具合がなければステップS10に進む。
【0078】
このように、ステップS4、S5およびS6の繰り返し、およびステップS7、S8およびS9の繰り返しにより、それぞれブロックAおよびブロックBの不具合を修正する。
【0079】
ステップS10では、共通検証環境を利用することで得られたチップ検証環境を用いてチップの検証を行う。なお、チップ検証では、ブロックAおよびBの単体動作だけでなく、両者の連携動作についても検証を行う。
【0080】
そして、ブロックAの動作の不具合の有無を確認し(ステップS11)、不具合があればフィードバックをかけてブロックAの該当箇所を修正する(ステップS6)。この場合、モジュールだけの修正に止まらず、タスクやシナリオについても不具合があれば修正する。一方、不具合がなければステップS12に進み、ブロックBの動作の不具合の有無を確認し、不具合があればフィードバックをかけてブロックBの該当箇所を修正する(ステップS9)。この場合、モジュールだけの修正に止まらず、タスクやシナリオについても不具合があれば修正する。一方、不具合がなければステップS13に進む。
【0081】
ステップS13では、ブロックAとブロックBとの連携動作についての不具合の有無を確認し、連携動作に不具合があれば、フィードバックをかけて連携部分を修正する(ステップS14)。この場合、モジュールだけの修正に止まらず、タスクやシナリオについても不具合があれば修正する。一方、不具合がなければ検証作業を終了する。
【0082】
以上説明したように、本発明に係る論理検証方法によれば、ブロックごとに検証環境を設計する必要がほとんどなく、チップ検証環境を設計する必要もほとんどない。
【0083】
また、各ブロックに不具合が見つかった場合でも、それが共通モジュールに含まれるモジュールである場合は、共通検証環境を修正すれば良いので、修正に費やす時間を短縮できる。なお、以上説明した効果は、ブロック数が多くなればなるほど大きくなる。
【0084】
<ファイル構成の共通化>
以下、図4を用いてファイル構成の一例について説明する。図4は、ファイル構成を示す一覧表であり、ファイルは5つの階層で構成されている。すなわち、最上位の第1階層は、開発環境ファイル(dev)であることを示し、第2階層は、共通検証環境(common)、チップ検証環境(chip)、サンプル(sample)、ISPブロック検証環境(isp)およびH264ブロック検証環境(h264)の項目を示し、第3階層は、第2階層で示されるそれぞれの項目を、RTLで記述され、ハードウェアを定義するファイル(rtl)か、検証のため(シミュレーションのため)だけのファイル(sim)かを示し、第4階層および第5階層は、rtlおよびsimで分類されるファイルを表している。
【0085】
すなわち、共通検証環境においては、CPUのBFMモジュール(cpu_bfm)、CPUのDSMモジュール(cpu_dsm)、通常メモリモジュール(mem_nrm)、バスストレスメモリモジュール(mem_str)、ISPモジュール(isp)、H264モジュール(h264)がRTL(rtl)で記述されたファイルであり、タスク(task)は検証のためだけのファイルである。
【0086】
ここで、図4で示されるモジュールとは、それぞれの回路の動作を定義(記述)したファイルであり、例えばBFMモジュールとはBFMの動作を定義したファイルである。また、タスクとは、モジュールの制御内容(モジュールへの設定、モジュールからの応答待ちなど)を定義(記述)したファイルであり、後に説明するシナリオ(scenario)とは、検証のためだけのファイルであり、複数のタスクを含んだテストパターンを定義している。
【0087】
なお、モジュールの制御には、レジスタの設定を含み、タスクにおいてはレジスタ設定部のインターフェースの動作が記述されている。
【0088】
また、モジュールおよびタスクの実体データ(実体部分の記述)は全て共通検証環境上のファイルにあり、チップ検証環境、ISPブロック検証環境およびH264ブロック検証環境では、共通検証環境上のファイルを参照することでファイルを共通化している。
【0089】
また、第4階層でタスク(task)に分類されたファイルには、第5階層でCPUのBFMタスク(cpu_bfm)、CPUのDSMタスク(cpu_dsm)、通常メモリタスク(mem_nrm)、バスストレスメモリタスク(mem_str)、ISPタスク(isp)、H264タスク(h264)が含まれている。
【0090】
チップ検証環境においては、CPUモジュール参照(cpu)、メモリモジュール参照(mem)、ISPモジュール参照(isp)、H264モジュール参照(h264)がRTL(rtl)で記述されたファイルへのリンクを表している。
【0091】
すなわち、チップ検証環境においてはRTLで記述されたファイルとして、CPUモジュール、メモリモジュール、ISPモジュール参照およびH264モジュールのファイルを使用するが、これらは、共通検証環境にある実体データであるCPUのBFMモジュール、CPUのDSMモジュール、通常メモリモジュール、バスストレスメモリモジュール、ISPモジュール、H264モジュールを参照することが記述されたファイルであり、実体データを含んでいない。
【0092】
また、第4階層でタスク(task)に分類された構成には、第5階層でCPUタスク参照(cpu)、メモリタスク参照(mem)、ISPタスク参照(isp)、H264タスク参照(h264)が割り付けられている。
【0093】
これらも、共通検証環境におけるCPUのBFMタスク、CPUのDSMタスク、通常メモリタスク、バスストレスメモリタスク、ISPタスクおよびH264タスクを参照することが記述されたファイルであり、実体データを含んでいない。
【0094】
また、第4階層でシナリオ(scenario)に分類されたファイルには、第5階層でCHIPエンコードシナリオ(encode)、CHIPデコードシナリオ(decode)が含まれている。
【0095】
これらのシナリオのファイルは、チップ検証環境の複数のタスクファイルで構成されており、チップ検証環境の複数のタスクファイルを呼び出すことで実現されるものであり、タスクのファイルと同様に実体データはほとんど記述されていない。
【0096】
なお、第2階層でサンプル(sample)とされる項目は、ISPブロック検証環境(isp)およびH264ブロック検証環境(h264)を構築するためのひな形となるファイルを含んでいる。
【0097】
また、ISPブロック検証環境(isp)およびH264ブロック検証環境(h264)においても上記チップ検証環境と同様の階層分けがされており、モジュール、タスクは、それぞれ共通検証環境のモジュールおよびタスクファイルを参照することが記述されたファイルであり、実体データを含んでおらず、シナリオファイルはタスクファイルを呼び出すことで実現されるという点でチップ検証環境と同じであるが、タスクやシナリオについてはISPブロック、H264ブロックのそれぞれで特有のタスクやシナリオがあるという点ではチップ検証環境とは異なっている。
【0098】
また、図4においては、上述した各ファイルに対して番号が採番されている。例えば、共通検証環境における、CPUのBFMモジュールには「C1」、CPUのDSMモジュールには「C2」、通常メモリモジュールには「C3」、バスストレスメモリモジュールには「C4」、ISPモジュールには「C5」、H264モジュールには「C6」が割り当てられている。
【0099】
また、CPUのBFMタスクには「C7」、CPUのDSMタスクには「C8」、通常メモリタスクには「C9」、バスストレスメモリタスクには「C10」、ISPタスクには「C11」、H264タスクには「C12」が割り当てられている。
【0100】
これら共通検証環境におけるファイルは全て実体データであり、チップ検証環境、ISPブロック検証環境およびH264ブロック検証環境は、共通検証環境の実体データを参照して、それぞれの環境を構築することになるので、実体データを少なくして、データ量を削減することができるという効果がある。
【0101】
なお、図4に示す各項目の番号は、図2においても各モジュールや各タスクに付記されている。
【0102】
このように、本発明に係る論理検証方法においては、チップ検証環境とブロック検証環境とでファイル(ディレクトリ)構成を共通化することでブロック検証環境の移植により容易にチップ検証環境を構築することができる。
【0103】
なお、本発明は、その発明の範囲内において、実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【0104】
100 共通検証環境
200 ISPブロック検証環境
300 H264ブロック検証環境
400 チップ検証環境
図1
図2
図3
図4
図5