JP5564231B2 - Lsi設計方法及びプログラム - Google Patents

Lsi設計方法及びプログラム Download PDF

Info

Publication number
JP5564231B2
JP5564231B2 JP2009238893A JP2009238893A JP5564231B2 JP 5564231 B2 JP5564231 B2 JP 5564231B2 JP 2009238893 A JP2009238893 A JP 2009238893A JP 2009238893 A JP2009238893 A JP 2009238893A JP 5564231 B2 JP5564231 B2 JP 5564231B2
Authority
JP
Japan
Prior art keywords
path
clock
functional module
clock supply
point
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.)
Expired - Fee Related
Application number
JP2009238893A
Other languages
English (en)
Other versions
JP2011086136A (ja
Inventor
忍 松本
建基 石井
健二 重岡
徹也 高橋
真一 籾山
正毅 星野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Information and Telecommunication Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Information and Telecommunication Engineering Ltd filed Critical Hitachi Information and Telecommunication Engineering Ltd
Priority to JP2009238893A priority Critical patent/JP5564231B2/ja
Publication of JP2011086136A publication Critical patent/JP2011086136A/ja
Application granted granted Critical
Publication of JP5564231B2 publication Critical patent/JP5564231B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、IC(半導体集積回路)の設計・製造の技術に関し、特に、LSIのタイミング設計方法に関し、更には、タイミング設計におけるクロック・スキュー(clock skew)(以下適宜「CS」と略称する)の設定方法、及びパスディレイの設定方法などに関する。
一般的にLSI設計では、設計した論理について、論理合成、レイアウト(配置配線等)、及びタイミング検証をした後に、タイミング不良を対策する。
しかしながら、従来、レイアウトにかかる期間は、一ヶ月以上が必要である。また、タイミング不良パスが目標ディレイ以内に収束可能であるかを判定する技術が従来無かったので、設計の後戻りや、無駄なタイミング対策の繰り返しが発生していた。これらにより設計期間が長期化していたという問題がある。
上記問題の解決に関する先行技術例として、特開2003−281215号公報(特許文献1)が挙げられる。特許文献1では、論理合成、及び実装設計(レイアウト)の前に、パスディレイの見積もり値が目標ディレイ以内に収束可能であるか、ディレイ(タイミング)診断をして、収束可能なパスについては、論理合成において、レジスタ転送レベル(RTL)からゲートレベルに論理を展開するためのブロック内ディレイ取り分(パスディレイ予算からブロック間ディレイを減じた値)を定義した論理合成用制約(タイミング制約)を作成する技術が開示されている。
特開2003−281215号公報
前記特許文献1に開示されたタイミング設計を適用した、先行技術例としてのLSI設計のフローの例(図1)においては、タイミング設計段階(S4,図2)で、パスに対して、クロック・スキュー(CS)予算値の設定(S202,図3)などにより、タイミング制約を作成(パスディレイ予算を設定)する。ここで先行技術例では、タイミング設計段階(S4)において、クロック・ツリー(CT)の構造を考慮すること等はしていないので、CS予算値を一様に大きめ(CT根元での分岐を想定した最悪ケースの値)に設定している。よって、目標ディレイを満たすためには、パスディレイ予算値が小さめに設定される。これにより、タイミング設計段階(S4)では、レイアウト(S6)後のCSだと目標ディレイ内に収まるパスに対して、無駄なタイミング対策をしている場合があった。また、論理合成段階(S5)(最適化処理)では、同様のパスに対して、不要なゲートの高駆動力化や、負荷分散により過剰なゲートを生成している場合があった。
以上を鑑み、本発明の主な目的は、LSI設計・開発に係わり、タイミング設計における非効率的なタイミング対策の削減、及び、それによる論理合成段階でのゲート規模・消費電力等の増大の抑止を実現することができる技術を提供することである。詳しくは、(1)LSIのゲート規模・消費電力をレイアウト段階で最適化しない第1の設計方針の場合(設計期間短縮を優先する場合)における、LSIのゲート規模・消費電力の低減の効果、または、(2)LSIのゲート規模・消費電力をレイアウト段階で最適化する第2の設計方針の場合(製品性能を優先する場合)における、LSIの設計期間(論理合成やレイアウトなどの所要時間)の短縮の効果、を実現できる技術を提供することである。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。本発明では、タイミング設計段階において、パスの始点・終点(少なくとも一方)を含む機能モジュールと、それに対して供給するクロックのクロック・ツリー構造上での分岐点を対応付けて、当該分岐点に応じた効率的なCS予算値をパスに設定する(対応するパスディレイ予算値を設定する)。これにより、従来に比べて、レイアウト後のCSに近いCSでタイミング設計(タイミング診断及びタイミング制約値の作成等)することを可能とする。
(1)本発明の形態は、コンピュータの情報処理を用いたLSI設計方法(タイミング設計段階におけるCS予算値の設定方法)であって、タイミング設計段階において、以下の工程を有することを特徴とする。
(1−1)クロック・ツリー(CT)を含む実装仕様から、CTの最終段ゲート毎にクロック供給領域の情報を抽出する処理を行う第1の工程。
(1−2)前記実装仕様から、最終段ゲート(またはそれに対応付けられるクロック供給領域)の組み合わせの対毎に、CT分岐点を抽出する処理を行う第2の工程。
(1−3)前記実装仕様から、CT分岐点毎にCS予算値を抽出する処理を行う第3の工程。
(1−4)前記実装仕様から、CT分岐点毎に累積分岐回数を抽出する処理を行う第4の工程。
(1−5)第1、第2、及び第3の工程で抽出した情報を用いて、クロック供給領域(またはそれに対応付けられる最終段ゲート)の組み合わせの対毎にCS予算値を設定する処理を行う第5の工程。
(1−6)第1、第2、及び第4の工程で抽出した情報を用いて、クロック供給領域(またはそれに対応付けられる最終段ゲート)の組み合わせの対毎にCT分岐点の累積分岐回数を設定する処理を行う第6の工程。
(1−7)フロアプランからパスの始点・終点を含む機能モジュールの位置の情報を抽出する処理を行う第7の工程。
(1−8−a)論理情報から抽出したパス及び機能モジュールの情報を用いて、パスの始点と終点が所属する各機能モジュールを判別し、当該各機能モジュールについて、前記第7の工程で抽出した機能モジュールの位置と、前記第5の工程で設定したクロック供給領域とを重ね合わせることにより、当該各機能モジュールが所属するクロック供給領域を判別し、当該クロック供給領域の組み合わせの対について、前記第5の工程で設定したCS予算値を、当該対に関係付けられる当該パスに設定する第8の工程。
(1−8−b)また、上記判別において、当該機能モジュールが複数のクロック供給領域に所属する場合は、当該機能モジュールが所属するすべてのクロック供給領域の組み合わせの対について、前記第6の工程で設定したCT分岐点の累積分岐回数を参照し、当該累積分岐回数が最も少ないCT分岐点に対応付けられるクロック供給領域の対について、前記第5の工程で設定したCS予算値を、当該パスに設定する第8の工程。
(1−8−c)また、上記判別において、当該機能モジュールが同じクロック供給領域に所属する場合は、当該クロック供給領域に対応付けられる最終段ゲートについて、前記第5の工程で設定したCS予算値を、当該パスに設定する第8の工程。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。本発明によれば、LSI設計・開発に係わり、タイミング設計における非効率的なタイミング対策の削減、及び、それによる論理合成段階でのゲート規模・消費電力等の増大の抑止を実現することができる。詳しくは、(1)第1の設計方針の場合におけるLSIのゲート規模・消費電力の低減の効果、または、(2)第2の設計方針の場合におけるLSIの設計期間の短縮の効果、を実現できる。上記(1)、(2)の効果については、設計方針に応じた効果であり、選択ができる。
先行技術例、及び本発明の一実施の形態(LSI設計方法及びプログラム)において共通する、所定のタイミング設計段階(S4)を含む、LSI設計フローを示す図である。 図1のうち、タイミング設計段階(S4)のフローを示す図である。 タイミング制約(パスディレイ予算)によるパスの最適化のイメージを示す図であり、(a)はパスのパスディレイ予算等を示し、(b)はパスの例を示す。 本実施の形態(LSI設計方法及びプログラム)におけるハードウエア等の装置の実装構成例を示す図である。 図2のうち、CS予算値設定のフローを示す図である。 図3のCT実装仕様(例)のイメージを示す図である。 図3のフロアプラン(例)のイメージを示す図である。 図3のフローに関するデータ構造例を示す図である。 本実施の形態(LSI設計方法及びプログラム)における、具体例を説明するために、CT実装仕様とフロアプランとを重ね合わせた構成例のイメージを示す図である。 本実施の形態の効果を従来と対比して説明するためのイメージを示す図であり、(a)は第1の設計方針の効果、(b)は第2の設計方針の効果を示す。
以下、本発明の実施の形態(LSI設計方法及びプログラム)を図面(図1〜図10)に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
<タイミング設計を含むLSI設計フロー>
まず、図1を用いて、前記特許文献1に開示されたタイミング設計を適用した、先行技術例としてのLSI設計のフローの例について説明する(Sは処理ステップを示す)。なお処理主体は設計者の操作に基づくコンピュータの情報処理である。LSI設計では、設計仕様1に基づき、S1の機能設計をする。S1では、実現する機能の設計、及び機能を実装するための機能分割をする。次に、S1で分割した機能モジュール毎に、S2のフロアプラン設計、及びS3の論理設計をする。S2では、フロアプラン2を作成する。S3では、RTL論理3を作成する。また、S8の論理検証では、RTL論理3を用いて論理検証をする。また、設計仕様1では、目標ディレイの定義を含む。クロック・ツリー(CTと略す)実装仕様4では、CTのレイアウト方法の定義(CT構造情報)を含む。
S4のタイミング設計では、フロアプラン2、RTL論理3、設計仕様1(目標ディレイの定義)、及び、CT実装仕様4(CTのレイアウト方法の定義)を入力して、タイミング設計をする。タイミング設計では、パス毎にタイミング(パスディレイ等に関するタイミング)の収束可否(目標値以内に収まるか否か)を判定・診断して、その診断結果5を出力する。これにより収束可能(OK)と判定したパスについては、パスディレイ予算の定義を含むタイミング制約6を作成する。一方、収束不可能(NG)と判定したパスについては、S1の機能設計、S2のフロアプラン設計、または、S3の論理設計に戻って、タイミング不良を対策する。
上記で対策したパスのタイミングが収束可能(OK)になったら、RTL論理3、及びタイミング制約6を入力して、S5の論理合成をして、ゲートレベル論理7を生成する。S5の段階では、設計フローに応じて、タイミング最適化処理を含む。
その後、ゲートレベル論理7を入力して、CT実装仕様4に定義されている方法(CTのレイアウト方法)に従い、S6のレイアウトをする。S6の段階では、配置配線後に発生した信号波形のスルーレート違反に対して、ゲートの高駆動力化や、負荷分散をして調整する。S6の段階では、設計フローに応じて、ゲート最適化処理を含む。S6により生成したゲートレベル論理8を用いて、S7のタイミング検証をする。
次に、図2を用いて、図1のタイミング設計段階(S4)の処理フローの例について説明する。タイミング設計では、パス毎に、S201の目標ディレイの設定(目標ディレイ値をDmとする)、及び、S202のクロック・スキュー(CS)予算値の設定(CS予算値をCSyとする)、を行う。また、S203のパスディレイ計算では、パスディレイの見積もり値(Daとする)を算出する。
次に、S203で算出したパスディレイ見積もり値(Da)と、S202で設定したCS予算値(CSy)とを加算した値(Da+CSy)と、S201で設定した目標ディレイ値(Dm)とを比較することにより、S204のタイミング診断をする。(Da+CSy)≦Dmであれば、収束可能(OK)である。収束可能(OK)と判定したパスについては、S205のタイミング制約の作成をする。即ち、パスディレイ予算値(Dyとする)を設定する。
次に、図3を用いて、パスのタイミング制約(図1の6,図2のS205)について説明する。図3(b)のように、第1の機能モジュール311内を始点321として第2の機能モジュール312内を終点322とする第1のパス301を有する。また、第2の機能モジュール312内を始点322として第3の機能モジュール313内を終点323とする第2のパス302を有する。各点(321〜323)は、パスの始点・終点(始点または終点またはその両方)であり、例えばフリップフロップである。パス中には、適宜ゲート(332,333)等が挿入される。図3(a)のように、第1のパス301についてのタイミング制約は、目標ディレイ(Dm)からCS予算(CSy1)を減じて算出した値であるパスディレイ予算(Dy1)とする。また、第2のパス302についてのタイミング制約は、目標ディレイ(Dm)からCS予算(CSy2)を減じて算出した値であるパスディレイ予算(Dy2)とする。
ここで、図3(a)のように、CS予算(CSy)が相対的に大きい第2のパス302と相対的に小さい第1のパス301とを比較する。第2のパス302だと、CS予算(CSy2)が大きいのでパスディレイ予算(Dy2)が小さい。そのため、後の段階である論理合成(S5)でのタイミング最適化処理において、小さいパスディレイを満たすために、ゲートの高駆動力化や、負荷分散するゲート量が多くなる。これにより、パスを構成するゲート(例えば333)の規模が大きくなり、消費電力の増大などにつながる。一方逆に、CS予算(CSy1)が小さい第1のパス301だと、パスディレイ予算(Dy1)が大きい。そのため、論理合成のタイミング最適化処理において、ゲートの高駆動力化や、負荷分散するゲート量が少なくなる。これにより、パスを構成するゲート(例えば332)の規模が小さくなり、消費電力の減少などにつながる。
一方、レイアウト(S6)後のCSは、パスの始点・終点に供給される各クロックにおける、CT分岐点からパス始点までのディレイと、CT分岐点からパス終点までのディレイとのバラツキによって変動する。従来では、タイミング設計段階(S4)において、パスの始点・終点と、それに対してクロックを供給するCTの分岐点を対応付けすること等はしていなかったため、CS予算値は、CTの根元での分岐を想定した最悪ケースの値としていた。これにより、タイミング設計段階(S4)において、レイアウト(S6)後のCSだと目標ディレイ内に収まるようなパスに対して、無駄なタイミング対策をする場合があった。また、論理合成段階(S5)においては、レイアウト(S6)後のCSだと目標ディレイ内に収まるパスに対して、不要なゲートの高駆動力化や、負荷分散により過剰なゲートを生成していた。
<本実施の形態のLSI設計方法>
以上に基づき、本実施の形態のLSI設計方法(CS予算値設定方法を含む)等について説明する。本方法において、図1(全体),図2(タイミング設計段階(図1のS4),図5(CS予算値の設定(図2のS202))に示すフローの処理を実行する。本方法の処理は、図4の装置において本プログラムの処理により実現される。各フロー処理の概要は基本的に前述の通りである。本実施の形態において従来技術とは異なる特徴的な部分は、特に、タイミング設計(S4)での処理内容(CS予算値の設定方法)である。
<装置>
図4に、本LSI設計方法及びプログラムにおける、ハードウエア等の装置の実装構成例を示す。設計者が使用するPC等のコンピュータ装置において、本LSI設計方法に従う処理を実現するプログラムを実行する形態である。本プログラムは、ハードディスクドライブ等の補助記憶装置404に記憶されている。また補助記憶装置404には、後述するCS予算値の設定を行うための設計情報などのデータ(図8等)も記憶されている。本LSI設計方法の処理を実施する際には、設計者の操作に基づき、入力装置401の一つであるキーボードによりコマンドを入力して、CPU402に対し、CS予算値設定などの処理の実行を指示する。これにより、補助記憶装置404のプログラムやデータが主記憶装置403にロードされ、CPU402により実行される。実行結果は、例えばディスプレイやプリンタ等の出力装置405で確認できる。
<実装仕様、フロアプラン等>
まず、図6を用いて、図5のCT実装仕様501(CT実装仕様情報を含むLSIの実装仕様情報)の例について説明する。CT実装仕様501(図1のCT実装仕様4に相当)は、CT自体の分岐等の構造(CT構造情報)、並びに、チップ600上におけるCTの最終段ゲート(614〜617)がクロックを供給する領域(クロック供給領域)(601〜604)を定義した情報である。CTの分岐点はゲート(611〜617)等である。また、例えば、最終段ゲート614と最終段ゲート615との分岐点はゲート612であり、最終段ゲート615と最終段ゲート616との分岐点はゲート611である、といったように、CT実装仕様501は、CTの最終段ゲートの組み合わせ(対)毎にCTの分岐点を定義し、その分岐点(611〜617)毎にCS予算値などを定義する情報である。なお、分岐点の概念として最終段ゲート(614〜617)も含める。また、分岐点毎に累積分岐回数(Nとする)(CT根元からの累積の分岐回数)を定義した情報を含む。例えば、分岐点611のNは1であり、分岐点612,613のNは2であり、分岐点614〜617のNは3である。
次に、図7を用いて、図5のフロアプラン502(図1のフロアプラン2に相当)の例について説明する。機能モジュールのフロアプラン(502)は、チップ700上の機能モジュール(対応するブロック)(701〜703)の位置を定義した情報である。一般的に、機能モジュール(例えば701〜703)には、CT経由でクロックが供給されるパスの始点・終点(例えば711〜713)、及び、所望の機能を実現するための組み合わせ論理ゲート(例えば721,722)が含まれる。
また、図5の論理情報503は、パスを構成する始点・終点、ゲート(組み合わせ論理ゲート)について、それらの接続関係、及び、それらが所属する機能モジュールなどを定義した情報(パス及び機能モジュールの構成情報)を含む。論理情報503は、図1のRTL論理3に含まれている。
なお、図7のパスの始点・終点(例えば711〜713)は、図6のCTの最終段ゲート(614〜617)から、対応するクロック供給領域内でクロック供給先となるフリップフロップ等に対応付けられる。また、機能モジュール(ブロック)とクロック供給領域とは異なる。
<CS予算値設定方法>
次に、図5を用いて、CS予算値設定方法の処理について説明する。図5は、当該処理フロー及び関連するデータを示す。図8は、関連するデータの構造例を示す。
S501では、CT実装仕様501から、CTの最終段ゲート毎にクロック供給領域を抽出した後、主記憶装置403に記憶する処理を行う。このデータは、図8のデータ801のように、最終段ゲート識別名、クロック供給領域、等の情報を有する。
S502では、最終段ゲートの対毎にCT分岐点を抽出した後、主記憶装置403に記憶する処理を行う。このデータは、図8のデータ802のように、対を構成する第1と第2の最終段ゲート識別名、CT分岐点識別名、等の情報を有する。
S503では、CT分岐点毎にCS予算値を抽出した後、主記憶装置403に記憶する処理を行う。このデータは、図8のデータ803のように、CT分岐点識別名、CS予算値、等の情報を有する。
S504では、CT分岐点毎に累積分岐回数(N)を抽出した後、主記憶装置403に記憶する処理を行う。このデータは、図8のデータ804のように、CT分岐点識別名、分岐点の累積分岐回数(N)、等の情報を有する。
次に、S505において、S501で主記憶装置403に記憶したデータ801(CT最終段ゲートのクロック供給領域)と、S502で主記憶装置403に記憶したデータ802(最終段ゲート対毎のCT分岐点)と、S503で主記憶装置403に記憶したデータ803(CT分岐点毎のCS予算値)とから、クロック供給領域の対毎に、CS予算値を設定した後、主記憶装置403に記憶する処理を行う。このデータは、図8のデータ805のように、対を構成する第1と第2のクロック供給領域、CS予算値、等の情報を有する。S505では、当該クロック供給領域の対毎にCT分岐点を対応付けできるので、そのCT分岐点のCS予算値を設定した後、主記憶装置403に記憶するものである。
次に、S506において、S501で主記憶装置403に記憶したデータ801(CT最終段ゲートのクロック供給領域)と、S502で主記憶装置403に記憶したデータ802(最終段ゲートの対毎のCT分岐点)と、S504で主記憶装置403に記憶したデータ804(CT分岐点毎の累積分岐回数)とから、クロック供給領域の対毎にCT分岐点の累積分岐回数(N)を設定した後、主記憶装置403に記憶する処理を行う。このデータは、図8のデータ806のように、対を構成する第1と第2のクロック供給領域、分岐点の累積分岐回数(N)、等の情報を有する。
次に、S507において、フロアプラン502から、パスの始点・終点(少なくとも一方)を含む機能モジュールの位置を抽出した後、主記憶装置403に記憶する処理を行う。このデータは、図8のデータ807のように、始点を含む機能モジュールの識別名、終点を含む機能モジュールの識別名、始点を含む機能モジュールの位置、終点を含む機能モジュールの位置、等の情報を有する。位置は例えば座標等の情報である。なお始点と終点が同じ機能モジュール内の場合もある。
次に、S508において、パスにCS予算値を設定する処理を行う。S508の処理は、詳しくは、パス及び機能モジュールの構成と、クロック供給領域及びCT分岐点の構成とを重ね合わせてそれらの要素の関係を判別する処理(S508−1)と、それに基づき、パス(対応する機能モジュール及びクロック供給領域)に対してCT分岐点に応じたCS予算値を設定する処理(S508−2)等とを含む。
(S508−1) S508−1の処理は、例えば2次元の座標領域の重ね合わせによる判別である。図6のようなクロック供給領域の位置・座標等の2次元のデータと、図7のようなフロアプラン上の機能モジュールの位置・座標等の2次元のデータとを用いて、重ね合わせることにより判別する。まず、論理情報503から抽出したパスの始点・終点の識別名には機能モジュール識別名を含んでいる(即ちパスの始点・終点と機能モジュールとの関係がわかる)ため、パスの始点・終点が所属する(含まれる)各機能モジュールを判別する(なお始点・終点が同じ機能モジュールに所属する場合も含む)。そして、その機能モジュール(始点が所属する第1の機能モジュール、終点が所属する第2の機能モジュール)のそれぞれについて、S507で主記憶装置403に記憶した機能モジュールの位置と、S505で主記憶装置403に記憶したクロック供給領域(CT分岐点に対応付けられる対)とを重ね合わせることにより、各機能モジュールが所属する(含まれる)クロック供給領域を判別する。なお所属は1つの場合も複数の場合もある。この判別処理では、まず簡単には、1つの機能モジュールが1つのクロック供給領域の中に含まれる場合(条件A)を考える。
(S508−2) そして、そのクロック供給領域の組み合わせの対(分岐点に対応付けられる対)について、S505で主記憶装置403に記憶したCS予算値を、パスの始点・終点に対して設定する。このデータは、図8のデータ808のように、パスの始点の識別名、パスの終点の識別名、CS予算値、等の情報を有する。
また、上記判別・設定の際、パスの始点・終点(少なくとも一方)を含む機能モジュールが、複数のクロック供給領域に所属する(重なる)場合(条件B)を考える。この場合は、始点を含む機能モジュールが所属するクロック供給領域と、終点を含む機能モジュールが所属するクロック供給領域とを対とした、すべての組み合わせ、及びそれに対応付けられるCT分岐点について、S506で主記憶装置403に記憶したCT分岐点の累積分岐回数(N)を参照し、そこで累積分岐回数(N)が最も少ないCT分岐点に対応付けられるクロック供給領域の対を選択する。その対について、S505で主記憶装置403に記憶したCS予算値を、当該パスの始点・終点に、図8のデータ808のように設定する。上記は、言い換えれば、CT構造において該当する複数のクロック供給領域のすべての供給元となる1つの分岐点を選択し、それに対応したCS予算値を当該パスに設定するものである。
以上のようにして、図2のS202でパス毎に効率的なCS予算値が設定されるため、以後、S205で効率的なパスディレイ予算値が設定される。従って、図1のタイミング設計段階(S4)で効率的なタイミング制約の作成が済んでいるため、以後、論理合成(S5)、レイアウト(S6)等の処理で効率的な処理が実現される。
<CS予算値設定の具体例>
図9を参照しながら、前記パスにCS予算値を設定する処理の具体例について説明する。図9は、CT実装仕様の例(図6と同様)とフロアプランの例(図7と同様)とを重ね合わせた構成(2次元の位置・座標等)を示す。
図9のCT実装仕様の情報において、チップ900上におけるCTの分岐点となる最終段ゲート(914〜917)によるクロック供給領域(901〜904)などが定義されている。また、パス(931〜933)の始点・終点(941〜944)にクロックを供給するCTの分岐点(911〜917)が定義されており、その分岐点毎に、「ゲート識別名/CS予算値/累積分岐回数」等の情報が定義(設定)される。ゲート識別名(分岐点)の例をA1等で示す。CS予算値(CSy)の例及び累積分岐回数(N)の例は図示の通りである。例えば、パスの始点・終点にクロックを供給するCTの分岐点がゲート911の時、そのCT分岐点の識別名はA1、CS予算値(CSy)は200[ps]、累積分岐回数(N)は1である。
また、図9のフロアプランの情報において、チップ900上における機能モジュール(921〜923)の位置が定義されている。機能モジュール(921〜923)は、パス(931〜933)の始点・終点(941〜944)、及び、組み合わせ論理ゲート(951〜953)等から成り、それらによりパス(931〜933)が構成される。ここでは、3つの機能モジュール921〜923だけがフロアプランに実在して、機能モジュール内、及び、機能モジュール間のパスの情報は、RTL論理3から抽出済みであることを前提として以下に説明する。
(1)第1の機能モジュール921内のパスである第1のパス931において、始点941と終点942を含む機能モジュール921は、第1のクロック供給領域901に配置(所属)されている。そのため、当該第1のクロック供給領域901に対応付けられる最終段ゲート914から、クロックが、当該機能モジュール921(始点941及び終点942等)に対して供給される。この時、第1のパス931に関するCT分岐点は、最終段ゲート914である。よって、第1のパス931(始点・終点)のCS予算値として、当該最終段ゲート914のCS予算値である「50」が設定される。
(2)(条件A) また、第1の機能モジュール921と第2の機能モジュール922との間のパスである第2のパス932において、始点942を含む第1の機能モジュール921は、第1のクロック供給領域901に配置されているため、最終段ゲート914からクロックが供給され、終点943を含む第2の機能モジュール922は、第2のクロック供給領域902に配置されているため、最終段ゲート915からクロックが供給される。この時、当該第2のパス932に関するCT分岐点は、当該第1と第2のクロック供給領域(901,902)の対に関する分岐点に対応するゲート912である。よって、第2のパス932のCS予算値として当該ゲート912の値「100」が設定される。
(3)(条件B) また、第2の機能モジュール922と第3の機能モジュール923との間のパスである第3のパス933において、始点943を含む第2の機能モジュール922は、第2のクロック供給領域902に配置されているため、最終段ゲート915からクロックが供給される。一方、終点944を含む第3の機能モジュール923は、第2のクロック供給領域902及び第3のクロック供給領域903の両方に跨って配置されている。そのため、第3の機能モジュール923に対しては、それに対応付けられる、最終段ゲート915または最終段ゲート916の2つからクロックが供給される。この場合、当該パス933の始点と終点の対におけるすべての組み合わせ(この場合は2つ)を考える。即ち、第1の組み合わせ(対)として、終点944を含む第3の機能モジュール923(一部)に対して第2のクロック供給領域902の最終段ゲート915からクロックを供給する場合のCT分岐点は、同じ第2のクロック供給領域902内の分岐点であるため、当該最終段ゲート915であり、その累積分岐回数(N)が「3」、CS予算値が「50」である。一方、第2の組み合わせ(対)として、終点944を含む第3の機能モジュール923(一部)に対して第3のクロック供給領域903の最終段ゲート916からクロックを供給する場合のCT分岐点は、異なる第2と第3のクロック供給領域(902,903)の対の分岐点であるため、ゲート911であり、その累積分岐回数(N)が「1」、CS予算値が「200」である。この時、当該第3のパス933に関するCS予算値として、累積分岐回数(N)が最も少ないゲート(分岐点)、即ちゲート911の値「200」が設定される。
<実施の形態の効果等>
図10を用いて実施の形態の効果等について説明する。従来一般的に、LSIの開発・設計では、開発日程(設計期間やそのコスト)、製品の動作速度や消費電力(製品の性能や価格)等、何を優先して開発・設計するか(設計方針)の違いがある。例えば、レイアウト段階でゲート規模・消費電力を最適化しない場合(第1の設計方針)と最適化する場合(第2の設計方針)とがある。第1の設計方針は、レイアウト段階でのゲート最適化処理に要する時間を削減することにより、設計期間全体の短縮を優先する場合である。逆に、第2の設計方針は、レイアウト段階でのゲート最適化処理に時間を要する代わりに、ゲート規模等を削減して製品の性能を高くすることを優先する場合である。
これらに対し、本実施の形態では、論理合成段階(S5)・レイアウト段階(S6)よりも前の、フロアプラン設計(S3)・タイミング設計(S4)の段階で、CT構造(分岐点など)を考慮したCS予算値の設定による効率的なパスディレイ予算値の設定(タイミング制約の作成)をする。これにより、従来のタイミング設計における無駄なタイミング対策(CT構造を考慮しない最悪ケースのCS予算値の設定による非効率的なパスディレイ予算値の設定)の削減を実現できる。また、このようにパス毎に効率的なパスディレイ予算値を設定するので、論理合成段階(S5)・レイアウト段階(S6)での過剰なゲート生成、即ちゲート規模・消費電力等の増大、を抑止することができる。
図10(a)において、LSIのゲート規模・消費電力をレイアウト段階で最適化しない場合(第1の設計方針)における効果を従来と対比して示す。本実施の形態では、タイミング設計段階(S4)の処理でCSのマージンを削減して作成したタイミング制約(パスディレイ予算)を用いて、論理合成(S5)を行うことにより、従来設計に比べて、過剰なゲートの生成を抑止(即ち論理合成後のゲートレベル論理の減少)することができる。レイアウト段階(S6)での最適化はしないので論理増分は一定である。上記ゲート(電力を消費する)の規模を削減することで、消費電力も削減することができる。即ち全体としてLSIのゲート規模及び消費電力の低減の効果が得られる。
図10(b)において、LSIのゲート規模・消費電力をレイアウト段階で最適化する場合(第2の設計方針)における効果を従来と対比して示す。本実施の形態では、上記同様にタイミング設計段階(S4)の処理で作成した効率的なタイミング制約(パスディレイ予算)を用いて、論理合成(S5)を行うことにより、論理合成段階(S5)で過剰なゲートの生成を抑止できている(論理合成に要する時間も削減される)。そのため、従来設計に比べて、その後のレイアウト段階(S6)でのゲート規模・消費電力の最適化処理(それに要する時間)を削減でき、即ち設計期間全体を短縮できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
<用語等>
本明細書における基本的な用語や計算式について補足する。パスは、始点から終点までの経路であり、ブロック(機能モジュール)内に収まる場合や、ブロック(機能モジュール)間にわたる場合などがある。パスディレイは、パスの始点から終点までにおけるディレイである。クロック・ツリー(CT)は、クロックの供給元(根元)から複数の供給先(パスの始点や終点を含む)への分岐を含むツリー構造である。クロック・スキュー(CS)は、クロックの供給先となる2点(例えばパスの始点と終点)間におけるクロック到達時間のバラツキ(差分)である。パス(パスディレイ)に関するCSは、パスの始点と終点へのクロック到達のディレイ(値)を例えばd1,d2とすると、その差分[d1−d2]である。この差分には、LSI製造工程で発生するバラツキを含む。
目標ディレイ(目標パスディレイ): タイミング設計/検証において、対象となるパス(パスディレイ)に関して、パスディレイに加えてCSを考慮した値を、目標値(目標ディレイ)と比較し、収束可能か否か(OK/NG)を判断するものである。
パスディレイのタイミング設計/検証: 目標ディレイ以内において、パスディレイとCSの値を配分(予算)可能である。即ち、目標ディレイを余すことなく配分する場合の各予算値(許容値)は、[目標ディレイ値(Dm)]=[パスディレイ予算値(Dy)]+[CS予算値(CSy)]である(図3)。また、Dy=Dm−CSyである。このパスディレイ予算値(Dy)と、パスディレイの見積もり値(Da)とを比較することにより、タイミング検証がされる。即ち、Dy−Da≧0であれば収束可能(OK)である。なお、見積もり値(Da)は、タイミング設計段階などでの一般的なシミュレーション計算上の値である。予算値は、許容値などとも言い換えられる。
本発明は、LSI設計ツール等に利用可能である。
1…設計仕様、2,502…フロアプラン、3…RTL論理、4,501…CT実装仕様、5…診断結果、6…タイミング制約、7,8…ゲートレベル論理、301,302,931〜933…パス、311〜313,701〜703,921〜923…機能モジュール、321〜323,711〜713,941〜944…始点・終点、332,333,721,722,951〜953…ゲート(パス中のゲート)、401…入力装置、402…CPU、403…主記憶装置、404…補助記憶装置、405…出力装置、503…論理情報、600,700,900…チップ、601〜604,901〜904…クロック供給領域、611〜617,911〜917…ゲート(CT分岐点)、801〜808…データ。

Claims (5)

  1. 設計者の操作に基づいてコンピュータによりソフトウェアプログラムに従う情報処理を行うことによりLSIを設計するLSI設計方法であって、
    前記LSIの設計のうちのタイミング設計段階において、
    実装仕様から、クロック・ツリーの最終段ゲート毎にクロック供給領域の情報を抽出する処理を行う第1の工程と、
    前記実装仕様から、最終段ゲートまたはそれに対応付けられるクロック供給領域の組み合わせの対毎にクロック・ツリー分岐点を抽出する処理を行う第2の工程と、
    前記実装仕様から、クロック・ツリー分岐点毎にクロック・スキュー予算値を抽出する処理を行う第3の工程と、
    前記実装仕様から、クロック・ツリー分岐点毎に累積分岐回数を抽出する処理を行う第4の工程と、
    前記第1、第2、及び第3の工程で抽出した情報を用いて、前記クロック供給領域またはそれに対応付けられる最終段ゲートの組み合わせの対毎にクロック・スキュー予算値を設定する処理を行う第5の工程と、
    前記第1、第2、及び第4の工程で抽出した情報を用いて、前記クロック供給領域またはそれに対応付けられる最終段ゲートの組み合わせの対毎に前記クロック・ツリー分岐点の累積分岐回数を設定する処理を行う第6の工程と、
    パスの始点を含む機能モジュールの位置、及び終点を含む機能モジュールの位置の情報を抽出する処理を行う第7の処理と、
    前記第7の工程で抽出した、パスの始点を含む機能モジュールの位置、及び終点を含む機能モジュールの位置と、前記第5の工程で設定したクロック供給領域の対との関係の判別に基づき、当該パスに対して、前記クロック・ツリー分岐点に応じた、前記第5の工程で設定したクロック・スキュー予算値を設定する処理を行う第8の工程と、を有し、
    前記第8の工程では、当該パスの始点又は終点の少なくとも一方を含む機能モジュールが、複数のクロック供給領域に所属する場合は、当該機能モジュールが所属するすべてのクロック供給領域の組み合わせの対について、前記第6の工程で設定したクロック・ツリー分岐点の累積分岐回数を参照し、当該回数が最も少ない当該クロック供給領域の対について前記第5の工程で設定したクロック・スキュー予算値を、当該パスに設定する処理を行うこと、を特徴とするLSI設計方法。
  2. 請求項1記載のLSI設計方法において、
    前記第5の工程では、前記クロック供給領域に対応付けられる最終段ゲートをクロック・ツリー分岐点としてクロック・スキュー予算値を設定し、
    前記第8の工程では、当該パスの始点を含む機能モジュールの位置、及び終点含む機能モジュールの位置が、同じクロック供給領域に所属する場合は、当該機能モジュールが所属するクロック供給領域に対応付けられる最終段ゲートについて前記第5の工程で設定したクロック・スキュー予算値を、当該パスに設定する処理を行うこと、を特徴とするLSI設計方法。
  3. 請求項1または2に記載のLSI設計方法において、
    前記第8の工程では、パス及び機能モジュールの情報を用いて、パスの始点を含む機能モジュール、及び終点を含む機能モジュールを判別し、当該機能モジュールの各々について、前記第7の工程で抽出した機能モジュールの位置と、前記第5の工程で設定したクロック供給領域とを重ね合わせることにより、当該機能モジュールが所属するクロック供給領域を判別し、当該パスに関係付けられる当該クロック供給領域の対について前記第5の工程で設定したクロック・スキュー予算値を、当該パスに設定する処理を行うこと、を特徴とするLSI設計方法。
  4. 請求項1〜3のいずれか一項に記載のLSI設計方法において、
    前記タイミング設計段階において、
    前記パスのパスディレイに関する目標値を設定する処理と、
    前記パスに対して前記クロック・スキュー予算値を設定する処理と、
    前記パスのパスディレイの見積もり値を計算する処理と、
    前記パスのパスディレイに関する前記目標値と前記見積もり値とを比較して当該パスの収束可否を診断する処理と、
    前記収束するパスについて、前記目標値から前記クロック・スキュー予算値を引いた値を、パスディレイ予算値として設定する処理と、を有すること、を特徴とするLSI設計方法。
  5. 設計者の操作に基づいてコンピュータに情報処理を実行させることによりLSIを設計するLSI設計プログラムであって、
    前記LSIの設計のうちのタイミング設計段階において、
    実装仕様から、クロック・ツリーの最終段ゲート毎にクロック供給領域の情報を抽出する第1の処理と、
    前記実装仕様から、最終段ゲートまたはそれに対応付けられるクロック供給領域の組み合わせの対毎にクロック・ツリー分岐点を抽出する第2の処理と、
    前記実装仕様から、クロック・ツリー分岐点毎にクロック・スキュー予算値を抽出する第3の処理と、
    前記実装仕様から、クロック・ツリー分岐点毎に累積分岐回数を抽出する第4の処理と、
    前記第1、第2、及び第3の処理で抽出した情報を用いて、前記クロック供給領域またはそれに対応付けられる最終段ゲートの組み合わせの対毎にクロック・スキュー予算値を設定する第5の処理と、
    前記第1、第2、及び第4の処理で抽出した情報を用いて、前記クロック供給領域またはそれに対応付けられる最終段ゲートの組み合わせの対毎に前記クロック・ツリー分岐点の累積分岐回数を設定する第6の処理と、
    パスの始点を含む機能モジュールの位置、及び終点を含む機能モジュールの位置の情報を抽出する第7の処理と、
    前記第7の処理で抽出した、パスの始点を含む機能モジュールの位置、及び終点を含む機能モジュールの位置と、前記第5の処理で設定したクロック供給領域の対との関係の判別に基づき、当該パスに対して、前記クロック・ツリー分岐点に応じた、前記第5の処理で設定したクロック・スキュー予算値を設定する第8の処理と、をコンピュータに実行させ、
    前記第8の処理では、当該パスの始点又は終点の少なくとも一方を含む機能モジュールが、複数のクロック供給領域に所属する場合は、当該機能モジュールが所属するすべてのクロック供給領域の組み合わせの対について、前記第6の処理で設定したクロック・ツリー分岐点の累積分岐回数を参照し、当該回数が最も少ない当該クロック供給領域の対について前記第5の処理で設定したクロック・スキュー予算値を、当該パスに設定する処理をコンピュータに実行させること、を特徴とするLSI設計プログラム。
JP2009238893A 2009-10-16 2009-10-16 Lsi設計方法及びプログラム Expired - Fee Related JP5564231B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009238893A JP5564231B2 (ja) 2009-10-16 2009-10-16 Lsi設計方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009238893A JP5564231B2 (ja) 2009-10-16 2009-10-16 Lsi設計方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011086136A JP2011086136A (ja) 2011-04-28
JP5564231B2 true JP5564231B2 (ja) 2014-07-30

Family

ID=44079032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009238893A Expired - Fee Related JP5564231B2 (ja) 2009-10-16 2009-10-16 Lsi設計方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5564231B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266795A (ja) * 1993-03-16 1994-09-22 Hokuriku Nippon Denki Software Kk 遅延時間改良方式
JP3599531B2 (ja) * 1997-07-17 2004-12-08 株式会社日立製作所 半導体集積回路のクロックスキュー低減方法
JP3953756B2 (ja) * 2001-07-12 2007-08-08 富士通株式会社 タイミングバジェット設計方法
JP2005136286A (ja) * 2003-10-31 2005-05-26 Nec Electronics Corp 半導体集積回路の設計方法、及びその装置
JP2006268165A (ja) * 2005-03-22 2006-10-05 Sharp Corp 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体
JP4966838B2 (ja) * 2007-12-14 2012-07-04 エヌイーシーコンピュータテクノ株式会社 クロック配線処理装置、クロック配線処理方法、及びプログラム

Also Published As

Publication number Publication date
JP2011086136A (ja) 2011-04-28

Similar Documents

Publication Publication Date Title
US8635572B1 (en) Circuitry having programmable power rails, architectures, apparatuses, and systems including the same, and methods and algorithms for programming and/or configuring power rails in an integrated circuit
US7917882B2 (en) Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof
US9430608B2 (en) Fixing of semiconductor hold time
US10740520B2 (en) Pessimism in static timing analysis
US7725843B2 (en) Behavioral synthesis apparatus, behavioral synthesis method, method for manufacturing digital circuit, behavioral synthesis control program and computer-readable recording medium
US9047434B2 (en) Clustering for processing of circuit design data
JP4969416B2 (ja) 動作タイミング検証装置及びプログラム
US8621415B2 (en) Obtaining power domain by clustering logical blocks based on activation timings
JP5564231B2 (ja) Lsi設計方法及びプログラム
US10318699B1 (en) Fixing hold time violations using hold time budgets and slacks of setup times
JP2014035667A (ja) Lsi設計方法およびlsi設計装置
Shin et al. HLS-dv: A high-level synthesis framework for dual-Vdd architectures
US9355207B2 (en) Performing static timing analysis in the presence of instance-based systematic variations
US10503861B1 (en) Placing and routing an interface portion and a main portion of a circuit design
US10540463B1 (en) Placement of delay circuits for avoiding hold violations
Widialaksono et al. Physical design of a 3D-stacked heterogeneous multi-core processor
Wang et al. Variation-aware resource sharing and binding in behavioral synthesis
JP2001267429A (ja) レイアウト設計装置およびレイアウト設計方法
JP2008176486A (ja) 多電源集積回路の設計方法、多電源集積回路の設計支援システム及びプログラム
US11934760B1 (en) Voltage impacts on delays for timing simulation
Lee et al. Efficient package pin-out planning with system interconnects optimization for package-board codesign
Deutsch et al. Robust optimization of test-architecture designs for core-based SoCs
MohammadZadeh et al. Multi-domain clock skew scheduling-aware register placement to optimize clock distribution network
Huang et al. Performance-driven architectural synthesis for distributed register-file microarchitecture considering inter-island delay
US8484008B2 (en) Methods and systems for performing timing sign-off of an integrated circuit design

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140527

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140616

R150 Certificate of patent or registration of utility model

Ref document number: 5564231

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees