(57)【要約】低レベルの設計ブロックから高レベルの設計ブロックにタイミング規制を伝播する方法であって、複数の設計ブロックを含む回路を設計するステップを含む。複数の設計ブロックの各々が、これらに関連付けられた１セットのタイミング規制を有する。その回路用のタイミング規制の複合セットは、確立した伝播規則セットに従って、複数の設計ブロックの各々に関連付けられたタイミング規制のセットの各々から作成する。
2009517764.tif 000002
【特許請求の範囲】
【請求項１】
低レベルの設計ブロックから高レベルの設計ブロックにタイミング規制を伝播する方法であって、
複数の設計ブロックの各々が、これらに関連付けられた１セットのタイミング規制を有する、複数の設計ブロックを含む回路を設計する設計ステップと、
確立した伝播規則セットに従って、前記複数の設計ブロックの各々に関連付けられたタイミング規制のセットの各々から、前記回路用のタイミング規制の複合セットを作成する作成ステップと、
を含むタイミング規制伝播方法。
【請求項２】
前記作成ステップは、
前記複数の設計ブロックの各々に関連付けられたタイミング規制のセット間の競合を解決するステップを更に含む、請求項１に記載の方法。
【請求項３】
前記作成ステップは、
前記タイミング規制に関連付けられたブロックのインスタンス化に依存するタイミング規制に対して、タイミング規制のソースポイント用の被接続クラウドを決定するステップと、
被接続クラウドが前記回路の少なくとも１つの設計ブロックの境界に達するか否かを決定するステップと、
前記被接続クラウドが前記回路の少なくとも１つの設計ブロックの境界に達する場合に、前記タイミング規制を次の設計ブロックに伝播するステップと、
前記被接続クラウドが前記回路の少なくとも１つの設計ブロックの境界に達しない場合に、前記タイミング規制を廃棄するステップと、
を更に含む、請求項１に記載の方法。
【請求項４】
前記作成ステップは、
インスタンス化のコンテクストに無関係のタイミング規制に対して、経路に沿ったタイミング規制を、クロックされる要素、設計のトップレベルの一部分又は前記経路の別部分のうちの少なくとも１つに達するまで伝播するステップを更に含む、請求項１に記載の方法。
【請求項５】
前記作成ステップは、
導き出すことができないタイミング規制に対して、タイミング規制がクロックの規制であるか、又は一定の規制であるかを決定するステップと、
前記タイミング規制がクロックの規制である場合に、
元のソースから駆動ソースまでタイミング規制を後方トレースするステップと、
前記駆動ソースから、前記タイミング規制を前記タイミング規制が制御する全てのクロックされるインスタンスに前方に伝播するステップと、
前記タイミング規制が一定の規制である場合に、
前記元のソースから、前記タイミング規制を前記タイミング規制が制御する全てのクロックされるインスタンスに前方伝播するステップと、
を更に含む、請求項１に記載の方法。
【請求項６】
前記作成ステップは、
階層的ソースポイントを有していないタイミング規制に対して、タイミング規制のための多数の異なる値があるか否かを決定するステップと、
前記タイミング規制のための多数の異なる値がある場合に、最も制限的な値を伝播するステップと、
を含む、請求項１に記載の方法。
【請求項７】
前記作成ステップは、
規定されるタイミング規制から遅延規制を作成するステップを更に含む、請求項１に記載の方法。
【請求項８】
前記作成ステップは、
内部又は外部で生成したクロックの規制を、他の設計ブロックからトレースしたクロックの規制よりも優先するステップを更に含む、請求項１に記載の方法。
【請求項９】
低レベルの設計ブロックから高レベルの設計ブロックにタイミング規制を伝播する装置であって、
汎用コンピュータを構成するためのマシン読み取り可能なコードを格納するコンピュータ読み取り可能なメディアを備え、
前記マシン読み取り可能なコードは、
複数の設計ブロックの各々が、これらに関連付けられた１セットのタイミング規制を有する、複数の設計ブロックを含む回路を設計する設計し、
確立した伝播規則セットに従って、前記複数の設計ブロックの各々に関連付けられたタイミング規制のセットの各々から、前記回路用のタイミング規制の複合セットを作成するように、前記汎用コンピュータを構成することを特徴とする、タイミング規制伝播装置。
【請求項１０】
前記マシン読み取り可能なコードは、前記複数の設計ブロックの各々に関連付けられたタイミング規制のセット間の競合を解決するように、前記汎用コンピュータを更に構成する、請求項９に記載のタイミング規制伝播装置。
【請求項１１】
前記マシン読み取り可能なコードは、
前記タイミング規制に関連付けられたブロックのインスタンス化に依存するタイミング規制に対して、タイミング規制のソースポイント用の被接続クラウドを決定し、
被接続クラウドが前記回路の少なくとも１つの設計ブロックの境界に達するか否かを決定し、
前記被接続クラウドが前記回路の少なくとも１つの設計ブロックの境界に達する場合に、前記タイミング規制を次の設計ブロックに伝播し、
前記被接続クラウドが前記回路の少なくとも１つの設計ブロックの境界に達しない場合に、前記タイミング規制を廃棄するように、
前記汎用コンピュータを更に構成する、請求項９に記載のタイミング規制伝播装置。
【請求項１２】
前記マシン読み取り可能なコードは、
インスタンス化のコンテクストに無関係のタイミング規制に対して、経路に沿ったタイミング規制を、クロックされる要素、設計のトップレベルの一部分又は前記経路の別部分のうちの少なくとも１つに達するまで伝播するように、
前記汎用コンピュータを更に構成する、請求項９に記載のタイミング規制伝播装置。
【請求項１３】
前記マシン読み取り可能なコードは、
導き出すことができないタイミング規制に対して、タイミング規制がクロックの規制又は一定の規制であるかを決定し、
前記タイミング規制がクロックの規制である場合に、
元のソースから駆動ソースまでタイミング規制を後方トレースし、
前記駆動ソースから、前記タイミング規制を前記タイミング規制が制御する全てのクロックされるインスタンスに前方に伝播し、
前記タイミング規制が一定の規制である場合に、
前記元のソースから、前記タイミング規制を前記タイミング規制が制御する全てのクロックされるインスタンスに前方伝播するように、
前記汎用コンピュータを更に構成する、請求項９に記載のタイミング規制伝播装置。
【請求項１４】
前記マシン読み取り可能なコードは、
階層的ソースポイントを有していないタイミング規制に対して、タイミング規制のための多数の異なる値があるか否かを決定し、
前記タイミング規制のための多数の異なる値がある場合に、最も制限的な値を伝播するように、
前記汎用コンピュータを更に構成する、請求項９に記載のタイミング規制伝播装置。
【請求項１５】
前記マシン読み取り可能なコードは、
規定されるタイミング規制から遅延規制を作成するように、
前記汎用コンピュータを更に構成する、請求項９に記載のタイミング規制伝播装置。
【請求項１６】
前記マシン読み取り可能なコードは、
内部又は外部で生成したクロックの規制を、他の設計ブロックからトレースしたクロックの規制よりも優先するように、
前記汎用コンピュータを更に構成する、請求項９に記載のタイミング規制伝播装置。
【発明の詳細な説明】
【技術分野】
【０００１】
階層的ＳＯＣ設計でマージするタイミング規制
【背景技術】
【０００２】
多くの設計（特にプラットホームベースの論理設計）は、大きな割合で再利用できるインテレクチャル・プロパティ（ＩＰ）ブロックがある。これらのＩＰブロックは、大きめの設計に使用できる予め設計された機能ブロックを形成する。これらのＩＰブロックを設計統合するとき、これらのＩＰブロックは、幾つかの異なるタイプの情報を有する。幾つかの異なるタイプの情報の１つには、１セットのタイミング規制がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
コンピュータによるエレクトリック・デザイン・オートメーション（ＥＤＡ）ツールは、これらのツール上で動作するエンティティのためにタイミング規制を必要とする。これは、全体設計用のものとするか、又は設計内に組み入れる中間レベルの階層的ブロック（チップレット（ｃｈｉｐｌｅｔ））用とすることができる。これらのエンティティは、通常、単一ＩＰブロックに対応していない。タイミング規制する必要があるＥＤＡツールの例には、物理的な合成、配置、ルーティング、タイミング解析がある。これらのエンティティは、チップレット又は完全なチップのレベルで、即ちこれらが規制を必要とするレベルで全て動作する。規制が、全体設計に対して存在していないが、設計内の個別のＩＰブロックに対して存在することはよくある。これらの個別の規制を高レベルの規制にするためにマージする効率的なやり方が必要である。
【０００４】
既存のツールは、全体設計の規制を操作して、例えばタイミング割り当てを行うことによって、チップレット、又は設計の階層構造の低レベル用の規制を作成することができる。既存のツールは、低レベルのタイミング規制から、設計の高レベル用の１セットのタイミング規制を取り出すことができない。現在、これは、手動で行わなければならない。これは、タイミング規制の幾つかだけを高レベルへと伝播させる必要があるので、簡単な連結行程ではない。これは、時間を消費し、誤る傾向がある行程であり、完成させ検証するのに、数人で数週間を必要とすることがよくある。設計を変更するときはいつも、この行程を、幾らか異なる入力で繰り返すことになる。
【課題を解決するための手段】
【０００５】
以下に開示される、請求の範囲に係る本発明の一態様は、低レベルの設計ブロックから高レベルの設計ブロックにタイミング規制を伝播する方法を含む。複数の設計ブロックを含む回路を設計し、複数の設計ブロックの各々が、これらに関連付けられた１セットのタイミング規制を有するようにする。この回路用のタイミング規制の複合セットは、確立した伝播規則セットに従って、複数の設計ブロックの各々に関連付けられたタイミング規制のセットの各々から作成する。
【０００６】
本発明の方法及び装置のより完全な理解は、図面を参照して、以下の詳細な説明によって得ることができる。
【発明を実施するための最良の形態】
【０００７】
ここで、図面を参照するに、特に図１は、設計操作システム（Ｄｅｓｉｇｎ  Ｍａｎｕｐｕｌａｔｉｏｎ  Ｓｉｓｔｅｍ）内に実装した本発明システムを示している。本発明は、設計操作システム（ＤＭＳ）１０２と称されるコンピュータ・プログラムに実装させている。ＤＭＳシステム１０２は、既存のＩＰブロックの様々な組み合わせを用いてシステム設計することができる。生成される設計は、確立した様々なタイミング規制１０４に従って動作するものであり、ＤＭＳシステム１０２は、他の設計機能１０６も利用する。
【０００８】
以下、タイミング規制は、これらの実装の観点から、ＳＤＣ（Ｓｙｎｏｐｓｉｓ  Ｄｅｓｉｇｎ  Ｃｎｏｓｔｒａｉｎｔ）フォーマットで記述されるものとする。タイミング規制とは４つのカテゴリがある。タイプＩのタイミング規制１０８は、これらが規定されるブロックのインスタンス化（ｉｎｓｔａｎｔｉａｔｉｏｎ）に依存している。タイプＩのタイミング規制は、限定するものではないが、ｓｅｔ＿ｉｎｐｕｔ＿ｄｅｌａｙ、ｓｅｔ＿ｌｏａｄ又はｓｅｔ＿ｄｒｉｖｉｎｇ＿ｃｅｌｌなどの規制を含む。タイプＩのタイミング規制は、通常、常時ではないが、ＩＰブロックのポートに関して規定されている。ＩＰブロックと階層構造でインスタンス化する場合、これらのタイミング規制は、高レベルの境界に直接マップする時を除いて、このコンテクストから導き出す必要がある。
【０００９】
タイプＩＩのタイミング規制１１０は、インスタンス化のコンテクストとは無関係である。これらの規制は、限定するものではないが、ｓｅｔ＿ｃａｓｅ＿ａｎａｌｙｓｉｓ，ｓｅｔ＿ｆａｌｓｅ＿ｐａｔｈ，及びｓｅｔ＿ｍｕｌｔｉｃｙｃｌｅ＿ｐａｔｈを含む。これらのタイミング規制は、ＩＰブロックのポート、低レベルのＩＰブロック又はリーフセルのインスタンスピン（ｉｎｓｔａｎｃｅ  ｐｉｎ）、ネット又はクロックに関して規定することができる。また、これらのタイミング規制は、このコンテクストから導き出すことができず、高レベルの設計に伝播させる必要がある。
【００１０】
タイプＩＩＩのタイミング規制１１２は、このコンテクストから導き出すことができないが、ｃｒｅａｔｅ＿ｃｌｏｃｋ、又はｃｒｅａｔｅ＿ｇｅｎｅｒａｔｅｄ＿ｃｌｏｃｋなどの規制と競合しうる。典型的には、ＩＰブロックは、ＩＰブロックが動作することを意図する最大周波数に対応する期間を有する入力ピンから規定されたクロックの規制を有する。或るシステムでは、この入力ピンは、異なる周波数で規定されるクロックに接続することができる。最後に、タイプＩＶのタイミング規制は、階層的ソースポイントを有していない。これらの規制の例は、限定するものではないが、ｓｅｔ＿ｗｉｒｅ＿ｌｏａｄ＿ｍｏｄｅｌ又はｓｅｔ＿ｏｐｅｒａｔｉｎｇ＿ｃｏｎｄｉｔｉｏｎｓを含む。
【００１１】
最初の３つのタイプのタイミング規制は、ブロックのポート、インスタンスピン、又はネットに関して指定される特定の１つ以上のソースポイントを含む。４番目のタイプの規制は、特定のソースポイントを有していない。タイミング規制が目標レベルの境界に適用することができるか否かを決定するために、“被接続クラウド（ｃｏｎｎｅｃｔｅｄ  ｃｌｏｕｄ）”を規定する。被接続クラウドは、タイミング規制のソースポイントに直接接続する、ネット、ピン、及びポートを含む。被接続クラウドは、リーフセル（ライブラリ又はブラックボックス）のインスタンスピン、又はトップレベルのポートによる境界がある。被接続クラウドは、中間的階層レベルによる境界がない。
【００１２】
ここで、図２を参照するに、同図は、タイプＩのタイミング規制の実装例を示している。ブロックＬｏｗ２０４のポートＣ２０２は、タイプＩのタイミング規制のソースである。被接続クラウドは、Ｔｏｐレベル２０８のポートＡ２０６と、Ｍｉｄレベル２１２のポートＢ２１０と、Ｍｉｄレベル２１２のポートＥ２１４とを含んでいる。被接続クラウドは、Ｍｉｄレベル２１２のポートＤ２１６を含んでいない。これは、被接続クラウドが、バッファ２１８の入力端で停止するためである。以下、ブロックＬｏｗ２０４のために規定されたタイプＩのタイミング規制を対処するとともに、これらの低レベルのタイミング規制に基づいてブロックＭｉｄ２１２用のタイミング規制を作成する手順を説明する。 被接続クラウドのいずれかの部分が目標レベルの境界に存在している場合に、タイミング規制を伝播させる。被接続クラウドが境界に達しない場合、タイミング規制を廃棄して、上側レベルに通過させないようにする。例えば、Ｍｉｄレベル２１２が目標レベルであり、ｓｅｔ＿ｉｎｐｕｔ＿ｄｅｌａｙの規制（タイプＩ）がブロックＬｏｗ２０４のポートＣ２０２のために規定されている場合、ｓｅｔ＿ｉｎｐｕｔ＿ｄｅｌａｙの規制を、ブロックＭｉｄ２１２のポートＢ２１０用の次のレベルに伝播させる。ｓｅｔ＿ｏｕｔｐｕｔ＿ｄｅｌａｙの規制（タイプＩ）が、インスタンスＩ２（２２０）のピンＱのために規定されている場合、被接続クラウドがバッファ２２２で停止して境界に達しないので、この規制を廃棄する。
【００１３】
ここで、図３を参照するに、タイプＩＩのタイミング規制の実装例を示している。タイプＩＩのタイミング規制は、全て伝播させる。階層レベルは、必要に応じて追加する（又は、除去する）。低レベルのブロックのポートで規定されたタイプＩＩのタイミング規制は、目標レベルのためのインスタンスピンにおける規制とすることができる。故障経路（ｆａｌｓｅ  ｐａｔｈ）及びマルチサイクル経路（ｍｕｌｔｉ−ｃｙｃｌｅ  ｐａｔｈ）は、タイミング規制がどこで目標レベルに入るか、又は出るかを識別するために、ネットリスト（ｎｅｔｌｉｓｔ）によってトレースすることができる。このトレースは、組み合わせのロジックにて停止することはない。このトレースは、クロックされる要素、トップレベルのポート、又は同じ故障経路の別の部分に達するまで継続する。図３には、タイプＩＩの規制を伝播するための処理例をより完全に示している。例えば、規制がＭｉｄレベル３０２のために規定されおり、且つＴｏｐレベル３０４が目標レベルである場合、Ｍｉｄレベル３０２内のインスタンスピンＩ１／ＡからＩ２／Ｄまでの規定された故障経路３０６は、高レベルにおけるＩ３／Ｉ１／ＡからピンＩ３／Ｉ２／Ｄまでの故障経路になる。Ｍｉｄレベル３０２のインスタンスピンＩ１／ＢからポートＣまでの規定された故障経路３０８は、Ｉ３／Ｉ１／ＢからピンＩ３／Ｃまでの故障経路になる。タイプＩＩの規制がＴｏｐレベル３０４のために規定されており、且つＭｉｄレベル３０２が目標レベルである場合、インスタンスピンＩ３／Ｉ１／ＡからピンＩ３／Ｉ２／Ｄまでの規定された故障経路３０６は、ピンＩ１／ＡからＩ２／Ｄまでの故障経路になる。インスタンスピンＩ３／Ｉ１／ＢからピンＩ４／Ｅまでの規定された故障経路は、インスタンスピンＩ１／ＢからポートＣまでの故障経路３０８になる。
【００１４】
図４を参照するに、タイプＩＩＩの規制の伝播を示すフロー図を示している。調査（ｉｎｑｕｉｒｙ）ステップ４００で、タイプＩＩＩのクロックの規制を決定するとき、ステップ４０２で、ネットワークは、駆動するソースポイントが調査ステップ４０４で見つけられるまで、元のソースから全てのバッファ又はインバータ（即ち、非分岐の組み合わせのロジック）を経て後方トレースする。これは、トップレベルのポート、クロックされるリーフのインスタンス、又は組み合わせのインスタンスとなりうる。ステップ４０６で、ネットワークは、この新しいソースポイントから、全ての組み合わせのロジックを経て、制御に係る全てのクロックされるインスタンスまで前方トレースする。ステップ４０８で、この前方トレースは、組み合わせのロジックに適用される一定値の存在によって変更される。例えば、この組み合わせの要素が、マルチプレクサであり、且つ選択ラインに一定値がある場合に、この選択を従わせる。これらの一定値は、ネットリスト（例えば、Ｖｅｒｉｌｏｇの１’ｂ０からの一定値ゼロ）からか、又は他の規制（例えば、ｓｅｔ＿ｃａｓｅ＿ａｎａｌｙｓｉｓ）からの値となりうる。ネットワークはトレースされるので、ステップ４１０で、各々の来着したネットは、クロック又は一定値であるとしてマークされる。調査ステップ４００にて、一定の規制が規定されている旨を決定する場合、この規制は、ソースへの後方トレースを行わない。ステップ４０６にて、この規制は、組み合わせのロジックを経て前方トレースを行うのみである。
【００１５】
２つ以上のＩＰブロックからの規制を伝播させる場合、競合しうる。例えば、各ＩＰブロックは、自己のクロック規定を有することができるが、これらは全て、同じソースによって駆動される。各クロックの規定されたソースは、図５に示すような競合を解決するのに重要になる。 クロックの規定が、ステップ５０２で読み出されると、ステップ５０４で、この規定されたソースを、前にトレースしていたクロックと比較する。ステップ５０６で、規定されたソースが、トレースしていたソースに対応している場合、ステップ５０８にて、この新たに読み出したクロックが優位なものとしてみなし、このソースまで後方トレースした他のクロックを取り替える。この例は、クロック生成ブロックがある場合であり、このブロックから来るものとして規定されたクロックは、このクロックによって駆動される他のＩＰブロックにて規定されたクロックよりも優先するものとみなされる。規定されたソースが前にトレースしていたソースではないが、前のクロックがこのソースを経てトレースされていた場合、ステップ５１０にて、このクロックを廃棄する。このため、規制が読み出されたシーケンスが重要になる。これは、２つ以上のＩＰブロックの各々が、事実上同じクロックであることに関する自己の規定を有している場合である。
【００１６】
タイプＩＶのタイミング規制は、高レベルに適用するように変更する必要はない。同じ規制タイプに、異なる駆動条件などの多数の異なる値がある場合、最も制限的な規制を伝播させる。 仮想のクロック、即ち特定のソースなしで規定されたクロックを、常に伝播させる。
【００１７】
幾つかの設計ツールは、クロックに対して、非クロック入力端などを特定する或る規制を有するポートを必要とする。ポートが、規定された規制から伝播することによって見出される規制を有していない場合には、この特定の規制を発生させる。これにより、クロックされる要素まで、（出力から後方に、入力から前方に）トレースを行うようにする。これらの要素の最高周波数のクロックを用いて、この期間の割合として遅延の規制を作成することができる。
【００１８】
設計用のクロックは、外部的に生成して、パッドを介してチップに導くか、又は例えばＰＬＬで内部的に生成することができる。これらのクロック生成ソースのいずれか一方に供給されるタイミング規制は、他のＩＰブロックからトレースしたクロックの規制よりも優先させる必要がある。これは、ＩＰブロックで供給された規制が、現在の設計のインスタンス化に適用しないシナリオのためである。 例えば、メモリコントローラは、２５０ＭＨｚで動作させることができる場合でも、その設計は２２５ＭＨｚしか必要とされない。この状況は、競合を解決するときにクロックの規定されたソースを考慮に入れるタイプＩＩＩのタイミング規制のための手順でカバーされている。
【００１９】
本方法は、タイミング規定を個別のＩＰブロックに提供し、且つトップレベル又はチップレットレベルの規制を必要とする任意の階層的設計に用いることができる。このような設計は、ネクスペリア・ホーム（Ｎｅｘｐｅｒｉａ  Ｈｏｍｅ）又はネクスペリア・モバイル（Ｎｅｘｐｅｒｉａ  Ｍｏｂｉｌｅ）設計などのプラットホームベースの設計を含む。
【００２０】
上述した発明及び方法の多くの変形及び実施例が可能である。 本発明及び方法の或る実施例のみを、図面に示して、詳細に説明したが、本発明は、開示した実施例に制限されるものではなく、請求の範囲に記載され、且つ定義される本発明から逸脱することなく、追加の再構成、変更、及び代替が可能であることは明らかである。従って、本発明の範囲は、このような全ての構成を含み、請求の範囲にて唯一制限されることは明らかである。
【図面の簡単な説明】
【００２１】
【図１】設計操作システムのブロック図である。
【図２】タイプＩのタイミング規制の実装例である。
【図３】タイプＩＩのタイミング規制の実装例である。
【図４】タイプＩＩＩのタイミング規制の伝播を示すフロー図である。
【図５】タイプＩＩＩのタイミング規制の競合の解決を示すフロー図である。
【図１】
2009517764.tif 000003
【図２】
2009517764.tif 000004
【図３】
2009517764.tif 000005
【図４】
2009517764.tif 000006
【図５】
2009517764.tif 000007
【国際調査報告】
2009517764.tif 000008
2009517764.tif 000009
2009517764.tif 000010