JP6044410B2 - 論理検証プログラム、論理検証方法および論理検証装置 - Google Patents

論理検証プログラム、論理検証方法および論理検証装置 Download PDF

Info

Publication number
JP6044410B2
JP6044410B2 JP2013062284A JP2013062284A JP6044410B2 JP 6044410 B2 JP6044410 B2 JP 6044410B2 JP 2013062284 A JP2013062284 A JP 2013062284A JP 2013062284 A JP2013062284 A JP 2013062284A JP 6044410 B2 JP6044410 B2 JP 6044410B2
Authority
JP
Japan
Prior art keywords
search
backtrack
amount
logic verification
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013062284A
Other languages
English (en)
Other versions
JP2014186642A (ja
Inventor
マチュー パリジ
マチュー パリジ
浩一郎 ▲高▼山
浩一郎 ▲高▼山
博之 樋口
博之 樋口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013062284A priority Critical patent/JP6044410B2/ja
Publication of JP2014186642A publication Critical patent/JP2014186642A/ja
Application granted granted Critical
Publication of JP6044410B2 publication Critical patent/JP6044410B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、半導体装置の論理検証プログラム、論理検証方法および論理検証装置に関する。
LSI等の半導体装置の論理検証には、充足可能性問題(SAT:SATisfiability Problem)ツールが用いられる。この充足可能性問題は、半導体素子(ゲート)を論理式に変換したCNF(Conjunctive Normal Form)論理式について、充足可能性問題判定ツール(SATソルバー)を用いて充足可能であるかを判定する。
例えば、CNF論理式が(a+b)×(c+d)であるとする。+はor,×はand、()は一つの区画(クローズ)である。この論理式の変数a,c=1,b、d=0を割り当てると1(true)となり充足可能(論理式にバグがある)となる。SATソルバーは、論理式に変数を与え、充足可能(SAT)にできるか調べる。一方、CNF論理式が(a+b)×(a’+b)×(a+b’)×(a’+b’)の場合、どのような変数を割り当てても1にならない(0になる、false)こととなり充足不可能(UNSAT、論理式にバグがない)となる。このほか、複雑なCNF論理式になると、SATソルバーは変数の割り当てがあるかないかを処理タイムオーバ等で求めることができない場合(unknown)も生じる。
このSATソルバーでは、複数の変数に値を設定して充足可能であるか調べるが、その処理中において、処理が行き止まりとなるコンフリクト(ある変数に値0を割り当てた結果、全体が0になる)が発生する場合がある。このコンフリクトに対しては、1.バックトラック、あるいは2.リスタートによる変数の探索が提案されている。
1.バックトラックを使った探索では、各変数(例えばa〜g)に予め定めた順序(a〜gの順)で変数値(0)を定めて探索を開始し、変数gでコンフリクトが発生した場合、コンフリクト・アナリシス機能により、どの変数の組み合わせがコンフリクトするかラーンドクローズ(例えばa+d+g)を求める。そして、コンフリクティング・クローズが一つになるポイント(例えばd)に戻り(バックトラック)、戻ったポイントから新たに探索をおこなう。この際、a,b,cは前回の探索の値(0)を用い、dは前回の探索とは逆の値(1)を用い、e,fは任意の値を用いる。
2.リスタートによる探索では、各変数(例えばa〜g)に予め定めた順序(a〜gの順)で変数値(0)を定め、変数gでコンフリクトが発生した場合、コンフリクト・アナリシス機能により、gから逆方向に戻り(バックトラック)、戻ったポイント(例えばd)から新たに探索をおこなう。この後、コンフリクトが発生し、その頻度が閾値を超えたとき、変数順を変更し(例えば、g〜a)、探索をやり直す(リスタート)。大規模な論理式の場合などにはバックトラックが頻発するため、最初からリスタートにより探索をやり直した方が早く解析できる場合がある。
例えば、特許文献1には、上記1.バックトラックの手法が開示されている。特許文献2には、BDD(2分決定グラフ)とバックトラックとを組み合わせてバックトラック回数を減少させる手法が開示されている。特許文献3には、コンフリクト・ポジションを再順序付けするバックトラック手法が記載されている。
特開2001−014298号公報 特開平11−282900号公報 特表2006−510986号公報
しかしながら、上記1.バックトラック、および2.リスタートのいずれの手法であっても、探索に時間がかかった。上記1.2.いずれの手法を用いた場合でも、コンフリクトが多数発生すると、解決が遅くなる。また、結果的にソリューションなし(上記unknown)となる場合もあり、時間の無駄が生じることもある。従来は、デシジョンレベル(探索レベル)の軸と、変数の組み合わせの軸により表現されるデシジョンツリー上において、このソリューションなし(unknown)の領域を避けることができず、充足可能性問題を効率よく判定できなかった。
一つの側面では、本発明は、充足可能性問題を効率よく判定できることを目的とする。
一つの案では、半導体素子の論理式の入力に基づき、前記論理式の変数に所定の値を割り当てて充足可能性問題を判定し、前記判定の結果、コンフリクトが生じた場合に、前記コンフリクトの原因を解析し、前記解析に基づき、探索ポイントをコンフリクトが生じた探索レベルに戻して探索するバックトラック量を設定し、同一の探索ポイントに対するバックトラック回数が所定の閾値を超えた場合、前記同一の探索ポイントより手前の前記探索レベルにバックトラックするようバックトラック量を変更し、変更後の前記バックトラック量により戻った前記探索レベルの探索ポイントから探索をおこなうことにより、論理検証する。
一つの実施の形態によれば、充足可能性問題を効率よく判定できる。
図1は、実施の形態にかかる論理検証の手法の説明図である。 図2は、実施の形態にかかる論理検証のデシジョンツリーを示す図である。 図3−1は、論理検証装置のハードウェア構成の一例を示すブロック図である。 図3−2は、論理検証装置の機能ブロックを示す図である。 図4は、論理検証の処理手順を示すフローチャートである。 図5−1は、実施の形態のバックトラック手法による探索例を示す図である。(その1) 図5−2は、実施の形態のバックトラック手法による探索例を示す図である。(その2) 図5−3は、実施の形態のバックトラック手法による探索例を示す図である。(その3) 図5−4は、実施の形態のバックトラック手法による探索例を示す図である。(その4) 図5−5は、既存のバックトラック手法の探索による問題を説明する図である。 図5−6は、実施の形態のバックトラック手法による探索例を示す図である。(その5) 図5−7は、実施の形態のバックトラック手法による探索例を示す図である。(その6)
(実施の形態)
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。図1は、実施の形態にかかる論理検証の手法の説明図である。SATソルバーにより、論理式に変数を与え、充足可能であるか否かを判定する例について示してある。以下、論理検証内容を順に説明する。
(1)論理式の複数の変数a〜gに対し、予め定めた順序で変数値を決める。図示の例では、変数a〜gの順とし、初期の探索ポイント(デシジョンレベル(探索レベル)0)から探索を開始する。
(2)複数の変数a〜gに値0を設定し、変数a〜gの順に探索をおこなう。そして、判定が行き止まりとなるコンフリクトが生じたとする。図示の例では変数gによりコンフリクトが生じている。
(3)SATソルバーのコンフリクト・アナリシス(解析)機能を用いてどの変数の組み合わせがコンフリクトするかラーンドクローズを求める。図示の例では、(a+d+g)であるとする。
(4)どのクローズの組み合わせがコンフリクトしたか原因を解析し、この原因となる変数のポイントとリスタートとの間に探索ポイントを戻す。この際、実施の形態では、同じポイントにバックトラックを繰り返したとき、閾値以上の戻り回数となったとき、繰り返し戻ったポイントdの一つ前のポイントcにバックトラックするようにしている。
(5)戻ったポイントから新たに探索(再探索)する。この際の値は、図示の例ではa,b=前回の探索で用いた値0、c=反転した値1、d,g=cの反転により、ラーンドクローズが成立する値に変更(1または0に変更)、e,f=任意の値とする。なお、コンフリクト・アナリシス機能により、バックトラックにより開始位置変数aの一つ前のポイント(a−1)まで戻った場合、充足不可能(UNSAT)と判定する。
図2は、実施の形態にかかる論理検証のデシジョンツリーを示す図である。図2は、充足可能性問題(SAT)のデシジョンツリーを示し、横軸は変数の組み合わせ、縦軸はデシジョンレベルである。この図2を用いて図1の処理の各設定内容を説明する。変数の数をNとしたとき、実施の形態によるバックトラック(B・T)はyまで戻る(既存のバックトラック手法ではxに戻る。x>y)。
また、バックトラックレンジはRであり、例えば、R=5%に設定する。このRはバックトラックで戻った際のベースポイント(base)を基準とするレンジを有し、x=base±R%となる。このbaseについて、バックトラック量がレンジRから外れる度にベースポイント(base)Xは新たに設定される。初期設定のバックトラックレンジRは、バックトラック頻度が多発する、図中網線で示すソリューションなし空間201のバックトラックレンジを規定する。
また、所定の処理周期当たりのコンフリクト回数(Confrict Frequency)が閾値(threshold)以上となると(Confrict Frequency≧threshold)yにバックトラックする。例えば、所定の処理周期1μsec当たりのコンフリクト回数が1回以上となると、所定のバックトラック量yを有してバックトラックする。
このy=base+backnで示される。バックトラック量を決める関数は、例えば、backn=backn+1とする(今回のバックトラック量を前回より1増やす)。このほか、等比数列としてもよい。
上記のバックトラックによれば、図2に示したコンフリクトが多く、バックトラック頻度が多発するソリューションなし(unknown)空間201を避けてバックトラックすることができる。これにより、ソリューションありの領域の探索を継続して、充足可能性問題を短時間で早く解決できるようになる。
(論理検証装置のハードウェア構成)
図3−1は、論理検証装置のハードウェア構成の一例を示すブロック図である。図3−1において、論理検証装置300は、CPU301と、Read‐Only Memory(ROM)302と、Random Access Memory(RAM)303と、を含む。また、半導体メモリやディスクドライブ等の記憶部304と、ディスプレイ308と、通信インターフェース(I/F)309と、キーボード310と、マウス311と、スキャナ312と、プリンタ313とを備えてもよい。これらCPU301〜プリンタ313はバス314によってそれぞれ接続されている。
CPU301は、論理検証装置300の全体の制御を司る演算処理装置である。ROM302は、論理検証装置300の検証プログラムを記憶する不揮発性メモリである。RAM303は、CPU301による演算処理実行時のワークエリアとして使用される揮発性メモリである。記憶部304には、例えば、論理検証の検証結果などが格納される。
通信インターフェース309は、ネットワーク315と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。具体的に、通信インターフェース309は、通信回線を通じてネットワーク315となるLocal Area Network(LAN)、Wide Area Network(WAN)、インターネットなどに接続され、ネットワーク315を介して他の装置に接続される。通信インターフェース309には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ308は、論理検証処理のための設定画面や検証結果について、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などをデータ表示する装置である。ディスプレイ308には、例えば、Thin Film Transistor(TFT)液晶ディスプレイ、プラズマディスプレイ、有機ELディスプレイなどを採用することができる。
上述した図1および図2を用いて説明した論理検証の機能は、図3−1に記載のCPU301がROM302に格納された論理検証プログラムを実行処理して得ることができる。
図3−2は、論理検証装置の機能ブロックを示す図である。CPU301が有する機能を示している。CPU301は、判定部351、解析部352、バックトラック設定部353、変数値設定部354の機能を含む。
判定部351には、論理式が入力され、SATソルバーからなる判定部351によりSAT/UNSATの判定が出力される。解析部352は、SATソルバーのコンフリクト・アナリシス機能に相当する。判定部351においてコンフリクトが発生した場合、解析部352は、ラーンドクローズを求める。
バックトラック設定部353は、コンフリクティング・クローズが一つになるポイントとリスタートとの間に探索ポイントを戻す。この際、バックトラック設定部353は、同一の探索ポイント(デシジョンレベル、探索レベル)に戻るバックトラック回数が所定の閾値を超えた場合には、さらに一つ前の探索ポイント(デシジョンレベル)に戻るようバックトラック量を設定(変更)する。変数値設定部354は、バックトラックした変数の値について、前回の探索で用いた値を反転させる。これら設定したバックトラック量と、反転した変数の値により、再度判定部351による戻ったポイントからの探索を継続させる。
図4は、論理検証の処理手順を示すフローチャートである。図3−1の論理検証装置300のCPU301が実行する各処理について説明する。図中、枠400で示す各処理が既存の処理に対して実施の形態により新たに追加した処理に相当する。
はじめに、CPU301は、変数の値を決定する(ステップS401)。例えば、各変数のうち一つ(例えば変数a)の値を1に設定する。次に、充足可能性を判定する(ステップS402)。充足可能(SAT)であれば(ステップS402:Yes)、充足可能(SAT)と出力して処理を終了する。充足可能以外であれば(ステップS402:No)、論理式の全クローズの上記変数(変数a)の値を1に設定する(プロパゲート、ステップS403)。なお、この際、変数a’は反転であるため、0に設定される。
次に、コンフリクト発生の有無を判断する(ステップS404)。例えば一つのクローズが0になると、論理式全てが0になり(false)、コンフリクトが発生したと判断し(ステップS404:Yes)、ステップS405に移行する。コンフリクトが発生しなければ(ステップS404:No)、ステップS401に戻る。ステップS405では、どの変数の組み合わせがコンフリクトの要因となったかを解析する(ステップS405)。
そして、ステップS405の解析の結果により、コンフリクトの原因となる変数の値を逆の値(例えば1→0)に変更しても充足不可能(UNSAT)である場合には(ステップS406:Yes)、充足不可能(UNSAT)と出力して処理を終了する。
一方、充足不可能(UNSAT)と判定できない場合は(ステップS406:No)、バックトラックをおこなう。この際、バックトラック量を予め設定したバックトラックレンジR(x=base±R%)の範囲内であるか判断する(ステップS407)。バックトラック量がバックトラックレンジRの範囲内であれば(ステップS407:Yes)、コンフリクト回数を閾値と比較する(ステップS408)。
この結果、コンフリクト回数が閾値未満(Confrict Frequency<threshold)であれば(ステップS408:No)、既存のバックトラック手法によりデシジョンレベルXにバックトラックする(ステップS410)。この後、ステップS401の処理に戻る。
ここで、実施の形態では、ステップS407において、バックトラック量がバックトラックレンジRの範囲外になると(ステップS407:No)、ベースポイント(base)をこの新たなレベルXに設定しなおす(ステップS409)。そしてステップS410に移行する。
ステップS410では、解析の結果、探索したコンフリクトの原因となるコンフリクティング・クローズポイントにより、バックトラック時に該当する変数のデシジョンレベルXまで探索を戻し(ステップS410)、ステップS401の処理に戻る。
さらに、実施の形態では、ステップS408において、コンフリクト回数が閾値以上(Confrict Frequency≧threshold)となれば(ステップS408:Yes)、ステップS411に移行し、新たなバックトラック手法により探索をおこなう。
まず、バックトラック量yについて既存のバックトラック量xよりも多いy=base+backnとする。例えば、上述したように、backn=backn+1とする。そして、今回のバックトラック量がデシジョンレベル0まで戻るものであるか(y=base+backn≦0)判定する(ステップS411)。今回のバックトラック量がデシジョンレベル0まで戻らない場合は(ステップS411:No)、このレベルyにバックトラックする(ステップS412)。
次に、ベースポイント(base)をyとし(ステップS413)、バックトラック量をbacknだけ増加させる(ステップS414)。例えば、新たなバックトラック量を前回よりさらに一つ増やす。
そして、このバックトラックしたデシジョンレベルyの変数の値を反転させる(ステップS415)。図1の例では、変数cを反転させる。そして、ステップS403に戻る。
また、ステップS411において、今回のバックトラック量がデシジョンレベル0まで戻るものである場合には(ステップS411:Yes)、リスタートのための設定をおこなう。このため、上記設定したバックトラック量を規定するbacknの値をリセットする(ステップS416)。また、ステップS408において用いる閾値に余裕を持たせてもよい(例えば、所定の処理周期当たりのコンフリクト回数を当初の1μsec当たり1回の設定を10回に増加させる)。既存のバックトラック手法では、回数規定がないが実施の形態では、規定された回数に余裕を持たせるようにする。
上述した図4に示す手順に基づき、実施の形態のバックトラック手法について具体例を用いて説明する。図5−1〜図5−4、図5−6、図5−7は、実施の形態のバックトラック手法による探索例を示す図である。はじめに、図5−1に示すように、(1)論理式の複数の変数a〜gに対し、予め定めた順序で変数値を決める。図示の例では、変数a〜gの順とする。(2)そして、複数の変数a〜gに値0を設定し、変数a〜gの順に探索をおこなったところ、変数gによりコンフリクトが発生した。
次に、図5−2に示すように、(3)SATソルバーのコンフリクト・アナリシス機能(解析部352)を用いてラーンドクローズを求め、コンフリクティング・クローズが一つになるポイントとリスタートとの間のポイントの変数eにバックトラックにより戻る。図5−2に示す例では、変数eはベースポイント(base)となり、デシジョンレベルは4である。
次に、図5−3に示すように、変数eの値を0→1に変更し、変数g,fについて探索したところ、(4)再度コンフリクトが発生したとする。バックトラックにより変数eの一つ前の変数dに戻る。この場合、バックトラックレンジRが1レベルのため、バックトラック量がバックトラックレンジR(x=base±R%)の範囲内となる(ステップS407:Yes)。また、コンフリクトの間に600ns経過したとする。コンフリクト回数はまだ閾値未満である。
次に、図5−4に示すように、変数dの値を0→1に変更し、探索順を変数g,eについて探索したところ、(5)またコンフリクトが発生したとする。この場合も、バックトラックレンジRが1レベルのため、バックトラック量がバックトラックレンジR(x=base±R%)の範囲内となる(ステップS407:Yes)。また、コンフリクトの間に500ns経過したとする。これにより、コンフリクト回数が閾値1μsecを超える(ステップS408:Yes)。
図5−5は、既存のバックトラック手法の探索による問題を説明する図である。ここで、仮に、従来のバックトラック手法を使うと、図5−5に示すように、(6)コンフリクトが多発し、バックトラックを繰り返す空間901(図2のソリューションなしの空間201相当)に陥る。
これに対し、実施の形態のバックトラック手法では、図5−4の後、図5−6に示すように、(7)所定のバックトラック量y=base+backnを有する。この際、閾値判定後の初めての新バックトラックであるため、backn=back1となり、1+1=2となる。base=4であるため、y=4−2=2となり、デシジョンレベル2の変数cまでバックトラックにより戻ることになる。
この後、図5−7に示すように、(8)変数cの値を1(true)に変更したことで、変数a=0、b=0、c=1、d=0、e=0、f=0、g=0というソリューション(充足可能:SAT)を短時間で見つけることができるようになる。これにより、バックトラックを繰り返す空間901(図2のソリューションなしの空間201相当)の探索を回避できる。加えて、既存の探索では後回しになっていた探索エリアを先に探索するため、充足可能性判定を効率的におこなえるようになる。
以上説明した実施の形態によれば、コンフリクトの発生頻度が閾値を超えた場合には、複数回繰り返したポイント(デシジョンレベル)へのバックトラックよりも一つ前以上のポイントまでバックトラックするようにした。閾値は、所定の処理周期当たりのコンフリクト回数に基づき設定している。これにより、所定回数までは既存のバックトラックをおこなうが、コンフリクト回数(頻度)が多くなり、閾値を超えると、バックトラック量について、ソリューションなしの領域外まで戻るようバックトラック量を増加させる。
したがって、ソリューションなしの領域の探索を無駄に継続することを避けることができるようになり、充足可能性判定処理にタイムオーバ等が生じず早く、かつ効率よくおこなえるようになる。また、バックトラックしたポイントの変数の値を逆数に変えて探索をおこなうことにより、充足可能性判定をより効率的におこなえるようになる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
半導体素子の論理式の入力に基づき、前記論理式の変数に所定の値を割り当てて充足可能性問題を判定させ、
前記判定の結果、コンフリクトが生じた場合に、前記コンフリクトの原因を解析させ、
前記解析に基づき、探索ポイントをコンフリクトが生じた探索レベルに戻して探索させるバックトラック量を設定させ、
同一の探索ポイントに対するバックトラック回数が所定の閾値を超えた場合、前記同一の探索ポイントより手前の前記探索レベルにバックトラックするようバックトラック量を変更させ、
変更後の前記バックトラック量により戻った前記探索レベルの探索ポイントから探索をおこなわせる、
処理を実行させることを特徴とする論理検証プログラム。
(付記2)前記同一の探索ポイントに対するバックトラック回数が所定の閾値を超えた場合、前記探索レベルより一つ手前の探索レベルにバックトラックするようバックトラック量を変更させることを特徴とする付記1に記載の論理検証プログラム。
(付記3)前記バックトラック量は、バックトラックにより戻った際のベースポイントを基準とするレンジを有し、バックトラック量が前記レンジから外れる度に新たなベースポイントとして設定されることを特徴とする付記2に記載の論理検証プログラム。
(付記4)変更後の前記バックトラック量により戻った前記探索レベルの前記変数の値を前回の値の逆数に変更し、
前記判定をおこなわせることを特徴とする付記1〜3のいずれか一つに記載の論理検証プログラム。
(付記5)バックトラック量の変更により、前記探索ポイントが初期の探索ポイントまで戻ったときには、前記変更したバックトラック量をリセットさせ、変数の探索順を変更したリスタートにより再探索をおこなわせることを特徴とする付記1〜4のいずれか一つに記載の論理検証プログラム。
(付記6)バックトラック量の変更により、前記探索ポイントが初期の探索ポイントまで戻ったときには、前記閾値を緩め、変数の探索順を変更したリスタートにより再探索をおこなわせることを特徴とする付記1〜4のいずれか一つに記載の論理検証プログラム。
(付記7)前記閾値は、所定の処理周期当たりのコンフリクト回数に基づき設定されることを特徴とする付記1〜6のいずれか一つに記載の論理検証プログラム。
(付記8)コンピュータを用いて論理検証を行う方法であって、
前記コンピュータが有するプロセッサが、
半導体素子の論理式の入力に基づき、前記論理式の変数に所定の値を割り当てて充足可能性問題を判定し、
前記判定の結果、コンフリクトが生じた場合に、前記コンフリクトの原因を解析し、
前記解析に基づき、探索ポイントをコンフリクトが生じた探索レベルに戻して探索するバックトラック量を設定し、
同一の探索ポイントに対するバックトラック回数が所定の閾値を超えた場合、前記同一の探索ポイントより手前の前記探索レベルにバックトラックするようバックトラック量を変更し、
変更後の前記バックトラック量により戻った前記探索レベルの探索ポイントから探索をおこなう、
処理を実行することを特徴とする論理検証方法。
(付記9)半導体素子の論理式の入力に基づき、前記論理式の変数に所定の値を割り当てて充足可能性問題を判定する判定部と、
前記判定の結果、コンフリクトが生じた場合に、前記コンフリクトの原因を解析する解析部と、
前記解析に基づき、探索ポイントをコンフリクトが生じた探索レベルに戻して探索させるバックトラック量を設定するバックトラック設定部とを有し、
前記判定部は、同一の探索ポイントに対するバックトラック回数が所定の閾値を超えた場合、前記同一の探索ポイントより手前の前記探索レベルにバックトラックするようバックトラック量を変更し、変更後の前記バックトラック量により戻った前記探索レベルの探索ポイントから探索をおこなうことを特徴とする論理検証装置。
201 ソリューションなし空間
300 論理検証装置
301 CPU
302 ROM
303 RAM
304 記憶部
351 判定部
352 解析部
353 バックトラック設定部
354 変数値設定部

Claims (8)

  1. コンピュータに、
    半導体素子の論理式の入力に基づき、前記論理式の変数に所定の値を割り当てて充足可能性問題を判定させ、
    前記判定の結果、コンフリクトが生じた場合に、前記コンフリクトの原因を解析させ、
    前記解析に基づき、探索ポイントをコンフリクトが生じた探索レベルに戻して探索させるバックトラック量を設定させ、
    同一の探索ポイントに対するバックトラック回数が所定の閾値を超えた場合、前記同一の探索ポイントより手前の前記探索レベルにバックトラックするようバックトラック量を変更させ、
    変更後の前記バックトラック量により戻った前記探索レベルの探索ポイントから探索をおこなわせる、
    処理を実行させることを特徴とする論理検証プログラム。
  2. 前記同一の探索ポイントに対するバックトラック回数が所定の閾値を超えた場合、前記探索レベルより一つ手前の探索レベルにバックトラックするようバックトラック量を変更させることを特徴とする請求項1に記載の論理検証プログラム。
  3. 前記バックトラック量は、バックトラックにより戻った際のベースポイントを基準とするレンジを有し、バックトラック量が前記レンジから外れる度に新たなベースポイントとして設定されることを特徴とする請求項2に記載の論理検証プログラム。
  4. 変更後の前記バックトラック量により戻った前記探索レベルの前記変数の値を前回の値の逆数に変更し、
    前記判定をおこなわせることを特徴とする請求項1〜3のいずれか一つに記載の論理検証プログラム。
  5. バックトラック量の変更により、前記探索ポイントが初期の探索ポイントまで戻ったときには、前記変更したバックトラック量をリセットさせ、変数の探索順を変更したリスタートにより再探索をおこなわせることを特徴とする請求項1〜4のいずれか一つに記載の論理検証プログラム。
  6. 前記閾値は、所定の処理周期当たりのコンフリクト回数に基づき設定されることを特徴とする請求項1〜5のいずれか一つに記載の論理検証プログラム。
  7. コンピュータを用いて論理検証を行う方法であって、
    前記コンピュータが有するプロセッサが、
    半導体素子の論理式の入力に基づき、前記論理式の変数に所定の値を割り当てて充足可能性問題を判定し、
    前記判定の結果、コンフリクトが生じた場合に、前記コンフリクトの原因を解析し、
    前記解析に基づき、探索ポイントをコンフリクトが生じた探索レベルに戻して探索するバックトラック量を設定し、
    同一の探索ポイントに対するバックトラック回数が所定の閾値を超えた場合、前記同一の探索ポイントより手前の前記探索レベルにバックトラックするようバックトラック量を変更し、
    変更後の前記バックトラック量により戻った前記探索レベルの探索ポイントから探索をおこなう、
    処理を実行することを特徴とする論理検証方法。
  8. 半導体素子の論理式の入力に基づき、前記論理式の変数に所定の値を割り当てて充足可能性問題を判定する判定部と、
    前記判定の結果、コンフリクトが生じた場合に、前記コンフリクトの原因を解析する解析部と、
    前記解析に基づき、探索ポイントをコンフリクトが生じた探索レベルに戻して探索させるバックトラック量を設定するバックトラック設定部とを有し、
    前記判定部は、同一の探索ポイントに対するバックトラック回数が所定の閾値を超えた場合、前記同一の探索ポイントより手前の前記探索レベルにバックトラックするようバックトラック量を変更し、変更後の前記バックトラック量により戻った前記探索レベルの探索ポイントから探索をおこなうことを特徴とする論理検証装置。
JP2013062284A 2013-03-25 2013-03-25 論理検証プログラム、論理検証方法および論理検証装置 Expired - Fee Related JP6044410B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013062284A JP6044410B2 (ja) 2013-03-25 2013-03-25 論理検証プログラム、論理検証方法および論理検証装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013062284A JP6044410B2 (ja) 2013-03-25 2013-03-25 論理検証プログラム、論理検証方法および論理検証装置

Publications (2)

Publication Number Publication Date
JP2014186642A JP2014186642A (ja) 2014-10-02
JP6044410B2 true JP6044410B2 (ja) 2016-12-14

Family

ID=51834128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013062284A Expired - Fee Related JP6044410B2 (ja) 2013-03-25 2013-03-25 論理検証プログラム、論理検証方法および論理検証装置

Country Status (1)

Country Link
JP (1) JP6044410B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6086626A (en) * 1997-05-16 2000-07-11 Fijutsu Limited Method for verification of combinational circuits using a filtering oriented approach
US7047139B2 (en) * 2000-12-22 2006-05-16 International Business Machines Corporation Sharing information between instances of a propositional satisfiability (SAT) problem
JP5835103B2 (ja) * 2012-05-25 2015-12-24 富士通株式会社 充足可能性問題の計算方法、充足可能性問題の計算システム及びプログラム

Also Published As

Publication number Publication date
JP2014186642A (ja) 2014-10-02

Similar Documents

Publication Publication Date Title
US11367010B2 (en) Quantum computer simulator characterization
US9514191B2 (en) Visualizing ranking factors for items in a search result list
US20130019216A1 (en) Integration of data mining and static analysis for hardware design verification
US10909293B1 (en) Sampling selection for enhanced high yield estimation in circuit designs
TW201528103A (zh) 控制項及組件的適用階層
US20170177752A1 (en) Enhanced parameter tuning for very-large-scale integration synthesis
US20150095767A1 (en) Automatic generation of mobile site layouts
US10282887B2 (en) Information processing apparatus, moving image reproduction method, and computer readable medium for generating display object information using difference information between image frames
US20150278425A1 (en) Timing Closure Using Transistor Sizing in Standard Cells
Thompson et al. Exploiting domain knowledge in system-level MPSoC design space exploration
CN108958612B (zh) 控制页面滑动的方法、控制页面方法、系统、终端设备及介质
US10635846B2 (en) Timing error analysis method and information processing apparatus
US8392393B2 (en) Graph searching
JPWO2012144140A1 (ja) UI(UserInterface)作成支援装置、UI作成支援方法及びプログラム
JP6690828B2 (ja) キーワードに基づくテキスト検索の方法及び装置
US9690893B1 (en) Methods and systems for customizable editing of completed chain of abutted instances
JP6044410B2 (ja) 論理検証プログラム、論理検証方法および論理検証装置
US10192012B1 (en) Pseudo-inverter configuration for signal electromigration analysis
Reimann et al. Cell selection for high-performance designs in an industrial design flow
US9996656B2 (en) Detecting dispensable inverter chains in a circuit design
CN117149849A (zh) 用于对多个查询请求进行处理的方法、装置和电子设备
US10796066B1 (en) Power aware resizing of clock tree instances
US10409939B1 (en) Statistical sensitivity analyzer
US9875317B2 (en) System and method for contextually enriching content of a referrer page when returning from a landing page
US10409941B2 (en) Visual representation of circuit related data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161011

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161018

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161031

R150 Certificate of patent or registration of utility model

Ref document number: 6044410

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees