図面 (/)

技術 基本セルの小集合によって構築された可変駆動能力クロックドライバを備えた可変駆動能力クロックインバータを用いて構成されたクロックネットワークをチューニングするシステムおよび方法

出願人 カビウム・エルエルシー
発明者 ニキル・ジャヤクマーヴィヴェック・トリヴェディヴァサント・ケイ・パリセッティバガヴァティ・アール・ムーラダマン・アルワリアアミア・エイチ・モタメディ
出願日 2014年12月25日 (5年2ヶ月経過) 出願番号 2014-263371
公開日 2015年7月6日 (4年8ヶ月経過) 公開番号 2015-125779
状態 特許登録済
技術分野 ICの設計・製造(配線設計等) CAD
主要キーワード 基本標準 バイナリツリー構造 出力ワイヤ カスタムサイズ 次素子 Y座標 チューニングシステム 設計解析
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2015年7月6日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

可変駆動能力クロックドライバによって構成されたクロック分配ネットワーク製作にかかる費用および時間を削減する。

解決手段

集積回路の設計をチューニングするシステムであって、プロセッサと、集積回路の設計にインスタンス化されたマクロセル集合を生成する合成モジュールであって、集積回路の設計が前記集積回路の容量性負荷を駆動する複数のドライバを有する、合成モジュールと、マクロセルのそれぞれの入力ネットリストおよび出力ネットリストの位置を選択し、位置を印付け端子を生成し、端子の名前およびマクロセルのピンの名前を決定する配置配線モジュールと、所定の判定基準に従って前記複数のドライバの容量性負荷の均衡を図ることによって、集積回路をチューニングする検証モジュールとを備える。

概要

背景

半導体装置が適切に機能するには、当該半導体装置は、フリップフロップラッチおよびメモリなどの並列な「シーケンシャル素子(逐次素子)」に対して、ほぼ同時にクロック信号分配しなければならない。クロック信号が異なるタイミングでこれら並列素子到着した場合、「クロックスキュー」が生じることにより、セットアップ違反ホールド違反を含む様々な問題が発生し、半導体装置内で伝送されるデータの整合性が危険にさらされる可能性がある。

規模半導体装置は、当該装置上の素子に対してクロック信号を分配するクロック分配ネットワークを用いてスキューを低減する。クロック信号の立ち上がり時間および立ち下がり時間設計要件を満たすことを確実にするために、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により駆動される。階層的バイナリツリー構造150において、クロック駆動素子145(レベルL2)は、4つのクロック駆動素子120A〜C(レベルL1)を駆動し、クロック駆動素子160(レベルL3)は素子145とレベルL2の他の素子を駆動する。

概要

可変駆動能力クロックドライバによって構成されたクロック分配ネットワークの製作にかかる費用および時間を削減する。集積回路の設計をチューニングするシステムであって、プロセッサと、集積回路の設計にインスタンス化されたマクロセル集合を生成する合成モジュールであって、集積回路の設計が前記集積回路の容量性負荷を駆動する複数のドライバを有する、合成モジュールと、マクロセルのそれぞれの入力ネットリストおよび出力ネットリストの位置を選択し、位置を印付け端子を生成し、端子の名前およびマクロセルのピンの名前を決定する配置配線モジュールと、所定の判定基準に従って前記複数のドライバの容量性負荷の均衡をることによって、集積回路をチューニングする検証モジュールとを備える。

目的

さらに、これら標準サイズのインバータは徹底的にテストされており、予想通りに機能するので、これらクロック分配ネットワークを用いて半導体装置をデバッギングする時間が短縮され、製品をより早く市場に提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

チューニング用の集積回路を準備する方法であって、前記集積回路の設計にインスタンス化された複数のマクロセル集合を生成することであって、前記集積回路の設計が前記集積回路上の容量性負荷を駆動する複数のドライバを有する、生成することと、前記マクロセルのそれぞれの入力ネットリストおよび出力ネットリストの位置を選択し、前記位置を印付け端子を生成することと、前記端子の名前および前記マクロセルのピンの名前を決定することと、所定の判定基準に従って前記複数のドライバの容量性負荷の均衡を図ることによって、前記集積回路を初期チューニングすることとを備えた、チューニング用集積回路準備方法

請求項2

請求項1に記載の方法において、さらに、配置配線(PnR)ツールを用いて、前記集積回路の物理的DBを開くことを含む、チューニング用集積回路準備方法。

請求項3

請求項2に記載の方法において、前記集積回路が、クロスリンクを含むクロックネットワークを備える、チューニング用集積回路準備方法。

請求項4

請求項3に記載の方法において、前記クロックネットワークが、クロックメッシュクロックツリーメッシュおよびハイブリッドツリーメッシュのうちの1つを備える、チューニング用集積回路準備方法。

請求項5

請求項3に記載の方法において、前記集積回路のチューニングが、前記クロスリンクを追加することおよび削除することの任意の組合せを含む、チューニング用集積回路準備方法。

請求項6

請求項3に記載の方法において、前記マクロセルのそれぞれが、1つ以上の標準サイズの対応する基本セルのみを含む、チューニング用集積回路準備方法。

請求項7

請求項6に記載の方法において、さらに、前記マクロセルのそれぞれを平坦化して、対応する基本セルを含むネットリストを生成することを備えた、チューニング用集積回路準備方法。

請求項8

請求項7に記載の方法において、前記集積回路のチューニングは、回路シミュレーション中に、前記端子の前記名前と前記マクロセルのピンの前記名前とを用いて、前記基本セルを再度組み合わせて対応するマクロセルにすることを含む、チューニング用集積回路準備方法。

請求項9

請求項8に記載の方法において、さらに、前記端子の前記名前と前記マクロセルの前記名前とをファイルに格納することを備えた、チューニング用集積回路準備方法。

請求項10

請求項8に記載の方法において、さらに、前記端子の前記名前と前記マクロセルのピンの名前とを対応する端子の名前に埋め込むことを備えた、チューニング用集積回路準備方法。

請求項11

請求項10に記載の方法において、さらに、端子の物理的位置情報を、対応する端子の名前に埋め込むことを備えた、チューニング用集積回路準備方法。

請求項12

請求項1に記載の方法において、さらに、前記集積回路のネットリストに刺激を導入し、前記マクロセルの入力および出力における回路パラメータを測定することを備えた、チューニング用集積回路準備方法。

請求項13

請求項12に記載の方法において、チューニングが、前記集積回路のシミュレーション中に測定された1つ以上のパラメータを均一化することを含む、チューニング用集積回路準備方法。

請求項14

請求項13に記載の方法において、前記1つ以上のパラメータは、遅延スリュー電流電荷、またはこれらの任意の組合せを含む、チューニング用集積回路準備方法。

請求項15

請求項14に記載の方法において、チューニングが、終了条件が満たされるまで前記マクロセルをサイズ変更することを含む、チューニング用集積回路準備方法。

請求項16

請求項15に記載の方法において、前記終了条件は、前記マクロセルのサイズが目標サイズと等しくなること、測定されたスリューが所定の範囲内であること、サイズ変更の回数が所定の限度に達したこと、またはこれらの任意の組合せを含む、チューニング用集積回路準備方法。

請求項17

請求項16に記載の方法において、サイズ変更は、以下の式に基づく、チューニング用集積回路準備方法。New_size=Current_size*(1+(Current_slew−Target_slew)/(Target_slew))ここで、New_sizeは、あるマクロセルの新たなサイズであり、Current_sizeは、当該マクロセルの現在のサイズであり、Current_slewは、現在のスリューであり、Target_slewは、所定の目標スリューである。

請求項18

請求項16に記載の方法において、サイズ変更は、以下の式に基づく、チューニング用集積回路準備方法。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に記載のシステムにおいて、サイズ変更は、以下の式に基づく、集積回路設計チューニングシステム。New_size = Current_size* (1 + (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は、所定の目標スリューである。

請求項33

クロック分配ネットワークを備えた半導体装置であって、当該クロック分配ネットワークは、標準サイズの基本セルのみを含むマクロセルから構成された複数のクロック駆動素子を備え、前記マクロセルのそれぞれについて、対応する前記基本セルが当該マクロセルとの相対的な所定の配置に従って配置され、さらに、前記マクロセルが、シミュレーション中に1つ以上の回路シミュレーションパラメータに従ってサイズ変更されている、半導体装置。

請求項34

請求項33に記載の半導体装置において、前記1つ以上の回路シミュレーションパラメータが、遅延、スリュー、電流、電荷、またはこれらの任意の組合せを含む、半導体装置。

請求項35

請求項33に記載の半導体装置において、前記クロック分配ネットワークは、クロックツリー、クロックメッシュ、またはハイブリッドツリーメッシュを備えた、半導体装置。

技術分野

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の他の素子を駆動する。

発明が解決しようとする課題

0005

図1A,1Bは、図面の簡略化のため、数個の、インバータ、リブおよびクロスリンクを示すが、クロック分配ネットワークは、典型的に、何十万ものこれら構成要素を有し、数千のクロック受信素子(シーケンシャル素子)に対してクロック信号を向ける。これら素子は、図1Aの非直線要素140のような他の構造と同様に、クロック分配ネットワークに対して様々な負荷となり、スキューが増加する。

0006

短絡電力低減のためには、出力が短絡されたインバータの入力間のスキューを可能な限り低く保つことが重要である。つまり、設計時におけるクロック分配ネットワークの構造的スキューを低減することが重要である。クロスリンクによって出力が短絡された、クロック分配ネットワークにおけるインバータが互いに同じ負荷特性を有することを保証するのは、不可能かもしれない。そのため、構造的スキューを低減するように、チューナブルクロックインバータが必要となる。クロックインバータは、大きい負荷を駆動するものが大きい駆動能力を持ち、小さい負荷を駆動するものが小さい駆動能力をもつように、チューニングされる。ハイブリッドツリーメッシュ型クロック分配ネットワークの最終段において、負荷は、フリップフロップ密度や非直線クロックメッシュ領域のばらつきを含む様々な理由によって、大幅にばらつく可能性がある。

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を用意するプロセスのステップを示すフローチャートである。
本発明の一実施形態に従って上記デジタル設計フローを行うための設計ツールブロック図である。

実施例

0017

本発明の原理に基づいて、チューナブルクロックドライバ(調整可能クロックドライバ)のソフトマクロセルが、電子設計自動化(EDA)プロセスのRTLステージ(RTLレベル)において生成される。EDAプロセスフローにおけるすべてのツールが、当該セルをその構成要素である基本セルに分割し、これにより、当該マクロセルのためのタイミングDB、物理的セルビュー、LVSネットリスト、および他の付帯的要素を維持することを不要とする。

0018

本発明によれば、チューナブルクロックドライバのソフトマクロを生成するが、マクロセルは上記フローを通して維持されるものではない。ソフトマクロは、RTLステージおよびセルをその構成要素である基本セルに分割するためにフローで使用されるツールにおいて生成され、これにより当該マクロセルのためのタイミングDB、物理的セルビュー、LVSネットリスト、および他の付帯的要素を維持することを不要とする。

0019

以下の記載において、第1に、スタンダードセルライブラリからのマクロセルをどのように組み合わせて、クロック分配ネットワークにおけるクロック受信素子を駆動するための駆動能力信号の調整可能(チューナブル)範囲を生成するかについて説明する。第2に、これらマクロセルをどのように配置配線するかについて説明する。第3に、マクロセルにより構築されたこれらクロックネットワークを、本発明の原理に基づいてどのようにチューニングするかについて説明する。

0020

<標準サイズのマクロセルのみを用いたクロック分配ネットワークの生成>
本発明の原理に基づいて、半導体装置クロック分配ネットワークは、当該装置上のシーケンシャル(クロック受信)素子の駆動に必要な駆動能力にかかわらず、標準サイズのインバータのみを使用する。カスタムサイズのインバータを作成あるいは第三者から購入する必要がないので、設計プロセスが従来技術のプロセスよりも安価になる。さらに、これら標準サイズのインバータは徹底的にテストされており、予想通りに機能するので、これらクロック分配ネットワークを用いて半導体装置をデバッギングする時間が短縮され、製品をより早く市場に提供することができる。

0021

一例として、電子設計自動化中に、クロック受信要素のための駆動能力が判定される。システムは、カスタムサイズの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)に基づいてインバータを結合することにより決定される。
DX = 8×*a+12×*b+16×*c 式(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は互いに異なる。当業者であれば、他の理由により負荷がばらつく可能性があることを理解するであろう。

0025

負荷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)のセルを生成するかについて、ほんの数例の可能な組合せを示す。

0027

一実施形態では、すべての標準サイズのインバータは、半導体装置の1つ以上の層上に形成される。これらインバータは、VIAプログラミングによって、すなわち、インバータを共にシーケンシャル素子を駆動する出力ピン電気的に結合するバイアを追加または削除することによって、組合せつまり「チューニング」される。図1Bを参照し、このようなチューニングは、クロック分配ネットワークにおける上流素子(例えば、145および160)には影響しない。

0028

一実施形態では、基本セルは、「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の間のバイアとを含む。

0030

図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プログラミングを想到できるであろう。

0031

図7は、本発明の実施形態に従って使用される、対応するハードウェア構成要素を有する半導体装置のためのデジタル設計フローのステップ700を示すフローチャートである。ハードウェア記述言語およびVerilog/VHDLライブラリ750を用いた設計解析設計仕様および設計実装が、それぞれ、ステップ701、705および710で行われる。合成ステップは、標準セルライブラリ755を用いてステップ715にて行われる。このステップでは、多くのサブステップを含み得るが、クロック分配ネットワークおよびシーケンシャル要素を含む上記構成要素の構築ブロックが合成される。クロック分配ネットワークは、標準サイズのセルのみを用いて合成される。このステージでは、論理回路が決定される。合成ステップ715の出力はネットリストであり、装置および各装置間の相互接続を示すASCIIファイルである。シミュレーションは、上記ネットリストを用いてステップ720にて行われ、設計を検証し、仕様通りでない場合は、ステップ710へループバックする。仕様通りであれば、ステップ725のタイミング解析へと進み、例えば、スキューを判定する。ステップ725の後、ステップ730にて配置配線が行われ、ステップ735にて抽出、すなわち性能に悪影響を与える構成要素の抽出および検査が行われ、ステップ740において検証、すなわち装置の製造または最適化や変更のために設計が修正される。設計を変更すべき場合は、ステップ715へループバックする。

0032

図7に示すように、タイミング解析ステップ725はタイミング用ルックアップテーブル760にアクセスし、配置配線ステップ730はレイアウト値用Techファイル765にアクセスし、抽出ステップ735はRC寄生抽出用Techファイル770にアクセスする。

0033

ステップ700は、本発明の一実施形態の例示に過ぎないことを理解されたい。他の実施形態では、ほんの数例を挙げれば、他のステップが追加され、いくつかのステップは組み合わされ、連続するステップは異なる順序で行われる。

0034

図8は、図7の標準セルライブラリ755に格納された標準セルインバータを判定するステップ800を示す。プロセスのこのステージでは、合成ステップ715、検証ステップ740、またはその他のステップと同様に、各クロックインバータの負荷(ひいては、所要または「目標の」駆動能力)が既に決定されている。開始ステップ801において、目標駆動能力により駆動される第1のクロック受信素子が選択される。ステップ803では、上記式1に示されたような適切なクロック駆動能力を生成するために、標準セルライブラリに格納された標準サイズのマクロセルの組合せが判定される。そして、ステップ805では、これらインバータが組合せまたは「一群化」されて、図4〜6に示すようなVIAプログラミングを用いて目標駆動能力を生成する。ステップ807では、設計(デザイン)中に他のクロック受信素子があるか否かを判定し、もしあれば、ステップ803へループバックする。もし無ければ、ステップ809にてプロセスを終了する。

0035

ステップ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座標は、インスタンス名の内部にあり、ドライバのレベル番号の後に記載される。例えば、インスタンス、
xp_ckinvx64 xL3_5094p600_8p100 (.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/xinv1
xL3_5094p600_8p100/xinv2
xL3_5094p600_8p100/xinv3
xL3_5094p600_8p100/xinv4
xL3_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)座標からの固定の相対位置またはオフセット位置に配置する。

0041

すべてのセルが配置されると、これらセルは固有化(uniquified)され、物理的DBにリンクされる。これは、Synopsys社製のIC Complier PnRツールにおいて、以下のコマンドを用いて達成される:
uniquify_fp_mw_cel
link
link_physical_library

0042

セルの入力および出力の配線も、インスタンス名およびVerilogネットリストを用いて導かれる。この配線は、配置情報を用い、セル同士を接続する。これは、マクロセル内の各基本セルの配置が、当該セルのインスタンス名に組み込まれた(X,Y)座標からの既知のオフセット位置であることによってのみ可能となる。

0043

図12は、本発明の一実施形態による、配線のプロセスのステップ1200を示す。ステップ1201において、クロックステーション設計(デザイン)においてインスタンス化されたすべてのマクロセルの集合が生成される。次に、ステップ1205において、当該集合におけるすべてのマクロセルインスタンスをループし、インスタンス名から(X,Y)座標情報を抽出する。次に、ステップ1210において、各基本セルのピン配置が検索される。次に、ステップ1215において、ステップ1205からの配置情報を用いて、基本セルのインスタンスのためのピンの位置が算出され、各ピンのオフセットを算出する。次に、ステップ1220において、物理的ルートが生成されて、マクロセル内のすべての基本セルの入力ピンを互いに接続し、マクロセルの入力の相互接続を助けるために1つ以上の位置を端子で印付ける。次に、ステップ1225において、物理的ルートが生成されて、マクロセル内のすべての基本セルの出力ピンを互いに接続し、マクロセルの出力の相互接続を助けるために1つ以上の位置を端子で印付ける。次に、ステップ1230において、マクロセルの入力および出力が、ネットリストにおける結合性に従って接続される。最後に、ステップ1235において、低スキューを保つためにルート長の均衡が保たれる。

0044

一実施形態では、ステップ1100および1200は、図7のステップ730中に行われる。

0045

図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)とを示す。

0046

図13および14の例では、マクロセル内の基本セルは、単一の列において、一の基本セルの上に他の基本セルが配置されている。他の配置も可能であるが、異なる入力・出力配線パターンを要する。マクロセル内における各基本セル(ひいては、入力ピンおよび出力ピン)の配置は当該マクロセルのインスタンス名に埋め込まれた(X,Y)座標に対して同じであるので、すべてのマクロセルは同一(あるいは同様)の配線パターンを有する。

0047

図13および14は、インスタンス名に埋め込まれた物理的位置情報を用いて、どのようにしてインバータが配置配線され得るか、また、どのようにしてこれらインバータを1つのマクロセルとして論理的に動作させながら、物理的DBにおいては複数の基本セルとして表現され得るかを示す。この構造は、バッファやその他任意の論理ゲートを備える他のセルにも展開し得る。また、チューナブルバッファまたはクロック駆動素子もまた同様に配置配線され得る。

0048

<クロックネットワークのチューニング>
本発明の一実施形態では、それぞれ基本セルの小さいセットからなる複数のマクロセルにより構築されたクロックネットワークを、当該マクロセルをそれらの基本セルに分割しながらチューニングする。一実施形態では、このチューニングは以下の前提に基づく:
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を示す。

0051

ステップ1509の後、物理的配線情報(相互接続の抵抗と容量)が、抽出ツールを用いて抽出される。抽出ツールは、ステップ1505および1507において物理的DBに生成された端子を保存するものである。抽出ツールは、ネットリストを生成し、当該ネットリストはクロックネットワークのシミュレーションおよびチューニングに使用される。マクロセルはソフトマクロとしてのみ生成されマクロセル上にはその物理的なレイアウトビューは存在しないので、抽出ツールはマクロセルを平坦化し、基本セルを用いてネットリストを生成することになる。表1に、抽出されたネットリストにおけるマクロセルの基本セルの一例を示す。

0052

表1
XxL3_5905p600_8p100/xinv1 clk_L4:F44 clk_L3:F52 VDDVSSstd_cell_ckinvx16
XxL3_5905p600_8p100/xinv2 clk_L4:F80 clk_L3:F87 VDD VSS std_cell_ckinvx12
XxL3_5905p600_8p100/xinv3 clk_L4:F09 clk_L3:F14 VDD VSS std_cell_ckinvx8
XxL3_5905p600_8p100/xinv4 clk_L4:F30 clk_L3:F37 VDD VSS std_cell_ckinvx12
XxL3_5905p600_8p100/xinv5 clk_L4:F59 clk_L3:F67 VDD VSS std_cell_ckinvx16

0053

これらマクロセルを使用するクロック分配ネットワークのチューニングにおいて、回路シミュレーション中に、これらセルを再度組み合わせる必要がある。基本セルをマクロセルに再度組み合わせる能力を有しない場合は、チューニングフローは、クロック分配ネットワークのリレーアウトおよび再抽出を伴うであろう。この場合、チューニングフローは行いにくくなり、繰り返し回数が制限されてしまう可能性がある。表2はこれを示し、表1の基本セルがどのようにしてチューニングのためにマクロセルに取り込まれる(collapsed)を示す。

0054

表2
XxL3_5905p600_8p100 clk_L4_in1 clk_L3_out1 VDDVSSxp_ckinv64

0055

1503および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とを含むコンピュータ読取可能媒体を格納する。

0064

動作において、電子設計ツールは、クロック分配ネットワークを備えた半導体装置の製作に用いられる。クロック分配ネットワークにおけるシーケンシャル素子の負荷が判定され、駆動能力がクロック分配ネットワークのスキューを低減するように判定される。クロック分配ネットワーク上のインバータは、標準セルライブラリからの標準化されたセルつまり「基本」のセルにより形成され、これにより、クロック分配ネットワーク、ひいては半導体装置全体の製作にかかる費用および時間が削減される。有利には、これら基本セルは、ある数値範囲内で駆動能力を「チューニング」するために使用可能である。

0065

配置配線中に基本セルを含むマクロセルはインスタンス化され、(X,Y)座標情報がインスタンス名から抽出される。そして、マクロセル内の基本セルが、(X,Y)座標からの固定された相対位置またはオフセット位置に配置される。次に、マクロセルは、以下の手順で配線される:クロックステーション設計においてインスタンス化されたマクロセルの集合を生成し;インスタンス名より(X,Y)座標情報を抽出し;各基本セルのためのピン位置を取得し;(X,Y)座標情報を用いてピンの位置を算出し;入力ピンをマクロセル内の基本セルと相互接続させるための物理的配線を生成し、1つ以上の位置を端子で印付けて複数のマクロセルの入力同士の接続を助け;マクロセル内のすべての基本セルの出力ピンを相互接続させるための物理的配線を生成し、1つ以上の位置を端子で印付けて複数のマクロセルの出力同士の接続を助け;マクロセルの入力と出力をネットリストにおける接続性に従って接続し;低いスキューを保つために複数のルート長の均衡を図る。

0066

配置配線されたチューニング用クロック分配ネットワークの物理的DBを用意するために、各マクロセルの入力ネットリストおよび出力ネットリストの位置が生成され、これら位置を印付けるために端子が選択される。生成されたすべての端子および端子名のリストに対して、マクロセルピン名、および必要に応じてピンの方向が、好ましくはファイルに保存される。あるいは、これら情報は、端子名の生成時に端子名に埋め込まれる。また、物理的位置が含められてもよい。次に、クロックメッシュにおいてクロスリンクを追加または削除して、当該メッシュの各ドライバの容量性負荷の均衡を図ることにより、クロックメッシュが初期チューニングされる。この初期チューニングは、ワイヤ長、またはクロックメッシュの各ドライバにより駆動される推定相互接続容量を単に比較することによってなし得る。

0067

本発明に基づいて標準サイズのセルを結合しクロックステーションの配置配線をおこなう方法および装置は、N. Jayakumarらによる出願(発明の名称「System for and Method of Combining CMOS Inverters of Multiple Drive Strengths to Create Tune-able Clock Inverters of Variable Drive Strengths in Hybrid Tree-Mesh Clock Distribution Networks(ハイブリッドツリーメッシュクロック分配ネットワークにおける可変駆動力のチューニング可能なクロックインバータを生成するように複数の駆動力のCOMSインバータを組合せるシステムおよび方法)」)、[代理人整理番号:XPL−00100]、およびN. Jayakumarらによる出願(発明の名称「System for and Method of Placing and Routing Clock Stations Using Variable Drive-Strength Clock Drivers Built Out of a Smaller Subset of Base Cells for Hybrid Tree-Mesh Clock Distribution Networks」(ハイブリッドツリーメッシュクロック分配ネットワークの基本セルの小サブセットから構築された可変駆動力クロックドライバを用いてクロックステーションを配置配線するシステムおよび方法))、[代理人整理番号:XPL−00200]に記載されている。これら両文献は、参照によりその全文が援用される。

0068

以上本発明の異なる実施形態について述べたが、これら実施形態の任意の数の組合せが可能であることを理解されたい。上記の実施形態は、本発明の例示にすぎず、その範囲を限定しようとするものではない。当業者であれば、添付の請求の範囲によって規定された本発明の要旨を逸脱することなく上記実施形態に変更を加えることが可能であることに容易に想到するであろう。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ