JP2000148808A - スケジュ―リングされた動作記述に対するストラクチュラルrtlの正当性検証方法 - Google Patents

スケジュ―リングされた動作記述に対するストラクチュラルrtlの正当性検証方法

Info

Publication number
JP2000148808A
JP2000148808A JP11226890A JP22689099A JP2000148808A JP 2000148808 A JP2000148808 A JP 2000148808A JP 11226890 A JP11226890 A JP 11226890A JP 22689099 A JP22689099 A JP 22689099A JP 2000148808 A JP2000148808 A JP 2000148808A
Authority
JP
Japan
Prior art keywords
node
rtl
structural
equivalence
functional
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.)
Pending
Application number
JP11226890A
Other languages
English (en)
Inventor
Teru Mukoyama
輝 向山
Pranav Ashar
アシャー プラナブ
Batachariya Supurajitto
バタチャリヤ スプラジッド
Anand Raghunathan
ラグナサン アナンド
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 Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Publication of JP2000148808A publication Critical patent/JP2000148808A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 高位合成における合成の検証に関し、時間及
びコストの経済化を図り、且つ、満足の行く結果を自動
的に得ることのできる検証ツールを提供すること。 【解決手段】 ファンクショナルRTLとストラクチュ
ラルRTLとの等価性検証を、レジスタ・シェアリング
の正当性検証と、演算器マッピングの正当性検証との二
つの簡単な問題に分け、夫々を検証する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、LSI設計自動化
技術に関し、特に、高位合成の中間段階と最終段階との
間の等価性検証に関する。
【0002】
【従来の技術】一般に、LSI若しくはVLSIの設計
に当たっては、これらを自動的に行う、若しくはその設
計を支援するLSI設計自動化・支援技術が採用されて
いる。
【0003】このLSI設計自動化技術を採用したVL
SI設計のうち、代表的なものとしては、各種EDA
(electronic design automation)ツールを利用したト
ップダウン設計が挙げられる。この種のトップダウン設
計は、その上流工程から、機能設計、論理設計、レイア
ウト設計と大別することができる。このうち、特に、機
能設計の自動化は機能合成(高位合成、動作合成とも呼
ばれる。)と呼ばれ、論理設計の自動化は論理合成と呼
ばれる。
【0004】詳しくは、前述のトップダウン設計におい
ては、まず、システムの仕様作成として、LSI全体を
システムとして捉え、その動作を記述することが行われ
る。このようにして作成された記述は、動作記述(beha
vioral description)と呼ばれる。この動作記述の作成
は、例えば、Cライクな言語を用いてなされる。
【0005】次に、高位合成フェーズにおいて、作成さ
れた動作記述がRTL(register transfer level)記
述に自動変換される。尚、従来、このフェーズに関して
は、人手により置き換えられ、HDL(hardware descr
iption language)を用いて、直接、RTL記述が作成
される場合も多かった。
【0006】次いで、論理合成フェーズにおいて、RT
L記述が、ゲートレベルの記述(ゲート・レベル論理回
路:ネットリスト)に自動変換される。このようにして
生成されたネットリストを基に、レイアウト設計が行わ
れ、次いで、チップ設計が行われる。
【0007】これら上述した各段階(フェーズ)におい
て合成を行うためのツールの実体は、一般に、ソフトウ
ェアで構成される。しかしながら、それらのソフトウェ
アは、解決対象となる問題を適切にモデル化することの
困難性から、必ずしもバグフリーであるとは限らない。
また、プログラムサイズも大きいことから、デバッグを
完璧なものとすることは非常に困難である。そこで、各
合成段階においては、適切な合成がなされたか否かを検
証する必要がある。
【0008】ここで、上述したフェーズの内、論理合成
に関しては、比較的、以前から活発に行われていたた
め、その正当性を確証すべく、論理合成の検証(論理検
証)も活発に行われていた。これに対して、高位合成に
ついては、上記のように人手により置き換えられること
も多かったため、その検証についても、論理検証ほど
は、検討されていなかった。
【0009】
【発明が解決しようとする課題】しかしながら、近年の
LSIの高集積化・大規模化に伴い、LSIを構成する
ゲート数は、数百万になることも珍しくなくなってきて
おり、これに起因して、高位合成に対する要求も高まっ
てきている。また、これに関連して、高位合成フェーズ
の正当性の検証も非常に重要な研究課題となってきてい
る。
【0010】ここで、従来、最も一般に行われていた高
位合成フェーズにおける正当性の検証は、所定のテスト
パターンを用いて行われるシミュレーションであった
が、このシミュレーションは、以下のような問題を含ん
でいた。
【0011】即ち、テストパターンを用いて行われるシ
ミュレーションを実行するためには、当然ながら、テス
トパターンの生成を行わなければならず、そのために時
間及びコストがかかるといった問題があった。しかも、
そのシミュレーションを実行することにより検証できる
合成の内容は、テストパターンに依存しており、使用し
たテストパターンにて考慮されていないエラーを検証す
ることはできない。従って、従来のシミュレーションに
よる検証では、満足する結果を得られないおそれもあっ
た。
【0012】また、高位合成において動作記述から生成
されたRTL記述の正当性を検証する他の手法として
は、例えば動作記述との等価性検証によってRTL記述
の正当性を検証するものも研究されているが、この種の
アプローチを採用した検証は、大抵の場合、次のような
問題を含んでいた。
【0013】すなわち、この種の検証は、解決課題のモ
デリングの困難性から、検証の完全性が保証されず、現
実的では無いという問題を有していた。一方、検証を確
実なものとしようとすると、適用可能な規模が極めて小
さくなってしまったり、その処理を全自動にすることが
できずに、設計者による対話的な操作を必要とする半自
動的なものになってしまうといった制限が課せられるこ
ととなっていた。
【0014】そこで、本発明は、高位合成における合成
の検証に関し、時間及びコストの経済化を図り、且つ、
満足の行く結果を自動的に得ることのできる検証ツール
を提供することを目的とする。
【0015】
【課題を解決するための手段】本発明の発明者らは、上
記課題を解決するにあたり、高位合成の内部で行われる
複数の処理について、その内容を検討した。
【0016】高位合成は、更に詳しくは、動作記述を
受けて、どのステップ(若しくはステート)でどの動作
・演算を実行すべきかを決めるスケジューリングと、
スケジューリングされた動作記述を受けて、必要とされ
るレジスタの数を減らすためのレジスタ・シェアリング
(レジスタ・バインディングともいう。)及び使用する
演算器の数を最適化するための演算器のマッピング(演
算器バインディングともいう。)とに、大別することが
できる。
【0017】これら処理について検討した結果、本発明
の発明者らは、レジスタ・シェアリングにおけるレジス
タの共有時及び演算器マッピングにおける最適化時に比
較的エラーが生じやすいことを見出し、主として、上記
における検証を確立することとした。そのため、以下
に示す本発明の概念は、エラーを含まない適切なスケジ
ュールを前提とする。
【0018】具体的には、本発明により提供される検証
手段は、上記においてスケジューリングされた動作記
述と、上記の結果得られるRTL記述との等価性検証
である。本明細書において、前者、即ちスケジューリン
グされた動作記述は、ファンクショナルRTLとも呼ば
れる。このファンクショナルRTLにおいては、同一の
クロックサイクルにおいて実行される処理がステートと
呼ばれるブロックで示されており、ステート間の遷移関
係によってその手順が表されている。このように、スケ
ジューリングされた動作記述をファンクショナルRTL
と呼ぶに伴い、後者、即ちいわゆるRTL記述は、スト
ラクチュラルRTLと呼ばれ、ファンクショナルRTL
と明確に区別される。このファンクショナルRTLとス
トラクチュラルRTLとの等価性検証は、本発明により
初めて提案されるものである。
【0019】本発明の発明者らは、更なる研究を重ねた
結果、当該等価性検証の内容を、レジスタ・シェアリン
グの正当性検証と、演算器マッピングの正当性検証との
二つの簡単な問題に分けることができることを見出し
た。かかる研究の結果に基づいて、本発明によれば、フ
ァンクショナルRTL及びストラクチュラルRTL間の
等価性検証を、簡単且つ汎用性の高い構成とすることが
できる。
【0020】具体的には、前者の検証を行うために、本
発明は、矛盾仮要因ノード及び矛盾仮結果ノードのペア
からなる矛盾被検証ペアという概念を導入する。矛盾仮
要因ノード、矛盾仮結果ノード、矛盾被検証ペアは、そ
れぞれ、次のように定義される。
【0021】変数x及びyが、ストラクチュラルRTL
において、同一のレジスタRにマッピングされるもの
であり、且つ、変数xと変数yとは、互いに異なる変数
であるとする。また、変数xは、ステートSにおける
演算opの演算結果であり、他方、変数yは、ステー
トSにおける演算opにて演算に用いられるもので
あるとする。即ち、演算opは、変数xを演算結果と
して生成するものであり、演算opは、変数yを演算
に使用するものである。尚、これら2つの演算は異なる
クロックサイクルにおいて実行されるものであり、S
からSに至るパスには、変数をレジスタRにマッピ
ングするような如何なるステートも存在しないものとす
る。このような場合、演算opを矛盾仮要因ノードと
呼び、演算opを矛盾仮結果ノードと呼ぶ。即ち、矛
盾被検証ペアは、演算opと演算opの対である。
尚、本明細書において、「ノード」とは、一の演算(処
理)を意味する。
【0022】かかる矛盾被検証ペア間のパスは、適切な
レジスタ・シェアリングが行われていれば、成立し得な
い。即ち、演算opにて生成された変数xをレジスタ
に入れたとするならば、後のステートにおいて、そ
のレジスタRから読み出され演算に用いられるべき変
数は、変数xでなければならないからである。
【0023】換言すれば、全ての矛盾被検証ペア間のパ
スが不成立であれば、レジスタ・シェアリングの正当性
を確証することが出来る。そこで、本発明においては、
かかるレジスタ・シェアリングの正当性を検証するため
に、考えられる矛盾被検証ペアの全てについて、ペア間
のパスが実際には生じ得ないものであることをチェック
することする。
【0024】一方、演算器マッピングの正当性検証は、
各ステートにおける入力と出力の一致をチェックするこ
とにより行うことができる。
【0025】より、具体的には、まず、検証対象となる
ステートを選択して、そのステートをファンクショナル
RTLから抽出し、簡略化して、ストラクチャーグラフ
を作成する。
【0026】次いで、等価性のチェックを行うに先立っ
て、必要とされるシンボリックな前処理を行う。具体的
には、1)ストラクチャーグラフに含まれる変数を、そ
れぞれマッピングされたレジスタに置き換える:2)転
送先のレジスタ名に「_next」を付す:3)ストラ
クチャーグラフにおける次のステート(State_n
ext)を表すシンボルを、ステートエンコーディング
の情報にしたがって、定数のビットベクタに変換する:
4)ストラクチュラルRTLのステートレジスタに検証
対象のステートに該当するビットベクタを代入し、それ
により、ストラクチュラルRTLの冗長部分を削除す
る。
【0027】次いで、ストラクチャーグラフに対して第
1のアレイArr1を生成し、ストラクチュラルRTL
に対して第2のアレイArr2を生成する。この第1及
び第2のアレイArr1,Arr2は、各々のグラフに
含まれるすべてのノードから構成されるアレイであり、
そのアレイにおいては、各ノードがそのファンイン側の
全てのノードの後に現れるようにして並べられている。
【0028】このようにして、アレイを生成した後、第
1のアレイArr1の中から、タイプ属性がプライマリ
入力(PI),演算器(OP),マルチプレクサ(MU
X)であるノードの出力信号を、基変数(basis variab
le)として他の変数と識別する。
【0029】次に、第1のアレイArr1を探索し,基
変数以外の出力する各ノードについて、そのノードの出
力の論理をそのノードに入力される基変数によって表
し,BDDで表現する。
【0030】次に、ストラクチュラルRTLの各ノード
について、等価チェック用リストと呼ばれるリストを生
成する。このリストは、ストラクチュラルRTLにおけ
る特定の一のノードの出力信号が、ファンクショナルR
TLにおける何れの基変数と如何なる条件の場合に等し
くなるかを示すためのものである。
【0031】更に、この等価チェック用リストの生成
を、前述の第2のArr2(即ち、ストラクチュラルR
TLのノードアレイ)に含まれる各ノードについて、そ
のノードのタイプ毎に後述するようにして、順番にたど
りながら行う。
【0032】そして、ストラクチュラルRTLの一次出
力(PO)ノードに到達したとき、そのノードについて
生成された等価チェック用リストが、そのPOノードに
対応するファンクショナルRTLのOUT信号と条件
“1”で等しいことを示すものであるかどうかをチェッ
クする。
【0033】この結果、条件“1”で等しくならなけれ
ば、ストラクチュラルRTLとファンクショナルRTL
とが不一致であると判定することができる。
【0034】
【発明の実施の形態】以下、本発明の実施の形態による
ファンクショナルRTLとストラクチュラルRTLとの
等価性検証方法について図面を用いて説明する。
【0035】図1を参照すると、動作記述が例示されて
いる。この動作記述の内容について、簡単に説明する
と、入力はai及びbiであり、出力はgoである。ま
ず、入力ai及びbiをa及びbに夫々代入する。この
時、c,d,e,f,gの初期値は、0とする。次い
で、eにa+2を代入し、fにb+2を代入する。その
後、a<bの判断を行い、その結果に応じて、次のよう
な処理を行う。即ち、比較結果が真(true)の場
合、aにa−1を代入し、cにb−aを代入する。一
方、比較結果が偽(false)の場合、bにb−1を
代入し、dにa−bを代入する。更にその後、a<bの
判断を行い、その結果に応じて、次のような処理を行
う。即ち、比較結果が真の場合、gにc+eを代入す
る。一方、比較結果が偽の場合、gにd+fを代入す
る。これにより得られたgは、上述の出力goである。
【0036】このような動作記述をスケジューリングす
ると、図2に示されるような、本実施の形態における等
価性検証の対象となるファンクショナルRTLが得られ
る。図2において、各ステートは、四角形のブロックと
して示されており、ステート間の遷移は、四角形同士を
結ぶ矢印として示されている。また、各ステート内に描
かれた楕円は、それぞれ、一の処理(即ち、ノード)を
表している。各ステート内におけるノードは、それぞ
れ、分岐しないグラフ、若しくは、所定の条件によって
分岐するツリー構造にて示されている。処理がツリー構
造の場合、各ステートに遷移した際に満たしている条件
によって、ツリー構造上の一のパスが選択され、パス上
の楕円で表されるノードの処理が実行されることとな
る。尚、図2において各ノードに付された括弧付きの数
字は、以下の説明に用いられるノードIDである。以下
において、ノードIDとして(XX)と付されているノ
ードは、ノードXXと呼ばれる。
【0037】この図2に示されたファンクショナルRT
Lに対して、レジスタ・シェアリング、演算器マッピン
グ、及びステートエンコーディング等を行うと、図3に
示されるストラクチュラルRTLが得られる。尚、図2
におけるどの変数が図3におけるどのレジスタに割当て
られたか(マッピングされたか)については、図4に示
されている。
【0038】また、図3において、ST,ST,S
は、いずれもステートレジスタを表し、
,...Rは、データレジスタを表す。尚、ステ
ートエンコーディングがどのように行われたかを示す情
報は、図5に示されている。
【0039】ここで、図4において「x−>R」は、
変数xをレジスタRに割当てることを示す。このよう
に、レジスタRに割当てられた変数xは、必要に応じ
て、xとして、同変数xが他のレジスタRに割当て
られた場合と区別され、この場合、レジスタRに割当
てられる変数xとレジスタRに割当てられる変数x
とは、便宜上、別個の変数として取り扱われる。例え
ば、図2及び図4に示された例において、a,b,c,
d,e,f,gは、それぞれ、a,b,c
,e,f,gとして取り扱われる。
【0040】尚、図3に示された次ステート決定回路
は、現在のステートレジスタの値又はそれとデータレジ
スタの値(この例では比較器の出力信号)を入力として
次のステートレジスタの値を決定し、ステート通知信号
stateを出力する回路である。次ステート決定回路
の出力するステート通知信号stateは、ステートレ
ジスタをデコードして得られるものであり、0から7ま
での値を有する。また、図3において、データパス部の
台形で描かれた部品はマルチプレクサであり、セレクタ
信号として動作するステート通知信号stateの値に
よって、その入力を切り替えるものである。
【0041】以下、この図2及び図3に例示されたファ
ンクショナルRTL及びストラクチュラルRTLとの等
価性検証について、他の図面も参照しつつ、説明を行
う。
【0042】本実施の形態によるファンクショナルRT
LとストラクチュラルRTLとの等価性検証は、図4に
示されるレジスタ・マッピング情報及び図5に示される
ステート・エンコーディング情報を利用して、図2及び
図3に示されるファンクショナルRTL及びストラクチ
ュラルRTL間の等価性を検証するものである。
【0043】この本実施の形態による検証手順は、概
略、次の2つに大別することができる。一方は、レジス
タ・シェアリングの正当性検証であり、他方は、演算器
マッピングの正当性検証である。
【0044】まず、レジスタ・シェアリングの正当性検
証について、説明する。概略、レジスタ・シェアリング
の正当性検証は、矛盾仮要因ノード及び矛盾仮結果ノー
ドからなる矛盾被検証ペアを検出し、そのペア間のパス
が実際には生じ得ないものであることを証明することに
よって行われる。
【0045】図6は、このレジスタ・シェアリングの正
当性検証の手順を、Cライクな記述にて示したものであ
る。図6において、「:=」は、左項に右項の内容を代
入する演算子であり、「≠」は、C言語における!=と
同義の演算子である。また、図6において、「Sche
dG」は、グラフとして捉えられたファンクショナルR
TLを示す。尚、この図6に示された手順を説明するに
あたって、同じサフィックスを付された変数の集合を示
すものとして、集合Mという概念を導入する。即ち、
集合Mは、レジスタRにマッピングされる変数
,y,...,zを元として有するものである
(M={x,y,...,z})。この集合M
に関する情報は、レジスタ・シェアリングの正当性検
証を行うにあたって、予め与えられているものとする。
【0046】以下、この図6に示されたレジスタ・シェ
アリングの正当性検証手順について、その概略を説明す
る。尚、この概略説明に現われるサブルーチン等につい
ては、後に詳細に説明される。
【0047】レジスタシェアリングの正当性検証手順
は、全てのMに対して夫々適用される(1行目)。こ
の1行目に記載された内容を詳述すると、まず、1−1
行目において、集合Mの要素数が1以下であるか否か
が判断される。ここで、集合M の要素数が1以下であ
るということは、レジスタRがシェアリングされない
ことを意味する。即ち、レジスタRに関するシェアリ
ングの正当性を検証する必要も生じない。それ故、この
場合、1−4行目へジャンプする(1−1行目)。1−
4行目へジャンプすると、現在対象となっている集合M
に関するループが終了し、次いで、次の集合Mに対
し、1−1行目からの処理が適用されることとなる。
尚、集合Mの要素数が2以上の場合は、以下に説明す
るように、1−2行目以下の手順を適用する。
【0048】集合Mの要素数が2以上の場合、まず、
集合opsetを定義する(1−2行目)。このops
etは、変数xを生成する全ての演算opの集合で
ある。
【0049】次いで、集合opsetに含まれる全ての
演算opについて、夫々、foreachループを実
行する(1−3行目)。このfor eachループ
は、後述されるサブルーチンDFS_CSG、DFS_
RGを順に実行する(1−3−1及び1−3−2行目)
ことにより、開始される。ここで、CSGとは、矛盾仮
要因ノードをルートとし、矛盾仮結果ノードをリーフと
するコンフリクト・サブグラフの意であり、DFS_C
SGとは、矛盾仮要因ノードを出発点として深さ優先探
索(DFS)にてこのコンフリクト・サブグラフを見つ
け出すためのアルゴリズムである。また、RGとは、フ
ァンクショナルRTLにおける開始ノードをルートと
し、矛盾仮要因ノードをリーフとするリーチャビリティ
・サブグラフの意であり、DFS_RGとは、ファンク
ショナルRTLの開始ノードを出発点としてDFSにて
このリーチャビリティ・サブグラフを見つけ出すための
アルゴリズムである。
【0050】更に、for eachループにおいて
は、CSG及びRGが見つけ出された後、それらを矛盾
仮要因ノードにて連結することにより、ファンクショナ
ルRTLの開始ノードをルートとし、矛盾仮結果ノード
をリーフとするコンフリクト・グラフCGを生成する
(1−3−3行目)。後に詳述するが、実際には、DF
S_CSG及びDFS_RGを実行することで、CSG
及びRGの夫々を形成する各ノードにマークがされ、そ
れらマークされたノードを、グラフとみなされたファン
クョナルRTLから抽出することで、CGが作成され
る。
【0051】その後、矛盾被検証ペア間のパスが生じる
か否かを判断するために不要な部分を、CGから、削除
してPGを作成する(1−3−4行目)。ここで、PG
とは、CGから、ここで行われる検証に不要なエッジ及
びノードを切り落としてなる(pruneしてなる)グ
ラフの意である。
【0052】次いで、作成されたPGを参照しながら、
矛盾被検証ペア間のパスが実際に生じてしまう場合に
は、レジスタ・マッピングに違反があった旨を宣言する
(1−3−6行目)一方、集合opsetに含まれる全
ての演算opについてfor eachループを実行
したが、いずれの演算opについても矛盾被検証ペア
間のパスが実際には生じないものであることが確証され
たなら、レジスタ・マッピングの正当性が検証された旨
を宣言する(2行目)。
【0053】次いで、図7を参照して、DFS_CSG
について詳細に説明するのであるが、この説明にあたっ
て、まず、図7に示されるアルゴリズムの見方やそこに
導入されている概念等について説明する。
【0054】まず、図7において、opとは、図6に
示されるopを出発点として、深さ優先探索していく
際に遷移する各ノード(子ノード)である。このop
に関するデータを格納するためのデータ構造は、構造体
として設計され、そのメンバとしてmarkが含まれ
る。
【0055】次いで、図7に示されるアルゴリズムにお
いて導入される2つの集合、uset(op,x
とgset(op,x)について言及する。
【0056】まず、uset(op,x)は、次の
ように定義される。
【0057】uset(opn,xi) = {yi|yi≠xi, yi∈Mi, yi
input to opn} 即ち、変数yは、変数xと異なる変数であって、且
つ、変数xとレジスタを共有することになるような変
数であり、さらには、ノードopにおいて演算に用い
られるものである。また、uset(op,x)と
は、このような変数yの集合である。ここで、変数x
と異なる変数yの集合であるから、変数x自体
は、この集合usetには含まれない。
【0058】一方、gset(op,x)は、次の
ように定義される。
【0059】 gset(opn,xi) = {yi|yi∈Mi, yi assigned by opn} 即ち、変数yは、変数xとレジスタを共有するもの
であり、且つ、ノードopにおいて生成されるもので
ある。また、gset(op,x)とは、このよう
な変数yの集合である。
【0060】次いで、図7に示される各演算子について
言及しておくと、演算子「−>」は、構造体のメンバー
へのポインタ参照を示し、演算子「:=」は、左項に右
項の値を代入する演算子である。
【0061】これらを踏まえた上で、図7を参照する
と、DFS_CSGにおいては、まず、gsetが空集
合であるか否かの判断がなされる(1行目)。
【0062】あるノードopに関し、gsetが空集
合でないということは、opにおいてRにマッピン
グされる変数があるということである。この場合、op
より深いノードについてまでは、深さ優先探索を要し
ない。その後のノードにおいて、Rに割り当てた変数
を用いることは、何等矛盾を生じさせないからである。
【0063】このため、gsetが空集合でないなら
ば、ノードopのメンバmarkに対して、値“0”
を代入し(1−1行目)、マークをしなかった旨を図6
に示されるルーチンに返す(1−2行目)。
【0064】一方、gsetが空集合である場合、次
に、usetが空集合であるか否かについて判断する
(2行目)。usetが空集合でない場合、矛盾被結果
ノードたる演算が特定され、ノードopのメンバma
rkに値“1”を代入し(2−1行目)、ノードop
にマークをした旨を図6に示されるルーチンに返す(2
−2行目)。この2行目の処理において、マークされる
opが、矛盾仮結果ノードとなる。
【0065】もし、gset及びuset共に空集合で
ある場合、取り敢えず、現時点で対象となっているop
については、処理を保留し、その子ノードopの全
てについてDFS_CSGが実行される(3行目)。そ
の結果、子ノードについてマークされた旨が返されたの
であれば(3−1行目)、処理が保留されたノードop
のメンバmarkに値“1”を代入し(3−1−1行
目)、マークした旨を図6に示されるルーチンに返す
(3−1−2行目)。この3行目の処理から明らかなよ
うに、図7に示されるDFS_CSGは、いわゆる再帰
関数である。
【0066】このようなDFS_CSGの処理が終了
し、図6に示されるルーチンへと処理が返されたときに
は、矛盾仮要因ノードと矛盾仮結果ノードとの間のパス
上に存在する各ノードと、矛盾仮結果ノードとにマーク
がされていることとなる。
【0067】以下においては、これら図6及び図7に示
されるアルゴリズムについて、更に理解を深めるべく、
先に例示されたファンクショナルRTL(図2参照)を
用い、図8乃至図14をも参照して説明する。尚、各図
中において、矛盾仮要因ノードは、gen(x)として
表記し、矛盾仮結果ノードは、use(y)として表記
してある。
【0068】レジスタ・シェアリングの正当性検証を行
うにあたって、集合Mに関する情報は、予め与えられ
ているものとする。即ち、図示された例においては、 M={a} M={b} M={c,d} M={e} M={f} M={g} という情報が予め与えられていることとなる。かかる集
合に関する情報が与えられていれば、レジスタRを共
有する変数がc及びdであることを知ることができ
る。
【0069】レジスタRを共有する変数がc及びd
である場合、考慮すべき矛盾被検証ペアは、変数c
を生成する演算が矛盾仮要因ノードであり、且つ、変数
を用いる演算が矛盾仮結果ノードである場合と、変
数dを生成する演算が矛盾仮要因ノードであり、且
つ、変数cを用いる演算が矛盾仮結果ノードである場
合である。
【0070】これらの全ての場合について矛盾被検証ペ
ア間のパスが実際には生じ得ないものであることを証明
するために、先に説明した図6に示されるアルゴリズム
が実行される。
【0071】具体的には、先の集合Mに関する情報か
ら、まず、集合opsetとして、c3を生成するノー
ド3、ノード17とがopとしてセットされ(図6の
1−2行目)、この集合opsetにおいて、ノードI
Dの若い順から順番に、図6の1−3行目に示されるf
or eachループが実行される。
【0072】即ち、まずノード3をopとするDFS
_CSGが実行される。ここで、ノード3の子ノード4
は、変数d3を生成するものであり、従って、集合gs
etは、空集合ではない。そのため、図7を参照すれば
理解されるように、いずれのノードに対してもマークが
されずに処理が終了する。これは、ノード3を矛盾仮要
因ノードとした場合における矛盾仮結果ノードが見つか
らない、すなわち、ノード3を矛盾仮要因ノードとする
矛盾被検証ペアは存在しないことを意味する。言うまで
もなく、このような場合、ノード3を対象とした以降の
処理は、実行されなくて良い。
【0073】次いで、ノード17をopとするDFS
_CSGが実行される。即ち、ノード17を起点ノード
とし、その子ノード18をopとして、DFS_CS
Gが行われる。ノード18は変数dを生成する演算で
はないことから、gsetは空集合であり(図7の1行
目)、また、ノード18はdを使用する演算でもない
ので、usetも空集合であるから(図7の2行目)、
ノード18についての処理は保留され、その子ノードた
るノード23を新たにopとしてDFS_CSGが実
行される(図7の3行目)。その上で、このノード23
をopとするDFS_CSGにおいて、マークした旨
が返されたら、ノード18をマークすることになる。し
かしながら、ノード23をopとした場合においても
gset及びusetが共に空集合であるので、その子
ノードを対象とする処理に移行する。ここで、ノード2
3に続くノードとしては、ノード24とノード25があ
り、まず、ノード24についてDFS_CSGが行われ
る。その結果、ノード24は、dを生成するものでな
く、dを使用するものでもないので、そのメンバma
に0が代入され、マークしなかった旨が返される。
更に続いて、ノード25をopとして、DFS_CS
Gが実行される。ここで、ノード25は、d を使用す
る演算であるので、ノード25のメンバmarkには、
値“1”が代入されると共に、その結果として、ノード
25をマークした旨が返される。これにより、ノード2
3についての保留されていたDFS_CSGが再開され
ることとなり、ノード23のメンバmarkには、値
“1”が代入される(図7の3−1−1行目)と共に、
その結果として、ノード23をマークした旨が返される
(図7の3−1−2行目)。更に、ノード23に関する
DFS_CSGの結果としてマークした旨が返されたこ
とから、再開されたノード18についてのDFS_CS
Gにおいて、ノード18のメンバmarkには値“1”
が代入され(図7の3−1−1行目)、ノード18をマ
ークした旨が返される(図7の3−1−2行目)。この
ようにして、ノード17より下のノードについてDFS
_CSGを行った結果、ノード18,23,25のメン
バmarkには値“1”が格納されていることになり、
これらmark“1”のノードとノード17とを結ぶグ
ラフを抽出することで、図9に示されるような、CSG
が得られる。このCSGが図6の1−3−1行目の結果
である。
【0074】次いで、ノード17をopとしたリーチ
ャビリティ・サブグラフRGが特定される(図6の1−
3−2行目)。このRGは、ファンクショナルRTL上
における初期ステート(State0)からノード17
へ至るパスを求めることによって得られる。この結果、
図10に示されるようなRGが得られる。より具体的に
は、この処理DFS_RGにおいて、求められたパスを
形成する各ノードのメンバmarkには、値“1”が格
納されている。
【0075】このようにして、RGを得た後、これに対
して、先に得ていたCSGを加え、コンフリクト・グラ
フCGを形成する(図6の1−3−3行目)。即ち、C
Gは、この処理を例にとれば、ノード17同士を結ぶよ
うにして、RGとCSGとを連結して得られるグラフで
ある(図11参照)。具体的には、先に実行されたDF
S_CSG及びDFS_RGによりマークされた(ma
rk=1である)各ノードをファンクショナルRTLか
ら抽出することにより、CGを得ることができる。
【0076】次に、上述したような矛盾被検証ペア間の
パスのチェックをするために不要なブランチ及びノード
を、求められたCGから削除する(図6の1−3−4行
目)。この処理は、矛盾被検証ペア間のパスのチェック
を容易なものとし、且つ、短時間で処理をなし得るよう
に取り入れられている。
【0077】具体的には、PGは、CG上において処理
を制御することとなるノードのみを残し、他のノードを
削除することにより、求められる(図6の1−3−4行
目)。例えば図11に示されるCGにおいては、分岐ノ
ードたるノード12及びノード13とそれらに影響を与
えるノードが残され、それ以外のノードは削除されるこ
ととなる。ただし、矛盾仮要因ノードであるノード17
と矛盾仮結果ノードであるノード25とに関しては、処
理内容のみを削除し、ノード自身は残すこととする。
【0078】このPGを求めるためのノードの選択に
は、依存関係グラフと呼ばれるグラフが利用される。依
存関係グラフは、有指向性グラフであり、ノードiがノ
ードjの結果に依存することを、ノードiからノードj
への有向枝を用いて、表現することにより、得られる。
例えば、図11に示されるCGにおいては、ノード12
がノード1及びノード2に依存しており、ノード23が
ノード15に依存しており、更にノード15がノード1
に依存していることから、図12に示されるような依存
関係グラフが成立する。
【0079】この依存関係グラフに従って、不要なノー
ドを削除すると、上述したようなPGが得られる。例え
ば、図11に示されるCGに関して、図12の依存関係
グラフに現われるノード1,2,12,15,23と、
矛盾被検証ペアたるノード17及び25(処理を削除し
たもの)とを残し、それ以外のノードを不要なものとし
て削除することにより、図13に示されるようなPGが
得られる。
【0080】続いて、矛盾被検証ペアたるノード17及
びノード25間のパスが実際には生じ得ないものである
ことの証明が行われる(図6の1−3−5行目)。より
具体的には、図13に示されるPGにおいて、初期ステ
ート(State0)を出発点として、矛盾仮要因ノー
ドたるノード17を経由し、矛盾仮結果ノードたるノー
ド25に至るパスの全てが、実際には生じ得ないもので
あるものであることを証明する。そのために、PGの初
期ステート(State0)から出発して変数の変化に
ついての検証が行われる。
【0081】図13に示されるPGを参照すると、ま
ず、初期ステート(State0)において、変数aに
aiが、変数bにbiがセットされる。ステート1にお
いては何らの処理も実行されないので、続くステート2
に進むと、ノード12に辿り着く。ノード12におい
て、それ以降のパスがノード17、即ち矛盾仮要因ノー
ドを経由するためには、a<bであることが必要であ
る。つまり、ステート0における変数の状態を鑑みる
と、ai<biでなければならないこととなる(条件
1)。
【0082】一方、ステート7において、ノード23か
らノード25(矛盾仮結果ノード)に進むためには、a
≧bであることが必要とされる。ノード23に至るま
で、変数bに関する変化はないことから、bの値は、初
期ステート(State0)において設定されたbiの
ままである。一方、変数aに着目すると、ノード15に
おいて、それまでの値aiから1を引く減算が行われて
いることから、ノード23に至った時点では、変数aの
値は、ai−1となる。即ち、ステート7において、ノ
ード23からノード25に進むためには、即ち、a≧b
であるためには、(ai−1)≧biでなければならな
いこととなる(条件2)。
【0083】しかしながら、これら条件1及び条件2
は、その内容を参照すれば容易に理解されるように、共
に成立することはない。即ち、このようなパスは、実際
には生じ得ないものであることが理解される。
【0084】尚、図13に示されたPGの例において
は、初期ステートから出発して矛盾仮要因ノードを経由
し且つ矛盾仮結果ノードに至るパスが一つしか存在して
いないが、これは、理解を容易にするために簡単な例を
選択したためであり、一般には、かかるパスは複数存在
する。その場合には、上述したパスが成立しないことの
証明を、それら複数のパスの全てについて、行わなけれ
ばならないことは言うまでもない。
【0085】このようなことを静的に証明するために、
本実施の形態においては、CTL(Computation Tree L
ogic)モデルチェッキングという技術を利用する。この
CTLモデルチェッキングとは、命題(ここでは、パス
の成立性)をCTLと呼ばれる一種の時相論理(Tempor
al Logic)で記述し、その真偽を判定する技術である。
一般に、CTLにおいては、計算木(Computation Tre
e)上での変数の値の取り方を指定する演算子が定義さ
れており、それらを使って、変数値間の時間順序関係を
記述することができる。また、時相演算子としては、E
Fp,AFp,AGp及びAXpなどが定められてお
り、例えば、AGpは、「現在から見て、どのような状
態遷移をしても、いつもpが成立する」ことを意味する
演算子である。この時相演算子は、判定したい命題に応
じて、自由に組合せることが出来る。
【0086】かかるCTLモデルチェッキングを利用す
るために、GとUという2つの変数をPGに与え、目的
とする計算木を得る。具体的には、初期ステートにおい
てG=0,U=0と初期値を与え、矛盾仮要因ノードで
G=1をセットし、矛盾仮結果ノードでU=1をセット
する。例えば、図13に示されるPGに対して、このよ
うにしてG及びUという変数を与えると、図14に示さ
れるグラフが得られる。
【0087】このグラフを計算木として、本実施の形態
においては、計算木上において、 AG(G==1 → AG(U==0)) というCTLの真偽を検証する。尚、上記したAGpの
内容から理解されるように、この記述されたCTLは、
「いかなる状態においても、もしGが1であるならば、
その後に到達するいかなる状態においてもUは常に0で
ある。」を意味する。
【0088】このCTLが真でなければ、矛盾被検証ペ
ア間のパスが成立してしまうこととなり、レジスタ・シ
ェアリングに違反があったことが検出される。一方、C
TLが真であれば、現時点でfor eachループの
対象であったノード17に関しては、矛盾被検証ペア間
のパスが実際には生じ得ないものであることが証明され
る。
【0089】このような処理は、同様にして、ノード4
及びノード21を夫々opとしたfor eachル
ープにおいても行われる。即ち、変数dをレジスタR
にマッピングするにもかかわらず、後にRに格納さ
れた変数cを演算に用いるような矛盾被検証ペアにつ
いても、そのペア間のパスが実際には生じ得ないもので
あることの検証が行われる。
【0090】ノード4をopとしたfor each
ループは、図8を参照すれば理解されるように、DFS
_CSGを実行した時点で、まず、ノード17にて集合
gsetが空集合でないと判断されるためノード17よ
り下のノードに対する処理が行われず、また、ノード2
1においても集合gsetが空集合でないと判断される
ためノード21より下のノードに対する処理も行われな
い。結果として、ノード4を起点とするfor eac
hループは、矛盾被検証ペアすら検出されなかったとし
て処理を終了する。
【0091】一方、ノード21を起点とするfor e
achループにおいては、DFS_CSGを実行した時
点で、ノード21からノード22、ノード23を経由し
て、ノード24に至るCSGが求められる。次いで、こ
の求められたCSGに対し、初期ステートからノード2
1に至るまでのRGが接続されて、CGが求められる。
その上で、CGから依存関係グラフに従って不要なノー
ド及びエッジを削除して、PGを求め、そのPGに対し
変数G,Uを与え、更に、上述したCTLの真偽を判定
する。その結果、ノード21を矛盾仮要因ノードとし、
ノード24を矛盾仮結果ノードとした矛盾被検証ペア間
のパスは、実際には生じ得ないものであることが証明さ
れ、それにより、ノード21をopとしたfor e
achループは、終了する。
【0092】このようにして、集合opsetに含まれ
る全ての元opに対して、foreachループを実
行し、いずれのループにおいても図6の1−3−6行目
に示される宣言がなされなければ、結果、考え得る全て
の矛盾被検証ペアについて、そのペア間のパスが実際に
は生じ得ないものであることが証明されたことになり、
結果として、レジスタ・シェアリングの正当性が確かめ
られ、図6の2行目に示される宣言がなされる。
【0093】尚、上述したレジスタ・シェアリングの正
当性検証手順においては、集合opsetに含まれる各
ノード毎に、図6の1−3−1行目乃至1−3−7行目
の一連の処理を行うこととしている。しかしながら、例
えば、1−3−1行目における処理を集合opsetに
含まれる全てのノードに対して実行した後、その結果を
保持しておき、各ノード毎にその後の処理を行うように
するなど種々の変形が可能であることは言うまでもな
い。
【0094】次いで、演算器マッピングの正当性検証に
ついて、説明する。概略、演算器マッピングの正当性検
証は、ステート毎にファンクショナルRTLとストラク
チュラルRTLとの等価性をステート単位で確認してい
くことで行われる。具体的には、ファンクショナルRT
LからストラクチュラルRTLを合成する過程では、レ
ジスタやオペレータ(演算器)のシェアリングやマルチ
プレクサの生成、コントロールロジックの最適化などが
行われることから、これらが正しく行われているか否か
を検証することになる。
【0095】まず、演算器マッピングの正当性を検証す
るにあたっては、検証対象となるステートを1つ決定す
る。
【0096】検証対象となるステートが決定されると、
ファンクショナルRTLからそのステートに該当する部
分を抽出し、ストラクチャーグラフに変換する。ストラ
クチャーグラフGとは、G=(V,A)で示される有指
向グラフである。ここで、Vは、ノード(頂点)の集合
であり、記述された演算を実行するハードウェア要素を
表す。また、枝(エッジ)は、各要素のストラクチャル
な接続を表す。集合Vの元であるノードvは、夫々、I
N、OUT、OP,LOGIC及びMUXのいずれかの
タイプの属性を有している。ここで、INは、プライマ
リ入力変数及び現在のステートにおけるレジスタ変数の
値を示すためのものであり、OUTは、プライマリ出力
変数及び次のステートにおけるレジスタ変数の値を示す
ためのものである。また、OPは、任意のワード・レベ
ルの演算器を示すためのものであり、これには、算術演
算器や比較演算器などが含まれる。LOGICは、コン
トロール・ロジック又はランダム・ロジックを示すため
のものである。尚、MUXは、マルチプレクサである。
【0097】以下、先に例示されたファンクショナルR
TL(図2参照)及びストラクチュラルRTL(図3参
照)を用い、具体的に説明する。
【0098】図2のファンクショナルRTLからステー
ト7(State7)を抽出し、ストラクチャーグラフ
を作成すると図15に示すようなグラフが得られる。
【0099】次いで、等価性のチェックを行うに先立っ
て、次に掲げる4つの前処理を行う。
【0100】1) ストラクチャーグラフに含まれる変
数を、それぞれマッピングされたレジスタに置き換え
る。これによってストラクチャーグラフとストラクチュ
ラルRTLとは、同じレジスタを持つことになる。
【0101】2) データ転送の転送先と転送元のレジ
スタを区別するために、転送先のレジスタ名に「_ne
xt」を付す。例えば、R1=R1+R2というレジス
タ転送は、R1_next=R1+R2と表現されるこ
ととなる。
【0102】3) ストラクチャーグラフにおける次の
ステート(State_next)を表すシンボルを、
ステートエンコーディングの情報にしたがって、定数の
ビットベクタに変換する。この変換により、例えば、次
ステートがステート5(State5)であれば、ビッ
トベクタ“100”で示され、次ステートがステート0
(State0)であれば、ビットベクタ“000”で
示される。このような変換を行うのは、ストラクチュラ
ルRTLのステートレジスタとの等価性を判定するため
である。
【0103】4) ストラクチュラルRTLのステート
レジスタに検証対象のステートに該当するビットベクタ
を代入する。さらに、ビットベクタを定数伝播させ、ス
トラクチュラルRTLの冗長部分を削除する。
【0104】このような前処理、詳しくは上記1)〜
3)の処理を図15に示されるストラクチャーグラフに
対して施すと、図16に示されるグラフが得られる。
【0105】一方、図2に示されるストラクチュラルR
TLに対して上述した前処理(詳しくは、上記2)及び
4)の処理)を施すと、図17に示されるグラフが得ら
れる。即ち、図2に示されるストラクチュラルRTLに
おいて、次ステート決定回路に対してビットベクタ“1
11”(State7に相当)を入力すると、レジスタ
の入力であるMUXと加算器の前段であるMUX及
びレジスタR及びR を入力とするMUX以外のMU
Xは、不要なMUXであるので削除される。また、減算
器の前段のMUXが削除されたことに伴い、減算器の入
力もなくなるので、その減算器自体も削除する。併せ
て、削除されたMUX等に関連する線を消去すると、図
17に示されるグラフが得られる。
【0106】このようにストラクチャーグラフ及びスト
ラクチュラルRTLに対する前処理を行った後、次に説
明する等価性のチェックが行われる。
【0107】等価性のチェックにおいては、まず、スト
ラクチャーグラフとストラクチュラルRTLに対して第
1及び第2のアレイArr1,Arr2をそれぞれ生成
する。この第1及び第2のアレイArr1,Arr2
は、各々のグラフに含まれるすべてのノードから構成さ
れるアレイであり、そのアレイにおいては、各ノードが
そのファンイン側の全てのノードの後に現れるようにし
て並べられている。このアレイArrは、場合によって
は、複数種考えられるが、上記条件を満たす限り、いず
れを選択しても良い。
【0108】図16及び図17に示される例に関する第
1及び第2のアレイArr1,Arr2としては、例え
ば、次のようなものが挙げられる。なお、この説明のた
めに図16及び図17における全てのノードに対し、通
し番号をつけ、括弧付の数字で図中に示すこととした。
【0109】 Arr1={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} Arr2={17,18,19,20,21,22,23,24,25,26,27,28} このようにして、アレイを生成した後、第1のアレイA
rr1の中から、タイプ属性がPI,OP,MUXであ
るノードの出力信号を、基変数(basis variable)とし
て他の変数と識別する。例示した第1のアレイArr1
においては、{1, 2, 3, 4, 5, 11, 12, 13}がPIノー
ドであり、{6, 7, 8}がOPノードであり、{9}がMUX
ノードであることから、{1, 2, 3, 4, 5, 6, 7, 8, 9,
11, 12, 13}で示されるノードの出力信号が基変数とな
る。説明上、各基変数は、夫々、対応するノードの通し
番号にアルファベット「u」を付して表わすこととす
る。例えば、通し番号(7)が付された加算器の出力は
上述した基変数であるが、この基変数は“u7”として
示されることとなる。
【0110】次に、第1のアレイArr1を探索し,基
変数以外の出力する各ノードについて、そのノードの出
力の論理をそのノードに入力される基変数によって表
し,BDDで表現する。例示した第1のアレイArr1
において出力が基変数ではないノードは、ノード10,
14,15,16である。本例において、これらのノー
ドは、間に他の論理を介在させること無く、その直前に
配された基変数を出力とするノードと直結されている。
したがって、これらのノード10,14,15,16の
出力論理は、それぞれ次のようになる。
【0111】ノード10の出力論理=u9 ノード14の出力論理=u11 ノード15の出力論理=u12 ノード16の出力論理=u13 次に、ストラクチュラルRTLの各ノードについて、等
価チェック用リストと呼ばれるリストを生成する。この
リストは、ストラクチュラルRTLにおける特定の一の
ノードの出力信号が、ファンクショナルRTLにおける
何れの基変数と如何なる条件の場合に等しくなるかを示
すためのものである。以下において、等価チェック用リ
ストの各要素は、(u,c)のペアで表わされる。ここ
で、「u」は、ファンクショナルRTLにおける基変数
を表し、一方、「c」は、ストラクチュラルRTLにお
ける特定のノードが「u」で示される基変数と等しくな
るための条件を表す。例えば、ストラクチュラルRTL
における特定の一のノードvに関して生成された(u
5,u3&u4)という等価チェック用リストは、基変
数u3と基変数u4の論理積u3&u4が真であるとい
う条件の下で、基変数u5とノードvが等しいことを表
している。
【0112】等価性のチェックは、この等価チェック用
リストの生成を、前述の第2のArr2(即ち、ストラ
クチュラルRTLのノードアレイ)に含まれる各ノード
について、そのノードのタイプ毎に後述するようにし
て、順番にたどりながら行う。そして、ストラクチュラ
ルRTLのPOノードに到達したとき、そのノードにつ
いて生成された等価チェック用リストが、そのPOノー
ドに対応するファンクショナルRTLのOUT信号と条
件“1”で等しいことを示すものであるかどうかをチェ
ックする。条件1で等しくならなければ、ストラクチュ
ラルRTLとファンクショナルRTLとが不一致である
と判定することができる。
【0113】以下、各ノードにおける等価チェック用リ
ストの生成について説明する。
【0114】PIノードについては先述の前処理におい
てマッチングがとられていることから、その等価チェッ
ク用リストは一義的であり、従って、簡単に生成するこ
とができる。
【0115】属性タイプがOP,LOGIC,MUXで
あるノードの場合、そのノードに入力される入力信号の
等価チェック用リストを出力側に伝播させることによっ
て、当該ノードの出力信号についての等価チェック用リ
ストを生成することができる。この入力信号の等価チェ
ック用リストの伝播のさせ方は、各タイプのノード毎に
多少異なっており、以下、これについての説明がなされ
る。
【0116】OPノードにおける等価チェック用リスト
の伝播:2入力のOPノードvを例に挙げ説明する。こ
こで、2つの入力信号の等価チェック用リストが、夫
々、 {(x,c), ..., (x,c)} と {(y,d), ..., (y,d)} であるとする。この場合、まず、これらの要素の各ペア
について、条件の論理積(&で表記)が“0”であるか
否かをチェックする。例えば、(x,c)と
(y,d)については、その条件の論理積(c
)が“0”であるかどうかをチェックすることとな
る。もし“0”でなければ、ファンクショナルRTLの
ストラクチャグラフの中から同じOPタイプ(+、−、
>など)でxとyを入力とするようなノードを検索
する。そして、検索されたノードの夫々について、その
出力を表す基変数をuとした場合、(u,c&d
)をノードvの等価チェック用リストに加える。
【0117】LOGICノードにおける等価チェック用
リストの伝播:LOGICノードについては、等価チェ
ック用リストに代えて、等価チェック用リストと同内容
を表すようなBDDを生成する。例として、2入力のA
NDノードvについて説明する。ここで、2つの入力信
号の等価チェック用リストが、夫々、 {(x,c), ..., (x,c)} と {(y,d), ..., (y,d)} であるとする。これらの等価チェック用リストは、夫
々、次のようにしてBDDに変換される。
【0118】 BDD1 = ∪( for i = 1 to m ) { xi ∩ ci} BDD2 = ∪( for i = 1 to n ) { yi ∩ di} このようにして、入力信号の等価チェック用リストが夫
々BDDに変換された後、この入力信号に相当するBD
Dを入力として、対象であるLOGICノードの論理に
従い、演算することにより、ノードの出力のBDDを得
る。ここで例示しているノードvは、ANDタイプのノ
ードであるので、BDDとBDDのAND演算を行
い、それにより、ノードvのBDDを得ることができ
る。
【0119】MUXノードにおける等価チェック用リス
トの伝播:ここでは、n本のデータ入力v〜vを持
つMUXノードvについて考える。それぞれのデータに
対応する条件をSel〜Selで表わす。即ち、こ
れらの条件が真である場合、対応するデータ信号がMU
Xの出力信号となる。入力データのうちの特定のデータ
をMUXノードvの出力に伝播するためには、当該特定
のデータvと、そのデータに対応するSelとの論
理積をとる。それにより、MUXノードvの出力信号に
関する等価チェック用リストが生成される。たとえば、
データvの等価チェック用リスト(u,c)に対
しては、(u ,c&Sel)が生成され、これ
が、MUXノードvの等価チェック用リストに一要素と
して加えられる。
【0120】次いで、生成した(u,c)をストラクチ
ュラルRTLのノードvについての等価チェック用リス
トの要素として追加等するときの手順について説明す
る。この手順は、ADD_EQUIVALENCEと呼
ばれ、次の2つのステップ1)及び2)を備える。
【0121】1) ある変数uがファンクショナルRT
LのストラクチャーグラフにおいてMUXの入力データ
であるとする。この場合、上述した手順のみに従えば、
(u,c)がMUXノードvの等価チェック用リストの
要素として加えられる。ここで、そのMUXノードの出
力がu′であり、MUXノードに対するセレクタ信号の
うち、uに対応するセレクタ信号がSELであったと
する。このとき、ADD_EQUIVALENCEにお
いては、(u,c)をノードvの等価チェック用リスト
の要素として追加するかわりに、(u′,c&SE
)をノードvの等価チェック用リストの要素として
追加する。
【0122】2) ノードvの等価チェック用リストの
中に、uを含む要素が既に存在するか否かチェックす
る。その結果、もし、u′==uであるような(u′,
c′)があれば、(u′,c′)を(u′,c′+c)
に置き換える。
【0123】以上の手順にしたがって、第2のアレイ Arr2={17,18,19,20,21,22,23,24,25,26,27,28} に関する等価チェック用リストを生成した例を次に示
す。
【0124】図17を参照すれば理解されるように、第
2のアレイArr2において、{17,18,19,2
0,21}は全てPIであり、上述したように、ストラ
クチュラルRTLに対して前処理を行った時点で、既に
ファンクショナルRTLのストラクチャーグラフ(図1
6)のPIとの対応はとれている。従って、これらに関
する等価チェック用リストの生成は一義的になされ、そ
の結果、それぞれ、(u,1),(u,1),(u
,1),(u,1),(u,1)となる。
【0125】第2のアレイArr2において、ノード2
2はOPノード(比較器)である(図17参照)。その
入力は{17}及び{18}であり、それぞれについ
て、既に等価チェック用リスト(u,1)及び
(u,1)が生成されている。ここで、uとu
入力に持つ比較器のノードを、図16に示されるストラ
クチャーグラフから検索すると,ノード6が見つかる。
したがってOPノード22の等価チェック用リストに
(u,1&1)を加えることができる。他に、加える
べき要素があれば、その都度、等価チェック用リストに
加えられることとなるが、{22}に関しては、他に考
慮すべき要素がない。従って、OPノード22に関する
等価チェック用リストは、(u,1&1)=(u
1)となる。
【0126】また、図17を参照すれば理解されるよう
に、第2のアレイArr2において、ノード23はMU
Xノードである。詳しくは、MUXノード23は、比較
器であるOPノード22の出力が“1”の時にノード2
0をセレクトし、ノード22の出力が“0”のときにノ
ード21をセレクトする。ここで、ノード22の等価チ
ェック用リスト(u,1)を論理式にするとuであ
る。そのため、ノード20に対応する制御条件がu
あり、ノード21に対応する制御条件が!u6となる。
一方、ノード20と21の等価チェック用リストは、夫
々、先述のように、(u,1)と(u,1)であ
る。従って、ノード23についての等価チェック用リス
トの要素は、(u,1&u)と(u,1&!
)となる。
【0127】また、第2のアレイArr2において、ノ
ード24はOPノード(加算器)である(図17参
照)。また、その入力は、ノード19及びノード23の
出力であり、夫々、等価チェック用リストは、(u
1)と、(u,u),(u,!u)である。こ
こで、条件の論理積が“0”にならないペアについて考
察すると、該当するペアは、{(u,1),(u
)}と{(u,1),(u,!u)}の2つ
である。そこで、まず、uとuを入力とする加算器
を図16に示されるストラクチャーグラフから検索する
と、ノード7が見つかる。次いで、uとuを入力と
する加算器を図16に示されるストラクチャーグラフか
ら検索すると、ノード8が見つかる。従って、ノード2
4の等価チェック用リストに一要素として、(u,u
)と(u,!u)を加える。
【0128】ここで、uとuが図16に示されるス
トラクチャーグラフにおいてMUXの入力である点に気
付かれたい。この場合、上述したADD_EQUIVA
LECEの手順によって、(u,u)と(u,!
)は、(u,u),(u,!u6)に置き換
わることとなる。この結果、一の等価チェック用リスト
に同一の基変数uが現れることになるから、更に、A
DD_EQUIVALENCEの手順が適用され、(u
,uor!u)=(u,1)が求められる。こ
のようにして、求められた(u9,1)が最終的に、ノ
ード24の等価チェック用リストとなる。
【0129】第2のアレイArr2において、ノード2
5は、ノード24の出力に直結されるLOGICノード
である。従って、ノード24の等価チェック用リスト
(u,1)をBDDに変換し,uという論理式を
得、これをノード25についてのリストに与える。
【0130】更に、第2のアレイArr2において、ノ
ード26,27,28はLOGICノードである。それ
ぞれの論理を計算すると、次ステート決定回路が間違っ
ていなければ、ST、ST,、STに代入された
ビットベクタ1,1,1によって、それぞれ0,0、0
という定数になるはずである。従って、これらが、それ
ぞれのノードのリストに加えられる。
【0131】再度、これらの結果を表示してみると、表
1に示されるようになる。
【0132】
【表1】 かかる結果を参照すると、ストラクチュラルRTLのP
Oノードの1つであるノード25(R6_next)に
ついての等価チェック用リストがuであり、一方、ス
トラクチャーグラフにおけるノード10についてのBD
Dもuであることから、ストラクチュラルRTLのP
Oノード25がファンクショナルRTL内の対応するR
6_nextと等しいことが理解される。同様に、他の
POノードであるノード26,27,28もファンクシ
ョナルRTL内の対応するPOと等しいことがわかる。
即ち、ストラクチュラルRTLにおけるPOノードにつ
いて生成された等価チェック用リストは、全て、ファン
クショナルRTL(ストラクチャーグラフ)におけるO
UT信号と、条件“1”で等しい。これにより、ステー
ト7(State7)に関し、ストラクチュラルRTL
とファンクショナルRTLの等価性が検証できたことに
なる。
【0133】本例においては、本発明における種々の手
法を説明すべく、ステート7を例として説明してきた
が、これは、等価性検証をステート7から始めなければ
ならないという意味ではない。また、ステート7につい
てのみ等価性検証を行えば良いという意味でもない。
【0134】即ち、全てのステートについて、各ステー
ト毎に、上記したような手法に従い、ストラクチュラル
RTLとファンクショナルRTLとの等価性を検証し、
全てのステートにおいてその等価性が確証されて初め
て、演算器のマッピングの正当性が検証される。
【0135】
【発明の効果】以上説明したように、本発明によれば、
ファンクショナルRTLとストラクチュラルRTLとの
等価性検証を、レジスタ・シェアリングの正当性検証
と、演算器マッピングの正当性検証との二つに分けるこ
ととしたため、簡単に検証を行うことができ、従来技術
と比較して、ターゲットとなる回路規模を大きくするこ
とができると共にその検証の精度を向上させることがで
き、更に、当該本発明の概念を実現するための装置等に
おいても多くのリソースを開放することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態において例示される動作記
述を説明するために用いられる図である。
【図2】図1に示される動作記述をスケジューリングし
て得られるファンクショナルRTLを示す図である。
【図3】図2に示されるファンクショナルRTLに対
し、レジスタ・シェアリング及び演算器のマッピングを
して得られるストラクチュラルRTLを示す図である。
【図4】レジスタ・シェアリング時におけるマッピング
の情報を示す図である。
【図5】ステートエンコーディングの情報を示す図であ
る。
【図6】レジスタ・マッピングの正当性の検証手順を説
明するための図である。
【図7】DFS_CSGを説明するための図である。
【図8】図2に示されるファンクショナルRTLにおけ
る矛盾被検証ペアを説明するための図である。
【図9】図8においてノード17を矛盾仮要因ノードと
した場合のCSGを示す図である。
【図10】図8からノード17について抽出して得られ
るRGを示す図である。
【図11】図9及び図10に示されるCSGとRGとを
足して得られるノード17についてのCGを示す図であ
る。
【図12】図11に示されるCGに関する依存関係グラ
フを説明するための図である。
【図13】図12に示される依存関係グラフを利用し
て、図11に示されるCGから不要部分を削除して得ら
れるPGを示す図である。
【図14】図13に示されるPGを用いた検証に対しC
TLモデルチェッキングを適用する場合について、説明
するための図である。
【図15】図2に示されるファンクショナルRTLのS
tate7に対応するストラクチャーグラフを示す図で
ある。
【図16】図15に示されるストラクチャーグラフに前
処理を施して得られるストラクチャーグラフを示す図で
ある。
【図17】図3に示されるストラクチュラルRTLにお
いて、State7に着目して前処理を施して得られる
ストラクチュラルRTL(グラフ)を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スプラジッド バタチャリヤ アメリカ合衆国,ニュージャージー 08540,プリンストン,4 インディペン デンス ウエイ,エヌ・イー・シー・ユ ー・エス・エー・インク内 (72)発明者 アナンド ラグナサン アメリカ合衆国,ニュージャージー 08540,プリンストン,4 インディペン デンス ウエイ,エヌ・イー・シー・ユ ー・エス・エー・インク内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 スケジューリングされた動作記述に対す
    るストラクチュラルRTL(register-transfer leve
    l)の実装の正当性を検証する方法であって、レジスタ
    ・シェアリングの正当性を検証するステップと、演算器
    のマッピングの等価性を検証するステップを備えること
    を特徴とする正当性検証方法。
  2. 【請求項2】 請求項1に記載の正当性検証方法であっ
    て、前記レジスタ・シェアリングの正当性を検証するス
    テップは、 (a)矛盾仮要因ノード及び矛盾仮結果ノードのペアか
    らなる矛盾被検証ペア間の複数のパスからなるグラフを
    特定し、 (b)当該矛盾被検証ペア間のパスが実際には生じ得な
    いものであることを検証する ことを特徴とする正当性検証方法。
  3. 【請求項3】 請求項1に記載の正当性検証方法であっ
    て、前記レジスタ・シェアリングの正当性を検証するス
    テップは、全てのレジスタRに関し、対応する集合M
    が一又は複数の元を有していた場合であっても、前記
    レジスタに対する全ての矛盾被検証ペア間のパスが実際
    には生じ得ないものであることを検証するステップを備
    えることを特徴とする正当性検証方法。
  4. 【請求項4】 請求項1に記載の正当性検証方法であっ
    て、演算器のマッピングの等価性を検証するステップ
    は、ファンクショナルRTL中の構成要素を用いて、シ
    ンボリック・シミュレーションに基づいて、等価性をチ
    ェックすることにより行われることを特徴とする正当性
    検証方法。
  5. 【請求項5】 請求項2に記載の正当性検証方法であっ
    て、ステップ(a)における矛盾被検証ペア間のパスの
    特定は、深さ優先探索手順にて行われることを特徴とす
    る正当性検証方法。
  6. 【請求項6】 請求項2に記載の正当性検証方法であっ
    て、ステップ(b)における検証は、前記グラフにおけ
    る全てのパスの誤りをテストしていくことにより行われ
    ることを特徴とする正当性検証方法。
  7. 【請求項7】 スケジューリングされた動作記述のグラ
    フであるストラクチャーグラフと、ストラクチュラルR
    TLとの等価性をチェックするシンボリック・シミュレ
    ーションの方法であって、 (a) ストラクチャーグラフとストラクチュラルRT
    Lに対して、夫々、各々のグラフに含まれるすべてのノ
    ードから構成される第1及び第2のアレイArr1,A
    rr2であって、そのアレイにおいては、各ノードがそ
    のファンイン側の全てのノードの後に現れるようにして
    並べられている第1及び第2のアレイArr1,Arr
    2を生成し、 (b) タイプ属性が一次出力(PI),演算器(O
    P),マルチプレクサ(MUX)であるノードの出力信
    号を、基変数(basis variable)として他の変数と識別
    し、 (c) 第1のアレイArr1を探索し,基変数以外の
    出力する各ノードについて、そのノードの出力の論理を
    そのノードに入力される基変数によって表し,BDDで
    表現し、 (d) ストラクチュラルRTLの各ノードについて、
    当該ノードの出力信号がファンクショナルRTLにおけ
    る何れの基変数と如何なる条件の場合に等しくなるかを
    示すためのリストである等価チェック用リストを生成
    し、 (e) 当該等価チェック用リストの生成を、前記第2
    のArr2に含まれる各ノードについて、順番にたどり
    ながら行い、 (f) ストラクチュラルRTLの一次出力(PO)ノ
    ードに到達したとき、そのノードについて生成された等
    価チェック用リストが、そのPOノードに対応するファ
    ンクショナルRTLのOUT信号と条件“1”で等しい
    ことを示すものであるかどうかをチェックし、 (g) ステップ(f)の結果、条件“1”で等しくな
    らなければ、ストラクチュラルRTLとファンクショナ
    ルRTLとが不一致であると判定すると共に、 (h) ステップ(f)の結果、条件“1”で等しくな
    った場合には、ストラクチュラルRTLとファンクショ
    ナルRTLとが等価であると判定する ことを特徴とするシンボリック・シミュレーション方
    法。
  8. 【請求項8】 請求項4に記載の正当性検証方法におい
    て、前記シンボリック・シミュレーションは、 (a) ストラクチャーグラフとストラクチュラルRT
    Lに対して、夫々、各々のグラフに含まれるすべてのノ
    ードから構成される第1及び第2のアレイArr1,A
    rr2であって、そのアレイにおいては、各ノードがそ
    のファンイン側の全てのノードの後に現れるようにして
    並べられている第1及び第2のアレイArr1,Arr
    2を生成し、 (b) タイプ属性が一次出力(PI),演算器(O
    P),マルチプレクサ(MUX)であるノードの出力信
    号を、基変数(basis variable)として他の変数と識別
    し、 (c) 第1のアレイArr1を探索し,基変数以外の
    出力する各ノードについて、そのノードの出力の論理を
    そのノードに入力される基変数によって表し,BDDで
    表現し、 (d) ストラクチュラルRTLの各ノードについて、
    当該ノードの出力信号がファンクショナルRTLにおけ
    る何れの基変数と如何なる条件の場合に等しくなるかを
    示すためのリストである等価チェック用リストを生成
    し、 (e) 当該等価チェック用リストの生成を、前記第2
    のArr2に含まれる各ノードについて、順番にたどり
    ながら行い、 (f) ストラクチュラルRTLの一次出力(PO)ノ
    ードに到達したとき、そのノードについて生成された等
    価チェック用リストが、そのPOノードに対応するファ
    ンクショナルRTLのOUT信号と条件“1”で等しい
    ことを示すものであるかどうかをチェックし、 (g) ステップ(f)の結果、条件“1”で等しくな
    らなければ、ストラクチュラルRTLとファンクショナ
    ルRTLとが不一致であると判定すると共に、 (h) ステップ(f)の結果、条件“1”で等しくな
    った場合には、ストラクチュラルRTLとファンクショ
    ナルRTLとが等価であると判定する ことを特徴とする正当性検証方法。
JP11226890A 1998-11-06 1999-08-10 スケジュ―リングされた動作記述に対するストラクチュラルrtlの正当性検証方法 Pending JP2000148808A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/187,927 US6163876A (en) 1998-11-06 1998-11-06 Method for verification of RTL generated from scheduled behavior in a high-level synthesis flow
US09/187927 1998-11-06

Publications (1)

Publication Number Publication Date
JP2000148808A true JP2000148808A (ja) 2000-05-30

Family

ID=22691061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11226890A Pending JP2000148808A (ja) 1998-11-06 1999-08-10 スケジュ―リングされた動作記述に対するストラクチュラルrtlの正当性検証方法

Country Status (2)

Country Link
US (1) US6163876A (ja)
JP (1) JP2000148808A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017224128A (ja) * 2016-06-15 2017-12-21 株式会社日立製作所 半導体lsi設計装置および設計方法
CN112148456A (zh) * 2020-09-30 2020-12-29 成都华微电子科技有限公司 Fpga高层次综合调度方法

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226777B1 (en) * 1998-11-25 2001-05-01 Agilent Technologies, Inc. Method and system for improving the performance of a circuit design verification tool
US6606737B1 (en) * 1999-04-15 2003-08-12 Sycon Design, Inc. Method for forming a structural similarity group from a netlist of an integrated circuit
US6378112B1 (en) * 1999-06-14 2002-04-23 Motorola, Inc. Verification of design blocks and method of equivalence checking of multiple design views
US6691078B1 (en) * 1999-07-29 2004-02-10 International Business Machines Corporation Target design model behavior explorer
US6336206B1 (en) * 1999-09-27 2002-01-01 Synopsys, Inc. Method and apparatus for structural input/output matching for design verification
US6745160B1 (en) * 1999-10-08 2004-06-01 Nec Corporation Verification of scheduling in the presence of loops using uninterpreted symbolic simulation
US6591403B1 (en) * 2000-10-02 2003-07-08 Hewlett-Packard Development Company, L.P. System and method for specifying hardware description language assertions targeting a diverse set of verification tools
US6965852B2 (en) * 2000-12-15 2005-11-15 International Business Machines Corporation Pseudo random test pattern generation using Markov chains
US6715107B2 (en) * 2000-12-26 2004-03-30 International Business Machines Corporation Method and system for reducing the computation tree to include only model behaviors defined succinctly by a user via regular expressions as being of interest
US6728939B2 (en) * 2001-01-08 2004-04-27 Siemens Aktiengesellschaft Method of circuit verification in digital design
WO2002073844A2 (en) * 2001-02-14 2002-09-19 Dynarc Inc. Dba Dynamic Network Architecture Inc. In Ca Hardware boot protocol
US7149675B2 (en) * 2001-03-09 2006-12-12 Intel Corporation System and method for automatically mapping state elements for equivalence verification
US7188091B2 (en) * 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US7761397B2 (en) * 2001-03-21 2010-07-20 Huelsman David L Rule processing method and apparatus providing automatic user input selections
US6742174B1 (en) * 2001-10-19 2004-05-25 Cadence Design Systems, Inc. Similarity-driven synthesis for equivalence checking of complex designs
US20030115559A1 (en) * 2001-12-13 2003-06-19 International Business Machines Corporation Hardware validation through binary decision diagrams including functions and equalities
US7092360B2 (en) * 2001-12-28 2006-08-15 Tropic Networks Inc. Monitor, system and method for monitoring performance of a scheduler
US6687882B1 (en) * 2002-01-31 2004-02-03 Synplicity, Inc. Methods and apparatuses for non-equivalence checking of circuits with subspace
EP1512085A4 (en) * 2002-03-20 2010-08-04 Verde Sabor Assets Llc RULE PROCESSING SYSTEM AND METHOD
US7587379B2 (en) * 2002-03-20 2009-09-08 Huelsman David L Method and system for capturing business rules for automated decision procession
US6665853B2 (en) * 2002-03-27 2003-12-16 International Business Machines Corporation Netlist consistency checking
TWI276179B (en) * 2002-04-15 2007-03-11 Adv Lcd Tech Dev Ct Co Ltd Semiconductor device having semiconductor films of different crystallinity, substrate unit, and liquid crystal display, and their manufacturing method
US7055116B2 (en) * 2002-05-28 2006-05-30 Cadence Design Systems, Inc. Assertion-based transaction recording
US7310790B2 (en) * 2002-12-03 2007-12-18 Intel Corporation Automatic symbolic indexing methods for formal verification on a symbolic lattice domain
US20040107174A1 (en) * 2002-12-03 2004-06-03 Jones Robert B. Parametric representation methods for formal verification on a symbolic lattice domain
US6986110B1 (en) * 2003-01-02 2006-01-10 Hewlett-Packard Development Company, L.P. Automated method and system for backtracing of instruction parameters from specified instruction in test cases
US7137082B1 (en) 2003-03-28 2006-11-14 Magma Design Automation Inc. Reduced architecture processing paths
US7627842B1 (en) 2003-06-03 2009-12-01 Cadence Design Systems, Inc. Method and system for verification of circuits with encoded signals
US7340702B2 (en) * 2003-07-23 2008-03-04 Cadence Design Systems, Inc. Method and apparatus for induction proof
US7308659B1 (en) * 2003-08-14 2007-12-11 Altera Corporation Apparatus and method for RTL modeling of a register
US7552102B2 (en) * 2003-09-29 2009-06-23 Huelsman David L Rule processing method, apparatus, and computer-readable medium to provide improved selection advice
US7565337B2 (en) * 2003-09-29 2009-07-21 Huelsman David L Batch validation method, apparatus, and computer-readable medium for rule processing
US7587380B2 (en) * 2003-09-29 2009-09-08 Huelsman David L Rule processing method, apparatus, and computer-readable medium to generate valid combinations for selection
US7076753B2 (en) * 2003-12-18 2006-07-11 Synopsys, Inc. Method and apparatus for solving sequential constraints
US20050193304A1 (en) * 2003-12-19 2005-09-01 Board Of Regents, The University Of Texas System Circuit modeling apparatus, systems, and methods
US7222317B1 (en) * 2004-04-09 2007-05-22 Calypto Designs Systems Circuit comparison by information loss matching
US7734559B2 (en) * 2004-09-28 2010-06-08 Huelsman David L Rule processing method and apparatus providing exclude cover removal to simplify selection and/or conflict advice
US7373618B1 (en) 2004-11-12 2008-05-13 Cadence Design Systems, Inc. Method and system for selection and replacement of subcircuits in equivalence checking
US7509599B1 (en) * 2004-12-10 2009-03-24 Synopsys, Inc Method and apparatus for performing formal verification using data-flow graphs
US7290229B2 (en) * 2005-02-03 2007-10-30 International Business Machines Corporation Method and system for optimized handling of constraints during symbolic simulation
US7735035B1 (en) * 2005-06-01 2010-06-08 Cadence Design Systems, Inc. Method and system for creating a boolean model of multi-path and multi-strength signals for verification
US7647219B2 (en) * 2005-07-11 2010-01-12 Texas Instruments Incorporated Event-driven test framework
US8464188B1 (en) 2005-08-23 2013-06-11 The Mathworks, Inc. Multi-rate hierarchical state diagrams
US7437690B2 (en) * 2005-10-13 2008-10-14 International Business Machines Corporation Method for predicate-based compositional minimization in a verification environment
US20070168372A1 (en) * 2006-01-17 2007-07-19 Baumgartner Jason R Method and system for predicate selection in bit-level compositional transformations
US7356792B2 (en) * 2006-01-26 2008-04-08 International Business Machines Corporation Method and system for enhanced verification by closely coupling a structural overapproximation algorithm and a structural satisfiability solver
US7650579B2 (en) * 2006-05-25 2010-01-19 Freescale Semiconductor, Inc. Model correspondence method and device
US20080154906A1 (en) * 2006-12-22 2008-06-26 International Business Machines Corporation Selecting information for ad hoc exchange
US20090188753A1 (en) * 2008-01-30 2009-07-30 Feng Chia Liang Rope climbing device
US8825464B2 (en) * 2008-09-02 2014-09-02 Oracle America, Inc. Method and apparatus for parallelization of sequential power simulation
US8001498B2 (en) * 2008-10-27 2011-08-16 Synopsys, Inc. Method and apparatus for memory abstraction and verification using same
US8140316B2 (en) * 2008-11-05 2012-03-20 Qualcomm, Incorporated Systems and methods for improving digital system simulation speed by clock phase gating
US8181134B2 (en) * 2009-10-16 2012-05-15 International Business Machines Corporation Techniques for performing conditional sequential equivalence checking of an integrated circuit logic design
US20120166168A1 (en) * 2010-12-23 2012-06-28 Oracle International Corporation Methods and systems for fault-tolerant power analysis
EP2546767B1 (en) 2011-07-11 2014-12-31 OneSpin Solutions GmbH Digital circuit verification monitor
US9032345B2 (en) 2011-07-11 2015-05-12 Onespin Solutions Gmbh Digital circuit verification monitor
US8813036B2 (en) * 2012-04-17 2014-08-19 International Business Machines Corporation Visual representation of a difference between Cartesian product models
US10268798B2 (en) 2015-09-22 2019-04-23 International Business Machines Corporation Condition analysis

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572437A (en) * 1990-04-06 1996-11-05 Lsi Logic Corporation Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
US5557531A (en) * 1990-04-06 1996-09-17 Lsi Logic Corporation Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation
US5956257A (en) * 1993-03-31 1999-09-21 Vlsi Technology, Inc. Automated optimization of hierarchical netlists
US5493508A (en) * 1994-06-01 1996-02-20 Lsi Logic Corporation Specification and design of complex digital systems
US5712791A (en) * 1995-10-31 1998-01-27 Sun Microsystems, Inc. Method and apparatus for designing a circuit by analyzing selected artificial hardware dependencies inserted into a dynamic dependency graph

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017224128A (ja) * 2016-06-15 2017-12-21 株式会社日立製作所 半導体lsi設計装置および設計方法
CN112148456A (zh) * 2020-09-30 2020-12-29 成都华微电子科技有限公司 Fpga高层次综合调度方法
CN112148456B (zh) * 2020-09-30 2023-05-16 成都华微电子科技股份有限公司 Fpga高层次综合调度方法

Also Published As

Publication number Publication date
US6163876A (en) 2000-12-19

Similar Documents

Publication Publication Date Title
JP2000148808A (ja) スケジュ―リングされた動作記述に対するストラクチュラルrtlの正当性検証方法
US8661383B1 (en) VLSI black-box verification
JP2001142937A (ja) 回路のスケジューリング正当性チェック方法及びスケジュール検証方法
US7124070B2 (en) Method of and apparatus for, and program for verifying equivalence between behavioral description and register transfer level description
CN109543212B (zh) 可编程逻辑器件的功能测试方法、装置及计算机存储介质
KR100521289B1 (ko) 트랜지스터 회로의 타이밍 특성 추출 방법, 타이밍 특성라이브러리를 기억한 기억 매체, lsi의 설계 방법, 및게이트 추출 방법
US8522182B2 (en) Generation of an end point report for a timing simulation of an integrated circuit
JP2004013720A (ja) 論理回路のタイミング制約モデル生成方法、論理回路のタイミング制約モデル生成プログラム、およびタイミング制約モデルを用いるタイミングドリブンレイアウト方法
CN113642285A (zh) 确定和验证时钟域交叉中的亚稳态
JPH06274568A (ja) 階層図形データの展開方法
CN107784185B (zh) 一种门级网表中伪路径的提取方法、装置及终端设备
CN111624475B (zh) 大规模集成电路的测试方法及系统
Jose et al. SMT based false causal loop detection during code synthesis from polychronous specifications
US9104829B2 (en) Method of validating timing issues in gate-level simulation
US10460060B2 (en) Checking equivalence between changes made in a circuit definition language and changes in post-synthesis nets
Fujita Equivalence checking between behavioral and RTL descriptions with virtual controllers and datapaths
Stempkovskiy et al. Fast and accurate back propagation method for reliability evaluation of logic circuits
CN115408967A (zh) 通过结构分析标识安全相关端口与其安全机制的关联
CN114791865A (zh) 一种基于关系图的配置项自洽性检测方法、系统和介质
CN111400994B (zh) 网表形式验证方法、装置、计算机设备及存储介质
JP4702357B2 (ja) 動作レベル記述とレジスタ転送レベル記述間の等価性検証方法及び装置並びにプログラム
Sadeghi-Kohan et al. Improving polynomial datapath debugging with HEDs
Plassan et al. Improving the efficiency of formal verification: the case of clock-domain crossings
Suryasarman et al. Rsbst: an accelerated automated software-based self-test synthesis for processor testing
US20230083003A1 (en) Optical path tracing in an optical circuit design

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020416