JP5063511B2 - クロック駆動の論理回路においてタイミング・クロージャを達成するために制御ロジックのマルチソース・ネットワークを効率的に利用する方法およびシステム - Google Patents

クロック駆動の論理回路においてタイミング・クロージャを達成するために制御ロジックのマルチソース・ネットワークを効率的に利用する方法およびシステム Download PDF

Info

Publication number
JP5063511B2
JP5063511B2 JP2008172903A JP2008172903A JP5063511B2 JP 5063511 B2 JP5063511 B2 JP 5063511B2 JP 2008172903 A JP2008172903 A JP 2008172903A JP 2008172903 A JP2008172903 A JP 2008172903A JP 5063511 B2 JP5063511 B2 JP 5063511B2
Authority
JP
Japan
Prior art keywords
clock
control signal
clock control
local clock
local
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008172903A
Other languages
English (en)
Other versions
JP2009015851A (ja
Inventor
ジョン・マック・アイザックソン
トーマス・エドワード・ロッサー
クリステン・マリー・タッカー
ローレンス・デイビッド・カーリー
アージェン・メッツ
トラビス・ウェリントン・プアーツ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009015851A publication Critical patent/JP2009015851A/ja
Application granted granted Critical
Publication of JP5063511B2 publication Critical patent/JP5063511B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、一般的には、データ処理システムおよびデータ処理方法の改良に関し、特に、本発明は、クロック駆動の論理回路においてタイミング・クロージャ(timing closure)を達成するために制御ロジックのマルチソース・ネットワークを効率的に利用することに関するものである。
半導体集積回路は、コンピュータおよび他のデジタル電子製品における電子回路の大部分を構成する。例えば、現在の集積回路は数百万個のトランジスタを含み得るし、中央処理装置(CPU)、演算論理ユニット(ALU)、ランダム・アクセス・メモリ(RAM)、プログラマブル・ロジック・アレイ(PLA)、特定用途向け集積回路(ASIC)、或いはデジタル信号プロセサ(DSP)として構成され得る。これらの集積回路の複雑性および動作速度のいずれも、より小型の且つより高速の装置をもたらす集積回路製造技術の改良により急速に増大した。
複雑なデジタル集積回路では、クロック制御信号は、通常、前述のCPU、ALU、RAM、PLA、ASIC、およびDSP集積回路のようなクロック駆動の多重状態論理回路を操作するために必要とされる。クロック制御信号は、集積回路の至るところで、そこに含まれたクロック駆動の論理回路に分配される。集積回路の機能によっては、多くのクロック制御信号が望ましいことがあり、或いは必要とされることがある。
複雑な集積回路の設計は、その設計をシリコンに委ねる前に、集積回路設計者がその設計を容易に行いそしてテストすることを可能にするコンピュータ・シミュレーションによって達成される。コンピュータにより集積回路のレイアウトを設計する場合、その要件の1つは、前述のクロック制御信号を分配することである。図1は、集積回路におけるクロック制御信号の分配を示す。図1に示されるように、集中クロック制御回路102が、ステージング・ラッチ106を介してクロック駆動の論理回路(CLC)108にクロック制御信号104の経路を指定する。集中クロック制御回路102からのクロック制御信号104は、ステージング・ラッチ106にそれを供給するメイン・トランクによって経路を指定され、一方、ステージング・ラッチ106はそれをトリビュタリに供給する。一方、トリビュタリは、クロック制御信号104を必要とするクロック駆動の論理回路108を駆動する。クロック分配技術は、集積回路におけるクロック駆動の論理回路108への接続を必要とするとき、トリビュタリを有するメイン・トランクを利用してその接続をメイン・トランクから分岐させる。
集積回路ロジックのロード要件によっては、ローカル・クロック・バッファと一般的に呼ばれるアクティブ・デバイス・バッファ回路がクロック駆動の論理回路内のラッチを駆動するために使用される。図2は、クロック駆動の論理回路におけるクロック制御信号の分配を示す。図2に示されるように、クロック制御信号202はステージング・ラッチ204に供給され、一方、ステージング・ラッチ204はそれをクロック駆動の論理回路206に供給する。上述のように、クロック駆動の論理回路206内には、1つまたは複数のローカル・クロック・バッファ(LCB)208が存在し得る。しかし、クロック駆動の論理回路206が多数のLCBを含むとき、ポイント210によって示される各LCBへのクロック制御信号202を高い周波数で駆動することができる信号分配ネットワークを構築することは困難であることがある。
即ち、すべての電子回路の負荷は、集積回路の物理的な構造に固有の抵抗、インダクタンスおよびキャパシタンスを有する。集積回路デバイスは、抵抗およびキャパシタンスを圧倒的に多く有する。抵抗「R」およびキャパシタンス「C」は、クロック制御信号のような速い立ち上がり縁部矩形波に対してRC時定数遅れを生じる。クロック制御信号の過度の遅れは、LCBによる予測不能な動作を生じさせることがある。集積回路におけるクロック駆動の論理回路の信頼性あるオペレーションは、LCBが適切に動作することに依存する。クロック制御信号が遅れる場合、クロック駆動の論理回路は適切に機能し得ず、潜在的にシステムの不安定性を引き起こすことがある。
現在の1つの解決方法は、クロック駆動の論理回路を減らして、各々が少数の論理装置を含む複数のクロック駆動の論理回路にするために、ロジックを再構成することに関連している。この解決方法は、本質的には最適でない方法で設計を区分けさせることがあるので、望ましくない。もう1つの解決方法は、ロジック合成ツールによって生じる伝播遅延よりも小さい伝播遅延を有する、カスタム設計の分配ネットワークを実装することである。これは、自動設計ツールによって完全に実施されることを意図されたクロック駆動の論理回路に対する手操作の介入を必要とするので、望ましくない。
本発明の目的は、クロック駆動の論理回路においてタイミング・クロージャを達成するための方法およびシステムを提供することにある。
本実施例は、クロック駆動の論理回路のインターフェースにおける複数の入力にクロック制御信号を供給する。開示されるシステムは、ラッチを駆動するために必要とされるローカル・クロック・バッファの必要な数の決定を行う。一方、そのラッチは、LCBへのクロック制御信号がターゲット周波数で駆動されるために、クロック駆動の論理回路における組み合せ論理回路を駆動する。開示されるシステムは、更に多数のクロック制御信号入力の各々の論理的等価性の認識を行い、多数のクロック制御信号入力のどれをクロック駆動の論理回路における各ローカル・クロック・バッファに接続すべきかに関して最適な選択を行う。本実施例は、クロック駆動の論理回路の論理的等価性を検証するために、概要ネットリストを介してクロック駆動の論理回路のパラメータと多数のクロック制御信号入力とを読み取る。
本実施例は、クロック駆動の論理回路においてタイミング・クロージャの達成を提供する。本実施例は、ローカル・クロック・バッファのセットにおける各ローカル・クロック・バッファに対して、第1タイミング制約が適合し得るようなターゲット周波数でローカル・クロック・バッファへのクロック制御信号を駆動するクロック制御信号入力をクロック制御信号入力のセットから決定して、1つの決定されたクロック制御信号入力を形成する。本実施例は、決定されたクロック制御信号入力の決定に応答して、その決定されたクロック制御信号入力にローカル・クロック・バッファを結合し、その決定されたクロック制御信号入力がターゲット周波数でローカル・クロック・バッファへのクロック制御信号を駆動して、クロック駆動の論理回路内でタイミング・クロージャを達成する。
本実施例は、第1タイミング制約が適合し得るようにターゲット周波数でローカル・クロック・バッファへのクロック制御信号を駆動するクロック制御信号入力をクロック制御信号入力のセットから決定し得なかったことに応答して、第1タイミング制約が適合し得なかった場所を表わす概要ネットリストおよび統計を生成する。
本実施例は、ラッチのセットにおける各ラッチに対して、クロック信号がローカル・クロック・バッファからラッチにターゲット周波数で駆動されるように第2タイミング制約が適合するかどうかを決定する。本実施例は、クロック信号によってラッチをターゲット周波数で駆動し得なかったことに応答して、第2タイミング制約が適合し得るよう、クロック信号によってラッチをターゲット周波数で駆動するためにローカル・クロック・バッファがクローン化される必要がある回数を決定する。本実施例は、ローカル・クロック・バッファをその決定された回数だけ自動的にクローン化し、それによってローカル・クロック・バッファのセットを形成する。
本実施例は、ラッチのセットにおける各ラッチに対して、第2タイミング制約が適合し得るようにローカル・クロック・バッファのセットにおけるどのローカル・クロック・バッファがクロック信号によってラッチをターゲット周波数で駆動するかを決定し、それによって、1つの決定されたローカル・クロック・バッファを形成する。本実施例は、決定されたローカル・クロック・バッファの決定に応答して、クロック駆動の論理回路においてタイミング・クロージャを達成するためにラッチをその決定されたローカル・クロック・バッファに結合する。
本実施例では、第1タイミング制約および第2タイミング制約は、クロック駆動の論理回路の物理的境界内におけるラッチのセット、ローカル・クロック・バッファのセット、およびクロック制御信号入力のセットの物理的配置に依存し得る。
本実施例では、物理的境界内におけるラッチのセットおよびローカル・クロック・バッファのセットの物理的配置は、第1タイミング制約および第2タイミング制約が適合し得る限り任意であってもよい。更に、本実施例では、クロック制御信号入力のセットの物理的配置はクロック駆動の論理回路の物理的境界に関連したデータによって定義されるように固定されてもよい。
別の実施例では、コンピュータ可読プログラムを有するコンピュータ使用可能媒体を含むコンピュータ・プログラム製品が提供される。コンピュータ可読プログラムは、コンピューティング装置上で実行されたとき、方法に関連した実施例に関して概説したオペレーションにおける種々のものおよびそれらのオペレーションを結合したものを遂行させる。
更に別の実施例では、1つのシステムが提供される。そのシステムは、プロセッサに結合されたプロセッサおよびメモリを含み得る。メモリは、プロセッサによって実行される時、方法の実施例に関して概説したオペレーションのうちの種々のものおよびそれらのオペレーションを結合したものをプロセッサに遂行させる命令を含み得る。
本発明のこれらの並びに他の特徴および利点は、本実施例に関する以下の詳細な説明において記述されるし、それらの説明からみて当業者には明らかになるであろう。
本実施例は、クロック駆動の論理回路においてタイミング・クロージャを達成するための制御ロジックにおけるマルチソース・ネットワークの効率的な利用方法を提供する。図3は、本実施例を実装し得るデータ処理環境の例示的な概略図として提供される。図3は、単に例示的なものであり、本発明の実施態様或いは実施例を実装し得る環境に関して何らかの限定を主張または示唆することを意図するものでないことは明らかである。本発明の主旨および範囲から逸脱することなく、図示された環境に対する多くの修正を施すことが可能である。
次に図3を参照すると、本実施例を実装し得るデータ処理システムのブロック図が示される。データ処理システム300は、本実施例に関するプロセスを具現化するコンピュータ使用可能コードまたは命令を設けることが可能なコンピュータの一例である。
図示の例では、データ処理システム300は、ノース・ブリッジ兼メモリ・コントローラ・ハブ(MCH)302、並びにサウス・ブリッジ兼入出力(I/O)コントローラ・ハブ(ICH)304を含むハブ・アーキテクチャを使用する。処理ユニット306、メイン・メモリ308、およびグラフィックス・プロセッサ310は、ノース・ブリッジ兼メモリ・コントローラ・ハブ302に接続される。処理ユニット306は、1つまたは複数のプロセッサを含んでおり、1つまたは複数の異種のプロセッサ・システムを使用して具現化されてもよい。グラフィックス・プロセッサ310は、例えば、アクセラレイテッド・グラフィック・ポート(AGP)を介してMCH302に接続されてもよい。
図示の例では、ローカル・エリア・ネットワーク(LAN)アダプタ312がサウス・ブリッジ兼I/Oコントローラ・ハブ304に接続され、オーディオ・アダプタ316、キーボードおよびマウス・アダプタ320、モデム322、読取り専用メモリ(ROM)324、ユニバーサル・シリアル・バス(USB)ポートおよび他の通信ポート332、並びにPCI/PCIe装置334がバス338を介してサウス・ブリッジ兼I/Oコントローラ・ハブ304に接続され、ハードディスク・ドライブ(HDD)326およびCD−ROMドライブ330がバス340を介してサウス・ブリッジ兼I/Oコントローラ・ハブ304に接続される。PCI/PCIe装置は、例えば、イーサネット(登録商標)・アダプタ、アドイン・カード、およびノート型コンピュータのためのPCカードを含み得る。PCIはカード・バス・コントローラを使用し、一方、PCIeはそれを使用しない。ROM324は、例えば、フラッシュ・バイナリ入出力システム(BIOS)であってもよい。ハードディスク・ドライブ326およびCD−ROMドライブ330は、例えば、統合ドライブ・エレクトロニクス(IDE)またはシリアル・アドバンスト・テクノロジ・アタッチメント(SATA)インターフェースを使用し得る。スーパI/O(SIO)装置336がサウス・ブリッジ兼I/Oコントローラ・ハブ304に接続されてもよい。
オペレーティング・システムが処理ユニット306において作動し、図3におけるデータ処理システム300内の種々のコンポーネントを調整し、そのコンポーネントの制御を行う。オペレーティング・システムは、Microsoft(商標)Windows(登録商標)XP(MicrosoftおよびWindowsは、米国におけるマイクロソフト社の商標である)のような市販のオペレーティング・システムであってもよい。Javaプログラミング・システムのようなオブジェクト指向プログラミング・システムは、オペレーティング・システムと関連して作動し得るし、データ処理システム300上で実行されるJava(登録商標)プログラム或いはアプリケーションからオペレーティング・システムへのコールを行い得る。JavaおよびすべてのJavaベースの商標は、米国におけるSunMicrosystems社の商標である。
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーション或いはプログラムのための命令は、ハードディスク・ドライブ326のような記憶装置に配置され、処理ユニット306による実行のためにメイン・メモリ308にロードされる。本実施例のプロセスは、例えば、メイン・メモリ308、読取り専用メモリ324のようなメモリに、或いは1つまたは複数の周辺装置に配置することが可能なコンピュータ実装の命令を使用して、処理ユニット306により遂行することができる。
図3におけるハードウェアは実施態様に依存して変更することが可能である。フラッシュ・メモリ、同等の不揮発性のメモリ、または光ディスク・ドライブ等のような他の内部ハードウェア或いは周辺装置が、図3に示されたハードウェアに加えて、或いはそのハードウェアの代わりに使用されてもよい。更に、本実施例のプロセスはマルチプロセッサ・データ処理システムに適用されてもよい。
実施例によっては、バス・システムが、システム・バス、I/Oバス、およびPCIバスのような1つまたは複数のバスで構成されることも可能である。もちろん、バス・システムは、任意のタイプの通信ファブリックまたはアーキテクチャを使用して具現化することが可能であり、それらのブリッジまたはアーキテクチャに接続された種々のコンポーネント或いはデバイスの間のデータ転送を行う。通信ユニットは、モデムまたはネットワーク・アダプタのような、データを送受信するために使用される1つまたは複数のデバイスを含んでもよい。メモリは、例えば、メイン・メモリ308、或いはノース・ブリッジ兼メモリ・コントローラ・ハブ302において見られるようなキャッシュ、であってもよい。処理ユニットは1つまたは複数のプロセッサまたはCPUを含み得る。図3に示された例および上記の例は、アーキテクチャ上の限定を意味するものではない。例えば、データ処理システム300は、タブレット・コンピュータ、ラップトップ・コンピュータ、電話装置、パーソナル・デジタル・アシスタント(PDA)等であってもよい。
本実施例は、クロック駆動の論理回路のインターフェースにおける多数の入力にクロック制御信号を供給する。このクロック駆動の論理回路の設計レベルでは、これらのクロック制御信号入力の各々は、種々の、しかし論理的に同等のラッチされたクロック制御信号に接続されることが可能である。上記のシステムは、ラッチを駆動するために必要なローカル・クロック・バッファ(LCB)の必要な数の決定を行う。一方、それらのラッチは、LBCへのクロック制御信号がターゲット周波数で駆動されるために、クロック駆動の論理回路の組み合わせ論理回路を駆動する。上記のシステムは、更に、多数のクロック制御信号入力の各々の論理的等価性の認識を行い、クロック駆動の論理回路における各ローカル・クロック・バッファに多数のクロック制御信号入力のどれを接続するべきかに関して最適な選択を行う。本実施例は、概要ネットリストを介してクロック駆動の論理回路のパラメータおよび多数のクロック制御信号入力を読み取り、クロック駆動の論理回路の論理的等価性を検証する。
図4は、実施例に従ってタイミング閉鎖を達成するためにクロック駆動の論理回路の例示的な論理的合成および論理的透過性をチェックするためのブロック図を示す。ロジック合成ツール402は、クロック駆動の論理回路の入力として物理的境界データ406、タイミング制約データ408、およびロジック記述データ410を受ける比較モジュール404を含む。クロック駆動の論理回路は、集積回路の一部分または集積回路全体を包含し得る。物理的境界データ406は、次元、クロック制御信号入力ロケーション等のようなクロック駆動の論理回路の物理的境界を提供する。タイミング制約データ408は、最大のシステム・クロック周波数、クロック駆動の論理回路に着信する信号の予測到着時間、発信する信号の必要な発信時間等を含み得る。本実施例は、1つだけのタイミング制約または複数のタイミング制約を使用し得る。ロジック記述データ410は、超高速集積回路(VHSIC)ハードウェア記述言語(VHDL)、Verilog(商標)等のような、クロック駆動の論理回路のロジックを作動させる方法を記述するハードウェア記述言語で書かれる。ロジック記述データ410は、例えば、ユーザが決定したラッチの数、1つのLCB、クロック制御信号入力の1つからLCBへの接続、クロック駆動の論理回路の機能を定義する組み合わせ論理方程式等を含む。
比較モジュール404は、ロジック合成を継続する前に、3つの入力によって提供されるデータが一致することを保証するために、入力に含まれたデータを比較することによって比較チェックを行う。即ち、比較モジュール404は、1つの入力におけるデータが、1つまたは複数の入力に含まれた同様のデータと一致するということを確認する。一旦比較モジュール404が比較チェックを終了すると、デバイス配置モジュール412が、物理的境界データ406によって定義されたクロック駆動の論理回路の物理的境界内における、ロジック記述データ410において定義された組み合わせ論理回路、ラッチ、および、LCBの初期配置を行う。デバイスの初期配置は、ロジック合成ツール402がクロック駆動の論理回路のタイミング制約に適合するために、多くの反復を介してすべてのデバイスの配置を決定するので、デバイスの最終的な位置であることもあり、そうでないこともある。
一旦デバイス配置モジュール412がロジック記述データ410からのデバイスの配置を完了すると、ロジック合成ツール402は、クロック制御信号を含むすべての必要な信号に対するターゲット周波数が得られたかどうか決定するためにタイミング・モジュール414を起動する。ラッチがターゲット周波数でタイミング信号を受け取っていないことをタイミング・モジュール414が決定する場合、クローンLCBモジュール416が、ターゲット周波数でラッチを駆動するために必要とされるLCBモジュールをクローン化する。従って、ロジック合成ツール402のモジュールは、ラッチを駆動するために必要とされるLCBの必要な数を決定する。一方、ラッチは、LBCへのクロック制御信号がターゲット周波数で駆動されるために、クロック駆動の論理回路の組み合わせ論理回路を駆動する。一旦クローンLCBモジュール416がLCBからラッチまでのタイミング要件を満たすために受容可能な数のLCBをクローン化し、デバイス配置モジュール412が、物理的境界データ406によって定義されたクロック駆動の論理回路の物理的境界内にそのクローン化されたLCBを配置すると、LCB接続モジュール418へのクロック制御信号入力は、LBCへのクロック制御信号がターゲット周波数で駆動されるためにはどのクロック制御信号入力をどのLCBに接続するべきかを決定する。
ロジック合成ツール402は、ラッチを駆動する各LCBが所望のターゲット周波数でクロック制御信号を受け取るために、LCB接続モジュール418へのクロック制御信号入力を使用して、種々のLCBにクロック制御信号入力を接続するという反復を数多く行い得る。ロジック合成ツール402によって行なわれた反復の数は、例えば、所望の機能が得られるまでの、ユーザによって定義されるような、或いはラン・タイム等によって限定されるような、所定の反復数となり得る。所定の反復数が望ましい場合、ロジック合成ツール402は反復数を表す計数を保持するカウンタを含み得る。所定量の時間の間ロジック合成が作動することを許される場合、ロジック合成ツール402は、ロジック合成が作動した回数を保持するタイミング装置を含み得る。従って、ロジック合成ツール402のモジュールは、多数のクロック制御信号入力の各々の論理的等価性を認識し、多数のクロック制御信号入力のどれをクロック駆動の論理回路における各ローカル・クロック・バッファに接続するべきかの最適な選択を行う。
一旦ロジック合成ツール402が、所望のターゲット周波数が得られるようなデバイスの最終的配置を決定すると、或いは一旦ロジック合成ツールが、所望の機能が得られるまで、事前定義された条件に基づいてできるだけ多くの反復を実行すると、概要ネットリスト・ジェネレータ420が、クロック駆動の論理回路の物理的境界内にあるデバイス、それらの配置、およびそれらの接続に関する詳細な記述を提供する概要ネットリスト426を生成する。更に、統計ジェネレータ422が、例えば、行なわれた反復の数、クローン化されたLCBの数、デバイスが置換された回数、接続が変更された回数等を含み得る統計424を生成する。ロジック合成ツール402はできるだけ多くの反復のために作動したが、それでもなおデバイスの最終的配置を決定することができなかった場合、統計ジェネレータ422は、接続されてないデバイス、回数調整(timing)が行われ得なかったデバイス等のようなエラーを含む統計424を生成し得る。
概要ネットリスト・ジェネレータ420によって生成された概要ネットリスト426は、その後、ロジック等価性チェック・ツール428によって使用される。ロジック等価性チェック・ツール428内のクロック入力グループ化モジュール430がクロック駆動の論理回路の概要ネットリスト426を使用して、グループ化キーワードを備えたクロック駆動の論理回路の等価的なクロック制御信号入力のセットをマークする。そのグループ化キーワードを使用して、クロック入力グループ化モジュール430は、クロック制御信号入力グループ情報を保存するインターフェース記述ファイル432を生成する。
ロジック等価性チェック・ツール428は、クロック入力マージ・モジュール434および等価性チェック・モジュール436も含む。クロック入力マージ・モジュール434は、インターフェース記述ファイル432と共にクロック駆動の論理回路の概要ネットリスト426を使用して、等価性チェックのためにクロック駆動の論理回路の等価的なクロック制御信号入力を単一のクロック制御信号入力にマージする。しかる後、等価性チェック・モジュール436は、マージされたクロック制御信号入力およびクロック駆動の論理回路のロジック記述データ410を用いて概要ネットリスト426の等価性チェックを行う。等価性チェックは、ロジック記述データ410からクロック駆動の論理回路の論理的な記述を抽出すること、概要ネットリスト426の入力ポートおよび出力ポートを論理的な記述に対応させること、および、両モデルの出力が、同じ入力によって駆動されたときには同じであるということを保証するために種々のアルゴリズムを使用すること、を含み得る。一旦概要ネットリスト426およびロジック記述データ410の等価性チェックが完了すると、等価性チェック・モジュール436は等価性レポート438を生成する。等価性レポート438は、概要ネットリスト426とロジック記述データ410との間のいずれの相違点も表す。従って、ロジック等価性チェック・ツール428のモジュールは、概要ネットリストを介してクロック駆動の論理回路および多数のクロック制御信号入力のパラメータを読み取り、クロック駆動の論理回路の論理的等価性を検証する。
図5および6は、本実施例に従ってロジック合成ツールにより行なわれる例示的な関連を示す。図5は、図4のデバイス配置モジュール412のようなデバイス配置モジュールによってクロック駆動の論理回路に関連したデバイスの例示的な二次元の初期配置502を示す。なお、そのデバイス配置モジュール412は、図4のロジック記述データ410および物理的境界データ406のようなロジック記述および物理的境界によって記述される。図4のロジック合成ツール402のようなロジック合成ツールは、クロック駆動の論理回路の境界504を作成するためにその提供された物理的境界を使用する。ロジック合成ツールは、図5にローカル・クロック・バッファ(LCB)506も配置している。図示されてないが、ロジック合成ツールは、当初は、更にクロック駆動の論理回路のすべての組み合わせロジックおよびラッチも配置している。クロック制御信号入力508の位置は物理的境界を通して与えられるであろう。可視的にするために、クロック制御信号入力508は、ステージング・ラッチ512を介して集中クロック制御回路からのクロック制御信号510に接続されるように示される。
図6は、図4の概要ネットリスト426のような概要ネットリストによって記述されるクロック駆動の論理回路に関連したデバイスの例示的な二次元の最終的配置514を示す。その最終的配置514に到達するために、ロジック合成ツールは、ターゲット周波数が得られたかどうかを決定するためにタイミング・モジュールを開始させる。図6は、ターゲット周波数でクロック駆動の論理回路のラッチを駆動するための更なる7個のLCB506の要件を示す。図4のクローンLCBモジュール416のようなクローンLCBモジュールがLCB506をクローン化する。一旦、クローン化されたLCBの数が決定されると、その後、図4のLCB接続モジュール418へのクロック制御信号入力のようなLCB接続モジュールへのクロック制御信号入力は、クロック駆動の論理回路のLCBへのクロック制御信号が接続線516によって表されたターゲット周波数で駆動されるよう、クロック制御信号入力508のどれをLCB506に接続するべきかを決定する。再び、ロジック合成ツールは、デバイス配置モジュールを使用してデバイスを配置すること、クローンLCBモジュールを使用してLCB506をクローン化すること、および、クロック制御信号によって正しく制御されるLCBによって各ラッチが適切に制御されるためにLCB接続モジュールへのクロック制御信号入力を使用してクロック制御信号入力508をLCB506に接続することを数多く反復し得る。
従って、図5および図6は、ラッチを駆動する必要があるLCBの必要な数の決定を示す。なお、そのラッチは、LCBへのクロック制御信号がターゲット周波数で駆動されるためにクロック駆動の論理回路の組み合わせ論理回路を駆動する。更に、図5および図6は、多数のクロック制御信号入力の各々の論理的等価性の認識を示し、多数のクロック制御信号入力のどれをクロック駆動の論理回路における各ローカル・クロック・バッファに接続するべきかに関する最適な選択を行う。
図7は、実施例に従ってタイミング・クロージャを達成するためにロジック合成ツールによって行なわれる例示的なオペレーションを概説するフローチャートを示す。上記オペレーションは、図4のロジック合成ツール402のようなロジック合成ツールによって行なわれる。オペレーションが開始すると、図4の比較モジュール404のような比較モジュールが、クロック駆動の論理回路の物理的境界データ、タイミング制約データ、およびロジック記述データを入力として受け取る(ステップ602)。比較モジュールは、ロジック合成を継続する前に、3つの入力によって提供されるデータが一致するということを保証するために入力の比較チェックを行う(ステップ604)。一旦比較モジュールが比較チェックを完了すると、図4のデバイス配置モジュール412のようなデバイス配置モジュールは、組み合わせ論理回路、ラッチ、および、クロック駆動の論理回路の物理的境界内のロジック記述データにおいて定義されたLCBの初期配置を行う(ステップ606)。
一旦デバイスが初期配置されると、図4のクローンLCBモジュール416のようなクローンLCBモジュールが、ターゲット周波数でラッチを駆動することを求められるときにLCBをクローンし、デバイス配置モジュールが、クロック駆動の論理回路の物理的境界内にデバイスを配置する(ステップ608)。一旦多数のLCBがクローン化され且つ配置されると、図4のタイミング・モジュール414のようなタイミング・モジュールが、クロック駆動の論理回路のLCBへのクロック制御信号がターゲット周波数で駆動され得るかどうかを決定する(ステップ610)。ステップ610において、LCBがターゲット周波数でクロック信号を受け取っていないということをタイミング・モジュールが決定する場合、図4のLCB接続モジュール418へのクロック制御信号入力のようなLCB接続モジュールへのクロック制御信号入力が、ターゲット周波数でラッチを駆動するLCBへのクロック制御信号入力の接続を決定する(ステップ612)。ロジック合成ツールは、各LCBが所望のターゲット周波数でクロック制御信号を受け取るために、LCBにクロック制御信号入力を接続することを何回も反復し得る。
次に、タイミング・モジュールは、クロック駆動の論理回路のためのタイミング制約が適合したかどうかを決定する(ステップ614)。ステップ614において、すべてのタイミング制約が適合した場合、図4の概要ネットリスト・ジェネレータ420のような概要ネットリスト・ジェネレータが、クロック駆動の論理回路の物理的境界内にあるデバイス、それらの配置、および、それらの接続、に関する詳細な記述を提供する概要のネットリストを生成し、図4の統計ジェネレータ422のような統計ジェネレータが、例えば、クローン化されたLCBの数、デバイスが置換された回数、接続が変更された回数等を含み得る統計を生成し(ステップ616)しかる後、オペレーションが終了する。ステップ610に戻ると、ターゲット周波数が得られたことをタイミング・モジュールが決定する場合、オペレーションはステップ616に継続し、しかる後、終了する。
ステップ614においてタイミング制約が適合しなかった場合、ロジック合成ツールは、所定数の反復が行なわれたかどうかを決定する(ステップ618)。ステップ618において所定数の反復行われていない場合、ロジック合成ツール内のカウンタがインクリメントされ(ステップ620)、オペレーションはステップ610に戻る。例示のオペレーションは、多数の反復に基づいてロジック合成を行うという限定を示すが、この実施例は、所望の機能が達成されるまで、ラン・タイム等によって限定されるようなロジック合成を限定する別の手段を認める。ステップ618において所定数の反復が行なわれた場合、概要ネットリスト・ジェネレータは、クロック駆動の論理回路の物理的境界内にあるデバイス、それらの配置、および、それらの接続に関する詳細な記述、および、接続されてないデバイス、タイミングが行われ得ないデバイス等のようなエラーを含む統計を提供する概要ネットリストを生成し(ステップ622)、しかる後、オペレーションが終了する。
従って、図6において行なわれるオペレーションは、ラッチを駆動するために必要とされるLCBの必要な数を決定する。一方、そのLCBは、LCBへのクロック制御信号がターゲット周波数で駆動され、多数のクロック制御信号入力の各々の論理的等価性を認識して多数のクロック制御信号入力のどれをクロック駆動の論理回路における各ローカル・クロック・バッファに接続するべきかに関する最適の選択を行うために、クロック駆動の論理回路の組み合わせ論理回路を駆動する。
図8は、実施例に従ってロジック等価性チェック・ツールにより行われる例示的なオペレーションを概説するフローチャートを示す。上記オペレーションは、図4のロジック等価性チェック・ツール428のようなロジック等価性チェック・ツールによって行われる。オペレーションが開始すると、ロジック等価性ツールはクロック駆動の論理回路の概要ネットリストおよびロジック記述を受け取る(ステップ702)。図4のクロック入力グループ化モジュール430のようなクロック入力グループ化モジュールが、ロジック合成ツールによって生成された概要ネットリストを使用してグループ化キーワードによりクロック駆動の論理回路の等価なクロック制御信号入力のセットをマークする(ステップ704)。グループ化キーワードを使用して、クロック入力グループ化モジュールは、等価のクロック制御信号入力グループ情報を保存するインターフェース記述ファイルを生成する(ステップ706)。
図4のクロック入力マージ・モジュール434のようなクロック・グループ化モジュールが、等価性チェックのために、インターフェース記述ファイルと共にクロック駆動の論理回路の概要ネットリストを使用して、クロック駆動の論理回路の等価なクロック制御信号入力を単一のクロック制御信号入力にマージする(ステップ708)。図4の等価性チェック・モジュール436のような等価性チェック・モジュールが、そのマージされたクロック制御信号入力およびクロック駆動の論理回路のロジック記述を用いて概要ネットリストの等価性チェックを行う(ステップ710)。一旦等価性チェックが完了すると、等価性チェック・モジュールは、その後オペレーションが終了するとき、概要ネットリストとクロック駆動の論理回路のロジック記述との間の如何なる相違点も表す等価性レポートを生成する(ステップ712)。従って、図8において行われたオペレーションは、概要ネットリストを介してクロック駆動の論理回路および多数のクロック制御信号入力のパラメータを読み取り、クロック駆動の論理回路の論理的等価性を検証した。
従って、本実施例は、ラッチを駆動するために必要とされるローカル・クロック・バッファ(LCB)の必要な数の決定を行う。一方、そのラッチは、LCBへのクロック制御信号がターゲット周波数で駆動されるために、クロック駆動の論理回路の組み合わせ論理回路を駆動する。本実施例は、多数のクロック制御信号の各々の論理的等価性を認識し、多数のクロック制御信号入力のどれをクロック駆動の論理回路における各ローカル・クロック・バッファに接続するべきかに関する最適の選択を行う。本実施例は、概要ネットリストを介してクロック駆動の論理回路パラメータおよび多数のクロック制御信号入力を読み取り、クロック駆動の論理回路の論理的等価性を検証する。
本実施例が、全体的にハードウェアの実施例、全体的にソフトウェアの実施例、或いはハードウェア要素およびソフトウェア要素の両方を含む実施例の形式を取り得るということは明らかであろう。1つの実施例では、その実施例の機構が、ファームウェア、常駐のソフトウェア、マイクロコード等を含むがそれに制限されないソフトウェアで具現化される。
更に、本実施例は、コンピュータ或いは任意の命令実行システムによって、またはそれに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体或いはコンピュータ可読媒体からアクセスし得るコンピュータ・プログラム製品の形式を取り得る。説明の便宜上、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、或いはデバイスによって、またはそれに関連して使用するためのプログラムを収容し、格納し、通信し、伝播し、または搬送することができる任意の装置であってもよい。
媒体は、電子的、磁気的、光学的、電磁気的、赤外線、或いは半導体システム(または装置またはデバイス)或いは伝播媒体であってもよい。コンピュータ可読媒体の例は、半導体メモリまたはソリッド・ステート・メモリ、磁気テープ、取外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、固定磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク読取り専用メモリ(CD−ROM)、コンパクト・ディスク読取り/書込み(CD−R/W)、およびDVDを含む。
プログラム・コードを格納および/または実行するに適したデータ処理システムは、システム・バスを介してメモリ素子に直接にまたは間接的に接続された少なくとも1つのプロセッサを含むであろう。メモリ素子は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、および、コードが実行中に大容量記憶装置から検索されなければならない回数を減らすために少なくとも幾つかのプログラム・コードの一時的記憶装置を提供するキャッシュ・メモリを含み得る。
入出力装置、即ちI/O装置(キーボード、ディスプレイ、ポインティング・デバイス等を含むが、それに限定されない)を、システムに直接に或いはI/Oコントローラの介在を通してシステムに接続することも可能である。データ処理システムが専用ネットワーク或いは公衆ネットワークの介在を介して他のデータ処理システム或いは遠隔のプリンタまたは記憶装置に接続されることを可能にするために、ネットワーク・アダプタをシステムに接続することも可能である。モデム、ケーブル・モデム、およびイーサネット(登録商標)・カードは、わずかな現在利用可能なタイプのネットワーク・アダプタである。
本発明の説明は、図解および記述を目的として示され、網羅的であることまたは開示された形式の発明に制限されることを意図するものではない。多くの修正および変更も当業者には明らかであろう。実施例は、発明の原理および実用的な応用を最もよく説明するために、および意図する特定の用途に適するように種々の修正を伴う種々の実施例に関連して当業者が本発明を理解することを可能にするために、選択および記述された。
集積回路におけるクロック制御信号の分配を示す概略図である。 クロック駆動の論理回路におけるクロック制御信号の分配を示す概略図である。 本実施例の諸態様を具現化し得る例示的なデータ処理システムのブロック図である。 本実施例に従ってタイミング・クロージャを達成するためのクロック駆動の論理回路の例示的な論理的合成および論理的等価性チェックを示すブロック図である。 本実施例に従ってロジック合成ツールにより行なわれる例示的接続の概略図である。 本実施例に従ってロジック合成ツールにより行なわれるもう1つの例示的接続の概略図である。 本実施例に従ってタイミング・クロージャを達成するためにロジック合成ツールによって行なわれる例示的オペレーションを概説するフローチャートである。 本実施例に従ってタイミング・クロージャを確認するためにロジック等価性チェック・ツールにより行なわれる例示的オペレーションを概説するフローチャートである。

Claims (15)

  1. データ処理システムにおいて、クロック駆動の論理回路内でタイミング・クロージャを達成するための方法であって、
    ローカル・クロック・バッファのセットにおける各ローカル・クロック・バッファに対して、第1タイミング制約が適合し得るようなターゲット周波数で前記ローカル・クロック・バッファへのクロック制御信号を駆動するクロック制御信号入力をクロック制御信号入力のセットから決定し、それによって、1つの決定されたクロック制御信号入力を形成するステップと、
    前記決定されたクロック制御信号入力の決定に応答して、前記決定されたクロック制御信号入力に前記ローカル・クロック・バッファを結合するステップと、
    を含み、
    前記決定されたクロック制御信号入力が前記ターゲット周波数で前記ローカル・クロック・バッファへの前記クロック制御信号を駆動して前記クロック駆動の論理回路内でタイミング・クロージャを達成する、方法。
  2. 前記第1タイミング制約が適合し得るように前記ターゲット周波数で前記ローカル・クロック・バッファへの前記クロック制御信号を駆動するクロック制御信号入力を前記クロック制御信号入力のセットから決定し得なかったことに応答して、前記第1タイミング制約が適合し得なかった場所を表わす概要ネットリストおよび統計を生成するステップを更に含む、請求項1に記載の方法。
  3. ラッチのセットにおける各ラッチに対して、クロック信号が前記ローカル・クロック・バッファから前記ラッチにターゲット周波数で駆動されるように第2タイミング制約が適合するかどうかを決定するステップと、
    前記クロック信号によって前記ラッチを前記ターゲット周波数で駆動し得なかったことに応答して、前記第2タイミング制約が適合し得るよう、前記クロック信号によって前記ラッチを前記ターゲット周波数で駆動するために前記ローカル・クロック・バッファがクローン化される必要がある回数を決定するステップと、
    前記ローカル・クロック・バッファを前記決定された回数だけ自動的にクローン化し、それによってローカル・クロック・バッファのセットを形成するステップと、
    を更に含む、請求項1に記載の方法。
  4. 前記ラッチのセットにおける各ラッチに対して、前記第2タイミング制約が適合し得るように前記ローカル・クロック・バッファのセットにおけるどのローカル・クロック・バッファが前記クロック信号によって前記ラッチを前記ターゲット周波数で駆動するかを決定し、それによって、1つの決定されたローカル・クロック・バッファを形成するステップと、
    前記決定されたローカル・クロック・バッファの決定に応答して、前記クロック駆動の論理回路においてタイミング・クロージャを達成するために前記ラッチを前記決定されたローカル・クロック・バッファに結合するステップと、
    を更に含む、請求項3に記載の方法。
  5. 前記第1タイミング制約および前記第2タイミング制約は、前記クロック駆動の論理回路の物理的境界内における前記ラッチのセット、前記ローカル・クロック・バッファのセット、および前記クロック制御信号入力のセットの物理的配置に依存する、請求項3に記載の方法。
  6. 前記物理的境界内における前記ラッチのセットおよび前記ローカル・クロック・バッファのセットの物理的配置は、前記第1タイミング制約および前記第2タイミング制約が適合し得る限り任意である、請求項5に記載の方法。
  7. 前記クロック制御信号入力のセットの物理的配置は前記クロック駆動の論理回路の物理的境界に関連したデータによって定義されるように固定される、請求項5に記載の方法。
  8. データ処理システムにおいて実行されるとき、
    ローカル・クロック・バッファのセットにおける各ローカル・クロック・バッファに対して、第1タイミング制約が適合し得るようなターゲット周波数で前記ローカル・クロック・バッファへのクロック制御信号を駆動するクロック制御信号入力をクロック制御信号入力のセットから決定し、それによって、1つの決定されたクロック制御信号入力を形成し、
    前記決定されたクロック制御信号入力の決定に応答して、前記決定されたクロック制御信号入力に前記ローカル・クロック・バッファを結合する
    ように前記データ処理システムを動作させ、
    前記決定されたクロック制御信号入力が前記ターゲット周波数で前記ローカル・クロック・バッファへの前記クロック制御信号を駆動して前記クロック駆動の論理回路内でタイミング・クロージャを達成させる、コンピュータ・プログラム。
  9. 前記第1タイミング制約が適合し得るように前記ターゲット周波数で前記ローカル・クロック・バッファへの前記クロック制御信号を駆動するクロック制御信号入力を前記クロック制御信号入力のセットから決定し得なかったことに応答して、前記第1タイミング制約が適合し得なかった場所を表わす概要ネットリストおよび統計を生成するように前記データ処理システムを更に動作させる、請求項8に記載のコンピュータ・プログラム。
  10. ラッチのセットにおける各ラッチに対して、クロック信号が前記ローカル・クロック・バッファから前記ラッチにターゲット周波数で駆動されるように第2タイミング制約が適合するかどうかを決定し、
    前記クロック信号によって前記ラッチを前記ターゲット周波数で駆動し得なかったことに応答して、前記第2タイミング制約が適合し得るよう、前記クロック信号によって前記ラッチを前記ターゲット周波数で駆動するために前記ローカル・クロック・バッファがクローン化される必要がある回数を決定し、
    前記ローカル・クロック・バッファを前記決定された回数だけ自動的にクローン化し、それによってローカル・クロック・バッファのセットを形成する
    ように前記データ処理システムを更に動作させる、請求項8に記載のコンピュータ・プログラム。
  11. 前記ラッチのセットにおける各ラッチに対して、前記第2タイミング制約が適合し得るように前記ローカル・クロック・バッファのセットにおけるどのローカル・クロック・バッファが前記クロック信号によって前記ラッチを前記ターゲット周波数で駆動するかを決定し、それによって、1つの決定されたローカル・クロック・バッファを形成し、
    前記決定されたローカル・クロック・バッファの決定に応答して、前記クロック駆動の論理回路においてタイミング・クロージャを達成するために前記ラッチを前記決定されたローカル・クロック・バッファに結合する
    ように前記データ処理システムを更に動作させる、請求項10に記載のコンピュータ・プログラム。
  12. プロセッサと、
    前記プロセッサに結合され、命令を含むメモリと、
    を含み、
    前記命令は、前記プロセッサによって実行されるとき、
    ローカル・クロック・バッファのセットにおける各ローカル・クロック・バッファに対して、第1タイミング制約が適合し得るようなターゲット周波数で前記ローカル・クロック・バッファへのクロック制御信号を駆動するクロック制御信号入力をクロック制御信号入力のセットから決定し、それによって、1つの決定されたクロック制御信号入力を形成し、
    前記決定されたクロック制御信号入力の決定に応答して、前記決定されたクロック制御信号入力に前記ローカル・クロック・バッファを結合する
    ように前記プロセッサを動作させ、
    前記決定されたクロック制御信号入力が前記ターゲット周波数で前記ローカル・クロック・バッファへの前記クロック制御信号を駆動して前記クロック駆動の論理回路内でタイミング・クロージャを達成させる、システム。
  13. 前記第1タイミング制約が適合し得るように前記ターゲット周波数で前記ローカル・クロック・バッファへの前記クロック制御信号を駆動するクロック制御信号入力を前記クロック制御信号入力のセットから決定し得なかったことに応答して、前記第1タイミング制約が適合し得なかった場所を表わす概要ネットリストおよび統計を生成するように前記プロセッサを更に動作させる、請求項12に記載のシステム。
  14. ラッチのセットにおける各ラッチに対して、クロック信号が前記ローカル・クロック・バッファから前記ラッチにターゲット周波数で駆動されるように第2タイミング制約が適合するかどうかを決定し、
    前記クロック信号によって前記ラッチを前記ターゲット周波数で駆動し得なかったことに応答して、前記第2タイミング制約が適合し得るよう、前記クロック信号によって前記ラッチを前記ターゲット周波数で駆動するために前記ローカル・クロック・バッファがクローン化される必要がある回数を決定し、
    前記ローカル・クロック・バッファを前記決定された回数だけ自動的にクローン化し、それによってローカル・クロック・バッファのセットを形成する
    ように前記プロセッサを更に動作させる、請求項12に記載のシステム。
  15. 前記ラッチのセットにおける各ラッチに対して、前記第2タイミング制約が適合し得るように前記ローカル・クロック・バッファのセットにおけるどのローカル・クロック・バッファが前記クロック信号によって前記ラッチを前記ターゲット周波数で駆動するかを決定し、それによって、1つの決定されたローカル・クロック・バッファを形成し、
    前記決定されたローカル・クロック・バッファの決定に応答して、前記クロック駆動の論理回路においてタイミング・クロージャを達成するために前記ラッチを前記決定されたローカル・クロック・バッファに結合する
    ように前記プロセッサを更に動作させる、請求項14に記載のシステム。
JP2008172903A 2007-07-03 2008-07-02 クロック駆動の論理回路においてタイミング・クロージャを達成するために制御ロジックのマルチソース・ネットワークを効率的に利用する方法およびシステム Expired - Fee Related JP5063511B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/772,908 US7979732B2 (en) 2007-07-03 2007-07-03 Efficient utilization of a multi-source network of control logic to achieve timing closure in a clocked logic circuit
US11/772908 2007-07-03

Publications (2)

Publication Number Publication Date
JP2009015851A JP2009015851A (ja) 2009-01-22
JP5063511B2 true JP5063511B2 (ja) 2012-10-31

Family

ID=40222360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008172903A Expired - Fee Related JP5063511B2 (ja) 2007-07-03 2008-07-02 クロック駆動の論理回路においてタイミング・クロージャを達成するために制御ロジックのマルチソース・ネットワークを効率的に利用する方法およびシステム

Country Status (3)

Country Link
US (1) US7979732B2 (ja)
JP (1) JP5063511B2 (ja)
TW (1) TWI446142B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5440094B2 (ja) * 2009-10-22 2014-03-12 日本電気株式会社 回路設計装置及び方法
US8667441B2 (en) * 2010-11-16 2014-03-04 International Business Machines Corporation Clock optimization with local clock buffer control optimization
US8725483B2 (en) 2011-01-19 2014-05-13 International Business Machines Corporation Minimizing the maximum required link capacity for three-dimensional interconnect routing
US8856495B2 (en) 2011-07-25 2014-10-07 International Business Machines Corporation Automatically routing super-compute interconnects
US8490039B2 (en) 2011-12-09 2013-07-16 International Business Machines Corporation Distributing spare latch circuits in integrated circuit designs
US9529951B2 (en) * 2014-05-29 2016-12-27 International Business Machines Corporation Synthesis tuning system for VLSI design optimization
US9372953B1 (en) * 2014-09-24 2016-06-21 Xilinx, Inc. Increasing operating frequency of circuit designs using dynamically modified timing constraints

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790841A (en) * 1996-04-15 1998-08-04 Advanced Micro Devices, Inc. Method for placement of clock buffers in a clock distribution system
JP2002259479A (ja) * 2001-03-06 2002-09-13 Matsushita Electric Ind Co Ltd 回路最適化方法
JP5193406B2 (ja) * 2001-06-13 2013-05-08 富士通セミコンダクター株式会社 クロック分配回路の設計方法,設計装置および設計プログラム並びに同プログラムを記録したコンピュータ読取可能な記録媒体
US6711716B1 (en) * 2002-09-26 2004-03-23 Agilent Technologies, Inc. Metal programmable clock distribution for integrated circuits
JP2004185466A (ja) * 2002-12-05 2004-07-02 Toshiba Corp 半導体集積回路のクロック分配方法および半導体集積回路
US7096442B2 (en) * 2003-07-10 2006-08-22 Lsi Logic Corporation Optimizing IC clock structures by minimizing clock uncertainty
US7233188B1 (en) * 2005-12-22 2007-06-19 Sony Computer Entertainment Inc. Methods and apparatus for reducing power consumption in a processor using clock signal control
JP2007336003A (ja) * 2006-06-12 2007-12-27 Nec Electronics Corp クロック分配回路、半導体集積回路、クロック分配回路の形成方法及びそのプログラム

Also Published As

Publication number Publication date
US7979732B2 (en) 2011-07-12
TWI446142B (zh) 2014-07-21
TW200912603A (en) 2009-03-16
JP2009015851A (ja) 2009-01-22
US20090013206A1 (en) 2009-01-08

Similar Documents

Publication Publication Date Title
JP5063511B2 (ja) クロック駆動の論理回路においてタイミング・クロージャを達成するために制御ロジックのマルチソース・ネットワークを効率的に利用する方法およびシステム
US8949757B2 (en) Circuit design and retiming
US9069920B2 (en) Automated circuit design
US8196076B2 (en) Optimal flow in designing a circuit operable in multiple timing modes
US8479136B2 (en) Decoupling capacitor insertion using hypergraph connectivity analysis
US8677299B1 (en) Latch clustering with proximity to local clock buffers
JP5147944B2 (ja) パイプライン式電子回路設計においてクロック・ゲーティング機会を検出するための方法、装置、およびプログラム
US8667441B2 (en) Clock optimization with local clock buffer control optimization
US7484192B2 (en) Method for modeling metastability decay through latches in an integrated circuit model
US8238190B2 (en) Clock-gated model transformation for asynchronous testing of logic targeted for free-running, data-gated logic
JP2015524589A (ja) 相対タイミング特徴付け
US9298872B2 (en) Apportioning synthesis effort for better timing closure
US9842187B1 (en) Representation of complex timing characteristics of startpoint-endpoint pairs in a circuit design
US8146039B2 (en) Optimal distance based buffer tree for data path and clock
US8458634B2 (en) Latch clustering with proximity to local clock buffers
US20140143531A1 (en) Automatic pipeline stage insertion
JP2008065382A (ja) Lsiの消費電力算出方法及びその算出プログラム
US7657851B2 (en) Device, system, and method for correction of integrated circuit design
US7761277B2 (en) System and method for improved logic simulation using a negative unknown boolean state
US7962877B2 (en) Port assignment in hierarchical designs by abstracting macro logic
US20120278774A1 (en) Model checking in state transition machine verification
Man et al. Comparison of optimized multi-stage clock gating with structural gating approach
US10754759B1 (en) Breakpointing circuitry that evaluates breakpoint conditions while running clock to target circuit
US8229725B1 (en) Method and apparatus for modeling processor-based circuit models
US7657689B1 (en) Methods and apparatus for handling reset events in a bus bridge

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120626

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120710

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120807

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150817

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees