(57)【要約】【課題】簡易な構成により競合状態を発生させるテストパターンを作成可能なテストパターン作成方法を得ること。【解決手段】２以上の入力ポイントから競合ポイントに至る各経路の情報であるテストパターン作成用経路情報を収集する経路情報収集部２１と、テストパターン作成用経路情報で示される経路ごとに、シミュレーションに要する処理時間を示す時間情報を取得し、時間情報に基づいて経路の処理時間の差である時間差を算出し、さらに、処理時間の短い方の経路の入力ポイントへのデータの入力時間を当該時間差だけ遅らせるように時間調整を行う旨の時間調整情報を取得するシミュレーション情報収集部２２と、テストパターン作成用経路情報と、当該テストパターン作成用経路情報により特定される経路の組に対応する時間調整情報とを対応付けたテストパターンを作成するテストパターン作成部２３とを備える。【選択図】図２
2010244300.tif 000002
【特許請求の範囲】
【請求項１】
論理回路のシミュレーションにおいて競合状態を発生させるためのテストパターンを作成するテストパターン作成方法であって、
２以上の入力ポイントからの入力が競合するポイントである競合ポイントに至る各経路の情報であるテストパターン作成用経路情報を収集する経路情報収集ステップと、
前記テストパターン作成用経路情報で示される経路ごとに、シミュレーションに要する処理時間を示す情報である時間情報を取得する時間情報収集ステップと、
前記時間情報に基づいて前記経路の処理時間の差である時間差を算出し、さらに、処理時間の短い方の経路の入力ポイントへのデータの入力時間を当該時間差だけ遅らせるように時間調整を行う旨の時間調整情報を取得する時間調整情報収集ステップと、
前記テストパターン作成用経路情報と、当該テストパターン作成用経路情報により特定される経路の組に対応する前記時間調整情報とを対応付けたテストパターンを作成するテストパターン作成ステップと、
を含むことを特徴とするテストパターン作成方法。
【請求項２】
前記経路情報収集ステップでは、
既存のテストパターンを用いて論理シミュレーションを実行し、実行結果であるログを得るシミュレーション実行ステップと、
前記ログを用いてバックトレースを行った結果である経路情報を取得するバックトレース結果取得ステップと、
前記経路情報に基づいてテストパターン作成用経路情報を決定する経路情報決定ステップと、
を含むことを特徴とする請求項１に記載のテストパターン作成方法。
【請求項３】
前記経路情報決定ステップでは、前記経路情報に基づいて、異なる入力ポイントからの経路間で重複する経路があるかどうかを判断し、重複する経路がある場合には、当該重複する経路の手前の経路箇所を除外して、互いに独立した経路の情報であるテストパターン作成用経路情報を決定することとし、
さらに、
前記テストパターン作成用経路情報で示される経路におけるレジスタ設定値を収集するレジスタ設定値収集ステップ、
を含み、
前記テストパターン作成ステップでは、前記レジスタ設定値を含めてテストパターンを作成する、
ことを特徴とする請求項２に記載のテストパターン作成方法。
【請求項４】
競合状態のシミュレーションを実行するシミュレーション方法であって、
請求項１〜３のいずれか１つに記載のテストパターン作成方法で作成されたテストパターンを用いてシミュレーションを実行する実行ステップ、
を含むことを特徴とするシミュレーション方法。
【請求項５】
論理回路のシミュレーションにおいて競合状態を発生させるためのテストパターンを作成する情報処理装置であって、
２以上の入力ポイントからの入力が競合するポイントである競合ポイントに至る各経路の情報であるテストパターン作成用経路情報を収集する経路情報収集手段と、
前記テストパターン作成用経路情報で示される経路ごとに、シミュレーションに要する処理時間を示す情報である時間情報を取得し、当該時間情報に基づいて前記経路の処理時間の差である時間差を算出し、さらに、処理時間の短い方の経路の入力ポイントへのデータの入力時間を当該時間差だけ遅らせるように時間調整を行う旨の時間調整情報を取得するシミュレーション情報収集手段と、
前記テストパターン作成用経路情報と、当該テストパターン作成用経路情報により特定される経路の組に対応する前記時間調整情報とを対応付けたテストパターンを作成するテストパターン作成手段と、
を備えることを特徴とする情報処理装置。
【請求項６】
前記経路情報収集手段は、既存のテストパターンを用いて論理シミュレーションを実行した結果であるログを用いてバックトレースを行った結果である経路情報を取得し、当該経路情報に基づいてテストパターン作成用経路情報を決定する、
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記経路情報収集手段は、前記経路情報において、異なる入力ポイントからの経路間で重複する経路があるかどうかを判断し、重複する経路がある場合に当該重複する経路の手前の経路箇所を除外して、互いに独立した経路の情報であるテストパターン作成用経路情報を決定し、
前記シミュレーション情報収集手段は、前記テストパターン作成用経路情報で示される経路におけるレジスタ設定値を収集し、
前記テストパターン作成手段は、前記シミュレーション情報収集手段より通知されるレジスタ設定値を含めてテストパターンを作成する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
請求項５〜７のいずれか１つに記載の情報処理装置が作成したテストパターンを蓄積するためのテストパターン記憶手段と、
前記テストパターン記憶手段が保持するテストパターンを用いてシミュレーションを実行するシミュレーション実行手段と、
を備えることを特徴とするシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路設計における論理シミュレーションに用いるテストパターン作成方法に関する。
【背景技術】
【０００２】
近年、ＬＳＩの大規模化および複雑化にともない、ＬＳＩの検証に掛かる時間が増大しており、検証期間の短縮が求められている。これに対して、下記特許文献１には、製品動作を効率的に網羅しうるテストケースを自動的に作成するテストケース作成方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−２５３９０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、競合状態を発生させるテストパターンを作成するための方法については述べられていない。また、競合状態を発生させるテストパターンの作成は、ＬＳＩの大規模化，複雑化に伴って、カットアンドトライによる作成が難しくなっている、という問題があった。特に、競合状態を発生させるポイントに達する経路が独立でなく、当該ポイントに達する各経路がその経路の一部を他の経路と共有するような場合には、共有部分にてお互いに影響を及ぼすこととなり、競合状態を発生させるテストパターンを作成する際の時間調整が難しくなる。
【０００５】
また、テストパターン作成を自動化し、テストパターンを多量に生成してシミュレーションを実行し、その結果に基づいて競合状態を発生させるテストパターンを生成させる場合には、シミュレーションによるターンアラウンドタイムが大きくなるため、短期間にテストパターンを得ることが難しい、という問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、簡易な構成により競合状態を発生させるテストパターンを作成可能なテストパターン作成方法を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、論理回路のシミュレーションにおいて競合状態を発生させるためのテストパターンを作成するテストパターン作成方法であって、２以上の入力ポイントからの入力が競合するポイントである競合ポイントに至る各経路の情報であるテストパターン作成用経路情報を収集する経路情報収集ステップと、前記テストパターン作成用経路情報で示される経路ごとに、シミュレーションに要する処理時間を示す情報である時間情報を取得する時間情報収集ステップと、前記時間情報に基づいて前記経路の処理時間の差である時間差を算出し、さらに、処理時間の短い方の経路の入力ポイントへのデータの入力時間を当該時間差だけ遅らせるように時間調整を行う旨の時間調整情報を取得する時間調整情報収集ステップと、前記テストパターン作成用経路情報と、当該テストパターン作成用経路情報により特定される経路の組に対応する前記時間調整情報とを対応付けたテストパターンを作成するテストパターン作成ステップと、を含むことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、競合状態を発生させるテストパターンが容易に作成可能となる、という効果を奏する。
【図面の簡単な説明】
【０００９】
【図１−１】図１−１は、入力ポイントと競合ポイントを示した論理回路のシミュレーションモデルを示す図である。
【図１−２】図１−２は、図１−１の入力ポイントＡに入力したデータが競合ポイントに到達するまでの時間を示す図である。
【図１−３】図１−３は、図１−１の入力ポイントＢに入力したデータが競合ポイントに到達するまでの時間を示す図である。
【図１−４】図１−４は、競合状態を発生させる場合の時間調整を示す図である。
【図２】図２は、シミュレーションシステムの構成例を示す図である。
【図３】図３は、論理回路の一例を示す模式図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかるテストパターン作成方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態．
まず、本実施の形態のテストパターン作成方法を説明する前に、従来のテストパターン作成方法について説明する。図１−１は、入力ポイントと競合ポイントを示した単純な論理回路のシミュレーションモデル例を示す図である。図１−１の例では、入力ポイントＡに入力されたデータがブロックＸの入力となり、ブロックＸの出力である要求Ａが競合ポイントに入力されている。また、入力ポイントＢに入力されたデータがブロックＹの入力となり、ブロックＹとブロックＺが直列に接続され、ブロックＺの出力である要求Ｂが競合ポイントに入力されている。
【００１２】
図１−２は、図１−１の入力ポイントＡに入力したデータが競合ポイントに到達するまでの時間（要求Ａがアサートされるタイミング）および要求Ａの波形の一例を示す図である。また、図１−３は、図１−１の入力ポイントＢに入力したデータが競合ポイントに到達するまでの時間（要求Ｂがアサートされるタイミング）および要求Ｂの波形の一例を示す図である。従来は、図１−２および図１−３にて示されるような情報に基づき、すなわち、目視にて波形を確認しながら、または、ログを解析しながら、要求Ａと要求Ｂが競合状態となるように（同タイミングにアサートされるように）、レジスタ設定値や入力時間（入力タイミング）を調整して論理シミュレーションを何度も行い、その結果に基づいてテストパターンを作成していた。図１−４は、競合状態を発生させる場合の時間調整の一例を示す図である。
【００１３】
つぎに、本実施の形態のテストパターン作成方法について説明する。図２は、本実施の形態のテストパターン作成方法を実行するシミュレーションシステムの構成例を示す図である。図２のシミュレーションシステムは、テストパターンを用いて論理回路のシミュレーションを実行するシミュレーション装置１と、所望のシミュレーションを実行するためのテストパターンを作成するテストパターン作成装置２とを備える。シミュレーション装置１は、回路情報ＤＢ１１と、テストパターンＤＢ１２と、シミュレーション実行部１３と、ログ記憶部１４と、通信Ｉ／Ｆ部１５と、テストパターン登録部１７を備え、上記シミュレーション実行部１３には時間調整部１６が含まれる。また、テストパターン作成装置２は、ログ保存部２０と、経路情報収集部２１と、シミュレーション情報収集部２２と、テストパターン作成部２３と、通信Ｉ／Ｆ部２４とを備える。
【００１４】
シミュレーション装置１の回路情報ＤＢ１１は、論理回路（たとえば、後述する図３の論理回路３０）に関する回路情報を蓄積するための記憶部である。テストパターンＤＢ１２は、テストパターンのデータを蓄積するための記憶部である。シミュレーション実行部１３は、動的にシミュレーションを実行する。ログ記憶部１４は、シミュレーション実行部１３の処理により得られるログを蓄積する。通信Ｉ／Ｆ部１５は、テストパターン作成装置２との間の通信インタフェースである。また、シミュレーション実行部１３内の時間調整部１６は、テストパターンにおいて時間調整が指定されている場合に、入力のタイミングを調整する。テストパターン登録部１７は、受信したテストパターンをテストパターンＤＢ１２へ登録する。
【００１５】
テストパターン作成装置２のログ保存部２０は、シミュレーション装置１が取得したログを記憶する。経路情報収集部２１は、論理回路に関する経路情報を収集する。シミュレーション情報収集部２２は、ログ保存部２０および経路情報収集部２１からテストパターン作成に必要な情報を収集する。テストパターン作成部２３は、シミュレーション情報収集部２２によって収集された情報に基づいてテストパターンを作成する。通信Ｉ／Ｆ部２５は、シミュレーション装置１との間の通信インタフェースである。
【００１６】
つづいて、以上のように構成されたシミュレーションシステムの動作について説明する。図３は、テストパターン作成対象の論理回路の一例を示す模式図である。図３における論理回路３０は、内部に、ブロック３１，３２，３３，３４，３５，３６，３７，３８，３９，４０を備える。ここでは、ブロック３１に入力ポイント＃１が接続され、ブロック３２に入力ポイント＃２が接続されている。すなわち、図３の入力ポイント＃１へ入力されたデータがブロック３１の入力となり、入力ポイント＃２へ入力されたデータがブロック３２の入力となる。また、ブロック４０が競合ポイントである。また、ブロック３３〜３９が、ブロック３１とブロック４０との間およびブロック３２とブロック４０との間におけるブロック構成である。
【００１７】
本実施の形態では、各入力ポイントから競合ポイント（ブロック４０）までの互いに独立した複数の経路情報を収集するために、図２のシミュレーション装置１を用いて動的なシミュレーションを実行する。まず、図２のシミュレーション装置１のユーザは、入力ポイント＃１および競合状態を発生させるポイントであるブロック４０と、入力ポイント＃２および上記ブロック４０と、を指定して、シミュレーション実行を指示する。シミュレーション実行部１３は、当該実行指示を検出すると、回路情報ＤＢ１１から上記で指定されたポイント間の回路である論理回路３０の回路情報（ネットリストなど）を読み出す。そして、シミュレーション実行部１３は、テストパターンＤＢ１２から読み出した既存のテストパターン（各ブロックのレジスタ設定値等を含む）を用いて、動的に上記論理回路３０のシミュレーションを実施する。
【００１８】
また、シミュレーション実行部１３は、指定したポイント間のシミュレーションを実行することにより得られた結果を、ログとしてログ記憶部１４に蓄積する。その後、シミュレーション実行部１３は、当該ログをログ記憶部１４から読み出し、通信Ｉ／Ｆ部１５を介してテストパターン作成装置２に送信する。テストパターン作成装置２の通信Ｉ／Ｆ部２４は、受信したログをログ保存部２０に保存する。当該ログには、たとえば、入力された信号パターン，論理回路１の出力結果，シミュレーション実行に要した時間（処理時間），レジスタ設定値、といった情報が含まれる。
【００１９】
なお、ユーザは、上記ログおよび上記回路情報を用いて、競合ポイントであるブロック４０からのバックトレースを実施し、その結果として得られる入力ポイント＃１および＃２までの経路情報を収集する。その結果、図３の入力ポイント＃１から競合ポイント（ブロック４０）までの経路としては、「ブロック３１，３３，３６，３８，４０の経路」と、「ブロック３１，３４，３６，３８，４０の経路」の２つが得られ、また、入力ポイント＃２からブロック４０までの経路としては、「ブロック３２，３７，３８，４０の経路」と、「ブロック３２，３５，３７，３８，４０の経路」と、「ブロック３２，３５，３９，４０の経路」の３つが得られる。
【００２０】
つぎに、図２のテストパターン作成装置２におけるテストパターン作成処理を説明する。図２のテストパターン作成装置２のユーザは、上記で得られた経路情報を、情報処理装置の入力部（図示せず）などから入力し、テストパターン作成処理の実行を指示する。当該指示および経路情報を受信すると、テストパターン作成装置２の経路情報収集部２１は、まず、当該経路情報に基づいて、入力ポイント＃１からの経路と入力ポイント＃２からの経路との間（経路間）で重複する箇所があるかどうかを探索する。これにより、ブロック４０よりも手前で競合状態が発生する可能性があるかどうかを判断する。図３では入力ポイント＃１からの経路と入力ポイント＃２からの経路がブロック３８とブロック４０との間で重複しているので、経路情報収集部２１は、この重複部分におけるブロック３８で（ブロック４０よりも手前で）、競合状態が発生する可能性があると判断する。
【００２１】
そこで、経路情報収集部２１は、上記５つの経路、すなわち、「ブロック３１，３３，３６，３８，４０の経路」，「ブロック３１，３４，３６，３８，４０の経路」，「ブロック３２，３７，３８，４０の経路」，「ブロック３２，３５，３７，３８，４０の経路」，「ブロック３２，３５，３９，４０の経路」のうち、ブロック３８の手前のブロックであるブロック３７から、当該ブロック３８への経路箇所を上記経路情報から除外することで、経路間の重複を回避する。たとえば、当該経路箇所を、信号を伝播させない経路として指定する。そして、経路情報収集部２１は、ブロック３７〜ブロック３８の経路情報を上記経路情報から削除する。以下、当該経路箇所を指定する情報を、削除情報という。
【００２２】
上記削除処理により、上記経路情報として残る経路は、入力ポイント＃１からの経路である「ブロック３１，３３，３６，３８，４０の経路」および「ブロック３１，３４，３６，３８，４０の経路」と、入力ポイント＃２からの経路である「ブロック３２，３５，３９，４０の経路」となる。これら入力ポイント＃１からの経路と、入力ポイント＃２からの経路は、互いに独立であるため、所望のポイントで競合状態を発生させるために適した経路となる。以下、このようにして得られた経路の情報を、テストパターン作成用経路情報という。
【００２３】
また、経路情報収集部２１は、上記処理により得られたテストパターン作成用経路情報をシミュレーション情報収集部２２に通知する。シミュレーション情報収集部２２は、当該テストパターン作成用経路情報を受け取ると、ログ保存部２０よりログを読み出す。そして、当該ログのなかから、受信したテストパターン作成用経路情報により特定される経路である「入力ポイント＃１−ブロック４０」および「入力ポイント＃２−ブロック４０」のそれぞれについてログを検索し、当該ログにおいて記録されている時間情報を取得する。時間情報とは、たとえば、入力ポイント＃１からの経路である「ブロック３１，３３，３６，３８，４０の経路」の場合、当該経路のシミュレーションに要する処理時間を示す情報である。
【００２４】
また、シミュレーション情報収集部２２は、上記ログに記録されている各ブロックのレジスタ設定値および上記シミュレーションにおいて用いた入力信号パターンを収集する。なお、レジスタ設定値は、ユーザなどによる外部からの入力により与えられてもよい。
【００２５】
そして、シミュレーション情報収集部２２は、上記テストパターン作成用経路情報、削除情報、テストパターン作成用経路情報により特定される経路それぞれの時間情報、当該経路上のブロックのレジスタ設定値、および上記シミュレーションにおいて用いた入力信号パターンを、テストパターン作成部２３に通知する。
【００２６】
テストパターン作成部２３では、まず、受け取ったテストパターン作成用経路情報のなかから、テストパターン作成に用いる経路を選択する。図３の例では、入力ポイント＃１からの経路である「ブロック３１，３３，３６，３８，４０の経路」と、「ブロック３１，３４，３６，３８，４０の経路」の２つのうちのいずれか一方と、入力ポイント＃２からの経路である「ブロック３２，３５，３９，４０の経路」とを選択する。なお、図３では、説明の便宜上、簡易な構成を模式的に示しているが、さらに選択肢（経路）が多い場合もある。このような場合には、テストパターン作成用として用いる経路としてどの経路を選択してもよい。ここでは、たとえば、入力ポイント＃１からの経路である「ブロック３１，３３，３６，３８，４０の経路（経路１とする）」と、入力ポイント＃２からの経路である「ブロック３２，３５，３９，４０の経路（経路２とする）」を選択した場合を想定する。
【００２７】
そして、テストパターン作成部２３は、上記時間情報に基づいて、経路１と経路２の処理時間の差（時間差）を算出し、この時間差に基づいて、競合ポイントにおいて競合状態を発生させることが可能なテストパターンを作成する。具体的には、処理時間の短い方の経路へのデータの入力時間を上記時間差だけ遅らせるように、時間調整を行う旨の時間調整情報を生成する。また、テストパターン作成部２３は、上記削除情報、すなわちブロック３７から３８への経路箇所は信号伝播させない経路である旨の情報に基づいて、ブロック３７からブロック３８に対して有効な入力が行われないようにする。具体的には、シミュレーション情報収集部２２から通知されたレジスタ設定値におけるブロック３７におけるレジスタ設定値を、上記目的を達成する値に変更する。
【００２８】
テストパターン作成部２３は、上記で選択したテストパターン作成用経路情報，シミュレーション情報収集部２２から通知された，時間調整情報，上記で一部を変更した、当該経路上のブロックのレジスタ設定値，および上記シミュレーションにおいて用いた入力信号パターンを対応付けて、競合ポイントにおいて競合状態を発生させることが可能なテストパターンとする。その後、テストパターン作成部２３は、上記で新たに作成したテストパターンを、通信Ｉ／Ｆ部２４および通信Ｉ／Ｆ部１５を介して、テストパターン登録部１７に送信する。テストパターン登録部１７は、テストパターンを受信すると、このテストパターンをテストパターンＤＢ１２に保存する。
【００２９】
ここで、上記のように作成されたテストパターンを用いて、図３の論理回路３０において競合状態を発生させたシミュレーションを実行する場合の、シミュレーション装置１の動作について説明する。ユーザは、「入力ポイント＃１−ブロック４０」および「入力ポイント＃２−ブロック４０」において競合状態を発生させる旨を指定して、シミュレーション実行を指示する。シミュレーション装置１のシミュレーション実行部１３は、処理を開始すると、回路情報ＤＢ１１から論理回路３０の回路情報（ネットリストなど）を読み出す。そして、テストパターンＤＢ１２から上記で新たに作成して登録されたテストパターンを読み出してシミュレーションを実行する。この場合、読み出したテストパターンには時間調整情報が対応付けられているので、シミュレーション実行部１３は、その情報を時間調整部１６に通知する。時間調整部１６では、シミュレーション実行部１３によるシミュレーションの実行にあたり、時間調整情報に基づいて、競合状態を発生させるように入力ポイントからのデータ入力のタイミングを調整する。
【００３０】
なお、上記では、シミュレーション情報収集部２２が、削除情報に基づいてレジスタ設定値を変更することで、経路の重複を回避する場合を説明したが、他の方法を用いてもよい。たとえば、シミュレーション情報収集部２２はレジスタ設定値を変更せずに削除情報をテストパターン作成部２３に通知し、テストパターン作成部２３は、削除情報をテストパターンに含めることとする。そして、シミュレーション実行部１３は、競合状態のシミュレーションを実行する際には、当該削除情報にしたがって、重複経路となる箇所に信号を伝播させないようにする。
【００３１】
以上説明したように、本実施の形態では、シミュレーションおよびシミュレーション結果のバックトレースにより、競合状態を発生させるポイントまでの互いに独立な複数の経路の情報と、それらの経路に対応した到達時間の情報を収集し、これら情報に基づいてテストパターンを作成することとした。これにより、競合状態を発生させるための時間調整を容易に実行できる。したがって、カットアンドトライを行うことなく、競合状態を発生させるテストパターンを容易に作成可能となり、ＬＳＩの大規模化，複雑化にも対応可能となる。
【００３２】
なお、上記実施の形態では、入力ポイントが２つである場合を例に説明したが、入力ポイントが３つ以上である場合にも適用可能である。
【産業上の利用可能性】
【００３３】
以上のように、本発明にかかるテストパターン作成方法は、論理回路設計における論理シミュレーションに用いるテストパターンを作成する場合に有用であり、特に、競合状態のテストパターンを作成する場合に適している。
【符号の説明】
【００３４】
１  シミュレーション装置
２  テストパターン作成装置
１１  回路情報ＤＢ
１２  テストパターンＤＢ
１３  シミュレーション実行部
１４  ログ記憶部
１５  通信Ｉ／Ｆ部
１６  時間調整部
２０  ログ保存部
２１  経路情報収集部
２２  シミュレーション情報収集部
２３  テストパターン作成部
２４  通信Ｉ／Ｆ部
Ｘ，Ｙ，Ｚ  ブロック
【図１−１】
2010244300.tif 000003
【図１−２】
2010244300.tif 000004
【図１−３】
2010244300.tif 000005
【図１−４】
2010244300.tif 000006
【図２】
2010244300.tif 000007
【図３】
2010244300.tif 000008