説明

検証装置、検証方法、及びプログラム

【課題】検証済みの基準回路と被検証回路とに修正が加えられた場合に、回路全体を検証しつつ、設計時間の短縮化及び効率化を図り得る、検証装置、検証方法、及びプログラムを提供する。
【解決手段】検証装置10は、基準回路での論理変更によって変更された信号に関する情報に基づいて、論理変更前後の基準回路における論理変更によって信号の入力値が変化するポイントを抽出する、基準回路側ポイント抽出部20と、被検証回路での論理変更によって変更された信号に関する情報に基づいて、論理変更前後の被検証回路における論理変更によって信号の入力値が変化するポイントを抽出する、被検証回路側ポイント抽出部30と、基準回路側ポイント抽出部20及び被検証回路側ポイント抽出部30が抽出したポイントを用いて、検証スクリプト41を生成する検証スクリプト生成部40とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、基準回路と被検証回路とに修正が加えられた場合に、回路全体の検証を実行する、検証装置、検証方法、及びプログラムに関する。
【背景技術】
【0002】
半導体装置(例えばLSI)の設計工程(以下「半導体設計工程」という。)においては、回路の微細化に伴い、ECO(Engineering Change Order:設計後の回路変更)の発生頻度が上昇し、ECOの重要性が高くなっている。ECOでは、例えば、RTL(Register Transfer Level)で記述された論理回路とネットリストとの論理が合うように論理変更が行われ、それぞれに対して修正が行われる。
【0003】
ところで、ECOにおいては、修正は手修正によって行われるため、設計者が、間違った修正を行う可能性が高く、そして、間違っているかどうかが判明するまでに時間がかかることがある。よって、間違いがあった場合は、修正間違いの修正も必要となるため、TAT(Turn Around Time)が増加してしまう。
【0004】
一方、特許文献1は、ECOの実行工程において、修正されたHDL記述における、修正前の論理回路との差分箇所を階層化し、更に、階層化された箇所を論理合成して新たな論理回路を作成し、これを修正前の論理回路の該当部分と取り換える技術を開示している。特許文献1に開示の技術によれば、差分箇所の階層化により、論理合成の実行単位を小さくすることができ、再論理合成及び再論理等価検証の実行時間及び確認時間が短縮される。その結果、TATの増加が抑制される。
【0005】
但し、特許文献1に開示の技術には、配線の遅延及び素子の配置上の制限等に起因してネットリストが手修正された場合に対応できないという問題(第1の問題)がある。また、従来からのECOにおいては、ネットリストに対して手修正が行われた場合は、修正前のネットリストと修正後のネットリストとの差分が数行であったとしても、チップ全体で検証を実行する必要がある。このため、設計に時間がかかり、効率化を図ることができないという問題(第2の問題)がある。
【0006】
第2の問題に対しては、例えば、検証ツールを用いて検証ポイントを指定し、検証範囲を狭めることによって、解消が可能であるとも考えられる。しかしながら、このような手法を採用した場合は、ネットリストに、設計者が意識していない接続が存在しているときに、検証漏れが起きるという別の問題(第3の問題)が発生してしまう。
【0007】
これら第1〜第3の問題を解消するため、例えば、特許文献2は、回路パラメータが変更された場合に、回路全体の中から、回路パラメータの変更によって影響を受ける部分を抽出し、抽出した部分についてのみ回路シミュレーションを実行する技術を開示している。
【0008】
特許文献2に開示の技術によれば、ネットリストの手修正にも対応できるため、第1の問題は解消される。また、特許文献2に開示の技術では、特定された回路についてのみシミュレーションが行われるので、第2の問題も解消される。更に、回路パラメータの変更によって影響を受ける部分は自動的に抽出されるので、特許文献2に開示の技術では、第3の問題が発生する余地はない。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2007−328646号公報
【特許文献2】特開平9−54787号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上記特許文献2に開示の技術では、抽出された部分についてのみ検証が行われ、修正後の回路全体についての検証は行われないため、回路全体の検証が必要な場合に対応できないという問題がある。このため、回路全体を検証しつつ、設計時間の短縮化及び効率化を図り得る技術の開発が求められている。
【0011】
本発明の目的は、上記問題を解消し、検証済みの基準回路と被検証回路とに修正が加えられた場合に、回路全体を検証しつつ、設計時間の短縮化及び効率化を図り得る、検証装置、検証方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0012】
上記目的を達成するため、本発明における検証装置は、半導体設計工程において、基準回路と、前記基準回路から作成された被検証回路とに対して論理変更が実施された場合に、前記被検証回路を検証するための検証装置であって、
前記基準回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記基準回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、基準回路側ポイント抽出部と、
前記被検証回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記被検証回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、被検証回路側ポイント抽出部と、
前記基準回路側ポイント抽出部によって抽出されたポイントと、前記被検証回路側ポイント抽出部によって抽出されたポイントとを用いて、前記被検証回路を検証する検証スクリプトを生成する、検証スクリプト生成部とを、
備えていることを特徴とする。
【0013】
また、上記目的を達成するため、本発明における検証方法は、半導体設計工程において、基準回路と、前記基準回路から作成された被検証回路とに対して論理変更が実施された場合に、前記被検証回路を検証するための方法であって、
(a)前記基準回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記基準回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、ステップと、
(b)前記被検証回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記被検証回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、ステップと、
(c)前記(a)のステップによって抽出されたポイントと、前記(b)のステップによって抽出されたポイントとを用いて、前記被検証回路を検証する検証スクリプトを生成する、ステップとを、有することを特徴とする。
【0014】
更に、上記目的を達成するため、本発明におけるプログラムは、半導体設計工程において、基準回路と、前記基準回路から作成された被検証回路とに対して論理変更が実施された場合に、コンピュータによって、前記被検証回路を検証するためのプログラムであって、
前記コンピュータに、
(a)前記基準回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記基準回路における、前記論理変更によって信号
の入力値が変化するポイントを抽出する、ステップと、
(b)前記被検証回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記被検証回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、ステップと、
(c)前記(a)のステップによって抽出されたポイントと、前記(b)のステップによって抽出されたポイントとを用いて、前記被検証回路を検証する検証スクリプトを生成する、ステップとを、実行させることを特徴とする。
【発明の効果】
【0015】
以上の特徴により、本発明における検証装置、検証方法、及びプログラムによれば、検証済みの基準回路と被検証回路とに修正が加えられた場合に、回路全体を検証しつつ、設計時間の短縮化及び効率化を図ることができる。
【図面の簡単な説明】
【0016】
【図1】図1は、本発明の実施の形態における検証装置の概略構成を示すブロック図である。
【図2】図2(a)〜(c)は、それぞれ本実施の形態で用いられる基準回路の一例を示す図である。
【図3】図3(a)〜(c)は、それぞれ本実施の形態で用いられる被検証回路の一例を示す図である。
【図4】図4は、本発明の実施の形態における検証装置の全体の動作を示すフロー図である。
【図5】図5は、図2中のステップS2を具体的に示すフロー図である。
【図6】図6は、図2中のステップS3を具体的に示すフロー図である。
【図7】図7は、図5中のステップA7、A9、図6中のステップB7、B9での判定処理を説明するための図であり、図7(a)は論理変更前の回路を示し、図7(b)は論理変更後の回路を示している。
【図8】図8は、図5中のステップA7、A9、図6中のステップB7、B9での判定処理を説明するための図であり、図8(a)は論理変更前の回路を示し、図8(b)は論理変更後の回路を示している。
【図9】図9(a)はマッチング情報の一例を示す図である。図9(b)は検証ポイントのリストの一例を示す図である。図9(c)は検証ポイントのマージ結果の一例を示す図である。図9(d)は検証スクリプトの一例を示す図である。
【発明を実施するための形態】
【0017】
(実施の形態)
以下、本発明の実施の形態における、検証装置、検証方法、及びプログラムについて、図1〜図11を参照しながら説明する。最初に、本発明の実施の形態における検証装置の構成について図1を用いて説明する。図1は、本発明の実施の形態における検証装置の概略構成を示すブロック図である。
【0018】
図1に示す本実施の形態における検証装置10は、半導体設計工程(LSI設計工程)において、検証済みの基準回路と、基準回路から作成された被検証回路とに対して論理変更が実施された場合に、被検証回路を検証するための装置である。本実施の形態において、基準回路としては、ハードウェア記述言語(HDL:Hardware Description Language)によってレジスタトランスファレベル(RTL)で記述された論理回路が挙げられる。また、被検証回路としては、HDL記述の論理回路を論理合成して得られたネットリストが挙げられる。
【0019】
図1に示すように、検証装置10は、基準回路側ポイント抽出部20と、被検出回路側
ポイント抽出部30と、検証スクリプト生成部40とを備えている。このうち、基準回路側ポイント抽出部20は、基準回路での論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの基準回路における、論理変更によって信号の入力値が変化するポイント(検証ポイント)を抽出する。また、基準回路側ポイント抽出部20は、抽出した検証ポイントのリスト23を作成し、これを検証スクリプト生成部40に入力する。
【0020】
被検証回路側ポイント抽出部30は、被検証回路での論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの被検証回路における、論理変更によって信号の入力値が変化するポイント(検証ポイント)を抽出する。また、被検証回路側ポイント抽出部30は、抽出した検証ポイントのリスト33を作成し、これを検証スクリプト生成部40に入力する。
【0021】
検証スクリプト生成部40は、基準回路側ポイント抽出部20によって抽出された検証ポイントと、被検証回路側ポイント抽出部30によって抽出された検証ポイントとを用いて、被検証回路を検証する検証スクリプト41を生成する。また、検証スクリプト生成部40は、生成した検証スクリプト41を、後述する検証実行部50に入力する。
【0022】
このように、検証装置10では、検証済みの基準回路と被検証回路とに、論理変更による修正が加えられると、基準回路と被検証回路との両方から、論理変更によって信号の入力値が変化するポイント(検証ポイント)が抽出される。そして、抽出された検証ポイントにより、検証範囲が適切な範囲に設定された検証スクリプトが作成されるので、TATの短縮が可能となる。また、各回路から抽出された検証ポイントは、論理変更によって変更された各回路の信号に関する情報に基づいて、回路全体から抽出されているので、生成された検証スクリプトの実行により、回路全体が検証される。従って、検証装置10によれば、回路全体を検証しつつ、設計時間の短縮化及び効率化を図ることが可能となる。
【0023】
ここで、本実施の形態における検証装置10の構成について図2及び図3を用いて更に具体的に説明する。図2(a)〜(d)は、それぞれ本実施の形態で用いられる基準回路の一例を示す図である。図3(a)〜(d)は、それぞれ本実施の形態で用いられる被検証回路の一例を示す図である。
【0024】
本実施の形態では、図1に示すように、基準回路側ポイント抽出部20には、リスト70〜72が入力される。基準回路側ポイント抽出部20は、論理変更前の基準回路での論理変更によって変更された信号に関する情報として、リスト70〜72を取得する。また、基準回路側ポイント抽出部20には、論理変更前の基準回路73と論理変更後の基準回路74も入力される。
【0025】
リスト71は、基準回路における論理変更によって変更された信号のリストである。例えば、リスト71に含まれる信号としては、図2(a)に示す「信号Y」、図2(b)に示す「信号K及びT」といった論理変更のあったインスタンスの信号が挙げられる。また、図2(c)に示す「pin3」といった、接続先が変更された出力ピンの出力信号(出力ネット)も挙げられる。
【0026】
また、リスト70は、基準回路から論理変更によって削除されたインスタンスに含まれる信号のリストである。リスト70に含まれる信号としては、論理変更後に削除された論理式の出力信号や、削除された出力ピンの出力信号が挙げられる。具体的には、図2(a)示す「信号A」、図2(b)に示す「信号A」、「信号B」、及び「信号C」、図2(c)に示す「信号B」が挙げられる。
【0027】
更に、リスト72は、基準回路に論理変更によって追加されたインスタンスに含まれる信号のリストである。リスト72に含まれる信号としては、論理変更後に追加された論理式の出力信号や、追加された出力ピンの出力信号が挙げられる。具体的には、図2(a)示す「信号B」、図2(b)に示した「信号A」、「信号B」、及び「信号C」、図2(c)に示した「信号C」が挙げられる。
【0028】
また、本実施の形態では、図1に示すように、被検証回路側ポイント抽出部30には、リスト75〜79が入力される。被検証回路側ポイント抽出部30は、被検証回路での論理変更によって変更された信号に関する情報として、リスト75〜79を取得する。また、被検証回路側ポイント抽出部30には、論理変更前の被検証回路78と論理変更後の被検証回路79も入力される。
【0029】
リスト76は、被検証回路における論理変更によって変更された信号のリストである。例えば、リスト76に含まれる信号としては、図3(a)に示す「信号Y」、図3(b)に示す「信号K及びT」といった論理変更のあったインスタンスの信号が挙げられる。また、図3(c)に示す「pin3」といった、接続先が変更された出力ピンの出力信号(出力ネット)も挙げられる。なお、図3(a)、(b)、(c)は、それぞれ、図2(a)、(b)、(c)に対応している。
【0030】
また、リスト75は、被検証回路から論理変更によって削除されたインスタンスに含まれる信号のリストであり、上述したリスト70と同様のリストである。具体的には、図3(a)示す「信号A」、図3(b)に示す「信号A」、「信号B」、及び「信号C」、図3(c)に示す「信号B」が挙げられる。
【0031】
更に、リスト77は、被検証回路に論理変更によって追加されたインスタンスに含まれる信号のリストであり、上述したリスト72と同様のリストである。具体的には、図3(a)示す「信号B」、図3(b)に示す「信号A」、「信号B」、及び「信号C」、図3(c)に示す「信号C」が挙げられる。
【0032】
また、本実施の形態では、基準回路側ポイント抽出部20は、変更前抽出部21と、変更後抽出部22とを備えている。変更前抽出部21は、リスト70及び71を用いて、論理変更前の基準回路73における検証ポイントを抽出する。
【0033】
具体的には、変更前抽出部21は、論理変更前の基準回路73から、リスト70及び71に含まれる各信号の経路(ルート)を特定し、更に、特定したルートに存在するレジスタ又は外部出力端子を特定する。そして、変更前抽出部21は、特定したレジスタ、又は特定した外部出力端子を、論理変更前及び論理変更後のいずれにおいても基準回路に存在することを条件として、検証ポイントとして抽出する。なお、このようにして特定されたレジスタ及び外部出力端子は、以降の説明において「コンペアポイント」と称する場合もある。
【0034】
また、変更後抽出部22は、リスト71及び72を用いて、論理変更後の基準回路74における検証ポイントを抽出する。具体的には、変更後抽出部22は、論理変更後の基準回路74から、リスト71及び72に含まれる各信号のルートを特定し、更に、特定したルートに存在するレジスタ又は外部出力端子(コンペアポイント)を特定する。そして、変更後抽出部22は、特定したレジスタ、又は特定した外部出力端子を、論理変更前及び論理変更後のいずれにおいても基準回路に存在することを条件として、検証ポイントとして抽出する。
【0035】
変更前抽出部21及び変更後抽出部22による抽出処理が終了すると、基準回路側ポイ
ント抽出部20は、変更前抽出部21が抽出した検証ポイントと、変更後抽出部22が抽出した検証ポイントとを検証スクリプト生成部40に出力する。図1において、23は、変更前抽出部21が抽出した検証ポイントと、変更後抽出部22が抽出した検証ポイントとを含むリストを示している。
【0036】
更に、本実施の形態では、被検証回路側ポイント抽出部30も、基準回路側ポイント抽出部20と同様に、変更前抽出部31と、変更後抽出部32とを備えている。変更前抽出部31は、リスト75及び76を用いて、論理変更前の被検証回路78における検証ポイントを抽出する。このとき、変更前抽出部31は、抽出対象として被検証回路を用いる以外は、上述した変更前抽出部21と同様のプロセスによって抽出処理を実行する。
【0037】
具体的には、変更前抽出部31は、論理変更前の被検証回路78から、リスト75及び76に含まれる各信号のルートを特定し、更に、特定したルートに存在するレジスタ又は外部出力端子(コンペアポイント)を特定する。そして、変更前抽出部31は、特定したレジスタ、又は特定した外部出力端子を、論理変更前及び論理変更後のいずれにおいても被検証回路に存在することを条件として、検証ポイントとして抽出する。
【0038】
また、変更後抽出部32は、リスト76及び77を用いて、論理変更後の被検証回路79における検証ポイントを抽出する。このとき、変更後抽出部32は、抽出対象として被検証回路を用いる以外は、上述した変更後抽出部22と同様のプロセスによって抽出処理を実行する。
【0039】
具体的には、変更後抽出部32は、論理変更後の被検証回路79から、リスト76及び77に含まれる各信号のルートを特定し、更に、特定したルートに存在するレジスタ又は外部出力端子(コンペアポイント)を特定する。そして、変更後抽出部32は、特定したレジスタ、又は特定した外部出力端子を、論理変更前及び論理変更後のいずれにおいても被検証回路に存在することを条件として、検証ポイントとして抽出する。
【0040】
変更前抽出部31及び変更後抽出部32による抽出処理が終了すると、被検証回路側ポイント抽出部30は、変更前抽出部31が抽出した検証ポイントと、変更後抽出部32が抽出した検証ポイントとを検証スクリプト生成部40に出力する。図1において、33は、変更前抽出部31が抽出した検証ポイントと、変更後抽出部32が抽出した検証ポイントとを含むリストを示している。
【0041】
また、本実施の形態では、検証装置10は、基準回路側ポイント抽出部20、被検証回路側ポイント抽出部30、及び検証スクリプト生成部40に加えて、検証実行部50と、記憶部60とを備えている。
【0042】
記憶部60は、マッチング情報を記憶している。マッチング情報は、基準回路に含まれるレジスタ及び外部出力端子と、被検証回路に含まれるレジスタ及び外部出力端子との対応関係を含む情報である。言い換えると、マッチング情報は、基準回路における検証ポイントとして検出される可能性のあるコンペアポイントと、被検証回路における検証ポイントとして検出される可能性のあるコンペアポイントとの対応関係を特定する。
【0043】
検証スクリプト生成部40は、本実施の形態では、マッチング情報によって特定される対応関係に基づいて、基準回路における検証ポイントと、被検証回路における検証ポイントとを対比する。なお、基準回路における検証ポイントは、リスト23によって特定され、被検証回路における検証ポイントは、リスト33によって特定される。
【0044】
また、検証スクリプト生成部40は、対比の結果、基準回路又は被検証回路における検
証ポイントが、他方の回路における検証ポイントに対応していない場合は、対応するレジスタ又は外部出力端子を、他方の回路における検証ポイントとして追加する。そして、検証スクリプト生成部40は、基準回路における検証ポイント(追加された検証ポイントを含む)と、これに対応する被検証回路における検証ポイント(追加された検証ポイントを含む)との等価性を評価する検証スクリプトを生成する。
【0045】
検証実行部50は、生成された検証スクリプトを実行し、被検証回路を検証する。具体的には、検証スクリプトには、指定された二つの検証ポイントの等価性の判断を指示する命令が記述されている。検証実行部50は、従来からの半導体設計で利用される検証ツールを利用可能に構成されており、検証スクリプトに記述されている命令を実行し、指定された二つの検証ポイントの等価性を判断する。
【0046】
また、本実施の形態では、論理変更により、基準回路及び被検証回路に新たにレジスタ及び外部出力端子が追加されたときは、追加されたレジスタ及び外部出力端子を含むマッチング情報が、検証実行部50に入力される。この場合、検証実行部50は、記憶部60に記憶されているマッチング情報を更新する。
【0047】
次に、本発明の実施の形態における検証装置10の動作について図4〜図9を用いて説明する。先ず、検証装置10の全体の動作について説明する。図4は、本発明の実施の形態における検証装置の全体の動作を示すフロー図である。また、本実施の形態における検証方法は、検証装置10を動作させることによって実施される。このため、本実施の形態における検証方法の説明は、以下の検証装置10の動作の説明に代える。また、以下の説明においては適宜図1〜図3を参酌する。
【0048】
図4に示すように、最初に、基準回路側ポイント抽出部20に、リスト70〜72が入力され、被検証回路側ポイント抽出部30に、リスト75〜77が入力される(ステップS1)。また、ステップS1において、基準回路側ポイント抽出部20には、論理変更前の基準回路73、及び論理変更後の基準回路74も入力される。更に、被検証回路側ポイント抽出部30には、論理変更前の被検証回路78、及び論理変更後の被検証回路79も入力される。
【0049】
次に、基準回路側ポイント抽出部20において、変更前抽出部21が、リスト70及び71を用いて、論理変更前の基準回路73における検証ポイントを抽出する(ステップS2)。また、変更後抽出部22が、リスト71及び72を用いて、論理変更後の基準回路74における検証ポイントを抽出する(ステップS3)。
【0050】
次に、被検証回路側ポイント抽出部30において、変更前抽出部31は、リスト75及び76を用いて、論理変更前の被検証回路78における検証ポイントを抽出する(ステップS4)。また、変更後抽出部32は、リスト76及び77を用いて、論理変更後の被検証回路79における検証ポイントを抽出する(ステップS5)。
【0051】
また、ステップS2において変更前抽出部21が抽出した検証ポイントと、ステップS3において変更後抽出部22が抽出した検証ポイントとは、検証スクリプト生成部40へと出力される。同様に、ステップS4において変更前抽出部31が抽出した検証ポイントと、ステップS5において変更後抽出部32が抽出した検証ポイントも、検証スクリプト生成部40へと出力される。なお、ステップS2〜S5の実行順序は、限定されるものではない。また、ステップS2、S3、S4、及びS5は、同時に実行されていても良い。
【0052】
次に、検証スクリプト生成部40は、マッチング情報を参照し、ステップS2及びS3によって抽出された基準回路の検証ポイントと、ステップS4及びS5によって抽出され
た被検証回路の検証ポイントとを用いて、検証スクリプト41を生成する(ステップS6)。
【0053】
その後、検証実行部50は、ステップS5によって作成された検証スクリプトを実行し、被検証回路を検証する(ステップS7)。具体的には、検証スクリプトには、指定された二つの検証ポイントの等価性の判断を指示する命令が記述されている。ステップS7においては、指定された二つの検証ポイントの等価性が判断される。ステップS7の結果が、外部に出力され、検証装置10における処理は終了する。
【0054】
ここで、上述したステップS2及びS3について、図5〜図8を用いて具体的に説明する。図5は、図2中のステップS2を具体的に示すフロー図である。図6は、図2中のステップS3を具体的に示すフロー図である。図7及び図8は、図5中のステップA7、A9、図6中のステップB7、B9での判定処理を説明するための図であり、図7(a)及び図8(a)は論理変更前の回路を示し、図7(b)及び図8(b)は論理変更後の回路を示している。
【0055】
まず、図5に基づきステップS2について説明する。最初に、変更前抽出部21は、前提として、リスト70及び71に含まれる信号を特定し、検証ポイントを抽出(サーチ)するためにルートのリスト(ルートリスト)を作成する。そして、図5に示すように、変更前抽出部21は、検証ポイントをサーチするためのルートリストから最初のルートを選択する(ステップA1)。
【0056】
次に、変更前抽出部21は、サーチ対象となるルートを設定し(ステップA2)、続いて、設定されたルートに含まれるルート(以下「子ルート」とする。)の中から、サーチ対象となる子ルートを設定する(ステップA3)。
【0057】
次に、変更前抽出部21は、設定された子ルートから始まる出力側のコーンを特定し、特定したコーンをレジスタ又は外部出力端子まで辿り、それに含まれるコンペアポイントを抽出する。そして、変更前抽出部21は、特定したコーンに含まれるコンペアポイントの一つを、ステップA5〜A8での判定の対象に設定する(ステップA4)。
【0058】
次に、変更前抽出部21は、ステップA4で設定されたコンペアポイントが、基準回路側の検証ポイントのリスト(検証リスト)23に登録されているかどうかを判定する(ステップA5)。変更前抽出部21は、登録されている場合は、ステップA11を実行し、登録されていない場合は、ステップA4で設定されたコンペアポイントがレジスタ及び外部出力端子のいずれであるかを判定する(ステップA6)。
【0059】
ステップA6の判定の結果、ステップA4で設定されたコンペアポイントが外部出力端子である場合は、変更前抽出部21は、この外部出力端子が論理変更後の基準回路に存在するかどうかを判定する(ステップA7)。
【0060】
ステップA7の判定の結果、図7(a)及び(b)に示すように、外部出力端子が論理変更後の基準回路にも存在する場合は、変更前抽出部21は、ステップA4で設定されたコンペアポイントを検証リスト23に登録し(ステップA9)、その後、ステップA11を実行する。
【0061】
一方、ステップA7の判定の結果、図8(a)及び(b)に示すように、外部出力端子が論理変更後の基準回路に存在しない場合(例えば、外部出力端子が図8(a)中の「out2」である場合)は、変更前抽出部21は、ステップA11を実行する。この場合、ステップA4で設定されたコンペアポイントの検証リスト23への登録は行われない。
【0062】
また、ステップA6の判定の結果、ステップA4で設定されたコンペアポイントがレジスタである場合は、変更前抽出部21は、このレジスタが論理変更後の基準回路に存在するかどうかを判定する(ステップA8)。
【0063】
ステップA8の判定の結果、図7(a)及び(b)に示すように、レジスタが論理変更後の基準回路にも存在する場合も、変更前抽出部21は、ステップA9を実行して、ステップA4で設定されたコンペアポイントを検証リスト23に登録する。
【0064】
一方、ステップA8の判定の結果、図8(a)及び(b)に示すように、レジスタが論理変更後の基準回路に存在しない場合(例えば、レジスタが図8(a)中の「DFF2」である場合)は、変更前抽出部21は、ステップA10を実行する。
【0065】
ステップA10では、変更前抽出部21は、ステップA4で設定されたコンペアポイントを、検証リスト23に登録せず、代わりに、上述したルートリストとは別の次のサーチの対象となるルートリストに登録する。なお、「次のサーチの対象となるルートリスト」とは、ステップA1〜A14が実行される原因となった論理変更の後に行われる別の論理変更で用いられる、ルートリストをいう。
【0066】
次に、ステップA11では、変更前抽出部21は、ステップA4において特定したコーンに含まれる全てのコンペアポイントについてステップA5〜A10が終了したかどうかを判定する。変更前抽出部21は、判定の結果、終了していない場合は、再度、ステップA5〜A10を実行し、終了している場合は、ステップA12を実行する。
【0067】
次に、ステップA12では、変更前抽出部21は、ステップA2で設定されたルートに含まれる全ての子ルートについて、検証ポイントのサーチ(ステップA4〜A11)が終了したかどうかを判定する。変更前抽出部21は、判定の結果、終了していない場合は、再度、ステップA4〜A11を実行し、終了している場合は、ステップA13を実行する。
【0068】
次に、ステップA13では、変更前抽出部21は、ルートリストに含まれる全てのルートについて、検証ポイントのサーチ(ステップA3〜A12)が終了したかどうかを判定する。変更前抽出部21は、判定の結果、終了していない場合は、次のサーチ対象となるルートを選択し(ステップA14)、その後、再度、ステップA3〜A12を実行する。一方、終了している場合は、変更前抽出部21は、処理を終了する。これにより、図4に示すステップS2は終了する。
【0069】
このように、ステップA1〜A14の実行により、変更前抽出部21は、論理変更前の回路のコンペアポイントのうち、論理変更によって入力値が変わる可能性のあるコンペアポイントを特定し、特定したコンペアポイントを検証ポイントとして抽出する。
【0070】
続いて、図6に基づきステップS3について説明する。最初に、変更後抽出部22は、前提として、変更前抽出部21と同様に、リスト71及び72に含まれる信号を特定し、検証ポイントを抽出(サーチ)するためにルートのリスト(ルートリスト)を作成する。そして、図6に示すように、変更後抽出部22は、検証ポイントをサーチするためのリストから最初のルートを選択する(ステップB1)。
【0071】
次に、変更後抽出部22は、サーチ対象となるルートを設定し(ステップB2)、続いて、設定されたルートに含まれるルート(以下「子ルート」とする。)の中から、サーチ対象となる子ルートを設定する(ステップB3)。
【0072】
次に、変更後抽出部22は、設定された子ルートから始まる出力側のコーンを特定し、特定したコーンをレジスタ又は外部出力端子まで辿り、それに含まれるコンペアポイントを抽出する。そして、変更後抽出部22は、特定したコーンに含まれるコンペアポイントの一つを、ステップB5〜B8での判定の対象に設定する(ステップB4)。
【0073】
次に、変更後抽出部22は、ステップB4で設定されたコンペアポイントが、基準回路側の検証ポイントのリスト(検証リスト)23に登録されているかどうかを判定する(ステップB5)。変更後抽出部22は、登録されている場合は、ステップB11を実行し、登録されていない場合は、ステップB4で設定されたコンペアポイントがレジスタ及び外部出力端子のいずれであるかを判定する(ステップB6)。
【0074】
ステップB6の判定の結果、ステップB4で設定されたコンペアポイントが外部出力端子である場合は、変更後抽出部22は、この外部出力端子が論理変更後の基準回路に存在するかどうかを判定する(ステップB7)。
【0075】
ステップB7の判定の結果、図7(a)及び(b)に示すように、外部出力端子が論理変更前の基準回路にも存在する場合は、変更後抽出部22は、ステップB4で設定されたコンペアポイントを検証リスト23に登録し(ステップB9)、その後、ステップB11を実行する。
【0076】
一方、ステップB7の判定の結果、外部出力端子が論理変更前の基準回路に存在しない場合は、変更前抽出部21は、ステップB11を実行する。この場合、ステップB4で設定されたコンペアポイントの検証リスト23への登録は行われない。
【0077】
また、ステップB6の判定の結果、ステップB4で設定されたコンペアポイントがレジスタである場合は、変更後抽出部22は、このレジスタが論理変更前の基準回路に存在するかどうかを判定する(ステップB8)。
【0078】
ステップB8の判定の結果、図7(a)及び(b)に示すように、レジスタが論理変更前の基準回路にも存在する場合も、変更前抽出部21は、ステップB9を実行して、ステップB4で設定されたコンペアポイントを検証リスト23に登録する。
【0079】
一方、ステップB8の判定の結果、レジスタが論理変更前の基準回路に存在しない場合は、変更前抽出部21は、ステップB10を実行する。
【0080】
ステップB10では、変更後抽出部22は、ステップB4で設定されたコンペアポイントを、検証リスト23に登録せず、代わりに、上述したステップA10と同様に、上述したルートリストとは別の次のサーチの対象となるルートリストに登録する。
【0081】
次に、ステップB11では、変更後抽出部22は、ステップB4において特定したコーンに含まれる全てのコンペアポイントについてステップB5〜B10が終了したかどうかを判定する。変更後抽出部22は、判定の結果、終了していない場合は、再度、ステップB5〜B10を実行し、終了している場合は、ステップB12を実行する。
【0082】
次に、ステップB12では、変更後抽出部22は、ステップB2で設定されたルートに含まれる全ての子ルートについて、検証ポイントのサーチ(ステップB4〜B11)が終了したかどうかを判定する。変更後抽出部22は、判定の結果、終了していない場合は、再度、ステップB4〜B11を実行し、終了している場合は、ステップB13を実行する。
【0083】
次に、ステップB13では、変更後抽出部22は、ルートリストに含まれる全てのルートについて、検証ポイントのサーチ(ステップB3〜B12)が終了したかどうかを判定する。変更後抽出部22は、判定の結果、終了していない場合は、次のサーチ対象となるルートを選択し(ステップB14)、その後、再度、ステップB3〜B12を実行する。一方、終了している場合は、変更後抽出部22は、処理を終了する。これにより、図4に示すステップS3は終了する。
【0084】
このように、ステップB1〜B14の実行により、変更後抽出部22は、論理変更後の回路のコンペアポイントのうち、論理変更によって入力値が変化した可能性のあるコンペアポイントを特定し、特定したコンペアポイントを検証ポイントとして抽出する。
【0085】
また、図4に示したステップS4では、被検出回路側ポイント抽出部30の変更前抽出部31は、図5に示されたステップA1〜A14に準じた処理を実行する。但し、この場合は、リスト75及び76からルートリストが作成される。更に、ステップA1〜A14に準じた処理は、論理変更前の被検証回路を対象として行われる。
【0086】
更に、図4に示したステップS5では、被検証回路側ポイント抽出部30の変更後抽出部31は、図6に示されたステップB1〜B14に準じた処理を実行する。但し、この場合は、リスト76及び77からルートリストが作成される。また、ステップB1〜B14に準じた処理は、論理変更後の被検証回路を対象として行われる。
【0087】
続いて、図9(a)〜図9(d)に示す例に基づいて、ステップS6での処理を説明する。図9(a)はマッチング情報の一例を示す図である。図9(b)は検証ポイントのリストの一例を示す図である。図9(c)は検証ポイントのマージ結果の一例を示す図である。図9(d)は検証スクリプトの一例を示す図である。
【0088】
図9(a)に示すマッチング情報から分かるように、本例では、基準回路のコンペアポイントa、b、c、d、eそれぞれが、被検証回路のコンペアポイントay、by、cy、dy、eyそれぞれに対応している。そして、本例では、図9(b)に示すように、基準回路側ポイント抽出部20が、検出ポイントとして、コンペアポイントa及びbを検出している。また、図9(b)に示すように、被検証回路側ポイント抽出部30が、検出ポイントとして、コンペアポイントay及びcyを検出している。
【0089】
検証スクリプト生成部40は、図9(a)に示したマッチング情報を用いて、図9(b)に示した検証ポイントのマージを行い、図9(d)に示す検証スクリプトを生成する。具体的には、先ず、検証スクリプト生成部40は、基準回路における検証ポイントと、被検証回路における検証ポイントとを対比する。この結果、図9(b)の例では、検証スクリプト生成部40は、基準回路における検証ポイントbが、被検証回路における検証ポイントに対応しておらず、又、被検証回路における検証ポイントcyが、基準回路における検証ポイントに対応していないと判定する。
【0090】
次に、検証スクリプト生成部40は、基準回路の検証ポイントbに対応するコンペアポイントbyを、被検証回路における検証ポイントとして追加し、更に、被検証回路の検証ポイントcyに対応するコンペアポイントcを、基準回路における検証ポイントとして追加する。このマージ処理による結果は、図9(c)に示す通りとなる。
【0091】
次に、検証スクリプト生成部40は、基準回路における検証ポイントa、b、cと、これに対応する被検証回路における検証ポイントay、by、cyとの等価性を評価する、検証スクリプトを生成する。ここで、例えば、基準回路のコンペアポイント$1と、被検
証回路のコンペアポイント$2との等価性を評価するコマンドが「Verify Command $1 $2」であるとすると、検証スクリプトは、図9(d)に示す通りとなる。
【0092】
図9(d)に示す検証スクリプトが、検証実行部50によって実行されると、基準回路における検証ポイントa、b、cと、これに対応する被検証回路における検証ポイントay、by、cyとの等価性が評価され、結果が検証実行部50から出力される。
【0093】
本実施の形態におけるプログラムは、コンピュータに、図4に示すステップS1〜S7、図5に示すステップA1〜A14、図6に示すステップB1〜B14を実行させるプログラムであれば良い。また、このプログラムをコンピュータにインストールして実行することにより、本実施の形態における検証装置10及び検証方法を実現することができる。
【0094】
上記の場合、コンピュータのCPU(Central Processing Unit)は、基準回路側ポイント抽出部20、被検出回路側ポイント抽出部30、検証スクリプト生成部40、及び検証実行部50として機能し、処理を行なう。また、記憶部60は、コンピュータに備えられたハードディスクやメモリ等の記憶装置によって実現される。
【0095】
このように、本実施の形態における検証装置10によれば、基準回路及び被検証回路それぞれの全体から検証ポイントが抽出される。そして、抽出された検証ポイントから生成された検証スクリプトによれば、検証ツールを用いて、論理変更による影響がある箇所のみを検証することができ、検証時間の短縮化を図ることが出来る。この結果、回路全体の検証と、設計時間の短縮化及び効率化とが、同時に達成される。
【産業上の利用可能性】
【0096】
以上のように、本発明によれば、検証済みの基準回路と被検証回路とに修正が加えられた場合に、回路全体を検証しつつ、設計時間の短縮化及び効率化を図ることができる。本発明は、半導体設計(LSI設計)に有用である。
【符号の説明】
【0097】
10 検証装置
20 基準回路側ポイント抽出部
21 変更前抽出部
22 変更後抽出部
23 基準回路側の検証ポイントのリスト
30 被検証回路側ポイント抽出部
31 変更前抽出部
32 変更後抽出部
33 被検証回路側の検証ポイントのリスト
40 検証スクリプト生成部
41 検証スクリプト
50 検証実行部
60 記憶部
70 基準回路から論理変更によって削除されたインスタンスに含まれる信号のリスト
71 基準回路における論理変更によって変更された信号のリスト
72 基準回路に論理変更によって追加されたインスタンスに含まれる信号のリスト
73 論理変更前の基準回路
74 論理変更後の基準回路
75 被検証回路から論理変更によって削除されたインスタンスに含まれる信号のリスト
76 被検証回路における論理変更によって変更された信号のリスト
77 被検証回路に論理変更によって追加されたインスタンスに含まれる信号のリスト
78 論理変更前の被検証回路
79 論理変更後の被検証回路

【特許請求の範囲】
【請求項1】
半導体設計工程において、基準回路と、前記基準回路から作成された被検証回路とに対して論理変更が実施された場合に、前記被検証回路を検証するための検証装置であって、
前記基準回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記基準回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、基準回路側ポイント抽出部と、
前記被検証回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記被検証回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、被検証回路側ポイント抽出部と、
前記基準回路側ポイント抽出部によって抽出されたポイントと、前記被検証回路側ポイント抽出部によって抽出されたポイントとを用いて、前記被検証回路を検証する検証スクリプトを生成する、検証スクリプト生成部とを、
備えていることを特徴とする検証装置。
【請求項2】
前記基準回路側ポイント抽出部が、
前記基準回路での前記論理変更によって変更された信号に関する情報として、
前記基準回路における前記論理変更によって変更された信号、前記基準回路から前記論理変更によって削除されたインスタンスに含まれる信号、及び前記基準回路に前記論理変更によって追加されたインスタンスに含まれる信号を特定する情報を取得し、
前記被検証回路側ポイント抽出部が、
前記被検証回路での前記論理変更によって変更された信号に関する情報として、
前記被検証回路における前記論理変更によって変更された信号、前記被検証回路から前記論理変更によって削除されたインスタンスに含まれる信号、及び前記被検証回路に前記論理変更によって追加されたインスタンスに含まれる信号を特定する情報を取得する、請求項1に記載の検証装置。
【請求項3】
前記基準回路側ポイント抽出部が、それが取得した情報によって特定される前記信号それぞれの経路に存在するレジスタ又は外部出力端子を特定し、
特定した前記レジスタ、又は特定した前記外部出力端子を、論理変更前及び論理変更後のいずれにおいても前記基準回路に存在することを条件として、前記基準回路における前記ポイントとして抽出し、
前記被検証回路側ポイント抽出部が、それが取得した情報によって特定される前記信号それぞれの経路に存在するレジスタ又は外部出力端子を特定し、
特定した前記レジスタ、又は特定した前記外部出力端子を、論理変更前及び論理変更後のいずれにおいても前記被検証回路に存在することを条件として、前記被検証回路における前記ポイントとして抽出する、請求項2に記載の検証装置。
【請求項4】
前記検証スクリプト生成部が、
前記基準回路に含まれるレジスタ及び外部出力端子と前記被検証回路に含まれるレジスタ及び外部出力端子との対応関係に基づいて、前記基準回路における前記ポイントと、前記被検証回路における前記ポイントとを対比し、
対比の結果、前記基準回路又は前記被検証回路における前記ポイントが、他方の回路における前記ポイントに対応していない場合は、対応するレジスタ又は外部出力端子を、他方の回路における前記ポイントとして追加し、
そして、前記基準回路における前記ポイントと、これに対応する前記被検証回路における前記ポイントとの等価性を評価する、前記検証スクリプトを生成する、請求項3に記載の検証装置。
【請求項5】
基準回路が、ハードウェア記述言語によって記述されたレジスタトランスファレベルで
の論理回路であり、被検証回路がネットリストである、請求項1〜4のいずれかに記載の検証装置。
【請求項6】
半導体設計工程において、基準回路と、前記基準回路から作成された被検証回路とに対して論理変更が実施された場合に、前記被検証回路を検証するための方法であって、
(a)前記基準回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記基準回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、ステップと、
(b)前記被検証回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記被検証回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、ステップと、
(c)前記(a)のステップによって抽出されたポイントと、前記(b)のステップによって抽出されたポイントとを用いて、前記被検証回路を検証する検証スクリプトを生成する、ステップとを、有することを特徴とする検証方法。
【請求項7】
前記(a)のステップにおいて、
前記基準回路での前記論理変更によって変更された信号に関する情報として、
前記基準回路における前記論理変更によって変更された信号、前記基準回路から前記論理変更によって削除されたインスタンスに含まれる信号、及び前記基準回路に前記論理変更によって追加されたインスタンスに含まれる信号を特定する情報を取得し、
前記(b)のステップにおいて、
前記被検証回路での前記論理変更によって変更された信号に関する情報として、
前記被検証回路における前記論理変更によって変更された信号、前記被検証回路から前記論理変更によって削除されたインスタンスに含まれる信号、及び前記被検証回路に前記論理変更によって追加されたインスタンスに含まれる信号を特定する情報を取得する、請求項6に記載の検証方法。
【請求項8】
前記(a)のステップにおいて、当該ステップで取得した情報によって特定される前記信号それぞれの経路に存在するレジスタ又は外部出力端子を特定し、
特定した前記レジスタ、又は特定した前記外部出力端子を、論理変更前及び論理変更後のいずれにおいても前記基準回路に存在することを条件として、前記基準回路における前記ポイントとして抽出し、
前記(b)のステップにおいて、当該ステップで取得した情報によって特定される前記信号それぞれの経路に存在するレジスタ又は外部出力端子を特定し、
特定した前記レジスタ、又は特定した前記外部出力端子を、論理変更前及び論理変更後のいずれにおいても前記被検証回路に存在することを条件として、前記被検証回路における前記ポイントとして抽出する、請求項7に記載の検証方法。
【請求項9】
前記(c)のステップにおいて、
前記基準回路に含まれるレジスタ及び外部出力端子と前記被検証回路に含まれるレジスタ及び外部出力端子との対応関係に基づいて、前記基準回路における前記ポイントと、前記被検証回路における前記ポイントとを対比し、
対比の結果、前記基準回路又は前記被検証回路における前記ポイントが、他方の回路における前記ポイントに対応していない場合は、対応するレジスタ又は外部出力端子を、他方の回路における前記ポイントとして追加し、
そして、前記基準回路における前記ポイントと、これに対応する前記被検証回路における前記ポイントとの等価性を評価する、前記検証スクリプトを生成する、請求項8に記載の検証方法。
【請求項10】
基準回路が、ハードウェア記述言語によって記述されたレジスタトランスファレベルで
の論理回路であり、被検証回路がネットリストである、請求項6〜9のいずれかに記載の検証方法。
【請求項11】
半導体設計工程において、基準回路と、前記基準回路から作成された被検証回路とに対して論理変更が実施された場合に、コンピュータによって、前記被検証回路を検証するためのプログラムであって、
前記コンピュータに、
(a)前記基準回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記基準回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、ステップと、
(b)前記被検証回路での前記論理変更によって変更された信号に関する情報に基づいて、論理変更前及び論理変更後それぞれの前記被検証回路における、前記論理変更によって信号の入力値が変化するポイントを抽出する、ステップと、
(c)前記(a)のステップによって抽出されたポイントと、前記(b)のステップによって抽出されたポイントとを用いて、前記被検証回路を検証する検証スクリプトを生成する、ステップとを、実行させることを特徴とするプログラム。
【請求項12】
前記(a)のステップにおいて、
前記基準回路での前記論理変更によって変更された信号に関する情報として、
前記基準回路における前記論理変更によって変更された信号、前記基準回路から前記論理変更によって削除されたインスタンスに含まれる信号、及び前記基準回路に前記論理変更によって追加されたインスタンスに含まれる信号を特定する情報を取得し、
前記(b)のステップにおいて、
前記被検証回路での前記論理変更によって変更された信号に関する情報として、
前記被検証回路における前記論理変更によって変更された信号、前記被検証回路から前記論理変更によって削除されたインスタンスに含まれる信号、及び前記被検証回路に前記論理変更によって追加されたインスタンスに含まれる信号を特定する情報を取得する、請求項11に記載のプログラム。
【請求項13】
前記(a)のステップにおいて、当該ステップで取得した情報によって特定される前記信号それぞれの経路に存在するレジスタ又は外部出力端子を特定し、
特定した前記レジスタ、又は特定した前記外部出力端子を、論理変更前及び論理変更後のいずれにおいても前記基準回路に存在することを条件として、前記基準回路における前記ポイントとして抽出し、
前記(b)のステップにおいて、当該ステップで取得した情報によって特定される前記信号それぞれの経路に存在するレジスタ又は外部出力端子を特定し、
特定した前記レジスタ、又は特定した前記外部出力端子を、論理変更前及び論理変更後のいずれにおいても前記被検証回路に存在することを条件として、前記被検証回路における前記ポイントとして抽出する、請求項12に記載のプログラム。
【請求項14】
前記(c)のステップにおいて、
前記基準回路に含まれるレジスタ及び外部出力端子と前記被検証回路に含まれるレジスタ及び外部出力端子との対応関係に基づいて、前記基準回路における前記ポイントと、前記被検証回路における前記ポイントとを対比し、
対比の結果、前記基準回路又は前記被検証回路における前記ポイントが、他方の回路における前記ポイントに対応していない場合は、対応するレジスタ又は外部出力端子を、他方の回路における前記ポイントとして追加し、
そして、前記基準回路における前記ポイントと、これに対応する前記被検証回路における前記ポイントとの等価性を評価する、前記検証スクリプトを生成する、請求項13に記載のプログラム。
【請求項15】
基準回路が、ハードウェア記述言語によって記述されたレジスタトランスファレベルでの論理回路であり、被検証回路がネットリストである、請求項11〜14のいずれかに記載のプログラム。

【図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


【公開番号】特開2011−8620(P2011−8620A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−152760(P2009−152760)
【出願日】平成21年6月26日(2009.6.26)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】