JPH11119854A - クロックパス生成方法および装置 - Google Patents
クロックパス生成方法および装置Info
- Publication number
- JPH11119854A JPH11119854A JP9287463A JP28746397A JPH11119854A JP H11119854 A JPH11119854 A JP H11119854A JP 9287463 A JP9287463 A JP 9287463A JP 28746397 A JP28746397 A JP 28746397A JP H11119854 A JPH11119854 A JP H11119854A
- Authority
- JP
- Japan
- Prior art keywords
- macro
- clock
- macros
- clock path
- group
- 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.)
- Withdrawn
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
(57)【要約】
【課題】 クロックパス生成において、ターゲットマク
ロの分布状況を考慮し、効率的にクロック分配マクロを
生成することを課題とする。 【解決手段】 分割部により、LSIに配置されるN段
目の複数のマクロをグループに区分し、N段目のマクロ
がグループ化された後に、生成部により、各グループ毎
に、そのグループ内のマクロにクロック信号を供給する
マクロを生成する。
ロの分布状況を考慮し、効率的にクロック分配マクロを
生成することを課題とする。 【解決手段】 分割部により、LSIに配置されるN段
目の複数のマクロをグループに区分し、N段目のマクロ
がグループ化された後に、生成部により、各グループ毎
に、そのグループ内のマクロにクロック信号を供給する
マクロを生成する。
Description
【0001】
【発明の属する技術分野】本発明は、LSIの設計にお
いて、特にLSI内に配置されるマクロ群に対するクロ
ック信号の供給系統の生成及び配置に関するものであ
る。近年のLSIの大規模化および高速化に伴い、配線
の複雑化やスキューの発生が問題となってきている。 配
線の経路の確立とクロックスキューの調整はトレードオ
フの関係にあり、設計工数の増大を招いている。設計工
数の高効率化を達成するために、自動処理と会話処理の
最適な組み合わせが試行されており、自動処理装置と回
路エディタの一部の会話機能を利用した回路設計装置が
提案されている。しかし、これは、限られた種類のLS
Iのクロックスキューの調整に対しては有効であるが、
LSI全体のクロックスキュー調整に対しては充分に機
能しているとはいえない。そのため、論理設計から実装
設計までの一連の設計作業において、LSIの種類に依
存しないクロック分配マクロの生成やクロックスキュー
の調整が望まれている。この要望に応えるためには、実
装設計に移る前の段階(フロアープラン)である程度の
範疇でクロックスキューを許容したうえで、クロック分
配マクロを生成し、実装設計の段階でディレイ解析結果
に基づいて再生成処理をカット&トライできる装置が必
要とされている。
いて、特にLSI内に配置されるマクロ群に対するクロ
ック信号の供給系統の生成及び配置に関するものであ
る。近年のLSIの大規模化および高速化に伴い、配線
の複雑化やスキューの発生が問題となってきている。 配
線の経路の確立とクロックスキューの調整はトレードオ
フの関係にあり、設計工数の増大を招いている。設計工
数の高効率化を達成するために、自動処理と会話処理の
最適な組み合わせが試行されており、自動処理装置と回
路エディタの一部の会話機能を利用した回路設計装置が
提案されている。しかし、これは、限られた種類のLS
Iのクロックスキューの調整に対しては有効であるが、
LSI全体のクロックスキュー調整に対しては充分に機
能しているとはいえない。そのため、論理設計から実装
設計までの一連の設計作業において、LSIの種類に依
存しないクロック分配マクロの生成やクロックスキュー
の調整が望まれている。この要望に応えるためには、実
装設計に移る前の段階(フロアープラン)である程度の
範疇でクロックスキューを許容したうえで、クロック分
配マクロを生成し、実装設計の段階でディレイ解析結果
に基づいて再生成処理をカット&トライできる装置が必
要とされている。
【0002】
【従来の技術】従来のLSIのクロック分配マクロの生
成においては、 LSIチップ全面に配線格子を設定し
て、 大型のクロック分配マクロ(ドライバ)を用いてチ
ップ内のマクロを一括して駆動する一括駆動方式や、ク
ロック信号が供給されるマクロ(ターゲットマクロ)の
配置座標やターゲットマクロまでの配線遅延を考慮して
クロック分配マクロを挿入するHツリー方式に代表され
るようなバランスツリー方式がある。
成においては、 LSIチップ全面に配線格子を設定し
て、 大型のクロック分配マクロ(ドライバ)を用いてチ
ップ内のマクロを一括して駆動する一括駆動方式や、ク
ロック信号が供給されるマクロ(ターゲットマクロ)の
配置座標やターゲットマクロまでの配線遅延を考慮して
クロック分配マクロを挿入するHツリー方式に代表され
るようなバランスツリー方式がある。
【0003】図35に、一括駆動方式によってクロック
パスが生成されたLSIを示す。図5からわかるよう
に、クロック分配マクロ(ドライバ)がLSIチップの
中央に置かれ、このドライバがLSIチップの全面に分
散配置されたターゲットマクロ(FF:プリップフロッ
ップ)に対して一括してクロック信号を分配する。配線
パターンは配線格子に沿ってドライバとFFをつなぐ。
パスが生成されたLSIを示す。図5からわかるよう
に、クロック分配マクロ(ドライバ)がLSIチップの
中央に置かれ、このドライバがLSIチップの全面に分
散配置されたターゲットマクロ(FF:プリップフロッ
ップ)に対して一括してクロック信号を分配する。配線
パターンは配線格子に沿ってドライバとFFをつなぐ。
【0004】上述の一括駆動方式では、一個のドライバ
がクロック信号を供給しているが、1個のドライバがク
ロック信号を供給できるターゲットマクロの数(負荷容
量)や、クロック信号を伝達できる距離には限界があ
る。そこで、数段のドライバを介してターゲットマクロ
にクロック信号を供給する方式があり、ここでは、バラ
ンスツリー方式の一つであるHツリー方式について述べ
る。
がクロック信号を供給しているが、1個のドライバがク
ロック信号を供給できるターゲットマクロの数(負荷容
量)や、クロック信号を伝達できる距離には限界があ
る。そこで、数段のドライバを介してターゲットマクロ
にクロック信号を供給する方式があり、ここでは、バラ
ンスツリー方式の一つであるHツリー方式について述べ
る。
【0005】図36に、Hツリー方式を用いるクロック
パスの生成を示す。まず、図36(a)が示すように、
1段目のドライバがLSIチップの中央に生成される。
そして、図35(b)が示すように、1段目のドライバ
を中心として、LSIチップの周縁に向かってH形の配
線パターンが生成され、配線の末端に2段目のドライバ
が生成される。1段目のドライバから配線パターン14
の末端までの距離は1段目のドライバの駆動能力に依存
する。更に、図3(c)が示すように、2段目のドライ
バを中心として、H形の配線パターンがLSIチップ3
の周縁に向かって生成され、配線パターンのそれぞれの
末端に、3段目のドライバが生成される。2段目のドラ
イバから引きだされる配線パターンの末端までの距離は
2段目のドライバの駆動能力に依存する。最後に、FF
にドライバを割り当てるが、各FFは、それぞれからも
っとも近い位置にある3段目のドライバがクロック信号
の供給元として割り当てられる。
パスの生成を示す。まず、図36(a)が示すように、
1段目のドライバがLSIチップの中央に生成される。
そして、図35(b)が示すように、1段目のドライバ
を中心として、LSIチップの周縁に向かってH形の配
線パターンが生成され、配線の末端に2段目のドライバ
が生成される。1段目のドライバから配線パターン14
の末端までの距離は1段目のドライバの駆動能力に依存
する。更に、図3(c)が示すように、2段目のドライ
バを中心として、H形の配線パターンがLSIチップ3
の周縁に向かって生成され、配線パターンのそれぞれの
末端に、3段目のドライバが生成される。2段目のドラ
イバから引きだされる配線パターンの末端までの距離は
2段目のドライバの駆動能力に依存する。最後に、FF
にドライバを割り当てるが、各FFは、それぞれからも
っとも近い位置にある3段目のドライバがクロック信号
の供給元として割り当てられる。
【0006】上記の例では、クロックパスは3段接続さ
れるドライバから構成されているが、LSIチップの面
積や集積度に応じて最適な段数が設定される。Hツリー
方式によると、1段目のドライバから最終段のドライバ
までの配線の長さはそれぞれ等しい。従って、スキュー
の大きさは最終段のドライバからFFまでの距離にしか
依存せず、スキューはほとんど無視できる大きさに抑え
られると考えられている。
れるドライバから構成されているが、LSIチップの面
積や集積度に応じて最適な段数が設定される。Hツリー
方式によると、1段目のドライバから最終段のドライバ
までの配線の長さはそれぞれ等しい。従って、スキュー
の大きさは最終段のドライバからFFまでの距離にしか
依存せず、スキューはほとんど無視できる大きさに抑え
られると考えられている。
【0007】
【発明が解決しようとする課題】一括駆動方式において
は、ドライバから各ターゲットマクロまでの距離にバラ
ツキがあるため、各クロックパス間にスキューが生じ
る。したがって、多少のスキューなら許容できる比較的
低速で動作するLSIに適用されるのであれば問題はな
い。また、スキューが生じても配線経路が容易に変更で
きる集積度の低いLSIに適用することについても問題
はない。
は、ドライバから各ターゲットマクロまでの距離にバラ
ツキがあるため、各クロックパス間にスキューが生じ
る。したがって、多少のスキューなら許容できる比較的
低速で動作するLSIに適用されるのであれば問題はな
い。また、スキューが生じても配線経路が容易に変更で
きる集積度の低いLSIに適用することについても問題
はない。
【0008】しかし、高速動作が要求される現在のLS
Iにおいては、許容できるスキューの制限は厳しい。ま
た、集積度も高いため配線経路の変更は容易ではない。
従って、一括駆動方式は現状に合わない方式となってき
ている。また、Hツリー方式において、この方式が効果
的に機能するには、ターゲットマクロがLSIチップ内
に均等に配置されることが条件となる。特定の領域でタ
ーゲットマクロの密度が高くなると、ドライバの駆動能
力がターゲットマクロの数に対応しきれなくなったり、
或いはドライバ自体が配置できなくなるといった問題が
生じる。実際のLSIにおいては、ターゲットマクロは
決して均等に配置されておらず、Hツリー方式を用いて
クロックパスが設計できるLSIは限られているといえ
る。更に、実際のLSI内の配線は迂回部分を有して敷
かれるのが一般的であり、配線パターンのH形は保証さ
れない。従って、論理的にはスキューが発生しなくて
も、実装レベルの検証においてスキューが検出されるこ
とがある。Hツリー方式では上述のように、ルートのク
ロック分配回路から最終段の各ドライバまでのクロック
パスの長さがそれぞれ等しく(等長)、大きなスキュー
は生じないという原理に基づいている。従って、等長が
くずれてしまうと、スキューの発生は避けられず、結
局、配線やマクロ配置を再設計しなければならないとい
う問題が起きる。
Iにおいては、許容できるスキューの制限は厳しい。ま
た、集積度も高いため配線経路の変更は容易ではない。
従って、一括駆動方式は現状に合わない方式となってき
ている。また、Hツリー方式において、この方式が効果
的に機能するには、ターゲットマクロがLSIチップ内
に均等に配置されることが条件となる。特定の領域でタ
ーゲットマクロの密度が高くなると、ドライバの駆動能
力がターゲットマクロの数に対応しきれなくなったり、
或いはドライバ自体が配置できなくなるといった問題が
生じる。実際のLSIにおいては、ターゲットマクロは
決して均等に配置されておらず、Hツリー方式を用いて
クロックパスが設計できるLSIは限られているといえ
る。更に、実際のLSI内の配線は迂回部分を有して敷
かれるのが一般的であり、配線パターンのH形は保証さ
れない。従って、論理的にはスキューが発生しなくて
も、実装レベルの検証においてスキューが検出されるこ
とがある。Hツリー方式では上述のように、ルートのク
ロック分配回路から最終段の各ドライバまでのクロック
パスの長さがそれぞれ等しく(等長)、大きなスキュー
は生じないという原理に基づいている。従って、等長が
くずれてしまうと、スキューの発生は避けられず、結
局、配線やマクロ配置を再設計しなければならないとい
う問題が起きる。
【0009】以上の問題点を解決するために、本発明
は、分配ターゲットとなるマクロ(FF、メモリ素子
等)の配置情報を反映し、より効率的に、実用性のある
クロック信号の供給パスを生成する装置および方法を提
供することを目的とする。
は、分配ターゲットとなるマクロ(FF、メモリ素子
等)の配置情報を反映し、より効率的に、実用性のある
クロック信号の供給パスを生成する装置および方法を提
供することを目的とする。
【0010】
【課題を解決するための手段】図1は、本発明のクロッ
クパス生成装置の該略図である。図1において、1は、
LSI内に配置されるマクロの配置情報や接続情報を格
納するデータベースである。2は、生成されたクロック
パスに関する管理情報を作成する管理情報作成部であ
る。3は、クロック信号が供給されるターゲットマクロ
をグループ化する分割部である。4は、ターゲットマク
ロのグループの各々に対して、クロック分配マクロを生
成する生成部である。
クパス生成装置の該略図である。図1において、1は、
LSI内に配置されるマクロの配置情報や接続情報を格
納するデータベースである。2は、生成されたクロック
パスに関する管理情報を作成する管理情報作成部であ
る。3は、クロック信号が供給されるターゲットマクロ
をグループ化する分割部である。4は、ターゲットマク
ロのグループの各々に対して、クロック分配マクロを生
成する生成部である。
【0011】図2は、図1に示すクロックパス生成装置
の動作を説明する説明図である。以下に、図1を参照し
ながら、図2に示される各ステップを説明する。ここで
は、n段のマクロからなるクロックパスが生成されるも
のとする。 S1:段数を定義する。 S2:分割部3が、データベースから読みだされたター
ゲットマクロを所定数のグループに区分する。 S3:ターゲットマクロのグループの各々について、生
成部4が、クロック信号を供給するクロック分配マクロ
をLSI内の所定の位置に生成する。 S4:初段のマクロが生成されていなければ、更に上位
段のマクロを生成すべく、S4へ続く。 S5:分割部3がクロック分配マクロをグループに区分
する。 S6:ターゲットマクロ(クロック分配マクロ)のグル
ープ毎に、生成部4が、クロック信号を供給する1段上
位のクロック分配マクロを生成する。 S7:管理情報作成部2が、生成されたクロックパスに
ついての管理情報を作成し、データベース1に格納す
る。
の動作を説明する説明図である。以下に、図1を参照し
ながら、図2に示される各ステップを説明する。ここで
は、n段のマクロからなるクロックパスが生成されるも
のとする。 S1:段数を定義する。 S2:分割部3が、データベースから読みだされたター
ゲットマクロを所定数のグループに区分する。 S3:ターゲットマクロのグループの各々について、生
成部4が、クロック信号を供給するクロック分配マクロ
をLSI内の所定の位置に生成する。 S4:初段のマクロが生成されていなければ、更に上位
段のマクロを生成すべく、S4へ続く。 S5:分割部3がクロック分配マクロをグループに区分
する。 S6:ターゲットマクロ(クロック分配マクロ)のグル
ープ毎に、生成部4が、クロック信号を供給する1段上
位のクロック分配マクロを生成する。 S7:管理情報作成部2が、生成されたクロックパスに
ついての管理情報を作成し、データベース1に格納す
る。
【0012】上記ステップを経て、図3が示すように、
LSI内にクロック信号のパスが生成される。図3の例
では、クロック分配マクロ(M11〜M(n−1)m)
を経由して、最終段(n段目)のマクロ(Mnm)にク
ロック信号が供給される。本発明は請求項1によると、
マクロが多段に接続されてなるクロックパスを生成する
にあたって、最終段のマクロから順にマクロのグループ
を生成し、各グループ毎に更に上位段のマクロ(クロッ
ク分配マクロ)を割り当てる。本発明によると、ターゲ
ットマクロの分布を考慮し、必要な範囲に必要な数のク
ロック分配マクロを生成できる。請求項2によると、所
定の範囲内に含まれるマクロで1つのグループを定義す
るため、当該グループに含まれるマクロの散らばりの程
度を小さくすることができ、クロック分配マクロは駆動
能力の範囲でクロック信号をターゲットマクロに供給で
きる。請求項3によると、クロック分配マクロの生成に
あたって、クロック分配マクロをクロック信号の供給先
のマクロ(ターゲットマクロ)の重心位置に配置すれ
ば、クロック信号の供給先マクロまでの等長が保証さ
れ、スキューの発生を抑えることができる。請求項4に
よると、生成されたクロックパスについて、クロック信
号の配線を作成するので、実装レベルにおけるディレイ
やスキューの発生をシミュレートでき、実装設計に移る
前の段階で不具合の検証できる。請求項5によると、ク
ロック系に固有の条件に基づく設計が可能となるため、
論理設計や実装設計の方式に依存することのない汎用的
なCAD環境を提供できる。請求項6によると、クロッ
クパスに関する管理情報が作成されるため、論理設計や
実装設計の変更時に、変更内容とクロックパスとの対比
が可能になる。請求項7によると、クロック分配マクロ
とターゲットマクロとの対応関係が分かるため、クロッ
ク信号のいずれの分配グループで変更があったのか認識
し易くなる。
LSI内にクロック信号のパスが生成される。図3の例
では、クロック分配マクロ(M11〜M(n−1)m)
を経由して、最終段(n段目)のマクロ(Mnm)にク
ロック信号が供給される。本発明は請求項1によると、
マクロが多段に接続されてなるクロックパスを生成する
にあたって、最終段のマクロから順にマクロのグループ
を生成し、各グループ毎に更に上位段のマクロ(クロッ
ク分配マクロ)を割り当てる。本発明によると、ターゲ
ットマクロの分布を考慮し、必要な範囲に必要な数のク
ロック分配マクロを生成できる。請求項2によると、所
定の範囲内に含まれるマクロで1つのグループを定義す
るため、当該グループに含まれるマクロの散らばりの程
度を小さくすることができ、クロック分配マクロは駆動
能力の範囲でクロック信号をターゲットマクロに供給で
きる。請求項3によると、クロック分配マクロの生成に
あたって、クロック分配マクロをクロック信号の供給先
のマクロ(ターゲットマクロ)の重心位置に配置すれ
ば、クロック信号の供給先マクロまでの等長が保証さ
れ、スキューの発生を抑えることができる。請求項4に
よると、生成されたクロックパスについて、クロック信
号の配線を作成するので、実装レベルにおけるディレイ
やスキューの発生をシミュレートでき、実装設計に移る
前の段階で不具合の検証できる。請求項5によると、ク
ロック系に固有の条件に基づく設計が可能となるため、
論理設計や実装設計の方式に依存することのない汎用的
なCAD環境を提供できる。請求項6によると、クロッ
クパスに関する管理情報が作成されるため、論理設計や
実装設計の変更時に、変更内容とクロックパスとの対比
が可能になる。請求項7によると、クロック分配マクロ
とターゲットマクロとの対応関係が分かるため、クロッ
ク信号のいずれの分配グループで変更があったのか認識
し易くなる。
【0013】
【発明の実施の形態】図4に本発明を実施するに必要な
ハードウエアの構成を示す。図4において、10は、ク
ロックパスの生成を行うパソコンや、ワークステーショ
ン等の処理装置である。
ハードウエアの構成を示す。図4において、10は、ク
ロックパスの生成を行うパソコンや、ワークステーショ
ン等の処理装置である。
【0014】11は、論理設計情報(LSIに配置され
るFF、メモリ、レジスタ等の接続関係)を格納する論
理設計データベースである。12は、実装設計情報(L
SIに配置されるFF、メモリ、レジスタ等の配置座
標)を格納する実装設計データベースである。13は、
論理設計データベース11及び実装設計データベース1
2と、処理装置10との間に介在し、両者の互換をとる
CADインターフェース部である。
るFF、メモリ、レジスタ等の接続関係)を格納する論
理設計データベースである。12は、実装設計情報(L
SIに配置されるFF、メモリ、レジスタ等の配置座
標)を格納する実装設計データベースである。13は、
論理設計データベース11及び実装設計データベース1
2と、処理装置10との間に介在し、両者の互換をとる
CADインターフェース部である。
【0015】14は、設計データベースであり、クロッ
ク信号の供給を受けるマクロであるFF(フリップフロ
ップ)や、メモリ素子、レジスタ等の名称とその配置座
標である。15は、分配条件ライブラリであり、クロッ
ク信号系統に関する規制事項を格納するデータベースで
ある。分配条件ライブラリ15に格納される具体的な情
報としては、図5が示すように、クロック分配マクロの
種別、クロック分配マクロの制限段数、負荷容量(一つ
のクロック分配マクロがクロック信号を分配できるマク
ロの数)、分配制限長(クロック分配マクロからクロッ
ク信号の分配先マクロまでの制限長)等がある。
ク信号の供給を受けるマクロであるFF(フリップフロ
ップ)や、メモリ素子、レジスタ等の名称とその配置座
標である。15は、分配条件ライブラリであり、クロッ
ク信号系統に関する規制事項を格納するデータベースで
ある。分配条件ライブラリ15に格納される具体的な情
報としては、図5が示すように、クロック分配マクロの
種別、クロック分配マクロの制限段数、負荷容量(一つ
のクロック分配マクロがクロック信号を分配できるマク
ロの数)、分配制限長(クロック分配マクロからクロッ
ク信号の分配先マクロまでの制限長)等がある。
【0016】16は、設計対象のLSIにおけるクロッ
クパスの管理情報を格納するクロックグループデータベ
ース(以降、CGCと呼ぶ。)である。CGC16は、
同一のクロック分配マクロからクロック信号を受けるマ
クロ単位(すなわち、図3のグループGnm単位)にク
ロックパスの管理情報を格納する。CGCに格納される
情報としては、図6が示すように、グループ名、クロッ
ク分配マクロの名前とその配置位置、クロック信号の分
配先の各マクロ名とそれぞれの配置位置等の情報を格納
する。
クパスの管理情報を格納するクロックグループデータベ
ース(以降、CGCと呼ぶ。)である。CGC16は、
同一のクロック分配マクロからクロック信号を受けるマ
クロ単位(すなわち、図3のグループGnm単位)にク
ロックパスの管理情報を格納する。CGCに格納される
情報としては、図6が示すように、グループ名、クロッ
ク分配マクロの名前とその配置位置、クロック信号の分
配先の各マクロ名とそれぞれの配置位置等の情報を格納
する。
【0017】17は、CAD制御部であり、具体的には
処理装置10のCPUで構成される。CAD制御部17
は、CGC16、設計データデータベース14、分配条
件ライブラリ15に格納される情報を取り出し、クロッ
クパスを生成/更新する。そして、生成したクロックパ
スに関する情報を、グループ単位にCGC16に格納す
る。
処理装置10のCPUで構成される。CAD制御部17
は、CGC16、設計データデータベース14、分配条
件ライブラリ15に格納される情報を取り出し、クロッ
クパスを生成/更新する。そして、生成したクロックパ
スに関する情報を、グループ単位にCGC16に格納す
る。
【0018】18は、CRTや液晶ディスプレイ等の表
示装置であり、設計対象のLSIにおけるマクロの分布
図やオペレータに対するメッセージ等を表示する。19
は、キーボード19aやマウス19b等を含む入力手段
であり、オペレータの指示をCAD制御部17に伝達す
る。20は、読出部であり、上述の各種データベース1
4、15、16格納される情報を読み出す。
示装置であり、設計対象のLSIにおけるマクロの分布
図やオペレータに対するメッセージ等を表示する。19
は、キーボード19aやマウス19b等を含む入力手段
であり、オペレータの指示をCAD制御部17に伝達す
る。20は、読出部であり、上述の各種データベース1
4、15、16格納される情報を読み出す。
【0019】21は、クロック設計部であり、図1の分
割部3や生成部4を含み、読出部22から送られてくる
マクロ情報に基づき、クロックパスを生成する。22
は、評価部であり、クロック生成部21が生成したクロ
ックパスが分配条件ライブラリ15が保持する規定に違
反しているか否かを判定する。23は、データベース作
成部であり、CADインターフェース13を介して送ら
れてくるマクロの論理/実装情報および、クロックパス
生成部21が生成したクロックパスに基づき、設計デー
タベース14やCGC16を作成する。
割部3や生成部4を含み、読出部22から送られてくる
マクロ情報に基づき、クロックパスを生成する。22
は、評価部であり、クロック生成部21が生成したクロ
ックパスが分配条件ライブラリ15が保持する規定に違
反しているか否かを判定する。23は、データベース作
成部であり、CADインターフェース13を介して送ら
れてくるマクロの論理/実装情報および、クロックパス
生成部21が生成したクロックパスに基づき、設計デー
タベース14やCGC16を作成する。
【0020】24は、表示制御部であり、評価部22の
判定結果、読出部22が読みだす各データベースの内
容、クロックパス生成部23が生成するクロックパス等
を表示部18に表示させる。25は、配線部であり、配
線アルゴリズムに従って配線を生成する。26は、メモ
リであり、CAD制御部内で生成されるデータや、各種
データベースとCAD制御部17間の転送データを記憶
する。
判定結果、読出部22が読みだす各データベースの内
容、クロックパス生成部23が生成するクロックパス等
を表示部18に表示させる。25は、配線部であり、配
線アルゴリズムに従って配線を生成する。26は、メモ
リであり、CAD制御部内で生成されるデータや、各種
データベースとCAD制御部17間の転送データを記憶
する。
【0021】27は、プログラム格納部であり、CAD
制御部内の各部が使用するプログラムを格納する。図4
が示す論理設計データベース11や実装設計データベー
ス12が他のシステムにて作成されることがある。従
来、それらを作成したシステムの仕様に適合するシステ
ムを用いてクロックが設計される必要があった。そこ
で、本発明では、CADインターフェース13を介すこ
とにより、クロック生成システムの環境に適合した設計
データベース14を作成する。このように、独自の環境
を構築することで、論理/実装データベースの作成環境
に依存しない汎用的なシステムを提供する。
制御部内の各部が使用するプログラムを格納する。図4
が示す論理設計データベース11や実装設計データベー
ス12が他のシステムにて作成されることがある。従
来、それらを作成したシステムの仕様に適合するシステ
ムを用いてクロックが設計される必要があった。そこ
で、本発明では、CADインターフェース13を介すこ
とにより、クロック生成システムの環境に適合した設計
データベース14を作成する。このように、独自の環境
を構築することで、論理/実装データベースの作成環境
に依存しない汎用的なシステムを提供する。
【0022】また、LSIの設計において、使用される
クロックやテクノロジでクロック信号の分配条件は異な
る。更に、LSIの高集積化に伴い、論理階層設計や実
装分割設計でもクロックの分配条件が多様化している。
本発明では、このクロック分配条件を格納する分配条件
ライブラリ15に格納し、その内容に従って、クロック
パスの生成、チューニング、評価、設計変更処理等を行
う。本発明は、分配条件ライブラリ15を持ち、クロッ
ク信号の分配条件を独立に定義することにより、設計方
式に依存しないクロック生成装置を提供する。
クロックやテクノロジでクロック信号の分配条件は異な
る。更に、LSIの高集積化に伴い、論理階層設計や実
装分割設計でもクロックの分配条件が多様化している。
本発明では、このクロック分配条件を格納する分配条件
ライブラリ15に格納し、その内容に従って、クロック
パスの生成、チューニング、評価、設計変更処理等を行
う。本発明は、分配条件ライブラリ15を持ち、クロッ
ク信号の分配条件を独立に定義することにより、設計方
式に依存しないクロック生成装置を提供する。
【0023】更に、本発明は、論理設計データベース1
1や実装設計データベース12から独立したクロックグ
ループデータベース(CGC)16を持ち、クロック分
配マクロに関する情報を管理する。CGC16は、F
F、メモリ素子、レジスタ等の配置情報を格納する設計
データベース14とは独立して作成、変更、管理され
る。論理または実装情報に変更があると、オペーレータ
はCGC16を参照し、変更内容を確認しながらCGC
16を変更する。。変更作業が終了すると、変更内容を
CADインターフェース13にフィードバックする。こ
のようにクロック系に関する独自のデータベースを備え
ることにより、クロックパスの生成、チューニング、評
価、設計変更が容易化される。
1や実装設計データベース12から独立したクロックグ
ループデータベース(CGC)16を持ち、クロック分
配マクロに関する情報を管理する。CGC16は、F
F、メモリ素子、レジスタ等の配置情報を格納する設計
データベース14とは独立して作成、変更、管理され
る。論理または実装情報に変更があると、オペーレータ
はCGC16を参照し、変更内容を確認しながらCGC
16を変更する。。変更作業が終了すると、変更内容を
CADインターフェース13にフィードバックする。こ
のようにクロック系に関する独自のデータベースを備え
ることにより、クロックパスの生成、チューニング、評
価、設計変更が容易化される。
【0024】上述のハードウエア構成を用いたクロック
パスの生成を以下に説明する。本実施の形態において、
クロックパスの生成は下記の〜の順序で行われる。
また、本実施の形態においては、4段のマクロからなる
クロックパスを生成するものとする。クロックパスに含
まれるべきマクロの段数は、上記クロック分配条件ライ
ブラリ15で定められており、ここでは、4段と定めら
れているものとした。 最終段のマクロの配置情報の読み出し。 クロック分配マクロ(バッファ)の生成。 クロックパスの評価と修正。
パスの生成を以下に説明する。本実施の形態において、
クロックパスの生成は下記の〜の順序で行われる。
また、本実施の形態においては、4段のマクロからなる
クロックパスを生成するものとする。クロックパスに含
まれるべきマクロの段数は、上記クロック分配条件ライ
ブラリ15で定められており、ここでは、4段と定めら
れているものとした。 最終段のマクロの配置情報の読み出し。 クロック分配マクロ(バッファ)の生成。 クロックパスの評価と修正。
【0025】まず、について説明する。CAD制御部
17の指示により、図4が示す既成の論理設計データベ
ース11および実装設計データベース12がアクセスさ
れ、CADインターフェース13を介して、設計対象の
LSIに配置されるターゲットマクロとしてのFF、メ
モリ素子、レジスタ等の最終段(4段目)の配置情報が
CAD制御部17に送られる。データベース作成部23
は、送られた情報に基づき、設計データベース14を作
成する。読出部20は、設計データベース14の内容を
読み出し、読み出した内容を表示処理部24わたす。表
示処理部は、これに応答してターゲットマクロのレイア
ウトを表示部18に表示させる。ターゲットマクロのレ
イアウトは図7に示される。図7において、Mi(iは
自然数)はFF、メモリ素子、レジスタ等のマクロ、P
nはクロック端子である。なお、ここでは、新規のクロ
ックパスの生成について述べているが、既に生成されて
いるクロックパスの更新時は、CGC16の内容も読み
だされ、クロック分配マクロのレイアウトや、クロック
信号の経路も含めて表示部18に表示される。
17の指示により、図4が示す既成の論理設計データベ
ース11および実装設計データベース12がアクセスさ
れ、CADインターフェース13を介して、設計対象の
LSIに配置されるターゲットマクロとしてのFF、メ
モリ素子、レジスタ等の最終段(4段目)の配置情報が
CAD制御部17に送られる。データベース作成部23
は、送られた情報に基づき、設計データベース14を作
成する。読出部20は、設計データベース14の内容を
読み出し、読み出した内容を表示処理部24わたす。表
示処理部は、これに応答してターゲットマクロのレイア
ウトを表示部18に表示させる。ターゲットマクロのレ
イアウトは図7に示される。図7において、Mi(iは
自然数)はFF、メモリ素子、レジスタ等のマクロ、P
nはクロック端子である。なお、ここでは、新規のクロ
ックパスの生成について述べているが、既に生成されて
いるクロックパスの更新時は、CGC16の内容も読み
だされ、クロック分配マクロのレイアウトや、クロック
信号の経路も含めて表示部18に表示される。
【0026】のクロック分配マクロの生成について説
明する。本実施の形態では、図7が示すように、互いに
異なる位相のクロック信号CLK1、CLK2、CLK
3が入力されるLSIを設計対象のLSIとし、CLK
1を最終段マクロに伝達するクロック分配マクロ(ドラ
イバ)を生成する過程を説明する。ここでは、CLK1
が供給されるターゲットマクロのみが図示されている
が、表示部18には、他の位相のクロック信号を受ける
マクロも表示されてもよい。クロック分配マクロの生成
において、まず、クロック信号が供給される最終段のマ
クロにグループを定義する。これは、CLK1のクロッ
ク信号の到達点である図7に示されるFFやメモリー素
子等の最終段マクロMiについて、同一のクロック分配
マクロからクロック信号が供給されるマクロの集合を定
義することである。
明する。本実施の形態では、図7が示すように、互いに
異なる位相のクロック信号CLK1、CLK2、CLK
3が入力されるLSIを設計対象のLSIとし、CLK
1を最終段マクロに伝達するクロック分配マクロ(ドラ
イバ)を生成する過程を説明する。ここでは、CLK1
が供給されるターゲットマクロのみが図示されている
が、表示部18には、他の位相のクロック信号を受ける
マクロも表示されてもよい。クロック分配マクロの生成
において、まず、クロック信号が供給される最終段のマ
クロにグループを定義する。これは、CLK1のクロッ
ク信号の到達点である図7に示されるFFやメモリー素
子等の最終段マクロMiについて、同一のクロック分配
マクロからクロック信号が供給されるマクロの集合を定
義することである。
【0027】図8にマクロをグループ化するためのフロ
ーチャートを示す。図8が示す各ステップを以下に説明
する。 S11:分割部3が、図9が示すように、原点Og から
X軸およびY軸に沿って制限線長Ls 毎にLSIの領域
を区切り、LSIの領域をi行×j列に配列されるLs
×Ls のサイズのブロックに分割する。制限線長Ls
は、読出部20によって分配条件ライブラリ15から読
みだされ、分割部3に与えられる。本例では、LSIの
領域が6行×4列の配列を有する24個のブロックに分
割される。以降、行番号i、列番号jのブロックをBi
jと呼ぶ。 S12:ブロック毎に、そのブロックに含まれるマクロ
が持つ負荷容量の総和Aij(ブロックBij内のマク
ロの個数)を求める。ブロック毎の負荷容量を図10に
示す。 S13:ブロック毎に、そのブロック内に生成されべき
グループ数を算出すべく、制限負荷容量をF1とし、負
荷容量の総和AijをF1で割る。制限負荷容量は、所
定のタイミングで読出部22によって分配条件ライブラ
リ15から読みだされ、分割部3に与えられる。 S14:S3における計算の結果を、商Naおよび余り
Na1の関係から以下のケースに分類する。 ケース1:Na=0 ケース2:Na≧1、Na1=0 ケース3:Na≧1、Na1≧1 S15:ケース1の場合、そのブロックに含まれるマク
ロのグループ化は保留される。 S16:ケース2の場合、そのブロック内にNa個のグ
ループを生成する。本実施の形態では、図9が示すよう
に、Na=1、Na1=0であるB13がこのケースに
相当する。Naが2以上の場合は、境界線の交点に近い
マクロから順にF1個ずつグループに取り込み、Na個
のグループを生成する。 S17:ケース3の場合、ブロックの交点Kxyに近い
Na1個のマクロのグループ化を保留し、残りのNa個
をグループ化する。本実施の形態の場合、図9が示すよ
うに、Na=1、Na1=1のブロックB52がこのケ
ースに相当する。
ーチャートを示す。図8が示す各ステップを以下に説明
する。 S11:分割部3が、図9が示すように、原点Og から
X軸およびY軸に沿って制限線長Ls 毎にLSIの領域
を区切り、LSIの領域をi行×j列に配列されるLs
×Ls のサイズのブロックに分割する。制限線長Ls
は、読出部20によって分配条件ライブラリ15から読
みだされ、分割部3に与えられる。本例では、LSIの
領域が6行×4列の配列を有する24個のブロックに分
割される。以降、行番号i、列番号jのブロックをBi
jと呼ぶ。 S12:ブロック毎に、そのブロックに含まれるマクロ
が持つ負荷容量の総和Aij(ブロックBij内のマク
ロの個数)を求める。ブロック毎の負荷容量を図10に
示す。 S13:ブロック毎に、そのブロック内に生成されべき
グループ数を算出すべく、制限負荷容量をF1とし、負
荷容量の総和AijをF1で割る。制限負荷容量は、所
定のタイミングで読出部22によって分配条件ライブラ
リ15から読みだされ、分割部3に与えられる。 S14:S3における計算の結果を、商Naおよび余り
Na1の関係から以下のケースに分類する。 ケース1:Na=0 ケース2:Na≧1、Na1=0 ケース3:Na≧1、Na1≧1 S15:ケース1の場合、そのブロックに含まれるマク
ロのグループ化は保留される。 S16:ケース2の場合、そのブロック内にNa個のグ
ループを生成する。本実施の形態では、図9が示すよう
に、Na=1、Na1=0であるB13がこのケースに
相当する。Naが2以上の場合は、境界線の交点に近い
マクロから順にF1個ずつグループに取り込み、Na個
のグループを生成する。 S17:ケース3の場合、ブロックの交点Kxyに近い
Na1個のマクロのグループ化を保留し、残りのNa個
をグループ化する。本実施の形態の場合、図9が示すよ
うに、Na=1、Na1=1のブロックB52がこのケ
ースに相当する。
【0028】以上のS15からS17の処理を実行した
結果、LSI内に、図11が示すようなグループが生成
される。本実施の形態では、この時点で、グループG4
1とG42が生成される。Gnmは、n段目のマクロに
ついてm番目に生成されたグループである。グループ化
を保留されたマクロについては、他のブロックに属する
マクロと組み合わされてグループ化される。グループ化
を保留されたマクロをグループ化すべく、以下のステッ
プへと続く。なお、F1に単一の値ではなく、ある程度
の範囲を与え(例えば、制限負荷容量/2〜制限負荷容
量)、所定個数以上のマクロがあれば、それらのブロッ
クに1グループを定義してもよい。この例によると、ブ
ロックB52内に、それぞれ3個のマクロが含まれる2
つのグループを定義したり、ブロックB61内の3個の
マクロに1グループを定義したりすることができる。 S18:図11に示されるブロックのうち、グループ化
を保留されたマクロの数(=Na1)が最大のブロック
にブロック名Bmaxを定義し、そのBmaxと隣接す
るブロックにブロック名Cpを定義する。本実施の形態
では、図12が示すように、まず、Na1=4のブロッ
クB22にBmaxが定義され、ブロックB22と隣接
する8個のブロックにそれぞれC1、C2、・・・、C
8が定義される。なお、Na1が同じであるブロックが
複数存在する場合は、例えば、行番号の昇順(同一行内
では、列番号の昇順)で、Bmaxを抽出する。Cpの
個数は、Bmaxの位置に依存し、角に位置するBma
xに対しては、図13(a)が示すよう3個、縁(角を
除く)に位置するBmaxに対しては、図13(b)が
示すように5個のCpがそれぞれ定義される。 S19:Bmaxに隣接するブロックCpの中から、N
a1が最小のブロックを抽出する。本実施の形態では、
まず、Na1=1であるC6(=B31)が抽出され
る。最小のNa1を持つグループCnが複数存在すると
きは、例えば、pの小さい方が優先して抽出される。 S20:S19で抽出されたブロックに含まれるマクロ
をBmaxのマクロと組み合わせる。本実施の形態で
は、C6に含まれる1個のマクロが、Bmax(=B2
2)に含まれる4個のマクロとの組み合わせ対象とな
る。 S21:上記のステップS10を、Bmaxに含まれる
マクロと抽出されたCpに含まれるマクロとの合計がF
1になるまで繰り返す。本実施の形態では、B22に対
する組み合わせ処理に関しては、B22に含まれるマク
ロにC6(=B31)に含まれるマクロを組み合わせる
だけで、組み合わせられたマクロの合計が5個(=F
1)となり、組み合わせ処理が終了する。なお、抽出さ
れたCpに含まれるマクロとBmaxのマクロとの合計
がF1を超える場合、Cpの過剰分のマクロはBmax
のマクロと組み合わせられず、グループ化を保留され
る。 S22:もし、隣接するブロックCpの全てに含まれる
マクロとBmaxのマクロの合計がF1に満たない場
合、当該Bmaxに関する組み合わせの処理を終了す
る。 S23:組み合わせ処理が終了すると、組み合わせられ
たマクロに対してグループを定義する。B22に対する
組み合わせ処理の例では、図14が示すように、B22
の4個のマクロとB31の1個のマクロが組み合わされ
て3番目のグループG43が定義される。なお、ステッ
プS22に当てはまるケースでは、F1より少ないマク
ロからなるグループが定義されることになる。 S24:グループ化を保留されたマクロがなくなるま
で、新たなBmaxを検索し、上記ステップS18〜S
23を繰り返す。本実施の形態では、B22の次には、
図14から分かるように、Na1=3であるブロックB
61が新たなBmaxとして抽出される。
結果、LSI内に、図11が示すようなグループが生成
される。本実施の形態では、この時点で、グループG4
1とG42が生成される。Gnmは、n段目のマクロに
ついてm番目に生成されたグループである。グループ化
を保留されたマクロについては、他のブロックに属する
マクロと組み合わされてグループ化される。グループ化
を保留されたマクロをグループ化すべく、以下のステッ
プへと続く。なお、F1に単一の値ではなく、ある程度
の範囲を与え(例えば、制限負荷容量/2〜制限負荷容
量)、所定個数以上のマクロがあれば、それらのブロッ
クに1グループを定義してもよい。この例によると、ブ
ロックB52内に、それぞれ3個のマクロが含まれる2
つのグループを定義したり、ブロックB61内の3個の
マクロに1グループを定義したりすることができる。 S18:図11に示されるブロックのうち、グループ化
を保留されたマクロの数(=Na1)が最大のブロック
にブロック名Bmaxを定義し、そのBmaxと隣接す
るブロックにブロック名Cpを定義する。本実施の形態
では、図12が示すように、まず、Na1=4のブロッ
クB22にBmaxが定義され、ブロックB22と隣接
する8個のブロックにそれぞれC1、C2、・・・、C
8が定義される。なお、Na1が同じであるブロックが
複数存在する場合は、例えば、行番号の昇順(同一行内
では、列番号の昇順)で、Bmaxを抽出する。Cpの
個数は、Bmaxの位置に依存し、角に位置するBma
xに対しては、図13(a)が示すよう3個、縁(角を
除く)に位置するBmaxに対しては、図13(b)が
示すように5個のCpがそれぞれ定義される。 S19:Bmaxに隣接するブロックCpの中から、N
a1が最小のブロックを抽出する。本実施の形態では、
まず、Na1=1であるC6(=B31)が抽出され
る。最小のNa1を持つグループCnが複数存在すると
きは、例えば、pの小さい方が優先して抽出される。 S20:S19で抽出されたブロックに含まれるマクロ
をBmaxのマクロと組み合わせる。本実施の形態で
は、C6に含まれる1個のマクロが、Bmax(=B2
2)に含まれる4個のマクロとの組み合わせ対象とな
る。 S21:上記のステップS10を、Bmaxに含まれる
マクロと抽出されたCpに含まれるマクロとの合計がF
1になるまで繰り返す。本実施の形態では、B22に対
する組み合わせ処理に関しては、B22に含まれるマク
ロにC6(=B31)に含まれるマクロを組み合わせる
だけで、組み合わせられたマクロの合計が5個(=F
1)となり、組み合わせ処理が終了する。なお、抽出さ
れたCpに含まれるマクロとBmaxのマクロとの合計
がF1を超える場合、Cpの過剰分のマクロはBmax
のマクロと組み合わせられず、グループ化を保留され
る。 S22:もし、隣接するブロックCpの全てに含まれる
マクロとBmaxのマクロの合計がF1に満たない場
合、当該Bmaxに関する組み合わせの処理を終了す
る。 S23:組み合わせ処理が終了すると、組み合わせられ
たマクロに対してグループを定義する。B22に対する
組み合わせ処理の例では、図14が示すように、B22
の4個のマクロとB31の1個のマクロが組み合わされ
て3番目のグループG43が定義される。なお、ステッ
プS22に当てはまるケースでは、F1より少ないマク
ロからなるグループが定義されることになる。 S24:グループ化を保留されたマクロがなくなるま
で、新たなBmaxを検索し、上記ステップS18〜S
23を繰り返す。本実施の形態では、B22の次には、
図14から分かるように、Na1=3であるブロックB
61が新たなBmaxとして抽出される。
【0029】以上のステップを経て、最終段ターゲット
マクロのグループ化が終了する。本実施の形態では、図
15が示すように、合計7個のグループが生成される。
なお、上述の例では、図4の分割部3がアルゴリズムに
したがって自動的にグループ化を実行するが、会話型処
理を導入し、グループ化の一部或いは全ての処理がオペ
レータの指示にしたがって実行されてもよい。
マクロのグループ化が終了する。本実施の形態では、図
15が示すように、合計7個のグループが生成される。
なお、上述の例では、図4の分割部3がアルゴリズムに
したがって自動的にグループ化を実行するが、会話型処
理を導入し、グループ化の一部或いは全ての処理がオペ
レータの指示にしたがって実行されてもよい。
【0030】図16に会話型処理によるグループ化を説
明する。 S41:図7が示すようなマクロMiのレイアウトが表
示装置18に表示される。 S42:分割部3は、オペレータからの分割範囲の指示
を待つ。オペーレータは、マクロの分布状況、分配条件
ライブラリ15に格納されている制限負荷容量F1、制
限配線長Ls 等の分配条件を考慮して、図17が示すよ
うな、実線で囲まれる領域をそれぞれ1グループの範囲
として想定する。そして、キーボードやマウス等の入力
装置19を用いて、表示手段18の画面上に1グループ
の範囲を指定する。例えば図17のように、座標K1
(x1,y1)、K2(x1,y1)を指定する。 S43:分割部3は、図17の指定された領域に含まれ
る5つのマクロにグループを定義する。 S44:評価部22は、分配条件ライブラリ15で定義
されたグループに分配条件に違反する要素が含まれてい
るか否かを検証する。例えば、1グループに制限負荷容
量を超えるマクロが生成されていたり、グループ数が多
過ぎたりすると違反となる。 S45:違反が検出されると、表示部18に警告が表示
され、オペレータにグループの指定の変更を促す。 S46:違反が無ければ、残りのグループを生成すべ
く、オペーレータからの入力を待つ。
明する。 S41:図7が示すようなマクロMiのレイアウトが表
示装置18に表示される。 S42:分割部3は、オペレータからの分割範囲の指示
を待つ。オペーレータは、マクロの分布状況、分配条件
ライブラリ15に格納されている制限負荷容量F1、制
限配線長Ls 等の分配条件を考慮して、図17が示すよ
うな、実線で囲まれる領域をそれぞれ1グループの範囲
として想定する。そして、キーボードやマウス等の入力
装置19を用いて、表示手段18の画面上に1グループ
の範囲を指定する。例えば図17のように、座標K1
(x1,y1)、K2(x1,y1)を指定する。 S43:分割部3は、図17の指定された領域に含まれ
る5つのマクロにグループを定義する。 S44:評価部22は、分配条件ライブラリ15で定義
されたグループに分配条件に違反する要素が含まれてい
るか否かを検証する。例えば、1グループに制限負荷容
量を超えるマクロが生成されていたり、グループ数が多
過ぎたりすると違反となる。 S45:違反が検出されると、表示部18に警告が表示
され、オペレータにグループの指定の変更を促す。 S46:違反が無ければ、残りのグループを生成すべ
く、オペーレータからの入力を待つ。
【0031】以上に述べた会話型処理によって生成され
たグループを図18に示す。図15が示す自動処理によ
って生成されたグループとは異なるグループが生成され
ているが、分配条件を満足していれば、問題がないもの
として扱われる。また、会話型処理と自動処理を組み合
わせてグループ化を行ってもよい。例えば、一部のマク
ロのグループ化が分割部3によって実行された後、グル
ープ化が保留されたマクロに対するグループ化(図8の
ステップS18からS24、すなわち、図11のグルー
プ化されていないマクロに対するグループ化)をするの
に、上記ステップS41からS45に従って、オペーレ
ータによる会話型処理を実行してもよい。
たグループを図18に示す。図15が示す自動処理によ
って生成されたグループとは異なるグループが生成され
ているが、分配条件を満足していれば、問題がないもの
として扱われる。また、会話型処理と自動処理を組み合
わせてグループ化を行ってもよい。例えば、一部のマク
ロのグループ化が分割部3によって実行された後、グル
ープ化が保留されたマクロに対するグループ化(図8の
ステップS18からS24、すなわち、図11のグルー
プ化されていないマクロに対するグループ化)をするの
に、上記ステップS41からS45に従って、オペーレ
ータによる会話型処理を実行してもよい。
【0032】最終段マクロのグループ化が行われると、
図4の生成部4が、一段上位(3段目)のマクロである
クロック分配マクロDnm(nは段番号、mは段内の番
号であり、ここではn=3)の生成を行う。ここで生成
されるマクロは、グループ化されたマクロに対してクロ
ック信号を供給するドライバである。クロック分配マク
ロは、グループ単位に割り当てられる。
図4の生成部4が、一段上位(3段目)のマクロである
クロック分配マクロDnm(nは段番号、mは段内の番
号であり、ここではn=3)の生成を行う。ここで生成
されるマクロは、グループ化されたマクロに対してクロ
ック信号を供給するドライバである。クロック分配マク
ロは、グループ単位に割り当てられる。
【0033】図19はクロック分配マクロの生成につい
てのフローチャートを示す。図19の各ステップを以下
に説明する。 S51:生成部4が、分割部3からグループの情報を受
け取り、クロック信号の供給対象となるグループに含ま
れる各マクロの重心位置を計算する。 S52:S1で算出された重心位置にクロック分配マク
ロを生成する。本実施の形態では、便宜上、分割部3が
自動生成した図15が示すグループに対してのクロック
分配マクロの生成を説明するが、会話処理によって生成
されたグループに対してのクロック分配マクロの生成に
も適用できる。ここで、図15のグループG41に対し
て生成されたクロック分配マクロを図20に示す。図2
0において、クロック分配マクロD31はグループG4
1の5つのマクロの重心位置に配置される。重心位置に
クロック分配マクロを配置することにより、クロック供
給先の各マクロまでの論理的な等長が保証されるため、
同一グループ内の複数のマクロ間のスキューを低減でき
る効果を持つ。 S53:評価部22は、分配条件に違反することなくク
ロック分配マクロが生成されたか否かを検証する。例え
ば、クロック分配マクロが配置禁止位置に生成されてい
ると違反となる。 S54:違反が検出されると、表示部18に警告が表示
され、オペレータにグループの範囲の変更を促す。な
お、生成部4が評価部22からエラーを受け取り、エラ
ーの起きない位置に自動的にクロック分配マクロを生成
したり、エラーの起きない位置を画面上に指示し、オペ
レータに選択させたりすることもできる。 S55:データベース生成部23が、生成部4から送出
されるクロック分配マクロに関する情報を、CGC16
に登録する。 S56:残りのグループに対するクロック分配マクロを
生成する。
てのフローチャートを示す。図19の各ステップを以下
に説明する。 S51:生成部4が、分割部3からグループの情報を受
け取り、クロック信号の供給対象となるグループに含ま
れる各マクロの重心位置を計算する。 S52:S1で算出された重心位置にクロック分配マク
ロを生成する。本実施の形態では、便宜上、分割部3が
自動生成した図15が示すグループに対してのクロック
分配マクロの生成を説明するが、会話処理によって生成
されたグループに対してのクロック分配マクロの生成に
も適用できる。ここで、図15のグループG41に対し
て生成されたクロック分配マクロを図20に示す。図2
0において、クロック分配マクロD31はグループG4
1の5つのマクロの重心位置に配置される。重心位置に
クロック分配マクロを配置することにより、クロック供
給先の各マクロまでの論理的な等長が保証されるため、
同一グループ内の複数のマクロ間のスキューを低減でき
る効果を持つ。 S53:評価部22は、分配条件に違反することなくク
ロック分配マクロが生成されたか否かを検証する。例え
ば、クロック分配マクロが配置禁止位置に生成されてい
ると違反となる。 S54:違反が検出されると、表示部18に警告が表示
され、オペレータにグループの範囲の変更を促す。な
お、生成部4が評価部22からエラーを受け取り、エラ
ーの起きない位置に自動的にクロック分配マクロを生成
したり、エラーの起きない位置を画面上に指示し、オペ
レータに選択させたりすることもできる。 S55:データベース生成部23が、生成部4から送出
されるクロック分配マクロに関する情報を、CGC16
に登録する。 S56:残りのグループに対するクロック分配マクロを
生成する。
【0034】図15が示す全てのグループにクロック分
配回マクロが与えられた様子を図21に示す。クロック
分配マクロは各自が出力するクロック信号の供給先マク
ロの重心位置に配置されているのがわかる。グループと
クロック分配マクロの生成が完了したことにより、CG
C16に、クロック分配マクロ単位(グループ単位)
に、各マクロの配置位置や、クロック分配マクロとそれ
ぞれのターゲットマクロ間のディレイ情報等が登録され
る。
配回マクロが与えられた様子を図21に示す。クロック
分配マクロは各自が出力するクロック信号の供給先マク
ロの重心位置に配置されているのがわかる。グループと
クロック分配マクロの生成が完了したことにより、CG
C16に、クロック分配マクロ単位(グループ単位)
に、各マクロの配置位置や、クロック分配マクロとそれ
ぞれのターゲットマクロ間のディレイ情報等が登録され
る。
【0035】図19の例では、クロック分配マクロがク
ロック信号の供給先のマクロの重心位置に生成された
が、例えば、図8のステップS8からS15に基づいて
グループ化されたマクロに対するクロック分配マクロに
ついては、分割線の交点に生成されるようにしてもよ
い。例えば、グループG43に含まれるマクロに対する
クロック分配マクロが、図21に示される交点K12に
生成されてもよい。
ロック信号の供給先のマクロの重心位置に生成された
が、例えば、図8のステップS8からS15に基づいて
グループ化されたマクロに対するクロック分配マクロに
ついては、分割線の交点に生成されるようにしてもよ
い。例えば、グループG43に含まれるマクロに対する
クロック分配マクロが、図21に示される交点K12に
生成されてもよい。
【0036】また、クロック分配マクロの生成について
も、グループ化と同様に会話型処理を導入してもよい。
図22にその一例を示した。以下に図22の各ステップ
を説明する S61:例えば、図18に示されるマクロのグループが
表示装置18に表示される。 S62:生成部4は、オペレータからのクロック分配マ
クロの配置位置の指定を待つ。オペーレータは、例え
ば、グループ内のマクロの分布状況から、重心位置等の
等長が保証できそうな位置を割り出し、割り出した位置
を表示部18の画面上で指定する。 S63:生成部4は、指定された位置にクロック分配マ
クロを生成する。 S64:評価部22は、生成されたクロック分配マクロ
の位置に分配条件に違反する要素が含まれているか否か
を検証する。例えば、ターゲットマクロまでの距離が制
限長Lsを超えていたり、配置禁止位置に配置されたり
すると違反となるる。 S65:違反が検出されると、表示部18に警告が表示
され、オペレータにグループの範囲の変更を促す。な
お、生成部4が評価部22からエラーを受け取り、エラ
ーの起きない位置に自動的にクロック分配マクロを生成
したり、エラーの起きない位置を画面上に指示し、オペ
レータに選択させたりすることもできる。 S66:違反が無ければ、データベース作成部23は、
クロック分配マクロに関する情報をCGC16に登録す
る。 S67:次のグループに対するクロック分配マクロを生
成すべく、オペーレータからの入力を待つ。
も、グループ化と同様に会話型処理を導入してもよい。
図22にその一例を示した。以下に図22の各ステップ
を説明する S61:例えば、図18に示されるマクロのグループが
表示装置18に表示される。 S62:生成部4は、オペレータからのクロック分配マ
クロの配置位置の指定を待つ。オペーレータは、例え
ば、グループ内のマクロの分布状況から、重心位置等の
等長が保証できそうな位置を割り出し、割り出した位置
を表示部18の画面上で指定する。 S63:生成部4は、指定された位置にクロック分配マ
クロを生成する。 S64:評価部22は、生成されたクロック分配マクロ
の位置に分配条件に違反する要素が含まれているか否か
を検証する。例えば、ターゲットマクロまでの距離が制
限長Lsを超えていたり、配置禁止位置に配置されたり
すると違反となるる。 S65:違反が検出されると、表示部18に警告が表示
され、オペレータにグループの範囲の変更を促す。な
お、生成部4が評価部22からエラーを受け取り、エラ
ーの起きない位置に自動的にクロック分配マクロを生成
したり、エラーの起きない位置を画面上に指示し、オペ
レータに選択させたりすることもできる。 S66:違反が無ければ、データベース作成部23は、
クロック分配マクロに関する情報をCGC16に登録す
る。 S67:次のグループに対するクロック分配マクロを生
成すべく、オペーレータからの入力を待つ。
【0037】以上、最終段マクロM4mのグループ化と
各グループに対するクロック分配マクロD3mの生成を
説明した。ここでは、全てのマクロのグループ化が終了
してからクロック分配マクロが生成されているが、会話
型処理、自動処理を問わず、マクロの1グループが生成
される毎に、そのグループに対するクロック分配マクロ
が生成されるようにしてもよい。それは、後段のマクロ
の生成についても同様である。また、新規クロックパス
の生成だけでなく、既に生成済クロックパスに対する修
正にも利用できる。
各グループに対するクロック分配マクロD3mの生成を
説明した。ここでは、全てのマクロのグループ化が終了
してからクロック分配マクロが生成されているが、会話
型処理、自動処理を問わず、マクロの1グループが生成
される毎に、そのグループに対するクロック分配マクロ
が生成されるようにしてもよい。それは、後段のマクロ
の生成についても同様である。また、新規クロックパス
の生成だけでなく、既に生成済クロックパスに対する修
正にも利用できる。
【0038】3段目のマクロであるクロック分配マクロ
D3mが生成されると、次に、それらに対するグループ
化が実行される。グループ化の手順は、図8に示される
自動化の手順が利用できる。また、図16に示される会
話型の手順を使用してもよい。或いは、両者を組み合わ
せてもよい。ただし、3段目のマクロのグループ化にお
いて、クロック信号の分配条件が最終段のものとは異な
ることがあり、例えば、制限線長Lsや、制限負荷容量
F1の値が変わることがある。自動処理において、分割
部3や生成部4は、当該段における分配条件に基づいて
処理を行う。また、会話処理においては、評価部20
は、当該段における分配条件に反するグループ化が行わ
れているか否かを検証する。
D3mが生成されると、次に、それらに対するグループ
化が実行される。グループ化の手順は、図8に示される
自動化の手順が利用できる。また、図16に示される会
話型の手順を使用してもよい。或いは、両者を組み合わ
せてもよい。ただし、3段目のマクロのグループ化にお
いて、クロック信号の分配条件が最終段のものとは異な
ることがあり、例えば、制限線長Lsや、制限負荷容量
F1の値が変わることがある。自動処理において、分割
部3や生成部4は、当該段における分配条件に基づいて
処理を行う。また、会話処理においては、評価部20
は、当該段における分配条件に反するグループ化が行わ
れているか否かを検証する。
【0039】図23に、3段目のマクロのグループ化を
行うべく、図8で示す手順を用いて分割されたLSIの
領域を示す。ここでは、Lsが最終段マクロのグループ
化時よりも長い値が与えられている。そして、図24
に、図8で示す手順を用いて、3段目のマクロがグルー
プ化された様子を示す。ここでは、F1=3とした。3
段目のマクロは、G31〜G33までの3つのグループ
に分割される。
行うべく、図8で示す手順を用いて分割されたLSIの
領域を示す。ここでは、Lsが最終段マクロのグループ
化時よりも長い値が与えられている。そして、図24
に、図8で示す手順を用いて、3段目のマクロがグルー
プ化された様子を示す。ここでは、F1=3とした。3
段目のマクロは、G31〜G33までの3つのグループ
に分割される。
【0040】3段目のマクロがグループ化されると、生
成部4は、3段目のマクロにグループに対してクロック
信号を供給する2段目のマクロ(クロック分配マクロ)
を生成する。2段目のクロック分配マクロの生成も、3
段目のマクロの生成と同様に、生成部4による図19が
示す自動処理を用いても、図22が示す会話型処理を用
いてもよい。ただし、2段目のマクロの生成に固有の分
配条件に基づいて実行される。
成部4は、3段目のマクロにグループに対してクロック
信号を供給する2段目のマクロ(クロック分配マクロ)
を生成する。2段目のクロック分配マクロの生成も、3
段目のマクロの生成と同様に、生成部4による図19が
示す自動処理を用いても、図22が示す会話型処理を用
いてもよい。ただし、2段目のマクロの生成に固有の分
配条件に基づいて実行される。
【0041】図25に、3段目のマクログループに対し
てクロック信号を供給する2段目のマクロ(クロック分
配マクロ)が生成された様子を示す。D21、D22、
D23の3つのクロック分配マクロが生成されたのが分
かる。2段目のマクロについては、その全てに同一のグ
ループG21が一義的に定義される。それは、2段目の
マクロD2mは全て、初段のマクロからクロック信号を
供給されるからである。ただし、評価部22は、2段目
のマクロが分配条件に従って正しくグループ化されるか
否かを検証する。
てクロック信号を供給する2段目のマクロ(クロック分
配マクロ)が生成された様子を示す。D21、D22、
D23の3つのクロック分配マクロが生成されたのが分
かる。2段目のマクロについては、その全てに同一のグ
ループG21が一義的に定義される。それは、2段目の
マクロD2mは全て、初段のマクロからクロック信号を
供給されるからである。ただし、評価部22は、2段目
のマクロが分配条件に従って正しくグループ化されるか
否かを検証する。
【0042】2段目のマクロが分配条件に従って正しく
グループを形成していたら、初段のマクロD11(クロ
ック分配マクロ)が生成される。各段のマクロの生成同
様に、生成部4による図19が示す自動処理を用いて
も、図22が示す会話型処理を用いてもよい。図26
に、初段のマクロD11(クロック分配マクロ)が配置
された様子を示す。D11の配置位置に問題が無いこと
が確認されると、クロックCLK1のパスに含まれるマ
クロの生成は終了する。
グループを形成していたら、初段のマクロD11(クロ
ック分配マクロ)が生成される。各段のマクロの生成同
様に、生成部4による図19が示す自動処理を用いて
も、図22が示す会話型処理を用いてもよい。図26
に、初段のマクロD11(クロック分配マクロ)が配置
された様子を示す。D11の配置位置に問題が無いこと
が確認されると、クロックCLK1のパスに含まれるマ
クロの生成は終了する。
【0043】図27に、以上に述べたクロック分配マク
ロの生成過程において、生成された全マクロのレイアウ
トを示す。また、同図に、マクロ間の配線のイメージも
示した。図28は、図27に示されるマクロの論理的な
接続関係を示す。クロックピンP1から入力されたクロ
ックCLK1は、クロック分配マクロD11をルートと
するツリー構造のパスを通って、最終段のマクロMiへ
到達する。本発明では、最終段のマクロMiに対するク
ロック分配マクロD3mから順に、最終段のクロック分
配マクロD11が生成された。データベース生成部23
は、クロック分配マクロ単位のクロックパスの管理情報
を生成し、クロックグループデータベース(CGC)1
6に格納させる。CGC16の内容は、クロックパスの
修正や評価時に読みされ、その内容に基づく画像が表示
装置18に表示される。
ロの生成過程において、生成された全マクロのレイアウ
トを示す。また、同図に、マクロ間の配線のイメージも
示した。図28は、図27に示されるマクロの論理的な
接続関係を示す。クロックピンP1から入力されたクロ
ックCLK1は、クロック分配マクロD11をルートと
するツリー構造のパスを通って、最終段のマクロMiへ
到達する。本発明では、最終段のマクロMiに対するク
ロック分配マクロD3mから順に、最終段のクロック分
配マクロD11が生成された。データベース生成部23
は、クロック分配マクロ単位のクロックパスの管理情報
を生成し、クロックグループデータベース(CGC)1
6に格納させる。CGC16の内容は、クロックパスの
修正や評価時に読みされ、その内容に基づく画像が表示
装置18に表示される。
【0044】クロックパスの評価と修正について 本発明のクロック処理装置は、クロック系の設計および
変更を容易にする環境を与えるため、次のような表示機
能を提供する。表示制御部24は、図29が示すよう
に、分配条件ライブラリ15に定義されたEFB条件や
LSG条件を反映し、CGC16からクロックパスの情
報を情報を読みだし、オペレータが選択する任意の論理
階層レベルを表示部18に表示させることが可能であ
る。また、図3が示すような論理階層や実装分割ブロッ
クの構造に依らないマクロのツリー構造を表示させるこ
とも可能である。更に、マクロの配置のイメージだけで
なく、分配条件ライブラリの定義内容や論理/実装情報
をグループGnm単位で選択的に表示することが可能で
ある。表示情報としては、図5が示す分配条件や図6が
示すクロック分配グループ単位の管理情報があり、表示
制御部24は、オペレータが選択したグループについて
表示装置18に表示させる。更に、特定のグループを他
のグループと色を用いて区別したり、グループ内のマク
ロ数を表示することもできる。図29は、図28におい
て、クロック分配マクロD34からクロック信号の供給
を受けるマクロ群(グループG44)が選択され、その
中のマクロの色が変化し、クロック信号の供給を受ける
マクロ数(円内)が表示された様子を示す。
変更を容易にする環境を与えるため、次のような表示機
能を提供する。表示制御部24は、図29が示すよう
に、分配条件ライブラリ15に定義されたEFB条件や
LSG条件を反映し、CGC16からクロックパスの情
報を情報を読みだし、オペレータが選択する任意の論理
階層レベルを表示部18に表示させることが可能であ
る。また、図3が示すような論理階層や実装分割ブロッ
クの構造に依らないマクロのツリー構造を表示させるこ
とも可能である。更に、マクロの配置のイメージだけで
なく、分配条件ライブラリの定義内容や論理/実装情報
をグループGnm単位で選択的に表示することが可能で
ある。表示情報としては、図5が示す分配条件や図6が
示すクロック分配グループ単位の管理情報があり、表示
制御部24は、オペレータが選択したグループについて
表示装置18に表示させる。更に、特定のグループを他
のグループと色を用いて区別したり、グループ内のマク
ロ数を表示することもできる。図29は、図28におい
て、クロック分配マクロD34からクロック信号の供給
を受けるマクロ群(グループG44)が選択され、その
中のマクロの色が変化し、クロック信号の供給を受ける
マクロ数(円内)が表示された様子を示す。
【0045】一度生成されたマクロの配置が変更される
と、表示制御部24は、CGC16に格納されたクロッ
ク分配グループの情報と現状のそれを比較し、変更箇所
の表示形態を変える。例えば、図30(a)が示すよう
に、図28のグループG44にマクロMaが加わると、
加えられたマクロの表示色が他のマクロと異なる色で表
じされる。また、図30(b)が示すように、マクロM
25がグループG44から削除されると、マクロM25
が点線で表示される。なお、追加されるマクロを点線で
表示し、削除されるマクロの色を変えてもよい。また、
マクロを同一グループ内で移動させるときも、移動前と
移動後とでマクロの表示形態を変えることもできる。こ
のように、変更前と変更後の情報が同時に表示されこと
により、変更個所が明確になるという特徴を持つ。
と、表示制御部24は、CGC16に格納されたクロッ
ク分配グループの情報と現状のそれを比較し、変更箇所
の表示形態を変える。例えば、図30(a)が示すよう
に、図28のグループG44にマクロMaが加わると、
加えられたマクロの表示色が他のマクロと異なる色で表
じされる。また、図30(b)が示すように、マクロM
25がグループG44から削除されると、マクロM25
が点線で表示される。なお、追加されるマクロを点線で
表示し、削除されるマクロの色を変えてもよい。また、
マクロを同一グループ内で移動させるときも、移動前と
移動後とでマクロの表示形態を変えることもできる。こ
のように、変更前と変更後の情報が同時に表示されこと
により、変更個所が明確になるという特徴を持つ。
【0046】また、本発明のクロック生成装置は、生成
されたマクロに対して、実装条件、論理条件および、ク
ロック信号の分配条件を満足させるために、以下のよう
な補正機能を持つ。まず、各マクロ群に対し、実装及び
論理条件に基づく座標移動禁止、グループ変更禁止フラ
グをセットしたり、逆に解除する機能を持つ。表示制御
部24は、フラグがセットあるいはリセットするコマン
ドに応答して、指定された領域の表示形態を変更する。
そして、クロック生成部21は、指令された領域に対す
る座標やグループ変更を禁止、或いは解除する。図31
(a)は、図28のグループG44内のマクロ全てに移
動や再グループ化を禁止するために、点線で囲まれる領
域Aが指定され、領域内の各マクロにフラグが付加され
表示色が変化した状態を示す。
されたマクロに対して、実装条件、論理条件および、ク
ロック信号の分配条件を満足させるために、以下のよう
な補正機能を持つ。まず、各マクロ群に対し、実装及び
論理条件に基づく座標移動禁止、グループ変更禁止フラ
グをセットしたり、逆に解除する機能を持つ。表示制御
部24は、フラグがセットあるいはリセットするコマン
ドに応答して、指定された領域の表示形態を変更する。
そして、クロック生成部21は、指令された領域に対す
る座標やグループ変更を禁止、或いは解除する。図31
(a)は、図28のグループG44内のマクロ全てに移
動や再グループ化を禁止するために、点線で囲まれる領
域Aが指定され、領域内の各マクロにフラグが付加され
表示色が変化した状態を示す。
【0047】また、入力装置19から入力されるオペレ
ータのコマンドに応答して、クロック設計部21は、ク
ロック分配グループ内でマクロを移動したり、マクロの
種別を補正する機能持つ。図31(b)は、図28のグ
ループG44内で、クロック分配マクロD34が点線で
示す位置から網かけの位置に移動した様子を示す。更
に、、クロック設計部21はグループ間でマクロを移動
したり、クロック分配マクロを変更をする機能を持つ。
クロック生成部21はオペレータからの入れ替えコマン
ドに応答して、指定されたマクロの所属グループを入れ
替え、表示制御部14が入れ替え内容を表示装置18に
表示さる。例えば、図32(a)が示すように、入れ替
え対象マクロとして、グループG44のマクロM20と
グループG42内のマクロ16が指定されると、表示装
置18には、図32(b)が示すような画像が表示され
る。
ータのコマンドに応答して、クロック設計部21は、ク
ロック分配グループ内でマクロを移動したり、マクロの
種別を補正する機能持つ。図31(b)は、図28のグ
ループG44内で、クロック分配マクロD34が点線で
示す位置から網かけの位置に移動した様子を示す。更
に、、クロック設計部21はグループ間でマクロを移動
したり、クロック分配マクロを変更をする機能を持つ。
クロック生成部21はオペレータからの入れ替えコマン
ドに応答して、指定されたマクロの所属グループを入れ
替え、表示制御部14が入れ替え内容を表示装置18に
表示さる。例えば、図32(a)が示すように、入れ替
え対象マクロとして、グループG44のマクロM20と
グループG42内のマクロ16が指定されると、表示装
置18には、図32(b)が示すような画像が表示され
る。
【0048】本発明は、フロアープランの段階で実装時
の状態をシミュレートすべく、配線アルゴリズムに従っ
て設計対象のLSI内に図27が示すような仮の配線を
作成し、各種のチェックをする機能を持つ。仮の配線
は、生成中の状態、或いはCGC16に格納されるマク
ロの配置情報や接続情報に基づき、配線部15によって
作成される。
の状態をシミュレートすべく、配線アルゴリズムに従っ
て設計対象のLSI内に図27が示すような仮の配線を
作成し、各種のチェックをする機能を持つ。仮の配線
は、生成中の状態、或いはCGC16に格納されるマク
ロの配置情報や接続情報に基づき、配線部15によって
作成される。
【0049】まず、オペレータが配置位置を指示したマ
クロについて、オペレータのコマンドに基づき或いは自
動的に、等長イメージ(重心位置)とのズレを表示する
機能を持つ。この機能は、新規クロックパスの生成時、
或いは既に生成済のクロックパスの設計変更時のどちら
でも利用できる。クロック設計部21は、オペレータが
指示するクロック分配マクロの位置とともに重心位置情
報も表示制御部14にわたすので、表示制御部14は、
マクロの位置とともにクロック分配マクロの重心位置を
表示装置に表示させる。図33(a)は、図28におけ
るクロック分配マクロD34が、重心位置からはずれた
位置に再配置されるときの表示内容である。
クロについて、オペレータのコマンドに基づき或いは自
動的に、等長イメージ(重心位置)とのズレを表示する
機能を持つ。この機能は、新規クロックパスの生成時、
或いは既に生成済のクロックパスの設計変更時のどちら
でも利用できる。クロック設計部21は、オペレータが
指示するクロック分配マクロの位置とともに重心位置情
報も表示制御部14にわたすので、表示制御部14は、
マクロの位置とともにクロック分配マクロの重心位置を
表示装置に表示させる。図33(a)は、図28におけ
るクロック分配マクロD34が、重心位置からはずれた
位置に再配置されるときの表示内容である。
【0050】また、分配条件ライブラリに記憶されてい
る許容負荷容量違反、マクロ種別違反等のEFB条件や
LSG条件をチェックして、警告する機能を持つ。オペ
レータから或る領域に対するチェックコマンドが入力さ
れると、評価部22は、分配条件ライブラリ15を参照
して指定された領域に対して、たとえばグループ単位で
違反の有無をチェックし、表示制御部14にチェック結
果をわたす。表示制御部は表示装置18に表示結果を表
示させ、違反があるときは警告も表示させる。図34
は、図28のグループG44がチェックされた時の表示
内容の一例を示す。図33(b)および図33(c)
は、グループG44に対する制限負荷容量についてのチ
ェック結果の表示例である。図33(b)において、円
内の数字は制限負荷容量に対するグループ内の負荷容量
を示し、違反をしている場合は、警告のため表示色が変
わる。図33(c)は、マクロ種別についてのチェック
結果の表示例である。マクロ種別違反が認められると、
円内に示されるように示すように、違反マクロが警告表
示が付加されて表示される。図33(d)および図34
(e)は、線長制限についてのチェック結果の表示例で
ある。配線部15が配線アルゴリズム(スタイナー木
等)を用いて仮の配線が作成し、評価部22が、各グル
ープに対して分配条件ライブラリ15で定める線長制限
違反の有無が検証される。図33(d)は、ピンP1か
らグループG44へ至るパスに違反が認められたときの
表示例であり、違反パスが他のパスと色を変えられて表
示される。図33(e)は、グループG44内で線長制
限違反が認められたときの表示例であり、グループの色
が他のグループと異なる色で表示される。
る許容負荷容量違反、マクロ種別違反等のEFB条件や
LSG条件をチェックして、警告する機能を持つ。オペ
レータから或る領域に対するチェックコマンドが入力さ
れると、評価部22は、分配条件ライブラリ15を参照
して指定された領域に対して、たとえばグループ単位で
違反の有無をチェックし、表示制御部14にチェック結
果をわたす。表示制御部は表示装置18に表示結果を表
示させ、違反があるときは警告も表示させる。図34
は、図28のグループG44がチェックされた時の表示
内容の一例を示す。図33(b)および図33(c)
は、グループG44に対する制限負荷容量についてのチ
ェック結果の表示例である。図33(b)において、円
内の数字は制限負荷容量に対するグループ内の負荷容量
を示し、違反をしている場合は、警告のため表示色が変
わる。図33(c)は、マクロ種別についてのチェック
結果の表示例である。マクロ種別違反が認められると、
円内に示されるように示すように、違反マクロが警告表
示が付加されて表示される。図33(d)および図34
(e)は、線長制限についてのチェック結果の表示例で
ある。配線部15が配線アルゴリズム(スタイナー木
等)を用いて仮の配線が作成し、評価部22が、各グル
ープに対して分配条件ライブラリ15で定める線長制限
違反の有無が検証される。図33(d)は、ピンP1か
らグループG44へ至るパスに違反が認められたときの
表示例であり、違反パスが他のパスと色を変えられて表
示される。図33(e)は、グループG44内で線長制
限違反が認められたときの表示例であり、グループの色
が他のグループと異なる色で表示される。
【0051】更に、本発明のクロックパス生成装置は、
仮配線のディレイを計算し、表示する機能をもつ。オペ
レータのコマンドに応じて、評価部22は仮配線の指定
された区間のディレイを計算し、計算結果を表示制御部
14にわたす。表示制御部14は、表示装置18に対
し、計算結果を画面の所定の位置に表示させるよう指示
する。また、マクロの移動に伴って変更された仮配線に
ついて、ディレイを計算する機能も持つ。図33(e)
は、ディレイチェックの結果の表示例であり、図28の
ドライバD34とグループG44の各マクロ間のディレ
イ値が該当区間に表示されている。そして、d1,d
2,d3,d4は、ドライバD34の移動前のディレイ
であり、d1’,d2’,d3’,d4’は、移動後の
ディレイである。オペレータは、ドライバの位置を変更
させながら、ディレイが適切になる位置を検索する。
仮配線のディレイを計算し、表示する機能をもつ。オペ
レータのコマンドに応じて、評価部22は仮配線の指定
された区間のディレイを計算し、計算結果を表示制御部
14にわたす。表示制御部14は、表示装置18に対
し、計算結果を画面の所定の位置に表示させるよう指示
する。また、マクロの移動に伴って変更された仮配線に
ついて、ディレイを計算する機能も持つ。図33(e)
は、ディレイチェックの結果の表示例であり、図28の
ドライバD34とグループG44の各マクロ間のディレ
イ値が該当区間に表示されている。そして、d1,d
2,d3,d4は、ドライバD34の移動前のディレイ
であり、d1’,d2’,d3’,d4’は、移動後の
ディレイである。オペレータは、ドライバの位置を変更
させながら、ディレイが適切になる位置を検索する。
【0052】
【発明の効果】以上説明した本発明の効果をまとめる
と、最終段マクロに対するクロック分配マクロから順に
生成してクロックパスを構築するため、FF等のターゲ
ットマクロの分布を考慮した柔軟な設計が可能となる。
また、クロックパスの末端の細かな領域から、不具合箇
所を修正しながらマクロを生成していくことが可能とな
るため、後の修正にかける工数が削減され、設計の工期
の短縮につながる。さらに、予め仮の配線を作成してお
くことで、実装段階の不具合をフロアープランの段階で
発見することができ、実装設計がやり易くなる。そし
て、クロックパスに関する情報を独立して管理するた
め、クロック系の設計変更時にこれを参照することで、
修正作業が効率よく行える。
と、最終段マクロに対するクロック分配マクロから順に
生成してクロックパスを構築するため、FF等のターゲ
ットマクロの分布を考慮した柔軟な設計が可能となる。
また、クロックパスの末端の細かな領域から、不具合箇
所を修正しながらマクロを生成していくことが可能とな
るため、後の修正にかける工数が削減され、設計の工期
の短縮につながる。さらに、予め仮の配線を作成してお
くことで、実装段階の不具合をフロアープランの段階で
発見することができ、実装設計がやり易くなる。そし
て、クロックパスに関する情報を独立して管理するた
め、クロック系の設計変更時にこれを参照することで、
修正作業が効率よく行える。
【図1】本発明の該略図である。
【図2】図1が示すクロックパス設計装置における、ク
ロックパス生成の流れ図である。
ロックパス生成の流れ図である。
【図3】図2の流れ図に従って生成されたマクロのLS
I内におけるレイアウトである。
I内におけるレイアウトである。
【図4】本発明の実施の形態におけるハードウエア構成
図である。
図である。
【図5】図4が示す分配条件ライブラリの内容である。
【図6】図4が示すクロックグループデータベースの内
容である。
容である。
【図7】最終段マクロのLSI内におけるレイアウトで
ある。
ある。
【図8】本発明の実施の形態におけるマクロのグループ
化の流れ図である。
化の流れ図である。
【図9】図8に示す流れ図に従って分割されたLSI領
域を示す図である
域を示す図である
【図10】分割されたLSI内の各ブロックに含まれる
マクロ数を示す図である。
マクロ数を示す図である。
【図11】グループ化されたマクロを示す図である。
【図12】LSI内のブロックが再編成された様子を示
す図である。
す図である。
【図13】ブロックの再編成の例である。
【図14】互いに異なるブロックに含まれるマクロがグ
ループ化された様子を示す図である。
ループ化された様子を示す図である。
【図15】最終段マクロのグループ化の完了を示す図で
ある。
ある。
【図16】会話型処理によるマクロのグループ化のため
の流れ図である。
の流れ図である。
【図17】会話型処理によるグループ化を示す図であ
る。
る。
【図18】会話型処理によってグループ化された最終段
マクロを示す図である。
マクロを示す図である。
【図19】クロック分配マクロ生成の流れ図である。
【図20】3段目のマクロの生成過程を示す図である。
【図21】3段目のマクロの生成の完了を示す図であ
る。
る。
【図22】会話型処理によるクロック分配マクロ生成の
流れ図である。
流れ図である。
【図23】再分割されたLSI領域を示す図である。
【図24】3段目のマクロのグループ化の完了を示す
図。
図。
【図25】2段目のマクロの生成の完了を示す図。
【図26】2段目のマクロのグループ化と初段のマクロ
の生成を示す図。
の生成を示す図。
【図27】全マクロのレイアウトである。
【図28】生成されたクロックパスを示す図である。
【図29】画面表示の例である。
【図30】設計変更に伴う表示形態の変更を示す図であ
る。
る。
【図31】補正処理のイメージ図である。
【図32】マクロの交換を説明する図である。
【図33】エラー情報の表示例を示す図である。
【図34】ディレイチェックの結果を示す図である。
【図35】本発明の従来技術である一括駆動方式の説明
図である。
図である。
【図36】本発明の従来技術であるHツリー方式の説明
図である。
図である。
【符号の説明】 1・・・データベース 2・・・管理情報作成部 3・・・分割部 4・・・生成部 15・・・分配条件ライブラリ 16・・・クロックグループデータベース 22・・・評価部 25・・・配線部
Claims (14)
- 【請求項1】 設計対象のLSI内に、マクロが多段接
続されてなるクロックパスを生成する装置であって、 前記LSIに配置される第N段目の複数のマクロをグル
ープに区分する分割部と、 前記第N段目マクロからなる前記グループを生成した
後、グループ毎に、当該グループ内のマクロに対してク
ロック信号を供給する第N−1段目のマクロを生成する
生成部と、を有することを特徴とするクロックパス生成
装置装置。 - 【請求項2】 前記分割部は、制限範囲内に存在する所
定個数のマクロに1つのグループを割り当てることを特
徴とする請求項1に記載のクロックパス設計装置。 - 【請求項3】 前記生成部は、第N−1段目のマクロか
らクロック信号を受ける第N段目のマクロの重心位置
に、該第N−1段目のマクロを生成することを特徴とす
る請求項1に記載のクロックパス生成装置。 - 【請求項4】 生成されたクロックパスを、クロック信
号の分配条件に基づいて評価する評価部を有することを
特徴とする請求項1ないし請求項3のいずれか1項に記
載のクロックパス生成装置。 - 【請求項5】 生成されたクロックパスについて、クロ
ック信号が通過する配線を作成する配線部を有すること
を特徴とする請求項1ないし請求項3のいずれか1項に
記載のクロックパス生成装置。 - 【請求項6】 設計対象のLSI内に、マクロを多段に
接続してなるクロックパスを生成する装置であって、 生成されたクロックパスに含まれるクロック信号を分配
する各々のマクロの管理情報を作成する管理情報作成部
を有することを特徴とするクロックパス生成装置。 - 【請求項7】 前記管理情報作成部は、少なくとも、ク
ロック信号を分配するマクロと、該マクロからクロック
信号が供給されるターゲットマクロとの対応情報を作成
することを特徴とする請求項4に記載のクロックパス設
計装置。有することを特徴とする請求項1に記載のクロ
ックパス生成装置。 - 【請求項8】 設計対象のLSI内に、マクロが多段接
続されてなるクロックパスを生成する方法であって、 前記LSIに配置される第N段目のマクロを複数のグル
ープに分割し、 前記第N段目マクロからなる前記グループを生成した
後、グループ毎に、当該グループ内のマクロに対してク
ロック信号を供給する第N−1段目のマクロを生成する
ことを特徴とするクロックパス生成方法。 - 【請求項9】 制限範囲内に存在する所定個数のマクロ
に1つのグループを割り当てることを特徴とする請求項
1に記載のクロックパス設計方法。 - 【請求項10】 第N−1段目のマクロからクロック信
号を受ける第N段目のマクロの重心位置に、該第N−1
段目のマクロを生成することを特徴とする請求項1に記
載のクロックパス生成方法。 - 【請求項11】 生成されたクロックパスを、クロック
信号の分配条件に基づいて評価することを特徴とする請
求項8ないし請求項10のいずれか1項に記載のクロッ
クパス生成方法。 - 【請求項12】 生成されたクロックパスについて、ク
ロック信号が通過する配線を作成する配線部を有するこ
とを特徴とする請求項8ないし請求項10のいずれか1
項に記3のクロックパス生成方法。 - 【請求項13】 設計対象のLSI内に、マクロを多段
に接続してなるクロックパスを生成する方法であって、 生成されたクロックパスに含まれるクロック信号を分配
する各々のマクロの管理情報を作成することを特徴とす
るクロックパス生成方法。 - 【請求項14】 管理情報として、少なくとも、クロッ
ク信号を分配するマクロと、該マクロからクロック信号
が供給されるターゲットマクロとの対応情報を作成する
ことを特徴とする請求項13に記載のクロックパス設計
方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9287463A JPH11119854A (ja) | 1997-10-20 | 1997-10-20 | クロックパス生成方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9287463A JPH11119854A (ja) | 1997-10-20 | 1997-10-20 | クロックパス生成方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11119854A true JPH11119854A (ja) | 1999-04-30 |
Family
ID=17717671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9287463A Withdrawn JPH11119854A (ja) | 1997-10-20 | 1997-10-20 | クロックパス生成方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11119854A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519750B2 (en) | 2000-03-13 | 2003-02-11 | Nec Corporation | Method of designing layout for integrated circuit |
JP2009076709A (ja) * | 2007-09-21 | 2009-04-09 | Hitachi Ltd | 半導体装置 |
JP2010086284A (ja) * | 2008-09-30 | 2010-04-15 | Fujitsu Ltd | クロック信号供給回路の設計方法、情報処理装置およびプログラム |
JP2010237906A (ja) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | 設計支援装置、設計支援方法及び設計支援プログラム |
JP2012118986A (ja) * | 2010-11-29 | 2012-06-21 | Springsoft Usa Inc | マルチレベルのスパイン配線 |
-
1997
- 1997-10-20 JP JP9287463A patent/JPH11119854A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519750B2 (en) | 2000-03-13 | 2003-02-11 | Nec Corporation | Method of designing layout for integrated circuit |
JP2009076709A (ja) * | 2007-09-21 | 2009-04-09 | Hitachi Ltd | 半導体装置 |
JP2010086284A (ja) * | 2008-09-30 | 2010-04-15 | Fujitsu Ltd | クロック信号供給回路の設計方法、情報処理装置およびプログラム |
JP2010237906A (ja) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | 設計支援装置、設計支援方法及び設計支援プログラム |
JP2012118986A (ja) * | 2010-11-29 | 2012-06-21 | Springsoft Usa Inc | マルチレベルのスパイン配線 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7216293B2 (en) | Display control method, program product, and information processing apparatus for controlling objects in a container based on the container's size | |
US4967367A (en) | Synthetic netlist system and method | |
US6557153B1 (en) | Method and system for implementing a user interface for performing physical design operations on an integrated circuit netlist | |
US8006219B2 (en) | Wiring path information creating method and wiring path information creating apparatus | |
US20090064069A1 (en) | Method and system for generating a layout for an integrated electronic circuit | |
JP3042761B2 (ja) | 論理エミュレーションシステムにおけるプログラマブルデバイスのプログラムデータ生成方法およびプログラマブルデバイスのプログラムデータ生成装置 | |
JPH05108744A (ja) | 階層的回路データベース最適化装置及び階層的回路データベース最適化方法 | |
US7831946B2 (en) | Clock distribution network wiring structure | |
JPH01274277A (ja) | 負荷分配方式 | |
US7178123B2 (en) | Schematic diagram generation and display system | |
JPH11119854A (ja) | クロックパス生成方法および装置 | |
US6941532B2 (en) | Clock skew verification methodology for grid-based design | |
JP2001338006A (ja) | 論理自動設計支援方法および装置 | |
JP5515255B2 (ja) | 自動配線装置、自動配線方法および自動配線プログラム | |
JP4053969B2 (ja) | 半導体集積回路の設計装置および半導体集積回路の設計方法 | |
JPH09212535A (ja) | プリント基板への部品実装設計方法およびその支援装置 | |
US6189129B1 (en) | Figure operation of layout for high speed processing | |
JP2766284B2 (ja) | 半導体集積回路のレイアウト支援装置 | |
JP2009188093A (ja) | 半導体集積回路の設計装置、方法、及び、プログラム | |
JP2000113024A (ja) | ネットリスト生成方法及びネットリスト生成装置 | |
JPH09289252A (ja) | 図形処理方法および装置 | |
JP2000322462A (ja) | 自動レイアウト装置および半導体集積回路設計方法 | |
JP3028938B2 (ja) | 半導体集積回路のレイアウト方法 | |
US6728667B1 (en) | Multiple instantiation system | |
US9734277B2 (en) | Semiconductor device designing method, designing apparatus, and computer-readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050104 |