JP4629682B2 - 有限メモリ検査における埋込みメモリの効率的なモデリング方法 - Google Patents

有限メモリ検査における埋込みメモリの効率的なモデリング方法 Download PDF

Info

Publication number
JP4629682B2
JP4629682B2 JP2006551362A JP2006551362A JP4629682B2 JP 4629682 B2 JP4629682 B2 JP 4629682B2 JP 2006551362 A JP2006551362 A JP 2006551362A JP 2006551362 A JP2006551362 A JP 2006551362A JP 4629682 B2 JP4629682 B2 JP 4629682B2
Authority
JP
Japan
Prior art keywords
memory
modeling method
modeling
sat
emm
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
JP2006551362A
Other languages
English (en)
Other versions
JP2007524165A (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.)
NEC Laboratories America Inc
Original Assignee
NEC Laboratories America Inc
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 NEC Laboratories America Inc filed Critical NEC Laboratories America Inc
Publication of JP2007524165A publication Critical patent/JP2007524165A/ja
Application granted granted Critical
Publication of JP4629682B2 publication Critical patent/JP4629682B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/54Arrangements for designing test circuits, e.g. design for test [DFT] tools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

本発明は、一般にディジタル回路の分野に関し、特に、ディジタル回路の形式的検証に有用な有限メモリ検査における埋込みメモリの効率的なモデリング方法に関する。
シミュレーションのような従来の技術と異なり、二分決定グラフ(BDD)を使用する記号モデル検査(SMC)のような形式的検証技術は、潜在するバグを検出するための包括的な範囲と能力の可能性を提供する。しかし、BDDを使用するこれらの技術は、状態急増問題で苦労することが知られており、したがって、大量の数のフリップフロップ/状態変数を有する回路では失敗する。
ブーリアン満足化可能性(SAT)ソルバー(SATを解くプログラム)は、BDDを魅力的に補完する多くの特質を示している。特に、SATの性能は回路の大きさに影響されにくく、上述の状態急増問題に苦しまない。その結果、SATの方法を利用する有限モデル検査(BMC)を実行するルーチンの開発が多くの研究の主題であった。
記号モデル検査と異なり、BMCは有限長のバグを検出することに集中し、より長いトレースの検索限界を連続的に増加させている。設計と正当性性質を仮定すれば、BMCは、長さkのウイットネス/カウンタ用例が存在する場合にのみ数式が真であるように、ブーリアン数式を生成する。次に、このブーリアン数式は、最後尾のSATソルバーによりチェックされる。都合の良いことに、またある程度はSATソルバーの最近の進歩のために、SATベースのBMCは、従来よりも大規模な設計を処理することができ、また、速く分析することができる。
例として、Burch と Dill は、解釈されない機能を有するメモリ・アレイの同等性論理におけるメモリ・アレイの記号表現を発表した(例えば、非特許文献1参照。)。彼等のメモリの抽象解釈は、解釈された読み取りおよび書き込み動作を使用している。これらの解釈された機能は、メモリに対する書き込みのヒストリーを記録するための入れ子にされたIF−THEN−ELSE(ITE)構造を生成することにより、象徴的にメモリを表すために使用される。

制御用メモリとデータ用メモリとを有する全体の回路をモデル化する努力の成果において、Velev 他は、使用される記号変数の数が、メモリの大きさではなく、メモリ・アクセスの数に比例することを可能にする行動モデルを発表した(例えば、非特許文献2参照。)。このモデルはメモリを置換し、ソフトウェア・インタフェイスを介して回路のその他の部分と相互に作用する。 Burch と Dill が示したと同様に、Velev 他の読み取りおよび書き込み動作は、メモリ・セマンティクス(すなわち、記憶場所からのデータ読み取りが同じ位置に書き込まれた最新のデータと同じである)の転送性質が満足されるような方法で、定義される。しかし、残念ながら、ブーリアン式を表すために使用されるBDDは、分岐またはロード/格納命令を有するプロセッサに対しては「膨張する」傾向があり、BDDを良く管理することは、データ上のアドレスの依存性のために不可能であり、逆もまた同様である。
R.E. Bryant、S.German および M.N. Velev は、書き込み相互間であるいは読み取りに対して書き込みが再整理されないプロセッサに対して、各書き込み動作に対して何らかの任意の方法で状態を変化させ、各読み取り動作に対する状態とアドレスに依存する何らかの任意の値を返す汎用状態マシンとして、データ・メモリを表すことが十分であることを発見した(例えば、非特許文献3参照。)。このような抽象化は安全であるが、メモリのすべての性質を取り込んではいない。
続いて、Velev は、保守的な変換規則のシステムを適用し、メモリの転送セマンティクスが転送のあるレベルに対してのみ満足される場合にハイブリッド・メモリ・モデルを生成することにより、データメモリの抽象化の処理を自動化した(例えば、非特許文献4参照。)。
最近では、Bryant 他は、Computer-Aided Verification in 2002 に発表した、「ラムダ式および解釈されない機能を有するカウンタ演算のロジックを使用するシステムのモデル化および検証」と題する論文で、UCLIDと呼ばれるシステムにおいて、無限状態システムおよび無限メモリをモデル化する論理を提案した。この論文によれば、メモリは、その主要部がタイム・ステップと共に変化可能な関数式としてモデル化される。 Burch および Dill により示されたと同様に、メモリに対する書き込みのヒストリーを記録するための、入れ子にされたIF−THEN−ELSE(ITE)構造を生成することにより、メモリは象徴的に表現される。ラムダ式および解釈されない機能(CLU)論理を有するこの限定されたカウンタ演算において、安全性を検証するためにBMCを使用することができる。
しかし、これらの進歩にもかかわらず、SATベースのBMCは大きい埋込みメモリを含む設計の処理が未だに不可能であり、したがって、より徹底的、効率的、かつ好都合な方法が必要である。このようなSATベースのBMCの強化は、当該技術分野における著しい進歩を表し、したがって本発明の目的である。
さらに、米国半導体工業会のロードマップ予測によれば、2005年には、埋込みメモリはシステム・オン・チップ(SoC)デバイスの70%以上を占めるであろう。システム・オン・チップ・デバイス上のこれらの埋込みメモリは、携帯電話、スマート・カードおよびディジタル・カメラに及ぶアプリケーションにおいて、データ・スループットに対する増加し続けている要求から生じている多様なコードおよびデータ必要条件をサポートする。
埋込みメモリが設計および検証の複雑さの両方で劇的に増加するにつれて、各付加メモリビットを伴う状態空間の指数関数的な増加によって、記号軌道評価を使用するオンチップ・メモリ・アレイを検証する努力は困難に満ちている。特に、この状態急増は、このような大きい埋込みメモリ・システムの機能的検証のためのモデル検査のような形式的検証技術の実用上の適用に不利な影響を与える。
検証の複雑さを和らげるために、いくつかのメモリ抽象化技術、すなわち、メモリを部分的あるいは完全に設計から除外することが、多くの場合業界で使用されている。しかし、このような技術は、多くの場合誤った結果をもたらし、総合的な検証の努力に不利な影響を与えている。多くの細分化ベースの技術において、具体的な設計の小さな抽象モデルから始まって、モデルを反復して改良するために、抽象モデルの擬似的なカウンタ用例が使用される。実際には、性質が正しいと証明され、あるいは実数のカウンタ用例が発見できるまでに、いくつかの反復が必要とされる。すべての反復細分化ステップの後に、モデルの大きさは増加し、検証をますます困難にすることに注目されたい。
それに対して、抽象化ベースの方法は、具体的な設計に対して証明ベースの抽象化(PBA)技術を使用する。本発明者が示すように、反復抽象化は、このような技術を発展的により多くの抽象モデルに適用するために使用でき、その結果モデルの大きさを著しく縮減する(例えば、非特許文献5参照。)。
「パイプラインで結ばれたマイクロプロセッサ制御の自動的検証」Proceedings of the sixth International Conference on Computer-Aided Verification, volume 818, D. L. Dill, Ed.: Springer-Verlag, 1994, pp. 68-80 「記号シミュレーションにおけるメモリ・アレイの効率的なモデル化」Computer Aided Verification, O.Grumberg, Ed., pp. 399-399 in 1987 「命題論理に対する解釈されない機能の論理に対して効率的な縮減を行うプロセッサ検証」ACM Transactions on Computational Logic (TOCL) on pp.93-134, Vol., 2, No. 1, January 2001 M.N. Velev 、「スーパースケーラ・マイクロプロセッサの形式的検証におけるメモリの自動的な抽象化」 Proceeding of Tools and Algorithms for the Construction and Analysis of Systems, 2001, pp. 252-267 「証明分析を伴うSATベースのBMCを使用する反復抽象化」Proceedings of International Conference on Computer Aided Design in 2003
しかし、これらの方法は、初めから具体的なモデルを使用するので、多くのメモリを有する設計に適用することは不可能である虞があるという問題点がある。一般に、これらの細分化と抽象化の両方にもとづく方法は、メモリ・セマンティクスを利用する方向に適合していないという問題点がある。
本発明は、上述したような従来の技術が有する問題点に鑑みてなされたものであって、各メモリ・ビットを明示的にモデル化せずに埋込みメモリ設計を処理するために、SATベースのBMCの能力を強化することができる抽象化の実用的なモデリング方法を提供することを目的とする。
上記目的を達成するために本発明は、
上記のように構成された本発明においては、第1の態様から考察すると、本発明による新規な方法は、埋込みメモリを有するメモリ・ビットが明示的にモデル化される必要がないような、1つまたは複数の埋込みメモリを有する電子的な設計に適用可能なコンピュータにより実行される方法である。本方法は、データ転送セマンティクスを保存している間に、メモリを設計から除外するステップと、データ転送セマンティクスと、効率的メモリ・モデリング(EMM)制約条件として任意の初期メモリ状態を保存するためのメモリ保存制約条件を、媒介変数がファンアウトしない構造を生成せず、CNFベースのSATソルバーに否定的に影響を及ぼす不必要な2−リテラル節を生成しない表現で収集するステップと、有限分析を使用して設計を検証するステップとを有する。
また、他の態様から考察すると、本発明による新規な方法は、埋込みメモリを有するメモリ・ビットが明示的にデル化されないような、1つまたは複数の埋込みメモリを有する電子的な設計に適用可能なコンピュータにより実行される方法である。本方法は、データ転送セマンティクスを保存している間に、メモリの1つまたは複数を設計から除外するステップと、データ転送セマンティクスを、効率的メモリ・モデリング(EMM)制約条件として、媒介変数がファンアウトしない構造を生成せず、CNFベースのSATソルバーに否定的に影響を及ぼす不必要な2−リテラル節を生成しない表現で収集するステップと、表現に排他性制約条件を付加するステップと、有効な整合読み取りと書き込みの組み合わせが決定されるとき、排他性制約条件の結果として他の組み合わせが直ちに無効であることを意味するように、有限分析を使用して設計を検証するステップとを有する。
これにより、各メモリ・ビットを明示的にモデル化せずに埋込みメモリ設計を処理するために、SATベースのBMCの能力を強化することができ、さらに設計を検証することを必要とせず、マイナス要因となる欠点を生成することもない。
以上説明したように本発明においては、データ転送セマンティクスを保存している間に、メモリを設計から除外し、データ転送セマンティクスと、効率的なメモリ・モデリング(EMM)制約条件として任意の初期メモリ状態を保存するためのメモリ保存制約条件を、適切な表現で収集し、有限分析を使用して設計を検証する構成としたため、各メモリ・ビットを明示的にモデル化せずに埋込みメモリ設計を処理するために、SATベースのBMCの能力を強化することができる。
本発明による方法は、埋込みメモリを有するディジタル・システム100のブロック図を示す図1を参照してより良く理解することができる。図1に示すような設計に対して、メイン・モジュール120は、図面に示すような多数のインタフェイス信号を使用して、メモリ・モジュール110とやり取りを行う。任意の所与のクロック・サイクルにおいて、単一ポート・メモリに対して、次のことが観察される。a)多くても1つのアドレスが有効である。b)多くても1つの書き込みが発生する。c)多くても1つの読み取りが発生する。BMC検索限界kがより大きくなるような、多くの埋込みメモリを有する設計に対しては、図2に示すように、ロールしない設計サイズはメモリ・ビットのサイズに応じて直線的に増加する。
図2を参照すると、埋込みメモリを有する「ロールしない」設計200が示されている。設計200には、単一ポート・メモリ中の一連の「深度」が具体的に示されている。
上記のメモリのセマンティクスにおいて、特定の深度における任意のメモリの読み取りは、ある前続の深度における同じアドレスに書き込まれた最新のデータに依存することが認められる。したがって、図2に示すような設計に対して、SATベースのBMC分析をより深く可能にするためには、メイン・モジュールを分析せずに、次の段階が実行される。
a)メモリ・モジュールを取り出すが、メモリ・インタフェイス信号およびメイン・モジュールに対する入力−出力の方向性は保持する。
b)メモリの順方向セマンティクスを維持するメモリ・インタフェイス信号上のすべての分析深度kに制約条件を加える。
SATソルバーの検索をより効率的にするために、本発明では次のステップを加える。
c)SATソルバーが有効な整合読み取りと書き込みとの組み合わせを決めるとき、他の組み合わせは直ちに無効であると暗黙に定義されるように、制約条件を加える。
上記のa)とb)は、性質の妥当性を保存する効率的なモデルを生成するのに十分であるが、c)は、SATベースのBMCの優れた性能をもたらすことに注目されたい。本改良を完全に理解するためには、背景についていくつかの論議がさらに必要である。
(最新のSATソルバー)
ブーリアン満足化可能性(SAT)問題は、構成要素であるブール変数によってブーリアン数式に対する割り当てを満足させるか、あるいはこのような割り当てが存在しないことを証明するかの決定を含んでいる。この問題はNP完全として知られており、当業者には容易に理解されよう、最新のSATソルバーは図3に示すようなDPLLスタイルのアルゴリズムを通常使用している。図3を参照すれば、このようなアルゴリズムは、3つの主な構成エンジン、すなわち、決定、推論および診断を有することを容易に知ることができる。
ブーリアン問題は、論理積正規形(CNF)あるいは論理ゲート正規形(LGF)のいずれか、またはその両方で表現することができる。この問題が論理ゲートおよびCNF表現式の両方で表現されるハイブリッドSATソルバーは、BMCによく適合する。
(有界モデル検証)
有界モデル検証(BMC)を使用して、仕様は線形時相論理(LTL)で表現される。クリプケ構造M、LTL数式f、およびバウンドnを仮定すれば、BMCにおける変換タスクは、長さnのウイットネスが存在する場合にのみ本数式が満足できるように、命題式
Figure 0004629682
を構築することである。この「満足化可能性」チェックは、バックエンドSATソルバーにより実行され、検証は、長さが増加しているウイットネスあるいはカウンタ用例(CE)を完全性閾値に到達するまで、探すことにより通常進行する。
単純な安全性を検査する(あるいは誤りを立証する)ための、SATベースBMCの全体のアルゴリズム(BMC−1)を図4に示す(ここでは行10−11は無視する)。
Figure 0004629682
は遷移関係のi番目のアンローリングにおける性質ノードを表し、Iはシステムの初期状態を表し、
Figure 0004629682
は長さiの経路がループなしであることを表すことに注目されたい。行5−7において、正当性に対する順方向および逆方向の終了基準を検査するためにSATソルバーが使用される。行8において、カウンタ用例の存在を検査するためにSATソルバーが使用される。
(証明ベースの抽象化(PBA))
SATベースBMCのためのPBA技術が、図4の行10−11に示される。特に、図4を参照して、行8においてSAT問題が満足できない場合、すなわち、所与の深度iにおいて安全性に対するカウンタ用例が存在しない場合、行10の手順SAT_Get_Refutationを使用して、満足し得ないコア(U_Core)が得られる。この手順は、SATソルバーにより使用された解決ベースのプルーフ・ツリーを単に遡り、非満足化可能性に対して十分な部分集合式を識別する。次に、U_Coreから抽象モデルを得るために、ゲートベースの抽象化あるいはラッチベースの抽象化技術を使用することができる。ここで、深度iにおける1組のラッチ理由LRiを得るために、行11にラッチベースの抽象化技術を示す。
次に、疑似1次入力への1組の
Figure 0004629682
にはない所与の設計において、それらのラッチを変換することにより、深度iに対する抽象モデルが生成される。U_Coreの十分性のために、結果として生ずる抽象モデルは、性質の正当性を維持することを深度iに到るまで保証される。性質の局所参照性によっては、1組の
Figure 0004629682
は、所与の設計における全ラッチよりも大幅に少なくなる可能性がある。具体的にいうと、1組の
Figure 0004629682
の大きさが、安定性深度と呼ばれる一定数の深度を超えて増加しないように、深度d(<n)が選択される。多くの場合に、深度dにおいて生成された抽象モデルに対して、したがって所与の設計に対して、性質は正しいと証明できる。1組の
Figure 0004629682
をさらに減少させ、したがって、より小さい抽象モデルを得るために、PBA技術は反復して適用することができ、反復抽象化と呼ばれる。
(メモリのセマンティクス)
当業者には容易に理解できるように、埋込みメモリは、それぞれデータ・アクセスに対して少なくとも1つのポートを有するように実現された、ランダムにアクセス可能なメモリ(RAM)、連続的にアクセス可能なメモリ(SAM)、ファーストイン・ファーストアウト(FIFO)およびラストイン・ラストアウト(すなわち、スタック)のような、いくつかの形式で通常使用される。本明細書の説明のために、次のインタフェイス信号、すなわち、アドレス・バス(Addr)、書き込みデータ・バス(WD)、読み取りデータ・バス(RD)、書き込みイネーブル(WE)読み取りイネーブル(RE)、を有する図1に示すような単一ポート・メモリを想定する。
メモリ・アクセス動作の代表的なタイミング図を図5に示す。図5を参照すると、メモリ動作の書き込み位相はクロック・サイクルを2つ必要とすることが判る。第1のクロック・サイクルにおいて、データ値がWDバスに割り当てられる、書き込みアドレス位置がアドレス・バスに割り当てられ、WE信号がアクティブにされる。クロックの第2フェーズにおいて、メモリのアドレス位置は、新しいデータを受け取る。
一方、メモリ動作の読み取り位相は、クロック・サイクルを単に1つのみ必要とする。特に、読み取りアドレス位置がアドレス・バスに割り当てられ、REがアクティブにされるとき、読み取りデータはRDバスに割り当てられる。たとえば、図5において、データ0および1は、それぞれ、クロック・サイクル2および3において、アドレス位置5および4に書き込みされる。データは、クロック・サイクル4、5および6において、アドレス位置4から読み取られる。
ここで、メモリ設計を(0から開始して)深度kまでアンロールすると想定する。
Figure 0004629682
が時間フレームjにおけるメモリ・インタフェイス信号変数Sを表し、ブール変数
Figure 0004629682
Figure 0004629682
と定義されるとすれば、メモリの順方向セマンティクスは、次式で表現できる。
Figure 0004629682
言い換えれば、アドレスがkとjにおいて等しく、書き込みイネーブルがjにおいてアクティブであり、読み取りイネーブルがkにおいてアクティブであり、jとkの間のすべての深度に対して、どのアドレスもkのアドレスと異なりあるいは書き込みが生起しなければ、k番目の深度において読み取られるデータはj番目の深度において書き込まれたデータに等しい。
(本発明による方法)
本発明による新規な教示によれば、本発明による方法は、(本発明による形式的検証プラットフォームの一部として)BMC分析のすべてのアンロール深度において、メモリ・モデリング制約条件を追加するメカニズムを使用して、SATベースのBMCを強化する。詳しくは、本発明は、ブーリアン制約条件のハイブリッド表現を使用する、すなわち、元の回路問題を表すために2入力のOR/INVERTERゲートを、学習した制約条件を表すためにCNFを使用する、ハイブリッドSATソルバーを利用する。都合の良いことに、本発明は、効率的なブーリアン制約条件伝搬は、2入力ユニフォーム・ゲート表現に高速の表検索方式を使用して実現できることを決定し、かつ示したので、本発明はメモリ制約条件を効率的にモデル化するためにハイブリッド表現の使用を拡張する、具体的にはハイブリッド表現を2入力ユニフォーム・ゲート(マルチ入力のゲートの代わりに)表現のみと比較する。
メモリの順方向セマンティクスに対して数式(1)のように制約条件を付け加えると、セレクション演算子ITEにもとづく従来の方法を使用することができる。具体的にいうと、ブール変数
Figure 0004629682
Figure 0004629682
と定義される有効な読み取り信号を表すとすれば、深度kにおけるデータ読み取りは、次式で与えられる。
Figure 0004629682
ここで、
Figure 0004629682
は、それを使用してすべてのメモリアドレスが初期化されるユニフォーム・データ値Iを表し、ITEは、3つのブール変数に適用される場合、
Figure 0004629682
として定義される。初期のメモリ値がすべてのアドレスにおいて等しくない場合、どのように処理すべきかは後に簡潔に説明する。
制約条件が上記のように付け加えられる場合、決定
Figure 0004629682
Figure 0004629682
を必然的に暗示するものではなく、同様に、決定手順、すなわち
Figure 0004629682
によって、他の組み合わせが無効であると確定される必要があることに注目されたい。したがって、読み取りと書き込みの組み合わせを排他的に収集するために、明示的な制約条件がを加えられる。詳しくは、一度SATソルバーにより選択された読み取りと書き込みの組み合わせを他の組み合わせと整合させることは、ただちに無効であることを意味する。
例えば、ブール変数
Figure 0004629682
が排他的有効読み取り信号を表し、ブール変数
Figure 0004629682
が中間の排他的信号を表すとすれば、両者は次式で定義される。
Figure 0004629682
ここで、数式(1)は次式で表される。
Figure 0004629682
ここで、
Figure 0004629682
は、ただちに
Figure 0004629682
を意味することに注目されたい。ここで、
Figure 0004629682
であり、
Figure 0004629682
である。
(メモリ・モデリング制約条件の効率的な表現)
前述のように、本発明は、数式(3)および(4)を簡潔に収集する制約条件を作るハイブリッド表現を有利に使用する。さらに、本発明によるハイブリッド表現は、次のようにさらなる効率化をもたらす。
1)本発明によるハイブリッド表現は、媒介変数がファンアウトしない構造、たとえばORツリー、を生成しない。大きな競合節を付加する状況で観察されたように、このような回路構造はBCP性能に不利な影響を与える。
2)本発明によるハイブリッド表現は、CNFベースのSATソルバーに否定的に影響を及ぼす不必要な2−リテラル節(プログラムのクローズ)を生成しない。
図6を参照すると、手順EMM_Constraints()の一部に含まれて、メモリ・モデリング制約条件の本発明による新規な付加の本発明による具体化例の擬似コードリストが示されている。図7には具体的には示さないが、図6に示す修正されたBMCアルゴリズムBMC2に示すように、この手順EMM_Constraints()は、すべてのアンローリングの後に呼び出される。
ここで図7に転じて、図7に示すように、手順EMM_Constraintsは、3つのサブ手順呼び出し、すなわち、Gen_Addr_Equal_Sig、Gen_Valid_Read_Sig、およびGen_Read_Data_Constraintsを使用して、すべての深度kにおいてメモリ・モデリング制約条件を生成する。次に、手順EMM_Constraintsは、これまでに累算された制約条件Cを返す。これらのサブ手順の次の詳細な説明で判るように、これらの制約条件は、メモリのセマンティクスを深度kに到るまで、安全に、かつ非常に効率的に収集する。
(Gen_Addr_Equal_Sig:アドレス比較信号の生成)
この手順において、mはアドレスのビット幅を表す。次に、アドレス比較は次のように実行される。すべてのアドレス対比較
Figure 0004629682
に対して、
Figure 0004629682
であるように、新しい変数
Figure 0004629682
および
Figure 0004629682
を導入する。次に、各iに対して次のCNF節を加える。
Figure 0004629682
最後に、
Figure 0004629682
Figure 0004629682
の間の関係を接続するために1つの節が加えられる。
Figure 0004629682
これらの節は、
Figure 0004629682
の場合にのみ、
Figure 0004629682
である関係を収集することに注目されたい。
あるいは、類似の同等関係を構造的に得るために、X−NOR
Figure 0004629682
ゲートのANDツリーを使用して、次のように、より従来の方法を使用することができる。
Figure 0004629682
容易に理解できるように、この表現は4m−1の2入力ORゲートを必要とし、これは12m−3の等価なCNF説(ゲートごとに3つの節)になる。都合の良いことに、際だって対照的に、本発明による新規な表現は、4m+1の節のみを必要とし、2−リテラル節を有しない。すべての深度kにおいて、(12m−3)kゲート節と比較して、本発明はアドレス比較のために単に(4m+1)k節のみを加える。
(Gen_Valid_Read_Sig : 排他的有効読み取り信号の生成)
上記の(3)のように排他的有効読み取り信号の表現において、本発明はCNF節の代わりに2入力ゲート表現を使用する。しかし、各媒介変数は他の信号に対してファンアウトを有するので、本発明は完全にそれらを除外することができない。本発明がCNF節を使用してそれらを表現すれば、本発明が避けようと努力する大量の2−リテラル節を導入するであろう。この表現は、すべての深度kに対して、3kの2入力ゲート(あるいは9kのゲート節)を加える。
(Gen_Read_Data_Constraints : 読み取りデータ信号の制約条件の生成)
構造にもとづいて、所与のkに対して、多くても1つの
Figure 0004629682
が知られている。この事実は、数式(4)における制約条件をCNF節として表すために使用される。したがって、nはデータ・バスのビット幅を表す。次に、次の節
Figure 0004629682
を加える。
Figure 0004629682
読み取り信号の妥当性を収集するために、次の節を加える。
Figure 0004629682
都合の良いことに、この表現はすべての深度kにおいて2n(k+1)+1の節のみを加える。一方、際だって対照的に、ゲートを使用して表現すれば、n(2k+1)のゲート、したがって、3n(2k+1)ゲート節を必要とするであろう。したがって、本発明によるハイブリッド表現は、すべての深度kにおいて、ゲート表現を使用する場合の(4m+2)k+n(2k+1)のゲートの加算と比較して、僅かに(2n+4m+1)k+2n+1の節と3kのゲートを加える。
(ITE表現との比較)
この時点で本発明による新規なハイブリッド方法を、ITE表現を有する表現と比較することは有用である。特に、すべての深度kにおいて、入れ子にされたITE表現を表すために本発明が2入力ゲートを使用すれば、アドレス比較のために(4m−1)kのゲート、ITE制御信号のためにkのゲート、ITE演算子の合計がnkである場合にITE演算子を実現するために3nkのゲートを本発明は必要とするであろう。したがって、発明は全体で4mk+3nkのゲートを必要とする。
際だって対照的に、代わりに本発明がすべての深度kにおいて入れ子にされたITEのためにハイブリッド表現を使用すれば、本発明は、アドレス比較のために(4m+1)kの節、ITE制御信号のためにkのゲート、ITE演算子の実現のために4nk+1の節を必要とするであろう。本発明は、次の節、
Figure 0004629682
を加える必要があることに注目されたい。
Figure 0004629682
ここで、
Figure 0004629682
である。本発明は新しい媒介変数
Figure 0004629682
を導入する必要があり、また読み取り信号の妥当性を収集するために節を加える必要があることにさらに注目されたい。総合して本発明は(4m+1+4n)k+1の節とkのゲートを利用する。
テーブル1を参照して、制約条件を表すために必要なゲートと節の数を要約して、テーブル1のA−Dにそれぞれ示す。当業者には容易に理解できるように、制約条件節の数は、分析深度kの増加と共に、2次関数的[特に強調]に増大する。
Figure 0004629682
A−Dの異なる場合の有意義な比較のために、各2入力ゲートに対して、3つの等価なCNF節を使用する。制約条件節の増加曲線を、n=32、m=12に対して図8に示す。ここで図8を参照して、本発明による新規なハイブリッド表現Dは、入れ子にされたITEのゲート表現(A)よりも3倍簡単であり、k= 50においては、入れ子にされたITEのハイブリッド表現(B)と比較して50%である。言い換えれば、BMCは、メモリが限定されたマシンでD表現を使用して、A−C表現と比較して、より深い検索をすることが可能であろう。さらに、本発明による新規な表現は、有効な読み取り信号の排他性を明示的に収集するので、実験で観察されるように、SATソルバーは非常に速い検索を行うことが可能である。
(複数のメモリ、読み取りおよび書き込みポートに対するEMM)
効率的なモデリングを深く探求する前に、複数の読み取りおよび書き込みポートが存在する状態のメモリ・セマンティクスをまず定義する。ここでデータ競合はないと想定する。言い換えれば、任意の所与のサイクルにおいて、ただ1つの書き込みポートを介してのみ、記憶場所は更新できる。(本発明による方法は、データ競合に対する検査にも容易に拡張することができる。)各メモリ・モジュールはそのポートを介してのみアクセスされるので、メモリ・モジュールは相互に独立していると考えることができる。下記の説明において、複数の読み取りポートと複数の書き込みポートを有する単一のメモリを最初に考える。
設計を深度kまでアンロールさせる(0から開始して)。
Figure 0004629682
は、時間フレームjにおいてポートpに対するメモリ・インタフェイス信号変数Xを表すとする。RおよびWは、それぞれ、所与のメモリに対する読み取りおよび書き込みポートの数とする。ブール変数
Figure 0004629682
は、
Figure 0004629682
と定義された、深度iにおける読み取りポートrと深度jにおける書き込みポートwのアドレス比較を表すとする。したがって、メモリの転送セマンティクスは次式で表現できる。
Figure 0004629682
言い換えれば、深度kおよび深度jにおいてアドレスが等しく、書き込みポートwに対して深度jにおいて書き込みイネーブルがアクティブであり、読み取りポートrに対して深度kにおいて読み取りイネーブルがアクティブであり、厳密に深度jと深度kの間のすべての深度に対してアドレス位置
Figure 0004629682
において何れの書き込みポートを介してもデータの書き込みが無ければ、深度kにおける読み取りポートrを介するデータ読み取りは、深度jにおける書き込みポートwを介するデータ書き込みに等しい。
ブール変数
Figure 0004629682
は、
Figure 0004629682
と定義されるとする。決定
Figure 0004629682
は、必然的に
Figure 0004629682
を暗示するものではなく、他の対も決定手順を介して同様に無効であると決定される必要がある。すなわち、
Figure 0004629682
である。単一の読み取り/書き込みポートの方法と同様に、SAT解決時間を改善するために、本発明は整合読み取り・書き込み対の排他性を収集するために明示的な制約条件を加える。ブール変数
Figure 0004629682
および
Figure 0004629682
は、それぞれ所与の読み取りポートrと書き込みポートwに対する排他的有効読み取り信号と媒介信号を表すとする。それらは次のように再帰的に定義される。
Figure 0004629682
複数の読み取りおよび書き込みポートに対する転送セマンティクスは、次式で表現できる。
Figure 0004629682
ここで、
Figure 0004629682
は、ただちに
Figure 0004629682
を意味することに注目されたい。ここで、
Figure 0004629682
または
Figure 0004629682
のいずれかであり、また、
Figure 0004629682
である。都合の良いことに、本発明は、メモリ・モデリング制約条件を手順EMM_Constraintsの一部として加えるために、ハイブリッド表現を使用する。手順EMM_Constraintsは、図2に示すように、すべてのアンローリングの後に呼び出される。DW=nおよびAW=mと仮定して、本発明は、EMM制約条件の大きさに所与の深度kにおける各読み取りポートに対して節およびゲートに換算して加える。
1.アドレス比較 : 本発明は、アドレス比較信号を表すために、(4・m+1)・k・WのCNF節を必要とする。
2.排他的な制約条件 : 本発明は、数式(4)の排他性制約条件を表すために、3・k・Wの2入力ゲートを必要とする。
3.読み取りデータ制約条件 : 本発明は、数式(5)の読み取りデータ制約条件を表すために、2・n・k・W+2・n+1のCNF節を必要とする。
合計して、本発明は、単一の読み取りポートとWの書き込みポートに対して、(4・m+2・n+1)・k・W+2・n+1の節と、3・k・Wのゲートを必要とする。Rの読み取りポートに対して、本発明は、((4・m+2・n+1)・k・W+2・n+1)・Rの節と、3・k・W・Rのゲートを必要とするであろう。制約条件の増加は、分析深度kについても2次関数的のままであり、単一の読み取り/書き込みポートを有する単一のメモリが必要とする制約条件のW・R倍であることに注目されたい。複数のメモリが存在する状態では、本発明は、複数のメモリのそれぞれに、これらのEMM制約条件を加える。
(メモリの不均一な初期化)
通常、メモリは一様に初期化されている。言い換えれば、パワー・オン・リセットに際して、メモリは、すべての記憶場所においてある同一の初期値に設定される。しかし、パワー・オン・リセット状態以外の任意の状態においてBMCが適用し得る半形式的検証方法では、メモリは一様な値を有しないことがある。このような不均一な初期値の取り扱いは、本発明が提案する枠組み内で容易に可能である。

例として、メモリが、p個の異なる初期値、すなわち、設計の所与の初期状態に対して、アドレス位置
Figure 0004629682
に格納された
Figure 0004629682
を格納していると仮定する。そのメモリ状態に如何にして達したかは、その状態に達するために少なくとも1つの書き込みシーケンスが存在することを示すことができる限り、重要ではないことに注目されたい。
十分理解できるように、このような書き込みシーケンスは、次のように作成することができる:t=−pにおいて、すべての記憶場所は
Figure 0004629682
に初期化されている。したがって、アドレス位置
Figure 0004629682
におけるデータ値
Figure 0004629682
の書き込むt=−p+iにて、
Figure 0004629682
の書き込みサイクルが発行される。そして、これらの書き込みサイクルを収集するために、さらにp−1個の項を数式(4)に加える必要がある。
p=2に対して、これを例示する。メモリ・アレイの上半分の位置、すなわち、
Figure 0004629682
は初期値2を有し、下半分のアドレス位置、すなわち、
Figure 0004629682
は初期値1を有すると、仮定する。本発明では、次の通りに書き込みシーケンスを作成する。:t=−2において、すべてのアドレス位置は値1を有する。すなわち、
Figure 0004629682
である。また、t=−lにおいて、値2が書き込まれた。すなわち、
Figure 0004629682
である。ここで、数式(4)にさらに1項を加える必要がある。すなわち、
Figure 0004629682
である。
(任意の初期メモリ状態)
任意の初期状態を有するメモリをモデル化するために、本発明は、すべての時間フレームにおいて、新しい記号変数を導入する。設計の(k−1)深度分析に対して、単一の読み取りポートから多くてもk個の異なるメモリ読み取りアクセスが存在しうることに注意を払われたい。その中で多くてもk個のアクセスが書き込まれていない記憶位置であり得る。したがって、全体では、分析深度k−1において各読み取りポートに対して、異なるデータ・ワードに対して、k個の記号変数を導入する必要がある。しかし、これらの変数は完全に独立ではない。単に新しい変数を導入することは、検証モデルに余分な行動を持ち込む。したがって、メモリの任意の初期状態を正確にモデル化する制約条件の十分な一揃いを確認する必要がある。
ここで、
Figure 0004629682
および
Figure 0004629682
は、それぞれ読み取りポートpおよびqに対して、深度iおよびjにおいて導入された新しいデータ・ワードを表すとする。
Figure 0004629682
および
Figure 0004629682
は、ポートpおよびqに対応する読み取りアドレスであるとする。(pおよびqが異なっている必要はない)。
Figure 0004629682
(および
Figure 0004629682
)は、アドレス位置
Figure 0004629682
(および
Figure 0004629682
)において、深度i(およびj)に到るまで書き込みが発生していない状態を表すとする。したがって、それぞれ深度iおよびjにおけるポートpおよびqからのデータ読み取りは、次式により表現することができる。
Figure 0004629682
読み取りアドレス
Figure 0004629682
および
Figure 0004629682
が等しければ、
Figure 0004629682
および
Figure 0004629682
も等しくあるべきことに、注目されたい。前述のものを収集するために、次の制約条件を加える。
Figure 0004629682
(k−1)深度分析におけるR読み取りポートに対して、k・R・(R−1)のこのような制約条件を加える必要がある。本発明は、手順EMM_constraints内の別のサブ手順の呼出しの中でハイブリッド表現を使用して、これらの制約条件を加える。BMC1(図1、行6)内のプルーフステップは、メモリの任意の初期状態の正しいモデル化を必要とすることに注目されたい。数式(6)のようにメモリ制約条件の新しい1組を使用して、EMM制約条件を有するBMCのプルーフステップを本発明は強化する。修正されたアルゴリズム(BMC−3)を図xx3xxに示す。((発明者自分自身に対する注。この図を挿入し、正確に番号を付す必要がある。))(さしあたり行11−12を無視されたい)。これらの制約条件を付加せずに、安全性の正当性を示すことは不可能であることを後に示す。
(証明ベースの抽象化を使用するEMM)
前述のように、複数のメモリと複数のポートを有するSoCに対して、EMMは、検証モデルの大きさを大幅に減少することができる。しかし、所与の安全性の正当性を検査するために、本発明は、すべてのメモリ・モジュールまたはポートを必要としないこともある。さらにモデルを縮小するために、本発明は、無関係のメモリ・モジュールあるいはポートを完全に除外することができる。この場合、無関係のメモリ・モジュールまたはポートに対して、本発明はメモリ・モデリング制約条件を加える必要がなく、したがって、BMCの複雑さをさらに減少させる。
無関係のメモリ・モジュールとポートを自動的に識別するために、本発明はEMM制約条件をPBAと組み合わせる技術を提案する。これは、(メイン・モジュールから)非メモリのロジックを減少させるだけでなく、さらにBMC分析の所与の有界な深度に到るまで正当性をもたらすために必要とされないメモリ・モジュールおよびポートを識別することができる。PBAとEMM制約条件を使用する総合的なBMCアルゴリズム(BMC3)を、図9の行11−12に示す。
所与の深度iに対する任意のメモリ・モジュールについての性質の依存は、そのメモリ・モジュールに対する制御論理(メモリ・インタフェイス信号を駆動するロジック)に対応するラッチが1組のLRiの中にあるか否かを調べることにより、容易に判定される。このようなラッチが1組のLRiの中に存在しなければ、そのメモリ・モジュールに対してはEMMモデリング制約条件を加えない。言い換えれば、そのメモリ・モジュールを完全に除外する。本発明は、各メモリポートに対して同様の抽象化を行う。次の章で説明する実験で観察されるように、これは問題の大きさを縮小し、性能を改善する。
(事例研究)
図10に注目して、図11に示すようなランダム・アクセス・メモリ(RAM)を使用するスタックの代表的な具体化例(VerilogHDLで)を使用して本発明による新規な方法を説明する。理解を容易にするために、メモリ・インタフェイス信号の表記は、前の説明と同じものを使用する。図11を特に参照すると、行6−18はRAMの具体化例を示し、行22−41はスタックの具体化例を示す。メモリを明示的にモデル化すれば、130Kの状態ビットを必要とすることに注目されたい。明らかに、このようなモデリングは、SATベースのBMCを非実用的にするであろう。しかし、再帰的なプログラムを処理するためには、同じ規模の有限に大きいスタックを必要とするであろう。
本発明による方法によれば、まず行6−18と行40を除外し、すべてのメモリ・インタフェイス信号をスタックに対する入力および出力として宣言する。次に、図6に示すように、結果として生ずる取り除かれたスタック上で、改良されたBMC2アルゴリズムを実行する。次の章において、いくつかのソフトウェアおよびハードウェア設計についての実験結果を説明する。
(実験)
実験のために、図10に示す公知の4つの再帰的なソフトウェア・プログラムを使用した。1つの設計は埋め込みスタックを有し、1つの設計は埋め込みRAMを有する。これらの設計のそれぞれに、全部のメモリのモデル化を絶対必要とする安全性を選択した。すなわち、設計からメモリを完全に除去することは簡単にはできない。さらに、図11で説明したように、スタック・モデルを使用するVerilogHDLを使用して、ソフトウェア・プログラムのそれぞれを等価なハードウェア・モデルに変換した。ソフトウェア設計のそれぞれに対して、ここで、簡単な説明と選択された性質を紹介する。
(フィボナッチ(fib,fib−c))
再帰的な具体化例を有するフィボナッチ関数を、図10の行3−7に示す。キャッシュを使用する同じプログラムの最適化された具体化例を、行10−19に示す。nの所与の値に対して、これらの機能は対応するフィボナッチ数を返す。非自明な状態空間検索問題を生成するために、無効にされた安全性を説明するために逆関数を使用する、すなわち、一定の値のフィボナッチ数を与えると、対応するnが存在するか?
(3n+1(3nプラス1))
これは公知の未解決の3n+1問題である。ソフトウェア表現を、図10の行24−31に示す。nの所与の値に対して、広域変数周期は、プログラムを終了するために必要とされる再帰呼出しの数を維持する。非自明な状態空間検索問題を生成するために、無効にされた安全性を説明するために逆関数を使用する、すなわち、一定の値の周期を与えると、nの値が存在するか?
(「ハノイのタワー」(TOH))
「ハノイのタワー」アルゴリズムを、図10の行35−40に示す。スタッキング要素の数nを仮定すると、再帰的なアルゴリズムは、補助aを使用してソースsからデスティネーションdまで、すべての要素を転送する正当な移動を見出す。広域変数度数は、必要とされる移動の数を維持する。上記と同様に、非自明な状態空間検索問題を生成するために、無効にされた安全性を説明するために逆関数を使用する、すなわち、一定の値の度数を与えると、対応するnが存在するか?
実験は、4Gbの物理的メモリを有するデュアルのインテル2.8ギガヘルツXeonプロセッサを有するワークステーションで、レッド・ハット・リナックス7.2を実行し、各BMCランに対して3時間の時間制限を使用して、行われた。埋込みメモリを処理するための強化したSATベースのBMCの性能を、明示的なメモリ・モデリングおよび他のスタイルと比較した。さらに、所与の性質と設計に対して、メモリ・サイズを増加して、性能を比較した。
上述のように選択したいくつかの性質を有するソフトウェア・プログラムのハードウェア・モデルについて、第1の1組の実験を行った。性質のそれぞれは非自明なウイットネスを有し、テーブル2〜5に検索複雑さの増加順に記載されている。各モデルには固定したメモリ・サイズを使用した。カウンタ用例を有しないと想定される安全性を有する1つの工業用ハードウェア設計を使用した。これらの性質に対して、メモリ・モデリング・スタイルの性能とメモリ利用度比較を示す、すなわち、明示的なメモリ・モデリング、混成の排他的選択基準Dを使用するメモリ・モデリング、および、混成の入れ子にしたITEBを使用するメモリ・モデリング、をテーブル2〜5に示す。
Figure 0004629682
ここで、テーブル2aとテーブル2bを同時に参照すると、フィボナッチ・モデルに対する比較結果(テーブル2a)と、その最適化された具体化例に対する結果(テーブル2b)を示す。これらのモデルに対して、アドレス幅AW=12とデータ幅DW=32が使用されたことに注目されたい。
Figure 0004629682
Figure 0004629682
3n+1のモデルに対する比較結果をテーブル3に示す。テーブル3の中では、AW=12およびDW=2を使用した。テーブル4には、ハノイのタワー・モデルに対する比較結果を示す。このモードに対しては、AW=12およびDW=22を使用した。最後に、テーブル5において、性質がリソース限界を超えない範囲で、さまざまな媒介分析深度に対して、所与の安全性Sを有する工業用ハードウェア設計に対する結果を比較する。このモデルは、AW=12およびDW=12である。
Figure 0004629682
テーブル2〜5のすべてに関して、第1の列は増加する複雑さの性質を示し、第2の列はウイットネス深度を示し、(テーブル5では媒介分析深度を示す)第3の列から第7の列は性能の数字を示し、第8の列から第12の列はメモリ利用度の数字を示す。
詳しくは、性能の列−第3列から第5列−は、それぞれ、明示的なメモリ・モデリング(P1)、入れ子にされたITEを使用する(P2)、および排他的選択基準を使用する(P3)に対するBMC検索時間(秒)を示す。第6列から第7列は、それぞれ、明示的なメモリ・モデリングおよび入れ子にされたITEに対して、排他的選択基準を使用した速度向上(比率)を示す。メモリ利用度の列−第8列から第10列−は、それぞれ、明示的なメモリ・モデリング(M1)、入れ子にされたITEを使用(M2)、および排他的選択基準を使用(M3)、により使用したメモリ(Mb)を示す。最後に、第11列から第12列は、それぞれ、明示的なメモリ・モデリングに対して排他的選択基準、および入れ子にされたITEを使用したメモリ使用の削減(比率)を示す。
Figure 0004629682
テーブル2〜5の第6列の性能の数字を観察すると、本発明による方法は、明示的なメモリ・モデリングと比較して、BMCの性能を1桁ないし2桁増加させることが判る。同様に、テーブル2〜5の第11列に示すように、2つの方法の間には1桁ないし2桁のメモリ利用度の低減がある。さらに、第7列および第12列に示すように、排他的選択基準を使用する本発明によるモデリング・スタイルは、入れ子にされたITEより良い。有利なことに、30−40%の平均性能改善と、20−30%のメモリ利用度の低減が観察され、より高い分析深度においては、さらに顕著である。注目すべきことに、テーブル2bおよびテーブル5の最後の行で、入れ子にされたITEはタイムアウトするが、本発明による方法はタイム・リミット内に分析を完了する。
実験の第2の1組において、本発明は、性質D14およびモデル3n+1に対して異なるメモリ・サイズを使用した。さらに、テーブル6の第2列に示すように、アドレス・バス幅AWを4ビットから14ビットまで変化させて、3つの方法の性能とメモリ利用度を比較した。テーブル6の残りの列は、テーブル2〜5と同じ情報を与える。
第6列および第10列に示すように、性能改善とメモリ使用の低減は、メモリ・サイズの増加と共にさらに顕著−約2桁−である。さらに、本発明による方法は、入れ子にされたITEに対して、平均50%の性能改善と20%のメモリ使用の低減を示す。
Figure 0004629682
(追加の実験)
提案されたEMM技術は、試作品検証プラットフォームに実現された。試作品検証プラットフォームは、SATベースのBMCおよびBDDベースのモデル検証に対する標準の検証技術を含んでいる。複数の読み取りおよび書き込みポートを持つ埋込みメモリ・モジュールを有する大きな産業用設計とソフトウェア・プログラムから成るいくつかの事例研究についての経験を報告する。2つの事例研究が、多くの到達可能性を有する産業用設計に対応する。他の事例研究は、アルゴリズムの妥当性を検証する性質を有する分類アルゴリズムを含んでいる。性質の各々に対して、埋込みメモリのモデル化が必要であり、事例研究は本発明によるそれぞれに異なる貢献の利用法を強調するように選ばれた。本発明による方法の有効性を示すために、本発明による方法(EMMと表示する)を、明示的なメモリ・モデリング(明示的なモデリングと表示する)と比較する。実験は、レッド・ハット・リナックス7.2を実行する、4GBを有する2.8ギガヘルツのXeonプロセッサを装備したワークステーションで行われた。
急速ソートについての事例研究 : この事例研究は、複数のメモリに対するEMM、任意の初期状態をモデル化するEMM、および無関係のメモリ・モジュールを識別するためのPBAを有するEMMを使用する。急速ソート・アルゴリズムは、VerilogHDL(ハードウェア設計言語)を使用して、実行される。このアルゴリズムは、最初に配列の左のパーティションに、次に配列の右のパーティションに再帰的に呼び出される。(注、ピポットが配列を左右のパーティションに分割する)。配列は、1つの読み取りポートと1つの書き込みポートを有するAW=10、DW=32のメモリ・モジュールとして実行された。スタックも、(再帰的な関数呼出しのために)1つの読み取りポートと1つの書き込みポートを有するAW=10、DW=24のメモリ・モジュールとして実行された。設計は、200のラッチ(メモリ・レジスタを除く)、56の入力、および〜9Kの2入力ゲートを有する。2つの性質が選択された。a)P1:分類された配列(昇順に)の第1の要素は、第2の要素より大きくはなり得ない。b)P2:再帰呼出しからの戻りの後に、プログラム・カウンタは、右のパーティションの再帰呼出しの次に進むべきであり、あるいは漸化式スタックの親に戻るべきである。配列は、任意の値から開始することが可能である。このことは、性質の正当性を示すために、任意の初期メモリ状態(数式(6))の正確な取り扱いを必要とする。
異なる配列の大きさNに対して、それぞれBMC−3とBMC−1における順方向帰納プルーフ・チェックを使用して、EMMおよび明示的モデリング方法の性能を比較した。各ランに対して、3時間のタイムリミットを用いた。結果をテーブル7に示す。列1は、異なる配列の大きさNを示す。列2は、性質を示す。列3は、順方向プルーフの直径を示す。列4−5および列6−7は、それぞれ、EMMおよび明示的なモデリングにより使用されたパフォーマンス・タイムおよびスペースを示す。EMMを使用すれば所与のタイム・リミット内ですべての性質を検証することが可能であったが、一方明示的なモデリングはタイムアウトすることに注目されたい。
Figure 0004629682
性質P1は配列とスタックの両方に依存するが、性質P2は正当性に対してスタックのみに依存することに注目されたい。言い換えれば、P2に対しては、配列の内容はまったく問題とすべきではない。本発明はこれを検証するためにPBA技術を使用した。
性質P2に対して、EMMの性能を、BMC−3を使用してPBAと比較し、BMC−1を使用して明示的なモデリングのPBAのそれと比較した。安定した1組のLRを得るために、安定性深度10を使用した。テーブル8に結果を示す。
列1は異なる配列の大きさNを示し、列2−5はEMMに対する性能の数字を示す。具体的にいうと、列2はPBAを有するEMMを使用する縮小モデルの大きさにおけるラッチの数を示す。括弧内の値は、ラッチの元の数を示す。列3は、PBAに対して、安定したラッチ1組を生成するために要した時間(秒)を示す。列4−5は、順方向帰納プルーフを与えるために、EMMに対して必要とした時間とメモリを示す。列6−9は、明示的なモデリングに対するこれらの性能数を示す。
PBAの使用により、列2の縮小したモデルは、配列を表すメモリ・モジュールの制御論理から何のラッチも有しないことを強調することは興味深い。したがって、本発明は、EMMを使用して縮小したモデルに対してBMC分析を行う間に、配列メモリ・モジュールの全部を自動的に除外することが可能である。テーブル7およびテーブル8の列4−5の性質P2についてのEMMの性能値の比較から明らかなように、これは性能の著しい改善をもたらすことに注目されたい。さらに、縮小モデルについてさえも、本発明は明示的なモデリングに対して数桁の性能改善をしている。N=5に対して、明示的なモデリングの場合について、所与のタイム・リミット内では、安定したラッチ・モデルを生成することができなかったことに注目されたい。
Figure 0004629682
(産業用設計Iの事例研究)
この事例研究は、複数メモリ帰納プルーフを有するEMMに対するEMMの本発明による方法を利用する。産業用設計は、756のラッチ(メモリ・レジスタを除く)、28の入力、および〜15Kの2入力ゲートを有するローパス画像フィルタである。これは、共にアドレス幅AW=10、データ幅DW=8の2つのメモリ・モジュールを有する。各モジュールは、1つの書き込みポートと1つの読み取りポートを有し、メモリ状態は0に初期化されている。216の到達可能性がある。
(EMM)
約400秒で、50Mbを必要として、216の性質の中206に対して、ウイットネスを発見することが可能であった。すべてのウイットネスに対して最大の深度は51であった。残りの10の性質に対して、BMC−3を使用して帰納により、1秒以内に、6Mbを必要として、プルーフを得ることが可能であった。任意の初期メモリ状態をモデル化するための新しい変数の導入は、数式(6)の制約条件無しで、検証モデルで余分の行動を収集するが、プルーフに対して十分であったことに注目されたい。
(明示的なモデリング)
すべての206の性質に対して、ウイットネスを発見するために、20540秒(〜6時間)と912Mbを必要とした。残りの10の性質に対して、BMC−1を使用して帰納により、25秒で、50Mbを必要として、プルーフを得ることが可能であった。
(産業用設計IIの事例研究)
この事例研究は、複数のポートを有するメモリに対して、また帰納によるプルーフを支援することができる不変量を発見するために、EMMを利用する。この設計は、2400のラッチ(メモリ・レジスタを除く)、103の入力、および〜46Kの2入力ゲートを有する。これは、AW=12、DW=32の1つのメモリ・モジュールを有する。メモリ・モジュールは、1つの書き込みポートと3つの読み取りポートを有し、メモリ状態は0に初期化されている。8つの到達可能性がある。
メモリを完全に除外すれば、すべての性質に対して、深度7において、擬似的なウイットネスが発見された。したがって、メモリ・モジュールを含んでいる必要があった。EMMを使用すると、深度200に到るまで10秒以内に、これらの性質に対して、何等のウイットネスも発見できなかった。次に、すべての深度に対して、不到達可能性のプルーフを得ようと試みた。PBAと共にEMMを使用して、4−5分を必要として、約100のラッチにモデルを縮小することが可能であった。しかし、本発明によるBDDベースのモデル・チエッカーあるいはSATベースのBMCにとって、モデルは、プルーフを得るのに十分小さくはなかった。さらに、WE(書き込みイネーブル)制御信号は、深度200の順方向検索でアクティブではない状態のままであることに気付いた。そのことを観察して、メモリ状態が更新されない、すなわち、初期状態から変化しないと仮定した。これは、次のLTL性質を使用して表現される。
G(WE=OあるいはWD=O)
すなわち、常に、書き込みイネーブルがアクティブではない状態であるか、あるいは、書き込みデータ(WD)が0である。BMC−3を使用して、深度2において1秒以内に、逆方向帰納を使用して、上記の性質を証明することが可能であった。これを証明するために、BMC−1を使用する明示的なモデリングは、78秒を要する。
上記の不変量は、読み取られたデータが常に0であることを意味する。(潜在的に設計バグの恐れがある)。次に、メモリは除外するが、この制約条件を入力読み取りデータ信号に適用した。各性質に対して、20−30のラッチのみに設計をさらに縮小するために、PBAを使用した。(約1分を要する)次に、縮小モデルでは、BMC−1で順方向帰納プルーフを使用して、1秒以内に、各性質が到達不能であることを証明した。(本発明によるBDDベースのモデル・チエッカーは、これらの抽象モデルに対して、遷移関係を作ることさえ不可能であった。)
当然ながら、前述の事項は本発明による原理の単なる実例であり、さまざまな修正が本発明の範囲と技術思想から逸脱することなく当業者により行い得ることは、当業者により理解されるであろう。したがって、本発明は、本明細書に添付される特許請求の範囲によってのみ制限されるべきである。
本出願は、2004年1月22日出願の米国仮特許出願第60/538,526号による優先権を主張する。さらに、本出願は2002年5月30日に出願された「有限モデル検査のための効率的な方法」と題する米国特許出願第10/157,486号に関連し、そのすべての内容は参考文献として本明細書に含まれる。
埋込みメモリを有する設計の概念図である。 埋込みメモリを有するロールしない設計の概念図である。 DPLLスタイルSATソルバーの擬似コード・リストである。 安全性Pに対するSATベースのBMCの擬似コード・リストである。 メモリ・アクセス・タイミング図である。 効率的なメモリ・モデリングを有する改良されたSATベースのBMCの擬似コード・リストである。 メモリ制約条件の効率的なモデリングの擬似コードリストである。 制約条件節の増加の比較を示すグラフである。 PBAおよびEMM制約条件を有するBMCアルゴリズムの擬似コードリストである。 本発明者による実施例で使用された埋め込みスタックを有するソフトウェア・プログラムの擬似コードリストである。 RAMを使用するスタックの具体化例の擬似コードリストである。
符号の説明
100 ディジタル・システム
110 メモリモジュール
120 メインモジュール
200 設計

Claims (22)

  1. 1つまたは複数の埋込みメモリを有するメモリ・ビットの1部または全部が明示的にモデル化される必要がないような、前記1つまたは複数の埋込みメモリを有する電子的設計をモデル化するコンピュータにより実行されるモデリング方法であって、
    データ転送セマンティクスを保存している間に、前記メモリの1つまたは複数を前記設計から除外するステップと、
    前記データ転送セマンティクスと、効率的メモリ・モデリング(EMM)制約条件として任意の初期メモリ状態を保存するためのメモリ保存制約条件を、媒介変数がファンアウトしない構造を生成せず、CNFベースのSATソルバーに否定的に影響を及ぼす不必要な2−リテラル節を生成しない表現で収集するステップと、
    有界分析を使用して前記設計を検証するステップとを有するモデリング方法。
  2. 前記表現に排他性制約条件を付加する段階であって、有効な整合読み取りと書き込みの組み合わせが決定されるとき、前記排他性制約条件の結果として、他の組み合わせが直ちに無効であることを意味するように、前記表現に排他性制約条件を付加するステップをさらに有する請求項1に記載のモデリング方法。
  3. 前記収集するステップは、EMMに加えて、証明ベースの抽象化(PBA)を使用する請求項1に記載のモデリング方法。
  4. PBAに無関係のメモリと無関係のポートの使用によって、検証の間に前記対応するEMM制約条件が除外されることがあるように、自動的に決定するステップをさらに有する請求項3に記載のモデリング方法。
  5. 前記検証するステップの間に、任意の対応するEMM制約条件を除外するステップをさらに有する請求項4に記載のモデリング方法。
  6. 前記表現は、回路の定式化と節の定式化との両方を含むハイブリッド表現である請求項1に記載のモデリング方法。
  7. 前記検証するステップは、SATベースの有界分析を含む請求項1に記載のモデリング方法。
  8. 前記検証するステップは、SATベースの有界分析を含む請求項に2記載のモデリング方法。
  9. 前記検証するステップは、帰納によるプルーフを含む請求項1に記載のモデリング方法。
  10. 前記検証するステップは、帰納によるプルーフを含む請求項2に記載のモデリング方法。
  11. 前記検証するステップは、SATベースの帰納を含む請求項1に記載のモデリング方法。
  12. 前記検証するステップは、SATベースの帰納を含む請求項2に記載のモデリング方法。
  13. 前記検証するステップは、等価検証を含む請求項1に記載のモデリング方法。
  14. 前記検証するステップは、等価検証を含む請求項2に記載のモデリング方法。
  15. 1つまたは複数の埋込みメモリを有する電子的な設計をモデル化するコンピュータにより実行されるモデリング方法であって、前記モデル化は前記1つまたは複数の埋込みメモリを有するメモリ・ビットの1部または全部が明示的にモデル化される必要がないように実行され、
    データ転送セマンティクスを保存している間に、前記メモリの1つまたは複数を前記設計から除外するステップと、
    前記データ転送セマンティクスを、効率的メモリ・モデリング(EMM)制約条件として媒介変数がファンアウトしない構造を生成せず、CNFベースのSATソルバーに否定的に影響を及ぼす不必要な2−リテラル節を生成しない表現で収集するステップと、
    前記表現に排他性制約条件を付加するステップと、
    有効な整合読み取りと書き込みの組み合わせが決定されるとき、前記排他性制約条件の結果として、他の組み合わせが直ちに無効であることを意味するように、有限分析を使用して前記設計を検証するステップとを有するモデリング方法。
  16. 前記収集するステップの間のEMMに加えて、証明ベースの抽象化(PBA)を利用するステップをさらに有する請求項15に記載のモデリング方法。
  17. PBAに無関係のメモリと無関係のポートの使用によって、検証の間に前記対応するEMM制約条件が除外されることがあるように、自動的に決定するステップをさらに有する請求項16に記載のモデリング方法。
  18. 前記検証するステップの間に、任意の対応するEMM制約条件を除外するステップをさらに有する請求項17に記載のモデリング方法。
  19. 前記表現は、回路の定式化と節の定式化との両方を含むハイブリッド表現である請求項15に記載のモデリング方法。
  20. 前記表現は、回路の定式化と節の定式化との両方を含むハイブリッド表現である請求項18に記載のモデリング方法。
  21. 前記検証するステップは、SATベースの有限分析を含む請求項15に記載のモデリング方法。
  22. 前記検証するステップは、SATベースの有限分析を含む請求項18に記載のモデリング方法。
JP2006551362A 2004-01-22 2005-01-20 有限メモリ検査における埋込みメモリの効率的なモデリング方法 Expired - Fee Related JP4629682B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US53852604P 2004-01-22 2004-01-22
US11/037,920 US7386818B2 (en) 2004-01-22 2005-01-18 Efficient modeling of embedded memories in bounded memory checking
PCT/US2005/002176 WO2005072305A2 (en) 2004-01-22 2005-01-20 Efficient modeling of embedded memories in bounded memory checking

Publications (2)

Publication Number Publication Date
JP2007524165A JP2007524165A (ja) 2007-08-23
JP4629682B2 true JP4629682B2 (ja) 2011-02-09

Family

ID=34829732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006551362A Expired - Fee Related JP4629682B2 (ja) 2004-01-22 2005-01-20 有限メモリ検査における埋込みメモリの効率的なモデリング方法

Country Status (4)

Country Link
US (1) US7386818B2 (ja)
EP (1) EP1756739A4 (ja)
JP (1) JP4629682B2 (ja)
WO (1) WO2005072305A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290230B2 (en) * 2005-03-17 2007-10-30 Fujitsu Limited System and method for verifying a digital design using dynamic abstraction
US7788618B2 (en) * 2007-09-29 2010-08-31 International Business Machines Corporation Scalable dependent state element identification
US7441216B1 (en) * 2008-03-31 2008-10-21 International Business Machines Corporation Applying CNF simplification techniques for SAT-based abstraction refinement
US8001498B2 (en) * 2008-10-27 2011-08-16 Synopsys, Inc. Method and apparatus for memory abstraction and verification using same
US8181131B2 (en) 2010-04-30 2012-05-15 International Business Machines Corporation Enhanced analysis of array-based netlists via reparameterization
US8478574B2 (en) 2010-04-30 2013-07-02 International Business Machines Corporation Tracking array data contents across three-valued read and write operations
US8146034B2 (en) 2010-04-30 2012-03-27 International Business Machines Corporation Efficient Redundancy Identification, Redundancy Removal, and Sequential Equivalence Checking within Designs Including Memory Arrays.
US8566764B2 (en) 2010-04-30 2013-10-22 International Business Machines Corporation Enhanced analysis of array-based netlists via phase abstraction
US8336016B2 (en) 2010-05-07 2012-12-18 International Business Machines Corporation Eliminating, coalescing, or bypassing ports in memory array representations
US8307313B2 (en) 2010-05-07 2012-11-06 International Business Machines Corporation Minimizing memory array representations for enhanced synthesis and verification
US8291359B2 (en) * 2010-05-07 2012-10-16 International Business Machines Corporation Array concatenation in an integrated circuit design
US8473883B2 (en) 2011-08-03 2013-06-25 International Business Machines Corporation Abstraction for arrays in integrated circuit models
CN102663191B (zh) * 2012-04-09 2014-07-23 西安电子科技大学 基于sat的命题投影时序逻辑限界模型检测方法
CN102663190B (zh) * 2012-04-09 2014-07-23 西安电子科技大学 Pptl符号模型检测方法
US10839124B1 (en) * 2019-06-26 2020-11-17 Amazon Technologies, Inc. Interactive compilation of software to a hardware language to satisfy formal verification constraints
LU101294B1 (en) * 2019-07-03 2021-01-20 Onespin Solutions Gmbh Method of checking equivalence between a first design comprising a shift register logic srl chain and a second design
JPWO2022264414A1 (ja) * 2021-06-18 2022-12-22

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319782A (ja) * 1996-05-30 1997-12-12 Hitachi Ltd 論理装置の検証方法
JPH09325975A (ja) * 1996-06-04 1997-12-16 Hitachi Ltd 論理装置の検証方法
US6216258B1 (en) * 1998-03-27 2001-04-10 Xilinx, Inc. FPGA modules parameterized by expressions
US20040078674A1 (en) * 2001-04-04 2004-04-22 Bops, Inc. Methods and apparatus for generating functional test programs by traversing a finite state model of an instruction set architecture
US7711525B2 (en) * 2002-05-30 2010-05-04 Nec Corporation Efficient approaches for bounded model checking
US6944838B2 (en) * 2003-02-03 2005-09-13 Cadence Design Systems, Inc. Method and system for design verification using proof-partitioning
JP4418353B2 (ja) * 2003-11-20 2010-02-17 富士通株式会社 複数のエンジンを利用した回路検証

Also Published As

Publication number Publication date
US20060190864A1 (en) 2006-08-24
WO2005072305A3 (en) 2007-01-04
EP1756739A4 (en) 2008-03-12
EP1756739A2 (en) 2007-02-28
JP2007524165A (ja) 2007-08-23
US7386818B2 (en) 2008-06-10
WO2005072305A2 (en) 2005-08-11

Similar Documents

Publication Publication Date Title
JP4629682B2 (ja) 有限メモリ検査における埋込みメモリの効率的なモデリング方法
JP4000567B2 (ja) 効率的な有界モデル検査方法
Biere et al. Symbolic model checking without BDDs
Bloem et al. Efficient decision procedures for model checking of linear time logic properties
Mishchenko et al. FRAIGs: A unifying representation for logic synthesis and verification
US7305637B2 (en) Efficient SAT-based unbounded symbolic model checking
US6035107A (en) Method for performing functional comparison of combinational circuits
Ganai et al. SAT-based scalable formal verification solutions
US20040230407A1 (en) Iterative abstraction using SAT-based BMC with proof analysis
US20020053064A1 (en) Dynamic detection and removal of inactive clauses in sat with application in image computation
US9195634B2 (en) Optimizing constraint solving by rewriting at least one modulo constraint
Gupta et al. SAT-based verification methods and applications in hardware verification
Chauhan et al. Using SAT based image computation for reachability analysis
Ben-David et al. Model checking at IBM
Disch et al. Combinational equivalence checking using incremental SAT solving, output ordering, and resets
Alizadeh et al. Formal equivalence verification and debugging techniques with auto-correction mechanism for RTL designs
Ganai et al. Verification of embedded memory systems using efficient memory modeling
Ganai et al. Efficient modeling of embedded memories in bounded model checking
US7428712B1 (en) Design optimization using approximate reachability analysis
Isles et al. Computing reachable control states of systems modeled with uninterpreted functions and infinite memory
Clarke et al. Making predicate abstraction efficient: How to eliminate redundant predicates
Li et al. A satisfiability-based approach to abstraction refinement in model checking
EP1515251B1 (en) Efficient approaches for bounded model checking
Zaks et al. Bitwidth reduction via symbolic interval analysis for software model checking
German A theory of abstraction for arrays

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100610

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: 20101013

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4629682

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131119

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees