JPH10209287A - クロック供給系のレイアウト設計方法 - Google Patents
クロック供給系のレイアウト設計方法Info
- Publication number
- JPH10209287A JPH10209287A JP9012305A JP1230597A JPH10209287A JP H10209287 A JPH10209287 A JP H10209287A JP 9012305 A JP9012305 A JP 9012305A JP 1230597 A JP1230597 A JP 1230597A JP H10209287 A JPH10209287 A JP H10209287A
- Authority
- JP
- Japan
- Prior art keywords
- clock
- circuit
- net
- buffer
- distribution circuit
- 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)【要約】
【課題】 クロックスキューの最小化とクロックパスデ
ィレイの制御を可能にする。 【解決手段】 仮想クロックバッファからクロック信号
供給先に至るネットを生成する(101)。仮想クロッ
クバッファの指定ディレイ値を遵守して、仮想クロック
バッファを置き換えるための、複数個のクロックバッフ
ァによるクロック供給経路を特定するクロック分配回路
を生成し、そのクロック供給経路の各ネットにおけるデ
ィレイ値として予算値を決定する(102)。クロック
分配回路等に従って回路セルが配置されたとき(10
3)、クロック分配回路の広がりを同一レベルのクロッ
クバッファ毎に最小化する(104)。また、クロック
分配回路の各ネットに対応されるネットのディレイ値を
前記予算値に適合させるため当該ネットの回路素子の配
置を変更する(105)。
ィレイの制御を可能にする。 【解決手段】 仮想クロックバッファからクロック信号
供給先に至るネットを生成する(101)。仮想クロッ
クバッファの指定ディレイ値を遵守して、仮想クロック
バッファを置き換えるための、複数個のクロックバッフ
ァによるクロック供給経路を特定するクロック分配回路
を生成し、そのクロック供給経路の各ネットにおけるデ
ィレイ値として予算値を決定する(102)。クロック
分配回路等に従って回路セルが配置されたとき(10
3)、クロック分配回路の広がりを同一レベルのクロッ
クバッファ毎に最小化する(104)。また、クロック
分配回路の各ネットに対応されるネットのディレイ値を
前記予算値に適合させるため当該ネットの回路素子の配
置を変更する(105)。
Description
【0001】
【発明の属する技術分野】本発明は、半導体集積回路の
クロック供給系のレイアウト設計方法に係り、クロック
信号のスキューを低減するのに有効なクロック分配回路
の設計手法に関する。
クロック供給系のレイアウト設計方法に係り、クロック
信号のスキューを低減するのに有効なクロック分配回路
の設計手法に関する。
【0002】
【従来の技術】半導体集積回路の従来の設計手法は、例
えば図17に示すように、論理設計の段階でクロック論
理を含んだ論理設計を行い、レイアウト設計の段階では
論理設計で作成された論理階層を考慮してセルの配置お
よび配線処理を行う。このような設計フローにおいて、
半導体集積回路の同期動作用の内部クロック信号のスキ
ューを低減するためには、クロック論理の設計段階で、
多段のクロックバッファで構成された論理を構成し、同
一段のクロックバッファには同一種のクロックバッファ
を用い、さらにそれらのファンアウト数を同一にするこ
とによって、クロックバッファのディレイ値を揃えるこ
とができる。
えば図17に示すように、論理設計の段階でクロック論
理を含んだ論理設計を行い、レイアウト設計の段階では
論理設計で作成された論理階層を考慮してセルの配置お
よび配線処理を行う。このような設計フローにおいて、
半導体集積回路の同期動作用の内部クロック信号のスキ
ューを低減するためには、クロック論理の設計段階で、
多段のクロックバッファで構成された論理を構成し、同
一段のクロックバッファには同一種のクロックバッファ
を用い、さらにそれらのファンアウト数を同一にするこ
とによって、クロックバッファのディレイ値を揃えるこ
とができる。
【0003】また、図18に示すようにクロック論理回
路のレイアウトを通常のセルの配置後に行うことで、レ
イアウト結果を考慮してクロック論理設計を行う手法も
ある。情報処理学会研究会報告VLD91-130では、予じめ
配置されたフリップフロップを考慮してクロックバッフ
ァの配置を行い、同一段で同一の配線容量になるように
クロック配線を行う技術が示されている。
路のレイアウトを通常のセルの配置後に行うことで、レ
イアウト結果を考慮してクロック論理設計を行う手法も
ある。情報処理学会研究会報告VLD91-130では、予じめ
配置されたフリップフロップを考慮してクロックバッフ
ァの配置を行い、同一段で同一の配線容量になるように
クロック配線を行う技術が示されている。
【0004】ASIC(Application Specific Integra
ted Circuits)などによる半導体集積回路には、既設計
部品であるマクロブロックとそれ以外のランダム論理部
分が存在することが多い。このときは、論理設計におい
て、通常ランダム論理部分の設計が先に行われ、マクロ
ブロックとの接続部分の設計がその後行われる。このた
め、マクロブロック内のクロック信号供給先のセルとラ
ンダム論理内のクロック信号供給先のセルとの間のクロ
ックスキューを低減するためには、ランダム論理部分と
マクロブロックとの接続部分でのディレイ値のあわせ込
みが必要となり、クロック信号配線の長さの調整を行わ
なければならない。
ted Circuits)などによる半導体集積回路には、既設計
部品であるマクロブロックとそれ以外のランダム論理部
分が存在することが多い。このときは、論理設計におい
て、通常ランダム論理部分の設計が先に行われ、マクロ
ブロックとの接続部分の設計がその後行われる。このた
め、マクロブロック内のクロック信号供給先のセルとラ
ンダム論理内のクロック信号供給先のセルとの間のクロ
ックスキューを低減するためには、ランダム論理部分と
マクロブロックとの接続部分でのディレイ値のあわせ込
みが必要となり、クロック信号配線の長さの調整を行わ
なければならない。
【0005】
【発明が解決しようとする課題】クロック論理の設計を
論理設計時に行う場合には、そのレイアウト結果を精度
よく推定することができない。また、レイアウト設計時
にクロック論理のレイアウトについてなにも制約がない
場合には、同一段のクロックバッファのファンアウト数
やクロックバッファの種類が揃っていても、配線長にば
らつきが生じ、結果として同一クロック回路段の負荷が
不均一になる状況が生じることがある。このように、ク
ロック論理の設計を半導体集積回路の論理設計時に行う
場合には、クロック論理の設計内容(ディレイ時間な
ど)をレイアウト時に正確に反映できないおそれがあ
る。
論理設計時に行う場合には、そのレイアウト結果を精度
よく推定することができない。また、レイアウト設計時
にクロック論理のレイアウトについてなにも制約がない
場合には、同一段のクロックバッファのファンアウト数
やクロックバッファの種類が揃っていても、配線長にば
らつきが生じ、結果として同一クロック回路段の負荷が
不均一になる状況が生じることがある。このように、ク
ロック論理の設計を半導体集積回路の論理設計時に行う
場合には、クロック論理の設計内容(ディレイ時間な
ど)をレイアウト時に正確に反映できないおそれがあ
る。
【0006】情報処理学会研究会報告VLD91-130の内容
においては、下位のクロック回路の配置状況を考慮して
対象段のクロックバッファの配置位置を決定し、同一の
配線容量になるように配線を行っている。そのため、全
クロック回路のディレイはクロック回路の終端であるフ
リップフロップの配置位置に依存する。さらに、同一段
での配線容量の均一化を行っているため、同一段のディ
レイは最大の広がりを持つネットに依存する。すなわ
ち、広がりの大きなネット程、配線長が長くなり、これ
に同一段の全てのネットのディレイ時間を単に合わせる
手法では、クロックディレイ時間の仕様を満足させるこ
とが難しくなる。
においては、下位のクロック回路の配置状況を考慮して
対象段のクロックバッファの配置位置を決定し、同一の
配線容量になるように配線を行っている。そのため、全
クロック回路のディレイはクロック回路の終端であるフ
リップフロップの配置位置に依存する。さらに、同一段
での配線容量の均一化を行っているため、同一段のディ
レイは最大の広がりを持つネットに依存する。すなわ
ち、広がりの大きなネット程、配線長が長くなり、これ
に同一段の全てのネットのディレイ時間を単に合わせる
手法では、クロックディレイ時間の仕様を満足させるこ
とが難しくなる。
【0007】何れの手法においても、たとえ設計者がク
ロック回路のディレイ値を論理設計段階で想定していた
としても、そのディレイ値をレイアウト設計段階で遵守
することができない。さらに、設計制約事項として、ク
ロックバッファの負荷の制限値が存在する場合には、そ
の制限値以内になるようにクロックネットの配線長を調
整しないと、クロックバッファのドライバビリティーに
対して配線抵抗が大きくなり過ぎ、エレクトロマイグレ
ーションが発生するおそれがある。このような制約事項
も遵守される保証はない。さらに、半導体集積回路の消
費電力を低減するために、クロック回路の論理ゲート数
を少なくしたい場合に、従来の手法では論理設計段階で
しか考慮できないために、エレクトロマイグレーション
やクロックスキュー等の設計制約を遵守するのが困難に
なる場合がある。
ロック回路のディレイ値を論理設計段階で想定していた
としても、そのディレイ値をレイアウト設計段階で遵守
することができない。さらに、設計制約事項として、ク
ロックバッファの負荷の制限値が存在する場合には、そ
の制限値以内になるようにクロックネットの配線長を調
整しないと、クロックバッファのドライバビリティーに
対して配線抵抗が大きくなり過ぎ、エレクトロマイグレ
ーションが発生するおそれがある。このような制約事項
も遵守される保証はない。さらに、半導体集積回路の消
費電力を低減するために、クロック回路の論理ゲート数
を少なくしたい場合に、従来の手法では論理設計段階で
しか考慮できないために、エレクトロマイグレーション
やクロックスキュー等の設計制約を遵守するのが困難に
なる場合がある。
【0008】また,複数系統のフリップフロップ群が存
在し、各々のフリップフロップ群を同一のディレイ値で
駆動する必要がある場合には、従来の手法では、クロッ
ク回路のディレイ値をレイアウト設計段階で制御するこ
とが困難であるため、同一のディレイ値で駆動できない
ことが多い。
在し、各々のフリップフロップ群を同一のディレイ値で
駆動する必要がある場合には、従来の手法では、クロッ
ク回路のディレイ値をレイアウト設計段階で制御するこ
とが困難であるため、同一のディレイ値で駆動できない
ことが多い。
【0009】また、マクロブロック等の既設計部品とラ
ンダム論理部分に含まれるフリップフロップ群に対して
同一のクロック信号を供給する必要がある場合には、従
来の手法では、既設計部品内のクロック回路のディレイ
値を考慮して論理設計を行ったとしても、レイアウト設
計では既設計部品からランダム論理部分のフリップフロ
ップに至る経路に対し、既設計部品内のディレイ値を考
慮してクロックバッファの配置およびネットの配線を行
うことができないので、既設計部品内のフリップフロッ
プとその他のフリップフロップへのクロック信号の到達
時間を制御することが困難になる。
ンダム論理部分に含まれるフリップフロップ群に対して
同一のクロック信号を供給する必要がある場合には、従
来の手法では、既設計部品内のクロック回路のディレイ
値を考慮して論理設計を行ったとしても、レイアウト設
計では既設計部品からランダム論理部分のフリップフロ
ップに至る経路に対し、既設計部品内のディレイ値を考
慮してクロックバッファの配置およびネットの配線を行
うことができないので、既設計部品内のフリップフロッ
プとその他のフリップフロップへのクロック信号の到達
時間を制御することが困難になる。
【0010】本発明の目的は、論理設計で意図したクロ
ック回路のディレイ値をレイアウト設計で遵守すること
であり、同時にエレクトロマイグレーションや消費電力
などに関する制約条件を満足できるクロック供給論理を
生成することにある。
ック回路のディレイ値をレイアウト設計で遵守すること
であり、同時にエレクトロマイグレーションや消費電力
などに関する制約条件を満足できるクロック供給論理を
生成することにある。
【0011】本発明の別の目的は、クロック分配回路生
成時にクロックネットに対して予算値を設定し、レイア
ウト設計時に予算値を遵守することにより、論理設計で
の意図を精度よくレイアウトに反映させることにある。
成時にクロックネットに対して予算値を設定し、レイア
ウト設計時に予算値を遵守することにより、論理設計で
の意図を精度よくレイアウトに反映させることにある。
【0012】本発明のその他の目的は、クロック分配回
路生成時に論理階層を考慮してクロックバッファの属す
る論理階層を決定することにより、レイアウト設計での
予算値の遵守を容易にすることにある。
路生成時に論理階層を考慮してクロックバッファの属す
る論理階層を決定することにより、レイアウト設計での
予算値の遵守を容易にすることにある。
【0013】本発明のさらに他の目的は、マクロブロッ
ク等の既設計部品とフリップフロップ群に対して同一の
クロック信号を供給する必要がある場合に、クロック分
配回路生成時に既設計部品内のディレイ値を考慮してク
ロックネットの予算値を設定し、レイアウト設計時にお
いて予算値を遵守して配置配線を行うことにより、既設
計部品内のフリップフロップとその他のフリップフロッ
プへのクロック信号の到達時間を同一にすることにあ
る。
ク等の既設計部品とフリップフロップ群に対して同一の
クロック信号を供給する必要がある場合に、クロック分
配回路生成時に既設計部品内のディレイ値を考慮してク
ロックネットの予算値を設定し、レイアウト設計時にお
いて予算値を遵守して配置配線を行うことにより、既設
計部品内のフリップフロップとその他のフリップフロッ
プへのクロック信号の到達時間を同一にすることにあ
る。
【0014】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0015】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0016】すなわち、クロック信号に同期動作される
半導体集積回路におけるクロック供給系をコンピュータ
を用いて設計する方法は、論理設計された回路にクロッ
ク信号を供給する仮想クロックバッファを想定し、仮想
クロックバッファの出力端子からクロック信号供給先の
入力端子に至るネットを生成する第1処理(101)
と、前記仮想クロックバッファの指定ディレイ値を遵守
して当該仮想クロックバッファを置き換えるための、少
なくとも単数若しくは複数個のクロックバッファを想定
したクロック供給経路を特定するためのクロック分配回
路を生成すると共に、クロック分配回路によって規定さ
れるクロック供給経路の各ネットにおけるディレイ値と
して予算値を決定する第2処理(102)と、論理設計
された回路及び前記クロック分配回路に従って回路セル
を配置する第3処理(103)と、回路セルが配置され
たとき前記クロック分配回路の広がりを同一レベルのク
ロックバッファ毎に最小化する第4処理(104)と、
回路セルが配置されたとき前記クロック分配回路の各ネ
ットに対応されるネットのディレイ値を前記予算値に適
合させるために当該ネットの回路素子の配置を変更する
第5処理(105)とを含む。
半導体集積回路におけるクロック供給系をコンピュータ
を用いて設計する方法は、論理設計された回路にクロッ
ク信号を供給する仮想クロックバッファを想定し、仮想
クロックバッファの出力端子からクロック信号供給先の
入力端子に至るネットを生成する第1処理(101)
と、前記仮想クロックバッファの指定ディレイ値を遵守
して当該仮想クロックバッファを置き換えるための、少
なくとも単数若しくは複数個のクロックバッファを想定
したクロック供給経路を特定するためのクロック分配回
路を生成すると共に、クロック分配回路によって規定さ
れるクロック供給経路の各ネットにおけるディレイ値と
して予算値を決定する第2処理(102)と、論理設計
された回路及び前記クロック分配回路に従って回路セル
を配置する第3処理(103)と、回路セルが配置され
たとき前記クロック分配回路の広がりを同一レベルのク
ロックバッファ毎に最小化する第4処理(104)と、
回路セルが配置されたとき前記クロック分配回路の各ネ
ットに対応されるネットのディレイ値を前記予算値に適
合させるために当該ネットの回路素子の配置を変更する
第5処理(105)とを含む。
【0017】上記方法は、クロック分配回路の生成時に
制約条件(仮想クロックバッファの指定ディレイ値な
ど)を考慮して、クロックネット(クロック分配回路で
規定されるクロック供給経路のネット)に予算値を与え
る。その後の処理では、クロック分配回路の広がりを同
一レベルのクロックバッファ毎に最小化することによ
り、クロックネットのパスディレイの制御が容易にな
る。また、そのとき、前記予算値を遵守するようにネッ
トの回路セル配置を変更するから、この点においてもク
ロックネットにおけるパスディレイの制御が容易にな
る。これにより、クロックスキューも最小化できる。パ
スディレイの制御が容易であるから、エレクトロマイグ
レーションや消費電力に関する制約条件も満足できるよ
うになる。したがって、論理設計での意図を精度よくレ
イアウトに反映させることができる。
制約条件(仮想クロックバッファの指定ディレイ値な
ど)を考慮して、クロックネット(クロック分配回路で
規定されるクロック供給経路のネット)に予算値を与え
る。その後の処理では、クロック分配回路の広がりを同
一レベルのクロックバッファ毎に最小化することによ
り、クロックネットのパスディレイの制御が容易にな
る。また、そのとき、前記予算値を遵守するようにネッ
トの回路セル配置を変更するから、この点においてもク
ロックネットにおけるパスディレイの制御が容易にな
る。これにより、クロックスキューも最小化できる。パ
スディレイの制御が容易であるから、エレクトロマイグ
レーションや消費電力に関する制約条件も満足できるよ
うになる。したがって、論理設計での意図を精度よくレ
イアウトに反映させることができる。
【0018】また、複数系統のフリップフロップ群が存
在し、おのおのの群に同一ディレイでクロック信号を供
給しなければならない場合についても、同一指定ディレ
イ値を持つ仮想クロックバッファをクロックネットに与
えることにより、各クロック分配回路に同一の予算値が
設定され、配置配線ではその予算値を遵守するように処
理を行うことにより、これらフリップフロップにクロッ
ク信号が到達する時間を容易に同一にできる。
在し、おのおのの群に同一ディレイでクロック信号を供
給しなければならない場合についても、同一指定ディレ
イ値を持つ仮想クロックバッファをクロックネットに与
えることにより、各クロック分配回路に同一の予算値が
設定され、配置配線ではその予算値を遵守するように処
理を行うことにより、これらフリップフロップにクロッ
ク信号が到達する時間を容易に同一にできる。
【0019】前記第1処理において、既に検証済みの既
設計論理ブロックと論理設計された回路の双方にクロッ
ク信号を供給する仮想クロックバッファを想定して、該
仮想クロックバッファの出力端子からクロック信号供給
先の入力端子に至るネットが生成されているとき、その
ネットに対する前記第2処理は、既設計論理ブロックの
内部ディレイを考慮してクロック分配回路を生成し、そ
のクロック分配回路に対し、既設計論理ブロック内の回
路と既設計論理ブロック外の回路とへのクロック信号の
到達時間が等しくなるように予算値を設定する。このよ
うに、既設計論理ブロックと新たに論理設計された回路
のフリップフロップ群の双方に対して同一のクロック信
号を供給する必要がある場合についても、既設計論理ブ
ロックのクロックディレイを考慮してクロック分配回路
のネットの予算値を設定するため、同じようにクロック
スキューの最小化を実現できる。
設計論理ブロックと論理設計された回路の双方にクロッ
ク信号を供給する仮想クロックバッファを想定して、該
仮想クロックバッファの出力端子からクロック信号供給
先の入力端子に至るネットが生成されているとき、その
ネットに対する前記第2処理は、既設計論理ブロックの
内部ディレイを考慮してクロック分配回路を生成し、そ
のクロック分配回路に対し、既設計論理ブロック内の回
路と既設計論理ブロック外の回路とへのクロック信号の
到達時間が等しくなるように予算値を設定する。このよ
うに、既設計論理ブロックと新たに論理設計された回路
のフリップフロップ群の双方に対して同一のクロック信
号を供給する必要がある場合についても、既設計論理ブ
ロックのクロックディレイを考慮してクロック分配回路
のネットの予算値を設定するため、同じようにクロック
スキューの最小化を実現できる。
【0020】前記第2処理において、相互に同一レベル
のクロックバッファの一部に対して負荷調整用セルを設
けるようにして相互に同一レベルのクロックバッファの
ファンアウト数を同一にする。これによれば、同一レベ
ルのクロックバッファに関するクロックスキューを更に
低減することができる。
のクロックバッファの一部に対して負荷調整用セルを設
けるようにして相互に同一レベルのクロックバッファの
ファンアウト数を同一にする。これによれば、同一レベ
ルのクロックバッファに関するクロックスキューを更に
低減することができる。
【0021】同様に、前記第2処理において、クロック
スキューを同一に規定すべき複数個の仮想クロックバッ
ファの各クロック分配回路に対して、相互に同一レベル
のクロックバッファの一部に対して負荷調整用セルを設
けるようにして相互に同一レベルのクロックバッファの
ファンアウト数を前記各クロック分配回路間で同一にす
る。これによれば、前記各クロック分配回路における同
一レベルのクロックバッファに関するクロックスキュー
を更に低減することができる。
スキューを同一に規定すべき複数個の仮想クロックバッ
ファの各クロック分配回路に対して、相互に同一レベル
のクロックバッファの一部に対して負荷調整用セルを設
けるようにして相互に同一レベルのクロックバッファの
ファンアウト数を前記各クロック分配回路間で同一にす
る。これによれば、前記各クロック分配回路における同
一レベルのクロックバッファに関するクロックスキュー
を更に低減することができる。
【0022】また、クロック分配回路に適用されるクロ
ックバッファの負荷の制限値が半導体集積回路の動作周
波数に対して決定される場合に、前記第1処理は、クロ
ックバッファの負荷の制限値を超えないようにクロック
分配回路のファンアウト数を決定する。
ックバッファの負荷の制限値が半導体集積回路の動作周
波数に対して決定される場合に、前記第1処理は、クロ
ックバッファの負荷の制限値を超えないようにクロック
分配回路のファンアウト数を決定する。
【0023】また、前記第2処理において、クロックバ
ッファの数と負荷調整用セルの数を最小化して前記クロ
ック分配回路を生成し、クロック供給系の論理規模を小
さくする。
ッファの数と負荷調整用セルの数を最小化して前記クロ
ック分配回路を生成し、クロック供給系の論理規模を小
さくする。
【0024】負荷調整用セルに対するそれら手段によれ
ば、クロック分配回路生成時にクロックバッファの負荷
の制限値やクロック論理回路の論理規模のような制約条
件を満足できる。
ば、クロック分配回路生成時にクロックバッファの負荷
の制限値やクロック論理回路の論理規模のような制約条
件を満足できる。
【0025】
【発明の実施の形態】図1に本発明に係クロック供給系
のレイアウト方法を実現するための処理手順の全体的な
一例が示される。
のレイアウト方法を実現するための処理手順の全体的な
一例が示される。
【0026】ステップ101では、目的とする半導体集
積回路におけるクロック信号供給系以外の論理が設計さ
れる。論理設計において、クロック信号供給系について
は、クロック信号供給先のフリップフロップのような素
子に至る仮想クロックバッファを想定し、この仮想クロ
ックバッファの出力端子とクロック信号供給先素子の入
力ピンとの間のネットを設計する。論理設計ではクロッ
ク供給系の詳細は特定されない。仮想クロックバッファ
はセルライブラリ130に定義されている。仮想クロッ
クバッファには、想定ファンアウト数,ゲート数,ディ
レイ値が定義されている。論理設計時にはクロック信号
供給先素子の規模および設計方法などに応じて適当な仮
想クロックバッファを選択することになる。換言すれ
ば、目的とする性能若しくはユーザ要求仕様を得るため
に必要なクロック信号に関する制約値(クロックディレ
イ値等)を満足するための仮想的な素子として仮想クロ
ックバッファを用いる。特に,複数のフリップフロップ
群が存在し、同一のディレイで各々のフリップフロップ
群を駆動したい場合には、それらに対して同一の仮想ク
ロックバッファを選択することになる。
積回路におけるクロック信号供給系以外の論理が設計さ
れる。論理設計において、クロック信号供給系について
は、クロック信号供給先のフリップフロップのような素
子に至る仮想クロックバッファを想定し、この仮想クロ
ックバッファの出力端子とクロック信号供給先素子の入
力ピンとの間のネットを設計する。論理設計ではクロッ
ク供給系の詳細は特定されない。仮想クロックバッファ
はセルライブラリ130に定義されている。仮想クロッ
クバッファには、想定ファンアウト数,ゲート数,ディ
レイ値が定義されている。論理設計時にはクロック信号
供給先素子の規模および設計方法などに応じて適当な仮
想クロックバッファを選択することになる。換言すれ
ば、目的とする性能若しくはユーザ要求仕様を得るため
に必要なクロック信号に関する制約値(クロックディレ
イ値等)を満足するための仮想的な素子として仮想クロ
ックバッファを用いる。特に,複数のフリップフロップ
群が存在し、同一のディレイで各々のフリップフロップ
群を駆動したい場合には、それらに対して同一の仮想ク
ロックバッファを選択することになる。
【0027】ステップ102は、論理設計時に挿入され
ている仮想クロックバッファと置き換えられるクロック
分配回路を自動生成する。クロック分配回路はその構成
要素となるクロックバッファ及び負荷調整用セルを有す
る。これらクロックバッファ及び負荷調整用セルも仮想
クロックバッファと同じくセルライブラリ130に定義
されている。このとき、クロック分配回路における各ク
ロックバッファのネットのディレイ値として予算値を割
り振る。予算値とは、例えば仮想クロックバッファの出
力端子とクロック信号供給先素子の入力ピンとの間のネ
ットの遅延時間をクロックバッファ毎の遅延時間の総和
としたとき、各クロックバッファ毎に割り当てられる遅
延時間として定義される。後のステップでこの予算値を
遵守するようにクロックバッファなどの配置配線を行う
ことになる。上述の自動生成されたクロック分配回路の
構成要素はクロック論理ネットリスト131として保存
される。クロック論理ネットリスト131には上記ネッ
ト毎に与えられる予算値が含まれている。
ている仮想クロックバッファと置き換えられるクロック
分配回路を自動生成する。クロック分配回路はその構成
要素となるクロックバッファ及び負荷調整用セルを有す
る。これらクロックバッファ及び負荷調整用セルも仮想
クロックバッファと同じくセルライブラリ130に定義
されている。このとき、クロック分配回路における各ク
ロックバッファのネットのディレイ値として予算値を割
り振る。予算値とは、例えば仮想クロックバッファの出
力端子とクロック信号供給先素子の入力ピンとの間のネ
ットの遅延時間をクロックバッファ毎の遅延時間の総和
としたとき、各クロックバッファ毎に割り当てられる遅
延時間として定義される。後のステップでこの予算値を
遵守するようにクロックバッファなどの配置配線を行う
ことになる。上述の自動生成されたクロック分配回路の
構成要素はクロック論理ネットリスト131として保存
される。クロック論理ネットリスト131には上記ネッ
ト毎に与えられる予算値が含まれている。
【0028】ステップ103は、論理設計の結果に従っ
て、レイアウトに使用するセルをチップ上に配置する。
即ち、ステップ102で生成したクロック分配回路の構
成要素はクロック論理ネットリスト131の内容に従っ
て配置される。そのように配置されたものが、クロック
供給系の初期的なレイアウトを構成する。このときクロ
ックバッファおよび負荷調整用セルの配設位置は特に制
御しない。同時にその他の回路の構成要素を論理ネット
リスト132より取得し、配置する。論理ネットリスト
132はステップ101で論理設計されたネットリスト
である。
て、レイアウトに使用するセルをチップ上に配置する。
即ち、ステップ102で生成したクロック分配回路の構
成要素はクロック論理ネットリスト131の内容に従っ
て配置される。そのように配置されたものが、クロック
供給系の初期的なレイアウトを構成する。このときクロ
ックバッファおよび負荷調整用セルの配設位置は特に制
御しない。同時にその他の回路の構成要素を論理ネット
リスト132より取得し、配置する。論理ネットリスト
132はステップ101で論理設計されたネットリスト
である。
【0029】ステップ104〜105はステップ103
で配置されたクロック供給系を、クロックスキューを抑
えて最適化する処理である。
で配置されたクロック供給系を、クロックスキューを抑
えて最適化する処理である。
【0030】ステップ104は、ステップ103で行っ
たセル配置に対し、クロック分配回路に着目し、クロッ
ク分配回路のネットの広がりが最小になるようにネット
の終点のフリップフロップまたはクロックバッファ、負
荷調整用セルなどの接続関係を変更する。この際,接続
関係の変更はクロック分配回路の同一段の素子(同一レ
ベルすなわち同一階層のクロックバッファ)間について
のみ行い、規定のファンアウト数を変更しない範囲で行
う。例えば、上位階層から下位階層までツリー状に配置
されたクロックバッファの同一レベルの素子間に対して
上記接続関係の変更を行う。
たセル配置に対し、クロック分配回路に着目し、クロッ
ク分配回路のネットの広がりが最小になるようにネット
の終点のフリップフロップまたはクロックバッファ、負
荷調整用セルなどの接続関係を変更する。この際,接続
関係の変更はクロック分配回路の同一段の素子(同一レ
ベルすなわち同一階層のクロックバッファ)間について
のみ行い、規定のファンアウト数を変更しない範囲で行
う。例えば、上位階層から下位階層までツリー状に配置
されたクロックバッファの同一レベルの素子間に対して
上記接続関係の変更を行う。
【0031】ステップ105は、ステップ102で設定
したネットディレイの予算値を遵守するように、クロッ
クバッファとフリップフロップまたは負荷調整用セルと
の距離を変更する。例えば、所定階層のクロックバッフ
ァからフリップフロップに至るまでの配線距離を伸縮す
る。このとき、クロックネットの始点となる素子は終点
となる素子の広がりの重心位置に配置するような手法を
採ることができる。
したネットディレイの予算値を遵守するように、クロッ
クバッファとフリップフロップまたは負荷調整用セルと
の距離を変更する。例えば、所定階層のクロックバッフ
ァからフリップフロップに至るまでの配線距離を伸縮す
る。このとき、クロックネットの始点となる素子は終点
となる素子の広がりの重心位置に配置するような手法を
採ることができる。
【0032】ステップ106は、ステップ104,10
5の処理結果を考慮すると共に、ステップ102で設定
した予算値を考慮して、クロック分配回路に対応される
クロック供給系の配線を行う。
5の処理結果を考慮すると共に、ステップ102で設定
した予算値を考慮して、クロック分配回路に対応される
クロック供給系の配線を行う。
【0033】ステップ107は、前記クロック分配回路
以外の部分について配線を行う。配置配線の結果は出力
レイアウト情報133として出力される。
以外の部分について配線を行う。配置配線の結果は出力
レイアウト情報133として出力される。
【0034】上記ステップ101〜107の処理は、特
に図示はしないが、それら処理の手順を記述した動作プ
ログラムの格納手段、その動作プログラムを実行するコ
ンピュータ、入力装置、表示装置及び補助記憶装置等を
有するワークステーションなどのコンピュータシステム
によって実行される。
に図示はしないが、それら処理の手順を記述した動作プ
ログラムの格納手段、その動作プログラムを実行するコ
ンピュータ、入力装置、表示装置及び補助記憶装置等を
有するワークステーションなどのコンピュータシステム
によって実行される。
【0035】図2には前記クロック分配回路の生成処理
(ステップ102)の詳細な一例処理手順が示される。
(ステップ102)の詳細な一例処理手順が示される。
【0036】先ず、クロック分配回路を生成するための
入力データについて説明する。セルライブラリ130か
らセル情報、プロセス情報、レイアウトルール、及びク
ロックバッファ並びに負荷調整用セルの特性情報を抽出
し、図13に例示されるクロックバッファ情報リスト4
00、負荷調整用セル情報リスト410及びプロセス情
報リスト420として入力する。前記クロックバッファ
情報リスト400は、各クロックバッファの特性情報を
示し、クロックバッファ毎に、EMD制限値リスト(ク
ロックバッファ負荷制限値リスト)へのポインタ40
1、セルディレイ値402、出力抵抗403、入力容量
404、セルサイズ405、ファンアウト数の上限値4
06から構成される。前記負荷調整用セル情報リスト4
10は、各負荷調整用セルの特性情報を示し、負荷調整
用セル毎の入力容量411及びセルサイズ412から構
成される。前記プロセス情報リスト420は配線層毎の
抵抗値および容量値から構成される。
入力データについて説明する。セルライブラリ130か
らセル情報、プロセス情報、レイアウトルール、及びク
ロックバッファ並びに負荷調整用セルの特性情報を抽出
し、図13に例示されるクロックバッファ情報リスト4
00、負荷調整用セル情報リスト410及びプロセス情
報リスト420として入力する。前記クロックバッファ
情報リスト400は、各クロックバッファの特性情報を
示し、クロックバッファ毎に、EMD制限値リスト(ク
ロックバッファ負荷制限値リスト)へのポインタ40
1、セルディレイ値402、出力抵抗403、入力容量
404、セルサイズ405、ファンアウト数の上限値4
06から構成される。前記負荷調整用セル情報リスト4
10は、各負荷調整用セルの特性情報を示し、負荷調整
用セル毎の入力容量411及びセルサイズ412から構
成される。前記プロセス情報リスト420は配線層毎の
抵抗値および容量値から構成される。
【0037】また、論理ネットリスト132からクロッ
ク分配回路構成前のネット情報を抽出し、仮想クロック
バッファ情報リスト430として入力する。仮想クロッ
クバッファ情報リスト430は、指定ディレイ値431
及び仮想クロックバッファに接続しているフリップフロ
ップ数432から構成される。
ク分配回路構成前のネット情報を抽出し、仮想クロック
バッファ情報リスト430として入力する。仮想クロッ
クバッファ情報リスト430は、指定ディレイ値431
及び仮想クロックバッファに接続しているフリップフロ
ップ数432から構成される。
【0038】上記入力データに基づく図2の処理におい
て、ステップ221は、仮想クロックバッファ情報テー
ブル430を入力する。
て、ステップ221は、仮想クロックバッファ情報テー
ブル430を入力する。
【0039】ステップ222は、前記クロックバッファ
情報リスト400、負荷調整用セルリスト410及びプ
ロセス情報リスト420を入力する。
情報リスト400、負荷調整用セルリスト410及びプ
ロセス情報リスト420を入力する。
【0040】ステップ223は、クロック分配回路の原
型となる初期解をいくつか作成し、作成された初期解を
クロック分配回路スタック440にプッシュする。前記
クロック分配回路スタック440は図14に例示される
ように、スタックポインタ440Aと暫定クロック分配
回路テーブル450へのポインタの配列440Bから構
成される。暫定クロック分配回路テーブル450は、ク
ロック分配回路の段数451、各段の情報リスト454
へのポインタ452及び列挙位置フラグ453から構成
される。各段の情報リスト454は、当該段で使用され
ているクロックバッファ数、ファンアウト数及びクロッ
クバッファ情報リストへのポインタから構成される。上
記暫定クロック分配回路は、前記幾つかの初期解とされ
る。
型となる初期解をいくつか作成し、作成された初期解を
クロック分配回路スタック440にプッシュする。前記
クロック分配回路スタック440は図14に例示される
ように、スタックポインタ440Aと暫定クロック分配
回路テーブル450へのポインタの配列440Bから構
成される。暫定クロック分配回路テーブル450は、ク
ロック分配回路の段数451、各段の情報リスト454
へのポインタ452及び列挙位置フラグ453から構成
される。各段の情報リスト454は、当該段で使用され
ているクロックバッファ数、ファンアウト数及びクロッ
クバッファ情報リストへのポインタから構成される。上
記暫定クロック分配回路は、前記幾つかの初期解とされ
る。
【0041】次に初期解の作成方法について説明する。
まずクロック分配回路の直列段数を決定する。クロック
分配回路は各段の最大ファンアウト数が等しいものとす
ると、フリップフロップの数とファンアウト数から直列
段数が決定される。その段数が決定したら、最終段のフ
ァンアウト数を対象クロックバッファの上限まで変化さ
せて、クロック分配回路スタック440にプッシュす
る。この処理を全クロックバッファ種について、ファン
アウト数の下限(2)から上限まで繰り返す。この際,
列挙位置フラグ453に段数を入力する。
まずクロック分配回路の直列段数を決定する。クロック
分配回路は各段の最大ファンアウト数が等しいものとす
ると、フリップフロップの数とファンアウト数から直列
段数が決定される。その段数が決定したら、最終段のフ
ァンアウト数を対象クロックバッファの上限まで変化さ
せて、クロック分配回路スタック440にプッシュす
る。この処理を全クロックバッファ種について、ファン
アウト数の下限(2)から上限まで繰り返す。この際,
列挙位置フラグ453に段数を入力する。
【0042】ステップ224は、クロック分配回路スタ
ック440から暫定クロック分配回路をポップし、スタ
ックポインタを更新する。
ック440から暫定クロック分配回路をポップし、スタ
ックポインタを更新する。
【0043】ステップ225は、ポップされた暫定クロ
ック分配回路のディレイ値を計算する。ディレイ計算は
1段目のクロックバッファに接続するネットからトップ
ダウンに行い、ファンアウト数でチップを分割してい
く。図3にディレイ計算時の配線長の計算方法の一例を
示す。ディレイ時間はクロックは緯線経路の配線長に従
って決定される。分割された領域の半周長を仮想配線長
とし、これにファンアウト数で決定される係数を乗じ
る。さらに、計算された仮想配線長より、ネットの容量
を計算する。この際の配線容量はレイアウトで使用可能
な配線層の平均値を用いる。仮想配線長や容量からディ
レイ時間が計算される。
ック分配回路のディレイ値を計算する。ディレイ計算は
1段目のクロックバッファに接続するネットからトップ
ダウンに行い、ファンアウト数でチップを分割してい
く。図3にディレイ計算時の配線長の計算方法の一例を
示す。ディレイ時間はクロックは緯線経路の配線長に従
って決定される。分割された領域の半周長を仮想配線長
とし、これにファンアウト数で決定される係数を乗じ
る。さらに、計算された仮想配線長より、ネットの容量
を計算する。この際の配線容量はレイアウトで使用可能
な配線層の平均値を用いる。仮想配線長や容量からディ
レイ時間が計算される。
【0044】ステップ226は、基本的に分岐段数を決
定するための回路の縮退と論理ブロックへの割り当てを
行う。上記のステップまででは、回路の段数とファンア
ウト数しか決定していないので、実際のフリップフロッ
プ数から正確なクロックバッファ数を求める。各段でフ
ァンアウト数は等しいので、接続する素子がファンアウ
ト数以下の場合は、負荷調整用セルを接続する。同時に
論理階層が存在する場合には、フリップフロップが属す
る論理階層(クロックバッファの階層)を考慮してクロ
ックバッファが属する論理階層を決定し、前記論理回路
毎に回路負荷調整用セルを接続する。図4に論理階層が
存在する場合のクロックバッファの論理階層への割り当
て方を示す。論理階層をまたがるネットが最小になるよ
うに割り当てを行う。CBはクロックバッファ、FFは
フリップフロップである。
定するための回路の縮退と論理ブロックへの割り当てを
行う。上記のステップまででは、回路の段数とファンア
ウト数しか決定していないので、実際のフリップフロッ
プ数から正確なクロックバッファ数を求める。各段でフ
ァンアウト数は等しいので、接続する素子がファンアウ
ト数以下の場合は、負荷調整用セルを接続する。同時に
論理階層が存在する場合には、フリップフロップが属す
る論理階層(クロックバッファの階層)を考慮してクロ
ックバッファが属する論理階層を決定し、前記論理回路
毎に回路負荷調整用セルを接続する。図4に論理階層が
存在する場合のクロックバッファの論理階層への割り当
て方を示す。論理階層をまたがるネットが最小になるよ
うに割り当てを行う。CBはクロックバッファ、FFは
フリップフロップである。
【0045】同時にこのステップ226では、暫定クロ
ック分配回路の論理量を計算する。論理量は暫定クロッ
ク分配回路の構成要素のセルサイズの総和として求め
る。
ック分配回路の論理量を計算する。論理量は暫定クロッ
ク分配回路の構成要素のセルサイズの総和として求め
る。
【0046】ステップ227は、暫定解の更新条件と暫
定クロック分配回路の持つ値とを比較し、暫定解を更新
するかどうかを決定する。暫定解の更新条件として、
(1)クロックバッファ負荷制限値の満足、(2)指定
ディレイ値の満足、(3)暫定クロック分配回路の論理
量、がある。更新条件(2)については、指定ディレイ
値が存在しない場合には、ディレイ値最小の分配回路が
選択すべき条件になる。
定クロック分配回路の持つ値とを比較し、暫定解を更新
するかどうかを決定する。暫定解の更新条件として、
(1)クロックバッファ負荷制限値の満足、(2)指定
ディレイ値の満足、(3)暫定クロック分配回路の論理
量、がある。更新条件(2)については、指定ディレイ
値が存在しない場合には、ディレイ値最小の分配回路が
選択すべき条件になる。
【0047】ステップ228では、暫定解の更新条件を
満足する場合に、暫定解を更新する処理を行う。即ち、
クロック分配回路テーブル460を作成し、暫定解の情
報を入力する。クロック分配回路テーブル460は、図
15に示されるように、回路の段数、論理量、ディレイ
値、クロック分配回路要素リスト470へのポインタか
ら構成される。クロック分配回路要素リスト470は暫
定クロック分配回路の要素数と同一の要素数を持ち、ク
ロック分配回路テーブル460からのポインタは1段目
のクロックバッファのクロック分配回路要素リストを指
している。構成要素として、部品種別フラグ471、部
品タイプ名472、上位段へのポインタ473、同一段
要素へのポインタ474及び下位段要素へのポインタ4
75から構成される。
満足する場合に、暫定解を更新する処理を行う。即ち、
クロック分配回路テーブル460を作成し、暫定解の情
報を入力する。クロック分配回路テーブル460は、図
15に示されるように、回路の段数、論理量、ディレイ
値、クロック分配回路要素リスト470へのポインタか
ら構成される。クロック分配回路要素リスト470は暫
定クロック分配回路の要素数と同一の要素数を持ち、ク
ロック分配回路テーブル460からのポインタは1段目
のクロックバッファのクロック分配回路要素リストを指
している。構成要素として、部品種別フラグ471、部
品タイプ名472、上位段へのポインタ473、同一段
要素へのポインタ474及び下位段要素へのポインタ4
75から構成される。
【0048】ステップ229は、暫定クロック分配回路
を基にして更に暫定クロック分配回路の候補を列挙する
かどうかの判定を行う。暫定クロック分配回路の各段の
ファンアウト数の積とフリップフロップ数を比較し、フ
リップフロップの2倍以上の場合には、列挙を行わな
い。このステップによって、無用な列挙を避け、実行時
間の高速化を図る。
を基にして更に暫定クロック分配回路の候補を列挙する
かどうかの判定を行う。暫定クロック分配回路の各段の
ファンアウト数の積とフリップフロップ数を比較し、フ
リップフロップの2倍以上の場合には、列挙を行わな
い。このステップによって、無用な列挙を避け、実行時
間の高速化を図る。
【0049】ステップ230は、暫定クロック分配回路
を基にして、更に別の候補を列挙する。クロック分配回
路スタック440に、列挙した候補を入力し、スタック
ポインタを更新する。列挙の方法を図5に示す。列挙位
置フラグの値−1段目のファンアウト数を列挙位置フラ
グの値段目のファンアウト数まで増加させる。この処理
を全クロックバッファ種について繰り返す。例えば図5
には初段クロックバッファから終段クロックバッファの
夫々のクロックバッファのファンアウト数が例示されて
おり、列挙位置フラグがPの位置のクロックバッファを
指しているとき、そのクロックバッファのファンアウト
数が6場合、8,10のファンアウト数を持つ2個の更
に別の候補を列挙する。これは、各クロックバッファの
ファンアウト数の最大値が夫々等しいとうことに基づい
て、そのような候補の列挙を許容している。
を基にして、更に別の候補を列挙する。クロック分配回
路スタック440に、列挙した候補を入力し、スタック
ポインタを更新する。列挙の方法を図5に示す。列挙位
置フラグの値−1段目のファンアウト数を列挙位置フラ
グの値段目のファンアウト数まで増加させる。この処理
を全クロックバッファ種について繰り返す。例えば図5
には初段クロックバッファから終段クロックバッファの
夫々のクロックバッファのファンアウト数が例示されて
おり、列挙位置フラグがPの位置のクロックバッファを
指しているとき、そのクロックバッファのファンアウト
数が6場合、8,10のファンアウト数を持つ2個の更
に別の候補を列挙する。これは、各クロックバッファの
ファンアウト数の最大値が夫々等しいとうことに基づい
て、そのような候補の列挙を許容している。
【0050】ステップ231は、スタックポインタの判
定を行う。スタックポインタが0以下になった場合には
ステップ232に進む。そうでなければステップ224
に戻り、上記処理を繰り返す。
定を行う。スタックポインタが0以下になった場合には
ステップ232に進む。そうでなければステップ224
に戻り、上記処理を繰り返す。
【0051】なお,複数系統のフリップフロップ群が存
在する場合には、ステップ221からステップ231ま
でを系統の個数分だけ回繰り返す。
在する場合には、ステップ221からステップ231ま
でを系統の個数分だけ回繰り返す。
【0052】ステップ232では最終状態の暫定クロッ
ク分配回路を最適解として、ネットリストを作成する。
その際、クロックネットにステップ225で計算したデ
ィレイ値を予算値として与える。配置および配線処理で
は、予算値等を参照し、遵守するように処理を実行して
いく。
ク分配回路を最適解として、ネットリストを作成する。
その際、クロックネットにステップ225で計算したデ
ィレイ値を予算値として与える。配置および配線処理で
は、予算値等を参照し、遵守するように処理を実行して
いく。
【0053】次にマクロブロック等の既設計部品と新た
に論理設計されたフリップフロップ群に対して同一のク
ロック信号を供給しなければならないことがある。次
に、既設計部品の入力端子から既設計部品内のフリップ
フロップまでのディレイ値が判明している場合の前記ス
テップ102の処理方法について説明する。図6にはそ
の処理フローの一例が示される。
に論理設計されたフリップフロップ群に対して同一のク
ロック信号を供給しなければならないことがある。次
に、既設計部品の入力端子から既設計部品内のフリップ
フロップまでのディレイ値が判明している場合の前記ス
テップ102の処理方法について説明する。図6にはそ
の処理フローの一例が示される。
【0054】まず、ステップ601ではフリップフロッ
プ群についてクロック分配回路を前述の方法で生成す
る。次に、ステップ602で既設計部品とクロック分配
回路間のネットを作成し、ステップ603でネットを生
成したクロック分配回路の最下位側の1段目のクロック
バッファに接続する。このとき,図7のように直接接続
せずにクロックバッファCBaを1段挿入する。次に、
ステップ604で既設計部品までのディレイ値を計算
し、フリップフロップ群までのディレイ値との差を求め
る。このディレイ値の差があらかじめ設定した制約値を
満足できない場合には、 ステップ607でクロックバ
ッファの出力に負荷調整用セルを接続する。負荷調整用
セルをファンアウト制限値の上限まで接続してもディレ
イ値を満足できない場合には、ステップ609でクロッ
クバッファ種を変更し、同一の処理を繰り返す。それで
も満足できない場合には,ステップ610で図8のよう
にクロックバッファCBbをさらに挿入し、上記の処理
を繰り返す。ディレイ値が満足できた場合には、計算し
たディレイ値をネットに予算値として与え,ネットリス
トを作成する。
プ群についてクロック分配回路を前述の方法で生成す
る。次に、ステップ602で既設計部品とクロック分配
回路間のネットを作成し、ステップ603でネットを生
成したクロック分配回路の最下位側の1段目のクロック
バッファに接続する。このとき,図7のように直接接続
せずにクロックバッファCBaを1段挿入する。次に、
ステップ604で既設計部品までのディレイ値を計算
し、フリップフロップ群までのディレイ値との差を求め
る。このディレイ値の差があらかじめ設定した制約値を
満足できない場合には、 ステップ607でクロックバ
ッファの出力に負荷調整用セルを接続する。負荷調整用
セルをファンアウト制限値の上限まで接続してもディレ
イ値を満足できない場合には、ステップ609でクロッ
クバッファ種を変更し、同一の処理を繰り返す。それで
も満足できない場合には,ステップ610で図8のよう
にクロックバッファCBbをさらに挿入し、上記の処理
を繰り返す。ディレイ値が満足できた場合には、計算し
たディレイ値をネットに予算値として与え,ネットリス
トを作成する。
【0055】次にクロックネット接続関係変更処理(ス
テップ104)の詳細を図9に基づいて説明する。
テップ104)の詳細を図9に基づいて説明する。
【0056】ステップ330の入力処理は次のように行
われる。先ず、ネットリスト中にクロックネットかどう
かの識別子を付加しておく。次に、ネットリストを探索
し、図16の構造を有するクロックネットレベルリスト
730を入力する。クロックネットレベルリスト730
は、上位と下位レベルへのポインタと同一レベルの他の
ネットへのポインタ、ネットリスト中の対応するネット
へのポインタを持つ。
われる。先ず、ネットリスト中にクロックネットかどう
かの識別子を付加しておく。次に、ネットリストを探索
し、図16の構造を有するクロックネットレベルリスト
730を入力する。クロックネットレベルリスト730
は、上位と下位レベルへのポインタと同一レベルの他の
ネットへのポインタ、ネットリスト中の対応するネット
へのポインタを持つ。
【0057】ステップ331ではクロックネットレベル
リスト730よりクロックネットを一つ選択する。最初
に最下位のレベルのネットを選択する。
リスト730よりクロックネットを一つ選択する。最初
に最下位のレベルのネットを選択する。
【0058】ステップ332ではネットの広がりで囲ま
れる領域内に同一レベルの他のクロックネットの終端素
子が存在するかどうか探し、ファンアウト数分だけ選択
する。ファンアウト数以上存在する場合にはネットの広
がりの重心に近いものからファンアウト数分選択する。
図10に終端素子の選択方法の一例を示す。図10にお
いてFFはフリップフロップ、CBは同一レベルのクロ
ックバッファである。ファンアウト数に従ってネットの
広がりが変更される対象は、同一段のクロックバッファ
に接続されるフリップフロップに限られている。
れる領域内に同一レベルの他のクロックネットの終端素
子が存在するかどうか探し、ファンアウト数分だけ選択
する。ファンアウト数以上存在する場合にはネットの広
がりの重心に近いものからファンアウト数分選択する。
図10に終端素子の選択方法の一例を示す。図10にお
いてFFはフリップフロップ、CBは同一レベルのクロ
ックバッファである。ファンアウト数に従ってネットの
広がりが変更される対象は、同一段のクロックバッファ
に接続されるフリップフロップに限られている。
【0059】ステップ333では、上記のようにして選
択された素子でネットリストを再構成する。再構成は、
もともと接続している素子と、新たに接続する素子とを
交換することによって行われる。
択された素子でネットリストを再構成する。再構成は、
もともと接続している素子と、新たに接続する素子とを
交換することによって行われる。
【0060】クロックバッファの同一レベルについて上
記の処理を全て実行したならば、上位レベルについて処
理を繰り返し、クロック分配回路全てについて上記付け
替え処理を行う。
記の処理を全て実行したならば、上位レベルについて処
理を繰り返し、クロック分配回路全てについて上記付け
替え処理を行う。
【0061】なお,複数系統のフリップフロップ群が存
在する場合には、ステップ331からステップ336ま
でを系統数回繰り返すことになる。
在する場合には、ステップ331からステップ336ま
でを系統数回繰り返すことになる。
【0062】上記ステップ104の処理を実行すること
により、セルの移動を最小限に抑えることができ、クロ
ックが存在することによる結線性能の低下を防止でき
る。
により、セルの移動を最小限に抑えることができ、クロ
ックが存在することによる結線性能の低下を防止でき
る。
【0063】次に前記クロック分配回路配置改善処理
(ステップ105)の詳細を図11に基づいて説明す
る。
(ステップ105)の詳細を図11に基づいて説明す
る。
【0064】ステップ430の入力処理についてはステ
ップ104の入力処理ステップ330と同一なリストを
入力する。ステップ431ではクロックネットレベルリ
ストからクロックネットを一つ選択する。最初に最下位
のレベルのネットを選択する。ステップ432ではネッ
トディレイを計算する。ネットディレイの計算は、クロ
ック分配回路生成時と同一の手法を用いるが、配置座標
が決定しているので、配線パターンをスタイナ木と仮定
して計算を行う。
ップ104の入力処理ステップ330と同一なリストを
入力する。ステップ431ではクロックネットレベルリ
ストからクロックネットを一つ選択する。最初に最下位
のレベルのネットを選択する。ステップ432ではネッ
トディレイを計算する。ネットディレイの計算は、クロ
ック分配回路生成時と同一の手法を用いるが、配置座標
が決定しているので、配線パターンをスタイナ木と仮定
して計算を行う。
【0065】ステップ433で予算値とネットディレイ
を比較し、差がある場合には、終端の素子を移動する。
ディレイ値の差を素子の移動距離に換算し、その距離分
素子を移動する。図12には上記素子移動方法による具
体例が示される。クロックバッファCBから個々のフリ
ップフロップFFまでの距離を予算値を満足するように
変化させる。図12の右側の状態は、左側の状態に対し
て素子移動を行った結果である。
を比較し、差がある場合には、終端の素子を移動する。
ディレイ値の差を素子の移動距離に換算し、その距離分
素子を移動する。図12には上記素子移動方法による具
体例が示される。クロックバッファCBから個々のフリ
ップフロップFFまでの距離を予算値を満足するように
変化させる。図12の右側の状態は、左側の状態に対し
て素子移動を行った結果である。
【0066】同一レベルについて上記の処理を全て実行
したならば、上位レベルについて処理を繰り返し、クロ
ック分配回路の全てについてネットの素子移動を行う。
したならば、上位レベルについて処理を繰り返し、クロ
ック分配回路の全てについてネットの素子移動を行う。
【0067】なお,複数系統のフリップフロップ群が存
在する場合には、ステップ430からステップ437ま
でをクロック信号の伝達系統の数に応ずる回数だけ繰り
返す。また,マクロブロック等の既設計部品とフリップ
フロップ群に対して同一のクロック信号を供給する必要
がある場合にも、同一レベルのネットの予算値が異なる
場合があるだけで、上記ステップをそのまま適用でき
る。
在する場合には、ステップ430からステップ437ま
でをクロック信号の伝達系統の数に応ずる回数だけ繰り
返す。また,マクロブロック等の既設計部品とフリップ
フロップ群に対して同一のクロック信号を供給する必要
がある場合にも、同一レベルのネットの予算値が異なる
場合があるだけで、上記ステップをそのまま適用でき
る。
【0068】前記ステップ106のクロック分配回路配
線処理ではクロックネットの配線処理を行うことにな
る。これによって得られる配線経路には、上記処理によ
って決定さた予算値が遵守されている。尚、このとき、
特願平6―268095号に示される技術を用いること
ができる。
線処理ではクロックネットの配線処理を行うことにな
る。これによって得られる配線経路には、上記処理によ
って決定さた予算値が遵守されている。尚、このとき、
特願平6―268095号に示される技術を用いること
ができる。
【0069】上述の設計方法によって得られる作用効果
を整理すれば以下の通りである。
を整理すれば以下の通りである。
【0070】(1)クロック分配回路の生成時に仮想ク
ロックバッファの指定ディレイ値などの制約条件を考慮
して、クロックネット(クロック分配回路で規定される
クロック供給経路のネット)に予算値を与える。その後
の処理では、クロック分配回路の広がりを同一階層のク
ロックバッファ毎に最小化する。これにより、クロック
ネットのパスディレイの制御が容易になる。また、その
とき、前記予算値を遵守するようにネットの回路セル配
置を変更するから、この点においてもクロックネットに
おけるパスディレイの制御が容易になる。これらによ
り、クロックスキューも最小化できる。また、パスディ
レイに制御が容易であるから、エレクトロマイグレーシ
ョンや消費電力に関する制約条件も満足できる。したが
って、論理設計での意図を精度よくレイアウトに反映さ
せることができる。
ロックバッファの指定ディレイ値などの制約条件を考慮
して、クロックネット(クロック分配回路で規定される
クロック供給経路のネット)に予算値を与える。その後
の処理では、クロック分配回路の広がりを同一階層のク
ロックバッファ毎に最小化する。これにより、クロック
ネットのパスディレイの制御が容易になる。また、その
とき、前記予算値を遵守するようにネットの回路セル配
置を変更するから、この点においてもクロックネットに
おけるパスディレイの制御が容易になる。これらによ
り、クロックスキューも最小化できる。また、パスディ
レイに制御が容易であるから、エレクトロマイグレーシ
ョンや消費電力に関する制約条件も満足できる。したが
って、論理設計での意図を精度よくレイアウトに反映さ
せることができる。
【0071】(2)同様に、既設計論理ブロックと新た
に論理設計された回路のフリップフロップ群の双方に対
して同一のクロック信号を供給する必要がある場合につ
いても、既設計論理ブロックのクロックディレイを考慮
してクロック分配回路のネットの予算値を設定するた
め、同じようにクロックスキューの最小化を実現でき
る。
に論理設計された回路のフリップフロップ群の双方に対
して同一のクロック信号を供給する必要がある場合につ
いても、既設計論理ブロックのクロックディレイを考慮
してクロック分配回路のネットの予算値を設定するた
め、同じようにクロックスキューの最小化を実現でき
る。
【0072】(3)相互に同一レベルのクロックバッフ
ァの一部に対して負荷調整用セルを設けるようにして相
互に同一レベルのクロックバッファのファンアウト数を
同一にできる。これによれば、同一レベルのクロックバ
ッファに関するクロックスキューを更に低減することが
できる。また、クロック分配回路に適用されるクロック
バッファの負荷の制限値が半導体集積回路の動作周波数
に対して決定される場合に、前記第1処理は、クロック
バッファの負荷の制限値を超えないようにクロック分配
回路のファンアウト数を決定する。また、クロックバッ
ファの数と負荷調整用セルの数を最小化して前記クロッ
ク分配回路を生成し、クロック供給系の論理規模を小さ
くする。負荷調整用セルに対するそれら考慮によれば、
クロック分配回路生成時にクロックバッファの負荷の制
限値やクロック論理回路の論理規模のような制約条件を
満足できる。
ァの一部に対して負荷調整用セルを設けるようにして相
互に同一レベルのクロックバッファのファンアウト数を
同一にできる。これによれば、同一レベルのクロックバ
ッファに関するクロックスキューを更に低減することが
できる。また、クロック分配回路に適用されるクロック
バッファの負荷の制限値が半導体集積回路の動作周波数
に対して決定される場合に、前記第1処理は、クロック
バッファの負荷の制限値を超えないようにクロック分配
回路のファンアウト数を決定する。また、クロックバッ
ファの数と負荷調整用セルの数を最小化して前記クロッ
ク分配回路を生成し、クロック供給系の論理規模を小さ
くする。負荷調整用セルに対するそれら考慮によれば、
クロック分配回路生成時にクロックバッファの負荷の制
限値やクロック論理回路の論理規模のような制約条件を
満足できる。
【0073】(4)以上により、論理設計での意図を精
度よくレイアウトに反映でき、最適なクロック分配回路
を生成でき、同期用クロック信号の点において動作速度
を含めて高性能な半導体集積回路を実現することが可能
になる。
度よくレイアウトに反映でき、最適なクロック分配回路
を生成でき、同期用クロック信号の点において動作速度
を含めて高性能な半導体集積回路を実現することが可能
になる。
【0074】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。例え
ば、クロックスキューの許容率が比較的緩やかな場合に
は負荷調整用セルを用いなくてもよい場合がある。クロ
ック供給系の論理規模を小さくする必要がなければ、ク
ロック分配回路の生成に際して、クロックバッファの数
と負荷調整用セルの数を最小化しなくてもよい。
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。例え
ば、クロックスキューの許容率が比較的緩やかな場合に
は負荷調整用セルを用いなくてもよい場合がある。クロ
ック供給系の論理規模を小さくする必要がなければ、ク
ロック分配回路の生成に際して、クロックバッファの数
と負荷調整用セルの数を最小化しなくてもよい。
【0075】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0076】すなわち、クロックネットにおけるパスデ
ィレイの制御が容易になり、クロックスキューも最小化
でき、エレクトロマイグレーションや消費電力に関する
制約条件も満足できるようになる。
ィレイの制御が容易になり、クロックスキューも最小化
でき、エレクトロマイグレーションや消費電力に関する
制約条件も満足できるようになる。
【0077】既設計論理ブロックと新たに論理設計され
た回路のフリップフロップ群の双方に対して同一のクロ
ック信号を供給する必要がある場合にも同じようにクロ
ックスキューを最小化することができる。
た回路のフリップフロップ群の双方に対して同一のクロ
ック信号を供給する必要がある場合にも同じようにクロ
ックスキューを最小化することができる。
【0078】パスディレイの制御が可能であるから、複
数系統のフリップフロップ群間のスキュー制御も可能で
ある。
数系統のフリップフロップ群間のスキュー制御も可能で
ある。
【0079】負荷調整用セルによって相互に同一レベル
のクロックバッファのファンアウト数を同一にすればク
ロックスキューを更に低減することができる。クロック
バッファの負荷の制限値を超えないようにクロック分配
回路のファンアウト数を決定し、また、クロックバッフ
ァの数と負荷調整用セルの数を最小化して前記クロック
分配回路を生成することにより、クロック分配回路生成
時にクロックバッファの負荷の制限値やクロック論理回
路の論理規模のような制約条件を満足できる。
のクロックバッファのファンアウト数を同一にすればク
ロックスキューを更に低減することができる。クロック
バッファの負荷の制限値を超えないようにクロック分配
回路のファンアウト数を決定し、また、クロックバッフ
ァの数と負荷調整用セルの数を最小化して前記クロック
分配回路を生成することにより、クロック分配回路生成
時にクロックバッファの負荷の制限値やクロック論理回
路の論理規模のような制約条件を満足できる。
【0080】したがって、論理設計での意図を精度よく
レイアウトに反映させることができ、最適なクロック分
配回路を生成でき、高性能な半導体集積回路を実現する
ことが可能になる。
レイアウトに反映させることができ、最適なクロック分
配回路を生成でき、高性能な半導体集積回路を実現する
ことが可能になる。
【図1】本発明に係るクロック供給系のレイアウト方法
を実現するための処理手順の一例を全体的に示すフロー
チャートである。
を実現するための処理手順の一例を全体的に示すフロー
チャートである。
【図2】図1のクロック分配回路の生成処理(ステップ
102)の詳細な手順の一例を示すフローチャートであ
る。
102)の詳細な手順の一例を示すフローチャートであ
る。
【図3】ディレイ計算時の配線長の計算方法の一例を示
す説明図である。
す説明図である。
【図4】論理階層が存在する場合のクロックバッファの
論理階層への割り当て方法の一例を示す説明図である。
論理階層への割り当て方法の一例を示す説明図である。
【図5】暫定解更新条件の判定処理の一例説明図であ
る。
る。
【図6】既設計部品の入力端子から既設計部品内のフリ
ップフロップまでのディレイ値が判明している場合にお
ける図1のステップ102に対応する処理の一例を示す
フローチャートである。
ップフロップまでのディレイ値が判明している場合にお
ける図1のステップ102に対応する処理の一例を示す
フローチャートである。
【図7】図6のステップ603による処理状態を例示す
る説明図である。
る説明図である。
【図8】図6のステップ610による処理状態を例示す
る説明図である。
る説明図である。
【図9】図1のクロックネット接続関係変更処理(ステ
ップ104)の詳細な一例を示すフローチャートであ
る。
ップ104)の詳細な一例を示すフローチャートであ
る。
【図10】図9によりネットの広がりを抑える処理を施
した状態の一例を示す説明図である。
した状態の一例を示す説明図である。
【図11】図1のクロック分配回路配置改善処理(ステ
ップ105)の詳細な一例を示すフローチャートであ
る。
ップ105)の詳細な一例を示すフローチャートであ
る。
【図12】図12の素子移動方法を施した状態の一例を
示す説明図である。
示す説明図である。
【図13】クロックバッファ情報リスト、負荷調整用セ
ル情報リスト及びプロセス情報リストの一例を示す説明
図である。
ル情報リスト及びプロセス情報リストの一例を示す説明
図である。
【図14】前記クロック分配回路スタック及び暫定クロ
ック分配回路テーブルの一例を示す説明図である。
ック分配回路テーブルの一例を示す説明図である。
【図15】クロック分配回路テーブルの一例を示す説明
図である。
図である。
【図16】クロックネットレベルリストの一例を示す説
明図である。
明図である。
【図17】論理設計の段階でクロック論理を含んだ論理
設計を行い、レイアウト設計の段階では論理設計で作成
された論理階層を考慮してセルの配置および配線処理を
行う従来手法の説明図である。
設計を行い、レイアウト設計の段階では論理設計で作成
された論理階層を考慮してセルの配置および配線処理を
行う従来手法の説明図である。
【図18】クロック論理回路のレイアウトを通常のセル
の配置後に行うことで、レイアウト結果を考慮してクロ
ック論理設計を行う従来手法の説明図である。
の配置後に行うことで、レイアウト結果を考慮してクロ
ック論理設計を行う従来手法の説明図である。
103 セル配置処理 104 クロックネット接続関係変更処理 105 クロック分配回路配置改善処理 106 クロック分配回路配線処理 107 配線処理 130 セルライブラリ 131 クロック論理ネットリスト 132 論理ネットリスト 133 出力レイアウト情報
Claims (6)
- 【請求項1】 クロック信号に同期動作される半導体集
積回路におけるクロック供給系をコンピュータを用いて
設計する方法であって、 論理設計された回路にクロック信号を供給する仮想クロ
ックバッファを想定し、仮想クロックバッファの出力端
子からクロック信号供給先の入力端子に至るネットを生
成する第1処理と、 前記仮想クロックバッファの指定ディレイ値を遵守して
当該仮想クロックバッファを置き換えるための、少なく
とも単数若しくは複数個のクロックバッファを想定した
クロック供給経路を特定するためのクロック分配回路を
生成すると共に、クロック分配回路によって規定される
クロック供給経路の各ネットにおけるディレイ値として
予算値を決定する第2処理と、 論理設計された回路及び前記クロック分配回路に従って
回路セルを配置する第3処理と、 回路セルが配置されたとき前記クロック分配回路の広が
りを同一レベルのクロックバッファ毎に最小化する第4
処理と、 回路セルが配置されたとき前記クロック分配回路の各ネ
ットに対応されるネットのディレイ値を前記予算値に適
合させるために当該ネットの回路素子の配置を変更する
第5処理と、を含むことを特徴とするクロック供給系の
レイアウト設計方法。 - 【請求項2】 前記第1処理において、既に検証済みの
既設計論理ブロックと新たに論理設計された回路の双方
にクロック信号を供給する仮想クロックバッファを想定
して、該仮想クロックバッファの出力端子からクロック
信号供給先の入力端子に至るネットが生成されていると
き、 そのネットに対する前記第2処理は、既設計論理ブロッ
クの内部ディレイを考慮してクロック分配回路を生成
し、そのクロック分配回路に対し、既設計論理ブロック
内の回路と既設計論理ブロック外の回路とへのクロック
信号の到達時間が等しくなるように予算値を設定するこ
とを特徴とする請求項1記載のクロック供給系のレイア
ウト設計方法。 - 【請求項3】 前記第2処理において、相互に同一レベ
ルのクロックバッファの一部に対して負荷調整用セルを
設けるようにして相互に同一レベルのクロックバッファ
のファンアウト数を同一にすることを特徴とする請求項
1又は2記載のクロック供給系のレイアウト設計方法。 - 【請求項4】 前記第2処理において、クロックスキュ
ーを同一に規定すべき複数個の仮想クロックバッファの
各クロック分配回路に対して、相互に同一レベルのクロ
ックバッファの一部に対して負荷調整用セルを設けるよ
うにして相互に同一レベルのクロックバッファのファン
アウト数を前記各クロック分配回路間で同一にすること
を特徴とする請求項1又は2記載のクロック供給系のレ
イアウト設計方法。 - 【請求項5】 クロック分配回路に適用されるクロック
バッファの負荷の制限値が半導体集積回路の動作周波数
に対して決定される場合に、前記第1処理は、クロック
バッファの負荷の制限値を超えないようにクロック分配
回路のファンアウト数を決定する請求項3又は4記載の
クロック供給系のレイアウト設計方法。 - 【請求項6】 前記第2処理において、クロックバッフ
ァの数と負荷調整用セルの数を最小化して前記クロック
分配回路を生成し、クロック供給系の論理規模を小さく
することを特徴とする請求項3又は4記載のクロック供
給系のレイアウト設計方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9012305A JPH10209287A (ja) | 1997-01-27 | 1997-01-27 | クロック供給系のレイアウト設計方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9012305A JPH10209287A (ja) | 1997-01-27 | 1997-01-27 | クロック供給系のレイアウト設計方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10209287A true JPH10209287A (ja) | 1998-08-07 |
Family
ID=11801619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9012305A Withdrawn JPH10209287A (ja) | 1997-01-27 | 1997-01-27 | クロック供給系のレイアウト設計方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10209287A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6378080B1 (en) | 1999-01-07 | 2002-04-23 | Nec Corporation | Clock distribution circuit |
JP2007336024A (ja) * | 2006-06-13 | 2007-12-27 | Toshiba Corp | 信号選択回路、可変遅延回路 |
-
1997
- 1997-01-27 JP JP9012305A patent/JPH10209287A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6378080B1 (en) | 1999-01-07 | 2002-04-23 | Nec Corporation | Clock distribution circuit |
JP2007336024A (ja) * | 2006-06-13 | 2007-12-27 | Toshiba Corp | 信号選択回路、可変遅延回路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100249251B1 (ko) | 논리회로 최적화 장치 및 그 방법 | |
US5838583A (en) | Optimized placement and routing of datapaths | |
US7795943B2 (en) | Integrated circuit device and layout design method therefor | |
US6792582B1 (en) | Concurrent logical and physical construction of voltage islands for mixed supply voltage designs | |
US6440780B1 (en) | Method of layout for LSI | |
CN101206686A (zh) | 设计时钟域中锁存器的布图的方法和计算机系统 | |
JP4629189B2 (ja) | レイアウト方法、レイアウト装置及び記録媒体 | |
US20040268288A1 (en) | Coding of fpga and standard cell logic in a tiling structure | |
JP2017123010A (ja) | 半導体設計支援装置及び半導体設計支援方法 | |
US6487697B1 (en) | Distribution dependent clustering in buffer insertion of high fanout nets | |
US10936784B2 (en) | Planning method for power metal lines | |
US7386822B1 (en) | Simultaneous timing-driven floorplanning and placement for heterogeneous field programmable gate array | |
JPH10209287A (ja) | クロック供給系のレイアウト設計方法 | |
JPH10308450A (ja) | 半導体集積回路及びその設計方法 | |
US5757657A (en) | Adaptive incremental placement of circuits on VLSI chip | |
WO2001075687A9 (en) | Method and apparatus to optimize an integrated circuit design using transistor folding | |
JP2001267429A (ja) | レイアウト設計装置およびレイアウト設計方法 | |
US7519926B2 (en) | Semiconductor device and method for designing the same | |
JP3705737B2 (ja) | 半導体集積回路のレイアウト方法 | |
JPH09185645A (ja) | 論理回路の設計方法及びそれを用いた半導体集積回路装置 | |
JP2002151594A (ja) | 半導体集積回路の設計方法及び半導体集積回路の設計支援装置 | |
JP4734981B2 (ja) | 半導体集積回路のレイアウト設計方法及び設計装置 | |
JP2914274B2 (ja) | 自動配置処理方法およびその装置 | |
JPH10116910A (ja) | モジュール配置方法及びモジュール配置プログラムを記録した媒体 | |
CN117764024A (zh) | 一种基于h树的时钟树综合优化方法 |
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: 20040406 |