【発明の詳細な説明】
ハードウエア記述言語ソースレベル分析のためのアーキテクチャおよび方法
ならびにデバッギングシステム
発明の背景
発明の分野
この発明は、ディジタル回路用のコンピュータ援用設計の分野に関し、特に、
論理合成または動作合成を使用してHDLソーステキストから構成されたディジ
タル回路を分析し、デバッグすることに関する。
関連技術の説明
ディジタル回路の設計者は、多くの設計上の条件の下にディジタル回路が正し
い機能を実行することを保証する必要がある。例えば、ディジタル回路は、適当
な時間内に正しい計算を行わなければならない。ディジタル回路が半導体チップ
上において占める面積は、一定の範囲内に維持されなければならない。ディジタ
ル回路が動作中に消費する電力も、特定の範囲内に維持されなければならない。
ディジタル回路は、経済的に製造可能になるためには、検査可能なものではなら
ない。経済的に有用なディジタル回路は、設計、製造、検査または使用に所定以
上の長い時間がかかるものであってはならない。
典型的には、ディジタル回路設計処理は、機能および条件に関する設計者の時
には初期的なアイデアを、実際に使用可能なディジタル回路を製造するために必
要なツール準備(ツーリング)に翻訳(または変換)する作業を伴う。例えば、
フルカスタムの半導体チップは、最終的な製品を検査するテストパターンの作成
のみならず、基板に対する化学薬品の沈積を定義するマスクの作成を必要とする
。前記ツーリングの他の例として、フィールドプログラマブル・ゲートアレイの
作成は、アーキテクチャの構成を指定するために、チップにダウンロードすべき
ビ
ットパターンを生成することを必要とする。コンピュータ援用設計(CAD)用
のツールは、設計者の開発アイデアを、設計上の条件を満足させる実際に使用可
能なディジタル回路を製造するために必要なツーリングに翻訳するためのインタ
ラクティブ翻訳を容易なものにする。その条件を満たすよう設計をインタラクテ
ィブ式に調整する処理は、デバッグと呼ばれている。ディジタル回路の様々な要
素の様々な特性を確認する処理は、分析と呼ばれている。ディジタル回路をデバ
ッグするために、設計者は、先ず、前記回路を分析し、問題発生箇所を特定しな
ければならない。
通常の半導体チップについてCADツールを使用するディジタル設計処理の典
型的な従来例は、次のようである。設計者は、先ず、実行すべき特定の機能、お
よび、該機能の実行がクリアしなければならないタイミングまたは面積のような
条件を頭に描く。従来例によると、次に、前記設計者は、頭の中で、所望の機能
を、ゲート、加算器、レジスタ、RAM等の構成要素からなる高レベルの総合技
術回路に変換する。
次に、前記設計者は、半導体メーカによって提供される技術を選択し、そこか
ら前記回路要素を選択することになる。このように特定の技術から様々な回路要
素を選択する処理は、マッピングと呼ばれている。このマッピング処理によって
、マップド回路(マッピング済み回路)が作成される。回路をマップするために
、設計者は、CADスキーマチック構成図入力ツールを使用して、所望の機能を
実行するマップド回路のスキーマチック構成図を作成する。このマップド回路は
、シリコンメーカによって供給される特定の技術ライブラリのソフトウエア表現
による要素を含んでいる。前記回路のスキーマチック構成図は、ゲートまたはト
ランジスタのような基本的な機能要素が、演算論理ユニット等のより複雑な機能
を構成するためにどのように接続される、かを示すものである。さらに、最近の
スキーマチック構成図入力ツールにより、設計者が回路設計を相互接続された個
々の部分に階層的に分割することが可能になり、ユーザが各前記個々の部分の詳
細を個別に指定することが可能になる。例えば、オレゴン州WilsonvilleのMento
r GraphicsによるDesign Architectは、これらのスキーマチック構成図入力機能
を提供するものである。
上記のもののような従来のCADツールは、前記スキーマチック構成図におけ
る接続関係およびその他の情報から、前記マップド回路を評価し、該回路を構成
するために必要なツーリングを指定することができる。この種のツールは、様々
な方法で前記マップド回路を評価する。例えば、多くの場合、商業的に入手可能
なCADツールは、設計者によって指定された入力パターンに対する前記マップ
ド回路の応答を予測するシミュレータを有する。前記オレゴン州WilsonvilleのM
entor GraphicsによるQuickSimIIは、一般的に使用されているシミュレータであ
る。その他の一般的なCADツールは、マップド回路設計における最長のタイミ
ング経路を特定する経路遅延アナライザである。米国、カルフォルニア州Mounta
in ViewのSynopsys,Inc.によるDesign Timeは、経路遅延分析を行うツールであ
る。
また、レイアウトツールによってディジタル回路の幾何学的レイアウトを生成
する能力を有するCADツールが、従来より存在している。カルフォルニア州Sa
n JoseのCadenceによるCell3 Ensembleは、この種のツールの一例である。レイ
アウトツールは、半導体チップを製造するためのマスクの作成に必要である。
さらに、ディジタル回路が所定の設計ルールを満たしているか否かをチェック
し、エラー発生位置を設計者に知らせるCADツールが、従来より存在している
。前記設計ルールは、製造された特定のディジタル回路が動作することを確認す
る手助けとなる。
また、マップド回路の検査可能度を判定し、自動的にテストパターンを作成す
るCADツールも、従来より存在している。マップド回路における検査不能な要
素を設計者に示すことにより、該設計者は、適切なチップまたは回路を製造する
確率を高めるような修正をなすことができる。自動的にテストパターンを作成す
るのは、製造直後のディジタル回路をより完全に検査するためである。
上述したように、伝統的には、マップド回路設計を分析するという概念は、デ
ィジタル回路設計者がスキーマチック構成図入力ツールを用いて特定の実行を指
定し、その後、様々な回路評価ツールを使用して、該実行が前記設計者が望んだ
ことを行ったことを確認する、という処理を意味する。例えば、前記設計者は、
マップド回路が指定された入力から適切な出力を発生したか否かを判定するため
に、シミュレータを使用する。前記設計者は、その設計がタイミング条件を満た
すのに十分な高速性を有するか否かを判定するために、前記経路遅延アナライザ
を使用することができる。また、前記レイアウトツールは、前記設計が面積的な
条件を満たすか否かを設計者に知らせることができる。
特定の設計が設計者の条件を満たさない場合、該設計者はその設計を修正して
いた。例えば、マップド回路が遅すぎる場合、設計者は、前記マップド回路にお
ける遅すぎる要素を特定し、性能を高めるためにこれを修正する。マップド回路
のサイズが大きすぎる場合、設計者は、より少ないまたは小さい回路要素を使用
できるよう前記マップド回路の修正を行う。さらに、マップド回路が必要な動作
を行わない場合、設計者は、前記回路が正しい機能を実行するよう、回路要素を
変更したり、これらの相互接続を変更したりする。上記従来のCADツールはマ
ップド回路すら分析を開始するので、タイミングまたは面積上の問題点は、容易
に設計者に認識されることができる。設計者がマップド回路の構成を指定するの
で、該設計者は周到にこれを調整できる。しかし、設計者が頭の中で所望の機能
からマップド回路への翻訳を行うので、前記CADツールが機能上の問題点を特
定する能力は制限されていた。言い換えれば、前記CADツールは、ディジタル
回路に関する構成情報を含むが、ディジタル回路の高レベル機能に関するデータ
は含んでいなかった。
論理合成は、設計者に対して、所望の機能に関するハードウエア記述言語(H
DL)による記述を前記所望の機能を実行するディジタル回路の構成を示す記述
に翻訳する自動的なメカニズムを提供するために開発されたものである。該論理
合成は、設計者が回路動作を指定するためにVHDL,Verilogまたはその他の論理合
成ソース言語を使用して前記所望の機能を記述することから開始される。これに
より、前記設計者はより高いレベルのディジタル回路を指定でき、CADツール
は、設計者がディジタル回路の機能を定義するのを補助をすることができる。こ
の場合、ソフトウエアトランスレータ(翻訳プログラム)が、その記述を、前記
設計者の記述とステートメントごとに直接対応する総合技術構造に変換する。
論理合成において、前記翻訳の後に論理最適化が行われる。この最適化は次の
2つのステップを伴う。先ず、直接的に翻訳された前記構造を、機能的に同等で
はあるがより改善された構造に変換する。次に、前記最適化処理は、設計マッピ
ングと呼ばれる任意のステップを行う。このマッピングでは、前記総合技術構造
を、特定の技術ライブラリからの構造に変換する。前記技術ライブラリは、シリ
コンメーカによって供給され、該メーカが製造できる部品の種類を示すものであ
る。前記技術ライブラリは、前記シリコンメーカによって構築可能な例えばゲー
トの面積および遅延等の機能および物理的特性に関する特定情報を含むものであ
る。また、前記技術ライブラリは、合成システムに実施されるよう設計されてい
る。前記合成システムは、技術ライブラリを使用して、シリコンメーカがディジ
タル回路を作るために利用可能なゲートを選択することができる。
しかし、不幸にも、論理オプティマイザによって実行される変換は、一般的に
、最適化前の回路に存在した構造を修正するものである。このため、設計者によ
って容易に認識されないマップド回路が作られることになる。設計者がマップド
回路によって実行されるオリジナル機能を容易に認識できないという事実は、最
適化されたマップド回路の分析を難しいものとする。従来の評価ツールは前記マ
ップド回路におけるタイミングまたは面積上の問題点を確認できるが、設計者は
、多くの場合、これらの問題点を容易にHDLソースの記述に関連づけることが
できない。理論的には、設計者は、前記HDLの記述のどの要素が問題点を発生
したかをマニュアルに判定できる。従って、前記設計者は、前記HDLの記述に
所望の変更をなし、ディジタル回路全体を合成し直すことができる。マップド回
路における、ほとんど変更なく論理オプティマイザを通過した要素に前記設計者
の問題点が発生した場合、マニュアル式の後方追跡が役に立つかもしれない。し
かし、一般的に、前記最適化処理は多くの変更をなし、オリジナルの総合技術回
路における多くのポイントは前記マップド回路には存在しないので、前記後方追
跡を困難または不可能なものにする。
さらに、論理最適化による回路改善のレベルは、一貫したものではない。前記
最適化問題に関する計算上の複雑さのため、論理オプティマイザは、最適なアル
ゴリズムというよりも、略正確なアルゴリズムに依存しなければならない。初期
的な回路が少し異なっても前記オプティマイザが行う選択にかなり影響するので
、前記オプティマイザの効果は、ある意味では、ランダムである。従って、前記
オプティマイザによる改善率を一貫して予測することは不可能である。前記HD
L
記述における小さな変更は、相当異なるマップド回路をもたらすだけでなく、相
当程度より大きなまたは小さなマップド回路をもたらす可能性がある。
1つの可能な解決法として、設計者は、合成ソフトウエアによって作られたマ
ップド回路を直接に修正することができる。しかし、この場合、前記設計者の論
理変更はその後の翻訳ステップおよび最適化ステップによって上書きされるので
、前記設計者はHDL記述からの設計を合成し直すことができない。これは、前
記合成設計法を使用して得られた価値を下げることになる。
HDLソーステキストを総合技術回路およびマップド回路にリンクしようとす
る1つの従来の方式は、カルフォルニア州Mountain ViewのSynopsys,Inc.による
Design Analyzerの1つの特徴である“Source to Gates”であった。該Source t
o Gatesは、設計者がHDLソースとスキーマチック構成図との間をトレース(
追跡)することを可能にする。また、該Source to Gatesは、合成後マップ構造
をHDLソースまで追跡する能力が前記HDLソースに存在していた最適化不変
(最適化によって変化しない)回路構造に制限されるので、有用ではなかった。
該Source to Gatesは、設計者が総合技術回路のスキーマチック構成図とHDL
ソースとの間を追跡することを可能にするが、この特徴はあまり有用なものでは
なかった。というのは、この特徴が設計者にとって直接意味の無い前記総合技術
回路を見ることを必要とし、前記ソースに対する分析が提供されないからである
。
前記Source to Gatesにおけるその他の制約条件は、これがロー番号およびコ
ラム番号でテキスト位置を格納するということである。このため、スキーマチッ
ク構成図からHDLテキストまでトレースする際、前記Source to Gatesは、適
切なパーズ(構文解析)ノードの最初の符号のみを強調し、該パーズノードの範
囲を示さない。テキストからスキーマチック構成図にトレースする場合、前記So
urce to Gatesには2つのモードが存在する。“完全一致モード”において、ス
キーマチック構成図へのトレースを可能にするために、ユーザはパーズノードの
最初の文字上にカーソルを置くよう強制される。また、“最も近い一致モード”
において、最も近くのトレース可能な文字を見つけるために、テキストを前後に
サーチする。このモードにおいて、ユーザは、何がトレースされるのか正確には
知らない。
最適化されたマップド回路の分析における後方追跡上の問題点を最小化するた
めのその他の方法は、設計を階層的要素に分割し、これらの分割された要素を変
換し、最適化することである。この変換および最適化のためのツールは、一般的
に、主要入力および主要出力をトラバースしないので、HDL記述は特定のマッ
プドサブ回路と相関させられることができ、従って、前記後方追跡上の問題を軽
減することができる。しかしながら、このような再分割は、前記マップド回路の
問題箇所を分離するためには、設計者が機能的には正しいが問題のあるHDLソ
ースコードを書き直さなければならない、という不都合を有する。さらに、この
方法にあっては、オプティマイザが前記設計者による分割によって拘束されるの
で、前記オプティマイザが面積を小さくし回路の動作速度を高める能力を相当制
限することになる。
さらに、設計者が前記分割による分析結果によって判断を誤るおそれがある。
回路における設計者のバグは、それが遅すぎたり、大きすぎたりすることがある
。その原因をつきとめるためにHDLソースを分割することによって、分割前の
ソースとは異なる回路になる可能性がある。従って、前記設計者が追及している
問題点が分析処理自体によって影響されることがある。
通常、設計処理の終盤段階で設計に小さな変更を組み入れる必要がある場合、
シンセサイザを使用してHDLソース記述をマップド回路に変換することは、実
質的な計算上の問題を生じることもある。例えば、設計がほとんど完成する段階
で、設計者が特定信号の反転等の小さな機能的な変更をなす必要性を発見する場
合がある。設計者は、直感的には、このような小さな変更がディジタル回路にお
けるレイアウトレベルに至るほんの小さな変更を必要とすると予期する。しかし
、従来の変換および最適化のためのツールでは、小さな変更はマップド回路およ
び回路レイアウトにおける相当な変更を必要とする可能性が極めて大きい。現在
のツールでは、設計者は、多くの場合、その設計をより小さな回路部分に分割し
、その影響を直接的に関係する回路部分に制限することによって、この種の問題
点を制限することができる。しかし、上述のように、不適切または不当に狭い分
割は、前記最適化ツールが設計条件に合うマップド回路を構成する能力を制限す
るおそれがある。
従来の設計およびデバッギング処理の概要
図1は、ハードウエア記述言語(HDL)によって記されたディジタル回路を
設計し、分析し、デバッグするための従来の処理の概要を示すものである。この
処理は、設計者がHDLソースコードを書くことから始まる(ステップ100)
。ディジタル回路を記すために使用される典型的な言語はVHDLであり、この
VHDLについては、米国、ニュージャージー州、Piscatawayに在るInstitute
of Electrical and Electronic Engineersから入手可能なIEEE Standard VHDL L
anguage Reference Manualに記載されているが、ここではその出典のみを示す。
このVHDLは、Very high speed integrated circuit Hardware Description
Languageを意味する。ディジタル回路を記すために使用されるその他の言語はVe
rilogであり、このVerilogは、米国、カルフォルニア州、Palo Altoに在るAutom
ata Publishing Companyによって1990年に発行されたEliezer Sternheim,Rajvir
SinghおよびYatin TrivediによるHardware Modeling with Verilog HDLに記載
されているが、ここではその出典のみを示す。また、Verilogは、Open Verilog
Internationalによって1991年11月に発行されたVerilog Hardware Description
Language Reference Manual(LRM),version 1.0にも記載されているが、ここで
はその出典のみを示す。この明細書で使用される例はVHDLによるものである
が、その原理は他の回路記述言語にも容易に適用される。
所望の機能に関するHDL記述を書いた後、設計者は、HDLシミュレータを
使用して、その記述に組込まれた機能をシミュレートする(ステップ101)。
このような機能シミュレータの一例は、米国、カルフォルニア州、Mountain Vie
wに在るSynopsys,Inc.から入手可能なVHDL System Simulatorである。この機能
シミュレータは、タイミング、面積または電力上の条件を考慮しない場合におい
て、その回路が入力に対して正しい値を出力するか否かを、設計者が判定するこ
とを可能にする。前記機能シミュレータは、機能のみのシミュレーションを比較
的高速で行うことができ、これにより、設計者は回路が所望の出力を発生するか
否かを判定できるようにする。
機能に問題がある場合、設計者は、シミュレーション出力を調べ、ステップ1
00のHDLコードを書く処理に戻ることによって、その機能の問題を調整する
ことができる(ステップ102)。機能シミュレーションは、総合技術回路また
はマップド回路を生成しないで、直接的に前記ソース記述を実行する。従って、
機能シミュレーション時に特定された問題点は、容易に、HDLソース内の原因
に関連付けられることができる。
前記HDLソースによって記述されたディジタル回路が正しい機能を提供する
ものであると設計者が信じる場合、該設計者は、前記合成処理に関する、最大ク
ロック周期、回路の総面積および最大電力などの条件を記述する(ステップ10
3)。この処理部分は、米国、カルフォルニア州、Mountain Viewに在るSynopsy
s,Inc.から入手可能なDesign Compiler Family Reference Manual,Version 3.1a
に記載されているが、ここではその出典のみを示す。このような条件記述を使用
するCADソフトウエアの例としては、CadenceによるSynergy,Mentor Graphics
によるAutologic、および、SynopsysによるDesign Compilerがある。
前記条件を設定した後、設計者は、前記HDLコードを書くステップ100で
生成されたHDL記述からマップド回路を合成する(ステップ104)。このス
テップは、前記HDLソース記述を、該HDLソースのステートメントに直接対
応する初期的総合技術に翻訳することを含む。この機能を実行するソフトウエア
の一例は、Synopsys,Inc.から入手可能なVHDL Compiler Reference Manual,Vers
ion 3.1aに記載されているが、ここではその出典のみを示す。上記変換後、前記
初期的総合技術回路は、ステップ103で設定された実行条件に適合したマップ
ド回路に最適化される。この最適化の前に、前記初期総合技術回路のどのエレメ
ントが前記HDLソース記述のどの要素に対応するのかを確認することは、簡単
な作業である。通常、前記最適化処理の間に実行される広範な処理により、最適
化後のこのような確認は、レジスタおよびモジュールインターフェース境界にお
けるものを除いて、略不可能になる。
図2は、ステップ104の合成処理に関わる中間データ構造を示す。該合成処
理は、HDLソース900から始まる。翻訳プログラム(トランスレータ)は、
HDLの構成を示すパーズ木901と呼ばれるデータ構造を作成し、その後、該
パーズ木を初期的総合技術回路902に変換する。カルフォルニア大学バークレ
イ校における、Russ B.Segal'sの修士論文“BDSYN:Logic Design Translator”
(
Memo#UCB/ERL M87/33)は、このようなトランスレータを記載しているが、ここ
ではその出典のみを示す。1990年12月21日に出願され、Synopsys,Inc.に譲渡さ
れた、Gregoryらによる“Method and Apparatus for Synthesizing HDL Descrip
tions with Conditional Assignments”というタイトルの米国特許出願No.07/6
32、439も、このような変換プログラムを記載しているが、ここではその出典のみ
を示す。これを実行するツールの一例は、Synopsys,Inc.から入手可能なHDL com
pilerのVersion 3.1aである。
最適化処理を行うオプティマイザは、初期的総合技術回路902からマップド
回路903を生成するために使用される。前記最適化処理は、1981年7月発行のI
BM Journal of Research and Development、第25巻、第4号、272〜280ページに
おいてJ.Darringer,W.Joyner,L.BermanおよびL.Trevillyanによって発表された
“Logic Synthesis Through Local Transformations”に説明されているが、こ
こではその出典のみを示す。さらに、前記最適化処理は、1984年9月発行のIBM J
ournal of Research and Development、第28巻、第5号、537〜545ページにおい
てJ.Darringer,D.Brand,W.JoynerおよびL.Trevillyanによって発表された“LSS:
A System for Production Logic Synthesis”にも説明されているが、ここでは
その出典のみを示す。また、前記最適化処理は、1987年11月発行のIEEE Transac
tions on Computer Aided Design、第6巻、第6号、1062〜1081ページにおいてR.
Brayton,R.Rudell,A.Sangiovanni-VincentelliおよびA.Wangによって発表された
“MIS:A Multiple-Level Logic Optimization System”にも説明されているが、
ここではその出典のみを示す。また、前記最適化処理は、1989年にカルフォルニ
ア大学バークレイ校においてR.Rudellによって発表された博士論文“Logic Synt
hesis for VLSI Design”にも説明されているが、ここではその出典のみを示す
。さらに、前記最適化処理は、Synopsys,Inc.から入手可能なDesign Compiler F
amily Reference Manual,Version 3.1aに記載されているが、ここではその出典
のみを示す。この機能を実行するソフトウエアの一例は、Synopsys,Inc.から入
手可能なDesign Compilerである。最適化処理を実行するソフトウエアのその他
の例としては、Cadence,Inc.から入手可能なSynergy、および、Mentor Graphics
から入手可能なAutoLogicがある。
最適化のための1つの方法は、1つまたは複数の要素をグループ化し、それら
の要素を、それより優れた特性を有する機能的に同等の要素の集合と置換するこ
とである。こうして、オリジナルの回路と機能的に同等の中間回路が形成される
。その後、この中間回路を構成する要素のうちのいくつかまたはすべてを、次の
置換のためにグループ化することができる。この処理は、総合技術回路またはマ
ップ論理回路について実行可能である。この処理は、オプティマイザが図1のス
テップ103で課された条件を満足させるまで、すなわち、それ以上の改善が不
可能になるまで繰り返される。
前記総合技術回路の構成要素は、前記最適化処理を行っても保存され続けなけ
ればならない構成要素グループ、および、機能的同等物によって置換可能な構成
要素グループである、2つのグループに分けられる。例えば、論理オプティマイ
ザは、機能が維持される限り、ブール論理のブロックを他のブロックと置換する
ことができる。一般的に、置換可能な構成要素は除去可能でもある。前記最適化
処理を行っても保存され続ける構成要素グループとしては、主要入力、主要出力
およびレジスタがある。
マップド回路形成後、設計者は、図1に示すように、通常の分析ツールを使用
して前記マップド回路を分析することができる(ステップ105)。例えば、設
計者は、前記マップド回路が使用する面積、または、該マップド回路における最
も長い遅延経路を見積もることができる。この分析によって、設計者は前記回路
の問題点を知ることができる。図1に示すように、多くの場合、分析レポート9
04はテキスト文書である。
分析ツールを使用してタイミング、面積および電力上の問題点を明らかにした
後、設計者は、これらの問題点を解決するために、前記マップド回路を調整する
(ステップ108)。理想的には、設計者は、回路の機能が明記されているHD
Lに戻って調整を行う。しかし、現在では、HDLソースにおける問題点に至っ
た特定箇所を確認することが難しいので、HDLの適切な箇所を修正することは
効果的なデバッギング技術ではない。その後、設計者は、そのモジュールを手作
業で書き変えることによって、検査すべきより多くの主要入力および主要出力を
作ることができる。これは、大変時間がかかるので、一般的には、最後の手段と
して行われる。代案として、前記問題が軽減されたか否かを調べるために、設計
者は、前記条件を調整して(ステップ103)、前記マップド回路を合成する(
ステップ104)ことができる。
ステップ105で前記回路の分析が終わると、設計者は前記の設計を製作に移
す(ステップ106)。
システム性能
前記論理合成処理による変換によって生じる分析上の問題点の他に、分析結果
を演算し、表示するCADシステムを効率的且つ経済的に構成することに関する
困難も存在する。概念的には、設計記述後において、ディジタル回路を分析する
には、設計者が、反復的に、(1)面積、タイミングまたは電力のような、設計
者が知りたい特定の特性を調べ、(2)前記特性についての情報を提供する分析
の種類を特定し、(3)該CADに対して前記分析を実行するよう指示し、(4
)前記分析の結果を表示し、(5)その表示から所望の特性を検出する、ことが
必要である。ディジタル回路用のCADツールは、従来より、前記指示および表
示を行うステップを演算的に効率の良いものとすることによって、この目標の達
成を容易化してきた。応答時間を改善するために、ディジタル回路用のCADツ
ールは、多くの場合、前記分析機能を実行するソフトウエアを前記表示機能を実
行するソフトウエアに固く結び付けていた。多くの場合、これは、前記表示用の
ソフトウエアを、前記分析結果を処理しまたは格納するために使用されるデータ
構造に大きく依存させることによって行われていた。
例えば、タイミングの分析は、しばしば、マップド回路における動作が遅すぎ
る部分を明らかにする。この分析の検討は、従来より、前記スキーマチック構成
図を調べ、前記回路における経路を追跡する作業を伴っていた。しかしながら、
上述のように、前記スキーマチック構成図は、前記ディジタル回路に関する設計
者のHDLソース記述とほとんど関係のないものであってもよい。このため、従
来の分析方法は、マップド回路の問題点をそのHDLソースに関連付けるもので
はなかった。従って、設計者は、設計条件に合うようどのHDLを変更すべきか
、を容易に知ることができなかった。
背景に関する結論
HDL合成の使用は、設計者が、マップド回路実現に関する詳細を記述するこ
となしに、HDLテキスト記述における必要な機能を指定することを可能にする
。前記合成を使用してマップド回路を作成した後、設計者は、通常のマップド回
路分析ツールを使用して、該マップド回路の特性を判定することができる。通常
の分析は、前記マップド回路の様々な要素によって使用される面積、または、該
回路における最も長い遅延経路等を示すことになる。これらの分析回路を使用し
て、設計者は、前記マップド回路におけるどの部分に問題があるか、を確認でき
る。しかし、多くの場合、前記合成処理における最適化部分は設計内容を相当変
更するので、特別の場合を除いて、前記マップド回路の特定部分を、これらの部
分を発生したHDLソースに関連付けることは、不可能でないにしても、難しい
ものである。前記マップド回路の分析結果を前記HDLソースに追跡することを
容易になし得ないことは、効率的な回路分析に対する実質的な障害となっている
。このため、設計者が前記HDLソースに関連してディジタル回路設計を分析で
きるようにするシステムの必要性が存在していた。
発明の概要
1つの特徴に従うと、この発明は、合成された回路の分析結果を、該回路を生
成したHDLソース記述の近くにおいて視覚的に表示する方法を提供する。この
発明は、前記合成された回路の各部分の分析結果を、その回路部分を生成した前
記HDL記述の特定要素に関連付ける。これにより、設計者は、回路分析によっ
て特定された問題点の原因となった前記HDL記述の要素を修正することができ
る。
合成処理は、HDLソースコードを初期的な回路に翻訳することによって行わ
れる。前記初期的な回路の各ポイントは、前記HDLソースにおける特定の構文
に直接的に対応する。より有効な最終的な回路は、論理最適化処理によって前記
初期的な回路から構築される。前記分析結果を前記HDLソースに関連付けるた
めには、前記最終的な回路における、前記初期的な回路に直接的に追跡されるべ
きポイントを特定することが必要である。故に、前記回路におけるこれらの不変
ポイントに対応する回路分析結果は、前記HDLソースの適切な要素に直接的に
関連付けられることができ、従って、前記要素の近くに表示されることができる
。
他の特徴に従うと、この発明は、前記HDLソースの再構成または修正を必要
とすることなく、前記最適化処理に関わらず追跡可能であり続ける付加的なポイ
ントを設計に導入する方法を提供する。この発明によると、これらの付加的なポ
イントは、例えば、前記初期的な回路に主要入力または主要出力を人為的に挿入
し、これらのポイントが前記HDLソースのどこから生成されたものかを記録す
ることによって、提供される。
他の特徴に従うと、この発明は、合成された回路を評価し分析することによっ
て収集された情報を、該回路を生成した前記ソースコードにリンクする方法を提
供する。この発明は、設計者がデバッグしようとする箇所の合成ソースコードを
マークする能力を前記設計者に与えることによって、前記リンクを設定する。こ
の実施の形態において、前記設計者は、“probe(プローブ)”のような特定の
テキストフレーズをその他の任意の情報とともに使用とすることによって、前記
ソースコードをマークすることができる。翻訳時において、トランスレータ(翻
訳プログラム)は、“プローブ”ステートメントが無い場合と同じ機能を実行す
る回路を生成するが、最適化時に特定の構成要素が除去されるべきでないという
ことを示す付加的な情報または構成要素を前記初期的な回路に追加する。これら
の構成要素は最適化時に除去されないので、前記最終的な回路に除去されないで
残ったすべての構成要素に対応する回路分析結果は、前記初期的な回路の構成要
素に対して直接的に且つ追跡可能に関連付けられることになる。これらの構成要
素が前記ソースHDLに追跡可能に関連付けられるので、前記分析結果は、前記
ソースHDLに追跡可能に関連付けられ、従って、前記HDLの適切な部分近く
に表示され得る。設計者が除去されない構成要素を挿入することによって、設計
者の最初の階層的設計を書き直し、または、前記最適化処理からマニュアルに後
方追跡する必要なしに、デバッギング処理を容易に行うことができる。
この発明の他の特徴によると、デバッギング処理管理に役立つよう、設計者は
、各プローブに優先レベルを割当てることができる。オンされたプローブは、デ
バッギング処理を容易に行うことができるよう、前記合成処理を通るリンクを設
定する。一方、オフ状態のプローブは、前記合成処理に影響せず、デバッギング
リ
ンクを設定しない。多くのリンクを設定することは、設計者に対して大量のデバ
ッギング情報を提供するが、前記合成処理が良質の回路を合成する能力を制限す
るおそれがある。また、あまりにも少ないリンクを設定すると、設計者が回路上
の問題点を解決する際の十分なガイドが提供されないことになる。デバッギング
処理中の異なる時点に選択的にプローブ群をオン状態にすることによって、設計
者は、前記プローブ自体が前記処理に不当に干渉することなしに、前記設計の様
々異なる部分を分析できる。
前記回路を生成したHDLの近くに回路分析結果を表示することによって、こ
の発明は、設計者が論理合成をより効果的に利用し、回路デバッギング処理の複
雑度を軽減することを可能にする。
1つの特徴に従うと、この発明は、回路を記述するHDL合成ソースに関連す
る特性に関する設計者の要求を処理し、回路分析に使用されるデータ構造に直接
的に関係付けられない一貫した表示ツールセットによって前記回路分析の結果を
表示する方法およびシステムを提供する。チップの設計は、回路に関する様々異
なる表現を構築することを伴う。合成記述言語のようなこれらの表現のうちのあ
るものは、比較的コンパクトで、主に機能的な情報を含むものである。ゲートレ
ベルネットリストのような他の表現は、使用される構成要素の種類などのより詳
しい情報を含むものである。レイアウト記述のようなさらに他の表現は、チップ
上の構成要素の位置などのさらに詳しい情報を含むものである。前記様々異なる
表現は、各々が共通構造の回路表現を含む複数のドメインに分けられることがで
きる。そして、ツールビルダは、個々のドメインの状態を調べるためのドメイン
従属表示ツールを構築することができる。さらに、前記ツールビルダは、特定の
ドメインにおける回路状態を評価し、または、分析するツールを構築することが
できる。1つのドメインにおける回路構造を示す表示ツールは、前方および後方
のリンクによって、他のドメインにおいて得られた分析に関する情報を得ること
ができる。
設計者は、先ず、1つの表示ツールを使用して1つのドメインにおける回路の
要素を検査することによって、前記設計の特定の要素に関する特性についての問
合せをすることができる。該問合せドメインにおける前記設計の関連部分を特定
することによって、設計者は、評価すべき前記設計の構成部分を選択し、その部
分に関する問合せを行う。前記表示ツールは、データマネージャに対して、前記
問合せドメインにおけるオブジェクトの識別情報、および、要求された分析また
は評価を示す識別子を送る。こうして、前記データマネージャは、関連する分析
結果を含むドメインを決定する。これらの結果が未だ存在しない場合、前記デー
タマネージャは、これらの結果を算出するための適切な分析ツールを呼出し、該
分析ツールはデータマネージャのキャッシュメモリに記憶されてよい。前記HD
Lデバッギング方法によって設定されたリンクを使用して、前記データマネージ
ャは、前記分析ドメインにおける関連オブジェクトを捜し出す。この関連オブジ
ェクトから、適切な情報が前記表示ツールに返送され、こうして、設計者は適切
に表示された前記情報を見ることができる。
1つの特徴に従うと、この発明は、前記分析が実際に行われるドメインの構造
に依存しない表示ツールを提供する。他の特徴によると、この発明は、前記表示
ドメインの構造に依存しない分析ツールを提供する。また、この発明の他の特徴
は、様々異なる表示ツールおよび分析ツールが、互いに独立した状態であり続け
ることを可能にする。前記表示ツールは、中央データマネージャを介してそれら
のすべての問合せを送ることによって、自己の独立性を維持することができる。
前記中央データマネージャは、1つの表示ツールによって発っせられた各問合せ
ごとに、ドメインマッピングと分析ツール選択との両方を行う。こうして、前記
表示ツールおよび分析ツールのいずれも、問合せのソースまたは行先を知る必要
がない。
1つの特徴によると、この発明は、1つの表示ツールで行われた回路選択を、
当該システムのすべての表示ツールに送る選択マネージャを提供する。該選択マ
ネージャを介して、設計者は、1つの表示ツールにおける表示オブジェクトを介
して回路オブジェクトを選択し、しかる後、他の表示ツールにおける前記回路オ
ブジェクトの他の表示を見ることができる。例えば、ヒストグラム表示を使用し
てある回路オブジェクトを選択でき、その後、テキスト表示を使用して該回路オ
ブジェクトを見ることができる。
他の特徴によると、この発明は、最適化前のディジタル回路分析を簡素化する
。
翻訳された回路と前記HDLテキストとの間の直接関係は、設計者が前記HDL
を改善することによって前記翻訳された回路を改善できるようにするために使用
される。この発明の1つの特徴によると、設計者は、前記翻訳された回路の面積
およぞタイミングのような特性を得た後、自動的に選択された翻訳された回路の
要素を、これら要素を生成したソースHDLに関連付けることができる。
HDL Analysis Systemは、Source to Gateのような従来のシステムに比べてい
くつかの利点を有する。先ず、HDLテキストブラウザは、上記パーズノードリ
ンクに対するテキストを使用して、選択されたパーズノードの全周にボックスを
描く。このようなボックスは、カーソルが前記HDLテキスト上で動かされた時
、および、前記テキストの一部が選択された時に描かれる。前記HDLテキスト
周囲のボックスは、はるかに見やすく、前記ソースにおける前記選択された回路
オブジェクトに関するの範囲全体を示す。第2に、前記HDL Analysis Systemは
、前記HDLソースとスキーマチック構成図との間のリンクに限らず、より多く
のリンクを作成する。上述のように、多くの表示ツールおよび分析ツールが、前
記HDLソースにリンクされることができる。付加的な表示ツールおよび分析ツ
ールによって、ただ単にスキーマチック構成図が見られるだけでなく、多くの様
々な種類のディジタル回路分析が行われることができる。
この発明の1つの特徴によって、設計者は、回路分析結果を、これらの結果に
対応する回路部分を生成したテキストに視覚的および迅速に関連付けることがで
きる。これは、前記合成処理の翻訳時に生成されたパーズ木を維持し、パーズノ
ードと該パーズノードから合成された回路エレメントとの間に双方向関係を確立
することによって実現される。特に、この発明は、作られた回路エレメントと共
にパーズ木ノード番号を格納し、各パーズノードと共に作られた回路エレメント
のリストを格納することを可能にする。
この発明の1つの特徴によって、設計者は、回路エレメントの数値的な物理的
特性を、該回路エレメントに対応する前記ソースHDLテキスト部分の参照の近
くに表示することができる。これは、前記テキストから得られたパーズノードと
該パーズノードから合成された回路エレメントとの間の参照を維持することによ
って実現される。設計者が知りたいと思う各種の物理的特性としては、その回路
によって使用される面積、入力またはクロックエッジからセル上の特定のピンま
での時間的な遅延、その設計の要素を形成しているゲートの数、入力から特定の
ネットまでの論理レベルの数、1つまたは複数のセルによって消費される電力な
どがある。サポートされる各種表示技術としては、積み重ね式棒グラフ、ヒスト
グラム、テキスト、経路表示、論理インスペクタ、選択インスペクタ、仮想的ス
キーマチック構成図などがある。また、サポートされる各種テキスト表示技術と
しては、強調、異なるフォント、異なる色、異なるサイズなどがある。
図面の簡単な説明
図1は、従来の合成/分析処理を示すフローチャート、
図2は、前記合成処理に関連する中間データ構造およびドメインを示す図、
図3は、この発明に係る総合的な設計およびデバッギング処理を示す図、
図4は、HDLテキストとマップド回路を構成するマップド論理との関係を示
す図、
図5は、マップド回路構造およびGtech回路構造がどのようにHDLトークン
に関連付けられるのかを示す図、
図6は、HDLテキストがどのようにマップド回路構造およびGTech回路構造
に関連付けられるのかを示す図、
図7は、プロープステートメントがどのように翻訳されるのかを示す図、
図8は、新たな主要入力/主要出力対がどのように作られるのかを示す図、
図9は、あるテキストに関連するパーズ木を示す図、
図10は、“{”を使用してノードの開始をマークし、“}”を使用してノー
ドの終了をマークするパーズ木のテキスト表現を示す図、
図11は、プローブを有さないVHDLソースの一例を示す図、
図12は、図11のHDLソースに対応するパーズ木を示す図、
図13は、図11のHDLソースをテキストアレイとして示す図、
図14は、パーズノードを形成するテキストの各部分を囲む中括弧“{”を挿
入した状態の図13のテキストアレイを示す図、
図15は、各左中括弧“{”に番号付けし注釈を付けた状態の図14のテキス
トアレイを示す図、
図16は、ステートメントプローブを挿入した状態の図11のVHDLソース
を示す図、
図17は、パーズ木中括弧を挿入したリニア文字アレイとして図16のテキス
トを示す図、
図18は、不適当なプローブ命令を有する状態の図11のHDLソースを示す
図、
図19は、図18の中括弧表現を示す図、
図20は、1対のプローブブロック命令を挿入した状態のHDLソースを示す
図、
図21は、図20のHDLソースの中括弧表現を示す図、
図22は、この発明に係る図16のソースの翻訳を示す図、
図23は、この発明に従ってプローブを実行する他の方法を示す図、
図24は、この発明に従ってプローブを実行するさらに他の方法を示す図、
図25は、この発明に従ってプローブを実行するさらに他の方法を示す図、
図26は、主要出力として実現される最適化不変回路構造を有するGTech回路
を示す図、
図27は、図26のGTech回路から形成されるマップド回路を示す図、
図28は、図11のソースを通常通り翻訳することによって形成されるGTech
回路を示す図、
図29は、図25のGTech回路から形成される最適化されたマップド回路を示
す図、
図30は、図22のGTech回路から形成される最適化されたマップド回路を示
す図、
図31は、図30の最適化されたマップド回路からソースHDLまでの分析に
よって求められた表示関連情報の一例を示す図、
図32は、2つの処理ブロックを使用したプローブ命令を有さないVHDLソ
ースを示す図、
図33は、図32のソースからGTech回路への通常通りの翻訳を示す図、
図34は、図33のGTech回路を最適化することによって形成されたマップド
回路を示す図、
図35は、図30の最適化されたマップド回路からソースVHDLまでの分析
によって求められた表示関連情報の一例であって、該情報が記述内の最高レベル
にのみ関連付け可能であることを示す図、
図36は、ブロックプローブ命令を有する図32のVHDLソースから得たH
DLソースを示す図、
図37は、図36のVHDLソースを翻訳することによって形成されたGTech
回路を示す図、
図38は、図37のGTech回路を最適化することによって得られたマップド回
路、
図39は、図38の最適化されたマップド回路からVHDLまでの分析から得
られた表示関連データの一例であって、ブロックプローブに関連した情報を示す
図、
図40は、HDL分析ツールの構成要素を示す図、
図41は、選択マネージャがどのように回路選択を処理するのかを示す図、
図42は、データマネージャがどのように問合せを処理するのかを示す図、
図43は、マップド回路情報の積み重ね式棒グラフを示す図、
図44は、マップド回路情報の積み重ね式棒グラフを示す図であって、図43
のサブブロックのうちの1つの相対的寄与度を示す図、
図45は、マップド回路情報の積み重ね式棒グラフを示す図であって、図44
のサブブロックのうちの1つの相対的寄与度を示す図、
図46は、マップド回路情報のヒストグラム表示を示す図、
図47は、HDLソースコードおよび該ソースコードに関連したGTech回路情
報のテキスト表示を示す図、
図48は、VHDLソースコードの特定要素に関連した入力および出力を示す
仮想スキーマチック構成図表示を示す図、
図49は、図48の表示の出力を追跡する他の仮想スキーマチック構成図表示
を示す図、
図50は、図49の表示の出力を追跡する他の仮想スキーマチック構成図表示
を示す図、
図51は、Path Browserウィンドウを示す図、
図52は、論理インスペクタによって形成された図形表示を示す図、
図53は、この発明に従って前記ソースHDLにおける特定の信号の移行ファ
ンイン追跡の表示を示す図、
図54は、この発明に従って前記ソースHDLにおける特定の信号の移行ファ
ンイン追跡から到達した主要入力の表示を示す図、
図55は、AMD2910Aに関する構成要素カウントを表示する積み重ね式棒グラフ
を示す図、
図56は、前記AMD2910AのSTACK BLKモジュールに関する構成要素カウントを
表示する積み重ね式棒グラフを示す図、
図57は、前記STACK BLKに関するソースコードを強調したHDLテキストブ
ラウザを示す図、
図58は、この発明に係るテキスト記述、パーズ木、回路、および、回路分析
結果の表示との間の関係を示す図、
図59は、図58に使用される回路の詳細を示す図、
図60は、ドメイン間選択関係の一例を示す図、
図61は、設計者が特定の設計を分析する際の通信フローを示す図。
発明の詳細な説明
この発明は、ディジタル回路を作成する元となるHDLソース記述を使用した
ディジタル回路を分析するための新規の方法からなるものである。以下の説明は
、当業者がこの発明を構成し、使用することを可能にするものであり、特定の用
途および要件を仮定したものである。
この発明の一実施の形態は、メッセージパッシング、オブジェクト指向設計お
よび不透明データ構造等の従来技術を使用して実現されるソフトウエアシステム
である。これらの概念は、プログラミングに関する多くの本に記載されている。
このような刊行物のうちの2つの例として、1984年にComputer Science Pressに
よって発行されたEllis HarowitzによるFundamentals of Programming Language
s
の第2版(ISBN(国際標準図書番号)0-88175-004-2)、ならびに、1989年にPr
entice Hallによって発行されたStephen DewhurstおよびKathy StarkによるProg ramming in C++
(ISBN 0-13-723156-3)がある。
1.0 ディジタル回路合成
HDL合成は、ディジタル回路機能に関するHDL記述からマップド回路ネッ
トリスト記述を作成する。この発明は、HDL合成ツールを拡張するものである
。以下のセクションは、マップド回路を合成している間に作られる構造、および
、マップド回路が作成される方法を説明するものである。
1.1 ドメインの定義
ディジタル回路は、ハードウエアの物理的な一部分である。ディジタル回路の
出力は、その入力の関数である。こうして、ディジタル回路の1つの特性は、そ
の機能である。ディジタル回路のその他の特性は、その入力に信号が与えられた
後にその出力が有効データを有するまでに要する時間量である。
ディジタル回路の設計は、コンピュータシステムのメモリ内において、各種異
なる態様で表現または記述されることができる。各種類の回路表現を、ドメイン
と言うことにする。異なるドメインは、回路の物理的構造に関する異なる量の情
報を含んでいる。前記回路の構造に関してより多くの情報を含むドメインは、コ
ンピュータメモリのより多くの部分を必要とし、構成および操作のためにコンピ
ュータ時間のより多くの部分を必要とする。ある場合において、ディジタル回路
の表現は、それが実際のディジタル回路であるかのように扱われる。ある表現は
、ディジタル回路の一バージョンを構築するのに十分な情報を含んでいる。この
項では、ディジタル回路の設計中にCADシステムで使用される様々異なるディ
ジタル回路表現について説明する。
ドメインは、CADシステムにディジタル回路設計の様々異なる表現を格納す
るために使用される。ディジタル回路設計処理を行う場合、設計者は、CADシ
ステムを介して、1つのドメインのディジタルデータを処理し、新たなドメイン
の他のデータに変換する。多くのディジタル回路分析ツールは、特定のドメイン
で作用するよう設計されている。例えば、タイミングベリファイヤは、マップド
論理ドメインで作用する。ドメインは、詳細になればなるほど、サイズが大きく
なり操作が遅くなるので、可能な場合、あまり詳細ではないドメインの回路を操
作するのが望ましい。以下のパラグラフでは、ドメインが何であるのかを説明す
るとともに、HDLディジタル回路分析ツールに使用される様々異なるドメイン
について説明する。
ドメインとは、一般的な構造的な特性を含むディジタル回路設計のソフトウエ
ア表現である。各ドメインは、ディジタル回路設計情報に関する特定レベルの抽
象化を示す。一般的なドメインとしては、HDLソースドメイン、GTechドメイ
ンとしても知られている総合技術ドメイン、ゲートドメインおよびレイアウトド
メインがある。さらに、他のドメインも可能である。1つのドメインにおけるデ
ィジタル回路設計データは、論理シンセサイザおよび構成要素ライブラリのよう
なディジタル回路設計ツールを使用したドメインからの設計データ変換の結果で
あることもある。図2に示した中間データ構造は、すべて、各種ドメインのメン
バである。
前記ソースドメインは、設計者が図1のステップ100または図3のステップ
150で作成するHDLソースファイルを含むものである。このドメインにおけ
る回路表現が、HDLソースと呼ばれることもある。図2にも、HDLソース9
00が示されている。前記ソースドメインは、論理合成の変換ステップ時に生成
されるパーズ木901および記号テーブルをも含む。HDLテキストおよびパー
ズ木は異なる回路表現ではあるが、ディジタル回路の構成に関する同じ情報を含
むものなので、同一のドメインに含まれる。しかし、前記HDLテキストとパー
ズ木との間に効率的なリンクを設定する必要がある。この方法については、後述
する。前記ソースドメインにおいて、ディジタル回路設計表現は、ディジタル回
路トポロジを考慮することなく、ディジタル回路の所望の機能に関する情報を含
んでいる。前記ソースドメインにおける技術従属要素を明確に説明することは可
能であるが、一般的に、前記ソースドメインは、シリコンメーカによって供給さ
れる特定の技術を参照しない。
前記総合技術ドメインすなわちGTechドメインは、図1の104または図3の
154に示すような合成処理における翻訳ステップによって発生するような、初
期的総合技術回路902を含むものである。このドメインにおける回路表現は、
GT
ech回路と呼ばれることもある。米国カルフォルニア州、Mountain Viewに在るSy
nopsys,Inc.から入手可能なVHDLコンパイラは、GTech回路を作成するツールであ
る。該総合技術ドメインに格納されたデータは、ディジタル回路のトポロジに関
する情報を含むが、使用される特定の技術に関する情報を含まない。このため、
GTech回路は、正確なタイミングデータまたは面積データを含まない。しかし、G
Tech回路の論理レベルおよび構成要素の総数(カウント)を確認することによっ
て、該GTech回路のタイミングおよび面積を特徴付けることができる。GTech回路
における経路の論理レベルは、該経路を構成する論理を構成するために使用され
る2入力GTechゲートの数である。また、GTech回路の構成要素カウントとは、該
GTech回路を構成するために使用される2入力GTechゲートの数である。
前記ゲートドメインすなわちマップド回路ドメインは、前記合成処理のマッピ
ングステップによって発生するマップド回路ドメイン903を含むものである。
このドメインにおける回路表現は、マップド回路と呼ばれることもある。米国カ
ルフォルニア州、Mountain Viewに在るSynopsys,Inc.によるDesign Compilerは
、マップド回路を作るツールである。前記総合技術ドメインと同様に、前記ゲー
トドメインのデータは、構成要素がどのように相互接続されているのかについて
の情報を含むものである。しかし、前記ゲートドメインにおいては、特定のシリ
コンメーカからの特定の技術が記述されており、こうして、所望の機能を実施す
るために使用される構成要素の物理的特性についての情報が提供される。予備的
なタイミング、面積、検査能力ならびに図1および図3の105の他の演算が実
行可能なのは、このドメインにおいてである。
前記レイアウトドメインは、チップ基板上における構成要素の幾何学的な配置
についての情報を含んでいる。このドメインにおける回路表現は、レイドアウト
(レイアウト済み)回路と呼ぶこともできる。米国カルフォルニア州、San Jose
に在るCadenceによるCell3 Ensembleは、レイドアウト回路を作るものである。
このレイアウトドメインにおけるディジタル回路設計情報は、配置およびルーテ
ィングツールを使用することによって、前記ゲートドメインにおけるディジタル
回路設計情報から得られる。
また、他のドメインによって示されるような、他のドメインを有することもで
きる。しかし、HDLによって指定されるディジタル回路のための分析のほとん
どは、上記ドメインで行われる。
1.1.1 ドメイン内のオブジェクト
1つのドメイン内のディジタル回路設計情報は、相互接続されたオブジェクト
の集合であり、これらのオブジェクトおよび接続部は一定の特性を有している。
例えば、前記ソースドメインにおいて、オブジェクトは、HDLソースコードの
テキスト、または、該ソースコードから構築されたパーズ木のノード、または、
記号テーブルのエントリを含んでいてよい。前記ゲートドメインにおいて、オブ
ジェクトは、個々のゲートもしくはその他のライブラリ部分のソフトウエア表現
、または、これらの間の接続部のソフトウエア表現を含んでいてよい。
以下では、いかにしてドメイン間の関係が設定され、維持されるのかを説明す
る。異なるドメイン内のオブジェクトは、以下で説明するリンクを使用すること
によって、相互に関連づけられる。例えば、各翻訳済みゲートを作り出すパーズ
ノードを追跡することによって、前記ソースドメイン内のオブジェクトは、前記
総合技術ドメイン内のオブジェクトに関連づけられることができる。該システム
は、ドメイン間リンクを利用して、設計者が1つのドメインの分析を行い他のド
メインの分析を見ることができるようにする。
1.2 ディジタル回路の定義
この項では、ディジタル回路を記述するために使用されるいくつかの用語を定
義する。同様な用語は、様々なドメイン内のディジタル回路構成要素を示すソフ
トウエアデータ構造にも使用される。
ディジタル回路は、相互接続された複数の要素の集合である。これらの要素を
、セルと呼ぶこともできる。ディジタル回路は、主要入力と呼ばれるポイントに
おいて、外部ソースからの信号を受け取る。各前記要素は、入力信号を受け取る
ため、および、出力信号を発するための1つまたは複数のピンを有する。一般的
に、前記ピンは方向を有する。ほとんどのピンは、ロードと呼ばれる入力ピン、
および、ドライバと呼ばれる出力ピンのいずれかである。しかし、前記ピンのう
ちのあるものは、入力用および出力用の双方向ピンである。該双方向ピンは、デ
ィジタル回路設計を処理するアルゴリズムによって特別に扱われなければならな
い。
普通、このような双方向ピンのために、2つの方法の一方が利用される。すなわ
ち、入力ピンおよび出力ピンの両方として扱われる方法、または、当該アルゴリ
ズムによって不能化される方法である。この場合、前記アルゴリズムは、回路の
その要素を操作できない。
1つまたは複数の要素からの1つまたは複数のピンは、ネットによって相互接
続される。各前記ネットは、接続されるピンの間の電気的接続を確立し、該当要
素同士が相互作用できるようにする。また、前記ピンは、ネットによって主要入
力および主要出力にも接続される。説明を簡単にするために、前記要素がネット
に“接続される”と言うこともできるが、実際には、ネットに接続されるのは前
記要素のピンである。
ピン、セルおよびポートは、すべて、回路エレメントと言うことができる。1
つまたは複数の回路エレメントが、回路エレメントセットを構成する。
ディジタル回路は、階層的に記述されることができる。ディジタル回路におけ
るいくつかの要素またはすべての要素自体が、さらに相互接続された要素からな
るディジタル回路であることがある。ある高レベルの要素が他のより低いレベル
の要素からなるディジタル回路として記述されている場合、前記高レベルの要素
のピンは、前記より低いレベルの要素からなるディジタル回路のための主要入力
および主要出力となる。ある高レベルの要素がより低いレベルの要素から構成さ
れる場合、それは1つのレベルの階層と呼ばれる。
前記GTechドメインにおいて、階層的なディジタル回路記述は、基本要素で終
わらなければならない。該基本要素は、GTech回路として記述されないが、GTech
記述またはモデルメーカによって供給される固定定義によって記述される。基本
要素の定義は、その要素によって実行される論理機能を記述する。典型的には、
これらの要素は、ナンドゲート、オアゲート、インバータまたはフリップフロッ
プのように、機能的に簡単なものである。基本要素のうちのあるものは、加算の
ようなより複雑な機能を実行する。また、ある場合、基本要素は、マイクロプロ
セッサのように、極めて複雑な機能を実行する。GTech記述または論理モデルの
供給業者は、基本要素の機能および特性を記述している。
GTech回路と同様に、マップド回路記述も基本要素で終わらなければならない
。
この場合、前記基本要素は、半導体メーカによって供給され、技術ライブラリに
格納されている。半導体メーカの技術ライブラリの各部分は、その機能、ならび
に、面積、タイミングおよび電力使用等の物理的な特性を含んでいる。前記GTec
hおよびマップドメインにおける基本要素は、セルとしても知られている。
1.3 合成処理の概要
ディジタル回路合成は、HDL記述を同等の機能を有するネットリストに変換
し、該ネットリストを最適化することによって上記と同じ機能を有する改良され
たマップド回路を作成することからなる。以下では、この処理をより詳細に説明
する。
1.3.1変換処理の概要
前記合成処理における従来の変換部分は、先ず、HDLテキストをパーズ木に
変換する。これは、Alfred V.Aho,Ravi SethiおよびJeffery D.UllmanによるC ompilers.Principles.Techniques and Tools
に記載されている従来の構文解析
(parsing:パージング)を使用して実行される。パーズ木は、HDLテキスト
によって設定される機能関係を示す。こうして、変換プログラムは、適当な基本
要素を選択し、これらの基本要素のピン間のネットを設定するためのガイドとし
て前記パーズ木を使用することによって、初期GTech回路を構成する。該初期GTe
ch回路も、前記パーズ木による要求に応じて階層的に記述されることになる。重
要なことは、HDLテキストにおけるすべての文字が、前記パーズ木のノードに
関連付けられ、パーズ木のすべてのノードが、前記初期GTech回路におけるネッ
トまたは要素または主要入力もしくは主要出力に直接関連付けられことである。
例えば、前記HDLで宣言された各変数は、前記初期GTech回路におけるネット
に対応することになる。また、前記HDLで記述されたレジスタは、前記初期GT
ech回路におけるフリップフロップまたはその他のメモリ要素に対応することに
なる。
1.3.2 総合的最適化処理
従来の翻訳処理は、直接的に技術ライブラリにマッピングされて構築された場
合には、動作速度が遅くサイズが大きいものとなるような初期GTech回路を形成
するものである。これを改善するために、翻訳処理の後には、前記初期GTech回
路と同じ機能を実行するがより優れた特性を有するマップド回路を形成する最適
化処
理が行われる。一例として基本要素のみから構成されるGTech回路を使用して、
従来の最適化処理が下記のように行われる。
GTech回路の最適化は、初期GTech回路の構造を改善すること、および、該初期
GTech回路の論理を、指定された技術ライブラリで利用可能なゲートにマッピン
グすることを含む。回路改善アルゴリズムは、GTech回路ドメインまたはマップ
ド論理ドメインで機能可能である。故に、マッピングは、前記最適化処理中の様
々異なる時点で行ってよい。一般的に、従来の論理最適化ツールは、GTech回路
がマッピングされる前後において、論理改善を行う。以下のパラグラフは、GTec
h回路またはマップド回路において論理を改善する一般的な方法を説明するもの
である。便宜上、以下に説明する最適化処理はGTech回路を最適化するものであ
るが、同様な最適化技術は、マップド回路にも適用されるものである。
先ず、この最適化処理は、GTech回路における1つまたは複数の経路を認識す
るが、GTech回路におけるすべての経路を認識してもよい。相互接続された要素
は、全体として、認識されたGTechサブ回路を構成する。認識されたGTechサブ回
路の出力は、該サブ回路における1つの要素の出力を、該サブ回路外の要素の入
力ピンまたは主要出力に接続するネットである。認識されたGTechサブ回路の入
力は、主要入力または該サブ回路外の要素の出力ピンを、該サブ回路出力内の要
素の入力ピンに接続するネットである。従って、前記認識されたGTechサブ回路
は、1つまたは複数の入力から1つまたは複数の出力を算出する。
二番目に、前記最適化処理は、前記認識されたGTechサブ回路と同じ機能を実
行する新たなGTechサブ回路を作り出す。該新たなGTechサブ回路は、前記認識さ
れたGTechサブ回路と同じ入力および出力を有する。一般的に、前記新たなGTech
サブ回路は、ある測定可能な意味において、前記認識されたGTechサブ回路より
優れたものでなければならない。例えば、設計者ができる限り小さな面積のディ
ジタル回路を構成したい場合、最適化処理によって提供される前記新たなGTech
サブ回路は、前記認識されたGTechサブ回路より少ないゲートを使用しなければ
ならない。設計者が速い動作速度を求める場合、前記新たなGTechサブ回路は、
前記認識されたGTechサブ回路より速いタイミング推定値を有するものでなけれ
ばならない。例えばシミュレートによるアニーリング(焼きなまし)等の最適化
処理においては、
前記認識されたGTechサブ回路は、これより特性において劣る新たなGTechサブ回
路に置換される。
使用される特定の最適化処理に応じて、使用される測定可能な規準を、実際に
所望される測定値の代用物としてよい。例えば、設計者は、チップに載置される
ディジタル回路全体の面積を最小化することを欲する場合がある。前記最適化処
理は、GTech要素ライブラリからその面積推定値を得る各GTech要素ごとに、ゲー
トの数をカウントし、または、面積推定値を合計することによって、実際の新た
なGTechサブ回路の面積を見積もることができる。一般に、より正確な測定値を
得るためには、マップド回路をさらに分析することが必要となる。
三番目に、前記最適化処理は、前記認識されたGTechサブ回路を、改善されたG
Techサブ回路で置換する。この置換は、前記認識されたGTechサブ回路に関連す
る要素を除去することを意味する。前記新たなGTechサブ回路の入力は、前記認
識されたGTechサブ回路に接続されていたものと同じネットに接続される。前記
新たなGTechサブ回路の出力は、前記認識されたGTechサブ回路の出力と同じネッ
トに接続される。このようにして、中間GTech回路が形成される。
その後、適切な終了条件が発生するまで、前記最適化処理は、前記中間GTech
回路について上記3つのステップを繰り返す。例えば、前記最適化処理は、それ
以上の改善がなされなかった時、または、繰り返し合計数が指定された数に達し
た時に終了されることができる。必要な場合、前記GTech回路がマッピングされ
、前記最適化処理が該マップド回路について繰り返されてよい。
1.4 最適化不変ディジタル回路構造
いくつかの種類の回路構造は、GTechドメインとマップドドメインとの間に1
対1の対応関係を有する。このような要素は、最適化不変量と称される。マップ
ド回路における特定のネットまたは要素に関する分析結果をソーステキストに関
連づけることは、前記回路要素が最適化処理において変更されていない場合、簡
単な作業である。このような対応関係が確立される方法の詳細を、以下に説明す
ることにする。逆に、そのマップド回路構造が最適化前のGTech回路内に対応す
る要素を有さない場合、マップド回路をHDLに関連づけることは、不可能でな
いにせよ、難しいものである。この項では、典型的な最適化処理が最適化処理時
に変
更しないでおく、いくつかの異なるディジタル回路の特徴について説明する。
先ず、オプティマイザは、一般的に、レジスタ、ならびに、ラッチおよびフリ
ップフロップのような定義されたメモリ要素を除去しない。典型的には、変換処
理は、HDLテキストによって定義されたレジスタの各ビット毎に、GTech回路
における要素を作り出す。これらの初期要素は、最適化処理によって選択される
最終的なライブラリ要素と1対1の対応関係を有する。従って、レジスタまたは
該レジスタに接続されたネットに関する部分的な分析結果(例えば、レジスタの
面積)は、前記GTech回路内の要素に直接的に対応する。さらに、最終的なレジ
スタは、これを作り出す元となったHDLに関連づけられることができる。
また、オプティマイザは、一般的に、主要入力および主要出力を除去しない。
故に、最適化後の主要入力および主要出力は、最適化前の要素に関連づけられる
ことができる。
さらに、オプティマイザは、一般的に、異なる階層レベル間での最適化処理を
行わない。GTech回路がその他のGTech回路として実現される要素を含んでいる場
合、最適化処理は、より低いレベルのGTech回路の要素を、より高いレベルのGTe
ch回路の残りの要素とは別に最適化する。
さらに、オプティマイザは、ある特定のセルまたはネットに“タッチ”しない
よう指示されることができる。こうして、このようなセルおよびネットは、最適
化前および最適化後の回路の両方に存在することになる。しかし、このような指
示は、GTech回路またはマップド回路を改善するオプティマイザの能力を制限す
る。1つの実施の形態において、この指示を“dont touch”と言う。1つの実施
の形態において、dont touchは、GTech回路またはマップド回路内の特定のセル
またはネットに言及するコマンドである。他の実施の形態において、dont touch
は、ソースHDLに例示された要素に言及するHDL言語での属性である。dont
touchとラベル付けされたセルまたはネットは、オプティマイザによって全く変
更されない。
2.0 HDLソースに対するディジタル回路構造の関連付け
前記合成の目的は、ディジタル回路の高レベル記述から、マップド回路ネット
リスト記述を作成することである。マップド回路は、1組の設計条件に適合しな
ければならない。典型的には、HDLは、高レベル記述を記するために使用され
る。オリジナルソース記述に関して最終結果を分析することが望ましい。
ディジタル回路の分析は、多くの方法で行われることができる。一般的に、該
分析は、ディジタル回路を選択し、該ディジタル回路、または、GTech回路もし
くはマップド回路内の要素、または、GTech回路もしくはマップド回路内の要素
を接続するネットの数値的特性を算出することを含む。多くの場合、前記分析の
中間結果は、GTech回路またはマップド回路の要素またはネットに関連する。例
えば、マップド回路の面積を見積もる1つの方法は、該マップド回路内の各要素
の面積を合計することである。各基本要素の面積は、半導体メーカによって供給
される基本要素のライブラリによって知ることができる。階層的な要素の面積は
、この面積合計技術を反復的に適用することによって得られる。
他の例として、マップド回路における伝播遅延は、先ず、該マップド回路にお
ける主要入力から各ピンまでの最長遅延を算出することによって決定される。こ
れは、遅延情報を前記マップド回路における各ピンに関連付ける。階層的な要素
の場合、前記情報は、該要素の各入力から該要素の各出力までの遅延として考え
られる。
面積または伝播遅延のような結果は、最適化されたマップド回路を示すもので
ある。このような結果を分析する際に問題点が発見された場合、HDL記述のど
の部分が、合成されるマップド回構造上の問題点を起こしているのかを確認する
ことが有用である。
さらに、変換後のGTech回路を分析することも有用である。一般的に、回路性
能における主な改善をオプティマイザに依存することは確実ではないので、最適
化の前に変換後のGTech回路を改善することが有用である。ソースHDLの構造
と変換済みのGTech回路の構造との間に直接的な対応関係が存在する場合、前記
変換後のGTech回路の改善は、前記ソースHDLを修正することによって実現さ
れる。さらに、前記変換後のGTech回路の面積および遅延を特徴付けることも可
能である。従って、前記変換後のGTech回路の構造および特性をソースHDLに
関連付けることが有用である。故に、前記変換後のGTech回路とソースHDLと
の間の関係を使用して、HDソースレベルのディジタル回路分析ツールを作るこ
とができる。GT
ech分析については後で詳細に説明する。
次の項は、ソースHDL、ソースレベルのディジタル回路、パーズ木、変換後
のGTech回路および最適化されたマップド回路の間の関係がどのように作られ、
使用されるのかを説明するものである。これらの関係は、HDソースレベルのデ
ィジタル回路分析およびデバッギングの基礎を構成する。これらの関係が確立さ
れると、ディジタル回路分析ツールをソースHDLに接続して、設計者がHDL
を分析し、修正するのを補助することができる。
2.1 HDソースとマップド回路とのリンクの概要
この項では、ソースHDLテキストとマップド回路との間の関係がどのように
して確立されるのかについての概要を説明する。また、後の項で、各リンクにつ
いて詳述する。
図4は、HDLテキストとマップド回路との関係を示すものである。HDLテ
キスト3610は、ディジタル回路のソース表現である。パーズ木3620は、
従来のコンピュータのパージング法に従ってHDLテキストを解析すること(3
654)によって作成される。さらに、前記パーズ木の各ノードには、該ノード
を識別するために使用される、パーズ木ノード番号と呼ばれる固有の数値idが
割当てられる。前記HDLテキストおよびパーズ木の両方は、ソースドメインに
属する。前記ディジタル回路の総合論理すなわちGTechドメイン(3630)表
現は、パーズ木を翻訳すること(3664)によって作成される。前記ディジタ
ル回路のマップドドメイン(3640)表現は、前記総合論理を最適化すること
(3674)によって作成される。なお、前記HDLテキスト3610における
ディジタル回路設計、パーズ木3620、GTechドメイン3630およびマップ
ドドメイン3640の各ソフトウエア表現は、機能的に同等である。HDLテキ
ストの解析3654、パーズ木の翻訳3664および最適化3674は、前記デ
ィジタル回路の表現法を変えるが、その基礎的な機能を変えない。
前記ディジタル回路の様々な表現の各々が様々なドメインで作成されると、1
つの表現における構成要素を、該ディジタル回路の前の、または、次の表現にお
ける構成要素に関連付けることができる。任意の中間表現を介して構成要素を追
跡することによって、任意の2つのドメインにおける構成要素間の関係を得るこ
とができる。
リンク3652は、前記パーズ木3620を探索して関連テキストを示すノー
ドを見つけることによって、HDLテキスト3610がパーズ木3620に関連
付けられる、ことを示している。テキストの特定部分をパーズ木の対応する部分
と関連付ける1つの技術は、1994年6月3日に出願されたGregoryによる“Method
and Apparatus for Context Sensitive Displays”というタイトルの米国特許出
願No.08/253,453に記載されているが、ここではその出典みを記す。この発明の
他の実施の形態は、各パーズノードの始めと終りについてのファイルオフセット
を格納する。この発明の他の実施の形態は、パーズノードにおけるソースHDL
からのラインおよびコラム番号を格納する。
リンク3662は、各パーズノードからその表現を使用して作成されたセル識
別番号のリストを格納することによって、前記パーズ木3620をGTechドメイ
ン3630に関連付けられる、ことを示している。
リンク3666は、翻訳時に作成された各セルと共にパーズノード番号を格納
することによって、GTechドメイン3630がマップドドメイン3640に関連
付けられる、ことを示している。
また、リンク3672は、最適化不変ディジタル回路構造を関連付けることに
よって、前記GTechドメイン3630がマップドドメイン3640に関連付けら
れる、ことを示している。前記GTechドメイン3630における最適化不変ディ
ジタル回路構造は、前記マップドドメイン3640における構造と1対1の対応
関係を有する。故に、最適化されたマップド回路における同一種類で同一の名前
を有する構造をサーチすることによって、リンク3672を実現できる。最適化
不変構造を追跡するその他の実施の形態は、翻訳された各GTech回路構造に固有
の参照番号を割当て、その後、対応する最適化済みマップド回路構造においてこ
の参照番号を保持することからなるものである。
また、リンク3676は、最適化不変ディジタル回路構造を関連付けることに
よって、前記Gマップド回路ドメイン3640がGTechドメイン3630に関連付
けられる、ことを示している。このリンクは、リンク3672と同じ方法で実現
される。
2.2 マップド回路をソースHDLに関連付ける方法
上述のように、合成済みのディジタル回路内の構造は、HDLテキストに遡っ
て関連付けられることができる。こうして、マップド回路またはGTech回路の分
析結果を、関連するソースHDLの近くに示すことができる。分析結果をHDL
テキストに遡って関連付ける処理は、数ステップの処理である。先ず、部分的な
分析結果が、最終的なマップド回路における要素またはネットと関連付けられる
。その要素またはネットは、初期GTech回路における要素またはネットと関連付
けられる。前記要素またはネットは最適化処理において変化していないので、以
下の情況において、この関係は容易に確立される。その他の情況下では、この関
係は、確立するのが難しいか、または、不可能である。しかし、前記GTech回路
とソースHDLとの間の関係を確立することは、いつも可能であるとはかぎらな
い。
図5は、マップド回路構造がどのようにしてソースHDLに関連付けられるの
かを示す図である。ステップ3510において、追跡すべきマップド回路構造が
選択される。ステップ3515において、前記マップド回路構造が最適化不変GT
ech回路から得られ、故に、該最適化不変GTech回路に追跡可能であるか否かを調
べる。前記マップド回路構造が追跡不能である場合、この処理は終了する。一実
施の形態において、前記マップド回路構造が追跡不能であるという旨のメッセー
ジがユーザに対してなされてよい。前記構造が追跡可能である場合、ステップ3
520は、前記マップド回路構造を、これを作り出した最適化前のGTech回路構
造に関連付ける。上述のように、図4のリンク3676によって前記マップド回
路構造が最適化前のGTech回路構造に直接対応しているので、これは可能である
。ステップ3530は、前記最適化前の構造を、それが翻訳された元であるパー
ズノードに関連付ける。前記最適化前の構造はそれが作り出された元であるパー
ズノードの記録を含んでいるので、これは可能である。この関係は、図4のリン
ク3666によって示されている。最後に、ステップ3540は、図4のリンク
3656を使用して、前記パーズノードをソースHDLトークンに遡って関連付
ける。テキストリンクに至るパーズノードを確立する方法の詳細については、後
で詳述する。
図5は、マップド回路構造からソースHDLテキストに追跡する方法を示すも
のである。マップド回路構造からではなく、GTech回路構造から追跡する場合、
図5の方法をステップ3520で開始することも可能である。
さらに、図4に示すように、HDLテキストからGTech回路構造またはマップ
ド回路構造に追跡することも可能である。この方法は、図5に示したものと反対
であり、図4のリンク3652、3662および3672を使用する。
ステップ5620において、選択されたHDLテキストが、適切なパーズノー
ドに関連付けられる。これは、図4のリンク3652によって可能である。ステ
ップ5630は、前記パーズノードを適切なGTech要素に関連付ける。上述のよ
うに、前記パーズノードは該ノードが作成するGTech要素の記録によって翻訳中
に注釈付けされるので、これは可能である。この注釈は、図4のリンク3662
によって示されている。ステップ5640において、プログラムは、各GTech要
素からマップド要素への追跡が可能か否かを調べる。図4のリンク3672に示
すように、この追跡は、前記GTech要素が最適化によって変化していない場合に
可能である。前記GTech要素が最適化によって変化していない場合、この処理は
、各GTech要素毎にマップド要素を返す。そうでない場合、この処理はステップ
5650で終了する。
3.0 プローブ命令
上述のように、マップド回路構造がGTechに対して1対1の対応関係を有する
場合、前記マップド回路構造をHDLに遡って関連付けることができる。数種類
のGTech回路構造が典型的なオプティマイザによって維持されるが、これらの要
素は、ソースHDLと最適化されたマップド回路との間における十分な対応関係
を得られる程十分な数存在しないことがある。さらに、これらの要素が前記マッ
プド回路のどの部分に位置しているかについての配置は、分析を必要とするマッ
プド回路の要素に対応しないことがある。従って、設計者が最終的なマップド回
路に追跡可能なHDLの付加的な要素を指定しなければならないことがある。こ
の発明の一実施の形態は、ソースHDLの“プローブ”命令を使用して、GTech
回路における付加的な最適化不変要素の作成を指定する。
プローブ命令は、翻訳ソフトウエアに対して、後の最適化処理中にも維持され
るようマークされたポイントを有する初期GTech回路を構成するよう指示する。
さ
らに、通常の最適化不変構造もまた処理中維持される。以下の項では、プローブ
によるディジタル回路のHDL記述がどのように合成され、その結果としてのマ
ップド回路がどのように分析されるのかについて説明する。その後、プローブが
どのようにしてマップド回路の構成を案内し、分析情報をHDLソーステキスト
に関連付けられるようにするのかについての一例を説明する。
3.1 プローブ命令の使用法
プローブ命令が、何時、何処で、最適化不変構造をマップド回路に挿入させる
のかを設計者が容易に制御できる、ということが重要である。以下の項では、様
々異なる種類のプローブ命令、および、HDLソーステキストを修正することな
くプローブ命令を可能化したり不能化したりするための方法を説明する。
3.1.1 プローブ命令の種類
現状での好ましい実施の形態において、プローブ命令は、HDL言語でのコメ
ントである単一のテキスト列である。プローブ命令は、コメントの始めを示す文
字で始まる。VHDLでは、これは“--”である。Verilogでは、これは“//”
である。次のワードは、このコメントがトランスレータ命令であることをトラン
スレータに対して示すキーワードであり、単なるコメントではない。一実施の形
態において、このキーワードは“Synopsys”である。該キーワードの後には、そ
れがどの種類のプローブであるのかを示すプローブ宣言が来る。該プローブ宣言
の後には、GTech回路において最適化不変GTech回路構造を挿入するためのネット
の種類を識別するために使用されるオプショナルサーチ列が来る。該オプショナ
ルサーチ列の一例は“all mux controls”であり、該“all mux controls”は、
すべてのマルチプレクサへの制御ラインがプローブされるべきことを示すもので
ある。このサーチ列情報については後述する。該サーチ列情報の後には、オプシ
ョナルのプローブ強度情報が来る。該プローブ強度は、プローブの複数のグルー
プをオンまたはオフする便利な方法を提供するこの発明の1つの特徴である。一
実施の形態において、該プローブ強度は1〜5の数値を使用する。この特徴につ
いては後述する。
VHDL言語によるプローブ命令の一例を挙げると次のようである。
プローブ命令の基本的な種類の1つは、ステートメントプローブである。該ス
テートメントプローブは、上述の構文法を使用するが、サーチ列を含まない。一
実施の形態において、ステートメントプローブは、その後の最初のパーズノード
を選択する。
プローブ命令のその他の種類は、ブロックプローブである。該ブロックプロー
ブは、2つのテキスト列によって定義される。最初のテキスト列は、ブロック開
始列である。前記ステートメントプローブと同様に、コメント開始記号およびキ
ーワードから始まる。一実施の形態において、前記キーワードの後には、“begi
n block probe”というフレーズが続く。このフレーズの後には、オプショナル
のサーチ列が続く。このフレーズの後には、プローブ強度情報を有するオプショ
ナルのデータ列が続く。2番目のテキスト列は、ブロック終了列である。一実施
の形態において、前記キーワードの後には、“end block probe”が続く。この
1対のプローブ命令の一例を挙げると次のようである。
一実施の形態において、前記開始ブロックプローブ/終了ブロックプローブ対
は、前記開始フレーズと終了フレーズとの間のすべてのステートメントがプロー
ブされるようにする。ブロックプローブがどのように実行されるのかについての
詳細は後述する。
マルチプローブは、ステートメントプローブおよびブロックプローブをサーチ
列と共に使用することによって実行される。前記サーチ列は、プローブすべきノ
ードまたはネットを選択するために使用される。一実施の形態において、前記サ
ーチ列は、GTech回路要素と関連する特定種類のネットを選択するために使用さ
れる。例えば、通常、条件表現を実現するためにマルチプレクサが使用される。
マルチプレクサ制御ラインは、条件に関連したGTech回路構造にリンクされ、デ
ータラインは、二者選択に関連したGTech回路構造にリンクされる。all mux con
trolsのようなサーチ列は、マルチプレクサ制御ラインに接続されたネットをプ
ローブできる。これにより、設計者は前記条件を知ることができる。次の例は、
VHD
L言語によるall mux controlsを選択するマルチプローブの一例である。
3.1.2 プローブ選択
プローブが使用されるときに生成されるマップド回路は、プローブが使用され
ないときに生成されるマップド回路とは異なることになる。プローブはオプティ
マイザの高品質のマップド回路を生成する能力を妨害するので、一般的に、設計
者は、特定の情報を収集する必要がある場合にのみプローブを使用する。デバッ
ギング処理中の様々な時点において、設計者は、マップド回路の様々異なる要素
の特性を検出するために、HDLソースにプローブ命令を挿入することがある。
設計処理が進行するのに伴い、設計者が必要とするプローブは少なくなる。設計
者が直面するタスクの1つは、デバッギングが変更を必要とするのに応じてプロ
ーブを操作することである。これを行う1つの方法は、設計者が必要に応じて各
プローブ命令のテキストを加えたり除去したりすることである。これは、設計者
に対して、長たらしいテキスト編集という負担をかけることになる。
この発明の1つの特徴によると、HDLソーステキスト内のプローブ命令にプ
ローブ強度フィールドを使用する。前記合成処理を開始する前に、設計者は処理
強度を指定する。該処理強度より大きなプローブ強度を持つすべてのプローブ命
令は、能動的なプローブとして扱われ、従って、処理される。その他のプローブ
のすべては無視される。これは、設計者がその設計の詳細部分においてプローブ
強度を小さな値に設定した後、その設計のより高レベルの部分においてプローブ
強度をより大きな値に設定できる、ことを意味する。大きな処理強度を指定する
ことによって、設計者は、より少ないプローブを有するマップド回路を得ること
ができ、オプティマイザにより大きな融通性を提供できるが、前記ソーステキス
トに直接的に関連付けられる情報が少なくなる。より小さい処理強度を指定する
ことは、プローブの数が増やすが、マップド回路に大きな影響を与える。
このプローブ強度フィールドを実現する1つの方法は、図7に示す翻訳処理を
修正することである。特に、ステップ4120において、プローブ命令に対応す
るパーズノードがマークされる。この時点において、プローブ命令強度が、前記
テキストから取り出され、前記指定された処理強度と比較されることができる。
必要な強度を欠くプローブ命令は、単に無視される。
その他の方法は、マークづけされたネットに対してプローブ強度を付加し、最
適化処理が前記処理強度以下のプローブ強度を有するプローブを選択できるよう
にすることを含む。
他の実施の形態において、プローブ命令は、テキストを含む記述フィールドを
有する。設計者は、テキストサーチ条件を指定できる。このような条件は、テキ
ストサーチを定義するために使用される通常の表現を含むことができる。そして
、前記合成処理は、前記条件を満足させるプローブ命令を処理し、前記条件を満
足させないプローブ命令を無視する。
3.2 プローブ命令による合成
図3は、この発明に係る全体的な設計およびデバッギング処理を示す図である
。設計者は、プローブ命令を有するHDLを書く(ステップ150)。前記プロ
ーブ命令は、マップド回路において設計者が検査したいであろう箇所を明示する
。設計者は、設計処理の当初は、どこでプローブが必要になるかを知らないかも
しれない。前記プローブは機能に大きな影響を与えないので、機能シミュレーシ
ョン(ステップ101)および機能調整(ステップ102)は、上記と同じよう
に進行する。設計者は、上記と同じように合成を制限する。
プローブによる合成(ステップ154)は、翻訳ステップにおける通常の合成
(ステップ104)とは異なる。改善されたトランスレータがプローブ命令に出
会うと、そのトランスレータは、GTech回路におけるそのポイントに最適化不変
構造を作り出す。そして、オプティマイザは、付加的な最適化不変構造を有する
新たなマップド回路を生成する。一実施の形態において、HDLソースのプロー
ブされる部分は、翻訳および最適化中、主要入力および主要出力の両方として扱
われる。プローブ命令を実施するその他の実施の形態については後述する。
前記マップド回路分析ステップ105は、上記と同様に進行する。分析後、ス
テップ120に示すように、前記ツールは、翻訳中に発生した情報を使用して、
前記分析結果を前記HDLソースに関連付ける。
ここで、前記ブローブから収集された情報により、設計者は、ステップ121
に示すように、問題点を検出し、HDLを直接変更する解決法を求める。
その設計を完全に分析し、デバッグした後、前記マップド回路が製作される(
ステップ106)。
3.3 プローブ命令を実行する方法
図7は、プローブ命令を実行する方法を示す図である。この処理は、ステップ
4110において、従来のパージング技術を使用して、HDLソースからパーズ
木を構成することによって開始される。前記パーズ木のデータ構造表現は、前記
テキストの文字をこれらの文字を含むパーズノードに効率的にリンクしなければ
ならず、さらに、パーズノードに関連した文字の認識を効率的に可能にしなけれ
ばならない。テキストの特定部分をパーズノードの対応する部分に関連付ける1
つの技術は、1994年6月3日に出願されたGregoryによる“Method and Apparatus
for Context Sensitive Displays”というタイトルの米国特許出願No.08/253,45
3に記載されているが、ここではその出典みを記す。
ステップ4120において、様々なプローブ命令に対応するパーズノードがマ
ークされる。この処理の詳細については後述する。ステートメントプローブ、ブ
ロックプローブおよびマルチプローブである、3種類のプローブ命令が存在する
。マルチプローブは、ゼロまたは1つ以上のステートメントプローブまたはブロ
ックプローブに変換されることができ、そのように扱われる。この変換について
は後述するが、ここでは、マルチプローブが予め変換されていると仮定する。
ステートメントプローブは、単一のテキスト列である。該単一のテキスト列の
後に続くのは、マークすべきパーズノードである。ブロックプローブは、開始ブ
ロックステートメントおよび終了ブロックステートメントである、2つのテキス
ト列で構成される。一般的に、前記開始ブロックステートメントと終了ブロック
ステートメントとの“間”のパーズノードは、マークすべきパーズノードである
。
ステップ4130において、プローブされてないGTech回路が、前に紹介した
引例に記載されたもののように、従来の技術を使用してステップ4120で構築
されたマーク済みパーズ木から構成される。また、前記GTech回路翻訳処理は、
各パースノードに関連した要素およびネットのリストを作成する。
ステップ4140、4150および4160において、最適化不変GTech回路
構造が、各マーク済みパーズノード毎に付加される。最適化不変GTech回路構造
を付
加する1つの方法は、主要入力および主要出力を作り出すことである。以下では
、これがどのように行われるのかを詳述する。最適化不変GTech回路構造を作り
出すその他の方法は後述する。なお、ディジタル回路の機能は、次に高い階層レ
ベルで前記主要入力および主要出力を接続することによって維持される。故に、
ステップ4135において、前記ディジタル回路がより高い階層リベルを有さず
、マーク済みのパーズノードが存在する場合、付加的な階層レベルが追加される
。
ステップ4140において、マーク済みのパーズノードから作り出されたすべ
ての要素がマークされる。こうして、いくつかの要素がマークされる。
ステップ4150において、前記マークされた要素に関連するネットがマーク
される。これらのマークされたネットは、最適化不変GTech回路構造を形成する
ために、新たな主要入力/主要出力によって破られることになる。先ず、マーク
された要素はGTechサブ回路を形成する。該GTechサブ回路は、入力ネットおよび
出力ネットを有する。特定のネットがGTechサブ回路内の要素の入力ピン、およ
び、GTechサブ回路外の要素の出力ピン、または、主要入力に接続される場合、
前記特定のネットは前記GTechサブ回路の入力ネットである。特定のネットがGTe
chサブ回路内の要素の出力ピン、および、GTechサブ回路外の要素の入力ピン、
または、主要出力に接続される場合、前記特定のネットは前記GTechサブ回路の
出力ネットである。
前記GTechサブ回路の入力ネットおよび/または出力ネットをプローブするこ
とによって、前記GTechサブ回路の動作を見ることができる。こうして、最適化
不変GTech回路構造の挿入を可能にするために、前記マークされた要素に関連す
るネットをマークする方法にはいくつかの選択肢がある。1つの選択肢は、GTec
hサブ回路に対する入力ネットのみを作ることからなる。その他の選択肢は、GTe
chサブ回路に対する出力ネットのみを作ることからなる。第3の選択肢は、GTec
hサブ回路の入力ネットおよび出力ネットの両方を作ることからなる。第4の選
択肢は、プローブ命令のサーチ列部分に定義されたサーチ規準に適合するネット
を選択することからなる。
ネットを作るために、前記選択肢のうちの1が選択される。その後、各前記マ
ークされた要素が調べられる。前記マークされた要素が調べられる順序は、重要
ではない。前記要素に接続され、マーキング規準に適合するすべてのネットがマ
ークされる。一度以上ネットをマークすることは意味が無い。
ステップ4160において、最適化不変GTech回路構造が、ステップ4150
でマークされた各ネットに取って代る。マークされたネットの代りにこのような
回路構造を作るための方法には、いくつかの選択肢がある。上述のように、1つ
の選択肢は、各マークされたネットごとに、新たな主要入力および新たな主要出
力を作ることからなる。その他の選択肢は、出力ネットのみを作ることからなる
。その他の選択肢は、前記ネットをレジスタに取り付けることからなる。その他
の選択肢は、オプティマイザに対してネット修正する指示するネットに特性を付
加することからなる。その他の選択肢は、オプティマイザが最適化時に修正しな
いようマークされる新たな最適化要素を作ることからなる。この要素は、オリジ
ナルのネット上のすべての入力ピンに接続され続けるとともに、前記新たな要素
の出力ピンにも接続される。その他の要素は、オリジナルのネット上のすべての
出力ピンに接続され続けるとともに、前記新たな要素の入力ピンにも接続される
。
新たな主要入力/主要出力対を付加することによって最適化不変構造を作る利
点は、オプティマイザが主要入力および主要出力を不変な物として扱うことであ
る。図8は、マークされた各ネットごとに新たな主要入力/主要出力対がどのよ
うに作られるのかを示す図である。
ステップ3810において、新たな主要入力および主要出力が作られる。
ステップ3820において、新たな入力ネットが作られ、前記新たな主要入力
に取り付けられる。出力ネットも作られ、前記新たな主要出力に取り付けられる
。
処理中のGTech回路がより高いレベルの階層的設計を有する要素であるので、
ステップ3830において、前記新たな主要入力および主要出力が、共に、前記
設計におけるより高いレベルの新たなネットと接続される。
ステップ3840において、前記入力および出力のネットが、既存のGTech回
路に接続される。前記出力ネットは、前記マークされたネットに接続されたすべ
ての主要入力にも接続される。前記出力ネットは、前記マークされたネットに接
続されたすべての出力(またはドライバ)にも接続される。なお、前記マークさ
れたGTechサブ回路から出力ネットのみを選択するネットマーキングが選択され
た場
合、前記出力ネットは、前記マークされたGTechサブ回路外の要素に属するマー
ク済みネットに接続されたピンに接続されることになる。前記入力ネットは、前
記マーク済みネットに接続されたすべての主要出力に接続される。前記入力ネッ
トは、前記マーク済みネットに接続されたすべての入力(またはロード)にも接
続される。なお、前記マークされたGTechサブ回路から出力ネットのみを選択す
るネットマーキングが選択された場合、前記入力ネットは、前記マークされたGT
echサブ回路内の要素に属するマーク済みネットに接続されたピンに接続される
ことになる。
ステップ3840において、この方法は、双方向ピンを入力または出力として
扱う。しかし、すべての双方向ピンは同様に扱わなければならない。
3.3.1 例
上記の方法は、図22に示したGTech回路を作るために使用可能である。先ず
、図16に示したVHDLソースについて考察する。ここでは、便宜上、前記ソ
ーステキストを繰り返す。
図16のコメント401は、ステートメント402がプローブされるようにす
るプローブ命令である。VHDLソースのパーズ木は、図7のステップ4110
で構築されるものであり、図12に示されている。ステップ4120において、
前記パーズ木がマークされる。この場合、図12のノード1004がマークされ
る。ステップ4130において、前記パーズ木は、従来の方法で翻訳される。そ
の結果としてのGTech回路は図28に示されている。ステップ4135において
、必要に応じて、1レベルの階層が追加される。説明のため、図示された回路部
分より上のレベルの階層が存在すると仮定する。ステップ4140では、前記マ
ークされたパーズ木からの要素およびネットがマークされる。この場合、ネット
2
80がステートメント402から作られたものなので、該ネット280がマーク
される。ステップ4150では、マークされた要素に関連するネットがマークさ
れる。マークされるネットが1つだけなので、付加的なネットはマークされない
。ステップ4160では、マークされた各ネットごとに、最適化不変回路構造が
付加される。
この例において、主要入力/主要出力対が図8に示すように付加される。その
結果としてのGTech回路は図22に示されている。先ず、ステップ3810にお
いて、新たな主要入力203および主要出力221が作られる。次に、ステップ
3820において、入力ネット223および出力ネット222が作られ、主要入
力203および主要出力221にそれぞれ接続される。ステップ3830では、
主要入力203および主要出力221は、より高い階層レベルで接続される。ス
テップ3840において、前記入力ネット223および出力ネット222は、前
記GTech回路の残部に接続される。前記入力ネット223は、ネット280に接
続されたすべてのドライバピンに接続される。この場合、前記入力ネット223
は、ノアゲート233のドライバピン224に接続される。前記出力ネット22
3は、ネット280に接続されたすべてのロードピンに接続される。この場合、
前記出力ネット222は、マルチプレクサ231のロードピン225に接続され
る。
4.0 実行の詳細
この項は、前記ドメイン間のリンクがどのように確立され、維持されるのかに
ついての詳細を含む。
4.1 テキスト対パーズノードへのリンクの形成
先ず、パーズ木を作るために、HDLソースが構文解析(パーズ)される。前
記HDLソースからマップド回路までの追跡を可能にするためには、該パーズ木
におけるノードは、オリジナルのHDLソースにリンクされなければならない。
この項は、パーズ木対HDLソースの関係がどのように確立され、使用されるの
かを説明するものである。
パージングは、1つの言語のルールに従ってテキスト列からパーズ木を作るこ
とを含む。上記1994年6月3日に出願されたGregoryによる“Method and Apparatu
s for Context Sensitive Displays”というタイトルの、この出願と同時系属中
の米国特許出願No.08/253,453は、パージング処理の概要を開示するとともに、
テキストおよびパーズノードを関連付ける効率的なデータ構造を開示している。
この項では、テキストとパーズノードとの間の関係を使用する方法について説明
する。特に、プローブ命令を適切なパーズノードに関連付ける方法について説明
する。
4.1.1 テキストをパーズノードに区分けする表示法
図9は、あるテキストに関連するパーズ木を示す図である。この例は、この出
願と同時系属中の上記米国特許出願No.08/253,453から来たものである。パーズ
木は、ノード39100、39101、39102、39103、39104、
39105、39106からなる。文字3901〜39013は、総合的な文字
を示す。従来のパージングを使用して、前記文字はパーズノードに分類される。
パージングが完了すると、前記文字は、これらが定義するパーズノードと関連付
けられる。この例において、文字3901〜3906は、ノード39102と関
連付けられる。文字3907、3908は、ノード39103と関連付けられる
。文字3909、3910、3911はノード39105と関連付けられ、文字
3912および3913はノード39106と関連付けられる。
図10は、“{”を使用してノードの始めをマークし、“}”を使用してノー
ドの終りをマークするテキスト表現を示す図である。この表現はパーズアレイと
呼ばれている。例えば、左中括弧3930と右中括弧3940とで、ノード39
100に関連するすべてのテキストおよびノードのすべてを囲む。左中括弧39
31と右中括弧3941とで、ノード39101に関連するテキストおよびノー
ドを囲む。左中括弧3932と右中括弧3942とで、ノード39102に関連
するテキストおよびノードを囲む。左中括弧3933と右中括弧3943とで、
ノード39103に関連するテキストおよびノードを囲む。左中括弧3934と
右中括弧3944とで、ノード39104に関連するテキストおよびノードを囲
む。左中括弧3935と右中括弧3945とで、ノード39105に関連するテ
キストおよびノードを囲む。左中括弧3936と右中括弧3946とで、ノード
39106に関連するテキストおよびノードを囲む。
なお、前記左右の中括弧の対は、相互に入れ子状にされる。例えば、左中括弧
3933と右中括弧3943とは、左中括弧3931と右中括弧3941とに入
れ子される。これらは、左中括弧3930と右申括弧3940にも入れ子される
。こうして、文字は多くの中括弧対によって囲まれることがある。例えば、文字
3907は、上記3つの中括弧対によって囲まれている。しかし、左中括弧39
33と右中括弧3943は、文字3907を囲む最内方の中括弧対を構成する。
左端および右端の概念も有用である。アレイは連続した文字のリストであり、最
初の文字はアレイの左端の文字である。次の文字とは前の文字の右側の文字であ
る。最後の文字はアレイの右端の文字である。このため、文字がある条件を満た
す最も左にある文字である場合、該文字は“左端”の文字であり、文字がある条
件を満たす最も右にある文字である場合、該文字は“右端”の文字であると考え
られる。例えば、右中括弧3943は、文字3907の右側に在る左端の右中括
弧3943である。
4.1.2 テキストからパーズノードへのマッピングおよびパーズノードから
テキストへのマッピング
パーズノードに、および、パーズノードからテキストをマッピングする技術は
、この出願と同時系属中の上記米国特許出願No.08/253,453に記載されている。
前の項では、テキストに暗黙的に示された中括弧にパーズノードを関連付ける表
記法を説明した。テキスト内の特定の文字は、その文字を含む最内方の中括弧に
対応するパーズノードにマップされる。
図11は、HDLソースの一例を示す図である。図12は、このHDLソース
から得られたパーズ木を示す図である。図13は、テキストアレイと同じHDL
ソースを示す図である。図14は、パーズノードを形成するテキストの各部分を
囲む中括弧“{}”を挿入した図13のテキストアレイを示す図である。図15
は、各左中括弧“{”に番号付けした注釈付きテキストアレイを示す図である。
アレイを示すこれらの図における線の中断は、単に、アレイがそれぞれのページ
にきちんと収まるようにするためである。コンピュータプログラムは、これらの
アレイを連続した文字リストとして扱う。記号“\n”および“\t”は、それ
ぞれ、新たな線(newline)およびタブ記号を示す。
なお、図15は、この出願と同時系属中の上記米国特許出願No.08/253,453に
説
明されているのと同様に、文字を“X”として示している。明確さのために、こ
の出願の図は実際の文字を示しているが、上記米国特許出願No.08/253,453に開
示されている技術を使用して、当該システムの性能およびメモリ条件を改善して
よい。
一例として、“OR”中の文字“O”4132は、対応するパーズノードに追
跡されることになる。先ず、前記文字4132を含むパーズノードが検出される
。これは、前記文字4132を囲む最内方中括弧に対応するパーズノードである
ので、中括弧4307で始まるパーズノードである。次に、そのパーズノード番
号が求められる。中括弧4307の前には7つの左中括弧があるので、それはノ
ード番号7である。なお、この番号は、オリジナルのパーズ木のプリオーダ(pr
eorder)探索を実行し、探索される各ノードを数えることによって得られる番号
である。
特定のパーズノードに対応するテキストを捜し出す処理は、同一のデータ構造
を使用する。一実施の形態において、パーズノードの番号は、プリオーダ探索を
実行し、探索される各ノードを数えることによって、前記パーズ木から得られる
。一実施の形態において、パーズノードの番号は、上記パーズアレイから得られ
る。一実施の形態において、予め記憶されたパーズノードの番号を利用すること
ができる。パーズノードの番号が求められると、正しい番号に到達するまで前記
パーズアレイの左中括弧をカウントすることによって、関連したテキストが検出
される。正しい左中括弧とこれに対応する右中括弧との間のテキストが、前記パ
ーズノードに関連付けられる。
例えば、前記注釈付きのテキストアレイにおける7番目の中括弧4307まで
カウント(0から始まる)することによって、OR表現が検出される。
4.2 パージングプローブ命令
一実施の形態において、プローブ命令はHDL言語内のコメントである。通常
の語句分析およびパージング時において、コメントは、語句アナライザまたはパ
ーザ(構文解析プログラム)によって捨てられる。故に、どのパーズノードが各
プローブ命令によって影響されるのかを判定するために、プローブ命令は特別に
構文解析されなければならない。この項では、プローブ命令がどのようにパーズ
木を修正するのかについて説明する。翻訳時において付加的な最適化不変構造が
作られなければならない箇所を判定するために、修正されたパーズ木が使用され
る。
4.2.1 ステートメントプローブの処理
一実施の形態において、ステートメントプローブに関連したパーズ木は、該ス
テートメントプローブに続くHDLステートメントに対応する。これを実行する
1つの方法は、上記テキスト対ノードマッピングを使用して、ステートメント直
後のテキストに関連したパーズノードを決定し、該ノードをマークすることであ
る。パーズアレイがソーステキストにおけるすべての文字を含むので、これが可
能になる。前記パーズアレイは、パーズノードの境界をテキストに挿入する。プ
ローブ命令は、構築後のパーズアレイをスキャンすることによって認識可能であ
る。その後、該プローブ命令を使用して、適切なパーズノードをマークする。
図12、図16、図17、図11は、プローブ命令の処理を例示している。図
12はHDLコード部分を示し、図16はステートメントプローブ401を含む
同一のHDLコード部分を示す。図17は、図16のテキストを、パーズノード
中括弧が挿入された文字のリニアアレイとして示し、図11はパーズ木を示す図
である。パージングが完了した後、UNIXの“grep”コマンドに使用されてい
るような従来のテキストサーチ技術によって、文字4450を、該ステートメン
トプローブの最初の文字として特定できる。前記テキスト対ノードマッピングは
、中括弧4304で始まるパーズノードを、ステートメントプローブに続く最初
のパーズノードとして特定することになる。このパーズノードは、その左中括弧
が文字4450で始まるプローブ命令の右側に在る最初の左中括弧である。
なお、プローブ命令は基礎となるHDL言語によるコメント内にあるので、プ
ローブ命令のテキストは、パーズノードを含むことができず、パーズノードによ
って分割されることもできない。
図18および図19は、一実施の形態においてエラーとして扱われるべき情況
を示す図である。ステートメントプローブのテキストがHDLステートメントの
直ぐ前に無い場合、選択すべきステートメントは存在しない。図18のHDLテ
キストはこの情況を示している。ステートメントプローブ命令4520はエラー
として扱われるべきである。図19は、この情況の中括弧表現を示している。こ
のエラーは、右申括弧“}”がプローブ命令テキストの後であって、次の左中括
弧“{”の前に位置する度に、発生する。中括弧4660はこのような中括弧で
ある。この情況に対処する1つの方法は、プローブ命令の処理を停止することで
ある。この情況に対処するその他の方法は、該プローブを無視することである。
一実施の形態において、HDL分析システムがその問題点を記述し、取られる行
動を記述することによって、設計者にメッセージが送られることができる。
その他の実施の形態では、ステートメントプローブを使用して、前記プローブ
テキストの前のHDLステートメントを選択する。これには、前記プローブ命令
直前のパーズノードがマークされる必要がある。このパーズノードは、前記プロ
ーブ命令テキストの左側の最初の右中括弧“}”を見つけることによって、検出
可能である。そして、この右中括弧に対応する左中括弧“{”が認識され、上述
の如く、この左中括弧からパーズノード番号が確認される。前のテキストを選択
するプローブ命令を使用することに関する不利な点は、複雑なステートメントの
すべてのラインを追跡しなければならないことである。
4.2.2 ブロックプローブの処理
ブロックプローブ命令は、開始テキスト列と終了テキスト列とによって定義さ
れる。前記開始テキスト列および終了テキスト列は、前記ステートメントプロー
ブと極めて類似した方法で処理される。ブロックプローブについてマークするパ
ーズノードは、次のようにして見つけられる。上述のテキスト対ノードマッピン
グによって、プローブ命令の開始テキスト列の直前のパーズノードを特定し、こ
のパーズノードを開始パーズノードと呼ぶ。また、上述のテキスト対ノードマッ
ピングによって、プローブ命令の終了テキスト列の前のパーズノードを特定し、
このパーズノードを終了パーズノードと呼ぶ。
さらに、前記開始プローブ命令を含むパーズノードを特定し、前記終了プロー
ブ命令を含むパーズノードを特定する。上述のように、前記含むパーズノードと
は、その定義中括弧が前記プローブ命令を完全に囲む最内方の中括弧対であるパ
ーズノードである。前記開始プローブ命令と終了プローブ命令とが同一のノード
によって包含されない場合、論理エラーが発生する。
図20に示したHDLソーステキストについて考察する。中括弧表記法を使用
するこのソーステキストに関するパーズノードは、図21に示されている。上記
と同様に、パーズノードの境界は、中括弧記号“{”および“}”で示される。
プローブ命令4750は開始ブロックプローブ命令であり、プローブ命令476
0は終了ブロックプローブ命令である。
前記テキスト対ノードマッピング機能を開始ブロックプローブ命令4750に
適用することによって、中括弧4804によって開始される開始パーズノードが
生成される。これは、前記中括弧4804が開始ブロックプローブ命令4750
の右側の最内方の右中括弧であるからである。同様に、前記テキスト対ノードマ
ッピング機能を終了ブロックプローブ命令4760に適用することによって、中
括弧4810によって開始される終了パーズノードが生成される。これは、前記
中括弧4840が終了ブロックプローブ命令4760の左側の右端の右中括弧で
あり、中括弧4810が前記中括弧840に対応する左中括弧であるからである
。
前記開始ブロックプローブ命令4750および終了ブロックプローブ命令47
60の両方に関する最内方の“含む”パーズノードは、開始中括弧4800によ
って定義されるパーズノードである。その左中括弧がプローブ命令の前に在り、
その右中括弧が前記プローブ命令の後に在るが、これに対応する左中括弧が前記
プローブ命令の前に在る場合、パーズノードは前記プローブ命令に関する最内方
の“含む”パーズノードである。
なお、中括弧4845は、対応する左中括弧をその前に有する開始ブロックプ
ローブ命令4750の右側の、左端右中括弧である。同様に、中括弧4845は
、対応する左中括弧をその前に有する開始ブロックプローブ命令4750の右側
の、左端右中括弧である。従って、これは、ブロックプローブ命令の正しい対で
ある。
どれが開始パーズノードおよび終了パーズノードであるのかが判定されると、
これらのパーズノード、および、前記開始パーズノードと終了パーズノードとの
間のすべてのパーズノードがマークされる。翻訳時において、これらのマークさ
れたパーズノードが上述のように処理される。例えば、一実施の形態において、
前記ブロックプローブによって定義された論理ブロックの出力が、最適化不変構
造によって維持される。
起こる可能性のある1つのやっかいな情況は、前記開始ブロックプローブ命令
および終了ブロックプローブ命令に適用された場合、前記テキスト対ノードマッ
ピングが様々異なる“含む”パーズノードを特定することである。この情況は、
前記開始ブロックプローブ命令および終了ブロックプローブ命令が異なる構文ブ
ロック内に置かれていない場合に発生する。その他のやっかいな情況は、前記開
始ブロックプローブ命令がパーズノードの直前に置かれておらず、前記終了ブロ
ックプローブ命令がパーズノードの直後に置かれていない場合に発生する。一実
施の形態において、エラー情況が検出されると、処理が停止する。他の実施の形
態において、その問題点および取られる行動を記述するメッセージが、設計者に
送られることができる。
4.2.3 マルチプローブの処理
マルチプローブは、さらにどの論理をプローブすべきかを指定するサーチ列を
有するステートメントプローブまたはブロックプローブである。一実施の形態に
おいて、マルチプローブは、キーワードに続く“マルチプローブ”フレーズを使
用する。ステートメントプローブまたはブロックプローブが使用される場合、マ
ルチプローブ命令に関連するパーズノードは、上述の方法を使用して特定される
以下、これらのパーズノードを、初期パーズノード選択と言う。
一実施の形態において、前記サーチ列は、前記初期パーズノード選択における
いくつかの、または、すべてのパーズノードをマークするために使用される。そ
の後、マークされたパーズノードは、上記と同様に処理される。代入、演算子ま
たは変数などの様々な種類のパーズノードが存在する。これらのパーズノードの
種類は、特定のHDL言語によって定義される。例えば、“all assignments”
というサーチ列は、前記初期パーズノード選択における代入パーズノードをマー
クする。その他のサーチ列は“all statement sequences”である。これは、前
記オリジナル選択における各ステートメントシーケンスにおれる最初と最後のス
テートメントに対応するパーズノードがプローブされる、ことを示す。ステート
メントシーケンスは、VHDL Language Reference Manualにおいて定義されている
。
その他の実施の形態において、前記サーチ列は、マークされた要素に接続され
たどのネットがマークされるのかを指定するために使用される。上述のように、
マークされたネットは、最適化不変構造によって破られることになる。例えば、
“all mux controls”というサーチ列は、前記初期選択において、マルチプレク
サを制御するネットがマークされるべき、ことを示す。これにより、最適化の後
、マッピングされたマルチプレクサ制御のすべてがHDLソースにリンクされる
ことになる。
プローブ命令を使用することにより、このような論理ブロックの効果を観察可
能に、論理ブロックを選択的に分類することができる。従って、その他のサーチ
列は“all case statements”である。これは、ケースステートメントに対応す
るすべてのパーズノードをマークする。さらにその他のサーチ列は、サブルーチ
ンコールに対応するパーズノードをマークする“all subroutine calls”である
。優先順位の特徴によって不能化されることができるプローブ命令を使用するこ
とによって、設計者は、HDLの特定部分によって作られたマップド回路構造を
分析するために使用可能であって、分析完了時に不能化可能な一時的な階層レベ
ルを容易に作ることができる。ケースステートメントおよびサブルーチンコール
は、設計者が調べることを欲するであろう一般的な構造の2つの例である。
4.3 最適化不変構造の他の例
以下で説明するのは、プローブ命令に関して最適化不変GTech回路構造を作る
ための付加的な方法である。これらの方法のいずれかが、図7のステップ416
0において使用可能である。図22は、主要入力および主要出力の両方を抽出す
る一例を示す図である。
4.3.1 ネットに対する特性付加
プローブ命令に対応する最適化不変GTech回路構造を有する初期GTech回路を作
るためのその他の方法は、前記最適化処理における認識ステップを修正すること
からなる。前記翻訳処理時において、プローブ命令に対応するネットまたは要素
が“マーク”される。前記最適化処理における認識ステップは、最適化処理時に
“マークされていない”ネットまたは要素のみを修正可能なよう変更される。こ
のマーキングは、前記翻訳処理時に作成されたネットリストに追加的な情報を付
加することによって実現される。代案として、マークされたネットを、上記と同
様に入力ネットおよび出力ネットに分割し、前記ネットを接続する新たな要素を
付加してもよい。この要素には、最適化処理時に該要素が削除されないような特
性が与えられる。図23および図24は、最適化不変構造を有するGTech回路の
2つの例を示す図である。ネット391は、最適化処理時に修正され得ないマー
クされたネットである。要素270は、最適化処理時に修正され得ないマークさ
れた要素である。ネットを修正不可能なものとしてマークすることに関する不利
な点は、ネットが変化し得ない場合、該ネットにおける入力ピンおよび出力ピン
の総数を同一に維持しなければならない、ということである。このことは、ネッ
トに付加される要素が最適化処理時に除去または組合わせされ得ない、というこ
とを意味する。
4.3.2 主要出力のみの抽出
プローブ命令に対応する最適化不変GTech回路構造を有する初期GTech回路を作
るためのその他の方法は、高い階層レベルの主要出力のみを作ることからなる。
抽出された主要出力を有するGTech回路の一例は、図25に示されている。図8
に示した方法は、主要入力および主要出力の両方を作り出した。主要入力を抽出
することなく、主要出力のみを抽出する場合、マークされたネットは入力ネット
および出力ネットに分割される必要が無い。しかし、この技術は、最適化処理時
に予測不能の結果を招くおそれがある。
図26に示すGTechサブ回路について考察する。要素4201は、関数fを算
出し、ネット4220に出力を供給する。要素4202は、関数gを算出する。
ネット4220は、主要出力のみを付加することによってマークされ、プローブ
される。ある情況において、オプティマイザは、図27に示すようなマップドサ
ブ回路を形成することによって、効果的な処理を行うことができる。例えば、前
記オプティマイザがクリティカルパスを最短化しようとする場合、このようなマ
ップドサブ回路が形成されることがある。ここで、要素4200は、要素420
1のレプリカであり、上記と同様にネット4220を駆動する関数fを算出する
。要素4201と要素4202とは、要素4203を形成するために前記オプテ
ィマイザによって組み合わされ、該要素4203は、関数fと関数gとの組合わ
せであるhを算出する。このマップドサブ回路は正しい出力を発生するが、作ら
れた主要出力に関連したタイミング情報は、前記マップドサブ回路の機能要素に
お
ける単一の経路と関連していないので、有用なものではないおそれがある。しか
し、主要出力のみを付加することは、主要入力および主要出力の両方を付加する
ことより簡単であり、主要入力/主要出力対が付加される場合より前記オプティ
マイザが優れた動作を行うことを可能にし、ソースHDLにおけるオリジナルの
プローブ命令に対する十分な追跡可能性を設計者に提供することができる。
4.4 例
4.4.1 プローブ命令によるマップド回路分析
図11、図12、図25、図29、図16、図22、図30、図31、図32
、図33、図34、図35、図36、図37、図38は、プローブ命令がどのよ
うに作用するか、および、マップド回路分析情報がどのようにユーザに表示され
るのかを例示する図である。これらの例は、VHDLをソース言語として使用す
る。ここで例示される原理は、特定の言語に依存するものではない。例えば、当
該システムはVerilogでも作用する。
図11は、プローブ命令を含まないVHDLコード部分400の一例を含むテ
キストエディタウィンドウ300を示す図である。図11に示したコード部分は
下記のように繰り返される。
図12は、図11のソースコードを翻訳している間に構築されるパーズ木の図
形表示である。VHDLにおける“if”ステートメントは、条件、該条件が“
真”である場合に処理するためのVHDLステートメント、該条件が“偽”であ
る場合に処理するためのVHDLステートメント、の3つの部分を有する。前記
条件は、ノード1001から下降するパーズ木により処理される。前記真条件は
、ノード1004から下降するパーズ木により処理される。前記偽条件は、ノー
ド1010から下降するパーズ木により処理される。ノード1004および10
10によって示される割当ては、ノード1005および1011によって示され
る
信号値を、それぞれ、ノード1006および1012から下降するパーズ木に示
される機能にリンクすることによって処理される。
プローブ命令無しに、前記VHDL部分は、上記従来の合成翻訳技術を使用す
ることによって、図25のGTech回路に翻訳される。入力A、B、Cは、コネク
タ200、210、202によって略示されている。“if”ステートメントは
、マルチプレクサ(MUX)231中に翻訳される。条件“(C and B)”
は、アンドゲート232中に翻訳される。前記“真”条件はノアゲート233中
に翻訳され、前記“偽”条件はインバータ230中に翻訳される。
図29は、図25のGTech回路から最適化されたマップド回路を示す図である
。特に、このコード部分が実際に実行する論理機能は、ノット(B)である。こ
の時点において、従来の合成設計処理におけるプローブ無しに、設計者は、前記
部分から下降する内部タイミング情報に関する多くの情報を得ることはできない
。例えば、当該設計の他の特徴分析を補助するためにノット(A or B)の
値が算出された時を設計者が知る必要がない場合、該設計者は、図28における
回路の分析からその情報を抽出することができないであろう。
図16は、ソース記述に挿入されたプローブ命令401を示す図である。前記
コード部分は次のように繰り返される。
VHDLにおいて、“--”はコメントを開始する。該“--”直後のワード“Sy
nopsys”は、これが普通のコメントできなく、コンピュータ援用設計ツール環境
のトランスレータまたはその他の要素に対する命令である、ことを示す。ワード
“probe statement”は、当該ディジタル回路のHDL表現におけるこのポイン
トに後に得られる分析情報を関連付けることが可能なように、後のVHDLステ
ートメントがトランスレータによって処理されるべき、ことを示す。
図22は、トランスレータによって、図16に示したプローブ命令を有するコ
ード部分から生成されたGTech回路を示す図である。前記プローブ命令によって
生成されるパーズ木は、上記図12の木と同じである。しかし、前記プローブ命
令により、ノード1005によって示される信号は、主要出力および主要入力の
両方として作用することになる。
一実施の形態において、前記トランスレータは、前記パーズ木から図22のGT
ech回路を作りながら、一時的な入力(tempin)203および新たな一時的な出
力(tempout)221を付加する。このGTech回路を作ることに加えて、前記トラ
ンスレータは、前記新たな一時的な入力を、前記記述を翻訳することによって作
成されたネットリストにおけるより高いレベルの前記一時的な出力に接続する。
これは、効果的に、この内方ノードを、該設計階層におけるより高いレベルにお
いて見えるようにする。
図30は、最適化後における図22のマップド回路を示す図である。前記オプ
ティマイザは、プローブ命令によって確立された境界を超えてGTech回路を最適
化することができない。このことは、図22のノアゲート233が最適化された
マップド回路のノアゲート253に変換される、ことを意味する。最適化処理は
、GTech要素に関連したタイミングまたは面積情報を有さないGTech回路から始ま
る。最適化処理の後、マップされた構成要素は、これらに関連したタイミングお
よび面積情報を有する。故に、図22におけるノアゲート233は、図30にお
けるノアゲート253と“同じ”ではない。
前記論理最適化処理は一時的な入力203および一時的な出力221のみを残
し、これらのポイントは前記HDLソースにおける特定のポイントのみに対応す
るので、前記一時的な入力203または一時的な出力221に関連する演算結果
は、前記HDLにおけるプローブ命令401によって認識可能である。図31は
、特別なテキストウィンドウ301を介して前記HDLソースに対するタイミン
グ情報の関係を示す図である。例えば、クリティカルパス分析ツールが、マップ
ド回路におけるどこか他でクロックエッジがフリップフロップに達した後、図3
0の一時的な出力221を形成するのに1.0ナノ秒かかった、と判定した場合
を仮定する。前記一時的な出力221がこのソースラインから来たという事実を
利
用することによって、タイミング結果500を前記出力の適切なラインの次に表
示することができる。
4.4.2 ブロックプローブ命令の例
図32〜図39は、プローブを使用することによってHDLコードのブロック
の性能を評価するその他の方法を示している。図32は、HDL構成要素が記述
されたテキストウィンドウを示している。このテキストにはプローブ命令が挿入
されておらず、コードは次のように繰り返される。
このVHDLソースコードモデルの機能は、特定の優先権を有する新たな割り
込みが現在処理中の割り込みに優先して処理されるべきか否かを算定することで
ある。プロセッサ割り込み要求は、入力new request〔3〕、new request〔2〕ま
たはnew request〔1〕に達する。入力current level〔1:0〕は、現在処理中の割
り込みの優先レベルを示す。割り込み要求が現在処理中の割り込みのレベルより
高いレベルの入力に関するものである場合、should service出力が設定される。
そうでない場合、低レベルに設定される。
このソースコードコンピュータは、2つのステップで割り込み処理要求を演算
する。先ず、デコードと名付けられた処理において最高の未処理割り込み要求レ
ベルを検出する。次に、前記レベルを現在の割り込みレベルと比較する。
図33は、VHDLソースを翻訳することによって形成されたGTech回路を示
す図である。図34は、図33のGTech回路を最適化することによって形成され
たマップド回路を示す。
図35は、前記マップド回路に関する性能情報の概要を示す特別テキストウィ
ンドウを示す図である。前記分析ツールは、入力から見た状態の設計情報を提供
できる。例えば、1つの分析ツールは、ゲートをカウントすることによって設計
面積推定値を提供する。また、他の分析ツールは、設計全体における最も長い遅
延を算出する。設計者は、この情報を設計者側の必要条件と比較することによっ
て、このマップド回路が大きすぎ、または、小さすぎであるかを判定する。前記
最適化処理は、デコード機能と比較機能との区別を不明確にしている。設計者が
各機能に関連した面積または遅延を決定することは不可能である。
問題発生箇所を判定するために、図36のテキストウィンドウに示すように、
設計者は、デコード処理および比較処理の近くに“ブロックプローブ”テキスト
を挿入する。これは、開始ブロックステートメントおよび終了ブロックステート
メントによって記述されるHDLコードシーケンスに入ったり出たりするすべて
の信号をプローブする。翻訳後、プローブされたHDLは図37のGTech回路と
なる。トランスレータは、上記ステートメントプローブと略同様に、一時的な入
力2010、2011および一時的出力2000、2001を形成する。
オプティマイザは、図37のGTech回路を図38のマップド回路に変換する。
これにより、前記分析ツールは、前記マップド回路の両要素のタイミングおよび
面積特性を算出する。こうして、専用分析ツールは、図39に示すように、例え
ば、タイミングおよび面積の分析を表示できる。この例において、デコード用マ
ップド回路は、比較用マップド回路と略同じサイズおよび遅延を有する。
5.0 回路分析ツールに対するHDLソースのリンク
前の項では、HDLソースがどのようにGTech回路またはマップド回路に関連
付けられるのかについて説明した。HDLソース対GTech回路またはマップド回
路の関係が確立されると、GTech回路またはマップド回路の分析ツールは、この
リンクを利用して、設計者が前記ソースHDLを見ながら前記GTech回路または
マップド回路を分析できるようにする。この項では、前記HDLソースにリンク
された各種のGTech回路またはマップド回路分析用ツールを使用して、HDLソ
ースレベル分析システムがどのように構築されるのかについて説明する。
多くの種類のGTech回路およびマップド回路分析用ソフトウエアツールは、H
DLレベル分析を行うことができる。故に、当該システムは、任意の数のGTech
回路
およびマップド回路分析用ツールをサポートするよう設計されている。このデー
タマネージャは、ユーザレベル分析ツールから問合せを受け取り、どの分析ツー
ルが前記問合せに応答することができるのかを判定し、該応答を適切なユーザレ
ベル分析ツールに伝える。なお、前記システムは、前記GTech回路またはマップ
ド回路を使用することによって、現在の問合せに関連する前記GTech回路または
マップド回路の要素に対応するHDLテキストの部分を表示する。ソースレベル
分析時において、前記HDLソーステキスト、パーズ木の表現、GTech回路およ
びマップド回路は、すべて、前記コンピュータのメモリに同時格納され続ける。
HDLソースレベルディジタル回路分析システムの一実施の形態は、Synopsys
,Inc.から入手可能なHDL Advisor User Guide,Version 3.3aに開示されているが
、ここではその出典のみを示す。
前記HDL Advisorは中央データマネージャを有する。該中央データマネージャ
は、表示ツールおよび分析ツールである2種類のツールをサポートする。各表示
ツールは、一定のフォーマットでデータを表示することができる。例えば、前記
HDL Advisorは、積み重ね式棒グラフ表示ツール、ヒストグラム表示ツール、テ
キスト表示ツール等を含んでいる。各分析ツールは、ディジタル回路の一定の特
性に関する問合せに応答することができる。例えば、前記HDL Advisorは、マッ
プド回路に関するタイミング分析を実行することができるタイミングベリファイ
ア(タンミング検査プログラム)を含んでいる。前記中央データマネージャは、
前記表示ツールと分析ツールとの間のデータのやり取りを調整する。
前記HDL Advisorは、現在の選択を記憶する。ユーザは、キーボードまたはマ
ウスのような入力装置を使用して画面上に1つまたは複数の表示オブジェクトを
表示することによって、選択を行う。表示オブジェクトは、表示ツールに表示さ
れ、多くの異なる図形表示を有してよい。例えば、ヒストグラムのバー、テキス
トの一部、または、GTechゲートの図は、すべて、表示オブジェクトである。表
示オブジェクトは、回路オブジェクトを表現するために表示ツールによって描か
れる。各表示ツールは、該ツールが描く各表示オブジェクトとその基礎となる回
路オブジェクトとの間の相関関係を維持する。前記回路オブジェクトは、任意の
ドメインのディジタル回路構造の任意の表現を含む。例えば、プロセスステート
メント、
GTechゲートおよびマップドピンは、すべて、対応する表示オブジェクトを介し
て選択可能な回路オブジェクトである。
表示オブジェクトは、特定のドメインの回路オブジェクトを示す。こうして、
前記表示オブジェクトは、多数のドメインの回路オブジェクトを選択するために
使用されることができる。例えば、ソースドメインにおいては、HDLテキスト
におけるポートを定義するラインを選択することにより、GTechドメインにおい
ては、GTechポートの記号を選択することにより、マップドドメインにおいては
、マップドポートの記号を選択することによって、ポートを選択することができ
る。選択された表示オブジェクトは、視覚的選択と呼ばれる。これらが表示する
基礎回路オブジェクトは、回路選択と呼ばれる。前記HDL Advisorは、前記回路
選択をマルチプルドメインのマルチプル表示ツールに伝える選択マネージャを含
んでいる。該選択マネージャについては後で詳述する。
5.1 システムアーキテクチャの概要
この項では、2つの例を使用して、回路分析システムアーキテクチャの概要を
説明する。
5.1.1 ソースに対する分析結果の関連付け
図58は、ディジタルシステムのテキスト記述、該テキスト記述から得られた
パーズ木、該パーズ木から合成された回路、および、回路分析結果の視覚的表示
との間の関係を示す図である。テキスト記述6003は、文字シーケンス600
3で構成される。パーズ木6004は、パーズノード6010、6011、60
12、6013、6014を含み、前記テキスト記述6003をパージングする
ことによって構築される。前記パーズ木6004は格納される。前記テキストと
パーズ木との間の関係は、6018によって示されるように維持される。
図59に示すディジタル回路5900は、前記パーズ木6004から合成され
たものである。前記ディジタル回路5900は回路要素からなる。該ディジタル
回路5900は、入力ポート6030、6031、6032、6033、603
4、6035、および、出力ポート6036、6037を備えている。また、該
ディジタル回路5900は、セル6040、6041、6042、6043、6
044、6045を備えている。前記セルは、入力ピン6050、6051、6
052、6053、6054、6055、6056、6057、6058、60
59、6060、6061、6062を含む。また、前記セルは、出力ピン60
70、6071、6072、6073、6074、6075を含む。前記ディジ
タル回路5900は、さらに、ネット6080、6081、6082、6083
、6084、6085、6086、6087、6088、6089、6090、
6091を備えている。
この発明の1つの特徴によると、前記パーズノードと回路要素との関係を維持
する。この例において、パーズノード6011はグループ6020に関連付けら
れる。パーズノード6013はグループ6021に関連付けられる。パーズノー
ド6014はグループ6022に関連付けられる。パーズノード6012はグル
ープ6023に関連付けられ、パーズノード6010はディジタル回路5900
に関連付けられる。
分析ツールは、数値回路分析結果を回路要素に関連付ける。例えば、回路がGT
echドメインに在る場合、各ネットは、入力ポートからそのネットまでの論理レ
ベルの数を有することができる。この例の各セルが1つのゲートである場合、ネ
ット6090は入力から1論理レベルであり、ネット6091は入力ポートから
3論理レベルである。ゲートカウントはGTech分析の他の例である。各セルが1
つのゲートを有すると仮定する。グループ6020、6021、6022の各々
は、2つのゲートを有する。グループ6023は、4つのゲートを有する。同様
な結果は、マップド回路ドメインにおいても得られる。前記分析ツールは、問合
せに応じて、すべての関連する回路要素に関する結果を発生し、または、該結果
が、前記回路要素と共に格納され、または、該システムのキャッシュメモリに格
納される。
前記分析結果は、コンピュータ画面5420上のウィンドウ6095に表示さ
れる。表示オブジェクト6097のサイズまたは表示特性は、前記数値回路分析
結果によって設定されることができる。設計者は、前記ウィンドウ6095にお
いて、パーズノードにリンクされた表示オブジェクトを選択できる。前記ウィン
ドウ6095は、視覚的表示オブジェクト6097の近くに、または、これに一
致して、VHDLプロセッサのリストを有する。マウスまたはキーボードを使用
して、設計者は、テキストの要素またはパーズノードに対応する視覚的オブジェ
クトを選択する。設計者は、所望の種類の分析をも選択する。その後、前記シス
テムは、関係6019を使用して、前記選択されたパーズノードから、対応する
回路グループを特定する。例えば、設計者がパーズノード6012を選択し、ゲ
ートカウントを知りたがっている、と仮定する。該ゲートカウントは、対応する
回路グループ6023に関して得られることになる。
その後、前記システムは、回路要素に付された結果を集合化し、前記回路グル
ープに関連する集合化結果を発生する。ゲートカウントに関し、前記の集合化は
、前記回路グループにおけるゲートを合計することからなる。回路グループ60
23の場合、これは4である。遅延に関しては、集合化関数は、前記回路グルー
プ無いのネットまたはピンについて最大値を取ることになる。
そして、前記集合化結果は、表示オブジェクトの表示特性を設定するために使
用可能である。例えば、積み重ね式棒グラフにおける、パーズノード6012に
対応する矩形の高さは、前記回路グループ6023におけるゲート数を設計全体
におけるゲート数によって割った数値に設定される。これにより、設計者は、設
計におけるゲートのどの部分がパーズノード、従って、ソースHDLテキストに
起因したものかを判定できる。迅速且つ効率的に設計特性をこれらの特性の原因
となったソーステキストを視覚的に関連付けることによって、設計者の生産性を
劇的に向上する。
5.1.2 ドメイン間選択の概要
図60は、ドメイン間選択の構成を示す図である。この例において、テキスト
6013は、ノード6110、6111、6112、6113、6114、61
15を備えたパーズ木を得るために構文解析される。前記ディジタル回路は、こ
のパーズ木に従って合成される。この例におけるディジタル回路は、ポート61
30、6131、6132、6133、6134を備えている。また、該ディジ
タル回路は、セル6140、6141、6142、6143を備えている。前記
セルは、入力ピン6150、6151、6152、6153、6154、615
5、6156、6157、6158を含む。また、前記セルは、出力ピン617
0、6171、6172、6173、6174、6175を含む。それは、ネッ
ト6180、6181、6182、6183、6184、6185、6186、
6187を備えている。特に、テキスト列6102は、関係6196によって回
路要素に対応するパーズノード6112に対応する。この場合、前記対応する回
路要素はセル6140である。
ドメイン間選択は、1つのドメイン内の回路オブジェクトにリンクされた表示
オブジェクトを選択し、他のドメインの回路オブジェクトにリンクされた他の表
示オブジェクトの表示特性を変更することからなる。前記他のドメインとは、そ
の回路オブジェクトが前者の回路オブジェクトとパーズノード/回路関係によっ
て関係付けられるドメインである。この例において、表示オブジェクト6104
は、ウィンドウ6100内に在り、セル6104にリンクされている。この種の
リンクは、経路検索(path browser:経路ブラウザ)ツールによって見つけられ
る。後述のドメイン間選択技術を使用することにより、設計者は、表示オブジェ
クト6104を選択でき、関係6196を使用してウィンドウ6101に表示さ
れたテキストれち6102の表示特性を変更することができる。この種のリンク
は、ディジタル回路において問題のある経路に対応するソースコードを見つける
設計者の作業を簡素化する。
5.2 システムアーキテクチャの詳細
図40は、前記HDL Advisorの構成要素を示す。設計者520は、キーボード
5410またはマウス5411のような従来の入力ツールを使用することによっ
て、コンピュータ画面5420に現れる表示ツールと対話する。前記HDL Adviso
rには、任意数の表示ツールが在ってよい。明確さのために、この例では、積み
重ね式棒グラフ(Stacked Bar Graph)表示5430と、HDL表示5440と
が示されている。前記積み重ね式棒グラフ表示5430とHDL表示5440に
ついては、後で詳述する。この項では、これらの表示ツールが当該システムのそ
の他の構成要素とどのように相互作用するのかについて説明する。その他の表示
ツールも同様に作用するものである。
前記ヒストグラム表示5430およびHDL表示5440の各々は、中央デー
タマネージャ125に問合せを送り、該中央データマネージャ125から応答を
受け取る。前記中央データマネージャ125は、前記問合せを処理する補助のた
めに分析ツールを使用する。任意の数の分析ツールを該データマネージャ125
に登録してよい。明確さのために、この例では、論理レベル分析ツール5470
およびタイミングベリファイヤ5480である、2つの分析ツールが示されてい
る。問合せを処理する方法は図42に示されている。
また、表示ツールは、ユーザがどの回路オブジェクトを選択するかについて、
選択マネージャ5460と通信する。この処理は図41に示されている。前記中
央データマネージャ125は、ドメインマッパ5450を含んでいる。該ドメイ
ンマッパ5450は、ソースドメイン、初期ドメインおよびターゲットドメイン
内の回路オブジェクトを入力として取り込み、前記ターゲットドメイン内の対応
する回路オブジェクトを見つける。この処理は図4および図5に示されている。
5.2.1
前記HDL Advisorは、種々の表示ツールおよび分析ツールが相互に通信できる
ようにする。データマネージャは、当該システムに通信し、いくつかの機能を実
行する。最も重要には、前記データマネージャによって、表示ツールは、特定の
ドメインにおける問合せを提示し、その応答が異なるドメインで算出される場合
でも、同じドメインの応答を受け取る。このため、前記データマネージャの役割
は、ドメインマッパ、および、表示ツールと分析ツールとの間のメッセージコー
ディネータの両方として機能することである。さらに、前記データマネージャは
、複雑な問合せを、一連のより簡単な問合せに分割する。該データマネージャは
、どの分析ツールがある特定の問合せに応答できるのかを確認する。性能を向上
させるために、前記データマネージャは、最近提示された問合せおよびその応答
のキャッキュメモリを備えている。この項では、前記データマネージャがどのよ
うに構築され、表示ツールおよび分析ツールがどのように前記マネージャに接続
されるのかについて説明する。
前記データマネージャは、オブジェクトを識別するために大域識別子を使用す
る。一実施の形態において、前記大域識別子は番号である。前記大域識別子は、
ドメインと共に前記データマネージャに送られることができる。前記データマネ
ージャは、前記大域識別子に対応する前記送られたドメインのオブジェクトを返
すようにする。一実施の形態において、前記データマネージャは、前記大域識別
子を、あるドメインの回路オブジェクトを捜すためのテーブルに対する指標とし
て使用する。前記データマネージャは、前記回路オブジェクトを所望のドメイン
にマッピングするために、上記ドメインマッピング機能を使用する。
図42は、前記データマネージャがどのように問合せ4910を処理するのか
を示す図である。問合せは、それがどの種類の問合せであるのかについての標識
(例えば、面積および電力)、問合せされている回路オブジェクトのリスト、前
記問合せの結果をキャッシュ記憶すべきか否かを示すフラグ、および、各回路オ
ブジェクトごとの前記問合せ処理結果を集合化するための関数を含むものである
。前記集合化とは、多数の結果を1つの結果に見合せる処理である。前記集合化
関数は、サブ問合せの結果を組合わせるために使用される関数である。サブ問合
せについては、ステップ4940に関して説明する。前記集合化関数は、問合せ
によって決定されるものであり、該問合せと共にテーブルに格納されることがで
きる。例えば、面積の問合せは、サブ問合せによって発生された面積結果を合計
することによって集合化される。最長遅延の問合せは、問合せセットから戻され
た最大結果を検出することによって集合化される。
一実施の形態において、問合せの種類は、表示ツールが登録される時、前記デ
ータマネージャによって前記表示ツールに与えられる。表示ツールの登録につい
ては後で詳述する。問合せは、設計者520の操作に応じて、表示ツールインタ
ーフェースによって作られる。問合せは、表示ツールからのメッセージとして到
達し、登録された分析ツールの1つによって応答されることになる。なお、問合
せは、1つのドメインで到達し、他のドメインで処理され、その応答は、最初の
ドメインで送られる。問合せが発せられるドメインを、初期ドメインと言う。問
合せが処理されるドメインをターゲットドメインと言う。表示ツールおよび分析
ツールのいずれも、ドメイン変換について知る必要がない。
ステップ4920は、前記問合せに関する初期ドメインおよびターゲットドメ
インを判定する。前記初期ドメインは、前記問合せで送られたオブジェクトが表
現されたドメインである。前記ターゲットドメインは、前記問合せの種類によっ
て決定される。各問合せのターゲットドメインは、前記問合せの種類によって指
示されるテーブルに格納される。例えば、タイミングについての問合せは、ゲー
トドメインに含まれる情報を使用して応答されることができる。翻訳された回路
内の経路を分析するために使用可能な論理レベルについての問合せは、GTechド
メインに含まれる情報を使用して応答されることができる。また、ステップ49
20は、前記問合せに関する集合化関数を設定する。
ステップ4930は、前記問合せ内の回路オブジェクトを、初期ドメインから
ターゲットドメインにマッピングする。このマッピングは、上述され図4および
図5に示された連続したドメイン間のマッピングを行うことによって行われる。
ステップ4940は、前記ターゲットドメインの問合せを分割する。前記問合
せ内の回路オブジェクトが多数の回路オブジェクトで構成される場合、これが必
要である。なお、前記問合せ内の回路オブジェクトが分割される態様は、前記問
合せの種類に応じて異なる。例えば、前記問合せがHDL“処理”回路オブジェ
クトの面積を求める場合を仮定する。処理は多くの論理要素で構成されるので、
前記問合せは、これらの論理要素の各々の面積を求め、これらを合計する必要が
ある。この分割は、問合せの種類によって指示されるルーチンテーブルを使用す
ることによって実現される。該テーブルにおける各ルーチンは、この問合せの種
類に関して前記ターゲットドメインの回路オブジェクトを選択し、必要に応じて
、分割された同じドメインの回路のリストを戻す。
ループステップ4950は、分割された問合せごとにループ処理される。矢印
4955は、前記ループ処理のリターン分岐経路を示す。
ステップ4960は、特定の回路オブジェクトに関する特定の分割された問合
せの結果が問合せ結果キャッシュメモリに格納されているか否かをチェックする
。
前記結果が問合せ結果キャッシュメモリに格納されている場合、分岐4963
によってステップ4970が処理され、前記結果が前記結果キャッシュメモリか
ら読み出される。
前記結果が問合せ結果キャッシュメモリに格納されていない場合、分岐496
6によってステップ4975が処理され、この分割された問合せのための分析ツ
ールが選択される。そして、前記問合せが分析ツールに送られ、結果が戻される
。
最初の問合せにおいてキャツシュフラグがセットされている場合、ステップ4
990は、前記問合せおよびその結果をキャッシュメモリに格納する。なお、結
果をキャッシュメモリに格納する唯一の目的は、性能向上である。他の実施の形
態においては、前記処理の異なる時点で、前記結果をキャッシュメモリに格納し
、該キャッシュメモリをチェックするようにしてもよい。例えば、前記結果がス
テップ4980で集合化された後に、該結果をキャッシュメモリに格納してもよ
い。
ステップ4980は、すべての前記分割された問合せの結果を集合化する。こ
の集合化は、前記結果を、最初の問合せについて戻されることになる1つの結果
に組合わせる。前記結果は、前記問合せ内の集合化関数を使用して集合化される
。
ステップ4985は、前記集合化された結果を、ターゲットドメインから初期
ドメインにマッピングする。これは、図5に示された連続したドメイン間のマッ
ピングすることによって行われる。
結果4995は、前記データマネージャから、前記結果を最初ら要求した表示
ツールに送られるメッセージである。
5.2.2 選択マネージャのアーキテクチャ
前記選択マネージャは、ドメイン間マッピングを使用することによって、多数
のドメインでの回路選択を追跡する。ユーザによって表示オブジェクトが選択さ
れると、これに対応する選択された回路オブジェクトを示すメッセージが、前記
選択マネージャに送られる。その後、前記選択マネージャは、現在の回路選択に
関する情報をすべての表示ツールに伝える。各表示ツールは、前記回路選択情報
を使用することによって、その表示内の正しい表示ツールを選択する。前記選択
マネージャは、ドメイン間マッピング機能を使用することによって、任意のドメ
インの回路選択を伝えることができる。前記回路選択に関する情報を伝えること
によって、前記選択マネージャは、ユーザが1つの種類の表示ツールを使用して
該当する回路オブジェクトを容易に見つけることを可能にし、また、その他の表
示ツールを使用してその回路オブジェクトを調べることを可能にする。
図41は、前記選択マネージャがどのように回路選択を処理するのかを示す図
である。先ず、設計者520は、キーボードまたはマウスのような入力ツール5
510を使用することによって、表示ツール5520において視覚的な選択を行
う。次に、該表示ツール5520は、前記選択マネージャ5460に対してその
回路選択を知らせる。前記選択マネージャ5460は、前記回路選択を利用可能
な各表示ツール5560に伝える。なお、前記回路選択を行った表示ツール55
20は、伝えられるメッセージにも含められる。前記回路選択は、1つまたは複
数の大域識別子のリストを使用して伝えられる。各表示ツールは、任意に、前記
データマネージャ125に対して、前記大域識別子を特定のドメインの回路オブ
ジェクトにマッピングする。図41において、表示ツール5560は、前記伝え
られた大域識別子のGTech値を要求する問合せを前記データマネージャ125に
送る。その後、前記データマネージャは、表示ツール5560に対して前記要求
されたGTechオブジェクトを戻す。
多数の表示ツール間の回路選択を追跡する能力は、前記HDL Advisor全体を通
じて使用される。回路選択追跡の使用は、非テキスト表示ツールにおける回路選
択を特定し、HDLソースにおけるその回路選択の視覚的選択を見ること、HD
Lソースの構造を認識して、非テキスト表示ツールにおけるその回路選択の視覚
的選択を見ること、および、HDLソース機構における“follow selected(選
択物追随機能)”、である3つの大きなカテゴリに分類されることができる。
図40の表示ツールについて考察する。設計者520が、積み重ね式棒グラフ
表示5430内に示される特定のGTech主要出力の視覚的表示を選択した、と仮
定する。前記積み重ね式棒グラフ表示において視覚的選択を行う方法については
、後で詳述する。前記積み重ね式棒グラフ表示は、GTechドメイン内の対応する
回路選択を、選択マネージャ5460に伝える。ドメイン間の関係およびマッピ
ング処理は、図4〜図6に示した。こうして、前記選択マネージャは、選択され
た主要出力を表示するソースドメインパーズノードを決定する。そして、前記選
択マネージャは前記パーズノードの識別子を送り、HDL表示5440は、前記
回路選択のパーズノード識別子を受け取る。前記HDL表示5440内の表示オ
ブジェクト、従って、対応する回路オブジェクトを選択し、GTech表示によって
前記回路オブジェクトを見ることは、上記同様な方法で行われる。
前記HDL Advisor内におけるすべての表示ツールの機能を、“選択物追随機能
”と呼ぶ。該選択物追随機能によって、HDL表示5440のような表示は、積
み重ね式棒グラフ表示5430のような他の表示におい手設計者520によって
分析中のGTechまたはマップド回路構造を追跡する。例えば、この機能は、HD
L表
示5440が、常時、現在のHDLソースを表示することを可能にする。こうし
て、前記設計者は、GTechまたはマップド回路構造を調べ、該GTechまたはマップ
ド回路構造が作られる元になったHDLソースを同時に見ることができる。この
機能は、従来の分析をHDLソースに自動的にリンクすることによって、前記H
DLソースレベルでのディジタル回路分析を補助する。前記選択マネージャが前
記選択をおくる度に、前記HDLテキスト表示は、ソースドメインの適切な回路
オブジェクトを要求し、これに対応する表示オブジェクトを視覚的に選択する。
前記HDL表示5440は、前記選択されたテキストが前記HDLテキスト表示
ウィンドウに現れるよう、前記テキスト表示をスクロールする。
前記選択マネージャおよび表示ツールに関する特殊ケースは、特定の回路オブ
ジェクトが選択されない場合である。この場合、前記選択マネージャおよび表示
ツールは、設計者が、前記HDL Advisorによって分析中の設計全体に関する情報
を望んでいる、と仮定する。このため、前記HDL Advisorによって使用されるコ
ンピュータメモリに設計がロードされるときに前記選択マネージャが伝える1番
目の選択は、設計全体である。
5.2.3 表示ツールのアーキテクチャ
コンピュータシステム内において、設計を指定する情報は、二進法で表現され
ている。設計者が該設計を展開し、分析するためには、前記設計に関する情報は
、モニタ上の視覚表示等、人によって理解可能な形態で示されなければならない
。さらに、設計者520は、キーボードやマウスのような、前記設計情報を操作
するための手段を有さなければならない。5430、5440で示したような表
示ツールは、設計者とのインタラクションを行うための機構を提供する。
しかし、ディジタル回路設計情報は複雑であり、効率的に設計者520が前記
設計を制御し、分析できるようにするためには、前記表示ツールによって設計者
が設計データの構造を利用できるようにすることが必要である。
前記設計データの構造を利用するための1つの方法は、前記データマネージャ
において特定のドメインと通信ための特定の設計ツールを設計することである。
しかし、多くの表示ツールは、多数のドメインとのインタラクションを行う。例
えば、後述する積み重ね式棒グラフは、ゲートドメインに関する面積情報、およ
び、GTechドメインに関するゲートカウント情報を通信できる。表示ツールが特
定のドメインからの情報を表示するよう設定されているか否かに関係なく、各表
示ツールは、表示する情報を収集するために前記データマネージャを使用する。
どのドメインが扱われるのかに関係なく、各表示ツールは、メッセージを前後
におくることによって、前記データマネージャとのインタラクションを行う。こ
れらのメッセージは、あるドメインにおける回路オブジェクトを指定するととも
に、該回路オブジェクトについて実行すべき問合せを指定する。表示ツールは、
回路オブジェクトを示す表示オブジェクトを表示し、その回路オブジェクトにつ
いて応答可能な問合せのリストを格納することができるが、前記表示ツールはこ
れらの問合せに応答しない。これに対して、前記データマネージャは、表示ツー
ルに対して回路オブジェクトを提供し、該オブジェクトに関連した問合せを処理
することができる。一実施の形態において、前記データマネージャは、開始時に
、各表示ツールに対して、応答可能な問合せのリストを提供する。これは、新た
な分析ツールがより容易に該システムに追加されることを可能にする。利用可能
な分析に関する情報は、各表示ツールに複写される代りに、前記データマネージ
ャの中央部に格納される。
表示ツールは、表示ツールインターフェースを介して前記データマネージャと
通信する。前記表示ツールインターフェースの目的は、前記表示ツールに対して
データ抽出層を提供することである。これは、表示ツールをできる限り包括的な
ものにすることができる。例えば、後述する積み重ね式棒グラフは、例えば面積
および電力使用を含む異なるディジタル回路特性を分析できる。前記表示ツール
インターフェースは、そのツールが表示する特定種類のデータに関する問合せの
フレームを形成する。このため、前記表示ツールは包括的な問合せのフレームを
形成できるだけでよく、前記表示ツールインターフェースが、各問合せを、前記
データマネージャが理解できるものに翻訳する。
前記表示ツールは、その問合せがどのように応答されるのかを知らない。多く
の分析ツールが、おそらく、問合せの発生元であるドメインとは異なるドメイン
において応答を算出するために利用可能であるという事実は、前記表示ツールイ
ンターフェースに知らされない。これにより、表示ツールは、問合せの発生元で
あるドメインとは異なるドメインでの表示をサポートすることができる。多くの
回路情報がGTechまたはマップド論理ドメインで利用可能であるが、表示オブジ
ェクトはおおくの場合ソースドメインで所望されるので、この能力は重要である
。
システム始動時において、該システムが初期化される時、各表示ツールは前記
データマネージャに登録される。この時、前記データマネージャは、前記表示ツ
ールに対して、それが応答可能なすべての問合せを知らせる。
前記表示ツールインターフェースは、ある特定のドメインにおけるディジタル
回路構造に関する情報を要求し、その応答を受け取る。前記データマネージャは
、応答を算出するために使用される分析ツールのドメインに関係なく、同じドメ
インの問合せに応答する。例えば、ソーステキスト表示ツールが特定のパーズノ
ードに関する到達時間を知りたい、場合を仮定する。前記ソーステキスト表示ツ
ールは、前記データマネージャに対して、前記パーズノードおよび到達時間の要
求を含むメッセージを送る。前記情報が入手可能な場合、前記データマネージャ
は、前記パーズノードおよび実際の到達時間を応答する。
上記のように、前記表示ツールは、さらに、ユーザが表示ツールとのインタラ
クションを行うことによって、回路オブジェクトが選択された時、その旨を前記
選択マネージャに知らせるために該選択マネージャと通信する。
5.2.4 分析ツールのアーキテクチャ
分析ツールは、ある1つのドメインに含まれる情報を処理するために使用され
る。一般的に言えば、人がある特定のドメインで実行しようとする分析には2種
類ある。通常の種類の分析ツールは、ある1つのドメインにおける1つまたは複
数の回路オブジェクトを選択し、これらの回路オブジェクトに関連した特性を算
出する。例えば、ゲートドメインにおいて、タイミングアナライザは、マップド
回路の様々な要素に対する遅延時間およびスラック(最遅時刻と最早時刻との差
)を算出するために使用される。前記タイミングアナライザは、クロックエッジ
後に1つの出力ピンに対するデータ信号が有効になる時を検出する。ゲートドメ
インにおいて、面積分析ツールは、前記マップド回路を構築するために必要な面
積を算出する。GTechドメインにおいて、構成要素カウント分析ツールは、GTech
回路が2入力ゲートのみによって実現されている場合に使用される前記2入力ゲ
ー
トの数を算出する。
他の種類の分析は、特定の回路オブジェクトグループに関連する特性を要約す
ることからなる。例えば、マップド回路のゲートレベルでの総面積を見積もるこ
とは、各構成要素および接続部に関連した面積を合計することからなる。
回路オブジェクトの特性を要約する分析ツールの場合、該分析ツールは、回路
オブジェクトおよび接続部間の構造についての情報を必要とする。故に、分析ツ
ールは特定のドメインに関連付けられる。例えば、タイミングベリファイヤ54
80はマップドドメインを処理し、論理レベル分析ツール5470はGTechドメ
インを処理する。
一般的に言えば、分析ツールは、メッセージによって前記データマネージャ1
25と通信する。該データマネージャ125は、前記分析ツールに対して1つま
たは複数の回路オブジェクトを提供し、前記分析ツールは、これらの回路オブジ
ェクトの1つもしくは2つ以上の特性、または、これらの回路オブジェクトの特
性の要約、または、その両方を戻す。
前記分析ツールは、前記データマネージャと3種類のインタラクションを実行
する。その1つとして、各前記分析ツールは、システムが初期化される時に、前
記データマネージャに登録される。この登録は、前記データマネージャに対して
、分析ツールがどの種類の問合せを、どのドメインで応答できるのかを知らせる
ことからなる。例えば、前記タイミングベリファイヤ5480は、ゲートドメイ
ンでタイミングの問合せに応答できる。後に、前記分析ツールは、問合せを受け
取り、これに応答する。
前記データマネージャは、どの分析ツールが特定の問合せに応答できるのかを
確認する。さらに、前記データマネージャは、前記分析ツールに関する正しいド
メインで問合せを提示する。前記データマネージャは、ドメイン間の関係を使用
することによって、前記分析ツールに関する正しいドメインに問合せを翻訳する
。例えば、HDLソースに指定された出力ポートに対する信号の到達時間に関す
る問合せについて考察する。一実施の形態において、タイミングベリファイヤが
前記データマネージャに登録される。該データマネージャは、前記タイミングベ
リファイヤが到達時間を提供できることを確認し、ゲートドメイン内のどのポー
ト
が前記HDLソースに指定されたポートに対応するのかを判定する。その後、前
記データマネージャは、前記タイミングベリファイヤに対して、そのポートに対
する到達時間を要求するメッセージを送る。前記タイミングベリファイヤは、到
達時間を求め、前記ゲートドメインにおけるポート到達時間を示すリターンメッ
セージを送る。前記分析ツールは、前記問合せのソースを知らず、または、ドメ
インマッピングが行われるという事実を知らない。前記分析ツールは、単に、そ
れが理解するドメインで前記問合せに応答する。
5.2.5 GTechドメインにおける分析
この発明の1つの特徴は、前記GTechドメインにおける意味あるディジタル回
路分析を可能にする。GTech回路は前記HDLソースの直接的な翻訳版であるの
で、前記HDLソースの品質は、前記GTech回路の品質に直接関係する。前記GTe
ch回路のどの要素に問題があるのかを判定し、前記GTech回路のこれらの問題の
ある要素の原因となったソースを改善することによって、最適化処理の開始ポイ
ントの改善がなされることになる。最適化処理が翻訳されたGTech回路に与える
効果を予測することは難しいので、最適化処理の前に最良のGTech回路を作るこ
とが重要である。最初のGTech回路が良質のものである場合、オプティマイザが
なすべき選択は少なくなる。前記オプティマイザがなすべき選択範囲が小さくな
るので、これは最終結果をより信頼性があり、おそらくは、より良い品質のもの
にする。
ある問合せの種類は、GTechドメインに関するものである。例えば、“GTech G
ateCount”のような種類は、単純な論理ゲートにマッピングされる場合にGTech
要素が必要とするであろうゲートカウントを要求する。このゲートカウントは、
最適化処理の前に必要とされる初期面積を分析するために使用可能である。その
他の問合せの種類としては、単純な論理ゲートにマッピングされる場合にGTech
回路の最長の経路が必要とするであろう論理レベルの数を要求する“GTech Logi
cLevels”である。
GTech分析は、前記ドメイン間マッピング機能を使用することによって、前記
ゲートドメインにおける構造を選択し、これらの構造をGTechドメインに関連付
け、その後、完全なHDLソースからGTech回路へのマッピングが利用可能なGTe
chドメインでの分析を実行する。この種の分析の一例は、後述するPath Browser
ウィ
ンドウにおける開始/終了モードモードである。
5.3 HDLソース参照によるディジタル回路分析の一例
この項では、設計者が、どのように、前記HDL Advisorを使用して、1つのド
メインで検出された設計特性を他のドメインで検出された設計特性に関連付ける
のかについて説明する。この例の場合、設計は、ソースドメイン、GTechドメイ
ンおよびゲートドメインの表現を含むものとする。
設計者は、デコード(図36のテキストにおけるプロセスステートメント)の
ようなあるテキストを選択することによって、評価すべき表示オブジェクトを選
択する。このHDLテキスト選択は、上記パーズノード関係へのテキストを使用
する。該パーズノードマッピングへのテキストは、選択されたテキストを表現す
るパーズノードを決定するために使用され、そのパーズノード番号は前記選択マ
ネージャに送られる。
その後、図40の設計者520は、積み重ね式棒グラフ表示5430のような
表示ツールを得る。次に、設計者520は、例えば、HDLテキスト表示544
0を使用するソースドメインにおいて、前記設計の特徴を示す視覚的表現を得る
。前記表示ツール5440は、HDLソースファイルのテキストを表示する。こ
の項で説明される例は、図32〜図39に示されている。
また、前記設計者520は、利用可能な選択肢から、実行すべき分析の種類を
選択する。1つのやり方として、前記設計者520は、メニューまたはプッシュ
ボタンによって、これを選択する。他のやり方として、前記設計者520は、前
記テキストを選択する前に、これを選択する。この例において、前記設計者52
0が前記デコード処理を構成するゲートの面積を要求する、仮定する。
前記パーズノード番号および問合せの種類は、前記データマネージャ125に
送られる問合せを構成する。また、ここで、所望の分析が選択されたパーズノー
ドを構成するゲートの面積に関するもの、と仮定する。開始時の登録によって、
前記データマネージャ125は、必要な情報が前記ゲートドメインに在ることを
確認できる。前記データマネージャ125は、図5のドメイン間マッピングを使
用して前記確認されたパーズノードに対応するゲートドメイン内のゲートを特定
することによって、前記パーズノードの面積を算出する。この例において、設計
者520は、1つの前記処理の面積を知りたがっており、プローブポイントを使
用して前記設計を分離し、ゲートレベルへのドメイン間マッピングを可能にする
。
こうして、前記データマネージャに送られる初期的な問合せは、前記ソースド
メインにおけるVHDLプロセスステートメントの面積に関するものである。先
ず、前記データマネージャは、面積の問合せがマップドドメインで応答されるべ
きであることを確認する。故に、前記データマネージャは、前記ドメイン間マッ
ピング機能を使用することによって、前記プロセスステートメントに関連したゲ
ートを見つける。次に、前記データマネージャは、前記問合せが各ゲートごとの
サブ問合せに分割されるべき旨を判定する。この情況において、前記データマネ
ージャは、前記処理のための総面積が各ゲートごとの面積値を合計することによ
って算出可能な旨の判定を行う。
関連するゲートを特定した後、前記データマネージャ125は、これらのゲー
トによって使用される総面積を算出する。前記ゲートドメインにおいて、各ゲー
トは、該ゲートに関するいくつかの特性を有する。これにの特性のうちの1つは
面積である。前記データマネージャは、ゲート面積に関する問合せに応答できる
面積分析ツール5480を選択する。一実施の形態において、前記面積分析ツー
ル5480は、技術ライブラリ内のゲート面積値を調べることによって、ゲート
の面積を求める。前記技術ライブラリは、物理的なゲートを作る半導体メーカに
よって供給される。
各サブ問合せごとに、前記面積分析ツール5480は、前記データマネージャ
125に返送される面積値を発生する。各面積値は、前記処理に対応するゲート
のうちの1つの面積を示す。そして、前記データマネージャ125は、各サブ問
合せによって戻された面積値を合計することによって、これを集合化する。
その後、最終的な面積結果がHDLテキスト表示ツール5440に送られ、該
表示ツール5440は、その結果を直接表示し、または、これを使用して前記表
示ツールの表示特性を修正する。
5.4 表示ツールの例
図40に示したアーキテクチャの融通性により、多数の表示ツールがかのうに
なる。前記表示ツールは、GTech回路またはマップド回路の要素に関するディジ
タ
ル回路分析情報を、これらの要素を形成するソーステキストに関連付ける。この
項では、多数の表示ツールについて説明するが、すべての表示ツールは説明しな
い。一例を挙げて前記表示ツールの使用法を明らかにする。
表示ツールを前記データマネージャにリンクすることによって、前記表示ツー
ルは、他のドメインで算出された1つのドメイン内の結果を表示することできる
。さらに、設計者は、下記の積み重ね式棒グラフのようなツールを使用すること
によって、ゲートカウントのような設計属性を調べることができる。そして、設
計者は、該当要素が合成される元となったソースHDLを見ることができる。例
えば、設計者は、積み重ね式棒グラフを使用することによって、高いゲートカウ
ントを有するマップド回路部分を見つけることができる。このマップド回路部分
は、ソースHDLと関連付けることができる。
図43〜図50は、ディジタル回路分析データを表示するための表示技術を示
す図である。これら図43〜図50は、AMD2910A設計を表示する表示ツールを示
している。前記ソースおよびそれから形成されるマップド回路は、1991年に発行
されたSteve CarlsonによるIntroduction to HDL-Based Design Using VHLに開
示されているが、ここではその出典のみを示す。この本は、700 East Middlefie
ld Road,Mountain View,CA94043-4033のSynopsys,Inc.から入手可能である。前
記表示ツールは、さらに、米国、カルフォルニア州、Mountain Viewに在るSynop
sys,Inc.から入手可能なHDL Advisor User Guide,Version 4.0a Beta Draftに開
示されているが、ここではその出典のみを示す。
前記AMD2910A設計のHDLソースは、多数のファイルに分けられている。従来
のパージング技術に従うと、各前記ファイルごとに、個別のパーズ木が作られる
。上記方法によると、各パーズ木は、HDLソースおよび該ソースから作られた
GTech回路にリンクされる。前記AMD2910A設計のHDLソースは、設計階層レベ
ルを示す。前記米国、カルフォルニア州、Mountain Viewに在るSynopsys,Inc.製
のDesign Compiler使用されるもののような従来の技術に従うと、この階層レベ
ルは相互にリンクされる。
5.4.1 積み重ね式棒グラフ表示
図43は、HDLソースの様々な要素の相対的は位置に関する積み重ね式棒グ
ラフ表示情報を示す図である。多くの場合、HDLで書かれた設計は階層的に記
述され、高いレベルのモジュールがより低いレベルのモジュールを含んでいる。
前記階層の特定のレベルにおいて、設計者は、そのレベルにおいて見られるモジ
ュールの特性を知りたいと思うことがある。図43の積み重ね式棒グラフは、そ
の設計の様々異なる要素に関連した相対的面積を示す図である。前記AMD2910A設
計の最高レベルにおいて、CNTL BLK,MUX OUT BLK,REG BLK,UPC BLKおよびSTACK
BLKである5つの要素に関連した相対的面積を示している。これらのブロックの
名前は、ウィンドウ2600の表示オブジェクトリスト領域2610に示されて
いる。測定された総面積は、前記ウィンドウの底部に表示されている。前記マッ
プド回路の総面積は、1964.0ゲートとして示されている。この例において、特性
は面積である。しかし、電力および時間などの他の特性を同様に表示することが
できる。
各前記サブブロックは、テキストステートメント2680〜2684を介して
示される測定された特性を有する。例えば、CNTL BLKは、ステートメント268
0によって示すように、総面積の3.8%である74.00ゲートを占める。MUX OUT BL
Kは、ステートメント2681によって示すように、総面積の7.5%である148.00
ゲートを占める。REG BLKは、ステートメント2682によって示すように、総
面積の11.5%である225.00ゲートを占める。UPC BLKは、ステートメント268
3によって示すように、総面積の12.1%である237.00ゲートを占める。STACK BL
Kは、ステートメント2684によって示すように、総面積の65.2%である1280.
00ゲートを占める。積み重ね式棒グラフは、総特性に対するその特性の割合に比
例したボックスサイズを有するよう、各機能サブブロックに対応する図形ボック
スを描くことによって構成される。これは、ボックス2630〜2634によっ
て示されている。
図43の積み重ね式棒グラフは、特定の特性の物理的性質を考慮することなく
構成されることができる。故に、電力、タイミングまたはその他の特性は、同一
のソフトウエアによって表示されることができる。前記データマネージャは、回
路オブジェクトの名前、これらの回路オブジェクトに関連した数値、および、前
記表示ツールが以後の問合せを開始するとともに前記選択マネージャを更新する
ために使用可能な大域識別子を前記表示ツールに送るだけでよい。
さらに、前記積み重ね式棒グラフの一部を形成するボックス2630〜263
4のような各ボックスは、選択可能なボタンである。ユーザは、通常のポインテ
ィング技術およびクリッキング技術を使用して前記ボタンを“押す”ことができ
、前記ボックスに対応したサブブロックに関する情報を得ることができる。図4
4は、ユーザがボックス2631を選択することによってサブブロックMUX OUT
BLKを選択した結果を示す図である。ここで、サブブロックMUX OUT BLK自体は、
OUT BLKおよびMUX BLKである2つのサブブロックを含んでいる。測定された総面
積2620は、サブブロックMUX OUT BLKのサイズを反映して148.00に変化して
いる。OUT BLKは、ステートメント2780によって示すように、MUX OUT BLKの
面積の33.1%である49.00ゲートを占める。この情報は、ボックス2730によ
っても図形表示されている。MUX BLKは、ステートメント2781によって示す
ように、MUX OUT BLKの面積の66.9%である99.00ゲートを占める。この情報は、
ボックス2731によっても図形表示されている。さらに、前記ウィンドウは、
経路ステートメント2705によって、階層における現在位置をも示している。
さらに、ステートメント2780のようなステートメントも、レベル変更のため
のボタンとして機能できる。
図45は、前記99.00ゲートがどのように割当てられるのかを調べるためにMUX
BLKを設計者が選択した場合に表示される情報を示す図である。なお、ユーザが
選択可能なボタンのうちの1つを“押し”、または、図45に示すような棒グラ
フの構成要素のうちの1つを選択すると、前記選択マネージャは現在の回路選択
によって更新される。こうして、プロファイラによって、設計者は、前記設計に
おける一定の特性に合致する部分を迅速に選択できるとともに、前記設計の全体
的な統計を見ることができる。
5.4.2 ヒストグラム表示
図46のヒストグラム表示は、設計者に対して、前記設計における問題点の範
囲に関する情報を提供する。例えば、マップド回路の性能に関する1つの特徴は
、1つのフリップフロップの出力から他のフリップフロップの入力に至る経路に
沿った最長の遅延である。設計者がクロック波形を指定すると、タイミングベリ
フ
ァイヤは、前記マップド回路全体にわたる到達時間および必要な時間を決定する
。前記マップド回路における任意のポイントにおいて、前記到達時間は、前記ク
ロックによって影響されるすべてのレジスタから前記マップド回路における前記
ポイントまでの最長経路を測定することによって、クロックエッジに関して決定
されることができる。同様に、前記必要な時間は、前記マップド回路における前
記ポイントから前記クロックによって影響されるレジスタからまでの最長経路を
測定することによって、クロックエッジに関して決定されることができる。すべ
てのクロックとすべてのクロック波形との間の関係が指定されると、前記タイミ
ングベリファイヤは、関連するクロックエッジの各組合わせごとに、前記必要な
時間から前記到達時間を減じることによって、前記マップド回路における各ポイ
ントごとの最悪のスラックを求めることができる。最小、すなわち、最も負の値
が大きい結果は、前記マップド回路におけるそのポイントの最悪のスラックと考
えられることができる。Synopsys,Inc.から入手可能な前記Design Compiler Ref
erence Manual,Version 3.1aは、タイミング分析について記載しているが、ここ
ではその出典のみを示す。あるポイントが負のスラック時間を有する場合、タイ
ミング条件は満たされていないことになる。ほんのわずかのノードのみが負のス
ラック時間を有する場合、または、前記負のスラック時間がゼロに近い場合、設
計者は、前記設計の一部を調整することによって調整可能な小さな問題点を有す
ることになる。しかし、多くのノードが負のスラック時間を有する場合、または
、前記負のスラック時間が大きい場合、設計者はかなりの問題点に直面すること
になる。図46のヒストグラムツールは、設計者が直面する問題点の範囲に関す
る情報を提供する。
前記ヒストグラム表示は、従来のヒストグラム作成技術を使用する。このヒス
トグラムツールは、GTech回路またはマップド回路の数値特性の分布を表示し、
ユーザがその特性を有する回路オブジェクトを示す表示オブジェクトのリストを
見ることを可能にする。図46の例は、AMD2910Aのタイミング分析を示す。前記
ヒストグラムツールは、前記データマネージャに対して前記設計における回路オ
ブジェクトの所望の属性(この場合、スラック時間)を問う問合せを形成する。
前記データマネージャは、タイミングアナライザを使用して、前記回路のいくつ
か
のポイントにおけるスラック時間を算出する。前記マップド回路において同様な
スラック時間を有するノードは、カテゴリ別に分けられ、カウントされ、ヒスト
グラムが作成される。
ヒストグラムリストウィンドウ2900は、ヒストグラムウィンドウ2920
およびリストウィンドウ2910である2つのサブウィンドウを有する。前記ヒ
ストグラムウィンドウ2920は、値の範囲ごとに複数のバー2930〜293
7を有する。前記バーの高さは、その範囲に属するネットの数を示す。ユーザが
前記バーの1つを選択すると、前記リストウィンドウ2910は、その範囲内の
ネットを示す名前のリストを表示する。前記リスト表示における個々のアイテム
は、選択アイテム2915によって図示されるように、選択されることができる
。
これらのメカニズムにより、設計者は、前記回路選択を特定の特性を有する回
路オブジェクトに限定することができる。前記選択マネージャは、設計者が前記
設計を探索するのに伴って更新される。例えば、最小のスラック時間を有する回
路オブジェクトは、スラックヒストグラムを作成し、最悪の値範囲を構成する表
示オブジェクトを見ることによって検出可能である。そして、前記設計者は、他
の表示ツールを使用して、前記選択された回路オブジェクトに関するさらなる情
報を得ることができる。
5.4.3 HDLブラウザ表示
図47は、HDLテキスト表示ウィンドウとも呼ばれるHDL Browserを示す。
該HDL Browserは、HDLソースコードを付加的な情報で注釈する文字表示を提
供する。一実施の形態において、テキスト表示ウィンドウ3000は、3つの小
ウィンドウを有する。テキストウィンドウ3010はソーステキストを含む。選
択ウィンドウ3040は、選択されたテキストに関連するGTech回路またはマッ
プド回路を示す。カーソルウィンドウ3030は、カーソル下にあるテキストに
関連するGTech回路またはマップド回路を示す。コラムレポート3060は、テ
キストのラインに関連したGTech回路またはマップド回路を示す。他の実施の形
態において、前記選択ウィンドウおよびカーソルウィンドウは、独立したウィン
ドウであって、前記HDL Browser内には含まれていない。
一実施の形態において、テキスト選択は、通常のウィンドウに基づくテキスト
選択メカニズムによって行われることができる。例えば、設計者は、画面の関連
部分にカーソルを移動し、ボタンを押すことができる。代案として、設計者は、
選択すべきテキストの延長部分にカーソルをドラッグすることができる。
また、他の実施の形態において、設計者は、1回の視覚的な選択によって、1
つのパーズノードに対応するすべてのテキストを選択することができる。前記設
計者は、カーソルを動かしてボタンをクリックすることによって、通常通り前記
視覚的な選択のための初期ポイントを指示する。しかし、前記テキストウィンド
ウ3010は、カーソルが指示しているテキストによって示されるパーズノード
全体を囲むテキストボックス3020を構築する。さらに、ユーザがあるテキス
ト全体にわたってカーソルを動かすと、前記テキストウィンドウは、該テキスト
を完全に包含する最初のノードによって示されるテキスト全体の周囲にボックス
を描く。さらに、前記テキスト表示は、前記選択されたパーズノードを示すテキ
スト全体の周囲にボックスを描くことによって、前記視覚的な選択を表示する。
前記テキストボックス3020のリミットを決定するための1つの速い方法は、
上記1994年6月3日に出願されたGregoryによる“Method and Apparatus for Cont
ext Sensitive Displays”というタイトルの、この出願と同時系属中の米国特許
出願No.08/253,453に開示されているパーズ木表現を使用する。
ここで、カーソルウィンドウ3030は、カーソル下の表示オブジェクトに関
連したGTech回路要素のゲートカウントを表示する。“gtech Area=6”というフ
レーズは、カーソルテキストボックス3020によって表示された“PSH PTR>ST
K LOW”という条件によって実行される比較機能が、前記データマネージャにお
ける総合技術ドメインに6面積単位を必要とする、ことを示している。前記カー
ソルウィンドウ3030は、前記カーソルによって指示されたテキストに関連す
る他の特性も表示可能である。
前記選択ウィンドウ3040は、選択されたテキストに関連する情報を表示す
る。ここで、前記選択されたテキスト1050のサイズおよびフォントが変更さ
れる。前記選択されたテキスト1050のリミットを決定するための1つの速い
方法は、上記1994年6月3日に出願されたGregoryによる“Method and Apparatus
for Context Sensitive Displays”というタイトルの、この出願と同時系属中の
米国特許出願No.08/253,453に開示されているパーズ木表現を使用する。この例
において、前記選択ウィンドウ3040は、HDL構文MEM[PSH PTR]3050
に関する詳細な情報を示している。ステートメント3080は、選択された回路
オブジェクトのHDL構文の種類(この場合、構文はアレイ指標である)を示す
。ステートメント3083は、GTechドメイン1510における前記構文の推定
面積(この場合530面積単位)を示す。また、ステートメント3084は、1
つのレジスタからこの構文3050を実現するゲートまでの論理レベルにおける
最長経路の長さ(この場合、18ゲート)を示す。ステートメント3081は、
パーズ木ノード番号を示す。詳細リスト3082は、前記構文3050を実現す
るGTechドメインにおけるネットリスト構成要素を示す。このリストの各構成要
素ごとに、次のような情報が表示される。すなわち、前記構成要素のネットリス
ト名3087、該ネットリスト構成要素の種類3088(レファレンス名)、推
定総面積に対する寄与度3089、および、該ネットリスト構成要素の分類(例
えば、セル、ピン、ネットまたはポート)が表示される。設計者の所望に応じて
、他の情報が表示されてもよい。
コラムレポート3060は、各ラインに関連する情報を示す。ここで、該コラ
ムレポートは、各ラインのHDL構文に関連する面積を示している。
5.4.4 仮想スキーマチック構成図表示
前記ディジタル回路分析処理の一部は、ドライバおよび被駆動要素、すなわち
、特定のGTech回路要素またはマップド回路要素の入力および出力を追跡するこ
とを含む。図48に示す仮想スキーマチック構成図表示は、設計者に対して、H
DLソースにおける他のポイントに入力を与えたり、該他のポイントから出力を
取り出したりするHDLソースを見つける能力を提供する。前記仮想スキーマチ
ック構成図表示は、入力領域3110、現在領域3120および出力領域313
0である、3つのウィンドウ領域を有する仮想スキーマチック構成図ウィンドウ
3100を含んでいる。設計者は、カーソルを使用して、前記現在領域に選択さ
れたテキスト3150を示す。該選択されたテキスト3150は、前記データマ
ネージャにおけるGTech回路オブジェクト3151(図示せず)に対応する。該G
Tech回路オブジェクト3151は、入力および出力を有する。そして、前記デー
タマ
ネージャは、前記入力領域3110を、前記HDLソーステキストにおいて前記
GTech回路オブジェクト3151の入力がどこで発生したのかを示す部分にリン
クする。ここで、入力“DATA”は、入力引き数3145によって示されるように
、モジュールMULTIPLEXORの入力から発生する。また、前記データマネージャは
、前記出力領域3130を、前記HDLソーステキストにおいて前記GTech回路
オブジェクト3151の出力がどこに行くのかを示す部分にリンクする。ここで
、出力“Z”は、出力引き数3155によって示されるように、モジュールMULTI
PLEXORの出力に行く。
前記出力領域でクリックすることによって、設計者は、移行的なファンアウト
を追跡できる。図49は、前記領域で発生する変化を示す。ここで、前記出力領
域のテキストは、現在領域3120に移動する。前記出力領域のテキストは、出
力引き数3155によって駆動される回路オブジェクトに対応する合成テキスト
を示すよう変化する。ここで、前記出力引き数3155は、出力引き数3156
によって示すように、次のレベルのモジュール境界で他の出力を駆動する。入力
領域3110は、前記ソーステキストにおいて前記選択された出力引き数315
5を設定または定義するすべての箇所を示すよう変化する。ここでは、ウィンド
ウ3271、3272、3283、3274、3275に示すように、出力引き
数3155に関して5つのテキストソースが存在する。前記最初に選択されたス
テートメント3150は、ウィンドウ3272にも示されている。
ウィンドウ3271に示すように、追加的な入力はMULTIPLEXOR入力引き数SEL
から発生する。ウィンドウ3272、3283、3274、3275に示すよう
に、Zは、ケースステートメントにおける様々異なるポイントにおける値をとる
。
図50は、出力引き数3156の追跡結果を示す図である。ここでは、高レベ
ルモジュール定義が現在領域3120に現れ、入力領域3110が図49の現在
領域に示されたモジュールインターフェースを示している。
入力も、出力と同様に追跡可能である。なお、前記仮想スキーマチック構成図
において表示オブジェクトを介して回路オブジェクトを選択することによって、
設計者は、GTechファンインおよびGTechファンアウトの分析が進行するのに伴っ
て前記HDL Browserウィンドウの更新も行われるよう、前記選択マネージャを更
新
することになる。
1つの特定のポイントに集まる1つの回路のすべてのポイントの集合は、その
ポイントの移行ファンインと呼ばれる。また、1つの特定のポイントの値に依存
する1つの回路のすべてのポイントの集合は、移行ファンアウトと呼ばれる。上
記の例では、前記仮想スキーマチック構成図を使用して、移行ファンインおよび
移行ファンアウトを追跡する方法を示した。
分析時において、前記設計の1つの要素の変更が該設計の他の要素に与える影
響を、設計者が考慮しなければならない場合がある。設計者が前記ソースHDL
を変更する場合、該設計者は、その変更が形成されるGTech回路にどのように影
響するのかを確認することが有用である、と思うであろう。設計者が前記ソース
HDLにおける特定機能を変更する場合を仮定する。この場合、前記設計者は、
その変更が前記GTech回路の残りの部分にどのように影響するのかを調べるため
に、その機能に対するすべての入力または出力を確認することが有用である、と
思であろう。前記ソースHDLにおける特定の要素のすべての入力(または出力
)を追跡することは難しい作業であるが、前記HDLと翻訳中に形成される初期
GTech回路との間の対応関係を利用することによって、前記ソースHDLにおけ
る入力(または出力)を強調することが可能になる。
5.4.5 論理インスペクタ
論理インスペクタウィンドウは、前記設計における選択された終了ポイントへ
の移行的なファンインを表示する。この論理は、前記設計のGTech表現から算出
される。該論理インスペクタウィンドウは、前記設計内の値を算出するために使
用される入力、前記HDLソースによって示される初期的なブール構造、および
、最適化処理後のブール最小化の影響を表示する。
前記ブール最小化は、前記論理インスペクタウィンドウから呼出され、論理最
適化前の論理レベルまたは構成要素カウントを縮小させる目的に基づいて、最初
の論理構造の可能な縮小を示す。なお、前記終了ポイントの移行ファンインが選
択された場合、前記GTech回路の一部はブール最小化のために隔離される。
現在の回路選択に対応するブール論理を見るために、設計者は、メニュ項目を
選択することにより、または、ボタンを押すことにより、前記論理インスペクタ
における“New Logic”を選択する。こうして、該論理インスペクタによって、
前記現在の回路選択に対応する論理が次のようにして作られる。先ず、前記論理
インスペクタは、前記選択マネージャに問合せることによって、GTechドメイン
における現在の回路選択を確認する。前記選択マネージャは、前記論理インスペ
クタに対して、GTech回路オブジェクトを送る。前記論理インスペクタは、論理
を作る元となる前記回路選択内のビット位置を指定するよう設計者に求めること
によって作られる前記論理を制限する。
先ず、前記論理インスペクタは、前記選択された回路オブジェクトに関する移
行ファンインを構成するすべての回路オブジェクトを算出するために、前記デー
タマネージャに問合せする。そして、前記論理インスペクタは、前記データマネ
ージャに対して、GTech要素を論理オプティマイザに送るよう求める。一実施の
形態において、前記論理オプティマイザは、前記GTech要素によって示される論
理を最適化し、該論理最適化の後に発生される論理式を示すデータ列を戻す。な
お、前記オプティマイザは、上記のような標準的な最適化技術を使用して、前記
GTech論理を改善しようとするものであが、これをマッピングしない。一実施の
形態において、設計者は、論理を最適化する場合の労力を指定することができる
。前記論理インスペクタは、戻された前記データ列をスキーマチック構成図とし
て表示する。
図52は、前記論理インスペクタによって作成された論理の図形表示を示す。
この論理は、中レベルの労力によって最適化されたものである。この最適化の労
力レベルは、呼出される最適化方式の複雑度を決める。前記論理インスペクタに
よって表示されるスキーマチック構成図は、マップド回路構造ではなく、GTech
ブール論理を示している。GTechブール論理の特性は、AND、OR、NANDおよびNORゲ
ートのような簡単なゲートがそれらの入力を区別しないことである。このため、
これらゲート間で信号のルーティングを行う必要がない。故に、前記論理インス
ペクタの記号ジェネレータは、単に論理式の各演算子ごとにゲートを描くだけな
ので、大変高速に動作する。これらのゲートは、相互に直接的に接続され、前記
論理式を示す複雑なゲートを構成する。
前記論理インスペクタの記号ジェネレータは、2つのステップからなる処理を
使用することによって、論理式から複雑な記号を作り出す。先ず、前記記号ジェ
ネレータは、各入力からそれが駆動する出力まで追跡することによって、各記号
を駆動するゲートのサイズを算出する。次に、前記記号ジェネレータは、論理式
の出力から開始して、後方に作用する。各論理式は、1つの論理ゲートとして表
示される。前記記号ジェネレータが後方に作用するのに伴い、該記号ジェネレー
タは、前のレベルの直後に新たなゲートを置く。前記ゲートの十分離して置かれ
、これらの前に駆動用のゲートを置く余裕をもたせる。前記論理式の端末に到達
すると、これらは、単に、最後の論理層のピンに接続される。なお、1つの端末
によって表される信号を1つのポートからルーティングする必要なしに、同一の
端末が2つ以上のピンに接続されてもよい。
5.4.6 経路ブラウザ
図51は、前記AMD2910AのGTech表現における経路を表示する経路ブラウザウ
ィンドウを示す図である。
該設計者が前記設計における接続部を図形的に探索することを可能にする。こ
のウィンドウは、前記設計における1つの経路、および、該経路に沿って設けら
れた要素のファンインおよびファンアウトのすべてを表示している。前記経路は
、GTechドメインまたはゲートドメインのいずれにおいて表示されてもよい。H
DLソースの結合性は、前記ドメイン間マッピング機能を使用して、GTech経路
における任意のポイントを前記ソースHDLに関連付けることによって、理解さ
れ得る。前記経路ブラウザウィンドウは、表示された経路上のドライバのファン
アウトを示す。このファンアウトを示すことによって、設計者は、前記経路に対
するロードの影響を見ることができる。さらに、前記経路ブラウザウィンドウは
、前記経路へのファンインを示している。この一例はGTechゲート5230であ
る。階層レベルは、前記経路上の論理の周囲のボックス5220として表示され
ている。階層レベルは、GTech回路またはマップド回路を改善するオプティマイ
ザの能力に影響するので、重要である。
前記経路ブラウザウィンドウは、インタラクティブである。該経路ブラウザウ
ィンドウにおける表示オブジェクト上でクリックすることによって、ユーザは、
前記表示オブジェクトによって示される回路オブジェクトに対する入、出力のす
べてが見られるよう、前記表示オブジェクトを拡張できる。GTech要素5210
は、このようにして拡張されたものである。さらに、論理要素上でクリックする
と、前記選択マネージャに格納された回路選択の更新も行われる。新たなピンま
たはポートを選択し、該ピンまたはポートを他のGTech経路またはマップド経路
に関する開始ポイントとして使用することによって、他の経路の表示が可能にな
る。
GTech分析のメカニズムの1つである“開始/終了モード”は、前記ドメイン
間マッピング機能をさらに利用する。前記開始/終了モードは、設計者がマップ
ド論理ドメイン内の経路を選択することを可能にする。前記経路の開始および終
了は、ドメイン間マッピング機能を使用して、前記GTechドメインにマッピング
される。そして、GTechタイミングベリファイヤは、前記GTech回路における開始
点および終了点との間の最長経路を算出する。前記GTechドメインとソースドメ
インとの間のマッピングを使用することによって、前記経路がHDLイキストに
表示される。この処理により、設計者は、最初のHDLにおけるタイミング分析
を実行し、前記ソースレベルにおける前記設計のタイミング特性を改善すること
ができる。
なお、前記HDL Advisorは、伝統的なマルチシートスキーマチック構成図を作
成しない。前記経路ブラウザウィンドウは、HDLから発生するディジタル回路
を通る経路の図形表示を行う。前記経路は、GTech論理構成要素またはマップド
論理構成要素からなっていてよい。
5.5 分析ツール
上述のように、前記HDL Advisorのアーキテクチャによって、問合せに応答す
るために任意数のディジタル回路分析ツールが登録可能になる。例えば、非排他
的な分析ツールのリストは、
・タイミングベリファイヤ
・面積分析ツール
・電力分析ツール
・経路追跡分析ツール
・レイアウト分析ツール
・GTech論理レベル分析ツール
・GTech構成要素カウント分析ツール
を含む。
5.6 詳細例
この項では、上述の項で説明された3つの部分からなるアーキテクチャを使用
する例を説明する。この例は、AMD2910A設計を使用する。そのソースおよびそれ
から形成されるマップド回路は、1991年に発行されたSteve CarlsonによるIntro
duction to HDL-Based Design Using VHLに開示されているが、ここではその出
典のみを示す。この本は、700 East Middlefield Road,Mountain View,CA94043-
4033のSynopsys,Inc.から入手可能である。前記AMD2910A設計は、米国カルフォ
ルニア州、Mountain Viewに在るSynopsys,Inc.から入手可能なHDL Advisor User
Guide,Version 4.0a Beta Draftに開示されているが、ここではその出典のみを
示す。
5.6.1 設計者の目視
この例において、設計者は、合成前にGTech設計の構成要素カウントを求め、
しかる後、HDLコードのうち多数の構成要素を使用する部分を特定することを
望む。
先ず、設計者は、前記積み重ね式棒グラフ表示ツールを使用することによって
、GTech回路全体の構成要素カウントを示す積み重ね式棒グラフを表示する。図
55は、AMD2910Aに関する構成要素カウントを表示する積み重ね式棒グラフを示
す図である。この表示を得るために、設計者は、先ず、メニュー項目を選択する
などの通常の方法で、積み重ね式棒グラフ表示ウィンドウをオープンし、該積み
重ね式棒グラフ表示内のComponent Countアイコン5710上でクリックする。
この表示に現れるデータは、前記AMD2910Aの“CORE”設計内のセグメント分布を
示す。なお、前記表示はHDLソースに関して区分けされている。前記積み重ね
式棒グラフの各セクションは、前記ソースドメイン内の回路オブジェクトを示す
。分析はGTechドメインで行われるが、その結果は前記ソースドメイン内のオブ
ジェクトによって分類される。
前記積み重ね式棒グラフ表示において、設計者は、大多数の構成要素が“STAC
K BLK”構成要素に使用される、ことを見る。これは、STACK BLK5720におけ
る構成要素を示す表示オブジェクト(この場合、大きな棒)によって示される。
ここで、設計者は、前記STACK BLK内における構成要素分布に関するさらに詳し
い情報を得ることを望む。前記設計者は、STACK BLK5720上でクリックする
ことによって、該STACK BLK5720を示す表示オブジェクトを選択する。そし
て、前記設計者は、PUSH INアイコン5730をクリックすることによって、前
記STACK BLKをより詳しく見る。前記表示オブジェクトを選択し、より詳しく見
ることを同時に行うための他の方法は、前記表示オブジェクト上でダブルクリッ
クすることである。
前記設計者が前記STACK BLKをより詳しく見ると、前記積み重ね式棒グラフ表
示は、前記STACK BLK内のモジュールの構成要素カウントを見せるよう変化する
。図56は、前記AMD2910AのSTACK BLKモジュールに関する構成要素カウントを
表示する積み重ね式棒グラフを示す図である。
さらに、前記設計者がSTACK BLK5720を示す表示オブジェクトを選択する
と、HDLテキストブラウザは、前記STACK BLKを具体化したHDLソースを表
示する。図57は、STACK BLK5910に関するソースコードを強調したHDL
テキストブラウザを示す図である。前記HDLテキストブラウザは、STACK BLK
回路オブジェクトが選択されたことを示し、ユーザが該選択された表示オブジェ
クトを見るための便利なメカニズムを提供するものである。
この時点において、前記設計者は、前記STACK BLK表示5910における1つ
の最大の棒を選択する。この棒は、前記GTech回路における可変アレイ指標であ
る。前記HDLブラウザはこの可変アレイ指標に関するHDLソースコードを強
調し、設計者は、その構文が前記構成要素カウントを小さくするために書き換え
可能か否かを考慮することができる。例えば、前記アレイのサイズを小さくでき
、そのデータは、使用する構成要素が少ないシフト操作によって抽出されること
ができる。代案として、設計者は、前記STACK BLKにおける他の大きな棒を選択
し、これらに関連するソースHDLを書き換えることを考慮することができる。
このツールアーキテクチャは、構成要素カウントのような重要な設計特性を図
形表示し、回路設計者に対して、前記HDLソースにおいて特定の特性の原因と
なる部分を表示する簡単なメカニズムを提供することによって、前記回路設計者
の手助けとなる。
5.6.2 実施
この項では、前記HDL Advisorソフトウエアが、前述の例において設計者によ
って目視される表示をどのように作り出すのかを説明する。図61は、設計者が
設計を分析する際の通信フローを示す。
先ず、設計者520は、図55にも示された積み重ね式棒グラフ表示ツール5
430を使用して、前記GTech回路全体の構成要素カウントの積み重ね式棒グラ
フを表示する。前記積み重ね式棒グラフ表示ツール5430は、コンピュータの
画面上の通常のウィンドウに現れる。
前記設計者が前記積み重ね式棒グラフ表示5430内の構成要素カウントアイ
コン5710を押すと、前記表示ツール5430は、前記設計全体を構成するす
べての回路オブジェクトの構成要素カウントを求めるために、前記データマネー
ジャに対して問合せを発する。一実施の形態において、前記設計全体を示す“de
sign id”と呼ばれる特別な大域識別子が存在する。
一実施の形態において、前記設計全体の構成要素カウントを求める処理は、2
つのステップからなる。先ず、前記積み重ね式棒グラフ表示ツール5430は、
データマネージャ125に対して、前記前記ソースドメインを構成する構成要素
のリストを要求する問合せ6403を発する。一実施の形態において、前記問合
せ6403は、(“composition”,[〈design id〉],False,Null)フィールド
を有する。ここで、“composition”は、問合せの種類であり、該問合せがオブ
ジェクトリスト内のオブジェクトを構成する回路オブジェクト[〈design id〉
]を要求していることを示す。Falseは、その結果をキャッシュメモリに格納さ
れるべきでないことを示す。Nullは、composition(構造)に関する問合せには
集合化関数が必要でないことを示す。
そして、前記データマネージャ125は、前記問合せ6403に対する応答を
算定する。一実施の形態において、前記データマネージャ125は、前記問合せ
6403が前記GTechドメインで作用する構造分析ツール6400によって応答
可能なものである旨判定する。前記データマネージャ125は、前記ドメインマ
ッパを使用して、前記〈design id〉を、ソースドメインから前記GTechドメイン
内の回路オブジェクトにマッピングする。なお、前記分析ツールは、大域識別子
を使
用しないが、1つのドメインの回路オブジェクトを使用する。そして、前記デー
タマネージャ125は、前記構造分析ツール6400に対して、前記設計の構造
を求めるための問合せ6403を送る。一実施の形態において、問合せ6406
は、(“composition”,〈design〉,False,Null)フィールドを有する。ここで
、“composition”は、問合せの種類であり、該問合せが前記設計内のオブジェ
クトを構成する回路オブジェクト〈design〉を要求していることを示す。False
は、その結果をキャッシュメモリに格納されるべきでないことを示す。Nullは、
composition(構造)に関する問合せには集合化関数が必要でないことを示す。
そして、前記構造分析ツール6400は、前記GTech回路をトラバースし、前記
設計の構造を求め、前記データマネージャ125に対してその結果を含むメッセ
ージを返送する。一実施の形態において、前記メッセージ6409は、message
(“composition result”,[〈CNTL BLK〉,〈MUX OUT BLK〉,〈UPC BLK〉,〈RE
G BLK〉,〈STACK BLK〉])である。前記データマネージャ125は、これらの
オブジェクトの各々についての大域識別子を決定する。一実施の形態において、
前記データマネージャ125は、前記オブジェクトを、前記大域識別子を捜すた
めのテーブルに対する索引として使用する。他の実施の形態において、前記大域
識別子は前記オブジェクトについて格納される。そして、前記データマネージャ
125は、前記積み重ね式棒グラフ5430に対して、前記問合せに対する応答
6412を送る。一実施の形態において、返送メッセージは、message(“compo
sition result”,[〈CNTL BLK ID〉,〈MUX OUT BLK ID〉,〈UPC BLK ID〉,〈RE
G BLK ID〉,〈STACK BLK ID〉])である。
次に、前記積み重ね式棒グラフツール5430は、前記データマネージャ12
5に対して、前記構造リストにおける各回路オブジェクトの構成要素カウントを
要求する問合せ6415を発する。一実施の形態において、前記問合せ6415
は、(“component count”,[〈CNTL BLK ID〉,〈MUX OUT BLK ID〉,〈UPC BLK
ID〉,〈REG BLK ID〉,〈STACK BLK ID〉],False,Sum)フィールドを有する。
ここで、“composition”は、問合せの種類であり、該問合せが前記オブジェク
トリスト内のオブジェクトを構成する回路オブジェクト[〈CNTL BLK ID〉,〈MU
X OUT BLK ID〉,〈UPC BLK ID〉,〈REG BLK ID〉,〈STACK BLK ID〉]を要求し
ていることを示す。Falseは、その結果をキャッシュメモリに格納されるべきで
ないことを示す。構成要素
カウントの結果がサブ問い合せの結果を合計することによって集合化されるので
、Sumは集合化関数である。一実施の形態において、Sumは、テーブルにおいてco
mponent count問合せ種類を捜すことによって、集合化関数として選択される。
そして、前記データマネージャ125は、前記問合せ6403に対する応答を
算定する。一実施の形態において、前記データマネージャ125は、前記問合せ
6403が前記GTechドメインで作用する構造分析ツール6400によって応答
可能なものである旨判定する。前記データマネージャ125は、前記ドメインマ
ッパを使用して、前記回路オブジェクトリストのオブジェクトを、前記ソースド
メインから前記GTechドメイン内の回路オブジェクトにマッピングする。そして
、前記データマネージャ125は、前記オブジェクトリスト内の各回路オブジェ
クトごとにサブ問合せを作成する。一実施の形態において、第1のサブ問合せ6
418は、(“component count”,〈CNTL BLK〉,False,Sum)フィールドを有す
る。ここで、“composition”は、問合せの種類であり、該問合せが〈CNTL BLK
〉によって示されるCNTL BLKを構成する回路オブジェクトを要求していることを
示す。Falseは、その結果をキャッシュメモリに格納されるべきでないことを示
す。構成要素カウントの結果がサブ問合せの結果を合計することによって集合化
されるので、Sumは集合化関数である。そして、前記構造分析ツール5470は
、前記GTech回路をトラバースし、前記CNTL BLK内の各要素の構成要素カウント
を求め、すべての構成要素カウントを合計し、前記データマネージャ125に対
してその結果を含むメッセージ6421を返送する。一実施の形態において、前
記メッセージ6421は、message(“composition count result”,119.0)で
ある。前記データマネージャ125は、前記オブジェクトリスト内の各回路オブ
ジェクトごとにサブ問合せを作成し、前記構造分析ツール5470は、前記積み
重ね式棒グラフに対して、前記最初の問い合せに対する応答を送る。一実施の形
態において、この返送メッセージ6430は、(“composition count result”
,[119.0,124.0,194.0,294.0,1978.0])である。前記積み重ね式棒グラフ表示
は、これらの番号を使用して、図55に示した積み重ね式棒グラフを作成する。
そして、設計者は、前記設計のこの要素に関するより詳しい情報を得るために
、前記STACK BLKを示す表示オブジェクトを選択する。
前記設計者が前記STACK BLK5720を示す表示オブジェクトを選択すると、前記
積み重ね式棒グラフは、前記選択マネージャ5460に対して、その新たな選択
を示すメッセージ6433を送る。一実施の形態において、前記メッセージ64
33は、message(“selection set”,〈STACK BLK ID〉)である。こうして、
前記選択マネージャ5460は、メッセージを使用して、すべての表示ツールに
対して前記選択を送る。一実施の形態において、前記メッセージ6436は、me
ssage(“selection”,〈STACK BLK ID〉)である。このメッセージ6436の
受信者の1つは、HDLテキストブラウザ5440である。
前記HDLテキストブラウザ5440は、ソースドメイン回路オブジェクトと
して前記選択を得るために、前記データマネージャ125に対してメッセージ6
439を送る。一実施の形態において、前記メッセージ6439は、message(
“GetGlobalId”,[〈STACK BLK ID〉],Source)である。そして、前記データ
マネージャ125は、前記ソースドメインにおけるSTACK BLKを示す大域識別子
を含むメッセージ6440をHDLテキストブラウザ5440に返送する。その
後、前記HDLテキストブラウザ5440は、前記大域識別子に対応するパーズ
木ノード番号を要求するメッセージ6441を前記データマネージャ125に送
る。一実施の形態において、前記メッセージ6441は、message(“GetGlobal
Id-ToLocalID”,[〈STACK BLK ID〉])である。前記データマネージャ125
は、前記HDLテキストブラウザ5440に対して、前記〈STACK BLK ID〉に対
応するパーズ木ノード番号を含むメッセージ6442を返送する。こうして、前
記HDLテキストブラウザ5440は、前記パーズ木ノード番号によって示され
るパーズ木ノードに対応するテキストを強調する。一実施の形態において、前記
テキストは、図57に示すように、暗い背景を描くことによって強調される。
ここで、設計者は前記STACK BLK内の要素の分布に関するより詳しい情報を得
、前記積み重ね式棒グラフ表示は、前記STACK BLK内のモジュールの構成要素カ
ウントを示すよう変化する。前記積み重ね式棒グラフ表示は、前記STACK BLK内
のモジュールの構造および構成要素カウントを決定する。
一実施の形態において、前記積み重ね式棒グラフ5430は、前記データマネ
ージャ125に対して、(“component”,〈STACK BLK ID〉,False,Null)とい
う問
合せ6445を送る。一実施の形態において、前記データマネージャ125は、
前記構造問合せが前記GTechドメインで作用する構造分析ツール6400によっ
て応答可能なものである旨判定する。前記データマネージャ125は、前記ドメ
インマッパを使用して、前記〈STACK BLK ID〉を、前記ソースドメインから前記
GTechドメイン内の回路オブジェクトにマッピングする。しかる後、前記データ
マネージャ125は、前記〈STACK BLK〉の構造を求めるために、前記構造分析
ツール6400に対して、問合せ6448を送る。一実施の形態において、前記
問合せ6448は、(“component”,〈STACK BLK ID〉,False,Null)フィール
ドを有する。ここで、“composition”は、問合せ6448の種類であり、該問
合せが〈STACK BLK〉によって示されるSTACK BLKを構成する回路オブジェクトを
要求していることを示す。Falseは、その結果をキャッシュメモリに格納される
べきでないことを示す。Nullは、composition(構造)に関する問合せには集合
化関数が必要でないことを示す。そして、前記構造分析ツール6400は、前記
GTech回路をトラバースし、前記STACK BLKの構造を求め、その結果を有するメッ
セージ6451をデータマネージャ125に返送する。一実施の形態において、
前記メッセージ6451は、message(“composition result”,[〈Bool Mem〉
,〈Bool〉,〈Sel MEM〉,〈Bool STK DATA〉,...])である。オブジェクトから
大域識別子への変換後、前記データマネージャ125は、前記積み重ね式棒グラ
フ5430に対して、前記問合せに対する応答を送る。一実施の形態において、
前記返送メッセージ6454は、message(“composition result”,[〈Bool M
em ID〉,〈Bool ID〉,〈Sel MEM ID〉,〈Bool STK DATA ID〉,...])である。
この例において、[〈Bool Mem ID〉,〈Bool ID〉,〈Sel MEM ID〉,〈Bool STK
DATA ID〉,...])は、前記STACK BLKにおける要素の部分的リストである。明確
さのため、その他の大域識別子については省略する。
次に、前記積み重ね式棒グラフツール5430は、前記データマネージャ12
5に対して、前記構造リストにおける各回路オブジェクトの構成要素カウントを
要求する問合せ6457を発する。一実施の形態において、前記問合せ6457
は、(“component count”,[〈Bool Mem ID〉,〈Bool ID〉,〈Sel MEM ID〉,
〈Bool STK DATA ID〉,...],False,Source,Sum)フィールドを有する。
前記データマネージャ125は、上記と同様に、前記構成要素カウント分析ツ
ール5470を使用して、この新たなオブジェクトリストに関する構成要素カウ
ント問合せ6456に応答する。前記積み重ね式棒グラフツール5430は、そ
の返送結果を使用して、図56に示された積み重ね式棒グラフを作成する。この
時点において、設計者520は、前記STACK BLK表示における1つの最大の要素
棒5810を選択する。前記選択マネージャ5460は、上記と同様に、前記新
たな選択を前記HDLテキスト表示5440に送る。こうして、前記HDLテキ
スト表示5440は、可変アレイ指標に関するHDLソースコードを強調する。
【手続補正書】特許法第184条の8
【提出日】1996年6月16日
【補正内容】
従来の設計およびデバッギング処理の概要
図1は、ハードウエア記述言語(HDL)によって記されたディジタル回路を
設計し、分析し、デバッグするための従来の処理の概要を示すものである。この
処理は、設計者がHDLソースコードを書くことから始まる(ステップ100)
。ディジタル回路を記すために使用される典型的な言語はVHDLであり、この
VHDLについては、米国、ニュージャージー州、Piscatawayに在るInstitute
of Electrical and Electronic Engineersから入手可能なIEEE Standard VHDL L
anguage Reference Manualに記載されている。このVHDLは、Very high spee
d integrated circuit Hardware Description Languageを意味する。ディジタル
回路を記すために使用されるその他の言語はVerilogであり、このVerilogは、米
国、カルフォルニア州、Palo Altoに在るAutomata Publishing Companyによって
1990年に発行されたEliezer Sternheim,Rajvir SinghおよびYatin Trivediによ
るHardware Modeling with Verilog HDLに記載されている。また、Verilogは、O
pen Verilog Internationalによって1991年11月に発行されたVerilog Hardware
Description Language Reference Manual(LRM),version 1.0にも記載されてい
る。この明細書で使用される例はVHDLによるものであるが、その原理は他の
回路記述言語にも容易に適用される。
所望の機能に関するHDL記述を書いた後、設計者は、HDLシミュレータを
使用して、その記述に組込まれた機能をシミュレートする(ステップ101)。
このような機能シミュレータの一例は、米国、カルフォルニア州、Mountain Vie
wに在るSynopsys,Inc.から入手可能なVHDL System Simulatorである。この機能
シミュレータは、タイミング、面積または電力上の条件を考慮しない場合におい
て、その回路が入力に対して正しい値を出力するか否かを、設計者が判定するこ
とを可能にする。前記機能シミュレータは、機能のみのシミュレーションを比較
的高速で行うことができ、これにより、設計者は回路が所望の出力を発生するか
否かを判定できるようにする。
機能に問題がある場合、設計者は、シミュレーション出力を調べ、ステップ1
00のHDLコードを書く処理に戻ることによって、その機能の問題を調整する
ことができる(ステップ102)。機能シミュレーションは、総合技術回路また
はマップド回路を生成しないで、直接的に前記ソース記述を実行する。従って、
機能シミュレーション時に特定された問題点は、容易に、HDLソース内の原因
に関連付けられることができる。
前記HDLソースによって記述されたディジタル回路が正しい機能を提供する
ものであると設計者が信じる場合、該設計者は、前記合成処理に関する、最大ク
ロック周期、回路の総面積および最大電力などの条件を記述する(ステップ10
3)。この処理部分は、米国、カルフォルニア州、Mountain Viewに在るSynopsy
s,Inc.から入手可能なDesign Compiler Family Reference Manual,Version 3.1a
に記載されている。このような条件記述を使用するCADソフトウエアの例とし
ては、CadenceによるSynergy,Mentor GraphicsによるAutologic、および、Synop
sysによるDesign Compilerがある。
前記条件を設定した後、設計者は、前記HDLコードを書くステップ100で
生成されたHDL記述からマップド回路を合成する(ステップ104)。このス
テップは、前記HDLソース記述を、該HDLソースのステートメントに直接対
応する初期的総合技術に翻訳することを含む。この機能を実行するソフトウエア
の一例は、Synopsys,Inc.から入手可能なVHDL Compiler Reference Manual,Vers
ion 3.1aに記載されているが、ここではその出典のみを示す。上記変換後、前記
初期的総合技術回路は、ステップ103で設定された実行条件に適合したマップ
ド回路に最適化される。この最適化の前に、前記初期総合技術回路のどのエレメ
ントが前記HDLソース記述のどの要素に対応するのかを確認することは、簡単
な作業である。通常、前記最適化処理の間に実行される広範な処理により、最適
化後のこのような確認は、レジスタおよびモジュールインターフェース境界にお
けるものを除いて、略不可能になる。
図2は、ステップ104の合成処理に関わる中間データ構造を示す。該合成処
理は、HDLソース900から始まる。翻訳プログラム(トランスレータ)は、
HDLの構成を示すパーズ木901と呼ばれるデータ構造を作成し、その後、該
パーズ木を初期的総合技術回路902に変換する。カルフォルニア大学バークレ
イ校における、Russ B.Segal'sの修士論文“BDSYN:Logic Design Translator”
(Memo#UCB/ERL M87/33)は、このようなトランスレータを記載しているが、こ
こで
はその出典のみを示す。1990年12月21日に出願され、Synopsys,Inc.に譲渡され
た、Gregoryらによる“Method and Apparatus for Synthesizing HDL Descripti
ons with Conditional Assignments”というタイトルの米国特許出願No.07/632、
439も、このような変換プログラムを記載している。これを実行するツールの一
例は、Synopsys,Inc.から入手可能なHDL compilerのVersion 3.1aである。
最適化処理を行うオプティマイザは、初期的総合技術回路902からマップド
回路903を生成するために使用される。前記最適化処理は、1981年7月発行のI
BM Journal of Research and Development、第25巻、第4号、272〜280ページに
おいてJ.Darringer,W.Joyner,L.BermanおよびL.Trevillyanによって発表された
“Logic Synthesis Through Local Transformations”に説明されている。さら
に、前記最適化処理は、1984年9月発行のIBM Journal of Research and Develop
ment、第28巻、第5号、537〜545ページにおいてJ.Darringer,D.Brand,W.Joyner
およびL.Trevillyanによつて発表された“LSS:A System for Production Logic
Synthesis”にも説明されている。また、前記最適化処理は、1987年11月発行のI
EEE Transactions on Computer Aided Design、第6巻、第6号、1062〜1081ペー
ジにおいてR.Brayton,R.Rudell,A.Sangiovanni-VincentelliおよびA.Wangによっ
て発表された“MIS:A Multiple-Level Logic Optimization System”にも説明さ
れている。また、前記最適化処理は、1989年にカルフォルニア大学バークレイ校
においてR.Rudellによって発表された博士論文“Logic Synthesis for VLSI Des
ign”にも説明されている。さらに、前記最適化処理は、Synopsys,Inc.から入手
可能なDesign Compiler Family Reference Manual,Version 3.1aに記載されてい
る。この機能を実行するソフトウエアの一例は、Synopsys,Inc.から入手可能なD
esign Compilerである。最適化処理を実行するソフトウエアのその他の例として
は、Cadence,Inc.から入手可能なsynergy、および、Mentor Graphicsから入手可
能なAutoLogicがある。
最適化のための1つの方法は、1つまたは複数の要素をグループ化し、それら
の要素を、それより優れた特性を有する機能的に同等の要素の集合と置換するこ
とである。こうして、オリジナルの回路と機能的に同等の中間回路が形成される
。その後、この中間回路を構成する要素のうちのいくつかまたはすべてを、次の
置
換のためにグループ化することができる。この処理は、総合技術回路またはマッ
プ論理回路について実行可能である。この処理は、オプティマイザが図1のステ
ップ103で課された条件を満足させるまで、すなわち、それ以上の改善が不可
能になるまで繰り返される。
前記総合技術回路の構成要素は、前記最適化処理を行っても保存され続けなけ
ればならない構成要素グループ、および、機能的同等物によって置換可能な構成
要素グループである、2つのグループに分けられる。例えば、論理オプティマイ
ザは、機能が維持される限り、ブール論理のブロックを他のブロックと置換する
ことができる。一般的に、置換可能な構成要素は除去可能でもある。前記最適化
処理を行っても保存され続ける構成要素グループとしては、主要入力、主要出力
およびレジスタがある。
マップド回路形成後、設計者は、図1に示すように、通常の分析ツールを使用
して前記マップド回路を分析することができる(ステップ105)。例えば、設
計者は、前記マップド回路が使用する面積、または、該マップド回路における最
後の項で、各リンクについて詳述する。
図4は、HDLテキストとマップド回路との関係を示すものである。HDLテ
キスト3610は、ディジタル回路のソース表現である。パーズ木3620は、
従来のコンピュータのパージング法に従ってHDLテキストを解析すること(3
654)によって作成される。さらに、前記パーズ木の各ノードには、該ノード
を識別するために使用される、パーズ木ノード番号と呼ばれる固有の数値idが
割当てられる。前記HDLテキストおよびパーズ木の両方は、ソースドメインに
属する。前記ディジタル回路の総合論理すなわちGTechドメイン(3630)表
現は、パーズ木を翻訳すること(3664)によって作成される。前記ディジタ
ル回路のマップドドメイン(3640)表現は、前記総合論理を最適化すること
(3674)によって作成される。なお、前記HDLテキスト3610における
ディジタル回路設計、パーズ木3620、GTechドメイン3630およびマップ
ドドメイン3640の各ソフトウエア表現は、機能的に同等である。HDLテキ
ストの解析3654、パーズ木の翻訳3664および最適化3674は、前記デ
ィジタル回路の表現法を変えるが、その基礎的な機能を変えない。
前記ディジタル回路の様々な表現の各々が様々なドメインで作成されると、1
つの表現における構成要素を、該ディジタル回路の前の、または、次の表現にお
ける構成要素に関連付けることができる。任意の中間表現を介して構成要素を追
跡することによって、任意の2つのドメインにおける構成要素間の関係を得るこ
とができる。
リンク3652は、前記パーズ木3620を探索して関連テキストを示すノー
ドを見つけることによって、HDLテキスト3610がパーズ木3620に関連
付けられる、ことを示している。テキストの特定部分をパーズ木の対応する部分
と関連付ける1つの技術は、1994年6月3日に出願されたGregoryによる“Method
and Apparatus for Context Sensitive Displays”というタイトルの米国特許出
願No.08/253,453に記載されている。この発明の他の実施の形態は、各パーズノ
ードの始めと終りについてのファイルオフセットを格納する。この発明の他の実
施の形態は、パーズノードにおけるソースHDLからのラインおよびコラム番号
を格納する。
リンク3662は、各パーズノードからその表現を使用して作成されたセル識
別番号のリストを格納することによって、前記パーズ木3620をGTechドメイ
ン3630に関連付けられる、ことを示している。
パーズノードに関連した文字の認識を効率的に可能にしなければならない。テキ
ストの特定部分をパーズノードの対応する部分に関連付ける1つの技術は、1994
年6月3日に出願されたGregoryによる“Method and Apparatus for Context Sens
itive Displays”というタイトルの米国特許出願No.08/253,453に記載されてい
る。
ステップ4120において、様々なプローブ命令に対応するパーズノードがマ
ークされる。この処理の詳細については後述する。ステートメントプローブ、ブ
ロックプローブおよびマルチプローブである、3種類のプローブ命令が存在する
。マルチプローブは、ゼロまたは1つ以上のステートメントプローブまたはブロ
ックプローブに変換されることができ、そのように扱われる。この変換について
は後述するが、ここでは、マルチプローブが予め変換されていると仮定する。
ステートメントプローブは、単一のテキスト列である。該単一のテキスト列の
後に続くのは、マークすべきパーズノードである。ブロックプローブは、開始ブ
ロックステートメントおよび終了ブロックステートメントである、2つのテキス
ト列で構成される。一般的に、前記開始ブロックステートメントと終了ブロック
ステートメントとの“間”のパーズノードは、マークすべきパーズノードである
。
ステップ4130において、プローブされてないGTech回路が、前に紹介した
引例に記載されたもののように、従来の技術を使用してステップ4120で構築
されたマーク済みパーズ木から構成される。また、前記GTech回路翻訳処理は、
各パースノードに関連した要素およびネットのリストを作成する。
ステップ4140、4150および4160において、最適化不変GTech回路
構造が、各マーク済みパーズノード毎に付加される。最適化不変GTech回路構造
を付加する1つの方法は、主要入力および主要出力を作り出すことである。以下
では、これがどのように行われるのかを詳述する。最適化不変GTech回路構造を
作り出すその他の方法は後述する。なお、ディジタル回路の機能は、次に高い階
層レベルで前記主要入力および主要出力を接続することによって維持される。故
に、ステップ4135において、前記ディジタル回路がより高い階層リベルを有
さず、マーク済みのパーズノードが存在する場合、付加的な階層レベルが追加さ
れる。
ステップ4140において、マーク済みのパーズノードから作り出されたすべ
ての要素がマークされる。こうして、いくつかの要素がマークされる。
ステップ4150において、前記マークされた要素に関連するネットがマーク
される。これらのマークされたネットは、
開始ブロックステートメントおよび終了ブロックステートメントによって記述さ
れるHDLコードシーケンスに入ったり出たりするすべての信号をプローブする
。翻訳後、プローブされたHDLは図37のGTech回路となる。トランスレータ
は、上記ステートメントプローブと略同様に、一時的な入力2010、2011
および一時的出力2000、2001を形成する。
オプティマイザは、図37のGTech回路を図38のマップド回路に変換する。
これにより、前記分析ツールは、前記マップド回路の両要素のタイミングおよび
面積特性を算出する。こうして、専用分析ツールは、図39に示すように、例え
ば、タイミングおよび面積の分析を表示できる。この例において、デコード用マ
ップド回路は、比較用マップド回路と略同じサイズおよび遅延を有する。
5.0 回路分析ツールに対するHDLソースのリンク
前の項では、HDLソースがどのようにGTech回路またはマップド回路に関連
付けられるのかについて説明した。HDLソース対GTech回路またはマップド回
路の関係が確立されると、GTech回路またはマップド回路の分析ツールは、この
リンクを利用して、設計者が前記ソースHDLを見ながら前記GTech回路または
マップド回路を分析できるようにする。この項では、前記HDLソースにリンク
された各種のGTech回路またはマップド回路分析用ツールを使用して、HDLソ
ースレベル分析システムがどのように構築されるのかについて説明する。
多くの種類のGTech回路およびマップド回路分析用ソフトウエアツールは、H
DLレベル分析を行うことができる。故に、当該システムは、任意の数のGTech
回路およびマップド回路分析用ツールをサポートするよう設計されている。この
データマネージャは、ユーザレベル分析ツールから問合せを受け取り、どの分析
ツールが前記問合せに応答することができるのかを判定し、該応答を適切なユー
ザレベル分析ツールに伝える。なお、前記システムは、前記GTech回路またはマ
ップド回路を使用することによって、現在の問合せに関連する前記GTech回路ま
たはマップド回路の要素に対応するHDLテキストの部分を表示する。ソースレ
ベル分析時において、前記HDLソーステキスト、パーズ木の表現、GTech回路
およびマップド回路は、すべて、前記コンピュータのメモリに同時格納され続け
る。
HDLソースレベルディジタル回路分析システムの一実施の形態は、Synopsys
,Inc.から入手可能なHDL Advisor User Guide,Version 3.3aに開示されている。
前記HDL Advisorは中央データマネージャを有する。該中央データマネージャ
は、表示ツールおよび分析ツールである2種類のツールをサポートする。各表示
ツールは、一定のフォーマットでデータを表示することができる。
合成される元となったソースHDLを見ることができる。例えば、設計者は、積
み重ね式棒グラフを使用することによって、高いゲートカウントを有するマップ
ド回路部分を見つけることができる。このマップド回路部分は、ソースHDLと
関連付けることができる。
図43〜図50は、ディジタル回路分析データを表示するための表示技術を示
す図である。これら図43〜図50は、AMD2910A設計を表示する表示ツールを示
している。前記ソースおよびそれから形成されるマップド回路は、1991年に発行
されたSteve CarlsonによるIntroduction to HDL-Based Design Using VHLに開
示されている。この本は、700 East Middlefield Road,Mountain View,CA94043-
4033のSynopsys,Inc.から入手可能である。前記表示ツールは、さらに、米国、
カルフォルニア州、Mountain Viewに在るSynopsys,Inc.から入手可能なHDL Advi
sor User Guide,Version 4.0a Beta Draftに開示されている。
前記AMD2910A設計のHDLソースは、多数のファイルに分けられている。従来
のパージング技術に従うと、各前記ファイルごとに、個別のパーズ木が作られる
。上記方法によると、各パーズ木は、HDLソースおよび該ソースから作られた
GTech回路にリンクされる。前記AMD2910A設計のHDLソースは、設計階層レベ
ルを示す。前記米国、カルフォルニア州、Mountain Viewに在るSynopsys,Inc.製
のDesign Compiler使用されるもののような従来の技術に従うと、この階層レベ
ルは相互にリンクされる。
5.4.1 積み重ね式棒グラフ表示
図43は、HDLソースの様々な要素の相対的は位置に関する積み重ね式棒グ
ラフ表示情報を示す図である。多くの場合、HDLで書かれた設計は階層的に記
述され、高いレベルのモジュールがより低いレベルのモジュールを含んでいる。
前記階層の特定のレベルにおいて、設計者は、そのレベルにおいて見られるモジ
ュールの特性を知りたいと思うことがある。図43の積み重ね式棒グラフは、そ
の設計の様々異なる要素に関連した相対的面積を示す図である。前記AMD2910A設
計の最高レベルにおいて、CNTL BLK,MUX OUT BLK,REG BLK,UPC BLKおよびSTACK
BLKである5つの要素に関連した相対的面積を示している。これらのブロックの
名前は、ウィンドウ2600の表示オブジェクトリスト領域2610に示されて
い
る。測定された総面積は、前記ウィンドウの底部に表示されている。前記マップ
ド回路の総面積は、1964.0ゲートとして示されている。この例において、特性は
面積である。しかし、電力および時間などの他の特性を同様に表示することがで
きる。
図45は、前記99.00ゲートがどのように割当てられるのかを調べるためにMUX
BLKを設計者が選択した場合に表示される情報を示す図である。なお、ユーザが
選択可能なボタンのうちの1つを“押し”、または、図45に示すような棒グラ
フの構成要素のうちの1つを選択すると、前記選択マネージャは現在の回路選択
によって更新される。こうして、プロファイラによって、設計者は、前記設計に
おける一定の特性に合致する部分を迅速に選択できるとともに、前記設計の全体
的な統計を見ることができる。
5.4.2 ヒストグラム表示
図46のヒストグラム表示は、設計者に対して、前記設計における問題点の範
囲に関する情報を提供する。例えば、マップド回路の性能に関する1つの特徴は
、1つのフリップフロップの出力から他のフリップフロップの入力に至る経路に
沿った最長の遅延である。設計者がクロック波形を指定すると、タイミングベリ
ファイヤは、前記マップド回路全体にわたる到達時間および必要な時間を決定す
る。前記マップド回路における任意のポイントにおいて、前記到達時間は、前記
クロックによって影響されるすべてのレジスタから前記マップド回路における前
記ポイントまでの最長経路を測定することによって、クロックエッジに関して決
定されることができる。同様に、前記必要な時間は、前記マップド回路における
前記ポイントから前記クロックによって影響されるレジスタからまでの最長経路
を測定することによって、クロックエッジに関して決定されることができる。す
べてのクロックとすべてのクロック波形との間の関係が指定されると、前記タイ
ミングベリファイヤは、関連するクロックエッジの各組合わせごとに、前記必要
な時間から前記到達時間を減じることによって、前記マップド回路における各ポ
イントごとの最悪のスラックを求めることができる。最小、すなわち、最も負の
値が大きい結果は、前記マップド回路におけるそのポイントの最悪のスラックと
考えられることができる。Synopsys,Inc.から入手可能な前記Design Compiler R
eference Manual,Version 3.1aは、タイミング分析について記載している。ある
ポイントが負のスラック時間を有する場合、タイミング条件は満たされていない
ことになる。ほんのわずかのノードのみが負のスラック時間を有する場合、また
は、前記負のスラック時間がゼロに近い場合、設計者は、前記設計の一部を調整
する
ことによって調整可能な小さな問題点を有することになる。しかし、多くのノー
ドが負のスラック時間を有する場合、または、前記負のスラック時間が大きい場
合、設計者はかなりの問題点に直面することになる。図46のヒストグラムツー
ルは、設計者が直面する問題点の範囲に関する情報を提供する。
前記ヒストグラム表示は、従来のヒストグラム作成技術を使用する。このヒス
トグラムツールは、GTech回路またはマップド回路の数値特性の分布を表示し、
ユーザがその特性を有する回路オブジェクトを示す表示オブジェクトのリストを
見ることを可能にする。図46の例は、AMD2910Aのタイミング分析を示す。前記
ヒストグラムツールは、前記データマネージャに対して前記設計における回路オ
ブジェクトの所望の属性(この場合、スラック時間)を問う問合せを形成する。
にする。前記経路の開始および終了は、ドメイン間マッピング機能を使用して、
前記GTechドメインにマッピングされる。そして、GTechタイミングベリファイヤ
は、前記GTech回路における開始点および終了点との間の最長経路を算出する。
前記GTechドメインとソースドメインとの間のマッピングを使用することによっ
て、前記経路がHDLイキストに表示される。この処理により、設計者は、最初
のHDLにおけるタイミング分析を実行し、前記ソースレベルにおける前記設計
のタイミング特性を改善することができる。
なお、前記HDL Advisorは、伝統的なマルチシートスキーマチック構成図を作
成しない。前記経路ブラウザウィンドウは、HDLから発生するディジタル回路
を通る経路の図形表示を行う。前記経路は、GTech論理構成要素またはマップド
論理構成要素からなっていてよい。
5.5 分析ツール
上述のように、前記HDL Advisorのアーキテクチャによって、問合せに応答す
るために任意数のディジタル回路分析ツールが登録可能になる。例えば、非排他
的な分析ツールのリストは、
・タイミングベリファイヤ
・面積分析ツール
・電力分析ツール
・経路追跡分析ツール
・レイアウト分析ツール
・GTech論理レベル分析ツール
・GTech構成要素カウント分析ツール
を含む。
5.6 詳細例
この項では、上述の項で説明された3つの部分からなるアーキテクチャを使用
する例を説明する。この例は、AMD2910A設計を使用する。そのソースおよびそれ
から形成されるマップド回路は、1991年に発行されたSteve CarlsonによるIntro
duction to HDL-Based Design Using VHLに開示されている。この本は、700 Eas
t Middlefield Road,Mountain View,CA94043-4033のSynopsys,Inc.から入手可能
である。前記AMD2910A設計は、米国カルフォルニア州、Mountain Viewに在るSyn
opsys,Inc.から入手可能なHDL Advisor User Guideに開示されている。
請求の範囲
1.回路設計言語で書かれたディジタルシステムのテキスト記述を分析するため
のコンピュータ援用回路分析ツールであって、
前記回路設計言語に従って、前記システムのメモリに格納されたパーズ木(3
620)を発生するパーズ木ジェネレータ(3654)であって、前記パーズ木
が、前記テキスト記述の一部が関連付けられたパーズ木ノードを含むものと、
前記メモリに格納されたディジタル回路表現(3630)を発生するディジタ
ルGTech回路表現ジェネレータ(3664)であって、前記ディジタルGTech回路
表現が、前記パーズ木から合成されていて、GTech回路エレメントを含み、該GTe
ch回路エレメントが前記パーズ木ノードを示すものと
を具備し、前記パーズ木ノードが前記GTech回路エレメントを示すものでもあ
ることを特徴とするコンピュータ援用回路分析ツール。
2.前記回路設計言語がVerilogである請求の範囲第14項に記載のコン
ピュータ援用回路分析ツール。
3.前記回路設計言語がVHDLである請求の範囲第14項に記載のコンピュー
タ援用回路分析ツール。
4.前記メモリに格納された、前記第2のエレメントの数値的な物理的特性と、
前記パーズ木ノードにリンクされていて、前記数値的な物理的特性によって決
定される視覚的表示特性を有する視覚オブジェクトを表示させるコンピュータウ
ィンドウジェネレータ(5240)と
をさらに具備した請求の範囲第14項、第2項または第3項に記載のコンピュ
ータ援用回路分析ツール。
5.前記第2の回路エレメントが1つまたは複数の回路要素を含み、各前記回路
要素が面積を有し、前記数値的な物理的特性が前記回路セルの面積の合計である
請求の範囲第4項に記載のコンピュータ援用回路分析ツール。
6.前記第2の回路要素が回路要素ピンおよび主要入力を含み、前記数値的な物
理的特性が前記主要入力から前記回路要素ピンまでの遅延時間である請求の範囲
第4項に記載のコンピュータ援用回路分析ツール。
7.前記視覚オブジェクトが高さを有する矩形であり、前記視覚的表示特性が前
記高さである請求の範囲第4項に記載のコンピュータ援用回路分析ツール。
8.前記視覚オブジェクトがテキスト文字であり、前記視覚的表示特性が前記テ
キスト文字の表示フォントである請求の範囲第4項に記載のコンピュータ援用回
路分析ツール。
9.前記視覚オブジェクトがテキスト文字であり、前記視覚的表示特性が前記テ
キスト文字の表示色である請求の範囲第4項に記載のコンピュータ援用回路分析
ツール。
10.前記パーズ木ノードにリンクされた第1の表示オブジェクトを第1の表示
ウィンドウに表示させる第1の表示ウィンドウジェネレータと、
前記第2の回路エレメントにリンクされた第2の表示オブジェクトを第2の表
示ウィンドウに表示させる第2の表示ウィンドウジェネレータと
とをさらに具備した請求の範囲第14項、第2項または第3項に記載のコンピ
ュータ援用回路分析ツール。
11.前記第1の表示オブジェクトが、前記テキスト記述からの1つまたは複数
の文字のシーケンスを含み、
前記文字のシーケンスが、前記回路記述言語に従って前記パーズ木ノードに関
連付けられた文字のサブシーケンスを含む
請求の範囲第10項に記載のコンピュータ援用回路分析ツール。
12.前記文字のサブシーケンスが、該サブシーケンスに含まれていない前記文
字のシーケンスとは異なる視覚的表示特性で表示されるものである請求の範囲第
11項に記載のコンピュータ援用回路分析ツール。
13.前記第1の表示オブジェクトが、前記回路記述言語に従って前記パーズ木
ノードに関連付けられた前記テキスト記述からの1つまたは複数の文字のシーケ
ンスを含む請求の範囲第10項に記載のコンピュータ援用回路分析ツール。
14.回路設計言語で書かれたディジタルシステムのテキスト記述を分析するた
めのコンピュータ援用回路分析ツールであって、
前記回路設計言語(6003)に従って、前記システムのメモリに格納された
パーズ木(6004)を発生するパーズ木ジェネレータ(6018)であって、
前記パーズ木が、前記テキスト記述の一部が関連付けられたパーズ木ノード(6
014)を含むものと、
前記メモリに格納されたディジタル回路表現(5900)を発生するディジタ
ル回路表現ジェネレータ(6019)であって、前記ディジタル回路表現が、前
記パーズ木から合成されていて第1の回路エレメントを含み、前記第1の回路エ
レメントと前記パーズ木ノードとの間に追跡可能な経路が存在するよう、前記第
1の回路エレメントが前記パーズ木ノードを示すものと、
前記ディジタル回路表現を最適化し、前記メモリに格納されるマップド回路表
現を発生するオプティマイザ(3674)であって、前記マップド回路表現が第
2の回路エレメントを含み、前記第2の回路エレメントと前記パーズ木ノードと
の間に追跡可能な経路が存在するよう、前記第2の回路エレメントが1つの前記
パーズ木ノードまたは前記第1の回路エレメントを示すものと
を具備したコンピュータ援用回路分析ツール。
15.前記第2の回路エレメントと前記第1の回路エレメントとの間に追跡可能
な経路が存在する請求の範囲第14項に記載のコンピュータ援用回路分析ツール
。
16.前記パーズ木ノードと前記第2の回路エレメントとの間に追跡可能な経路
(3662,3672)が存在するよう、前記パーズ木ノードが、前記第1のパ
ーズ木エレメントおよび第2のパーズ木エレメントの一方を示す請求の範囲第1
4項に記載のコンピュータ援用回路分析ツール。
17.回路設計言語で書かれたディジタルシステムのテキスト記述を分析するた
めのコンピュータ援用回路分析ツールであって、
前記回路設計言語(6003)に従って、前記システムのメモリに格納された
パーズ木(6004)を発生するパーズ木ジェネレータ(6018)であって、
前記パーズ木が、前記テキスト記述の一部が関連付けられたパーズ木ノードを含
むものと、
前記メモリに格納されたディジタル回路表現(5900)を発生するディジタ
ル回路表現ジェネレータ(6019)であって、前記ディジタル回路表現が、前
記パーズ木から合成されていて回路エレメントを含み、前記回路エレメントと前
記パーズ木ノードとの間に追跡可能な経路(3666;3666,3676)が
存在するよう、前記回路エレメントが前記パーズ木ノードを示すものと、
表示画面上に積み重ね式棒グラフを表示させる積み重ね式棒グラフウィンドウ
表示ジェネレータ(6104)であって、前記積み重ね式棒グラフが、前記メモ
リに格納された前記回路エレメントの数値的な物理的特性を示すものと
を具備したコンピュータ援用回路分析ツール。
18.前記積み重ね式棒グラフによって示される数値的な物理的特性が、電力で
ある請求の範囲第17項に記載のコンピュータ援用回路分析ツール。
19.前記積み重ね式棒グラフによって示される数値的な物理的特性が、面積で
ある請求の範囲第17項に記載のコンピュータ援用回路分析ツール。
20.前記積み重ね式棒グラフによって示される数値的な物理的特性が、時間的
遅延である請求の範囲第17項に記載のコンピュータ援用回路分析ツール。
21.前記積み重ね式棒グラフに追跡可能な前記テキスト記述の一部を、異なる
物理的特性で表示させるテキストウィンドウ表示ジェネレータ(6197)をさ
らに具備した請求の範囲第17項に記載のコンピュータ援用回路分析ツール。
22.前記積み重ね式棒グラフに追跡可能な前記テキスト記述の全部が、所定の
物理的特性で表示される請求の範囲第21項に記載のコンピュータ援用回路分析
ツール。
23.ユーザが前記積み重ね式棒グラフの一部を選択したことを示す情報を受け
取るユーザ入力レシーバをさらに具備し、
前記テキストウィンドウ表示ジェネレータが、前記ユーザの選択に従って、前
記積み重ね式棒グラフの選択された部分に追跡可能な前記テキスト記述の一部を
、前記所定の物理的特性で表示させる請求の範囲第21項に記載のコンピュータ
援用回路分析ツール。
24.ユーザが前記積み重ね式棒グラフの一部を選択したことを示す情報を受け
取るユーザ入力レシーバをさらに具備し、
前記積み重ね式棒グラフウィンドウ表示ジェネレータが、前記ユーザの選択に
従って、表示画面上に第2の積み重ね式棒グラフ(2620)を表示させ、前記
第2の積み重ね式棒グラフが、前記回路エレメントの低い階層の数値的な物理的
特性を示す請求の範囲第21項に記載のコンピュータ援用回路分析ツール。
25.ユーザが表示された前記テキスト記述の一部を選択したことを示す情報を
受け取るユーザ入力レシーバをさらに具備し、
前記積み重ね式棒グラフウィンドウ表示ジェネレータが、前記ユーザの選択に
従って、前記テキスト記述の選択された部分に追跡可能な積み重ね式棒グラフを
表示させる請求の範囲第17項に記載のコンピュータ援用回路分析ツール。
26.回路設計言語で書かれたディジタルシステムのテキスト記述を分析するた
めのコンピュータ援用回路分析ツールであって、
前記回路設計言語(6003)に従って、前記システムのメモリに格納された
パーズ木(6004)を発生するパーズ木ジェネレータ(6018)であって、
前記パーズ木が、前記テキスト記述の一部が関連付けられたパーズ木ノードを含
むものと、
前記メモリに格納されたディジタル回路表現を発生するディジタル回路表現ジ
ェネレータ(6019)であって、前記ディジタル回路表現が、前記パーズ木か
ら合成されていて回路エレメントを含み、前記回路エレメントと前記パーズ木ノ
ードとの間に追跡可能な経路が存在するよう、前記回路エレメントが前記パーズ
木ノードを示すものと、
経路ブラウザの要約を表示画面上に表示させる経路ブラウザウィンドウ表示ジ
ェネレータ(図51)であって、前記経路ブラウザの要約前記メモリに格納され
た前記回路エレメントについての表現を示すものと
を具備したコンピュータ援用回路分析ツール。
27.前記回路表現がGTech回路表現である請求の範囲第26項に記載のコンピ
ュータ援用回路分析ツール。
28.前記回路表現がゲートレベル回路表現である請求の範囲第26項に記載の
コンピュータ援用回路分析ツール。
29.前記回路表現に追跡可能な前記テキスト記述の一部を、所定の物理的特性
で表示させるテキストウィンドウ表示ジェネレータをさらに具備した請求の範囲
第26項に記載のコンピュータ援用回路分析ツール。
30.前記回路表現に追跡可能な前記テキスト記述の全部が、前記所定の物理的
特性で表示される請求の範囲第29項に記載のコンピュータ援用回路分析ツール
。
31.ユーザが前記経路ブラウザの要約の一部を選択したことを示す情報を受け
取るユーザ入力レシーバをさらに具備し、
前記テキストウィンドウ表示ジェネレータが、前記ユーザの選択に従って、前
記経路ブラウザの要約の選択された部分に追跡可能な前記テキスト記述の一部を
、所定の物理的特性で表示させる請求の範囲第29項に記載のコンピュータ援用
回路分析ツール。
32.ユーザが前記経路ブラウザの要約の一部を選択したことを示す情報を受け
取るユーザ入力レシーバをさらに具備し、
前記経路ブラウザウィンドウ表示ジェネレータが、前記ユーザの選択に従って
、前記経路ブラウザの要約の異なる階層レベルを表示させる請求の範囲第26項
に記載のコンピュータ援用回路分析ツール。
33.ユーザが表示された前記テキスト記述の一部を選択したことを示す情報を
受け取るユーザ入力レシーバをさらに具備し、
前記経路ブラウザウィンドウ表示ジェネレータが、前記ユーザの選択に従って
、前記テキスト記述の選択された部分に追跡可能な経路ブラウザの要約を表示さ
せる請求の範囲第26項に記載のコンピュータ援用回路分析ツール。
34.ユーザが表示された前記テキスト記述の一部を選択したことを示す情報を
受け取るユーザ入力レシーバと、
開始/終了経路に追跡可能な前記テキスト記述の一部を、所定の物理的特性で
表示させるテキストウィンドウ表示ジェネレータと
をさらに具備した請求の範囲第26項に記載のコンピュータ援用回路分析ツー
ル。
35.回路設計言語で書かれたディジタルシステムのテキスト記述を分析するた
めのコンピュータ援用回路分析ツールであって、
前記回路設計言語(6003)に従って、前記システムのメモリに格納された
パーズ木(6004)を発生するパーズ木ジェネレータ(6018)であって、
前記パーズ木が、前記テキスト記述の一部が関連付けられたパーズ木ノードを含
むものと、
前記メモリに格納されたディジタル回路表現を発生するディジタル回路表現ジ
ェネレータ(6019)であって、前記ディジタル回路表現が、前記パーズ木か
ら合成されていて回路エレメントを含み、前記回路エレメントと前記パーズ木ノ
ードとの間に追跡可能な経路が存在するよう、前記回路エレメントが前記パーズ
木ノードを示すものと、
表示画面上に仮想スーマチック構成図を表示させる仮想スーマチック構成図ウ
ィンドウジェネレータ(図48)であって、前記仮想スーマチック構成図が、前
記回路表現のユーザにより選択された部分のファンインおよびファンアウトを示
すものと
とを具備したコンピュータ援用回路分析ツール。
36.前記回路表現の選択された部分のファンインおよびファンアウトの1つに
追跡可能な前記テキスト記述の一部を、所定の物理的特性で表示させるテキスト
ウィンドウ表示ジェネレータをさらに具備した請求の範囲第35項に記載のコン
ピュータ援用回路分析ツール。
37.前記回路表現に追跡可能な前記テキスト記述の全部が、前記所定の物理的
特性で表示される請求の範囲第36項に記載のコンピュータ援用回路分析ツール
。
38.ユーザが表示されたファンインまたはファンアウトを選択したことを示す
情報を受け取るユーザ入力レシーバをさらに具備し、
前記テキストウィンドウ表示ジェネレータが、前記ユーザの選択に従って、前
記ファンインまたはファンアウトの選択された部分に追跡可能な前記テキスト記
述の一部を、所定の物理的特性で表示させる請求の範囲第36項に記載のコンピ
ュータ援用回路分析ツール。
39.ユーザが表示された前記テキスト記述の一部を選択したことを示す情報を
受け取るユーザ入力レシーバをさらに具備し、
前記仮想スーマチック構成図ウィンドウジェネレータが、前記ユーザの選択に
従って、前記テキスト記述の選択された部分に追跡可能な前記回路表現の一部を
、そのファンインおよびファンアウトと共に表示させる請求の範囲第36項に記
載のコンピュータ援用回路分析ツール。
40.回路設計言語で書かれたディジタルシステムのテキスト記述を分析するた
めのコンピュータ援用回路分析ツールであって、
a)前記テキスト記述に従って前記システムのメモリに格納されたパーズ木(
6111〜6115)であって、該パーズ木が、前記テキスト記述の一部が関連
付けられたパーズ木ノードを含むものと、b)前記パーズ木から合成されていて
回路エレメント(6140)を含む、前記メモリに格納された少なくとも1つの
ディジタル回路表現(6130〜6186)であって、前記回路エレメントが前
記パーズ木ノードを示し、さらに、1つまたは複数の異なる回路ドメインに格納
されているものと、を記憶したメモリと、
各々が1つまたは複数の前記回路ドメインに関する分析を実行可能な複数の分
析ツール(5470,5480)と、
各々が1つまたは複数の前記回路ドメインからのデータを表示可能な複数の表
示ツール(5430,5440)と、
前記複数の回路ドメイン間におけるマッピング可能なドメインマッパ(545
0)と、
前記複数の表示ツールのうちの1つを用いて、ユーザが前記回路表現の表示さ
れたエレメントを選択した時を前記複数の表示ツールに知らせる選択マネージャ
(5460)と
を具備したコンピュータ援用回路分析ツール。
─────────────────────────────────────────────────────
フロントページの続き
(31)優先権主張番号 08/417,147
(32)優先日 1995年4月3日
(33)優先権主張国 米国(US)
(81)指定国 EP(AT,BE,CH,DE,
DK,ES,FR,GB,GR,IE,IT,LU,M
C,NL,PT,SE),OA(BF,BJ,CF,CG
,CI,CM,GA,GN,ML,MR,NE,SN,
TD,TG),AP(KE,MW,SD,SZ,UG),
AM,AU,BB,BG,BR,BY,CA,CN,C
Z,EE,FI,GE,HU,JP,KG,KP,KR
,KZ,LK,LR,LT,LV,MD,MG,MN,
MX,NO,NZ,PL,RO,RU,SG,SI,S
K,TJ,TT,UA,UZ,VN
(72)発明者 リン, ジング・シー
アメリカ合衆国,カリフォルニア94087,
サニーベール,ホボリンク・サークル・
1353
(72)発明者 ラグベンドラ, スリニバス
アメリカ合衆国,カリフォルニア94086,
サニーベール,コスタメサ・テラス・425,
アパートメント・イー
(72)発明者 エストラダ, ポール
アメリカ合衆国,カリフォルニア94043,
マウンテンビュー,ライト・アベニュ・
928,ナンバー106
(72)発明者 ギルクズィック・ エミル
アメリカ合衆国,カリフォルニア94022−
3732,ロスアルトス,サウス・ゴードン・
ウェイ・177
(72)発明者 シーライト, アンドリュ
アメリカ合衆国,カリフォルニア95014,
クパチーノ,パークウッド・ドライブ・
10235,ナンバー8