説明

テストパターン作成手法、シミュレーション方法、情報処理装置およびシミュレーション装置

【課題】簡易な構成により競合状態を発生させるテストパターンを作成可能なテストパターン作成方法を得ること。
【解決手段】2以上の入力ポイントから競合ポイントに至る各経路の情報であるテストパターン作成用経路情報を収集する経路情報収集部21と、テストパターン作成用経路情報で示される経路ごとに、シミュレーションに要する処理時間を示す時間情報を取得し、時間情報に基づいて経路の処理時間の差である時間差を算出し、さらに、処理時間の短い方の経路の入力ポイントへのデータの入力時間を当該時間差だけ遅らせるように時間調整を行う旨の時間調整情報を取得するシミュレーション情報収集部22と、テストパターン作成用経路情報と、当該テストパターン作成用経路情報により特定される経路の組に対応する時間調整情報とを対応付けたテストパターンを作成するテストパターン作成部23とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、論理回路設計における論理シミュレーションに用いるテストパターン作成方法に関する。
【背景技術】
【0002】
近年、LSIの大規模化および複雑化にともない、LSIの検証に掛かる時間が増大しており、検証期間の短縮が求められている。これに対して、下記特許文献1には、製品動作を効率的に網羅しうるテストケースを自動的に作成するテストケース作成方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平07−253905号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来の技術では、競合状態を発生させるテストパターンを作成するための方法については述べられていない。また、競合状態を発生させるテストパターンの作成は、LSIの大規模化,複雑化に伴って、カットアンドトライによる作成が難しくなっている、という問題があった。特に、競合状態を発生させるポイントに達する経路が独立でなく、当該ポイントに達する各経路がその経路の一部を他の経路と共有するような場合には、共有部分にてお互いに影響を及ぼすこととなり、競合状態を発生させるテストパターンを作成する際の時間調整が難しくなる。
【0005】
また、テストパターン作成を自動化し、テストパターンを多量に生成してシミュレーションを実行し、その結果に基づいて競合状態を発生させるテストパターンを生成させる場合には、シミュレーションによるターンアラウンドタイムが大きくなるため、短期間にテストパターンを得ることが難しい、という問題があった。
【0006】
本発明は、上記に鑑みてなされたものであって、簡易な構成により競合状態を発生させるテストパターンを作成可能なテストパターン作成方法を得ることを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明は、論理回路のシミュレーションにおいて競合状態を発生させるためのテストパターンを作成するテストパターン作成方法であって、2以上の入力ポイントからの入力が競合するポイントである競合ポイントに至る各経路の情報であるテストパターン作成用経路情報を収集する経路情報収集ステップと、前記テストパターン作成用経路情報で示される経路ごとに、シミュレーションに要する処理時間を示す情報である時間情報を取得する時間情報収集ステップと、前記時間情報に基づいて前記経路の処理時間の差である時間差を算出し、さらに、処理時間の短い方の経路の入力ポイントへのデータの入力時間を当該時間差だけ遅らせるように時間調整を行う旨の時間調整情報を取得する時間調整情報収集ステップと、前記テストパターン作成用経路情報と、当該テストパターン作成用経路情報により特定される経路の組に対応する前記時間調整情報とを対応付けたテストパターンを作成するテストパターン作成ステップと、を含むことを特徴とする。
【発明の効果】
【0008】
本発明によれば、競合状態を発生させるテストパターンが容易に作成可能となる、という効果を奏する。
【図面の簡単な説明】
【0009】
【図1−1】図1−1は、入力ポイントと競合ポイントを示した論理回路のシミュレーションモデルを示す図である。
【図1−2】図1−2は、図1−1の入力ポイントAに入力したデータが競合ポイントに到達するまでの時間を示す図である。
【図1−3】図1−3は、図1−1の入力ポイントBに入力したデータが競合ポイントに到達するまでの時間を示す図である。
【図1−4】図1−4は、競合状態を発生させる場合の時間調整を示す図である。
【図2】図2は、シミュレーションシステムの構成例を示す図である。
【図3】図3は、論理回路の一例を示す模式図である。
【発明を実施するための形態】
【0010】
以下に、本発明にかかるテストパターン作成方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0011】
実施の形態.
まず、本実施の形態のテストパターン作成方法を説明する前に、従来のテストパターン作成方法について説明する。図1−1は、入力ポイントと競合ポイントを示した単純な論理回路のシミュレーションモデル例を示す図である。図1−1の例では、入力ポイントAに入力されたデータがブロックXの入力となり、ブロックXの出力である要求Aが競合ポイントに入力されている。また、入力ポイントBに入力されたデータがブロックYの入力となり、ブロックYとブロックZが直列に接続され、ブロックZの出力である要求Bが競合ポイントに入力されている。
【0012】
図1−2は、図1−1の入力ポイントAに入力したデータが競合ポイントに到達するまでの時間(要求Aがアサートされるタイミング)および要求Aの波形の一例を示す図である。また、図1−3は、図1−1の入力ポイントBに入力したデータが競合ポイントに到達するまでの時間(要求Bがアサートされるタイミング)および要求Bの波形の一例を示す図である。従来は、図1−2および図1−3にて示されるような情報に基づき、すなわち、目視にて波形を確認しながら、または、ログを解析しながら、要求Aと要求Bが競合状態となるように(同タイミングにアサートされるように)、レジスタ設定値や入力時間(入力タイミング)を調整して論理シミュレーションを何度も行い、その結果に基づいてテストパターンを作成していた。図1−4は、競合状態を発生させる場合の時間調整の一例を示す図である。
【0013】
つぎに、本実施の形態のテストパターン作成方法について説明する。図2は、本実施の形態のテストパターン作成方法を実行するシミュレーションシステムの構成例を示す図である。図2のシミュレーションシステムは、テストパターンを用いて論理回路のシミュレーションを実行するシミュレーション装置1と、所望のシミュレーションを実行するためのテストパターンを作成するテストパターン作成装置2とを備える。シミュレーション装置1は、回路情報DB11と、テストパターンDB12と、シミュレーション実行部13と、ログ記憶部14と、通信I/F部15と、テストパターン登録部17を備え、上記シミュレーション実行部13には時間調整部16が含まれる。また、テストパターン作成装置2は、ログ保存部20と、経路情報収集部21と、シミュレーション情報収集部22と、テストパターン作成部23と、通信I/F部24とを備える。
【0014】
シミュレーション装置1の回路情報DB11は、論理回路(たとえば、後述する図3の論理回路30)に関する回路情報を蓄積するための記憶部である。テストパターンDB12は、テストパターンのデータを蓄積するための記憶部である。シミュレーション実行部13は、動的にシミュレーションを実行する。ログ記憶部14は、シミュレーション実行部13の処理により得られるログを蓄積する。通信I/F部15は、テストパターン作成装置2との間の通信インタフェースである。また、シミュレーション実行部13内の時間調整部16は、テストパターンにおいて時間調整が指定されている場合に、入力のタイミングを調整する。テストパターン登録部17は、受信したテストパターンをテストパターンDB12へ登録する。
【0015】
テストパターン作成装置2のログ保存部20は、シミュレーション装置1が取得したログを記憶する。経路情報収集部21は、論理回路に関する経路情報を収集する。シミュレーション情報収集部22は、ログ保存部20および経路情報収集部21からテストパターン作成に必要な情報を収集する。テストパターン作成部23は、シミュレーション情報収集部22によって収集された情報に基づいてテストパターンを作成する。通信I/F部25は、シミュレーション装置1との間の通信インタフェースである。
【0016】
つづいて、以上のように構成されたシミュレーションシステムの動作について説明する。図3は、テストパターン作成対象の論理回路の一例を示す模式図である。図3における論理回路30は、内部に、ブロック31,32,33,34,35,36,37,38,39,40を備える。ここでは、ブロック31に入力ポイント#1が接続され、ブロック32に入力ポイント#2が接続されている。すなわち、図3の入力ポイント#1へ入力されたデータがブロック31の入力となり、入力ポイント#2へ入力されたデータがブロック32の入力となる。また、ブロック40が競合ポイントである。また、ブロック33〜39が、ブロック31とブロック40との間およびブロック32とブロック40との間におけるブロック構成である。
【0017】
本実施の形態では、各入力ポイントから競合ポイント(ブロック40)までの互いに独立した複数の経路情報を収集するために、図2のシミュレーション装置1を用いて動的なシミュレーションを実行する。まず、図2のシミュレーション装置1のユーザは、入力ポイント#1および競合状態を発生させるポイントであるブロック40と、入力ポイント#2および上記ブロック40と、を指定して、シミュレーション実行を指示する。シミュレーション実行部13は、当該実行指示を検出すると、回路情報DB11から上記で指定されたポイント間の回路である論理回路30の回路情報(ネットリストなど)を読み出す。そして、シミュレーション実行部13は、テストパターンDB12から読み出した既存のテストパターン(各ブロックのレジスタ設定値等を含む)を用いて、動的に上記論理回路30のシミュレーションを実施する。
【0018】
また、シミュレーション実行部13は、指定したポイント間のシミュレーションを実行することにより得られた結果を、ログとしてログ記憶部14に蓄積する。その後、シミュレーション実行部13は、当該ログをログ記憶部14から読み出し、通信I/F部15を介してテストパターン作成装置2に送信する。テストパターン作成装置2の通信I/F部24は、受信したログをログ保存部20に保存する。当該ログには、たとえば、入力された信号パターン,論理回路1の出力結果,シミュレーション実行に要した時間(処理時間),レジスタ設定値、といった情報が含まれる。
【0019】
なお、ユーザは、上記ログおよび上記回路情報を用いて、競合ポイントであるブロック40からのバックトレースを実施し、その結果として得られる入力ポイント#1および#2までの経路情報を収集する。その結果、図3の入力ポイント#1から競合ポイント(ブロック40)までの経路としては、「ブロック31,33,36,38,40の経路」と、「ブロック31,34,36,38,40の経路」の2つが得られ、また、入力ポイント#2からブロック40までの経路としては、「ブロック32,37,38,40の経路」と、「ブロック32,35,37,38,40の経路」と、「ブロック32,35,39,40の経路」の3つが得られる。
【0020】
つぎに、図2のテストパターン作成装置2におけるテストパターン作成処理を説明する。図2のテストパターン作成装置2のユーザは、上記で得られた経路情報を、情報処理装置の入力部(図示せず)などから入力し、テストパターン作成処理の実行を指示する。当該指示および経路情報を受信すると、テストパターン作成装置2の経路情報収集部21は、まず、当該経路情報に基づいて、入力ポイント#1からの経路と入力ポイント#2からの経路との間(経路間)で重複する箇所があるかどうかを探索する。これにより、ブロック40よりも手前で競合状態が発生する可能性があるかどうかを判断する。図3では入力ポイント#1からの経路と入力ポイント#2からの経路がブロック38とブロック40との間で重複しているので、経路情報収集部21は、この重複部分におけるブロック38で(ブロック40よりも手前で)、競合状態が発生する可能性があると判断する。
【0021】
そこで、経路情報収集部21は、上記5つの経路、すなわち、「ブロック31,33,36,38,40の経路」,「ブロック31,34,36,38,40の経路」,「ブロック32,37,38,40の経路」,「ブロック32,35,37,38,40の経路」,「ブロック32,35,39,40の経路」のうち、ブロック38の手前のブロックであるブロック37から、当該ブロック38への経路箇所を上記経路情報から除外することで、経路間の重複を回避する。たとえば、当該経路箇所を、信号を伝播させない経路として指定する。そして、経路情報収集部21は、ブロック37〜ブロック38の経路情報を上記経路情報から削除する。以下、当該経路箇所を指定する情報を、削除情報という。
【0022】
上記削除処理により、上記経路情報として残る経路は、入力ポイント#1からの経路である「ブロック31,33,36,38,40の経路」および「ブロック31,34,36,38,40の経路」と、入力ポイント#2からの経路である「ブロック32,35,39,40の経路」となる。これら入力ポイント#1からの経路と、入力ポイント#2からの経路は、互いに独立であるため、所望のポイントで競合状態を発生させるために適した経路となる。以下、このようにして得られた経路の情報を、テストパターン作成用経路情報という。
【0023】
また、経路情報収集部21は、上記処理により得られたテストパターン作成用経路情報をシミュレーション情報収集部22に通知する。シミュレーション情報収集部22は、当該テストパターン作成用経路情報を受け取ると、ログ保存部20よりログを読み出す。そして、当該ログのなかから、受信したテストパターン作成用経路情報により特定される経路である「入力ポイント#1−ブロック40」および「入力ポイント#2−ブロック40」のそれぞれについてログを検索し、当該ログにおいて記録されている時間情報を取得する。時間情報とは、たとえば、入力ポイント#1からの経路である「ブロック31,33,36,38,40の経路」の場合、当該経路のシミュレーションに要する処理時間を示す情報である。
【0024】
また、シミュレーション情報収集部22は、上記ログに記録されている各ブロックのレジスタ設定値および上記シミュレーションにおいて用いた入力信号パターンを収集する。なお、レジスタ設定値は、ユーザなどによる外部からの入力により与えられてもよい。
【0025】
そして、シミュレーション情報収集部22は、上記テストパターン作成用経路情報、削除情報、テストパターン作成用経路情報により特定される経路それぞれの時間情報、当該経路上のブロックのレジスタ設定値、および上記シミュレーションにおいて用いた入力信号パターンを、テストパターン作成部23に通知する。
【0026】
テストパターン作成部23では、まず、受け取ったテストパターン作成用経路情報のなかから、テストパターン作成に用いる経路を選択する。図3の例では、入力ポイント#1からの経路である「ブロック31,33,36,38,40の経路」と、「ブロック31,34,36,38,40の経路」の2つのうちのいずれか一方と、入力ポイント#2からの経路である「ブロック32,35,39,40の経路」とを選択する。なお、図3では、説明の便宜上、簡易な構成を模式的に示しているが、さらに選択肢(経路)が多い場合もある。このような場合には、テストパターン作成用として用いる経路としてどの経路を選択してもよい。ここでは、たとえば、入力ポイント#1からの経路である「ブロック31,33,36,38,40の経路(経路1とする)」と、入力ポイント#2からの経路である「ブロック32,35,39,40の経路(経路2とする)」を選択した場合を想定する。
【0027】
そして、テストパターン作成部23は、上記時間情報に基づいて、経路1と経路2の処理時間の差(時間差)を算出し、この時間差に基づいて、競合ポイントにおいて競合状態を発生させることが可能なテストパターンを作成する。具体的には、処理時間の短い方の経路へのデータの入力時間を上記時間差だけ遅らせるように、時間調整を行う旨の時間調整情報を生成する。また、テストパターン作成部23は、上記削除情報、すなわちブロック37から38への経路箇所は信号伝播させない経路である旨の情報に基づいて、ブロック37からブロック38に対して有効な入力が行われないようにする。具体的には、シミュレーション情報収集部22から通知されたレジスタ設定値におけるブロック37におけるレジスタ設定値を、上記目的を達成する値に変更する。
【0028】
テストパターン作成部23は、上記で選択したテストパターン作成用経路情報,シミュレーション情報収集部22から通知された,時間調整情報,上記で一部を変更した、当該経路上のブロックのレジスタ設定値,および上記シミュレーションにおいて用いた入力信号パターンを対応付けて、競合ポイントにおいて競合状態を発生させることが可能なテストパターンとする。その後、テストパターン作成部23は、上記で新たに作成したテストパターンを、通信I/F部24および通信I/F部15を介して、テストパターン登録部17に送信する。テストパターン登録部17は、テストパターンを受信すると、このテストパターンをテストパターンDB12に保存する。
【0029】
ここで、上記のように作成されたテストパターンを用いて、図3の論理回路30において競合状態を発生させたシミュレーションを実行する場合の、シミュレーション装置1の動作について説明する。ユーザは、「入力ポイント#1−ブロック40」および「入力ポイント#2−ブロック40」において競合状態を発生させる旨を指定して、シミュレーション実行を指示する。シミュレーション装置1のシミュレーション実行部13は、処理を開始すると、回路情報DB11から論理回路30の回路情報(ネットリストなど)を読み出す。そして、テストパターンDB12から上記で新たに作成して登録されたテストパターンを読み出してシミュレーションを実行する。この場合、読み出したテストパターンには時間調整情報が対応付けられているので、シミュレーション実行部13は、その情報を時間調整部16に通知する。時間調整部16では、シミュレーション実行部13によるシミュレーションの実行にあたり、時間調整情報に基づいて、競合状態を発生させるように入力ポイントからのデータ入力のタイミングを調整する。
【0030】
なお、上記では、シミュレーション情報収集部22が、削除情報に基づいてレジスタ設定値を変更することで、経路の重複を回避する場合を説明したが、他の方法を用いてもよい。たとえば、シミュレーション情報収集部22はレジスタ設定値を変更せずに削除情報をテストパターン作成部23に通知し、テストパターン作成部23は、削除情報をテストパターンに含めることとする。そして、シミュレーション実行部13は、競合状態のシミュレーションを実行する際には、当該削除情報にしたがって、重複経路となる箇所に信号を伝播させないようにする。
【0031】
以上説明したように、本実施の形態では、シミュレーションおよびシミュレーション結果のバックトレースにより、競合状態を発生させるポイントまでの互いに独立な複数の経路の情報と、それらの経路に対応した到達時間の情報を収集し、これら情報に基づいてテストパターンを作成することとした。これにより、競合状態を発生させるための時間調整を容易に実行できる。したがって、カットアンドトライを行うことなく、競合状態を発生させるテストパターンを容易に作成可能となり、LSIの大規模化,複雑化にも対応可能となる。
【0032】
なお、上記実施の形態では、入力ポイントが2つである場合を例に説明したが、入力ポイントが3つ以上である場合にも適用可能である。
【産業上の利用可能性】
【0033】
以上のように、本発明にかかるテストパターン作成方法は、論理回路設計における論理シミュレーションに用いるテストパターンを作成する場合に有用であり、特に、競合状態のテストパターンを作成する場合に適している。
【符号の説明】
【0034】
1 シミュレーション装置
2 テストパターン作成装置
11 回路情報DB
12 テストパターンDB
13 シミュレーション実行部
14 ログ記憶部
15 通信I/F部
16 時間調整部
20 ログ保存部
21 経路情報収集部
22 シミュレーション情報収集部
23 テストパターン作成部
24 通信I/F部
X,Y,Z ブロック

【特許請求の範囲】
【請求項1】
論理回路のシミュレーションにおいて競合状態を発生させるためのテストパターンを作成するテストパターン作成方法であって、
2以上の入力ポイントからの入力が競合するポイントである競合ポイントに至る各経路の情報であるテストパターン作成用経路情報を収集する経路情報収集ステップと、
前記テストパターン作成用経路情報で示される経路ごとに、シミュレーションに要する処理時間を示す情報である時間情報を取得する時間情報収集ステップと、
前記時間情報に基づいて前記経路の処理時間の差である時間差を算出し、さらに、処理時間の短い方の経路の入力ポイントへのデータの入力時間を当該時間差だけ遅らせるように時間調整を行う旨の時間調整情報を取得する時間調整情報収集ステップと、
前記テストパターン作成用経路情報と、当該テストパターン作成用経路情報により特定される経路の組に対応する前記時間調整情報とを対応付けたテストパターンを作成するテストパターン作成ステップと、
を含むことを特徴とするテストパターン作成方法。
【請求項2】
前記経路情報収集ステップでは、
既存のテストパターンを用いて論理シミュレーションを実行し、実行結果であるログを得るシミュレーション実行ステップと、
前記ログを用いてバックトレースを行った結果である経路情報を取得するバックトレース結果取得ステップと、
前記経路情報に基づいてテストパターン作成用経路情報を決定する経路情報決定ステップと、
を含むことを特徴とする請求項1に記載のテストパターン作成方法。
【請求項3】
前記経路情報決定ステップでは、前記経路情報に基づいて、異なる入力ポイントからの経路間で重複する経路があるかどうかを判断し、重複する経路がある場合には、当該重複する経路の手前の経路箇所を除外して、互いに独立した経路の情報であるテストパターン作成用経路情報を決定することとし、
さらに、
前記テストパターン作成用経路情報で示される経路におけるレジスタ設定値を収集するレジスタ設定値収集ステップ、
を含み、
前記テストパターン作成ステップでは、前記レジスタ設定値を含めてテストパターンを作成する、
ことを特徴とする請求項2に記載のテストパターン作成方法。
【請求項4】
競合状態のシミュレーションを実行するシミュレーション方法であって、
請求項1〜3のいずれか1つに記載のテストパターン作成方法で作成されたテストパターンを用いてシミュレーションを実行する実行ステップ、
を含むことを特徴とするシミュレーション方法。
【請求項5】
論理回路のシミュレーションにおいて競合状態を発生させるためのテストパターンを作成する情報処理装置であって、
2以上の入力ポイントからの入力が競合するポイントである競合ポイントに至る各経路の情報であるテストパターン作成用経路情報を収集する経路情報収集手段と、
前記テストパターン作成用経路情報で示される経路ごとに、シミュレーションに要する処理時間を示す情報である時間情報を取得し、当該時間情報に基づいて前記経路の処理時間の差である時間差を算出し、さらに、処理時間の短い方の経路の入力ポイントへのデータの入力時間を当該時間差だけ遅らせるように時間調整を行う旨の時間調整情報を取得するシミュレーション情報収集手段と、
前記テストパターン作成用経路情報と、当該テストパターン作成用経路情報により特定される経路の組に対応する前記時間調整情報とを対応付けたテストパターンを作成するテストパターン作成手段と、
を備えることを特徴とする情報処理装置。
【請求項6】
前記経路情報収集手段は、既存のテストパターンを用いて論理シミュレーションを実行した結果であるログを用いてバックトレースを行った結果である経路情報を取得し、当該経路情報に基づいてテストパターン作成用経路情報を決定する、
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記経路情報収集手段は、前記経路情報において、異なる入力ポイントからの経路間で重複する経路があるかどうかを判断し、重複する経路がある場合に当該重複する経路の手前の経路箇所を除外して、互いに独立した経路の情報であるテストパターン作成用経路情報を決定し、
前記シミュレーション情報収集手段は、前記テストパターン作成用経路情報で示される経路におけるレジスタ設定値を収集し、
前記テストパターン作成手段は、前記シミュレーション情報収集手段より通知されるレジスタ設定値を含めてテストパターンを作成する、
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
請求項5〜7のいずれか1つに記載の情報処理装置が作成したテストパターンを蓄積するためのテストパターン記憶手段と、
前記テストパターン記憶手段が保持するテストパターンを用いてシミュレーションを実行するシミュレーション実行手段と、
を備えることを特徴とするシミュレーション装置。

【図1−1】
image rotate

【図1−2】
image rotate

【図1−3】
image rotate

【図1−4】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2010−244300(P2010−244300A)
【公開日】平成22年10月28日(2010.10.28)
【国際特許分類】
【出願番号】特願2009−92350(P2009−92350)
【出願日】平成21年4月6日(2009.4.6)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】