×この技術を簡単クリック査定この機能をご利用いただくには、会員登録(無料)が必要です。出願した特許の牽制数、引用された数などを知る事ができます。気になる技術や特許をブックマークしておけば、いつでも後から読むことができます。後で印刷するために、公報をPDFでダウンロードできます。会員登録してastamuseを使えば、もっと簡単に便利にお使いいただけます。会員登録(無料)「astamuse」は世界中の挑戦したい社会課題に挑戦し、未来を創る人のプラットフォームです。基本セルの小集合によって構築された可変駆動能力クロックドライバを備えた可変駆動能力クロックインバータを用いて構成されたクロックネットワークをチューニングするシステムおよび方法この技術は特許登録された実績があります。CAD※この項目の情報は公開日時点(2015年7月6日)のものです。設計をチューニングするシステムであって、プロセッサと、集積回路の設計にインスタンス化されたマクロセルの集合を生成する合成モジュールであって、集積回路の設計が前記集積回路の容量性負荷を駆動する複数のドライバを有する、合成モジュールと、マクロセルのそれぞれの入力ネットリストおよび出力ネットリストの位置を選択し、位置を印付ける端子を生成し、端子の名前およびマクロセルのピンの名前を決定する配置配線モジュールと、所定の判定基準に従って前記複数のドライバの容量性負荷の均衡を図ることによって、集積回路をチューニングする検証モジュールとを備える。半導体装置が適切に機能するには、当該半導体装置は、フリップフロップ、ラッチおよびメモリなどの並列な「シーケンシャル素子(逐次素子)」に対して、ほぼ同時にクロック信号を分配しなければならない。当該装置上の素子に対してクロック信号を分配するクロック分配ネットワークを用いてスキューを低減する。クロック信号の立ち上がり時間および立ち下がり時間が設計要件を満たすことを確実にするために、CMOSインバータまたはCMOSバッファは一定の間隔で挿入される。(インバータやバッファはクロック分配ネットワークにおいて同様の機能をもつので、本願においてこれらの用語は互換的に用いられ、クロックドライバまたはクロック駆動素子とも称す。)ネットワークは、複数の箇所で分岐するかもしれない。クロックネットワークの分岐やクロックのCMOSインバータの挿入は、クロックスキューの増加の原因となる。クロックスキューは、他の理由、例えば、構造上の問題、クロック分配ネットワークにおける負荷のばらつき、処理のばらつき、インバータの電圧や温度のばらつき、およびクロック分配ネットワークでの相互接続における他の影響、によっても増加し得る。クロックスキューを低減するために用いられる一構成として、クロックメッシュがある。クロックメッシュは、クロック分配ネットワークにおけるインバータからの出力を短絡させるために、クロスリンクと呼ばれる相互接続素子を導入する。これらクロスリンクは、短絡電力消費を生じるが、クロック駆動素子間でのクロック信号の遅延を低減し、それによりクロックスキューを低減する。クロックスキューを低減するために用いられる第2の構成として、図1A,1Bに示すハイブリッドツリーメッシュ100のような、ハイブリッドツリーメッシュがある。図1Aに示す、ハイブリッドツリーメッシュ100のメッシュ部分は、リブ(rib)120および130を支持するスパイン(spine)110と、リブ120上のインバータ121A〜Dと、リブ120および130上のクロック駆動素子を結合するクロスリンク121および122と、非直線(non-rectilinear)クロックメッシュ領域140とを備える。図1Aは、リブ120および130に沿った素子間のクロスリンクを示すが、他の構成においては、クロスリンクは、クロック分配ネットワークにおける別の位置または別の位置の組合せ、例えば、クロック分配ネットワーク内のようなクロック分配ネットワークの一端、またはリブ120および130に沿った素子間と、前記一端との両方に挿入される。メッシュ部分100は、図1Bに示す階層的バイナリツリー構造150により駆動される。クロックドライバによって構成されたクロック分配ネットワークの製作にかかる費用および時間を削減する。集積回路の設計をチューニングするシステムであって、プロセッサと、集積回路の設計にインスタンス化されたマクロセルの集合を生成する合成モジュールであって、集積回路の設計が前記集積回路の容量性負荷を駆動する複数のドライバを有する、合成モジュールと、マクロセルのそれぞれの入力ネットリストおよび出力ネットリストの位置を選択し、位置を印付ける端子を生成し、端子の名前およびマクロセルのピンの名前を決定する配置配線モジュールと、所定の判定基準に従って前記複数のドライバの容量性負荷の均衡をることによって、集積回路をチューニングする検証モジュールとを備える。New_size=Current_size*(1+(Current_slew−Target_slew)/(Target_slew))ここで、New_sizeは、あるマクロセルの新たなサイズであり、Current_sizeは、当該マクロセルの現在のサイズであり、Current_slewは、現在のスリューであり、Target_slewは、所定の目標スリューである。New_size=Current_size*(1+(Current_slew−Target_slew)/(Current_slew))ここで、New_sizeは、あるマクロセルの新たなサイズであり、Current_sizeは、当該マクロセルの現在のサイズであり、Current_slewは、現在のスリューであり、Target_slewは、所定の目標スリューである。請求項19集積回路の設計をチューニングするシステムであって、プロセッサと、前記集積回路の設計にインスタンス化されたマクロセルの集合を生成する合成モジュールであって、前記集積回路の設計が前記集積回路の容量性負荷を駆動する複数のドライバを有する、合成モジュールと、前記マクロセルのそれぞれの入力ネットリストおよび出力ネットリストの位置を選択し、前記位置を印付ける端子を生成し、前記端子の名前および前記マクロセルのピンの名前を決定する配置配線モジュールと、所定の判定基準に従って前記複数のドライバの容量性負荷の均衡を図ることによって、前記集積回路をチューニングする検証モジュールとを備えた、集積回路設計チューニングシステム。請求項20請求項19に記載のシステムにおいて、さらに、前記合成モジュールに接続されたマクロセルライブラリを備え、当該マクロセルライブラリは標準サイズの基本セルのみを含む、集積回路設計チューニングシステム。請求項21請求項20に記載のシステムにおいて、前記集積回路は、クロスリンクを含むクロックネットワークを備える、集積回路設計チューニングシステム。請求項22請求項21に記載のシステムにおいて、前記クロックネットワークは、クロックメッシュ、クロックツリーメッシュおよびハイブリッドツリーメッシュのうちの1つを備える、集積回路設計チューニングシステム。請求項23請求項21に記載のシステムにおいて、前記合成モジュールは、さらに、前記マクロセルのそれぞれを平坦化して、対応する基本セルを含むネットリストを生成し、前記検証モジュールは、さらに、回路シミュレーション中に、前記端子の前記名前と前記マクロセルのピンの名前とを用いて、前記基本セルを再度組み合わせて対応するマクロセルにする、集積回路設計チューニングシステム。請求項24請求項23に記載のシステムにおいて、さらに、前記集積回路のネットリストに対して刺激を導入し、前記マクロセルの入力および出力における回路パラメータを測定する、シミュレーションモジュールを備えた、集積回路設計チューニングシステム。請求項25請求項24に記載のシステムにおいて、前記合成モジュールは、さらに、前記集積回路のシミュレーション中に測定された1つ以上のパラメータを均一化することによって、前記集積回路の設計をチューニングする、集積回路設計チューニングシステム。請求項26請求項25に記載のシステムにおいて、前記1つ以上のパラメータは、遅延、スリュー、電流、電荷、またはこれらの任意の組合せを含む、集積回路設計チューニングシステム。請求項27請求項26に記載のシステムにおいて、前記合成モジュールは、終了条件が満たされるまで前記基本セルをサイズ変更することによって、前記集積回路をチューニングするように構成される、集積回路設計チューニングシステム。請求項28請求項27に記載のシステムにおいて、前記終了条件は、前記マクロセルのサイズが目標サイズと等しくなること、測定されたスリューが所定の範囲内であること、前記マクロセルのサイズ変更の回数が所定の限度に達したこと、またはこれらの組合せを含む、集積回路設計チューニングシステム。請求項29請求項27に記載のシステムにおいて、前記マクロセルのサイズ変更は、回路シミュレーションパラメータに基づく、集積回路設計チューニングシステム。請求項30請求項29に記載のシステムにおいて、前記回路シミュレーションパラメータは、遅延、スリュー、電流、電荷、またはこれらの任意の組合せを含む、集積回路設計チューニングシステム。請求項31請求項27に記載のシステムにおいて、サイズ変更は、以下の式に基づく、集積回路設計チューニングシステム。(Current_slew-Target_slew)/(Target_slew))New_size=Current_size*(1+(Current_slew−Target_slew)/(Target_slew))ここで、New_sizeは、あるマクロセルの新たなサイズであり、Current_sizeは、当該マクロセルの現在のサイズであり、Current_slewは、現在のスリューであり、Target_slewは、所定の目標スリューである。請求項32請求項27に記載のシステムにおいて、サイズ変更は、以下の式に基づく、集積回路設計チューニングシステム。New_size=Current_size*(1+(Current_slew−Target_slew)/(Current_slew))ここで、New_sizeは、あるマクロセルの新たなサイズであり、Current_sizeは、当該マクロセルの現在のサイズであり、Current_slewは、現在のスリューであり、Target_slewは、所定の目標スリューである。0001本発明は、集積回路に関し、さらに詳細には、半導体装置上のクロック分配ネットワークに関する。背景技術0002半導体装置が適切に機能するには、当該半導体装置は、フリップフロップ、ラッチおよびメモリなどの並列な「シーケンシャル素子(逐次素子)」に対して、ほぼ同時にクロック信号を分配しなければならない。クロック信号が異なるタイミングでこれら並列素子に到着した場合、「クロックスキュー」が生じることにより、セットアップ違反やホールド違反を含む様々な問題が発生し、半導体装置内で伝送されるデータの整合性が危険にさらされる可能性がある。0003大規模半導体装置は、当該装置上の素子に対してクロック信号を分配するクロック分配ネットワークを用いてスキューを低減する。クロック信号の立ち上がり時間および立ち下がり時間が設計要件を満たすことを確実にするために、CMOSインバータまたはCMOSバッファは一定の間隔で挿入される。(インバータやバッファはクロック分配ネットワークにおいて同様の機能をもつので、本願においてこれらの用語は互換的に用いられ、クロックドライバまたはクロック駆動素子とも称す。)ネットワークは、複数の箇所で分岐するかもしれない。クロックネットワークの分岐やクロックのCMOSインバータの挿入は、クロックスキューの増加の原因となる。クロックスキューは、他の理由、例えば、構造上の問題、クロック分配ネットワークにおける負荷のばらつき、処理のばらつき、インバータの電圧や温度のばらつき、およびクロック分配ネットワークでの相互接続における他の影響、によっても増加し得る。0004クロックスキューを低減するために用いられる一構成として、クロックメッシュがある。クロックメッシュは、クロック分配ネットワークにおけるインバータからの出力を短絡させるために、クロスリンクと呼ばれる相互接続素子を導入する。これらクロスリンクは、短絡電力消費を生じるが、クロック駆動素子間でのクロック信号の遅延を低減し、それによりクロックスキューを低減する。クロックスキューを低減するために用いられる第2の構成として、図1A,1Bに示すハイブリッドツリーメッシュ100のような、ハイブリッドツリーメッシュがある。図1Aに示す、ハイブリッドツリーメッシュ100のメッシュ部分は、リブ(rib)120および130を支持するスパイン(spine)110と、リブ120上のインバータ121A〜Dと、リブ120および130上のクロック駆動素子を結合するクロスリンク121および122と、非直線(non-rectilinear)クロックメッシュ領域140とを備える。図1Aは、リブ120および130に沿った素子間のクロスリンクを示すが、他の構成においては、クロスリンクは、クロック分配ネットワークにおける別の位置または別の位置の組合せ、例えば、クロック分配ネットワーク内のようなクロック分配ネットワークの一端、またはリブ120および130に沿った素子間と、前記一端との両方に挿入される。メッシュ部分100は、図1Bに示す階層的バイナリツリー構造150により駆動される。階層的バイナリツリー構造150において、クロック駆動素子145(レベルL2)は、4つのクロック駆動素子120A〜C(レベルL1)を駆動し、クロック駆動素子160(レベルL3)は素子145とレベルL2の他の素子を駆動する。図1A図1B発明が解決しようとする課題0005図1A,1Bは、図面の簡略化のため、数個の、インバータ、リブおよびクロスリンクを示すが、クロック分配ネットワークは、典型的に、何十万ものこれら構成要素を有し、数千のクロック受信素子(シーケンシャル素子)に対してクロック信号を向ける。これら素子は、図1Aの非直線要素140のような他の構造と同様に、クロック分配ネットワークに対して様々な負荷となり、スキューが増加する。図1A0006短絡電力低減のためには、出力が短絡されたインバータの入力間のスキューを可能な限り低く保つことが重要である。設計時におけるクロック分配ネットワークの構造的スキューを低減することが重要である。クロスリンクによって出力が短絡された、クロック分配ネットワークにおけるインバータが互いに同じ負荷特性を有することを保証するのは、不可能かもしれない。そのため、構造的スキューを低減するように、チューナブルクロックインバータが必要となる。クロックインバータは、大きい負荷を駆動するものが大きい駆動能力を持ち、小さい負荷を駆動するものが小さい駆動能力をもつように、チューニングされる。ハイブリッドツリーメッシュ型クロック分配ネットワークの最終段において、負荷は、フリップフロップ密度や非直線クロックメッシュ領域のばらつきを含む様々な理由によって、大幅にばらつく可能性がある。0007様々な有効駆動能力を生成するために、チューナブルクロックインバータは、複数の基本セルを組み合わせてそれら基本セルの出力を接続または分離して、構成されてもよい。このようにして、入力容量は変化せずに出力駆動能力のみが変化し、これにより、クロックネットワークのチューニングをより容易にかつ予測可能にすることができる。チューナブルクロックインバータを形成する方法の1つとして、基本セルを組み合わせて1つのマクロセルを形成し、必要に応じてこのマクロセルを使用する。このアプローチの欠点の1つは、当該マクロセルが、電子設計自動化(EDA)ツールにより、物理的設計のすべてのレベルを通して単一セルとして扱われることである。この場合、当該マクロセルの、トランジスタレベルでの正確な抽出および特徴付けが要求される。当該マクロセルを単一セルとして維持するために、このセルに対して、タイミングDB、物理的セルビュー、LVSネットリスト、および他の付帯的要素を生成しなければならない。マクロセルをそれらの構成要素である基本セルに分割すると、マクロセルを使用するクロック分配ネットワークのチューニングを極めて困難にする可能性がある。課題を解決するための手段0008本発明の第1の構成において、チューニングのための集積回路を作成(準備)する方法は、前記集積回路の設計(デザイン)にインスタンス化されたマクロセルの集合を生成することであって、前記集積回路の設計が前記集積回路上の容量性負荷を駆動するドライバを含む、生成することと、前記マクロセルそれぞれの入力ネットリストおよび出力ネットリストの位置を選択し、前記位置を印付ける端子を生成することと、前記端子の名前および前記マクロセルのピンの名前を決定することと、所定の判定基準に従って前記ドライバ上の容量性負荷の均衡を図ることによって、前記集積回路を初期チューニングすることとを含む。0009一実施形態において、前記方法は、また、配置配線(PnR)ツールを用いて、前記集積回路の物理的DBを開くことを含む。前記集積回路は、クロスリンクを含むクロックネットワークを備える。いくつかの例として、前記クロックネットワークは、クロックメッシュ、クロックツリーメッシュ、またはハイブリッドツリーメッシュを備える。前記クロックネットワークは、前記クロスリンクを追加すること、前記クロスリンクを削除すること、またはこれら両方によりチューニングされる。0010一実施形態において、前記マクロセルは、それぞれ、1つ以上の標準サイズの対応する基本セルのみを含む。一実施形態において、前記方法は、また、前記マクロセルのそれぞれを平坦化して、対応する基本セルを含むネットリストを生成することを含む。前記集積回路のチューニングは、回路シミュレーション中に、前記の前記名前と前記マクロセルのピンの名前とを用いて、前記基本セルを再度組合せて対応するマクロセルにすることを含む。好ましくは、前記端子の前記名前と前記マクロセルの前記名前とはファイルに格納される。前記端子の前記名前と前記マクロセルのピンの名前とは、対応する端子の名前に埋め込まれる。一実施形態において、端子の物理的位置情報も、対応する端子の名前に埋め込まれる。0011一実施形態において、前記方法は、また、前記集積回路のネットリストに刺激(stimulus)を導入し、前記マクロセルの入力(入力部)および出力(出力部)における回路パラメータを測定することを含む。前記チューニングは、前記集積回路のシミュレーション中に測定された1つ以上のパラメータを均一化することを含む。いくつかの例として、前記1つ以上のパラメータは、遅延、スリュー、電流、電荷、またはこれらの任意の組合せを含む。0012好ましくは、前記チューニングは、終了条件が満たされるまで前記マクロセルをサイズ変更することを含む。終了条件のいくつかの例は、マクロセルのサイズが目標サイズと等しいこと、測定されたスリューが所定の範囲内であること、サイズ変更の回数が所定の限度に達したこと、またはこれらの任意の組合せを含む。一実施形態において、サイズ変更は、以下の式に基づく:New_size=Current_size*(1+(Current_slew−Target_slew)/(Target_slew))ここで、New_sizeは、あるマクロセルの新たなサイズであり、Current_sizeは、当該マクロセルの現在のサイズであり、Current_slewは、現在のスリューであり、Target_slewは、所定の目標スリューである。他の実施形態では、サイズ変更は以下の式に基づく:New_size=Current_size*(1+(Current_slew−Target_slew)/(Current_slew))ここで、New_sizeは、あるマクロセルの新たなサイズであり、Current_sizeは、当該マクロセルの現在のサイズであり、Current_slewは、現在のスリューであり、Target_slewは、所定の目標スリューである。0013本発明の第2の構成において、集積回路設計をチューニングするシステムは、プロセッサと、前記集積回路の設計(デザイン)にインスタンス化されたマクロセルの集合を生成する合成モジュールであって、前記集積回路の設計が前記集積回路の容量性負荷を駆動する複数のドライバを有する、合成モジュールと、前記マクロセルのそれぞれの入力ネットリストおよび出力ネットリストの位置を選択し、前記位置を印付けるための端子を生成し、前記端子の名前および前記マクロセルのピンの名前を決定する配置配線モジュールと、所定の判定基準に従って前記複数のドライバの容量性負荷の均衡を図ることによって、前記集積回路をチューニングする検証モジュールとを備える。前記システムは、さらに、前記合成モジュールに接続されたマクロセルライブラリを備え、当該マクロセルライブラリは標準サイズのマクロセルのみを含む。一実施形態において、前記集積回路は、クロスリンクを含むクロックネットワークを備える。いくつかの例として、前記クロックネットワークは、クロックメッシュ、クロックツリーメッシュまたはハイブリッドツリーメッシュを備える。0014本発明の第3の構成において、クロック分配ネットワークを備えた半導体装置は、標準サイズの基本セルのみを含むマクロセルから構成されたクロック駆動素子を備える。前記マクロセルのそれぞれについて、対応する前記基本セルが当該マクロセルとの相対的な所定の配置に基づいて配置される。前記マクロセルが、シミュレーション中に1つ以上の回路シミュレーションパラメータに従ってサイズ変更されている。いくつかの例として、前記1つ以上の回路シミュレーションパラメータが、遅延、スリュー、電流、電荷、またはこれらの任意の組合せを含む。いくつかの例として、前記クロック分配ネットワークは、クロックツリー、クロックメッシュ、またはハイブリッドツリーメッシュを含む。0015以下の図面は、発明の実施形態を示すために使用される。全ての図面において、同一の参照符号は同一または類似の構成要素を示す。図面の簡単な説明0016従来技術によるメッシュツリーハイブリッド型クロック分配ネットワークの一部分の上位概略図である。従来技術によるメッシュツリーハイブリッド型クロック分配ネットワークの一部分の上位概略図である。クロック分配ネットワークに対して異なる負荷をとなるシーケンシャル素子を駆動する当該ネットワークの一部を示す概略図である。本発明の原理に従って、標準サイズのセルをどのように組み合わせてクロック分配ネットワークをチューニングするかを示すために用いられる図である。本発明の原理に従って、標準サイズのセルをどのように組み合わせてクロック分配ネットワークをチューニングするかを示すために用いられる図である。本発明の原理に従って、標準サイズのセルをどのように組み合わせてクロック分配ネットワークをチューニングするかを示すために用いられる図である。本発明の原理に従って、標準サイズのセルをどのように組み合わせてクロック分配ネットワークをチューニングするかを示すために用いられる図である。本発明の実施形態に従った、64×の能力をもつクロックインバータのプログラミングを示す半導体装置レイアウトである。本発明の実施形態に従った、32×の能力をもつクロックインバータのプログラミングを示す半導体装置レイアウトである。本発明の実施形態に従った、0×の能力をもつクロックインバータのプログラミングを示す半導体装置レイアウトである。本発明の一実施形態に従った、クロック分配ネットワークにおけるクロック駆動素子の結合を含む、デジタル設計フローのステップを示すフローチャートである。本発明の一実施形態に従った、標準サイズのクロック駆動素子を組み合わせるプロセスのステップを示すフローチャートである。本発明の一実施形態に従ってどのようにしてチューナブルクロックインバータを構成するかを示すVerilog(ヴェリログ)ネットリストの一部であって、図9Bに続くものである。図9Aに続く、Verilogネットリストの別の一部であって、図9Cに続くものである。図9Bに続く、Verilogネットリストのさらに別の一部である。本発明の一実施形態に従ってどのようにしてチューナブルクロックインバータを構成するかを示すVerilogネットリストの一部であって、図10Bに続くものである。図10Aに続く、Verilogネットリストの別の一部である。本発明の一実施形態に従って半導体レイアウト内にセルを配置するステップを示すフローチャートである。本発明の一実施形態に従ってセル間の相互接続を配線するステップを示すフローチャートである。本発明の一実施形態に従った、マクロセル用の入力配線を示す概略図である。本発明の一実施形態に従った、マクロセル用の出力配線を示す概略図である。本発明の一実施形態に従った、配置配線されたチューニング用クロック分配ネットワークの物理的DBを用意するプロセスのステップを示すフローチャートである。本発明の一実施形態に従って上記デジタル設計フローを行うための設計ツールのブロック図である。図10A図10B図9A図9B図9C実施例0017本発明の原理に基づいて、チューナブルクロックドライバ(調整可能クロックドライバ)のソフトマクロセルが、電子設計自動化(EDA)プロセスのRTLステージ(RTLレベル)において生成される。EDAプロセスフローにおけるすべてのツールが、当該セルをその構成要素である基本セルに分割し、これにより、当該マクロセルのためのタイミングDB、物理的セルビュー、LVSネットリスト、および他の付帯的要素を維持することを不要とする。0018本発明によれば、チューナブルクロックドライバのソフトマクロを生成するが、マクロセルは上記フローを通して維持されるものではない。ソフトマクロは、RTLステージおよびセルをその構成要素である基本セルに分割するためにフローで使用されるツールにおいて生成され、これにより当該マクロセルのためのタイミングDB、物理的セルビュー、LVSネットリスト、および他の付帯的要素を維持することを不要とする。0019以下の記載において、第1に、スタンダードセルライブラリからのマクロセルをどのように組み合わせて、クロック分配ネットワークにおけるクロック受信素子を駆動するための駆動能力信号の調整可能(チューナブル)範囲を生成するかについて説明する。第2に、これらマクロセルをどのように配置配線するかについて説明する。第3に、マクロセルにより構築されたこれらクロックネットワークを、本発明の原理に基づいてどのようにチューニングするかについて説明する。0020<標準サイズのマクロセルのみを用いたクロック分配ネットワークの生成>本発明の原理に基づいて、半導体装置クロック分配ネットワークは、当該装置上のシーケンシャル(クロック受信)素子の駆動に必要な駆動能力にかかわらず、標準サイズのインバータのみを使用する。カスタムサイズのインバータを作成あるいは第三者から購入する必要がないので、設計プロセスが従来技術のプロセスよりも安価になる。これら標準サイズのインバータは徹底的にテストされており、予想通りに機能するので、これらクロック分配ネットワークを用いて半導体装置をデバッギングする時間が短縮され、製品をより早く市場に提供することができる。クロック受信要素のための駆動能力が判定される。システムは、カスタムサイズのCMOSインバータの組合せを、それらの結合された駆動能力が当該シーケンシャル素子を駆動するには十分大きく、しかも短絡電力を最小化するには十分小さくなるように、判定する。カスタムサイズの構成要素の組合せをシミュレートし、その後、対応するインバータを配置配線して物理的半導体装置を形成する。得られたクロックインバータは、低いスキューを保ちながら単一の半導体装置上の種々の負荷を駆動する。クロックインバータは、また、広い駆動能力の範囲と、低いスキューを保つための十分な細分性とを有する。0022一実施形態では、上記標準サイズのインバータ(あるいは、他の「クロック駆動」素子)は、0×、8×、12×および16×の駆動能力を有する。これらインバータは、0×、8×、12×、16×、20×(8×+12×)、24×(12×+12×)、28×(20×+8×)、32×(16×+16×)、36×(8×+12×+16×)、40×(8×+16×+16×)、44×(12×+16×+16×)、48×(16×+16×+16×)、52×(8×+12×+16×+16×)、56×(8×+16×+16×+16×)および64×(16×+16×+16×+16×)の駆動能力を有するチューナブルインバータを形成するように組み合わせられ得る。上記の値を生成するために他のインバータ駆動能力を組み合わせてもよいことを理解されたい。駆動能力24×は、駆動能力8×を有する3つのインバータにより生成することができる。好ましくは、駆動能力は、最小の数のインバータを組合せることにより決定される。言い換えれば、一例では、駆動能力Dは、以下の式(1)に基づいてインバータを結合することにより決定される。式(1)ここで、a+b+c(インバータの総数)は最少にされる。本発明の原理によれば、他の設計制約を用いて、他の選択基準を用いることもできる。0023インバータを組合せて種々のグループとすることにより、クロック分配ネットワークは、所定範囲の値を有する「一群の(ganged)」インバータを生成し得る。本例では、インバータは、0×(例えば、対称性のためだけにダミー負荷が必要な場合)から64×の範囲内の任意の値であって、0×、8×、12×、16×〜56×(増加単位4×)、および64×の値を取ることができる。異なる標準サイズのインバータを用いて、他の範囲の信号強度を他の増加単位で生成してもよいことを理解されたい。0024図2は、3つの異なる負荷L1、L2およびL3を駆動するクロック分配ネットワーク200の一部を模式的に示す。クロックネットワーク200は、マイクロプロセッサのような任意の半導体装置の一部を形成し得る。半導体装置200の合成中に、負荷値L1、L2およびL3が判定される。本例では、フリップフロップ密度や非直線クロックメッシュのばらつきのため、値L1、L2およびL3は互いに異なる。当業者であれば、他の理由により負荷がばらつく可能性があることを理解するであろう。図20025負荷L1は駆動能力20×のクロック信号を必要とし、負荷L2は駆動能力24×のクロック信号を必要とし、負荷L3は駆動能力52×のクロック信号を必要とする。クロック分配ネットワークのインバータは、駆動能力値がそれぞれ8×、12×および16×の標準サイズのセルのみを用いて作成される。駆動能力20×のクロック信号は、駆動能力8×、12×をそれぞれもつ2つの標準サイズのインバータの組合せつまり「一群化」によって生成される。駆動能力24×のクロック信号は、駆動能力8×、16×をそれぞれもつ2つの標準サイズのインバータの組合せによって生成される。駆動能力52×のクロック信号は、駆動能力16×、16×、12×、8×をそれぞれもつ4つの標準サイズのインバータの組合せによって生成される。本例では、上記合成ステップの後、シミュレーションステップ、タイミング分析ステップ、配置配線ステップ、抽出ステップおよび検証ステップを行う。0026図3A〜Dは、標準セルライブラリの3種類のセルのみ(駆動能力が8×、12×および16×(図3A))をどのように組み合わせて、駆動能力が20×(図3B)、32×(図3C)および52×(図3D)のセルを生成するかについて、ほんの数例の可能な組合せを示す。図10A図10B図11図12図13図14図15図16図3A図3B0027一実施形態では、すべての標準サイズのインバータは、半導体装置の1つ以上の層上に形成される。これらインバータは、VIAプログラミングによって、すなわち、インバータを共にシーケンシャル素子を駆動する出力ピンに電気的に結合するバイアを追加または削除することによって、組合せつまり「チューニング」される。図1Bを参照し、このようなチューニングは、クロック分配ネットワークにおける上流素子(例えば、145および160)には影響しない。図1B0028一実施形態では、基本セルは、「VIA34プログラミング」を用いて、チューナブルクロックインバータを形成するように組み合わせられる。基本セルは、半導体装置の隣り合わせに並ぶ列に配置されている。これら列は、一の列の上に他の列が位置し、出力ネットに接続された半導体装置の金属層4(M4)のストラップを引き込む。M4ストラップは、より上位の金属層を介して順に接続され得る。このようにして、基本セルの出力は、金属層3(M3)からM4へバイアを挿入または除去することによって、出力ネットに対して接続または分離され得る。他の金属層およびバイアはすべて接続されないままである。このようにして、2層(M3およびM4)間においてバイア(VIA34)を追加または除去するだけで、クロックインバータの駆動能力をチューニングすることができる。0029図4〜6は、それぞれ、駆動能力が64×、32×および0×であるクロックインバータのVIA34プログラミングを示すレイアウトであり、M4における同一の(基本の)標準サイズのクロックセルと、M3における、各セルのために複数の出力ピンとを用いている。各レイアウトは、左側に、M4における16×、12×、8×、12×および16×のインバータと、右側に、M3における各インバータの出力ピンと、インバータを対応する出力ピンに電気的に結合させる、M3とM4の間のバイアとを含む。図4図5図60030図4は、例えば、すべてのM3出力ピン(410B、420B、430B、440B、450B)をすべての16×、12×、8×、12×および16×のインバータ(410A、420A、430A、440A、450A)に接続するようプログラムされたバイア480を有するレイアウト400であり、これにより16×+12×+8×+12×+16×(つまり64×)の組合せ駆動能力を有する出力ピン上のクロック信号を生成する。図5は、2つのM3出力ピン(510Bおよび550B)を対応する2つの16×インバータ(510Aおよび550A)の出力に接続するようにプログラムされたバイア580を有するレイアウト500であり、これにより16×+16×(つまり32×)の組合せ駆動能力を有するクロック信号を生成する。図6は、M3出力ピンを16×、12×、8×、12×および16×のインバータに接続するバイア680が除去されたレイアウト600であり、これにより駆動能力が0×(ダミー)のクロックインバータを形成する。当業者であれば、他のクロック強度をもつクロック信号を生成するためにクロック素子を組み合わせる他のVIA34プログラミングを想到できるであろう。図4図5図60031図7は、本発明の実施形態に従って使用される、対応するハードウェア構成要素を有する半導体装置のためのデジタル設計フローのステップ700を示すフローチャートである。設計実装が、それぞれ、ステップ701、705および710で行われる。合成ステップは、標準セルライブラリ755を用いてステップ715にて行われる。このステップでは、多くのサブステップを含み得るが、クロック分配ネットワークおよびシーケンシャル要素を含む上記構成要素の構築ブロックが合成される。クロック分配ネットワークは、標準サイズのセルのみを用いて合成される。このステージでは、論理回路が決定される。合成ステップ715の出力はネットリストであり、装置および各装置間の相互接続を示すASCIIファイルである。シミュレーションは、上記ネットリストを用いてステップ720にて行われ、設計を検証し、仕様通りでない場合は、ステップ710へループバックする。仕様通りであれば、ステップ725のタイミング解析へと進み、例えば、スキューを判定する。ステップ725の後、ステップ730にて配置配線が行われ、ステップ735にて抽出、すなわち性能に悪影響を与える構成要素の抽出および検査が行われ、ステップ740において検証、すなわち装置の製造または最適化や変更のために設計が修正される。設計を変更すべき場合は、ステップ715へループバックする。図70032図7に示すように、タイミング解析ステップ725はタイミング用ルックアップテーブル760にアクセスし、配置配線ステップ730はレイアウト値用Techファイル765にアクセスし、抽出ステップ735はRC寄生抽出用Techファイル770にアクセスする。図70033ステップ700は、本発明の一実施形態の例示に過ぎないことを理解されたい。他の実施形態では、ほんの数例を挙げれば、他のステップが追加され、いくつかのステップは組み合わされ、連続するステップは異なる順序で行われる。0034図8は、図7の標準セルライブラリ755に格納された標準セルインバータを判定するステップ800を示す。プロセスのこのステージでは、合成ステップ715、検証ステップ740、またはその他のステップと同様に、各クロックインバータの負荷(ひいては、所要または「目標の」駆動能力)が既に決定されている。開始ステップ801において、目標駆動能力により駆動される第1のクロック受信素子が選択される。ステップ803では、上記式1に示されたような適切なクロック駆動能力を生成するために、標準セルライブラリに格納された標準サイズのマクロセルの組合せが判定される。ステップ805では、これらインバータが組合せまたは「一群化」されて、図4〜6に示すようなVIAプログラミングを用いて目標駆動能力を生成する。ステップ807では、設計(デザイン)中に他のクロック受信素子があるか否かを判定し、もしあれば、ステップ803へループバックする。無ければ、ステップ809にてプロセスを終了する。図4図5図6図7図80035ステップ800は、本発明の一実施形態の例示に過ぎないことを理解されたい。他の実施形態では、ほんの数例を挙げれば、他のステップが追加され、いくつかのステップは組み合わされ、連続するステップは異なる順序で行われる。0036図9は、本発明の一実施形態に基づいて、チューナブルクロックインバータがどのように構成されるかを示すVerilogネットリスト900である。ネットリスト900は、その出力を短絡するクロスリンクを有するクロックインバータを備えたバイナリツリーの構成を示す。本例のマクロセルは、標準セルライブラリからの駆動能力が8×、12×および16×のクロックインバータセルのみを用いて、0×、8×、12×、16×、20×、24×、28×、32×、36×、40×、44×、48×、52×、56×および64×の駆動能力を実現する。これらは、1つのクロックステーションを形成するように接続される。1つのメッシュクロック分配ネットワークは、1つのクロックメッシュを共に駆動する1つ以上の上記クロックステーションからなる。本例では、チューナブルクロックインバータは、xp_ckinvx0、xp_ckinvx8、xp_ckinvx12、xp_ckinvx16、xp_ckinvx20、xp_ckinvx24、xp_ckinvx28、xp_ckinvx32、xp_ckinvx36、xp_ckinvx40、xp_ckinvx44、xp_ckinvx48、xp_ckinvx52、xp_ckinvx56およびxp_ckinvx64であり、それぞれ、0×、8×、12×、16×、24×、28×、32×、36×、40×、44×、48×、52×、56×および64×の駆動能力を表す。これらチューナブルクロックインバータを構成するために使用される基本標準セルは、2つのstdcell_ckinv_x16セル、2つのstdcell_ckinv_x12セル、および1つのstdcell_ckinv_x8セルである。上記stdcell_ckinv_x16セル、stdcell_ckinv_x12セル、およびstdcell_ckinv_x8セルは、それぞれ、標準セルライブラリからの16×、12×、および8×の駆動能力を有するクロックインバータを表す。入力ネットは「A」であり、出力ネットは「Z」である。0037上記例はチューナブルインバータの構成を示すが、本発明は、バッファやその他任意の論理ゲートを備える他のセルにも展開し得る。基本標準セルの小さいセットを組み合わせてそれらの出力の接続をバイアの変更のみでプログラム可能にすることにより、チューナブルバッファまたはクロック駆動素子も構成し得る。0038<標準サイズのマクロセルの配置配線>図10は、本発明の一実施形態による、クロスリンク付バイナリクロックツリーのVerilogネットリスト1000であり、どのようにインスタンス名を配置情報で埋め込むかを示すために使用されるものである。モジュール「clkstationSample」は、上記チューナブルクロックインバータの1つを用いるクロックドライバからなるクロックステーションである。モジュール「clkstationSample」は、1つの入力「clk_L5」および1つの出力「clk」を有する。出力ポートclk_L4およびclk_L3が、また、クロック分配の中間ノードのために追加され得る。ネットリストにこれらポートを追加すると、クロックステーションの各ステージにおいてチューニングが容易になる。クロックステーションにおいてインスタンス化された各クロックインバータのインスタンス名は、その内部に、クロックステーションにおけるドライバのレベル、さらには当該ドライバの配置の物理的なX座標およびY座標を有する。本例では、xL2で始まるすべてのインスタンス名が、クロックステーションの最終(リーフ)ステージを示す。xL2ドライバはxL3ドライバにより駆動され、xL3ドライバはxL4ドライバにより駆動される。X座標およびY座標は、インスタンス名の内部にあり、ドライバのレベル番号の後に記載される。(.A(clk_L4),Z(clk_L3));は、駆動能力が64×のドライバであって、ドライバレベルが3で、X座標が5094.6でY座標が8.1の位置に配置され、入力ネットclk_L4および出力ネットclk_L3を有するものを示す。インスタンス名(レベルと物理的な座標情報を有する)は、レイアウトおよびチューニングフローにおいて、以下に述べる役割を果たす。0039クロックステーションのレイアウトのために、ネットリストはPnR(Place−and−Route)ツールに読み込まれ、セルの一部である物理的座標情報が配置を導くために使用される。セルxL3_5094p600_8p100は、5つのセルxinv1、xinv2、xinv3、xinv4およびxinv5からなるマクロセルxp_ckinvx64のインスタンスである。ネットリストがPnRツールに読み込まれると、PnRツールは、1つの物理的セルの一部として認識する代わりに、以下の5つの基本セルを認識する。xL3_5094p600_8p100/xinv1xL3_5094p600_8p100/xinv2xL3_5094p600_8p100/xinv3xL3_5094p600_8p100/xinv4xL3_5094p600_8p100/xinv5これら5つのセルを一緒に配置するために、配置情報はインスタンス名に埋め込まれ、最初に、セルxL3_5094p600_8p100/xinv5を(X,Y)座標5094.6,8.1の中心に、あるいは若干ずらして(オフセットして)配置する。次に、セルxL3_5094p600_8p100/xinv4を、セルxL3_5094p600_8p100/xinv5よりも1標準セル列(あるいは、標準セル列の整数倍)だけ上方に配置する。その後、xL3_5094p600_8p100/xinv3、xL3_5094p600_8p100/xinv2、およびxL3_5094p600_8p100/xinv1をそれぞれ上方に配置する。上記セルは、同じ列に隣同士に並べて配置されてもよい。いくつかのセルがある列に、他のセルが別の列にというように配置されてもよい。セル同士がオーバラップせず、各マクロセルにおいて基本セルの相対的位置関係が同じである限り、セルの配置はどのようなものであってもよい。これは、マクロセルの配線を確定的なものとするために必要である。このようにマクロセル内において各基本セルを相対的に配置すると、当該基本セルの入力ピンの位置および出力ピンの位置が確実にわかるようになる。0040図11は、本発明の一実施形態による、マクロセル内にすべての基本セルを配置するプロセスのステップ1100を示す。ステップ1101において、クロックステーション設計(デザイン)においてインスタンス化されたすべてのマクロセルの集合を生成する。次に、ステップ1105において、当該集合におけるすべてのマクロセルインスタンスをループし、インスタンス名から(X,Y)座標情報を抽出する。次に、ステップ1110において、マクロセル内の基本セルを検索し、ステップ1105にて決定された(X,Y)座標からの固定の相対位置またはオフセット位置に配置する。図110041すべてのセルが配置されると、これらセルは固有化(uniquified)され、物理的DBにリンクされる。PnRツールにおいて、以下のコマンドを用いて達成される:uniquify_fp_mw_cellinklink_physical_library0042セルの入力および出力の配線も、インスタンス名およびVerilogネットリストを用いて導かれる。この配線は、配置情報を用い、セル同士を接続する。これは、マクロセル内の各基本セルの配置が、当該セルのインスタンス名に組み込まれた(X,Y)座標からの既知のオフセット位置であることによってのみ可能となる。0043図12は、本発明の一実施形態による、配線のプロセスのステップ1200を示す。ステップ1201において、クロックステーション設計(デザイン)においてインスタンス化されたすべてのマクロセルの集合が生成される。次に、ステップ1205において、当該集合におけるすべてのマクロセルインスタンスをループし、インスタンス名から(X,Y)座標情報を抽出する。次に、ステップ1210において、各基本セルのピン配置が検索される。次に、ステップ1215において、ステップ1205からの配置情報を用いて、基本セルのインスタンスのためのピンの位置が算出され、各ピンのオフセットを算出する。次に、ステップ1220において、物理的ルートが生成されて、マクロセル内のすべての基本セルの入力ピンを互いに接続し、マクロセルの入力の相互接続を助けるために1つ以上の位置を端子で印付ける。次に、ステップ1225において、物理的ルートが生成されて、マクロセル内のすべての基本セルの出力ピンを互いに接続し、マクロセルの出力の相互接続を助けるために1つ以上の位置を端子で印付ける。次に、ステップ1230において、マクロセルの入力および出力が、ネットリストにおける結合性に従って接続される。最後に、ステップ1235において、低スキューを保つためにルート長の均衡が保たれる。図120044一実施形態では、ステップ1100および1200は、図7のステップ730中に行われる。図70045図13および14は、本発明の一実施形態による、入力配線1300および出力配線1400を説明するために用いられる構造1300および1400をそれぞれ示す。構造1300は、駆動能力が16×(1301および1320)、12×(1305および1315)ならびに8×(1310)の標準セルと、M3入力ピンをM4ストラップに接続するVIA34バイア(1380)と、マクロセルの入力として印付けられたM4上の入力端子(1390)とを示す。構造1400は、駆動能力が16×(1401および1420)、12×(1405および1415)および8×(1410)の標準サイズのセルと、16×インバータ(1445および1465)、12×インバータ(1450および1460)および8×インバータ(1455)の出力ピンと、M3出力を、VIAスタックを介して接続するM8ストラップ(1470)と、M8出力ワイヤを接続するM9ストラップ(1430)と、マクロセルの出力として印付けられたM9上の出力端子(1425)とを示す。図130046図13および14の例では、マクロセル内の基本セルは、単一の列において、一の基本セルの上に他の基本セルが配置されている。他の配置も可能であるが、異なる入力・出力配線パターンを要する。マクロセル内における各基本セル(ひいては、入力ピンおよび出力ピン)の配置は当該マクロセルのインスタンス名に埋め込まれた(X,Y)座標に対して同じであるので、すべてのマクロセルは同一(あるいは同様)の配線パターンを有する。図130047図13および14は、インスタンス名に埋め込まれた物理的位置情報を用いて、どのようにしてインバータが配置配線され得るか、また、どのようにしてこれらインバータを1つのマクロセルとして論理的に動作させながら、物理的DBにおいては複数の基本セルとして表現され得るかを示す。この構造は、バッファやその他任意の論理ゲートを備える他のセルにも展開し得る。チューナブルバッファまたはクロック駆動素子もまた同様に配置配線され得る。図130048<クロックネットワークのチューニング>本発明の一実施形態では、それぞれ基本セルの小さいセットからなる複数のマクロセルにより構築されたクロックネットワークを、当該マクロセルをそれらの基本セルに分割しながらチューニングする。一実施形態では、このチューニングは以下の前提に基づく:A1.各マクロセルのソフトマクロが、レジスタトランジスタロジック(RTL)ステージにて生成される。A2.上記複数のマクロセルが配置配線され、固定されたマクロセルの配置配線により物理的DBが入手可能となる。A3.クロックネットワークにおいてインスタンス化された上記マクロセルのインスタンス名は、レベル情報(クロックツリーでのレベル)および固有の識別子(例えば、物理的位置は固有の識別子として使用可能である)を埋め込んでいる。0049再び、本例のマクロセルが示されたネットリスト900を参照する。ネットリスト900は、クロスリンク付クロックバイナリークロックツリーを示す。上記説明のように、クロックステーションにおいてインスタンス化された各クロックドライバ(クロック駆動素子)のインスタンス名は、その内部に、クロックステーションにおけるそのドライバ(駆動素子)のレベル、およびそのドライバの配置の物理的なX座標およびY座標を有する。これにより、上記第3の前提A3のように、インスタンス名は固有である。0050図15は、本発明の一実施形態による、配置配線されたチューニング用クロック分配ネットワークの物理的DBを用意するために使用されるステップ1500を示す。ステップ1501において、クロックネットワーク(またはクロックステーション)の物理的DBがPnRツールにおいて開かれる。次に、ステップ1503において、各マクロセルの入力ネット上の位置が選択され、この位置を印付けるための端子が生成される。次に、ステップ1505において、各マクロセルの出力ネット上の位置が選択され、この位置を印付けるための端子が生成される。この位置は、当該マクロセルに極めて近接した領域または当該マクロセル上の領域において、選択され得る。次に、ステップ1507において、生成されたすべての端子について、端子名およびマクロセルピン名のリストが、例えばファイルなどに、保持される。必要に応じて、マクロセルピンの方向も保持される。これら情報は、端子名が生成される時に端子名に埋め込まれる。物理的位置情報も保持され得る。最後に、ステップ1509において、クロックメッシュにおいてクロスリンクを追加または削除して当該メッシュの各ドライバ上の容量性負荷について可能な限り均衡を図ることにより、クロックメッシュが初期チューニングされる。この初期チューニングは、ワイヤ長、またはクロックメッシュの各ドライバにより駆動される推定相互接続容量を単に比較するだけで(ワイヤ長と推定相互接続容量の2つのパラメータのみを例示)、シミュレーション無しで行い得る。図13および14は、それぞれ、図15におけるステップ1503および1505が行われた後の物理的DBを示す。(相互接続の抵抗と容量)が、抽出ツールを用いて抽出される。抽出ツールは、ステップ1505および1507において物理的DBに生成された端子を保存するものである。抽出ツールは、ネットリストを生成し、当該ネットリストはクロックネットワークのシミュレーションおよびチューニングに使用される。マクロセルはソフトマクロとしてのみ生成されマクロセル上にはその物理的なレイアウトビューは存在しないので、抽出ツールはマクロセルを平坦化し、基本セルを用いてネットリストを生成することになる。表1に、抽出されたネットリストにおけるマクロセルの基本セルの一例を示す。std_cell_ckinvx160053これらマクロセルを使用するクロック分配ネットワークのチューニングにおいて、回路シミュレーション中に、これらセルを再度組み合わせる必要がある。基本セルをマクロセルに再度組み合わせる能力を有しない場合は、チューニングフローは、クロック分配ネットワークのリレーアウトおよび再抽出を伴うであろう。この場合、チューニングフローは行いにくくなり、繰り返し回数が制限されてしまう可能性がある。表2はこれを示し、表1の基本セルがどのようにしてチューニングのためにマクロセルに取り込まれる(collapsed)を示す。VDDVSSxp_ckinv6400551503および1505にて生成された端子は、抽出されたネットリストで取り込まれたマクロセルを接続するために用いられる。表2の例では、clk_L4_in1はステップ1503で生成された端子であり、clk_L3_out1は、ステップ1505で生成された端子である。これら端子は、マクロセルの上に(物理的に)位置するように、またはマクロセルに極めて近接して(物理的に)位置するように、選択される。この情報は、(各端子をマクロセルピン名にマッピングするファイルを生成する、または端子の物理的位置を含む)ステップ1507より入手可能である。この情報は、端子名自体に埋め込まれている。ある実施形態では、チューニングされるマクロセルの取込みを行うためにスクリプトが使用される。同時に、クロックネットワークのネットリストへの刺激を生成するためのファイル、および、マクロセルの入力および出力における種々の回路パラメータを測定するための測定ステートメント(測定明細)を生成するためのファイルが生成され得る。各マクロセルの入力および出力は端子により印付けられているので(例えば、ステップ1503および1505)、測定ステートメントはこれら端子において生成され得る。いくつかの単なる例として、測定は、遅延、スリュー、電荷、電流、またはこれらパラメータの任意の組合せを含む。0056一実施形態において、クロック配分における同レベルのすべてのドライバの出力での遅延とスリューの均衡を図るために、クロックネットワークは、いくつかのマクロセルの有効駆動能力を変えることによってチューニングされる。このチューニングは、回路シミュレーションツール(例えば、Hspice)を使用して行われる。クロックネットワークは、回路シミュレーションの間に測定された、1つ以上のパラメータを比較して均一化を試みることによってチューニングされ得る。いくつかの例として、これらパラメータは、遅延、スリュー、電流、または電荷を含む。以下の単なる例では、パラメータとしてスリューが用いられる。任意の他のパラメータまたはパラメータの組合せを用いてもよい。0057本例では、「Target_slew」が、特定のマクロセルの出力のための目標スリュー値であり、「Current_slew」が、そのマクロセルの出力での回路シミュレーションで測定されたスリューである。「Current_size」は、当該マクロセルの現在のサイズ(または駆動能力)である。式(2)は、スリュー測定に基づいてクロックネットワークをチューニングするためのマクロセルの新たなサイズを導出するために用いられる。New_size=Current_size*(1+(Current_slew−Target_slew)/(Target_slew))式(2)0058異なる実施形態では、マクロセルの新たなサイズを導出するために、以下の式(3)のような異なる式が用いられる。New_size=Current_size*(1+(Current_slew−Target_slew)/(Current_slew))式(3)0059他の実施形態では、テーブル索引が用いられて、測定されたスリュー値を索引し、テーブルから新たなセルサイズを決定する。異なるセルサイズが異なる範囲のスリュー値に関連付け可能である。0060新たなセルサイズが算出されると、これら新たなセルサイズは、シミュレーションに使用されるネットリストに組み込まれる。新たなセルサイズをもつクロックネットワークが再度シミュレートされ、セルのサイズ変更の影響が検証される。スリュー(または他の測定値)がまだ目標値に達してなければ、再度セルのサイズ変更が行われる。これは、終了条件が満たされるまで繰り返される。いくつかの例として、終了条件は、以下の1つ以上の終了条件を含む:すべてのマクロセルについて、New_size=Current_sizeである。スリュー(または他の任意の測定値)が、目標値からのユーザ定義範囲内である。繰り返し回数がユーザ定義限度に達している。0061当業者であれば、本発明の原理に基づいて、他の終了条件および終了条件の組合せが使用可能であることを理解するであろう。0062終了条件が満たされると、すべての新たなサイズは、シミュレーション用の回路ネットリストおよびクロックネットワーク用RTLネットリストにおいて更新される。新たなセルサイズは、クロックネットワークにおけるレイアウト(特に配線)に影響を与える。改訂されたRTLネットリストは、レイアウト変更を誘導するために用いられる。0063<ハードウェア構成要素>図16は、本発明の一実施形態による、電子設計ツール1600のブロック図である。図7、8、11、12および15を参照して、電子設計ツール1600は、プロセッサ1630およびメモリ1610を備える。メモリ1610は、ステップ700、800、1100、1200および1500を実行するためのコンピュータ実行可能指令1615と、データ750、755、760、765および770を含む領域1620とを含むコンピュータ読取可能媒体を格納する。図16図70064動作において、電子設計ツールは、クロック分配ネットワークを備えた半導体装置の製作に用いられる。クロック分配ネットワークにおけるシーケンシャル素子の負荷が判定され、駆動能力がクロック分配ネットワークのスキューを低減するように判定される。クロック分配ネットワーク上のインバータは、標準セルライブラリからの標準化されたセルつまり「基本」のセルにより形成され、これにより、クロック分配ネットワーク、ひいては半導体装置全体の製作にかかる費用および時間が削減される。有利には、これら基本セルは、ある数値範囲内で駆動能力を「チューニング」するために使用可能である。0065配置配線中に基本セルを含むマクロセルはインスタンス化され、(X,Y)座標情報がインスタンス名から抽出される。マクロセル内の基本セルが、(X,Y)座標からの固定された相対位置またはオフセット位置に配置される。次に、マクロセルは、以下の手順で配線される:クロックステーション設計においてインスタンス化されたマクロセルの集合を生成し;インスタンス名より(X,Y)座標情報を抽出し;各基本セルのためのピン位置を取得し;(X,Y)座標情報を用いてピンの位置を算出し;入力ピンをマクロセル内の基本セルと相互接続させるための物理的配線を生成し、1つ以上の位置を端子で印付けて複数のマクロセルの入力同士の接続を助け;マクロセル内のすべての基本セルの出力ピンを相互接続させるための物理的配線を生成し、1つ以上の位置を端子で印付けて複数のマクロセルの出力同士の接続を助け;マクロセルの入力と出力をネットリストにおける接続性に従って接続し;低いスキューを保つために複数のルート長の均衡を図る。0066配置配線されたチューニング用クロック分配ネットワークの物理的DBを用意するために、各マクロセルの入力ネットリストおよび出力ネットリストの位置が生成され、これら位置を印付けるために端子が選択される。生成されたすべての端子および端子名のリストに対して、マクロセルピン名、および必要に応じてピンの方向が、好ましくはファイルに保存される。これら情報は、端子名の生成時に端子名に埋め込まれる。物理的位置が含められてもよい。次に、クロックメッシュにおいてクロスリンクを追加または削除して、当該メッシュの各ドライバの容量性負荷の均衡を図ることにより、クロックメッシュが初期チューニングされる。この初期チューニングは、ワイヤ長、またはクロックメッシュの各ドライバにより駆動される推定相互接続容量を単に比較することによってなし得る。Networks」(ハイブリッドツリーメッシュクロック分配ネットワークの基本セルの小サブセットから構築された可変駆動力クロックドライバを用いてクロックステーションを配置配線するシステムおよび方法))、[代理人整理番号:XPL−00200]に記載されている。これら両文献は、参照によりその全文が援用される。0068以上本発明の異なる実施形態について述べたが、これら実施形態の任意の数の組合せが可能であることを理解されたい。上記の実施形態は、本発明の例示にすぎず、その範囲を限定しようとするものではない。当業者であれば、添付の請求の範囲によって規定された本発明の要旨を逸脱することなく上記実施形態に変更を加えることが可能であることに容易に想到するであろう。ページトップへこの技術を出願した法人この情報を共有FacebookTwitterGoogle+LinkedInこの技術を発明した人物この情報を共有FacebookTwitterGoogle+LinkedInページトップへ関連する挑戦したい社会課題この情報を共有FacebookTwitterGoogle+LinkedIn交通渋滞のない社会を実現する交通渋滞のない社会を実現すると、移動時のストレスがなくなり、廃棄ガス量の減少など環境問題の解決にも大きく貢献します。交通渋滞によって生じる経済的な損失は非常に大きく、2017年には国内だけで年...最終更新日:2018/06/18癌(5大疾病)のない社会を実現する癌のない社会を実現すると、全世界の患者約1,750万人を助け、年間約760万人の亡くなる命を救うことができます。イノベーションを導く多くの企業が膨大な労力と費用をかけて新たな市場や事業を生み出そうとしている中「イノベーション」にかかわるデータのニーズはかつてないほどの高まりを見せいます。プライマリ幾何オブジェクトおよびそれらのファセットから幾何モデルを作成する目的でコンピュータを使用してブーリアン演算を実行すること。属し、パラメーター反転計算により残留応力加工パラメーターを調整する方法を開示している。交通渋滞のない社会を実現する交通渋滞のない社会を実現すると、移動時のストレスがなくなり、廃棄ガス量の減少など環境問題の解決にも大きく貢献します。交通渋滞によって生じる経済的な損失は非常に大きく、2017年には国内だけで年...癌(5大疾病)のない社会を実現する癌のない社会を実現すると、全世界の患者約1,750万人を助け、年間約760万人の亡くなる命を救うことができます。厚労省が定めた五大疾病に含まれる癌は、周囲の組織を破壊し、治療が遅れると全身に転...サイバー攻撃のない社会を実現する5G通信技術、IoTサービスの普及に伴い「サイバー攻撃のない社会」はこれまで以上に重要になります。イノベーションを導く多くの企業が膨大な労力と費用をかけて新たな市場や事業を生み出そうとしている中「イノベーション」にかかわるデータのニーズはかつてないほどの高まりを見せいます。データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。”未来を創るためのプラットフォーム”astamuseは、世界中で未来を創るための「仕組み」を提供するため日々改善を進めています。専門用語を解析し、意味や用法を知ることが出来るキーワード情報そしてこれらの情報を最大限活用することで、挑戦したい社会課題を独自の切り口で編集。社会に大きな変化を起こし、未来を創るために活動し続けるのは容易なことではありません。行う為に必要なサービスの提供を行っていきます。それが私たちの考える“未来を創ること”です。