JP6127409B2 - クロック・ネットワーク・メタ合成のためのシステムおよび方法 - Google Patents

クロック・ネットワーク・メタ合成のためのシステムおよび方法 Download PDF

Info

Publication number
JP6127409B2
JP6127409B2 JP2012181928A JP2012181928A JP6127409B2 JP 6127409 B2 JP6127409 B2 JP 6127409B2 JP 2012181928 A JP2012181928 A JP 2012181928A JP 2012181928 A JP2012181928 A JP 2012181928A JP 6127409 B2 JP6127409 B2 JP 6127409B2
Authority
JP
Japan
Prior art keywords
buffer
clock network
clock
topology
fanout
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.)
Active
Application number
JP2012181928A
Other languages
English (en)
Other versions
JP2013045459A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2013045459A publication Critical patent/JP2013045459A/ja
Application granted granted Critical
Publication of JP6127409B2 publication Critical patent/JP6127409B2/ja
Active 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/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
    • 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

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

本開示は概括的には集積回路に関し、より詳細には集積回路のクロック分配ネットワークの設計および構築のための技法に関する。
マイクロプロセッサのような同期デジタル集積回路(IC: integrated circuit)においてエンドポイント(たとえばフリップフロップ)にクロックを分配するためにクロックツリーが使われる。同期設計は典型的には、あらゆるエンドポイントが同時にクロックされるか、それらのクロックが互いに対して既知のオフセットをもつことを要求する。エンドポイントにおいてクロックの必要とされる到着時間を達成し損なうと、パフォーマンスが劣化する(サイクル時間が長くなる)またはただちに故障する(レース条件)ことにつながる。
クロック到着時間の同時性を保証するクロック分配ネットワークの設計は困難な課題であり、典型的には特殊目的のソフトウェアを必要とする。しかしながら、特殊目的のソフトウェアは、そのソフトウェア・ツールのデフォルト仕様ファイル(「ツール仕様」)に基づくさまざまな設計上の想定およびアルゴリズムを使うことがあり、これは不満足な結果を生じることがある。したがって、クロック・ネットワーク設計者は、クロック・ネットワークの所望されるクロック到着時間を達成しようとして、ツール仕様における一つまたは複数の設計パラメータを手動で入力および変更することが要求されることがある。しかしながら、適正な結果を達成することは、ソフトウェア・ツールにおける一つまたは複数の入力設計パラメータを変更し、それらの設計パラメータに基づいてソフトウェア・ツールでクロック・ネットワークを生成し、生成されたクロック・ネットワークが設計制約条件を満たすかどうかを判定する多くの異なる反復工程を伴うことがある。試行錯誤式のこの手動プロセスは、わずらわしく、時間がかかることがある。
本開示のいくつかの実施形態によれば、クロック・ネットワークを構築する方法は、クロック・ネットワークについての設計仕様を受け取る段階を含む。本方法はさらに、前記設計仕様に基づいて前記クロック・ネットワークのトポロジーを決定する段階を含む。トポロジーは、前記クロック・ネットワークの複数のレベル、各レベルについてのバッファ型および各レベルについてのバッファ・ファンアウトのうちの少なくとも一つを示す。本方法はさらに、決定されたトポロジーに基づいて前記クロック・ネットワークについての設計パラメータを決定し、前記設計パラメータを含むクロック・ネットワーク合成ツール仕様ファイルを生成することを含む。本方法はまた、前記仕様ファイルを使って、前記クロック・ネットワークが前記決定されたトポロジーを含み、前記クロック・ネットワークがクロック発生器から前記クロック・ネットワークのエンドポイントまでクロック信号を同期的に分配するよう、前記クロック・ネットワークを合成することを含む。
本開示およびその利点のより完全な理解のために、ここで付属の図面とともに参酌される以下の説明を参照する。
本開示に従って構築されるクロック・ネットワークの例を示す図である。 本開示のいくつかの実施形態に基づく、クロック・ネットワークのクロックからエンドポイントへの例示的な経路を示す図である。 本開示に基づく、クロック・ネットワークを設計および/または構築する方法の一つの例を示す流れ図である。 ツリーがクロック源からできるだけ遠くで分割される、例示的なクロック・ネットワークを示す図である。 本開示のいくつかの実施形態に基づく、クロック・ネットワークのトポロジーを決定するための例示的な方法を示す図である。 本開示のいくつかの実施形態に基づく、クロック・ネットワークの設計仕様の一例を示す図である。 本開示のいくつかの実施形態に基づく、ファンアウト範囲および他の設計仕様に基づく、エンドポイントを駆動するバッファの例示的なバッファ構成を示す図である。 aおよびbは、本開示のいくつかの実施形態に基づく、エンドポイントを駆動するバッファの例示的なバッファ構成を示す図である。 a〜cは、本開示のいくつかの実施形態に基づく、エンドポイントを駆動するバッファの他の例示的なバッファ構成を示す図である。
図1aは、本開示に基づいて設計および/または構築されるクロック・ネットワーク100を示している。クロック・ネットワーク100は、マイクロプロセッサのような同期デジタル集積回路(IC)においてエンドポイント104(たとえばフリップフロップ)にクロック102を分配するために使われるクロックツリーを含んでいてもよい。本実施形態では、クロック・ネットワーク100は、各エンドポイント104がクロック102を実質的に同時に受信するよう構成されうる。
クロック・ネットワーク100は、特殊目的のクロック・ネットワーク合成ソフトウェア(「ソフトウェア・ツール」)およびクロック・ネットワーク・メタ合成ソフトウェアツール(「メタ合成ツール」)を使って設計および/または構築されうる。のちにさらに詳細に述べるように、メタ合成ツールは、クロック・ネットワーク100の設計者からクロック・ネットワーク100についての設計仕様を受け取るよう構成されてもよい。受け取った設計仕様に基づいて、メタ合成ツールはクロック・ネットワークのトポロジーを決定してもよい。メタ合成ツールは、クロック・ネットワークのための設計パラメータを決定するためにそのトポロジーを使ってもよい。設計者が所望する設計に従ってソフトウェア・ツールがクロック・ネットワーク100を合成しうるよう、メタ合成ツールは、それらの設計パラメータを含む、ソフトウェア・ツールのための入力仕様ファイル(「ツール仕様ファイル」)を生成してもよい。したがって、所望されるクロック・ネットワークを達成するためにツール仕様ファイルを変更する、わずらわしく、時間がかかる試行錯誤プロセスが軽減または解消されうる。
図1aに戻ると、上記のように、クロック・ネットワーク100は、エンドポイント104によって受信されるべきクロック信号を生成するクロック発生器102を含んでいてもよい。クロック発生器102は、エンドポイント104によって受信されうる振動制御信号を生成するよう構成されたいかなる好適なシステム、装置またはデバイスであってもよい。エンドポイント104は、クロック信号の受信に際して動作またはステップを実行しうるいかなる好適なシステム、装置またはデバイスであってもよい。本実施形態では、エンドポイント104はマイクロプロセッサのフリップフロップを含む。負荷容量などのさまざまな電気的属性のため、クロック・ネットワーク100は、クロック102を各エンドポイント104に分配するために使われる一連のバッファ(たとえばバッファ106、108、110および112)を含んでいてもよい。のちにさらに詳細に述べるように、バッファは、各エンドポイント104が実質的に同時に(すなわち、クロック・ネットワーク100の許容される公差の範囲内に)クロック信号を受信するよう構成されてもよい。
クロック・ネットワーク100のバッファ(たとえばバッファ106、108、110および112)は、クロック発生器102によって生成されたクロック信号をエンドポイント104に分配するために使用されうるいかなる好適なシステム、装置またはデバイスであってもよい。いくつかの事例では、バッファは反転器〔インバーター〕または一連の反転器を有していてもよい。クロック・ネットワーク100のバッファは多様な型であってもよく、多様なサイズを有していてもよい。バッファのサイズは、バッファが大きいほど入力容量が大きいというように、各バッファの入力容量に関係していてもよい。たとえば、バッファ106は比較的小さくてもよく、図1aの「1c」で示されるように1の入力容量を有していてもよい。バッファ108はバッファ106より大きくてもよく、図1aの「3c」で示されるように3の入力容量を有していてもよい。バッファ110はバッファ106、108より大きくてもよく、図1aの「4c」で示されるように4の入力容量を有していてもよい。バッファ112はバッファ110、108、106より大きくてもよく、図1aの「7c」で示されるように7の入力容量を有していてもよい。図1aの「c」は任意の適切な容量の単位(たとえば、ファラド、マイクロファラドなど)を指しうる。
バッファ106、108、110および112は、クロック・ネットワーク100内で、一連のステージおよびレベルとして分配されうる。ステージは、ワイヤを通じて負荷(たとえば別のバッファまたはエンドポイント104)を駆動する駆動ゲート(たとえばバッファ)を指してもよい。それにより、駆動するバッファから負荷にクロック信号が渡されうる。たとえば、クロック・ネットワーク100は、バッファ106がバッファ108を駆動しうるステージ114を含んでいてもよい。クロック・ネットワーク100はまた、バッファ108がバッファ110を駆動しうるステージ116;バッファ110aがバッファ112aおよび112bを駆動しうるステージ118a;バッファ110bがバッファ112cおよび112dを駆動しうるステージ118b;および諸バッファ112がそれぞれ一群のエンドポイント104を駆動しうる諸ステージ120をも含んでいてもよい。いくつかの実施形態では、駆動バッファによって駆動される負荷(たとえば、別のバッファまたはエンドポイント104)はシンクと称されてもよく、駆動バッファはルート〔根〕と称されてもよい。
レベルは、クロック発生器102から同じ距離である、あるステージの一つまたは複数の駆動バッファを指しうる。本実施形態では、クロック・ネットワーク100は、バッファ106を含むレベル122、バッファ108を含むレベル124、諸バッファ110を含むレベル126、諸バッファ112を含むレベル128を含みうる。よって、本実施形態では、各レベルは同じ型の駆動バッファを含んでいてもよい。あるレベルの諸バッファは、互いに同一であってもよく、あるいは同様の属性を有していてもよい。同様の属性を有するバッファは互いの「レプリカ」と称されてもよい。より具体的には、用語ファンアウトを、ドライバが駆動する出力容量(負荷)の、該ドライバの入力容量に対する比として定義すると、同じファンアウト属性をもつ二つのバッファは互いのレプリカと考えてもよく、同じ遅延を示しうる。たとえば、のちにさらに論じるように、バッファのサイズおよび入力容量が、同じであることが必要となりうる、ある特定のレベルについてのバッファの属性であってもよい。というのも、これらがバッファに関連する遅延に影響しうる属性だからである。よって、たとえある特定のレベルの駆動バッファがあらゆる側面において同一でなくても、ある特定のレベルのすべての駆動バッファは同じ入力容量を有していてもよい(たとえばレベル128の諸バッファ112は入力容量7を有していてもよい)。
各レベルにおいて同じバッファ型(たとえば同じファンアウトをもつ諸バッファ)をもつことによって、クロック発生器102から各エンドポイント104への経路は遅延に関して同じとなりうる。よって、クロック発生器102から各エンドポイント104への諸経路は、たとえそれらの経路が物理的に同一でなくても、遅延に関して互いのレプリカとなりうる。たとえば、図1bは、クロック発生器102から各エンドポイント104への例示的な経路を示している。図1bは、クロック発生器102からエンドポイント104への経路がバッファ106、バッファ108、バッファ110およびバッファ112を含むことを示している。この経路は、図1aに見られるように、エンドポイント104に関わりなく、各エンドポイント104について同じであってもよい。
各レベルについてのクロック・ネットワーク100におけるバッファの数、型およびサイズは、クロック・ネットワーク100のバッファについての所望されるファンアウトまたはファンアウト範囲に基づいていてもよい。上述したように、バッファのファンアウトは、バッファ上の全負荷容量の、該バッファの入力容量に対する比であってもよい。ファンアウトは、あるバッファから別のバッファに移るクロック信号が経験する遅延の量を示しうる。したがって、ファンアウトが小さいほど遅延も小さく、ファンアウトが大きいほど遅延も大きい。しかしながら、より小さなファンアウトでは、より多数のバッファおよびレベルが必要とされることがある。したがって、クロック・ネットワーク100のファンアウトまたはファンアウト範囲は、クロック・ネットワーク100の特定の設計仕様を満たすよう、クロック・ネットワーク設計者によって決定されてもよい。さらに、ファンアウトは遅延に関係しているので、クロック発生器102から各エンドポイント104までの遅延が同じであることを保証するよう、クロック・ネットワーク100のある特定のレベルにおける各バッファのファンアウトは同じであってもよい。
バッファの負荷容量は、バッファによって駆動される一つまたは複数のシンク(たとえばバッファおよび/またはエンドポイント)の容量を含んでいてもよい。さらに、バッファの負荷容量は、駆動バッファを負荷に結合する接続(たとえばワイヤ)の任意の寄生容量を含んでいてもよい。たとえば、バッファ106の負荷容量は、バッファ108の容量(3)およびバッファ106をバッファ108に結合するワイヤの容量(1)を含んでいてもよく、バッファ106の負荷容量は4(1+3)となりうる。よって、バッファ106のファンアウトは、バッファ106の負荷容量(4)の、バッファ106の入力容量(1)に対する比であってもよく、バッファ106のファンアウトは4となりうる(4/1=4)。同様に、バッファ108の負荷容量はバッファ110a(4)および110bの容量と、バッファ108をバッファ110に結合するワイヤの容量(それぞれ2)とを合わせたものであってもよい。よって、バッファ108の負荷容量は12(4+4+2+2)となりうる。さらに、バッファ108のファンアウトも4となりうる。というのも、負荷容量(12)を、バッファ108の入力容量(3)で割ると4になるからである(12/3=4)。バッファ110および112のファンアウトは、それらのバッファに関連する負荷および入力容量に基づいて、同様に計算されうる。
上述したように、クロック102から各エンドポイント104までの遅延が同じであることを保証するため、ある特定のレベル内の各バッファのファンアウトは同じであってもよい。たとえば、バッファ110aおよび110bのファンアウトは同じであってもよい(たとえば今の例では4)。それにより、クロック信号は、バッファ112aおよび112bではバッファ110aから、バッファ112cおよび112dではバッファ110bから、同時に受信される。本実施形態では各駆動バッファのファンアウトは同じ(たとえば4)として描かれているが、あるレベルでの駆動バッファのファンアウトが異なるレベルでの駆動バッファのファンアウトとは異なっていてもよいことは理解される。各レベルに関連する諸バッファのファンアウトが同じで、指示されるファンアウト範囲内であればよいのである。
したがって、クロック・ネットワーク100は、各エンドポイント104が、クロック発生器102によって生成されたクロック信号を、実質的に同時に受信するよう構成されてもよい。上述し、また下記でさらに詳細に述べるように、クロック・ネットワーク100は、クロック合成ツールがクロック・ネットワーク100の設計者が構想した設計仕様に従ってクロック・ネットワーク100を合成しうるよう、クロック合成ツールのためのツール仕様ファイルを生成するよう構成されたメタ合成ツールを使って設計および/または構築されてもよい。
本開示の範囲から外れることなく、図1aおよび1bに修正、追加または省略をしてもよい。たとえば、エンドポイント、ステージ、バッファおよび/またはレベルの数は、クロック・ネットワーク100を含みうる集積回路の設計特性に依存して変化してもよい。さらに、バッファおよびワイヤのサイズおよび容量は単に例解のためである。
図2は、本開示に基づく、クロック・ネットワークを設計および/または構築する方法200の一例を示す流れ図である。方法200は、任意の好適なシステム、装置またはデバイスによって実行されうる。本実施形態では、方法200は、プロセッサおよびメモリを含んでいてもよい情報処理システムによって実行されうる。
情報処理システム(IHS: information handling system)は任意の型の情報、諜報またはデータを、ビジネス、科学、制御、娯楽またはその他の目的のために、計算、分類、処理、送信、受信、検索、発生、切り換え、記憶、表示、表出、検出、記録、再現、処理または利用するよう構成された手段または手段の集合を有していてもよい。たとえば、情報処理システムはパーソナル・コンピュータであってもよい。
情報処理システムのプロセッサは、プログラム命令を解釈および/または実行するおよび/またはデータを処理するよう構成された任意の好適なシステム、装置またはデバイスであってもよく、限定することなく、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)またはプログラム命令を解釈および/または実行するおよび/またはデータを処理するよう構成された他の任意のデジタルもしくはアナログ回路を含みうる。本実施形態では、情報処理システムのプロセッサが方法200の各ステップを実行してもよい。
メモリは、プログラム命令またはデータをある時間期間にわたって保持するよう構成されたいかなるシステム、デバイスまたは装置(たとえばコンピュータ可読媒体)であってもよい。メモリはランダム・アクセス・メモリ(RAM)、電気的に消去可能なプログラム可能型読み出し専用メモリ(EEPROM)、PCMCIAカード、フラッシュ・メモリ、磁気記憶、光磁気記憶または電源投入後それぞれのプロセッサがオフにされるまでデータを保持する揮発性もしくは不揮発性メモリの任意の好適な選択および/またはアレイを含んでいてもよい。本実施形態では、メモリは前記プロセッサに通信上結合されてもよく、方法200を実行するための命令を含んでいてもよい。たとえば、メモリは、クロック・ネットワーク・メタ合成ソフトウェア・ツールおよびクロック・ネットワーク合成ソフトウェア・ツールを実行するための命令を含んでいてもよい。よって、プロセッサは、該メモリ上の命令にアクセスし、方法200を実行するよう構成されてもよい。
方法200が始まり、ステップ202において、メタ合成ツールがクロック・ネットワークの設計者から設計仕様を受け取ってもよい。設計仕様は、一つまたは複数のクロック・ネットワークによって駆動されうるエンドポイントを含んでいてもよい。それらのエンドポイントは、特定のクロック・ネットワークに関連付けられてもよい特定のクロック・ドメインに関連付けられた諸グループにおいて受け取られてもよい。設計仕様は、クロック・ドメインに関連付けられた各クロック・ネットワークに含まれていてもよい種々のバッファ型(たとえば、入力容量によって示されるバッファ・サイズ)をも含んでいてもよい。さらに、設計仕様は、各クロック・ドメインについての最大ファンアウトおよび最小ファンアウトを含んでいてもよい。それにより、各クロック・ネットワークについてのファンアウト範囲が決定されうる。ファンアウト範囲は、各クロック・ネットワークに関連する各クロック・ドメインのさまざまなタイミングおよび設計上の制約条件に基づいていてもよい。
ステップ204では、メタ合成ツールが、ステップ202で受け取った設計仕様に基づいて各クロック・ドメインについて各クロック・ネットワークのトポロジーを決定してもよい。図4の方法400に関してより詳細に述べるように、メタ合成ツールは前記トポロジーに基づいて一連の設計パラメータを決定してもよい。それらの設計パラメータは、合成ツールが決定されたトポロジーに従ってクロック・ネットワークを合成するよう、合成ツールによって使用されうるツール仕様ファイルに含められてもよい。
たとえば、トポロジーは、すべてのレベルの各ステージ(たとえば駆動バッファ)のファンアウトがファンアウト範囲内であり、かつ特定のレベル内の各バッファについてのファンアウトが同じでありうるよう決定されてもよい。さらに、トポロジーは、クロック源からすべてのエンドポイントへの経路が、同数のステージまたはレベルを通過するという点で同じでありうるよう、決定されてもよい。さらに、決定されたトポロジーは、クロック信号が、各エンドポイントに到達する際に、同じ型のバッファ(たとえば同じサイズの諸バッファ)を通過しうるようなものであってもよい。上記のように、各エンドポイントについて同一の経路の例は、図1aおよび1bに示されている。指定されたトポロジーは、ステップ202において受け取った、バッファのあらかじめ定義された集合内のバッファのみを含んでいてもよい。
さらに、トポロジーは、ツリーがクロック源からできるだけ遠くで分枝に分割されるよう、決定されてもよい。図3は、ツリーがクロック源からできるだけ遠くで分割される例示的なクロック・ネットワーク300を示している。クロック・ネットワーク300はバッファ304、306、308および310ならびにエンドポイント312を含む。この個別的な例では、クロック・ネットワーク300のツリーの分割は、バッファ310がエンドポイント312を駆動するまで生起しなくてもよい。クロック・ネットワークの他の実施形態では、分割は、図1aのクロック・ネットワーク100におけるバッファ108でなど、より早期に生起してもよい。
図2に戻ると、ステップ204のメタ合成の間に決定されたトポロジーは、クロック源とエンドポイントとの間の、ファンアウト範囲に従うステージの最小数が得られるようなものであってもよい。最後に、バッファが単一の反転器を含む事例では、トポロジーは、クロック源からエンドポイントへの任意の経路に関連付けられた偶数個のステージが得られるよう決定されてもよい。反転器がクロック信号を反転させるため、バッファが反転器を有する場合には、エンドポイント104で受信されるクロック信号がクロック源で生成されるクロック信号と比較して反転していないよう、偶数個のステージが望ましいことがある。
ステップ205では、メタ合成ツールは、クロック・ネットワークの決定されたトポロジーに基づいて設計パラメータを決定してもよい。設計パラメータは、クロック・ネットワークに含まれるエンドポイントの数を示していてもよい。さらに、設計パラメータは、クロック・ネットワークについてのレベルの数および各レベルについてのステージ(たとえば駆動バッファ)の数を示していてもよい。設計パラメータはまた、各バッファについての所望されるファンアウトおよび各レベルで使われるべきバッファの型を示していてもよい。
ステップ204および205で実行されたメタ合成に続いて、メタ合成ツールはステップ206において、ステップ205で決定された設計パラメータを含むツール仕様ファイルを生成してもよい。ツール仕様ファイルは、クロック・ネットワーク合成ツールによって、クロック・ネットワークを合成するための入力として読まれることのできるいかなる好適なファイルであってもよい。
ステップ208において、IHSのクロック合成ツールは、ステップ206で生成されたツール仕様ファイルに基づいてクロック・ネットワークを合成してもよい。クロック合成ツールは、クロック・ネットワークを合成するよう構成されたいかなる好適なプログラムを含んでいてもよい。仕様ファイルに含まれる設計パラメータは、ステップ205で決定されたトポロジーをもち、よってクロック・ネットワークについての設計者のビジョンに従うクロック・ネットワークを生成するために、合成ツールによって使用されてもよい。ステップ208に続いて、方法200は終了してもよい。
したがって、方法200は、クロック・ネットワーク合成ツールに対する一意的なコントロールを設計者に与えることによって所望されるクロック・ネットワークを生成するために使用されてもよい。メタ合成プロセスを含めることによって、方法200は、クロック・ネットワーク合成を二つのフェーズに分離しうる。メタ合成フェーズは、設計者にとってクロック・ネットワークのより高いレベルの抽象化(たとえば、ファンアウト範囲、バッファ型、エンドポイントの数など)を提供し、該より高いレベルの設計仕様に基づいてツール仕様ファイルを生成する。次いで仕様ファイルは、低レベルの実装を得るために合成ツールによって使用されうる。よって、この分離は、設計者が、クロック・ネットワークのより高いレベルの設計上の諸側面に集中することを許容し、従来のクロック・ネットワーク合成ツールに関連する限界を回避するすべを提供する。
本開示の範囲から外れることなく、図2に対して修正、追加または省略がなしうる。たとえば、図4に関してより詳細に述べるように、ステップ204および205のメタ合成は、クロック・ネットワークのトポロジーおよび設計パラメータを決定するための複数のステップを含んでいてもよい。さらに、いくつかの実施形態では、一つのIHSがメタ合成を実行する(たとえば、トポロジーを決定し、ツール仕様ファイルを生成する)よう構成されていてもよく、一方、クロック合成ツールが記憶されている別のIHSがツール仕様ファイルを受け取って、それに従ってクロック・ネットワークを合成してもよい。
図4は、本開示のいくつかの実施形態に基づく、クロック・ネットワークのトポロジーを決定するための例示的な方法400を示している。方法400は、情報処理システムのメモリに埋め込まれた命令を含むメタ合成ツールによって実行されてもよい。該IHSは、該情報処理システムの前記メモリに埋め込まれた前記メタ合成ツール命令を実行するよう構成されたプロセッサを含んでいてもよい。
方法400が始まり、ステップ402において、メタ合成ツールはクロック・ネットワーク設計者から、該設計者によって設計されるクロック・ネットワークに含められてもよいバッファ型(たとえば、入力容量によって示されるバッファ・サイズ)のリストを受け取ってもよい。よって、クロック・ネットワークのバッファは、ステップ402において設計者から受け取ったあらかじめ定義された集合に限定されてもよい。ステップ404では、メタ合成ツールは、クロック・ネットワークについてのファンアウト範囲を受け取ってもよい。上述したように、ファンアウト範囲は、クロック・ネットワークの各ステージについての最小ファンアウトおよび最大ファンアウトを含んでいてもよい。さらに、ステップ406では、メタ合成ツールは、クロック・ネットワークのクロック・ドメイン内になりうる、よってクロック・ネットワークによって分配されるクロックによって駆動されうるエンドポイント(たとえばフリップフロップ)のリストを受け取ってもよい。よって、ステップ402ないし406では、メタ合成ツールは、図2の方法200のステップ202と同様に、クロック・ネットワークについての設計仕様を受け取ってもよい。特定の順序で開示されているが、ステップ402ないし406は異なる順序で、同時に、またはその任意の組み合わせで実行されてもよい。
ステップ408では、メタ合成ツールは、ステップ406で受け取られるエンドポイントを、一つまたは複数のバッファによって駆動されるべきシンクとしてラベル付けしてもよい。ステップ410では、メタ合成ツールは、それらのシンクを駆動するバッファのあるレベルについて、ステップ402で受け取ったバッファ型のリストに含まれる各バッファ型についてシンクを駆動するために必要とされうるバッファの構成を決定してもよい。各バッファ型について決定されたバッファ構成は、ステップ404で受け取られたファンアウト範囲および他の設計仕様(たとえばエンドポイント510の数、エンドポイント510の入力容量、ワイヤ512の容量など)に基づいていてもよい。バッファ構成はまた、クロック・ネットワークの他の所望される属性にも基づいていてもよい。たとえば、レベル内の各バッファは、クロック・ネットワークの同期的な性質を保証するよう、同じファンアウトをもつ必要があってもよい。したがって、各バッファ型についての構成は、各バッファがファンアウト範囲内の同じファンアウトをもつよう決定されてもよい。同じファンアウトをもたないおよび/またはファンアウト範囲内でない構成は破棄および/または無視されてもよい。
図5ないし図8は、バッファのリストの各バッファ型について複数のシンクを駆動するバッファの構成を決定するためにメタ合成ツールによって生成および/または解析されうる例示的なバッファ構成を示している。たとえば、図5は、図4の方法400のステップ402〜406で受領される設計仕様の例を示している。図5は、メタ合成ツールによって受領されるバッファのリストに含まれうるバッファ型のバッファ集合501を示している。今の例では、バッファ集合501は、入力容量1をもつバッファ型に一致しうるバッファ502、入力容量2をもつバッファ型に一致しうるバッファ504および入力容量3をもつバッファ型に一致しうるバッファ506を含んでいてもよい。
図5はまた、設計されているクロック・ネットワークを通じて分配されるクロックによって駆動されうるエンドポイント510のエンドポイント集合508をも示している。今の例では、エンドポイント集合508は、それぞれ入力容量2を含みうるエンドポイント510aないし510hを含んでいてもよい。さらに、今の例では、各エンドポイント510は、該エンドポイント510をバッファに結合しうる、関連するワイヤ512に結合されていてもよい。今の例では、各ワイヤ512は容量1をもっていてもよい。したがって、この例では、各エンドポイント510およびワイヤ512がエンドポイント510を駆動するバッファ上に誘起しうる負荷容量は4となりうる。さらに、(図4の方法400のステップ404でクロック・ネットワーク設計者によって示される)クロック・ネットワークの最大(「max」)ファンアウトは5であってもよく、クロック・ネットワークについての最小(「min」)ファンアウトは3であってもよく、そのためクロック・ネットワークについてのファンアウト範囲は3から5までの間であってもよい。
図6ないし図8に関してさらに詳細に示されるように、メタ合成ツールは、エンドポイントをシンクとしてラベル付けしてもよく、バッファ集合501の各バッファ型(たとえばバッファ型502、バッファ型504およびバッファ型506)について、諸エンドポイント510を駆動する諸バッファの構成を、最大ファンアウトおよび最小ファンアウトならびに指示される他の設計仕様(たとえば、エンドポイント510の数、エンドポイント510の入力容量、ワイヤ512の容量など)に基づいて決定してもよい。よって、下記でさらに述べるように、メタ合成ツールは、バッファ集合501の各バッファについて、クロック・ネットワークの、エンドポイント510を駆動するレベルについてバッファ構成を決定してもよい。
たとえば、図6は、ファンアウト範囲および他の設計仕様(たとえば、エンドポイント510の数、エンドポイント510の入力容量、ワイヤ512の容量など)に基づく、エンドポイント510を駆動するバッファ502の例示的なバッファ構成600を示している。ワイヤ512を介してエンドポイント510に結合されたバッファ502のファンアウトは、バッファ302の負荷容量(たとえばエンドポイント510の容量をワイヤ512の容量と組み合わせたもの)の、バッファ502の入力容量に対する比が3であるため、3であってもよい。さらに、二本のワイヤ512を介して二つのエンドポイント510に結合されたバッファ502のファンアウトは6であってもよい。上述したように、今の例における許容されるファンアウト範囲は3から5までの間であってもよい。したがって、今の例において、一つのエンドポイント510を駆動するバッファ502はファンアウト範囲内でありうるが、二つ以上のエンドポイント510を駆動するバッファ502はファンアウト範囲外のファンアウトを生じることがありうる。結果として、メタ合成ツールは、各バッファ502が個別のエンドポイントを駆動しているバッファ構成600が、エンドポイント510を駆動するバッファ502の、今の例のファンアウト範囲に従う唯一の構成であると判定してもよい。各バッファ502についてのファンアウトは同じになりうる。したがって、メタ合成ツールは、バッファ構成600が、設計仕様に従う構成であり、考慮されてもよいと判定してもよい。メタ合成ツールは同様に、エンドポイント510を駆動するバッファ504およびエンドポイント510を駆動するバッファ506についてのバッファ構成を決定しうる。
図7のaおよびbは、エンドポイント510を駆動するバッファ504のバッファ構成700および702をそれぞれ示している。図7のaは、各バッファ504が二つのエンドポイント510を駆動し、各バッファ504のファンアウトが3であるバッファ構成700を示している。上述したように、この特定の例でのファンアウト範囲は3ないし5であり、したがって、各バッファ504のファンアウトはファンアウト範囲内である。さらに、バッファ構成700では、各バッファ504は同じファンアウトをもち、そのため諸エンドポイント510に分配されるクロック信号の遅延は同じになりうる。よって、メタ合成ツールはバッファ504についてのバッファ構成700が設計仕様に従い、考慮されてもよい構成であることを判定できる。
図7のbは、バッファ504aおよび504bがそれぞれ三つのエンドポイント510(バッファ504aについてはエンドポイント510a〜510c、バッファ504bについてはエンドポイント510d〜510f)を駆動し、指示されたファンアウト範囲内であるそれぞれ4.5のファンアウトをもつバッファ構成702を示している。さらに、バッファ構成702は、エンドポイント510gおよび510hに結合された、やはり指示されたファンアウト範囲内のファンアウト3をもつバッファ504cを含んでいてもよい。しかしながら、バッファ構成702における各バッファ504のファンアウトはファンアウト範囲内であるが、メタ合成ツールは、バッファ構成702を破棄または無視してもよい。バッファ504aおよび504bのファンアウトがバッファ504cのファンアウトと同じでないことがあるからである。
図8のa、b、cは、エンドポイント510を駆動するバッファ506のバッファ構成800、802および804をそれぞれ示している。図8のaは、バッファ504aおよび504bがそれぞれエンドポイント510aないし510cおよび510dないし510fを駆動するバッファ構成800を示している。さらに、バッファ構成800のバッファ506cは残りのエンドポイント510gおよび510hを駆動してもよい。バッファ構成800におけるバッファ506aおよび506bのファンアウトは3であってもよく、よって今の例の3ないし5というファンアウト範囲内でありうる。しかしながら、バッファ506cのファンアウトは2となりえ、これは今の例の3ないし5というファンアウト範囲外でありうる。さらに、各バッファ504のファンアウトは同じでないことがありうる。したがって、メタ合成ツールはバッファ構成800を無視および/または破棄してもよい。
図8のbは、エンドポイント510aないし510dを駆動するバッファ506aおよびエンドポイント510eないし510hを駆動するバッファ506bを含むバッファ構成802を示している。各バッファ506aおよび506bのファンアウトは4であってもよく、これは今の例についての3ないし5というファンアウト範囲内である。ファンアウトがファンアウト範囲内にあり、バッファ構成802の両方のバッファ306aおよび306bについて同じであるため、バッファ構成802はクロック・ネットワークの設計制約条件を満たすことができ、メタ合成ツールによって、設計仕様に従う、バッファ506のバッファ構成と考えられてもよい。
図8のcは、エンドポイント510aないし510eを駆動するバッファ506aおよびエンドポイント510fないし510hを駆動するバッファ506bを含むバッファ構成804を示している。バッファ構成804では、バッファ506aのファンアウトは5であってもよく、これはこの特定の例のファンアウト範囲内でありえ、バッファ506bのファンアウトは3であってもよく、これもこの特定の例のファンアウト範囲内でありえる。しかしながら、バッファ構成804についてはファンアウトが同じでないため、メタ合成ツールは、バッファ構成804を無視および/または破棄してもよい。
したがって、図5〜図8に示されるように、メタ合成ツールは、各バッファ型について、設計仕様に従う、エンドポイントを駆動するバッファ構成(たとえば、バッファ502についてのバッファ構成600、バッファ504についてのバッファ構成700およびバッファ506についてのバッファ構成802)を決定しうる。
本開示の範囲から外れることなく、図5〜図8に修正、追加または省略をしてもよい。バッファおよびエンドポイントの特定の数および型、特定のファンアウト範囲などは、単にいかにしてメタ合成ツールが設計上の考慮に従うバッファ構成を判別しうるかを例解するための例として使われている。クロック・ネットワークの個別的な設計に基づいて、本開示の範囲内で多くの変形がありうることは理解されるものである。
図4に戻ると、メタ合成ツールがバッファのリストにおいて示される各バッファ型についてバッファ構成を決定しうるステップ412に続いて、ステップ414では、メタ合成ツールは、ステップ412で決定されたバッファ構成に基づいて現在解析されているレベルについてバッファ構成を選択してもよい。いくつかの実施形態では、メタ合成ツールは、最小数のステージ(たとえば駆動バッファ)をもつバッファ構成を選択してもよい。最小数のステージをもつ構成を選択することによって、メタ合成ツールはクロック・ネットワークのレベルおよび/またはステージの数を、設計上の制約条件に従う最小になるよう(たとえば、設計者によって指示されるバッファ型およびファンアウトについて最小になるよう)、減らしうる。さらに、上記のように、各構成は同じバッファ型を含んでいてもよく、したがって、クロック・ネットワークのそのレベルについてある構成を選択することによって、メタ合成ツールは、そのレベルについてのバッファ型が同じになることを保証してもよい。さらに、上記で説明したように、各バッファのファンアウトも同じであってもよい。
たとえば、図5ないし図8に戻ると、メタ合成ツールは、図6、図7のa、図8のbのバッファ構成600、700および802のうちのどれがエンドポイント510を駆動するレベルとして使用されうるかを決定してもよい。今の例では、メタ合成ツールは、最小数のステージをもつバッファ構成を選択してもよい。図6、図7のaおよび図8のbにおいてそれぞれ示したように、バッファ構成600は8個のステージを含んでいてもよく、バッファ構成700は4個のステージを含んでいてもよく、バッファ構成802は2個のステージを含んでいてもよい。よって、メタ合成ツールはエンドポイント510を駆動するそのレベルについてのバッファ構成802を選択してもよい。したがって、メタ合成ツールは、エンドポイント510を駆動するバッファに関連するクロック・ネットワークのレベルについて、トポロジー(たとえばバッファ構成802)を決定しうる。
ステップ414に続いて、方法400はステップ415に進んでもよい。ステップ415において、メタ合成ツールは、ステップ414で選択されたトポロジー(たとえばバッファ構成)に基づいて、解析されているクロック・ネットワークの現在レベルについて設計パラメータを決定してもよい。たとえば、上記の例で選択されたバッファ構成802に関しては、メタ合成ツールは、クロック・ネットワークがそれぞれ容量2をもつ8個のエンドポイント510を含むことを示す、その特定のレベルについての設計パラメータを決定してもよい。設計パラメータは、エンドポイント510が入力容量3をもつ二つのバッファ506によって駆動されうること、それら二つのバッファ506がファンアウト4をもつことをも指示してもよい。
ステップ415に続いて、メタ合成ツールは、現在解析されているレベルにおけるステージの数が1に等しいかどうかを判定してもよい。ステージの数が1より多ければ、方法400はステップ418に進んで、メタ合成ツールはたった今解析したステージの諸バッファをシンクとラベル付けしてもよい。ステップ418に続いて、方法400はステップ410〜416に戻ってもよく、ここで、今やシンクとラベル付けされたバッファを駆動するためのバッファ構成が選択されてもよい。まずエンドポイントに基づいてバッファ構成を生成し、それらのエンドポイントを駆動するバッファを駆動するためのバッファ構成を決定するという具合に後ろ向きに進んで、最後にクロック発生器に到達することにより、そして特定のレベルについては最小数のバッファを使うことにより、方法400は、クロック・ネットワークが、該クロック・ネットワークのクロック発生器からできるだけ遠くで分割されることを保証しうる。
たとえば、図5〜図8の例では、バッファ構成802が、エンドポイント510を駆動するレベルについての所望されるトポロジーとして選択されうる。バッファ構成802におけるステージ(たとえばバッファ506)の数は2であってもよく、その結果、1より大きい。よって、メタ合成ツールは、バッファ506をシンクとしてラベル付けしてもよく、次いで、バッファ構成802を決定し選択するために図5〜図8において上述したのと同様の仕方でバッファ506を駆動しうるバッファ構成を決定してもよい。
上述したように、ステップ416において当該レベルにおけるステージの数が1に等しい場合、方法400はステップ420に進んでもよい。今の例では、ステップ420では、メタ合成ツールはクロック・ネットワークにおいて偶数個のレベルがあるかどうかを判定してもよい。偶数個のレベルがあれば、方法400はステップ422に進んでもよく、そうでなければ、別のレベルが加えられるよう、方法400はステップ418および410ないし416に戻ってもよい。ステップ420は、バッファが単一の反転器を含む実施形態において、エンドポイントによって受信されるクロック信号が判定されないことを保証するよう使用されてもよい。奇数個の反転器は反転された信号を生成するのに対し、偶数個の反転器は反転された信号をもたないからである。バッファが直列の二つの反転器を有する実施形態では、クロック信号の反転が起こらないことがありうるので、ステップ420は不要であることがある。
クロック・ネットワークにおけるレベルが偶数個である場合、方法400はステップ422に進んでもよい。ここで、メタ合成ツールは、上記で決定されたトポロジーおよび諸レベルの設計パラメータに基づいてクロック・ネットワークのための設計パラメータを決定してもよい。たとえば、メタ合成ツールは、クロック・ネットワークのレベルの数、各レベルについてのステージの数、各レベルおよびステージについて使用されるバッファ、各バッファのファンアウトなどを含む設計パラメータを決定するために、各レベルについて決定されたバッファ構成を解析してもよい。
ステップ424では、メタ合成ツールは合成ツールのための仕様ファイルを生成してもよい。仕様ファイルは、ステップ422に関して上記した設計パラメータを含む。仕様ファイルは、合成ツールが決定されたトポロジーに従ってクロック・ネットワークを合成するよう、設計パラメータを含んでいてもよい。さらに、上述したように、トポロジーは、クロック・ネットワーク設計者から受け取られる特定の設計パラメータに基づいて決定されてもよい。したがって、メタ合成ツールは、設計者によって構想されるクロック・ネットワークを生じるツール仕様ファイルを生成することによって、クロック・ネットワークの設計および構築に対する設計者のコントロールを容易にしうる。
本開示の範囲から外れることなく、方法400に修正、追加または省略をしてもよい。ステップの順序は記載される順序と異なっていてもよく、複数のステップが同時に実行されてもよいし、ステップが追加されてもよいし、および/またはステップが除去されてもよい。たとえば、いくつかの実施形態では、個々のレベルについて設計パラメータが決定されるステップ415は、クロック・ネットワーク全体についての設計パラメータが決定されうるステップ422との関連で実行されてもよい。
本開示はいくつかの実施形態をもって記述してきたが、無数の変化、変形、変更、変換および修正が当業者には想起されうる。本開示は付属の請求項の範囲内にはいるそのような変化、変形、変更、変換および修正を包含することを意図されている。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
クロック・ネットワークを構築する方法であって:
クロック・ネットワークについての設計仕様を受け取る段階と;
前記設計仕様に基づいて前記クロック・ネットワークのトポロジーを決定する段階であって、前記トポロジーは、前記クロック・ネットワークの複数のレベル、各レベルについてのバッファ型および各レベルについてのバッファ・ファンアウトのうちの少なくとも一つを示す、段階と;
決定されたトポロジーに基づいて前記クロック・ネットワークについての設計パラメータを決定する段階と;
前記設計パラメータを含むクロック・ネットワーク合成ツール仕様ファイルを生成する段階と;
前記仕様ファイルを使って、前記クロック・ネットワークが前記決定されたトポロジーを含み、前記クロック・ネットワークが前記クロック・ネットワークのクロック発生器からエンドポイントまでクロック信号を同期的に分配するよう、前記クロック・ネットワークを合成する段階とを含む、
方法。
(付記2)
前記設計仕様が、前記クロック・ネットワークのファンアウト範囲、前記クロック・ネットワークについてのバッファ型の集合および前記クロック・ネットワークについてのエンドポイントの集合のうちの少なくとも一つを含む、付記1記載の方法。
(付記3)
前記トポロジーがさらに、特定のレベルに含まれる第一のバッファのバッファ型がその特定のレベルに含まれる第二のバッファのバッファ型とほぼ同じであることを示す、付記1記載の方法。
(付記4)
前記トポロジーがさらに、特定のレベルに含まれる第一のバッファのバッファ・ファンアウトがその特定のレベルに含まれる第二のバッファのバッファ・ファンアウトとほぼ同じであることを示す、付記1記載の方法。
(付記5)
前記トポロジーがさらに、前記クロック・ネットワークの前記クロック発生器から各エンドポイントまでの、互いのレプリカである経路を示す、付記1記載の方法。
(付記6)
前記トポロジーがさらに、前記クロック・ネットワークの偶数個のレベルを示す、付記1記載の方法。
(付記7)
前記バッファ型が、前記設計仕様において示されるバッファ型のあらかじめ定義された集合に制約される、付記1記載の方法。
(付記8)
前記トポロジーを決定する段階がさらに、前記設計仕様に基づいて前記クロック・ネットワークの各レベルについてバッファの構成を決定することを含む、付記1記載の方法。
(付記9)
前記設計パラメータが、前記トポロジーによって示されるところの前記クロック・ネットワークの前記複数のレベル、各レベルについてのバッファ型および各レベルに含まれるバッファについてのバッファ・ファンアウトのうちの少なくとも一つを含む、付記1記載の方法。
(付記10)
前記トポロジーが、前記設計仕様によって許容される限り前記クロック信号から遠いところで分割されたクロックツリーを含む、付記1記載の方法。
(付記11)
コンピュータ可読媒体および該コンピュータ可読媒体上に担持される、プロセッサによって読み取り可能なコンピュータ実行可能命令とを有する製造物であって、前記命令は、読み取られ実行されたとき、前記プロセッサに:
クロック・ネットワークについての設計仕様を受け取る段階と;
前記設計仕様に基づいて前記クロック・ネットワークのトポロジーを決定する段階であって、前記トポロジーは、前記クロック・ネットワークの複数のレベル、各レベルについてのバッファ型および各レベルについてのバッファ・ファンアウトのうちの少なくとも一つを示す、段階と;
決定されたトポロジーに基づいて前記クロック・ネットワークについての設計パラメータを決定する段階と;
前記設計パラメータを含むクロック・ネットワーク合成ツール仕様ファイルを生成する段階とを実行させるものであり、前記仕様ファイルは、クロック・ネットワーク合成ツールが、前記仕様ファイルを使って、前記決定されたトポロジーを含むよう前記クロック・ネットワークを合成し、前記クロック・ネットワークが前記クロック・ネットワークのクロック発生器からエンドポイントまでクロック信号を同期的に分配するよう構成される、
製造物。
(付記12)
前記設計仕様が、前記クロック・ネットワークのファンアウト範囲、前記クロック・ネットワークについてのバッファ型の集合および前記クロック・ネットワークについてのエンドポイントの集合のうちの少なくとも一つを含む、付記11記載の製造物。
(付記13)
前記トポロジーがさらに、特定のレベルに含まれる第一のバッファのバッファ型がその特定のレベルに含まれる第二のバッファのバッファ型とほぼ同じであることを示す、付記11記載の製造物。
(付記14)
前記トポロジーがさらに、特定のレベルに含まれる第一のバッファのバッファ・ファンアウトがその特定のレベルに含まれる第二のバッファのバッファ・ファンアウトとほぼ同じであることを示す、付記11記載の製造物。
(付記15)
前記トポロジーがさらに、前記クロック・ネットワークの前記クロック発生器から各エンドポイントまでの、互いのレプリカである経路を示す、付記11記載の製造物。
(付記16)
前記トポロジーがさらに、前記クロック・ネットワークの偶数個のレベルを示す、付記11記載の製造物。
(付記17)
前記バッファ型が、前記設計仕様において示されるバッファ型のあらかじめ定義された集合に制約される、付記11記載の製造物。
(付記18)
前記プロセッサがさらに、前記設計仕様に基づいて前記クロック・ネットワークの各レベルについてバッファの構成を決定することによって前記トポロジーを決定するようにされる、付記11記載の製造物。
(付記19)
前記設計パラメータが、前記トポロジーによって示されるところの前記クロック・ネットワークの前記複数のレベル、各レベルについてのバッファ型および各レベルに含まれるバッファについてのファンアウトのうちの少なくとも一つを含む、付記11記載の製造物。
(付記20)
前記トポロジーが、前記設計仕様によって許容される限り前記クロック信号から遠いところで分割されたクロックツリーを含む、付記11記載の製造物。
100 クロック・ネットワーク
102 クロック
104 エンドポイント
106、108、110、112 バッファ
114、116、118、120 ステージ
122、124、126、128 レベル
200 クロック・ネットワークを設計および/または構築する方法
202 設計仕様を受け取る
204 トポロジーを決定
205 設計パラメータを決定
206 ツール仕様を生成
208 クロック・ネットワークを合成
300 クロック・ネットワーク
302 クロック
304、306、308、310 バッファ
312 エンドポイント
400 クロック・ネットワークのトポロジーを決定する方法
402 バッファのリストを受け取る
404 ファンアウト範囲を受け取る
406 エンドポイントのリストを受け取る
408 エンドポイントをシンクとしてラベル付け
410 リスト内の各バッファ型について、シンクを駆動するためのバッファの構成を決定
412 どのバッファ型が設計上の制約条件に従うかを決定
414 レベルのトポロジーを決定
415 レベルについて設計パラメータを決定
416 レベル内のステージ数≧1
418 レベルについてのバッファを「シンク」とラベル付け
420 偶数個のレベル?
422 クロック・ネットワークのための設計パラメータを決定
424 ツール仕様ファイルを生成
501 バッファのリストに含まれうるバッファ型のバッファ集合
502、504、506 バッファ
508 駆動されうるエンドポイントのエンドポイント集合
510 エンドポイント
512 ワイヤ
600 エンドポイント510を駆動するバッファ502のバッファ構成
700 エンドポイント510を駆動するバッファ504のバッファ構成
720 エンドポイント510を駆動するバッファ504のバッファ構成
800 エンドポイント510を駆動するバッファ506のバッファ構成
802 エンドポイント510を駆動するバッファ506のバッファ構成
804 エンドポイント510を駆動するバッファ506のバッファ構成

Claims (20)

  1. 情報処理システムがクロック・ネットワークを構築する方法であって、情報処理システムのプロセッサが:
    クロック・ネットワークについての設計仕様を受け取る段階であって、前記設計仕様は少なくとも前記クロック・ネットワークについてのバッファ型の集合と、前記クロック・ネットワークのファンアウト範囲とを含み、前記バッファ型はバッファの入力容量を示し、前記ファンアウト範囲は最大ファンアウトおよび最小ファンアウトを含む、段階と;
    前記設計仕様に基づいて前記クロック・ネットワークのトポロジーを決定する段階であって、前記トポロジーは少なくとも、前記バッファ型の集合から選択される、前記クロック・ネットワークの複数のレベルのうちの各レベルについてのバッファ型を示す、段階と;
    決定されたトポロジーに基づいて前記クロック・ネットワークについての設計パラメータを決定する段階と;
    前記設計パラメータを含むクロック・ネットワーク合成ツール仕様ファイルを生成する段階と;
    前記仕様ファイルを使って、前記クロック・ネットワークが前記決定されたトポロジーを含み、前記クロック・ネットワークが前記クロック・ネットワークのクロック発生器からエンドポイントまでクロック信号を同期的に分配するよう、前記クロック・ネットワークを合成する段階とを実行する、
    方法。
  2. 前記設計仕様がさらに、前記クロック・ネットワークについてのエンドポイントの集合のうちの少なくとも一つを含む、請求項1記載の方法。
  3. 前記トポロジーがさらに、特定のレベルに含まれる第一のバッファのバッファ型がその特定のレベルに含まれる第二のバッファのバッファ型と同じであることを示す、請求項1記載の方法。
  4. 前記トポロジーがさらに、特定のレベルに含まれる第一のバッファのバッファ・ファンアウトがその特定のレベルに含まれる第二のバッファのバッファ・ファンアウトと同じであることを示す、請求項1記載の方法。
  5. 前記トポロジーがさらに、前記クロック・ネットワークの前記クロック発生器から各エンドポイントまでの、互いのレプリカである経路を示す、請求項1記載の方法。
  6. 前記トポロジーがさらに、前記クロック・ネットワークの偶数個のレベルを示す、請求項1記載の方法。
  7. 前記トポロジーはさらに前記クロック・ネットワークの各レベルについてのバッファ・ファンアウトを示す、請求項1記載の方法。
  8. 前記トポロジーを決定する段階がさらに、前記設計仕様に基づいて前記クロック・ネットワークの各レベルについてバッファの構成を決定することを含む、請求項1記載の方法。
  9. 前記設計パラメータが、前記トポロジーによって示されるところの前記クロック・ネットワークの前記複数のレベル、各レベルについてのバッファ型および各レベルに含まれるバッファについてのバッファ・ファンアウトのうちの少なくとも一つを含む、請求項1記載の方法。
  10. 前記トポロジーが、前記設計仕様によって許容される限り前記クロック信号から遠いところで分割されたクロックツリーを含む、請求項1記載の方法。
  11. コンピュータに:
    クロック・ネットワークについての設計仕様を受け取る段階であって、前記設計仕様は少なくとも前記クロック・ネットワークについてのバッファ型の集合と、前記クロック・ネットワークのファンアウト範囲とを含み、前記バッファ型はバッファの入力容量を示し、前記ファンアウト範囲は最大ファンアウトおよび最小ファンアウトを含む、段階と;
    前記設計仕様に基づいて前記クロック・ネットワークのトポロジーを決定する段階であって、前記トポロジーは少なくとも、前記バッファ型の集合から選択される、前記クロック・ネットワークの複数のレベルのうちの各レベルについてのバッファ型を示す、段階と;
    決定されたトポロジーに基づいて前記クロック・ネットワークについての設計パラメータを決定する段階と;
    前記設計パラメータを含むクロック・ネットワーク合成ツール仕様ファイルを生成する段階とを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  12. 前記設計仕様がさらに、前記クロック・ネットワークについてのエンドポイントの集合のうちの少なくとも一つを含む、請求項11記載の記録媒体。
  13. 前記トポロジーがさらに、特定のレベルに含まれる第一のバッファのバッファ型がその特定のレベルに含まれる第二のバッファのバッファ型と同じであることを示す、請求項11記載の記録媒体。
  14. 前記トポロジーがさらに、特定のレベルに含まれる第一のバッファのバッファ・ファンアウトがその特定のレベルに含まれる第二のバッファのバッファ・ファンアウトと同じであることを示す、請求項11記載の記録媒体。
  15. 前記トポロジーがさらに、前記クロック・ネットワークのクロック発生器から各エンドポイントまでの、互いのレプリカである経路を示す、請求項11記載の記録媒体。
  16. 前記トポロジーがさらに、前記クロック・ネットワークの偶数個のレベルを示す、請求項11記載の記録媒体。
  17. 前記トポロジーはさらに前記クロック・ネットワークの各レベルについてのバッファ・ファンアウトを示す、請求項11記載の記録媒体。
  18. 前記トポロジーを決定する段階が、前記設計仕様に基づいて前記クロック・ネットワークの各レベルについてバッファの構成を決定することを含む、請求項11記載の記録媒体。
  19. 前記設計パラメータが、前記トポロジーによって示されるところの前記クロック・ネットワークの前記複数のレベル、各レベルについてのバッファ型および各レベルに含まれるバッファについてのファンアウトのうちの少なくとも一つを含む、請求項11記載の記録媒体。
  20. 前記トポロジーが、前記設計仕様によって許容される限りクロック発生器から遠いところで分割されたクロックツリーを含む、請求項11記載の記録媒体。
JP2012181928A 2011-08-22 2012-08-20 クロック・ネットワーク・メタ合成のためのシステムおよび方法 Active JP6127409B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/214,859 2011-08-22
US13/214,859 US9280628B2 (en) 2011-08-22 2011-08-22 System and method for clock network meta-synthesis

Publications (2)

Publication Number Publication Date
JP2013045459A JP2013045459A (ja) 2013-03-04
JP6127409B2 true JP6127409B2 (ja) 2017-05-17

Family

ID=47745552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012181928A Active JP6127409B2 (ja) 2011-08-22 2012-08-20 クロック・ネットワーク・メタ合成のためのシステムおよび方法

Country Status (2)

Country Link
US (1) US9280628B2 (ja)
JP (1) JP6127409B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032356B2 (en) * 2013-03-06 2015-05-12 Lsi Corporation Programmable clock spreading
JPWO2017122417A1 (ja) * 2016-01-12 2018-11-08 ソニー株式会社 集積回路
US10303202B1 (en) * 2016-08-15 2019-05-28 Altera Corporation Method and apparatus for performing clock allocation for a system implemented on a programmable device
US10146899B1 (en) 2017-11-27 2018-12-04 International Business Machines Corporation Clock control trees
US10769345B1 (en) * 2018-12-20 2020-09-08 Cadence Design Systems, Inc. Clock tree optimization by moving instances toward core route
CN118511177A (zh) * 2021-11-01 2024-08-16 密歇根州立大学董事会 自动化电路拓扑选择和配置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0963292A (ja) * 1995-08-19 1997-03-07 Sony Corp クロツク分配方法
JPH0969119A (ja) * 1995-08-31 1997-03-11 Sony Corp 回路設計装置及び回路設計方法
JPH0991055A (ja) * 1995-09-22 1997-04-04 Sony Corp クロツク分配方法
JPH09185645A (ja) * 1996-01-08 1997-07-15 Hitachi Ltd 論理回路の設計方法及びそれを用いた半導体集積回路装置
JPH09269847A (ja) * 1996-04-01 1997-10-14 Matsushita Electric Ind Co Ltd クロック分配回路およびそのレイアウト設計方法
JPH10254577A (ja) * 1997-03-07 1998-09-25 Seiko Epson Corp 画像信号処理装置
JPH1131747A (ja) * 1997-07-10 1999-02-02 Toshiba Corp 半導体集積回路のクロック設計装置及び半導体集積回路の設計方法ならびに半導体集積回路のクロック供給回路網
US6367060B1 (en) * 1999-06-18 2002-04-02 C. K. Cheng Method and apparatus for clock tree solution synthesis based on design constraints
JP2003007830A (ja) * 2001-06-27 2003-01-10 Nec Microsystems Ltd 半導体集積回路の自動レイアウト方法
US6925622B2 (en) * 2002-09-30 2005-08-02 Freescale Semiconductor, Inc. System and method for correlated clock networks
US7082584B2 (en) * 2003-04-30 2006-07-25 Lsi Logic Corporation Automated analysis of RTL code containing ASIC vendor rules
JP2005004496A (ja) * 2003-06-12 2005-01-06 Matsushita Electric Ind Co Ltd 半導体集積回路のレイアウト方法およびレイアウト装置
US7096442B2 (en) * 2003-07-10 2006-08-22 Lsi Logic Corporation Optimizing IC clock structures by minimizing clock uncertainty
US7216322B2 (en) * 2004-09-07 2007-05-08 Chang Gung University Clock tree synthesis for low power consumption and low clock skew
US7725852B2 (en) 2005-07-06 2010-05-25 Fujitsu Limited Sliding window scheme (SWS) for determining clock timing in a mesh-based clock architecture
US7788613B2 (en) 2005-07-06 2010-08-31 Fujitsu Limited Border-enhanced sliding window scheme (SWS) for determining clock timing in a mesh-based clock architecture
JP2007027841A (ja) * 2005-07-12 2007-02-01 Nec Electronics Corp 半導体集積回路の設計装置と方法並びにプログラム
US7801718B2 (en) 2006-03-03 2010-09-21 Fujitsu Limited Analyzing timing uncertainty in mesh-based architectures
US7802215B2 (en) 2006-06-06 2010-09-21 Fujitsu Limited System and method for providing an improved sliding window scheme for clock mesh analysis
US20080229266A1 (en) * 2006-12-14 2008-09-18 International Business Machines Corporation Design Structure for a Clock Distribution Network, Structure, and Method for Providing Balanced Loading in Integrated Circuit Clock Trees
US20080229265A1 (en) * 2006-12-14 2008-09-18 International Business Machines Corporation Design Structure for a Clock Distribution Network, Structure, and Method for Providing Balanced Loading in Integrated Circuit Clock Trees
US7511548B2 (en) * 2006-12-14 2009-03-31 International Business Machines Corporation Clock distribution network, structure, and method for providing balanced loading in integrated circuit clock trees
US8255196B2 (en) 2008-08-25 2012-08-28 Fujitsu Limited Constructing a replica-based clock tree
US8095900B2 (en) * 2008-09-16 2012-01-10 Cadence Design Systems, Inc. Achieving clock timing closure in designing an integrated circuit

Also Published As

Publication number Publication date
US20130055186A1 (en) 2013-02-28
US9280628B2 (en) 2016-03-08
JP2013045459A (ja) 2013-03-04

Similar Documents

Publication Publication Date Title
JP6127409B2 (ja) クロック・ネットワーク・メタ合成のためのシステムおよび方法
JP4104538B2 (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
US9875330B2 (en) Folding duplicate instances of modules in a circuit design
JP7465848B2 (ja) 非同期パイプラインのステージの動作速度の制御
JP5416211B2 (ja) 半導体装置
US8499262B1 (en) Method and apparatus for implementing a parameterizable filter block with an electronic design automation tool
CN108140067B (zh) 用于电路设计优化的方法和系统
US8788985B1 (en) Method and apparatus for implementing a processor interface block with an electronic design automation tool
US20150102846A1 (en) Distributing multiplexing logic to remove multiplexor latency on the output path for variable clock cycle, delayed signals
US10310994B2 (en) Asynchronous finite state machines
EP3089030A1 (en) Flexible physical function and virtual function mapping
JP7297784B2 (ja) プログラマブル制御回路を用いた選択的なクロック信号の提供
JP2018531457A6 (ja) 対話型マルチステップ物理合成
US9773083B1 (en) Post-placement and pre-routing processing of critical paths in a circuit design
US9684751B2 (en) Slack redistribution for additional power recovery
US9792395B1 (en) Memory utilization in a circuit design
US10430539B1 (en) Method and apparatus for enhancing performance by moving or adding a pipelined register stage in a cascaded chain
US20180076803A1 (en) Clock-distribution device of ic and method for arranging clock-distribution device
EP3336727A1 (en) System and method for defining a programmable logic architecture
WO2014045556A1 (ja) 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラムの記憶媒体
US9729153B1 (en) Multimode multiplexer-based circuit
US20130342255A1 (en) Signal delay device and control method
US10169271B1 (en) Direct memory access descriptor
JP2008198003A (ja) アレイ型プロセッサ
GB2366415A (en) A method for identifying and removing false feedback loops in circuit synthesis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161222

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170327

R150 Certificate of patent or registration of utility model

Ref document number: 6127409

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150