JPH11353357A - 再コンフュギュレ―ション可能なハ―ドウェアの評価装置及び評価方法 - Google Patents
再コンフュギュレ―ション可能なハ―ドウェアの評価装置及び評価方法Info
- Publication number
- JPH11353357A JPH11353357A JP11076687A JP7668799A JPH11353357A JP H11353357 A JPH11353357 A JP H11353357A JP 11076687 A JP11076687 A JP 11076687A JP 7668799 A JP7668799 A JP 7668799A JP H11353357 A JPH11353357 A JP H11353357A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- backtracking
- value
- leaf
- level
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
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)
- Complex Calculations (AREA)
Abstract
レーション可能なハードウェアを使って特定の入力問題
を解決する。 【解決手段】 順序づけられた複数の変数のそれぞれが
複数の状態装置のうち該当する1つを持っている。各状
態装置はそれぞれの変数のための含意回路を持ち、平行
に動作する。ある状態装置は、ハードウェアでデイビス
・パットナム方式を実行し、直接的及び遷移的含意を並
行にチェックすることによって、ソフトウェアを上回る
高性能を提供する。また別の状態装置は、並行含意チェ
ックを利用し、バックトラッキング時にGRASPタイプの
含意グラフを維持したり、あるいは検討したりする必要
を回避する新規非時系列的バックトラッキング方式を実
行する。新規非時系列的バックトラッキングはリーフ変
数としてブロッキング変数を設定し、リーフ変数の値の
みを変更するために提供されたが、バックトラッキング
変数の値とそのもの自体も変える可能性もある。
Description
可能性(SAT)問題を速く処理することによって自動テス
トパターン発生(ATPG)及び論理合成・検証を速めること
に関する。特に、本発明は、従来のソフトウェア的取り
組みよりももっと本質的にスピードアップ可能な(多く
の場合200倍)、SAT解決のためのコンフィギュレーショ
ン可能な演算処理方法を提供する。ブール関数式充足可
能性への取り組みは論理演算が集中しているので、SAT
式の部分を直接論理ゲートにマッピングし論理評価の際
に多数の並行処理計算を活用することによって、ハード
ウェア的取り組みが多大な効果を発揮できる。
は、ソフトウェア自体において、機能的に設定可能かつ
変更可能な集積回路として知られている。FPGA回路は周
知の製品化された技術であるので(例えば、IKOS シス
テムズ社製のVIRTUALOGIC SLI EMULATOR)、その詳細な
説明はここでは省略する。FPGA回路はコンフィギュレー
ション可能なハードウェアシステムに利用できる。つま
り、FPGA回路は、ソフトウェアによるプログラミングに
応じて機能的に変更可能なハードウェア装置を提供する
ことができる。
アシステムは様々な方法で利用されてきた。コンフィギ
ュレーション可能な演算処理は、従来同じデータを持ち
演算処理集約型のアプリケーションによく利用されてき
た。このため、従来のコンフィギュレーション可能な演
算処理用アプリケーションは、FPGA回路のプログラム可
能な論理が一般的に多数の並行処理データパスから成り
かつ制御がほとんど必要ないという点に特徴を持ってい
た。つまり、コンフィギュレーション可能な演算処理用
アプリケーションには単純な制御フローしかなかった。
する問題であり、1998年5月18日に出願され具体化され
た特許出願(特願平10−135138号)において、
ブールSATを解決するための初めてのコンフィギュレー
ション可能なハードウェアシステムが、同じ発明者達に
よって提案された。この初めてのSAT解決のためのコン
フィギュレーション可能なハードウェアシステムは、一
般的にデイビス・パットナム・アルゴリズムによるSAT
ソルバーの特徴を持っていた。第一次デイビス・パット
ナム・アルゴリズムが、時系列的なバックトラッキング
に備えて用意された。つまり、このアルゴリズムは一番
新しく割り当てられた変数へ後戻りする。
能なハードウェアを使ってSATを解決するために次の2
つの提案を参照した。
ケーションに関する国際研究集会・ M. Abramovici、D. Saab 再コンフィギュレーション可能なハードウェアに関する
充足可能性 1997年9月 第7回フィールド設定可能な論理及びアプリ
ケーションに関する国際研究集会 スヤマら(これ以降スヤマと称する)はデイビスパット
ナム方式でない彼ら独自のアルゴリズムを提案した。ス
ヤマのアルゴリズムでは、SAT式の各変数は常にある割
り当て値を持つ。スヤマのアルゴリズムでは、完全に定
義されたある値の組から別の完全に定義された値の組に
移行しながら進んでいく。スヤマ・アルゴリズムの発明
者らは余分な検索スペースを取り除くための方法を発明
したが、彼らの取り組みにおける参照回数は第一次デイ
ビス・パットナム方式よりも8倍も多いことを認めてい
る。さらに、スヤマ方式では、ハードウェアリソースを
集約させて、最高の計算機と複雑なルールチェッカーを
必要とする。
る)による上述の提案も、デイビス・パットナムSATア
ルゴリズムで実行されたものではなく、基本的には、再
コンフィギュレーション可能なハードウェアにおいて、
PODEMに基づくアルゴリズムで実行されるものである。P
ODEMに基づくアルゴリズムでは、その式において値を所
定の下位セットの変数に割り当てることによってCNF式
全体の満足のいく割当をみつけることができるものとす
る。この種のアルゴリズムに関するより詳しい情報につ
いては、有益な背景情報として参照された以下の文献を
参照のこと。
るアルゴリズム IEEE(電気電子学会) コンピュータ会報C30(3):215-222, 1981年3月
出力を充分に定義し、かつテストベクターを主出力で観
察されるように、主入力で利用しなければならず、ATPG
ドメインで生成されるSAT問題において、この技術は直
接的な応用性を持つ。このためAbramovici提案では直接
的には一般的CNFの公式を扱うことができない。
は、SAT決定ツリーの変数の数が減少するとしても、検
索中参照される回数は必ずしも減らない。デイビス・パ
ットナムの効率的データ構造における内部変数間の関係
を把握すると、PODEM上の参照回数を減らし、実行時間
をかなり減らすことがわかった。
下のようなハードウェア必要条件があげられる。すなわ
ち、故障用テストを生成するためには、(i) それぞれ元
の回路より数倍大きい、前方及び後方検索用回路に分け
ること、(ii) 2n入力、2n出力、及び3nビットレジスタ
ー付き複合制御回路を含むこと、但しnは主入力の数、
(iii) 幅がnで深さがnの大変大きいスタックを含むこ
と、(iv) 元の回路全体の2つのコピーを含むハードウ
ェアが必要となる。Abramovici提案の発明者達による
と、スタックのサイズは潜在的に縮小可能であると示し
てはいるが、そのような縮小はコード化及び復号化の回
路構成を著しく増加させる。従って、Abramovici提案
は、ハードウェアの必要条件が非常に多いという欠点が
ある。大きい回路を検査する場合、このことは現行のチ
ップ統合を弱めたり、論理エミュレーション限度を超え
たりする。このように、スタックとその他の制御構成に
加えて、2つの回路のコピーを保持するハードウェアの
コストはとても大きくなる。
ウェアはデイビス・パットナム・アルゴリズムに基づい
ている。デイビス・パットナム・アルゴリズムの最近の
ソフトウェア手段は、同じ基本的な流れを維持しなが
ら、様々な方法でそれを向上させてきた。それについて
もっと詳しく知るためには、各々有益な背景情報を参照
して具体化された以下の文献を参照のこと。
5ページ、1992年1月)・ S. Chakradhar, V. Agrawal, S. Rothweiler テスト生成のための推移的閉包アルゴリズム 集積回路及びシステムのコンピュータ支援設計に関する
IEEE会報、12(7):1015-1028, 1993年7月・ P. Stephan, R. Brayton, A. Sangiovanni-Vincentel
li 充足可能性を使った結合的テスト生成 バークレイ、カリフォルニア大学、電子工学・コンピュ
ータサイエンス部、1992年UCB/ERLメモM92/112・ J. Silva, K. Sakallah GRASP− 充足可能性のための新しい検索アルゴリズム CAD-96に関するIEEE ACM国際会議、 220ページから227
ページ、1996年11月 GRASPワークは、検索スペースをさらに節約するために
非時系列的バックトラッキング及び動的節の加法(dynam
ic claus addition)を利用するため、それの寄与すると
ころは顕著である。デイビス・パットナム・アルゴリズ
ムの向上に関する上述の文献は、ソフトウェア実現をめ
ざすものである。再コンフィギュレーション可能なハー
ドウェアにおいてもそのような向上を実現する必要があ
るが、従来の技術では、要求されるような複雑なフロー
制御はうまく達成できなかった。非時系列的なバックト
ラッキングに関する制御フローは非常に複雑である。発
明者の知る限りでは、スヤマ提案もAbramovici提案も実
際にはハードウェア・プラットフォーム上で実現され
ず、これまでシミュレーション結果のみ紹介されてき
た。
発明は、入力された検索問題を解くためのコンフィギュ
レーション可能な評価装置において、コンフュギュレー
ション命令を有するメモリーと、前記コンフィギュレー
ション命令に従ってコンフィギュレーション可能なハー
ドウェアシステムとを備え、前記コンフィギュレーショ
ン命令は、前記入力された検索問題の現在の問題に基づ
いて検索を実行するよう前記ハードウェアシステムをコ
ンフィギュレーションし、かつ、前記コンフィギュレー
ション命令は、前記入力された検索問題の各々につい
て、前記検索中に行なわれるバックトラッキングが、前
記ハードウェアシステムの制御下で非時系列的バックト
ラッキングを含むよう前記ハードウェアシステムをコン
フィギュレーションする前記コンフュギュレーション命
令とを備えることを特徴とする。
ン可能な評価装置は、前記入力された検索問題がブール
関数式充足可能性問題になり、かつ前記ブール関数式充
足可能性問題に対して、前記検索が前記非時系列的バッ
クトラッキングを使ったブール関数式SAT解決検索とな
るように、前記コンフィギュレーション命令が前記ハー
ドウェアシステムをコンフィギュレーションすることを
特徴とする。
ン可能な評価装置は、前記コンフィギュレーション命令
が前記ハードウェアシステムをコンフィギュレーション
して、ブロッキング変数をリーフ変数としてみなすため
の手段と、リーフ変数の値を変えるための手段と、リー
フ変数のレベルよりも高いレベルで第1のバックトラッ
キング変数を設定し変えるための手段と、第1のバック
トラッキング変数が論理的矛盾を生成する時、第1のバ
ックトラッキング変数のレベルよりも高いレベルで第2
のバックトラッキング変数を設定し変えるための手段と
を形成することを特徴とする。
ネットリストの非時系列的バックトラッキングのための
方法において、ブロッキング変数をリーフ変数としてみ
なし、リーフ変数の値を変え、第1のバックトラッキン
グ変数として、リーフ変数のレベルよりも高いレベルで
変数を設定し、かつ第1のバックトラッキング変数の値
を変え、リーフ変数の値と第1バックトラッキング変数
の値に基づいて論理的一貫性を求めてネットリストを評
価し、その評価が論理的矛盾を生じた時は、第2バック
トラッキング変数として、第1バックトラッキング変数
のレベルよりも高いレベルの変数のうち1つの異なる変
数を設定し、かつその異なるバックトラッキング変数の
値を変えることによって、バックトラッキング変数その
ものを変え、リーフ変数の値と第2バックトラッキング
変数の値に基づいて論理的一貫性を求めてネットリスト
を評価することを含むことを特徴とする。
発明は、各変数がそれぞれのレベルを持ち、該変数のセ
ットが論理値ネットリストを形成し、レベル毎に順序づ
けられたブール関数式変数のセットを積標準型で表現す
るための充足変数割当を決定するための、非時系列的バ
ックトラッキング方法において、 ブロッキング変数を
リーフ変数としてみなし、リーフ変数の値を変え、第1
のバックトラッキング変数として、リーフ変数のレベル
よりも高いレベルで変数の1つを設定し、かつ第1のバ
ックトラッキング変数の値を変え、リーフ変数の値と第
1バックトラッキング変数の値に基づいて論理的一貫性
を求めて論理値ネットリストを並行に評価し、論理的矛
盾を生じた評価に対しては、第2バックトラッキング変
数として、第1バックトラッキング変数のレベルよりも
高いレベルの変数のうち1つの異なる変数を設定し、か
つその異なるバックトラッキング変数の値を変えること
によって、バックトラッキング変数そのものを変え、リ
ーフ変数の値と第2バックトラッキング変数の値に基づ
いて論理的一貫性を求めて論理値ネットリストを並行に
評価することを含むことを特徴とする。
発明は、それぞれのレベルで順序づけられたブール関数
式変数のセットを積標準型で表現し、かつ論理値ネット
リストを形成するための充足変数割当を決定するため
の、非時系列的バックトラッキング方法において、(a)
リーフ変数に関して、リーフ変数値のみを変えるステッ
プで、前記リーフ変数値をブロッキング変数に基づいて
決め、(b) バックトラッキング変数に関して、バックト
ラッキング変数そのものとバックトラッキング変数値を
変えるステップで、前記バックトラッキング変数が前記
リーフ変数のレベルよりも高いレベルを持ち、(c) 前記
リーフ変数値と前記バックトラッキング変数値及び前記
バックトラッキング変数そのものに基づいて論理的一貫
性を求めて前記論理値ネットリストを、平行して評価す
ることを含むことを特徴とする。
ッキング方法は、前記評価のステップがさらに、順序づ
けられた複数の状態装置を備え、各状態装置がブール関
数式変数の1つに相当しそれらの間で個別に順序づけら
れるステップと、前記複数の状態装置の各々に関して、
含意回路を備えるステップと、各含意回路の出力を結合
して、前記論理値ネットリストが論理的に一貫性がない
ことを示すグローバルな矛盾信号を出力するステップと
を含むことを特徴とする。 請求項8の本発明の非時系
列的バックトラッキング方法は、前記結合ステップがさ
らに、前記論理値ネットリストのすべての遷移的含意が
決定されたかどうかを示すグローバル変更信号を提供す
ることを含むことを特徴とする。
発明は、それぞれのレベルで順序づけられたブール関数
式変数のセットを積標準型で表現し、かつ論理値ネット
リストを形成するための充足変数割当を決定するのに用
いられるコンピュータシステムにおいて、プロセッサー
と、メモリとを備え、そのメモリがコンピュータシステ
ムに(a) リーフ変数に関して、リーフ変数値のみを変え
るステップで、前記リーフ変数値をブロッキング変数に
基づいて決め、(b) バックトラッキング変数に関して、
バックトラッキング変数そのものとバックトラッキング
変数値を変えるステップで、前記バックトラッキング変
数が前記リーフ変数のレベルよりも高いレベルを持ち、
(c) 前記リーフ変数値、前記バックトラッキング変数値
及び前記バックトラッキング変数そのものに基づいて論
理的一貫性を求めて前記論理値ネットリストを、平行し
て評価するステップとを実行させるために用いられるソ
フトウェア命令を含むことを特徴とする。
発明は、それぞれのレベルで順序づけられたブール関数
式変数のセットを積標準型で表現し、かつ論理値ネット
リストを形成するための充足変数割当を、コンピュータ
に決定させるためのコンピュータにて読み取り可能なプ
ログラムを記録した記録媒体において、コンピュータに
所定の動作を実行させるためのソフトウェア命令と、ソ
フトウェア命令を提供するコンピュータ読み取り可能な
媒体とを備え、所定の動作が、(a) リーフ変数に関し
て、リーフ変数値のみを変えるステップで、前記リーフ
変数値がブロッキング変数に基づいて決められ、(b) バ
ックトラッキング変数に関して、バックトラッキング変
数そのものとバックトラッキング変数値を変えるステッ
プで、前記バックトラッキング変数が前記リーフ変数の
レベルよりも高いレベルを持ち、(c) 前記リーフ変数
値、前記バックトラッキング変数値及び前記バックトラ
ッキング変数そのものに基づいて論理的一貫性を求めて
前記論理値ネットリストを、平行して評価するステップ
とを含むことを特徴とする。
それぞれの問題のためのテンプレート駆動のハードウェ
ア設計を実行することによって、ますます拡大している
FPGA回路の統合レベルと再コンフィグレーション性を積
極的に活用する、入力特定コンフィギュレーション可能
ハードウェア・アプリケーションの部類に属す。
ソルバーがある。従来のコンフィギュレーション可能な
演算処理アプリケーションと本発明による方法との差を
強調するために、コンフィギュレーション可能な演算処
理のSAT解決アプリケーションを選んだ。特に、従来の
コンフィギュレーション可能な演算処理が、同一データ
を有し、多くの演算処理を要するアプリケーションに利
用されていたのに対し、SAT問題を解くことは、多くの
検索を要するアプリケーションに利用されている。従来
のコンフィギュレーション可能な演算処理用アプリケー
ションは、概して多数の並行処理データパスとわずかな
制御から成るプログラム可能な論理を使って、多くの演
算処理を行なってきた。このように、本発明の実施例と
しての、具体例のSATソルバーは、複雑な制御フローの
アルゴリズムに対して、コンフィギュレーション可能な
演算処理を使う方法を示している。本実施例が、再コン
フィギュレーション可能なハードウェアにおいて、複雑
な制御フローを実行するという、より広範囲の発明の一
例にすぎないことを考慮されたい。
アプリケーションにおいて使う従来の試みは、かなり単
純なデータ中心の収縮設計で実行されてきた。本発明は
複雑な制御構造の実行に備えて提供された。コンフィギ
ュレーション可能な演算処理によりこれまで実行されて
きた検索アルゴリズムが、概して単純な信号処理パイプ
ラインであったのに対して、本発明では、ツリー型検索
アルゴリズムが、ソフトウェアSATソルバーで見られる
のと類似の非時系列的バックトラッキングのハードウェ
ア版を使って、いかにして実行されるかを説明してい
る。このためには、バックトラッキングのステップを管
理する複雑な制御構造が必要になる。
な別の理由として、どの検索戦略も相当量のビットレベ
ルの論理演算を駆使することがあげられる。こうした状
況故、プログラム可能な論理によって提供されるビット
レベルの論理並行処理の開発と演算の加速が促進され
る。
なハードウェア・アプリケーションは、特定な問題に基
づく演算を加速するためにコンフィギュレーション可能
なハードウェア(例えばFPGA回路)を利用することを意
味している。つまり、一般的解法のためのテンプレート
設計から始まって、本発明は、解決すべき特殊SAT公式
にいたるまでのアクセラレーター・デザインの特殊化に
備える。このように、ハードウェアは解決すべき特別な
問題(つまり、「入力」)を解くよう形成されている。ハ
ードウェア・コンフィギュレーションが入力、つまり問
題に合うように調整されているので、ハードウェアがよ
り一般的に形成されている状況よりもさらにもっと大き
い利点が生ずる。
に問題を検索するのに応用されるような新規の非時系列
的方法、特にSAT問題に適用されるような非時系列的方
法、コンフィギュレーション可能なハードウェアを有す
るコンピュータシステムで具体化されるような非時系列
的方法、同じくコンフィギュレーション可能なハードウ
ェアを持たないコンピュータシステムで具体化されるよ
うな方法、コンピュータ使用可能媒体上のソフトウェア
命令で具体化されるような非時系列的方法などがある。
論理証明やタイミング分析のように、集積回路のコンピ
ュータ支援設計における多くのアプリケーションにとっ
て、よく知られた制約的充足性の問題である。ブールの
公式をとってみると、その目的は、(a) その式が真と評
価されるように、変数への0か1かの割当を見つける
か、(b) そのような割当が存在しないように設定するか
のいずれかである。
で表わされ、和積形とも呼ばれている。いずれのブール
の公式もCNFで表現される。この形では、CNFの和項
(節)は単一リテラルの和で、リテラルは変数かその否
定である。n個の節はn個のリテラルのある節を意味し
ている。例えば、 は3個の節である。公式全体が1の数になるためには、
各節が、1の数になるよう、満たされなければならな
い。
れば(部分的割当)、いくつかの節を満たすことができ、
その他は未定のままにされる。例えば、Vi=1は を満たし、一方、Vi=0は節を未定にする。未定の節が
その中に1つだけまだ割り当てられていないリテラルを
持つ場合、その節を満たすためには当該リテラルは1に
しなければならない。そのような場合、該当する変数は
その値に含意されると言われる。例えば、部分的割当Vi
=0、Vk=0はVj=0を含意する。含意されない変数は、
自由変数とみなされる。ある変数に含意される値が、以
前にその変数に含意された値または割り当てられた値と
違う場合には、対立または矛盾が生じる。対立を検出す
ると、該当する部分的割当がどんな有効な解の一部にも
なり得ないことを意味する。
るようにデイビス・パットナム・アルゴリズムに基づ
く。この論題に関する有益な背景情報としては、以下の
論文を参照されたい。M. Davis とH. Putnamによる「量
子化論のための演算処理手順(A Computing Procedure
for Quantification Theory)」、ACM ジャーナル 1960
年 7:201-215。第一次アルゴリズムは空の部分的割当か
ら始まる。それは0か1の値を一度に1つの自由変数に
割り当てることによって行なわれる。各割当後、アルゴ
リズムは他の変数に関してその割当の直接的及び遷移的
含意を決定する。含意の手続きの間、矛盾を検出しなか
ったならば、そのアルゴリズムは次の自由変数を取り上
げ、その手順を繰り返す。そうでない場合には、一番新
しく割り当てられ、1つの値だけがこれまでに試された
ことのある変数を補足することによって、そのアルゴリ
ズムは新たな部分的割当を試みる。このステップをバッ
クトラッキングという。自由変数が利用できず、かつ矛
盾に遭遇しなかった場合(すべての節が満たされ、解が
見つかったことを意味している)、または可能な割当が
すべて無くなった場合、アルゴリズムは終わりになる。
解が存在する場合は、その解を見つけることでアルゴリ
ズムが完了する。
スを取り除くのに非常に重要である。なぜなら、(1)
そうすることで、矛盾した部分的割当に相当する検索ス
ペースの全領域をアルゴリズムでスキップすることがで
きるし、(2)すべての含意された変数は検索すべき自
由変数より1つ少ない自由変数に相当しているからであ
る。新たに割り当てられた変数、または含意された変数
を含む各節を、新たな含意が検出されなくなるまで過程
を繰り返しながら、引き続き走査して更新するので、残
念ながら、ソフトウェアにおいて含意を検出すること
は、大変時間がかかる。
理が可能でかつ基本論理ゲートにマッピングが可能であ
る。発明者のハードウェア全体のアーキテクチャーがこ
の並行処理を利用して設計されている。以下に、公式指
定の方法で再コンフィギュレーション可能なハードウェ
アにデイビス・パットナム・アルゴリズムによりマッピ
ングする本発明者たちの方法を詳しく述べる。
トナム・アルゴリズム ハードウェア構成 ソフトウェアに類似した、本発明者たちによるデイビス
・パットナム・アルゴリズムのハードウェア的方法は、
(i) 含意回路と、(ii) 検索スペースのバックトラッキ
ングに基づく探索を管理するための状態装置との2つの
部分から成る。SAT式を取り上げてみると、どちらのハ
ードウェア・モジュールも自動的に発生する。
たのは、本発明者たちが含意回路を利用したことに起因
する。ソフトウェアと違って、この回路は新たに割り当
てられた、または新たな含意されたすべての変数の直接
的含意を全部1クロックサイクルで見つける。従って、
新たな変数割当のすべての遷移的含意を、ソフトウェア
によって要求されたクロックサイクルの何分の1かで決
定することができる。
路を持っている。
おける各変数の状態は、そのリテラルが取る値により符
号化される。変数vとして、そのリテラルの組 が値(0、0)をもつと、変数vは、含意による割当値も
割当による割当値も持たず、自由である。もしそれが値
(1、0)か(0、1)を持つ場合には、変数vはそれ
ぞれ値1か0を持つものと理解される。最後に、 が値(1、1)をとる場合、変数vは値1と0を同時には
取り得ないので、矛盾が生じる。
値を決定することである。あるリテラルは、それが1に
含意されるか、あるいは1に割り当てられるかのいずれ
かの場合には、1として評価される。このため、回路に
おいては、各リテラルの値は含意値と割当値のブールOR
である。いずれの変数のリテラルも両方とも1になる場
合には矛盾が起こる。矛盾信号は、リテラルの各ペアの
論理積のブールORとして、生成される。
路はCFN式における節から生ずる変数間の関係を要約し
なければならない。回路は、普通は、各変数によって違
ってくる。
例を、図2を参照しながら説明する。節 として、もしc=1、またはd=1、またはb=1でc=0なら
ば、結論から言うと、aは値1にならなければならな
い。つまり、aは1に含意されると結論づけられる。同
様にして、もしe=0、またはc=0ならば、aは0に含意さ
れる。この例では、リテラルaの含意値に対する等式
は、図2に示されるように、 となる。 は該当する変数に対するそれぞれのリテラルである。同
様に、リテラル の等式は となる。
図3を参照しながら説明する。同じ5つの節 だすると、最初の節から、aが値0を取るとすると、結
論から言うと、 は1に含意される。2番目の節はcを含意しない。3番目
の節では、もしa=0で ならば、cは1に含意される。4番目の節はcを含意しな
い。5番目の節から、 ならば、cは1に含意されることが結論づけられる。リ
テラルcの含意値の式は となり、その式は図3の論理ゲートに反映される。リテ
ラル の等式は となる。図3は図示のため をORゲートへの唯一の入力として示す。
節に応じて各リテラルごとに含意回路は変わる。
でさえ含意依存状態においてはループを持つ。理論で
は、公式のすべてのリテラルの値を計算する回路全体
が、そうしたループがあるにもかかわらず、フリップフ
ロップなしで実行される。ループはすべて反転不能なの
で、結合回路は正しい値に収束するよう保証されている
が、非常に長い結合パスとその結果長いサイクル時間に
なる。
が、フィードバックされる前に、同期されたDフリップ
フロップ回路によってラッチされるような回路が使われ
る。各クロックサイクルの間、回路は、前のサイクルに
おいて割り当てられたり、または含意されたすべての変
数の直接的含意を並行に決定する。1クロックサイクル
の間、新たな含意を検出しない場合には、その手続きを
完了する。新しい含意は、各リテラルごとのDフリップ
フロップ回路の入出力のXORをとることによって検出さ
れる。こうしたXORゲートのいずれもが出力1を持つ場合
(例えば、LChangeが1の場合)、回路はもう1クロック
サイクル作動しなければならない。一番新しく変数割当
てが行なわれた含意手順の最初から、完了信号が発生す
るまでのクロックサイクルの数は、ソフトウェアでのそ
れよりは可能性としては随分少ないかもしれない。なぜ
ならば、可能性として非常にたくさんの新しい含意が各
クロックサイクルで発生し、こうして新しく含意された
変数から二次的に生じるすべての直接的含意が、次のク
ロックサイクルで即並行して決定されるからである。こ
の並行処理は実際にはかなりの量である。DIMACSの組の
おけるaim-100-6_0-yes1-1の例では、このやり方では、
1サイクルにつき平均で41.9の並行処理の節の数を生成
する。その例では、1サイクルで395のたくさんの節が
効果的に処理される。こうした数は他のベンチマークで
もよく見られる。
ラック状態装置 本発明による回路構成の2つの重要な特徴は、(i) 別々
の状態装置が各変数に備えられていることと、(ii) 変
数が割り当てられる順番が予め決められていることであ
る。従って、本発明のグローバル回路トポロジィは図4
に示されるような形態を取る。図面の各々の四角には、
各変数ごとの状態装置とリテラル演算回路が入ってい
る。こうして配置されたトポロジィは全体の信号を最小
に保持し、ハードウェアのコストを下げる。どんな瞬間
でも、1つの状態装置だけはコントロール下にある。い
ったん状態装置が処理を終えると、Eor(つまり、右へ
出ていくのを可能にする信号)をアサートにして(演算
処理が前方へ進む場合には)制御を右の状態装置に移す
か、あるいはE01(つまり、左へ出て行くのを可能にす
る信号)をアサートにして、(バックトラッキングの場
合には)制御を左に渡す。各状態装置は、変数が割り当
てられているか、または含意されているか、あるいは自
由変数のままかどうかを認識する。
れている。状態装置の5つの状態が3ビットでコード化
されている。各状態装置はほぼ同じである。2ビット
は、この変数の正のリテラルと負のリテラルの値に相当
する。3番目のビットはこの個々の状態装置がアクティ
ブかどうかを示す。
左からの入りを可能にする信号)、Eir(右からの入り
を可能にする信号)、GContra(グローバル矛盾信号)、
GChange(グローバル変更信号)、GClear(すべてのフ
リップフロップ回路をリセットするためのグローバル信
号)などがある。各状態装置は、共通のクロック信号に
よって通常の仕方で同期される。
でに述べた)、LContra(ローカル矛盾信号)、LChange
(ローカル変更信号)、LClear(ローカルクリア信号)
などがある。図4に、各状態装置の入出力を示す。装置
Vi-1は装置Viの左にあり、それは装置Vi+1の左にある。
図示されていないが、明確にするため、LChange出力の
すべてがORゲートに入ってGChangeを生成し、LContra出
力のすべてがORゲートに入ってGContraを生成し、LClea
r出力のすべてがORゲートに入ってGClearを生成する。
同じく図示されていないが、明確にするため、GChange
入力はすべての装置に共通であり、同様に、GContra入
力とGClear入力もすべてに共通である。
ある。各装置は変数が自由か、割り当てられているか、
含意されているかを記憶していることを思い起こして欲
しい。1の値が、 に対する結果である場合に、変数が含意される。このよ
うにローカル含意信号は、ある状態装置内で から獲得できることが理解されるであろう。ローカル含
意信号は、変数の値がすでに含意されている状態を、状
態装置が素早く飛ばすことができるようにするのに利用
される。
る。記号がそれぞれの状態遷移線の隣に現われる。各記
号は入出力のフォーマットをとる。つまり、スラッシュ
(/)の前の項目は、状態装置を、現在の状態から状態遷
移線によって示される状態に移行させるのに必要な入力
である。スラッシュに続く項目は状態遷移の結果として
提供された出力である。特に、こうした出力はE01とEor
である。
状態遷移線がある。この状態遷移線の次に現われる記号
は、 である。この記号は、状態装置がinit状態で、そしてE
ilが1になり変数vに対する含意された値がないなら
ば、状態装置の状態はactive 1に移行し、状態装置はE
01に対して0そしてEorに対して0を出力する(こうし
て現在の状態装置をアクティブな状態装置として保
つ)。
init状態にある。状態装置がイネーブル信号を受け取る
と、現在のリテラル値とイネーブルの方向を使って新し
い値をアサートにすべきかどうか、またどの新しい値を
アサートにするかを決める。制御が左から移り(つま
り、Eil=1)、変数の値が現在自由な場合(つまり、in
it状態にあって、値が含意されていなくて、 が値(0、0)を持つ場合)、値1(active 1に移行す
る)をアサートにし、その割当のすべての遷移的含意を
決定する。つまり、 を(1、0)に設定する。図2を参照すると、例えば、 を(1、0)に設定することは、 を設定することによって行なわれる。含意がまた設置中
で(つまり、GChangeがアサートにされている限りは)
かつ矛盾がない間は(つまり、GContraが0である限
り)、 繰り返し同じ状態に移りながら待ち状態にな
る。含意が一度設定されると、矛盾が生ずるかもしれな
い。もし、矛盾が起こったら、(つまり、GContraをア
サートにして)そのかわりに(active 0)値0を試みて、
含意ステップを繰り返す。もし、矛盾がない場合、制御
を状態装置の右に移し、passive 1状態に移行する。Act
ive 0から、矛盾を検出すると、後戻りする。その状態
をinitにリセットし、制御を左に移す。一方、含意が矛
盾なく落ち着けば、active 0からpassive 0に移動して
制御を右に移す。
するが、変数の値がすでに前の割当(つまり、 のいずれか)で含意されている場合には、単に制御を次
のクロックサイクルで状態装置の右に移してinit状態に
する。
から移された場合、矛盾があるために計算を後戻りし、
その矛盾を避けるような新しい割当を見つけるように努
めることを言う。このシナリオでは、現在のローカル変
数値に応じて再び可能な応答が3つある。
(それより前の前方演算中、以前の割当によって変数が
すでに含意されていた場合などがそうである)、状態装
置はinit状態にとどまり、制御を状態装置の左に移す。
(つまり、passive 1状態にある時)、それにかわっ
て、値0を割り当て(active 0に移る)、その割当の含
意を決定する。矛盾が見つからない場合、その対立はク
リアされていて、この状態装置が制御を右に移動させ
て、計算をふただび進めることができる。けれども、矛
盾が見つかると、initにリセットされ制御を左に移す。
すでに割当値0を持っているということである(つまり
passive 0状態にある)。これは、そのプロセスでこの
変数に対する可能な値をどちらもすでに試したというこ
とを示している。この場合、init状態に遷移して、変数
の割当を行なわないし、また制御を左に移すことによっ
て後戻りする。
も、最も右の状態装置が、制御をさらに右に渡そうとす
る時に、解が見つかった。一方、最も左の状態装置が、
制御をさらに左に渡すことによって後戻りを試みる場合
には、その問題に対する解が存在しないことを意味す
る。
当てられた変数に後戻りする時、そのバックトラッキン
グは時系列的と言われる。一方、アルゴリズムが、複数
の前に割り当てられた変数を超えて、現在の変数よりも
1レベル以上の変数に飛び越える場合、バックトラッキ
ングは非時系列的と言われる。直接前のレベルに飛び越
えるためには、アルゴリズムは、飛び越えた変数に関す
る値のどの組合わせもアルゴリズムを満足させる結果に
ならないよう最初に決めていなければならない。こうし
た変数を高機能に飛び越えることによって、アルゴリズ
ムは、すべてのこれらの組合わせが矛盾になるよう決め
さえすれば、これらの変数を様々な組合わせの値に明示
的に割り当てるのにかかる時間が無駄になるのを避ける
ことができる。GRASPはSATソルバーにおける非時系列的
なバックトラッキングの最近の手段です。GRASPワーク
は非時系列的なバックトラッキングが実行時間をかなり
短縮できることを示した。
造を保持し、その含意グラフから矛盾に導く含意のチェ
ーンを引き出すことができる。GRASPはこのデータ構造
を使って、ジャンプ可能なレベルを見つけることができ
る。
ェアにおいて、そのような含意グラフを使うのは大変難
しい。このため、対立または矛盾の源を突き止めるため
に含意回路を通るのにもっとたくさんのハードウェアを
加える必要がある。本発明が、特定の問題を解決するた
めにカスタムハードウェア回路の急速な開発に関係して
いることを思い起こしてほしい。ソフトウェアだけを使
った場合に比べて、全体的な時間を節約するこのやり方
では、カスタムハードウェア回路は、調整に時間がかか
りすぎてはいけないし、ハードウェア・リソースを使い
すぎてもいけない。
上記に示したSATソルバーのハードウェア的実行では、
含意を決めるのが大変速いという事実を活用している。
特に、ある特定変数の双方の割当に対して矛盾が起こっ
た場合、現在の変数に最も近い変数に戻し、これよりも
前の変数の値をはじくことによって矛盾がなくなるよう
にする。過程が、飛び越された変数値の組合わせを指数
の数だけ試さなくてもこれより前の変数に戻ることか
ら、このやり方は時間を節約する。
の割当に対して矛盾が検出された変数であるとする。本
発明による手順は、一度に1レベル、レベルを上げてい
く。その手順によると、それぞれのレベルj(<i)で、Vj
ははじかれた値なのでViに対する各値に1度づつ、含意
ルーチンを2度呼び出す。含意ルーチンが呼び出される
時には、つまり、両方のリテラル が0に設定される時には、iとjの間の変数Vk(j<k<i)は
割り当てられないままである。2つの割当の1つに対し
て矛盾がなかった場合、アルゴリズムはVjに後戻りしな
くてはならない。Viの両方の割当が矛盾を生ずる場合、
変数Vjは飛び越されて、手順は変数Vj-1のためにこのス
テップを繰り返す。
され、VjがVi-2として検討されるもっと詳しい例を使い
ながら、この動作について説明する。
戻る場合には含意ルーチンの呼び出しが2nだけ必要であ
る。この手順では指数の回数の含意ルーチンの呼び出し
をしないし、またハードウェアの含意ルーチンが大変速
いので、非時系列的バックトラッキングに対するこの分
析も、大変速いことが期待できる。比較では、GRASP
は、矛盾が見つかった時には含意グラフのデータ構造を
維持し分析する諸経費がかかるが、2nの含意は行なわな
い。
たいが、本発明による手順がどのように動作するかを示
している。以下のような公式があると仮定する。 また変数V2-V11に対するどの割当も矛盾を生じないもの
とする。このアルゴリズムに対する基本的なサーチ・ツ
リーが図7に示される。この図では、各矢印が新しい値
を割当てその含意を決めることを表わしている。V1=1
を割り当てることによって始まり、V11=1まで進む。最
後に、V12=1が試みられる。V13は(上記の公式の最初
の2つの節によって)0と1の両方であることを同時に
要求されているので、矛盾が起こる。
って)V12=0も矛盾が生じる。通常の後戻りの手順で
は、V12を未知数にリセットしV11に後戻りする。一時的
に対立は消えるが、V12がセットされるとまた現われ
る。
クトラッキングのやり方を示す。点線の矢印は飛び越し
を示し、そこでは計算が生じない。それらは単に含意計
算前にどんな値が想定されたかを示す。検索はV12まで
は同じであるが、バックトラッキングは異なる。各レベ
ルでバックトラッキングする時、含意手順は2度呼び出
しされる。つまり、標準的なバックトラッキングのやり
方の4082回よりもかなり少なく、含意手順をたった22回
だけ呼び出した後に、V1へのバックトラッキングが生じ
る。この単純な例は教育的すぎるが、実際のベンチマー
クでは劇的なスピードアップの可能性がある。例えば、
SAT組からのaim-100-1_6-yes1-1ベンチマークにおい
て、時系列的なバックトラッキングは606578の部分的割
当を巡回し、非時系列的バックトラッキング・アルゴリ
ズムはたった1384の部分的割当を巡回するだけである。
ェアのSATソルバーに対する新規なバックトラッキング
のやり方を、これから別の方法で説明する。SATソルバ
ーは複数の状態装置を含み、個々の装置はそれぞれブー
ルSAT問題における複数の変数のうちの1つに相当して
いると言える。該複数の変数は所定の発見的方法に基づ
いて順序づけられ、そのため状態装置も、最初の変数に
最初の状態装置を、また最後の変数に最後の状態装置を
該当させて配列する。
トップつまり最も高いレベルに第1変数を配置したバイ
ナリ・ツリーとして考えられるかもしれない。変数はノ
ードとして考えることもできる。その変数が想定する2
つの値は、ノードから次の低いレベルに下がるブランチ
を定義する。最も高いレベルの下のレベルは、ブランチ
のそれぞれに対するノードを含み、このレベルのノード
のすべてが最初の変数の後の変数(つまり、2番目の変
数)に関係する。バイナリ・ツリーは最も低いレベルま
で続き、そこでは可能なノードのすべてが最後の順番の
変数に関係する。
ブランチが、順序付けられる(つまり、値1に相当する
ブランチは最も左で、値0に相当するブランチは最も右
である)。言葉の便宜上、2つのバイナリ値は第1値及
び第2値として説明される。例では、第1値は1で第2値
は0であるが、これはあくまでも説明の便宜上のこと
で、任意で構わない。第1値は、デフォルトでは、論理
的肯定あるいは否定をテストする時に最初に変数に割り
当てられた値である。このため、例では、通常自由変数
がテストのための第1値(1)に与えられ、次いで、必
要ならば、第2値(0)に与えられる。
意されたか、あるいは自由であるか、いずれかの状態を
持つ。infraと叙述された状態装置の状態と混乱するの
を避けるために、通常状況(condition)という言葉を使
って変数が割り当てられたとか、含意されたとか、ある
いは自由だとか称することにする。従って、変数が自由
な状況、含意された状況、あるいは自由な状況というこ
とができる。再コンフィギュレーション可能なハードウ
ェアのSATソルバーが解を検索している時は、通常、あ
る変数は割り当てらた状況にあり、ある変数は含意され
た状況にあり、また他の変数は自由な状況にある。割り
当てられた変数と含意された変数との間には、それらの
間に矛盾がない場合は、全体的な論理的一貫性が存在す
る(自由変数は論理値を持たないので、全体的な論理的
一貫性に影響を与えない)。割り当てられた変数と含意
された変数は、今後所定の箇所では、集合的に論理値ネ
ットリストという言い方をすることがある。
すべてのノードは変数Viに関連付けられる。最も高いレ
ベル方向のlevel iのレベルは、level i-1として理解さ
れ、level i-1のノードのすべては変数Vi-1に関連付け
られる。level i-1より上のレベルはlevel i-2であると
理解され、変数Vi-2に関連付けられるノードを含む。同
様に、level iより下のレベルに対しても同様の名前の
付け方をする。
数の順序づけられた変数の他方の割当値および含意値
(つまり、論理値ネットリスト)に基づいて論理的矛盾
となった場合、一番低いレベルへこれ以上進んでもSAT
の解は得られないことは明らかである。解を見つけれら
れそうもないノードに進んで時間を無駄にするのを避け
るために、バックトラッキングが実行される。特に、最
大限に時間を節約するために、非時系列的バックトラッ
キングが実行される。特に、両方の可能なバイナリ値が
現在の論理値ネットリストに対して論理的矛盾となるよ
うな変数Viは、今後ブロッキング変数と呼ばれる。
には以下のように実行される。ブロッキング変数はリー
フ変数として設定される。リーフ変数は、下記のよう
に、矛盾がクリアされるまで第1値と第2値の間で切り
替わることを特徴とする。
は現在、考慮中の上位レベル変数、または便宜上バック
トラッキング変数と称される。バックトラッキング変数
についての可能性は2つある。1つは、バックトラッキ
ング変数が第1値を持っていることと、もう1つの可能
性として、バックトラッキング変数が第2値を持ってい
ることである。これら2つの可能性について各々順番に
説明する。
ックトラッキング変数がすでに第1値を持っている場
合、そのバックトラッキング変数ははじかれる。言い換
えれば、バックトラッキング変数は第1値にかわって第
2値を割り当てられる。バックトラッキング変数が第2値
を割り当てられた後、結果として現在の矛盾にならない
ようなリーフ変数の割当があるかどうかを決定する。つ
まり、第2値を持つバックトラッキング変数及び第1値
を持つリーフ変数を使って、論理値ネットリストは論理
的一貫性を調べられる。矛盾が見つかった場合、リーフ
変数は第2値に飛ぶ。そこで、第2値を持つバックトラッ
キング変数で、今度は第2値を持つリーフ変数とを使っ
て、論理値ネットリストの論理的一貫性を検査する。第
2値に飛んだ変数Vi-1がリーフ変数Viのどちらかの可能
な値に対して矛盾を生じる場合、次に高いレベル変数
(つまり、変数Vi-2)がバックトラッキング変数として
指名され、同時に変数Vi-1が自由な状況に置かれる。
クトラッキング変数にすでに第2値が割り当てられてい
る場合には、第1値は前の矛盾に陥ってしまったに違い
ない。このため、バックトラッキング変数にすでに第2
値が割り当てられている場合には、そのバックトラッキ
ング変数ははじかれない。かわって、次に高いレベルの
変数(つまり、変数Vi-2)がバックトラッキング変数と
して指名され、同時に変数Vi-1は自由な状況に置かれ
る。
性のいずれかでバックトラッキング変数として指名され
た場合、同じ分析結果になる。つまり、新しいバックト
ラッキング変数に関して2つの可能性がある。1つの可
能性としては、バックトラッキング変数が第1値を持っ
ていることと、もう1つの可能性としては、バックトラ
ッキング変数が第2値を持っていることである。
に、非時系列的バックトラッキングの過程にはブロッキ
ング変数を検出することとそれをリーフ変数として設定
すること、及びリーフ変数として別の値を選ばないでリ
ーフ変数の値を変えることが含まれる。別の言い方をす
れば、その過程にはリーフ変数の値を変えることは含ま
れるが、リーフ変数それ自体を変えることは含まれな
い。
も、バックトラッキング変数の値を変えることと、矛盾
がクリアされるまで、バックトラッキング変数となり得
るまでさらに高いレベルの変数を選ぶことが含まれる。
別の言い方をすると、本発明によれば、バックトラッキ
ング変数の値とバックトラッキング変数そのものを変え
る過程が含まれる。
において獲得された時に、バックトラッキングは終わ
る。バックトラッキングが終わった後で、上述した通常
の前方演算が行なわれ、SAT問題に対する解が求められ
る。バックトラッキングから前方演算への切り替えにお
いて、リーフ変数は自由な状況に置かれる。前方演算が
現在のバックトラッキング変数から下方に進む。
ムを実行するためには、状態装置を、時系列的バックト
ラッキングを使ったものから修正しなくてはならない。
本装置の特に有利な所としては、新しくグローバルな信
号を追加しなくてもいいことと含意回路を修正しなくて
もいいことである。
行するための状態装置を示す。図には以前に概括した複
雑なバックトラッキング手順を反映させるために状態と
遷移をもっと多く示した。状態装置はより大きくなった
が、追加の状態についてたった1つの符号化ビットが余
計に必要となるだけである。
おいてほぼ自明のよく知られたものであるが、簡単に説
明する。
は、変数Viは、自由な状態かまたは含意された状況にあ
る。init状態では、変数が含意されていない場合(つま
り、 ならば)、Eil信号はinitからactive 1へ遷移させる。a
ctive 1にある時、変数Viは、この実施例では1となる
第1値を与えられる。矛盾がないならば、すべての含意
が決まるまでGChangeは高くなり、状態は正常に遷移し
ない。GChangが低くなると、含意が決まる。矛盾がない
ということはGContraが低いということを意味する。GCh
angとGContraが両方とも低い場合、passive 1への遷移
に合うよう状況を満足させる。passive 1への移行はE01
を0の出力にEorを1の出力にする。Eorを1の出力にす
ると、装置を右に駆動させて、次に低いレベルの変数V
i+1 に対応する。
えることを思い起こして欲しい。この値が論理値ネット
リストで結果的に矛盾となる場合、GContra信号を受信
する。含意が決まったかどうか、GContra信号を受信す
るとすぐに、active 0への移行に合うよう状況を満足さ
せる。active 0への移行はE01を0の出力にEorを0の出
力にする。言い換えれば、active 0への移行は、現在ア
クティブな状態装置をアクティブなままにする。
られる。本実施例では0である。変数に第2値が与えら
れると、論理値ネットリスト全体を通して含意が各含意
回路によって決まる。含意が矛盾なく決まるとすると、
GChangeは低くなり、GContraも低い。こうした信号はpa
ssive 0へ移行するための状況を満足させる。active0か
らpassive 0への移行はE01を0の出力にEorを1の出力
にする。Eorを1の出力にすると、装置を右に駆動させ
て、次に低いレベルの変数Vi+1に対応する。
0, passive 0に関する前述の動作は、時系列的バックト
ラッキングを使った前述の実施例とほぼ同じである。非
時系列的バックトラッキングを使った本発明による実施
例が異なっている点をこれから説明する。
て、3つの隣り合った状態装置があるとする。これらの
3つの装置の中で、1番低い装置が変数Viに相当し、次
に高いレベルの装置が変数Vi-1に相当し、次にさらに高
いレベルの装置が変数Vi-2に相当する。便宜上、これら
3つの装置をVi-2装置、Vi-1 装置、Vi装置と呼ぶこと
にする。
割り当てられ、passive 1状態に移行し、かつVi-1とVi
はまだ自由状況にあるとする。Vi-2装置はpassive 1に
移行したので、Eor=1を出力する。Vi-2装置からの出力E
orはVi-1装置によってEi1 =1として受信される。この信
号がVi-1装置をactive 1状態に移行させ、第1値(つま
り、1)がVi-1に割り当てられた。含意が矛盾なく(つ
まり、GContraが低く)決まったとすれば(つまり、GCh
angeが低い)、Vi-1装置はpassive 1に移行し、移行時
にEor=1を出力した。この例では、Vi-1=1の割当がViの
状況を自由な状態から変えなかったこともわかる。
し、Viは自由な状態にあるので、Vi 装置はinitからacti
ve 1に移行した。active 1では、Vi装置は第1値をViに
割り当てた(つまり、Vi=1)。第1値にViが割り当てら
れたら、含意回路は、論理値ネットリストがまだ論理的
に一貫性があるかどうか、またはVi=1が矛盾を生じるか
どうかを決めた。この例では、Vi=1は論理的に矛盾とな
ったことが推定される。こうして、矛盾を検出した含意
回路は、LContra=1を出力する。この信号は、図4に示
す他のLContra信号と一緒に論理和をとられ、GContra=1
になった。GContraに対して高い値を受信したら、Vi装
置はactive 1状態からactive 0状態へ移行した。
当てた(つまり、Vi=0)。再び、含意回路はこの割当が
矛盾を生ずるかどうかを判定した。この例では、Vi=0は
論理的矛盾になったことがわかる。つまり、Viに対し
て、第1値も第2値の割当も論理値ネットリスト内で論
理的矛盾となった。また別の言い方をすると、Viは現在
の論理値ネットリストに関してその時ブロッキング変数
であった。従って、バックトラッキングが必要となる。
受信されたGContra信号は、Vi装置をactive 0からleaf
1状態に移行させた。Vi装置がactive 0からleaf 1状態
に移行した時に、E01=1及びEor=0を出力した。leaf 1の
状態では、Vi装置はVi=1を設定した。つまり、ブロッキ
ング変数がリーフ変数として設定された。
ーション可能なハードウェアにおいて、ハードウェアと
しての手段を与えられる。ブロッキング変数を証明し、
かつリーフ変数として設定する前述の状態を実行するハ
ードウェアは、ブロッキング変数をリーフ変数とみなす
ための手段の具体的例として理解することができる。
よってEir=1として受信された。Vi-1 装置はpassive 1状
態にあった。このため、Vi-1装置がEir=1を受信した
際、Vi-1 装置をbk 0 a状態に移行させた。Vi-1装置は、
Vi装置がleaf 1状態に移行したのとほぼ同じに、bk 0 a
状態に移行した。bk 0 a状態では、Vi-1装置はVi-1を1
から0に移行した。つまり、bk 0 aでは、Vi-1装置はV
i-1=0を割り当てた。
e 1にあり、Vi-1=0でVi-1装置はbk0 a状態にあり、Vi装
置=1でVi装置はleaf 1にある。Viが両方の可能な値に対
して矛盾となり、それゆえ現在の論理値ネットリストに
関してブロッキング変数であった時、Viはリーフ変数と
して設定されていたことが解かった。次に高いレベルの
変数(つまり、Vi-1)はバックトラッキング変数となっ
た。バックトラッキング変数に関係して2つの可能性が
あった。第1値が割り当てられていた可能性と、第2値
が割り当てられていた可能性がある。バックトラッキン
グ変数が第1値を持っていたので、バックトラッキング
変数は際2値に飛ばされた。リーフ変数Viにも第1値が
割り当てられていた。
割り当てられ、またViに第1値が割り当てられた時、含
意回路は論理値ネットリストにおける論理的一貫性を調
べた。この例では、矛盾が見つかりGContraが高くなっ
たことがわかる。
びVi装置は移行した。特に、Vi-1装置はbk 0 b状態に移
行し、Vi装置はleaf 0状態に移行した。bk 0 b状態で
は、Vi -1装置はバックトラッキング変数Vi-1を第2値で
保持していた。 leaf 0状態では、Vi装置はリーフ変数V
iを第2値にはじいた(つまり、Vi=0)。含意回路は、
バックトラッキング変数Vi-1とリーフ変数をそれぞれ第
2値で使って(つまり、どちらも0)、論理値ネットリ
ストにおける論理的一貫性をチェックした。
高くなったことがわかる。GContraが高くなるとすぐ
に、3つの装置がすべて影響を受けた。
し、その結果Vi=1になった。つまり、リーフ変数はそれ
自体は同じままであったが、その矛盾を検出すると値を
変えた。
行時に、E01=1及びEor=0を出力した。init状態では、変
数Vi-1は自由な状況に設定された。
装置によってEir=1として受信された。Vi-2装置へのこ
うした入力により、状態がpassive 1からbk 0 aへ移行
された。つまり、変数Vi-2はバックトラッキング変数に
なった。bk 0 aでは、Vi-2の値は第2値に設定された
(つまり、0)。
にあり、Vi-1装置はVi-1が自由な状況でinit状態にあ
り、Vi装置はVi=1でleaf 1の状態にあった。Vi-1がバッ
クトラッキング変数で第2値を割り当てられていた時、
また矛盾がリーフ変数Viの両方の値に対して見つかった
時、バックトラッキング変数の状況は自由(free)に設定
され、またバックトラッキング変数は次に高いレベルの
変数Vi-2に設定されたことに気づく。
自由、Vi=1で、論理値ネットリストにおける矛盾をチェ
ックした。この例では、矛盾が見つからなかったことが
わかる。こうして、含意のすべてが決まると(つまり、
GChangeが低くなると)、GContra信号は低いレベルにと
どまった。
の装置は以下のように影響を受けた。Vi-2装置はbk 0 a
からpassive 0に移行した。移行時に、E01=0及びEor=1
を出力した。制御がVi-2装置にもどると、Vi-2装置はin
it状態に移行し制御を次に高いレベルに渡すことが図6
から明らかである。これは上述の非時系列的バックトラ
ッキングのやり方と一致している。Vi-2装置がバックト
ラッキング変数になって、すでに第2値を持っていると
(つまり、Vi-2が0に設定されていると)、Vi -2レベル
ですべきチェックはこれ以上ないし、チェックはもっと
高いレベルで進められなければならない。けれども、本
例では、Vi-2装置はpassive 0にとどまっている。
Vi-1装置も影響を受けた。特に、Vi -1装置は変数Vi-1が
自由な状況でinit状態にあった(つまり、含意値がな
い)。含意回路によって新たに矛盾をチェックしてもV
i-1に対して何も値が含意されていなかったならば、V
i-1装置はactive 1に移行したであろう。
装置も影響を受けた。特に、Vi装置はVi=1でleaf 1状態
からinit状態に移行した。init状態では、変数Viは自由
な状況に設定された。
ェアを、リーフ変数の値を変える手段の具体的な例とし
て考えることができる。リーフ変数を探索する状態装置
から次の状態装置において、bk 0 a及び bk 0 b状態を
実行するハードウェアを、同様にリーフ変数のレベルよ
りももっと高いレベルで最初のバックトラッキング変数
を設定して変えるための手段として理解することもでき
る。同じように、最初にバックトラッキング変数を持っ
た状態装置から次の状態装置においてbk 0 a及びbk 0 b
状態を実行するハードウェアを、1番目のバックトラッ
キング変数が論理的矛盾を発生した時に、2番目のバッ
クトラッキング変数を設定して変えるための手段として
理解することもできる。
再コンフュギュレーション可能なハードウェアを用いた
非時系列的バックトラッキングのために提供された。
ョン可能な演算処理を実施すると、ソフトウェアSATソ
ルバー上のスピードを著しく上げることができるし、非
時系列的バックトラッキングの機能を持ったハードウェ
ア・ソルバーは、時系列的バックトラッキングの機能を
持ったハードウェア・ソルバー以上のスピードを上げる
ことができる。
ードウェア・コンパイル時間とコンフィギュレーション
時間を考慮に入れたとしても、高い性能が提供されなけ
ればならない。このため、主にコンフュギュレーション
可能なハードウェア技術は、主にSAT問題に関しては大
変長いGRASP実行時間(数時間または数日)で使用され
るか、またはGRASPがアボートした場合に使用されるこ
とが薦められる。そのような場合、必要なハードウェア
合成時間は許容できる。
アで解くことができ、非常に大きい問題、今ならしばし
ばタイムアウトになるような問題なら、ハードウェア・
コンパイラーを呼び出し、FPGAボードをコンフィギュレ
ーションしてその問題を解くのを手伝うようなシステム
が構想されてある。
はFPGAボードが外部接続または入出力バス経由で取り付
けられた高性能ワークステーションである。ワークステ
ーションそれ自体の上で動作するソフトウェアによって
扱える問題は、解くのが簡単だが、FPGAボードで扱える
ものは動作時間が長い。FPGAボードそのものに対する必
要要件には、ある程度、解かれる問題のハードウェアサ
イズが関係する。これについては次の項で述べる。
条件は解く公式のサイズと複雑さに関係する。本発明に
よるSAT解法のためのテンプレートに基づく設計ではメ
モリを必要としないし、問題解決前に、または解決中に
入力データをダウンロードすることもない。かわりに、
問題全体がFPGAのコンフュギュレーション可能な論理ブ
ロック(CLBs)に埋め込まれている。
べき公式によって広く変わってくる。DIMACSのベンチマ
ーク全体で中間のCLB必要条件は3655である。全体的に
は、これらの問題のほんの少ししか(30%未満)現在
のFPGAチップのCLB極限値の1000または2000の範囲内に
入らない(FPGAチップについてもっと詳しくは、ここに
具体化された以下の有益な背景文献を参照のこと。Prog
rammable Logic DataBook(プログラム可能な論理デー
タブック)1994年カリフォルニア、サンノゼ、Xilinx
社)。しかしながら、ほとんどが10未満のFPGA回路で
ある。
回路全体の設計を分割することは簡単なことである。実
験では、発明者らは、もともとMIT Virtual Wiresの労
作の一部として発達したIKOS SLI論理エミュレーション
・システムにおける分割及びピン多重化技術を使用し
た。MIT Virtual Wiresの労作に関するもっと詳しい情
報は、背景情報を参照して具体化された以下の文献を参
照のこと。
Virtual Wires: FPGAに基づく論理エミュレーターにおけるピン制限値の
克服 In Proceeding & IEEE Workshop on FPGA-based Custom
Computing Machines (FPGAに基づくカスタム・コンピュータ装置に関する進
め方及びIEEE研究会) ページ142-151, 1993年4月 この分割ソフトウェアは複数の内部チップ信号を多重し
て同じ物理ピンを使い、それによって、しばしばFPGA設
計のCLB利用を制限するピンの制限を回避する。さら
に、ソフトウェアは、ハードウェアのサイクル回数にほ
とんど影響を与えず、この多重化を実行する。
以下のような貢献をする。まず、コンフュギュレーショ
ン可能なハードウェア実行による、公式特定のブール関
数式充足可能性解決のためのシステム設計を提供する。
新規設計のハードウェア必要条件はかなり少なくなっ
た。さらに、本発明によるハードウェアの性能結果は、
コンフィギュレーション可能なハードウェア的方法が、
最新のソフトウェアに基づく技術さえ格段に上回る可能
性を持っていることを示している。
可能なハードウェアで実行することができる非時系列的
バックトラッキングについて新しい方法を提供してい
る。けれども、本発明による非時系列的バックトラッキ
ングは他のやり方でも実行できる。例えば、コンフュギ
ュレーション可能なハードウェアを持たないコンピュー
タシステムにおいても実行できる。つまり、本発明を具
体化するコンピュータシステムは非時系列的バックトラ
ッキング方式を実行可能にするハードウェアとソフトウ
ェアを含む。
るように、コンピュータプログラム製品として具体化で
きる。
法及び本発明の動作を実行可能にさせるソフトウェア
は、さまざまなメディアのうちどんなメディア上にも提
供される。特に、このソフトウェアは、コンフィギュレ
ーション可能なハードウェアを持ったシステム、あるい
はコンフィギュレーション可能なハードウェアを持たな
いシステムに関連付けることができる。前者の場合は、
ソフトウェアはコンフュギュレーション可能な構造を含
む。
ラム可能な言葉で書かれたステートメントの形で実際に
実行される。そのようなプログラム可能な言葉によるス
テートメントは、コンピュータで実行されると、そのス
テートメントの特定する内容に一致するようコンピュー
タを動かす。さらに、発明に一致するようにコンピュー
タシステムを動かすソフトウェアは、もともとの原始コ
ード、アセンブリコード、オブジェクトコード、機械
語、圧縮版または暗号化された版など、これらに限ら
ず、こうした形態において、形態の数に関係なく、提供
される。
れるのが、ここで使われているように、「メディア」、
つまり「コンピュータ読み取り可能なメディア」であ
る。それには、ディスケット、テープ、CD、集積回路、
カートリッジ、通信回路による遠隔地伝送、その他コン
ピュータにて読み取り可能な同様の記録媒体が含まれ
る。例えば、本発明に従ってコンピュータシステムが動
作できるようなソフトウェアを提供するためには、供給
する人が、ディスケットを用意したり、衛星放送を通し
てある形態でソフトウェアを伝送したり、あるいは直接
電話回線やまたはインターネットを通してソフトウェア
を伝送する。
に書かれていたり、集積回路にストアされていたり、通
信回線上を運ばれていたりするかもしれないが、このア
プリケーションの目的のためには、コンピュータにて読
み取り可能な記録媒体がソフトウェアを「記録する」と
いう言い方が適切であろう。このように、「記録する」
という言葉は、ソフトウェアがコンピュータにて読み取
り可能な記録媒体と関連する前述の方法などを包括する
言い方である。
品」という言葉は、コンピュータにて読み取り可能な記
録媒体が、前記説明した発明に従って、コンピュータシ
ステムを動作させるソフトウェアをどんな形態であれ記
録したコンピュータにて読み取り可能な記録媒体を言う
ために使用される。こうして、本発明は、本発明に従っ
てコンピュータに上述した非時系列的バックトラッキン
グ方式を実行させるソフトウェアを記録したプログラム
製品においても具体化される。
ードウェア実行による、公式特定のブール関数式充足可
能性解決のためのシステム設計を提供する。新規設計の
ハードウェア必要条件はかなり少なくなった。
結果は、コンフィギュレーション可能なハードウェア的
方法が、最新のソフトウェアに基づく技術さえ格段に上
回る可能性を持っていることを示している。
示す図である。
を示す図である。
例を示す図である。
状態を示す線図である。
の状態を示す線図である。
を示す図である。
の検索例を示し、ハードウェア・アルゴリズムにおける
アルゴリズムを示す図である。
の検索例を示し、ソフトウェア・アルゴリズムを示す図
である。
Claims (10)
- 【請求項1】 入力された検索問題を解くためのコンフ
ィギュレーション可能な評価装置において、 コンフュギュレーション命令を有するメモリーと、 前記コンフィギュレーション命令に従ってコンフィギュ
レーション可能なハードウェアシステムとを備え、 前記コンフィギュレーション命令は、前記入力された検
索問題の現在の問題に基づいて検索を実行するよう前記
ハードウェアシステムをコンフィギュレーションし、 かつ、前記コンフィギュレーション命令は、前記入力さ
れた検索問題の各々について、前記検索中に行なわれる
バックトラッキングが、前記ハードウェアシステムの制
御下で非時系列的バックトラッキングを含むよう前記ハ
ードウェアシステムをコンフィギュレーションする前記
コンフュギュレーション命令とを備えることを特徴とす
るコンフィギュレーション可能な評価装置。 - 【請求項2】 前記入力された検索問題がブール関数式
充足可能性問題になり、かつ前記ブール関数式充足可能
性問題に対して、前記検索が前記非時系列的バックトラ
ッキングを使ったブール関数式SAT解決検索となるよう
に、前記コンフィギュレーション命令が前記ハードウェ
アシステムをコンフィギュレーションすることを特徴と
する請求項1に記載のコンフィギュレーション可能な評
価装置。 - 【請求項3】 前記コンフィギュレーション命令が前記
ハードウェアシステムをコンフィギュレーションして、 ブロッキング変数をリーフ変数としてみなすための手段
と、 リーフ変数の値を変えるための手段と、 リーフ変数のレベルよりも高いレベルで第1のバックト
ラッキング変数を設定し変えるための手段と、 第1のバックトラッキング変数が論理的矛盾を生成する
時、第1のバックトラッキング変数のレベルよりも高い
レベルで第2のバックトラッキング変数を設定し変える
ための手段とを形成することを特徴とする請求項2に記
載のコンフィギュレーション可能な評価装置。 - 【請求項4】 変数ネットリストの非時系列的バックト
ラッキングのための方法において、 ブロッキング変数をリーフ変数としてみなし、 リーフ変数の値を変え、 第1のバックトラッキング変数として、リーフ変数のレ
ベルよりも高いレベルで変数を設定し、かつ第1のバッ
クトラッキング変数の値を変え、 リーフ変数の値と第1バックトラッキング変数の値に基
づいて論理的一貫性を求めてネットリストを評価し、 その評価が論理的矛盾を生じた時は、第2バックトラッ
キング変数として、第1バックトラッキング変数のレベ
ルよりも高いレベルの変数のうち1つの異なる変数を設
定し、かつその異なるバックトラッキング変数の値を変
えることによって、バックトラッキング変数そのものを
変え、 リーフ変数の値と第2バックトラッキング変数の値に基
づいて論理的一貫性を求めてネットリストを評価するこ
とを含むことを特徴とする非時系列的バックトラッキン
グ方法。 - 【請求項5】 各変数がそれぞれのレベルを持ち、該変
数のセットが論理値ネットリストを形成し、レベル毎に
順序づけられたブール関数式変数のセットを積標準型で
表現するための充足変数割当を決定するための、非時系
列的バックトラッキング方法において、 ブロッキング変数をリーフ変数としてみなし、リーフ変
数の値を変え、 第1のバックトラッキング変数として、リーフ変数のレ
ベルよりも高いレベルで変数の1つを設定し、かつ第1
のバックトラッキング変数の値を変え、 リーフ変数の値と第1バックトラッキング変数の値に基
づいて論理的一貫性を求めて論理値ネットリストを並行
に評価し、 論理的矛盾を生じた評価に対しては、第2バックトラッ
キング変数として、第1バックトラッキング変数のレベ
ルよりも高いレベルの変数のうち1つの異なる変数を設
定し、かつその異なるバックトラッキング変数の値を変
えることによって、バックトラッキング変数そのものを
変え、 リーフ変数の値と第2バックトラッキング変数の値に基
づいて論理的一貫性を求めて論理値ネットリストを並行
に評価することを含むことを特徴とする非時系列的バッ
クトラッキング方法。 - 【請求項6】 それぞれのレベルで順序づけられたブー
ル関数式変数のセットを積標準型で表現し、かつ論理値
ネットリストを形成するための充足変数割当を決定する
ための、非時系列的バックトラッキング方法において、 (a) リーフ変数に関して、リーフ変数値のみを変えるス
テップで、前記リーフ変数値をブロッキング変数に基づ
いて決め、 (b) バックトラッキング変数に関して、バックトラッキ
ング変数そのものとバックトラッキング変数値を変える
ステップで、前記バックトラッキング変数が前記リーフ
変数のレベルよりも高いレベルを持ち、 (c) 前記リーフ変数値と前記バックトラッキング変数値
及び前記バックトラッキング変数そのものに基づいて論
理的一貫性を求めて前記論理値ネットリストを、平行し
て評価することを含むことを特徴とする非時系列的バッ
クトラッキング方法。 - 【請求項7】 前記評価のステップがさらに、 順序づけられた複数の状態装置を備え、各状態装置がブ
ール関数式変数の1つに相当しそれらの間で個別に順序
づけられるステップと、 前記複数の状態装置の各々に関して、含意回路を備える
ステップと、 各含意回路の出力を結合して、前記論理
値ネットリストが論理的に一貫性がないことを示すグロ
ーバルな矛盾信号を出力するステップとを含むことを特
徴とする請求項6に記載の非時系列的バックトラッキン
グ方法。 - 【請求項8】 前記結合ステップがさらに、前記論理値
ネットリストのすべての遷移的含意が決定されたかどう
かを示すグローバル変更信号を提供することを含むこと
を特徴とする請求項7に記載の非時系列的バックトラッ
キング方法。 - 【請求項9】 それぞれのレベルで順序づけられたブー
ル関数式変数のセットを積標準型で表現し、かつ論理値
ネットリストを形成するための充足変数割当を決定する
のに用いられるコンピュータシステムにおいて、 プロセッサーと、 メモリとを備え、 そのメモリがコンピュータシステムに (a) リーフ変数
に関して、リーフ変数値のみを変えるステップで、前記
リーフ変数値をブロッキング変数に基づいて決め、
(b) バックトラッキング変数に関して、バックトラッキ
ング変数そのものとバックトラッキング変数値を変える
ステップで、前記バックトラッキング変数が前記リーフ
変数のレベルよりも高いレベルを持ち、 (c) 前記リーフ変数値、前記バックトラッキング変数値
及び前記バックトラッキング変数そのものに基づいて論
理的一貫性を求めて前記論理値ネットリストを、平行し
て評価するステップとを実行させるために用いられるソ
フトウェア命令を含むことを特徴とするコンピュータシ
ステム。 - 【請求項10】 それぞれのレベルで順序づけられたブ
ール関数式変数のセットを積標準型で表現し、かつ論理
値ネットリストを形成するための充足変数割当を、コン
ピュータに決定させるためのコンピュータにて読み取り
可能なプログラムを記録した記録媒体において、 コンピュータに所定の動作を実行させるためのソフトウ
ェア命令と、 ソフトウェア命令を提供するコンピュータ読み取り可能
な媒体とを備え、該所定の動作が、 (a) リーフ変数に関して、リーフ変数値のみを変えるス
テップで、前記リーフ変数値がブロッキング変数に基づ
いて決められ、 (b) バックトラッキング変数に関して、バックトラッキ
ング変数そのものとバックトラッキング変数値を変える
ステップで、前記バックトラッキング変数が前記リーフ
変数のレベルよりも高いレベルを持ち、 (c) 前記リーフ変数値、前記バックトラッキング変数値
及び前記バックトラッキング変数そのものに基づいて論
理的一貫性を求めて前記論理値ネットリストを、平行し
て評価するステップとを含むことを特徴とするコンピュ
ータにて読み取り可能なプログラムを記録した記録媒
体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/085646 | 1998-05-27 | ||
US09/085,646 US6038392A (en) | 1998-05-27 | 1998-05-27 | Implementation of boolean satisfiability with non-chronological backtracking in reconfigurable hardware |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11353357A true JPH11353357A (ja) | 1999-12-24 |
JP3119646B2 JP3119646B2 (ja) | 2000-12-25 |
Family
ID=22193026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11076687A Expired - Fee Related JP3119646B2 (ja) | 1998-05-27 | 1999-03-19 | 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6038392A (ja) |
JP (1) | JP3119646B2 (ja) |
DE (1) | DE19903633A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843795B2 (en) | 2006-03-15 | 2014-09-23 | Nec Corporation | Test system of reconfigurable device and its method and reconfigurable device for use therein |
KR20160136270A (ko) * | 2014-03-25 | 2016-11-29 | 클레이톤 길스파이 | 하이퍼-다항식 비용 없이 np-완전 문제들을 풀이하는 것 |
US10528868B2 (en) | 2010-06-25 | 2020-01-07 | Clayton Gillespie | Solving NP-complete problems without hyper polynomial cost |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138266A (en) | 1997-06-16 | 2000-10-24 | Tharas Systems Inc. | Functional verification of integrated circuit designs |
US6292916B1 (en) * | 1998-12-10 | 2001-09-18 | Lucent Technologies Inc. | Parallel backtracing for satisfiability on reconfigurable hardware |
US6415430B1 (en) * | 1999-07-01 | 2002-07-02 | Nec Usa, Inc. | Method and apparatus for SAT solver architecture with very low synthesis and layout overhead |
US6877040B1 (en) * | 2000-07-25 | 2005-04-05 | Xilinx, Inc. | Method and apparatus for testing routability |
US7073143B1 (en) | 2000-11-06 | 2006-07-04 | Cadence Design Systems, Inc. | Solving constraint satisfiability problem for circuit designs |
US6618841B1 (en) | 2000-11-06 | 2003-09-09 | Verplex Systems, Inc. | Non-assignable signal support during formal verification of circuit designs |
US6629297B2 (en) | 2000-12-14 | 2003-09-30 | Tharas Systems Inc. | Tracing the change of state of a signal in a functional verification system |
US6625786B2 (en) | 2000-12-14 | 2003-09-23 | Tharas Systems, Inc. | Run-time controller in a functional verification system |
US6691287B2 (en) | 2000-12-14 | 2004-02-10 | Tharas Systems Inc. | Functional verification system |
US6470480B2 (en) * | 2000-12-14 | 2002-10-22 | Tharas Systems, Inc. | Tracing different states reached by a signal in a functional verification system |
US6883134B2 (en) | 2001-03-27 | 2005-04-19 | Logicvision, Inc. | Method and program product for detecting bus conflict and floating bus conditions in circuit designs |
US7418369B2 (en) * | 2001-09-07 | 2008-08-26 | The Trustees Of Princeton University | Method and system for efficient implementation of boolean satisfiability |
US7653520B2 (en) * | 2002-07-19 | 2010-01-26 | Sri International | Method for combining decision procedures with satisfiability solvers |
US7743085B2 (en) | 2004-11-08 | 2010-06-22 | Tabula, Inc. | Configurable IC with large carry chains |
US7342415B2 (en) * | 2004-11-08 | 2008-03-11 | Tabula, Inc. | Configurable IC with interconnect circuits that also perform storage operations |
US7236009B1 (en) | 2004-12-01 | 2007-06-26 | Andre Rohe | Operational time extension |
US7496879B2 (en) * | 2004-12-01 | 2009-02-24 | Tabula, Inc. | Concurrent optimization of physical design and operational cycle assignment |
US7428721B2 (en) * | 2004-12-01 | 2008-09-23 | Tabula, Inc. | Operational cycle assignment in a configurable IC |
US7492186B2 (en) | 2005-07-15 | 2009-02-17 | Tabula, Inc. | Runtime loading of configuration data in a configurable IC |
US7372297B1 (en) | 2005-11-07 | 2008-05-13 | Tabula Inc. | Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources |
US7679401B1 (en) | 2005-12-01 | 2010-03-16 | Tabula, Inc. | User registers implemented with routing circuits in a configurable IC |
DE202006020694U1 (de) | 2006-09-07 | 2009-06-18 | Mahle International Gmbh | Verstellbare Nockenwelle |
US7543266B2 (en) * | 2006-11-20 | 2009-06-02 | Microsoft Corporation | Lock-free state merging in parallelized constraint satisfaction problem solvers |
US7514957B2 (en) * | 2007-03-20 | 2009-04-07 | Tabula, Inc | Configurable IC having a routing fabric with storage elements |
US8069425B2 (en) | 2007-06-27 | 2011-11-29 | Tabula, Inc. | Translating a user design in a configurable IC for debugging the user design |
WO2009039462A1 (en) * | 2007-09-19 | 2009-03-26 | Tabula, Inc. | Method and system for reporting on a primary circuit structure of an integrated circuit (ic) using a secondary circuit structure of the ic |
US8863067B1 (en) | 2008-02-06 | 2014-10-14 | Tabula, Inc. | Sequential delay analysis by placement engines |
US8131660B2 (en) * | 2008-04-08 | 2012-03-06 | Microsoft Corporation | Reconfigurable hardware accelerator for boolean satisfiability solver |
US8166435B2 (en) | 2008-06-26 | 2012-04-24 | Tabula, Inc. | Timing operations in an IC with configurable circuits |
WO2010016857A1 (en) | 2008-08-04 | 2010-02-11 | Tabula, Inc. | Trigger circuits and event counters for an ic |
US9031890B2 (en) | 2010-08-04 | 2015-05-12 | Sherwin Han | Inverse function method of boolean satisfiability (SAT) |
US8996435B2 (en) * | 2011-08-02 | 2015-03-31 | International Business Machines Corporation | Determining invariants in a model |
US8984464B1 (en) | 2011-11-21 | 2015-03-17 | Tabula, Inc. | Detailed placement with search and repair |
US9171029B2 (en) * | 2013-01-31 | 2015-10-27 | International Business Machines Corporation | Performing batches of selective assignments in a vector friendly manner |
CN104395900B (zh) | 2013-03-15 | 2017-08-25 | 北京未名博思生物智能科技开发有限公司 | 序列比对的空间计数运算方法 |
CN105190632B (zh) | 2013-04-04 | 2018-06-05 | 韩小文 | 构造非确定性(np)图灵机的多项式方法 |
US9436565B2 (en) | 2013-07-04 | 2016-09-06 | Altera Corporation | Non-intrusive monitoring and control of integrated circuits |
US9418137B2 (en) | 2014-08-29 | 2016-08-16 | Sherwin Han | Database without structured query language |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5377201A (en) * | 1991-06-18 | 1994-12-27 | Nec Research Institute, Inc. | Transitive closure based process for generating test vectors for VLSI circuit |
US5602856A (en) * | 1993-04-06 | 1997-02-11 | Nippon Telegraph And Telephone Corporation | Test pattern generation for logic circuits with reduced backtracking operations |
US5831996A (en) * | 1996-10-10 | 1998-11-03 | Lucent Technologies Inc. | Digital circuit test generator |
-
1998
- 1998-05-27 US US09/085,646 patent/US6038392A/en not_active Expired - Lifetime
-
1999
- 1999-01-29 DE DE19903633A patent/DE19903633A1/de not_active Ceased
- 1999-03-19 JP JP11076687A patent/JP3119646B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843795B2 (en) | 2006-03-15 | 2014-09-23 | Nec Corporation | Test system of reconfigurable device and its method and reconfigurable device for use therein |
US10528868B2 (en) | 2010-06-25 | 2020-01-07 | Clayton Gillespie | Solving NP-complete problems without hyper polynomial cost |
KR20160136270A (ko) * | 2014-03-25 | 2016-11-29 | 클레이톤 길스파이 | 하이퍼-다항식 비용 없이 np-완전 문제들을 풀이하는 것 |
JP2017513076A (ja) * | 2014-03-25 | 2017-05-25 | クレイトン ジリスピー, | ハイパー多項式コストなしでnpの問題を解決するための方法及びコンピューティング装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3119646B2 (ja) | 2000-12-25 |
DE19903633A1 (de) | 1999-12-02 |
US6038392A (en) | 2000-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3119646B2 (ja) | 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法 | |
Mailhot et al. | Algorithms for technology mapping based on binary decision diagrams and on Boolean operations | |
US6247164B1 (en) | Configurable hardware system implementing Boolean Satisfiability and method thereof | |
US6782511B1 (en) | Behavioral-synthesis electronic design automation tool business-to-business application service provider | |
US6415430B1 (en) | Method and apparatus for SAT solver architecture with very low synthesis and layout overhead | |
US20050091025A1 (en) | Methods and systems for improved integrated circuit functional simulation | |
JP4654203B2 (ja) | デジタルシステムのhdl記述ファイルを作成する方法、および得られるシステム | |
Lavagno et al. | Synthesis of hazard-free asynchronous circuits with bounded wire delays | |
EP1248989A2 (en) | Behavioral-synthesis electronic design automation tool and business-to-business application service provider | |
Chu | Synthesis of hazard-free control circuits from asynchronous finite state machines specifications | |
US6560571B1 (en) | Method and apparatus for prioritizing the order in which checks are performed on a node in an integrated circuit | |
Ferrandi et al. | Test generation and testability alternatives exploration of critical algorithms for embedded applications | |
Brayton | The future of logic synthesis and verification | |
Tan et al. | Verilog hdl simulator technology: a survey | |
US8904318B1 (en) | Method and apparatus for performing optimization using don't care states | |
Devadas et al. | Verification of asynchronous interface circuits with bounded wire delays | |
Tibebu et al. | Augmenting all solution SAT solving for circuits with structural information | |
JP2001209670A (ja) | 高位合成方法、および、高位合成方法の実施に使用される記録媒体 | |
US5740407A (en) | Method of generating power vectors for circuit power dissipation simulation having both combinational and sequential logic circuits | |
GB2588134A (en) | Verification of hardware design for data transformation component | |
El-Maleh et al. | Delay-fault testability preservation of the concurrent decomposition and factorization transformations | |
Murgai | Technology-dependent logic optimization | |
JP3080037B2 (ja) | 論理シミュレーション用モデルの作成方法 | |
Chew et al. | Integrating Design for Testability Technique into OpenLane with Skywater 130-Nanometer Process Design Kit | |
JP3037263B2 (ja) | ブールの充足可能性を実現する構成可能ハードウェアシステム及びそのための方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071013 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081013 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091013 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091013 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101013 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111013 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131013 Year of fee payment: 13 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |