(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6282285
(24)【登録日】2018年2月2日
(45)【発行日】2018年2月21日
(54)【発明の名称】ネットリストアブストラクション
(51)【国際特許分類】
G06F 17/50 20060101AFI20180208BHJP
【FI】
G06F17/50 654G
G06F17/50 658A
【請求項の数】20
【全頁数】14
(21)【出願番号】特願2015-550797(P2015-550797)
(86)(22)【出願日】2013年12月27日
(65)【公表番号】特表2016-507818(P2016-507818A)
(43)【公表日】2016年3月10日
(86)【国際出願番号】US2013077978
(87)【国際公開番号】WO2014106043
(87)【国際公開日】20140703
【審査請求日】2016年7月28日
(31)【優先権主張番号】61/747,969
(32)【優先日】2012年12月31日
(33)【優先権主張国】US
(31)【優先権主張番号】13/849,430
(32)【優先日】2013年3月22日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】597035274
【氏名又は名称】シノプシス, インコーポレイテッド
【氏名又は名称原語表記】SYN0PSYS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】チャン,ダグラス
(72)【発明者】
【氏名】ラシングカー,バルクリシュナ・アール
【審査官】
合田 幸裕
(56)【参考文献】
【文献】
特開2002−342396(JP,A)
【文献】
特開2011−192172(JP,A)
【文献】
特開2011−086189(JP,A)
【文献】
米国特許出願公開第2004/0111687(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/50
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
ネットリストアブストラクションを作成するための、コンピュータによって実行される方法であって、前記方法は、
回路設計のためのネットリストを受取ることを含み、前記回路設計における回路素子は論理階層(LH)に組織化され、さらに、
前記LHにおけるLHノードの組を受取ることと、
前記LHノードの組における各LHノードについて、前記LH内の前記LHノードより下方にある前記ネットリストの一部分をスターネットリストで置換することによって前記ネットリストアブストラクションを作成することとを含み、前記スターネットリストは、サテライトオブジェクトの組に電気的に接続される中心オブジェクトを含み、各サテライトオブジェクトは前記LHノードのポートに対応する、方法。
【請求項2】
前記ネットリストアブストラクション上で配置を行ない、配置されたネットリストアブストラクションを得ることをさらに含む、請求項1に記載の方法。
【請求項3】
前記配置されたネットリストアブストラクションをシードとして使用することによって、前記回路設計についてブロック形成を行うことをさらに含む、請求項2に記載の方法。
【請求項4】
前記配置されたネットリストアブストラクションをシードとして使用することによって、前記回路設計についてマクロ配置を行うことをさらに含む、請求項2に記載の方法。
【請求項5】
中心オブジェクトをサテライトオブジェクトに電気的に接続するネットは、サテライトオブジェクトを互いに電気的に接続するネットよりも大きなウェイトが割り当てられる、請求項1に記載の方法。
【請求項6】
各スターネットリストは、前記サテライトオブジェクトの組を互いに電気的に相互接続するネットを含む、請求項1に記載の方法。
【請求項7】
各スターネットリストにおける前記中心オブジェクトおよび前記サテライトオブジェクトの組の面積の和は、前記スターネットリストに対応する前記LHノードの面積と等しい、請求項1に記載の方法。
【請求項8】
各スターネットリストにおいて、前記中心オブジェクトの面積は各サテライトオブジェクトの面積よりも大きい、請求項7に記載の方法。
【請求項9】
コンピュータによって実行されるとネットリストアブストラクションを作成するための方法をコンピュータに行なわせる命令を格納する非一時的なコンピュータ読取り可能な記憶媒体であって、前記方法は、
回路設計のためのネットリストを受取ることを含み、前記回路設計における回路素子は論理階層(LH)に組織化され、さらに、
前記LHにおけるLHノードの組を受取ることと、
前記LHノードの組における各LHノードについて、前記LH内の前記LHノードより下方にある前記ネットリストの一部分をスターネットリストで置換することによって前記ネットリストアブストラクションを作成することとを含み、前記スターネットリストは、サテライトオブジェクトの組に電気的に接続される中心オブジェクトを含み、各サテライトオブジェクトは前記LHノードのポートに対応する、非一時的なコンピュータ読取り可能な記憶媒体。
【請求項10】
前記方法は、前記ネットリストアブストラクション上で配置を行ない、配置されたネットリストアブストラクションを得ることをさらに含む、請求項9に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項11】
前記方法は、前記配置されたネットリストアブストラクションをシードとして使用することによって、前記回路設計についてブロック形成を行うことをさらに含む、請求項10に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項12】
前記方法は、前記配置されたネットリストアブストラクションをシードとして使用することによって、前記回路設計についてマクロ配置を行うことをさらに含む、請求項10に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項13】
中心オブジェクトをサテライトオブジェクトに電気的に接続するネットは、サテライトオブジェクトを互いに電気的に接続するネットよりも大きなウェイトが割り当てられる、請求項9に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項14】
各スターネットリストは、前記サテライトオブジェクトの組を互いに電気的に相互接続するネットを含む、請求項9に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項15】
各スターネットリストにおける前記中心オブジェクトおよび前記サテライトオブジェクトの組の面積の和は、前記スターネットリストに対応する前記LHノードの面積と等しい、請求項9に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項16】
各スターネットリストにおいて、前記中心オブジェクトの面積は各サテライトオブジェクトの面積よりも大きい、請求項15に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項17】
システムであって、
プロセッサと、
プロセッサによって実行されると、ネットリストアブストラクションを作成するための方法を前記システムに行なわせる命令を格納する記憶媒体とを備え、前記方法は、
回路設計のためのネットリストを受取ることを含み、前記回路設計における回路素子は論理階層(LH)に組織化され、さらに、
前記LHにおけるLHノードの組を受取ることと、
前記LHノードの組における各LHノードについて、前記LH内の前記LHノードより下方にある前記ネットリストの一部分をスターネットリストで置換することによって前記ネットリストアブストラクションを作成することとを含み、前記スターネットリストは、サテライトオブジェクトの組に電気的に接続される中心オブジェクトを含み、各サテライトオブジェクトは前記LHノードのポートに対応する、システム。
【請求項18】
前記ネットリストアブストラクション上で配置を行ない、配置されたネットリストアブストラクションを得ることと、
前記配置されたネットリストアブストラクションをシードとして使用することによって、前記回路設計についてマクロ配置およびブロック形成を行うこととをさらに含む、請求項17に記載のシステム。
【請求項19】
中心オブジェクトをサテライトオブジェクトに電気的に接続するネットは、サテライトオブジェクトを互いに電気的に接続するネットよりも大きなウェイトが割り当てられる、請求項17に記載のシステム。
【請求項20】
各スターネットリストにおける前記中心オブジェクトおよび前記サテライトオブジェクトの組の面積の和は、前記スターネットリストに対応する前記LHノードの面積と等しい、請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
背景
技術分野
本開示は、電子設計自動化(EDA)に関する。より具体的には、本開示は、ネットリストアブストラクションを作成し、使用することに関する。
【背景技術】
【0002】
関連技術
プロセス技術の進歩および消費者電子機器に対する実質的に制限のない需要は、集積回路(IC)設計のサイズおよび複雑性の急速な増大に拍車を掛けている。IC設計についてマーケティングする時間が短縮されることから、EDAツールの性能は非常に重要である。フロアプランニングは、ICレイアウトにおける様々なオブジェクト(ブロック、モジュール、回路素子等)の位置を決定することを含むEDA設計フローにおける重要な段階である。フロアプランの品質は、最終的なICレイアウトの品質全体に大きく影響を与え得る。
【0003】
あいにく、IC設計のサイズおよび複雑性の急速な増大により、従来のフロアプランニングツールでは、フロアプランを生成するのに非常に長い時間がかかり、かつ/または低品質なフロアプランが生じ得る。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
本明細書に記載されるいくつかの実施形態は、ネットリストアブストラクションを作成するための方法およびシステムを提供する。さらに、ネットリストアブストラクションを用いて、性能と、フロアプランニング動作の結果の品質とを実質的に向上させることができる。
【0005】
具体的には、一実施形態は、回路設計のためのネットリストを受取ることができ、回路設計における回路素子は論理階層に組織化される。次に、実施形態は、論理階層において論理階層ノードの組を受取ることができる。実施形態は次いで、論理階層ノードの組における各論理階層ノードについて以下の動作を行なうことにより、ネットリストアブストラクションを作成することができる。論理階層ノードより下方にあるネットリストの一部分をスターネットリストで置換する。スターネットリストは、サテライトオブジェクトの組に電気的に接続される中心オブジェクトを含み、各サテライトオブジェクトは論理階層ノードのポートに対応する。
【0006】
いくつかの実施形態では、中心オブジェクトをサテライトオブジェクトに電気的に接続するネットは、サテライトオブジェクトを互いに電気的に接続するネットよりも大きなウェイトが割り当てられる。いくつかの実施形態では、各スターネットリストは、サテライトオブジェクトの組を互いに電気的に相互接続するネットを含む。いくつかの実施形態では、各スターネットリストにおける中心オブジェクトおよびサテライトオブジェクトの組の面積の和は、スターネットリストに対応する論理階層ノードの面積と実質的に等しい。いくつかの実施形態では、各スターネットリストにおいて、中心オブジェクトの面積は、スターネットリストにおける各サテライトオブジェクトの面積よりも大きい。
【0007】
ネットリストアブストラクションが作成されると、ネットリストアブストラクション上で配置を行い、配置されたネットリストアブストラクションを得ることができる。ネットリストアブストラクションのサイズを当初のネットリスト(つまり非抽象的なネットリスト)よりも実質的に小さくすることができるため、配置動作によって、配置されたネットリストアブストラクションをネットリストアブストラクションから迅速に作成することができる。次いで、配置されたネットリストアブストラクションを1つ以上のフロアプランニング動作のためのシードとして使用することができる。たとえば、実施形態は、配置されたネットリストアブストラクションをシードとして使用して、回路設計上でブロック形成および/またはマクロ配置を行なうことができる。このようにネットリストアブストラクションを作成し使用すると、フロアプランニング動作の結果の全体的な性能および品質を実質的に向上させることができる。
【図面の簡単な説明】
【0008】
【
図1】本明細書に記載されるいくつかの実施形態に係るフロアプランニング動作の性能を向上させるためにどのようにネットリストアブストラクションを使用することができるかを例示するフローチャートである。
【
図2】本明細書に記載されるいくつかの実施形態に係るネットリストアブストラクションを作成するためのプロセスを例示するフローチャートである。
【
図3】本明細書に記載されるいくつかの実施形態に係る回路設計の論理階層を例示する図である。
【
図4A】本明細書に記載されるいくつかの実施形態に係るネットリストの図である。
【
図4B】本明細書に記載されるいくつかの実施形態に従って、ネットリストからどのようにネットリストアブストラクションを作成することができるかを例示する図である。
【
図4C】本明細書に記載されるいくつかの実施形態に従って、スターネットリストにおけるサテライトオブジェクトの組を互いに電気的に相互接続するネットを例示する図である。
【
図5A】本明細書に記載されるいくつかの実施形態に従って、ネットリストアブストラクションをどのように配置およびブロック形成に使用することができるかを例示する図である。
【
図5B】本明細書に記載されるいくつかの実施形態に従って、ネットリストアブストラクションをどのように配置およびブロック形成に使用することができるかを例示する図である。
【
図5C】本明細書に記載されるいくつかの実施形態に従って、ネットリストアブストラクションをどのように配置およびブロック形成に使用することができるかを例示する図である。
【
図6】本開示において記載されるいくつかの実施形態に係るコンピュータシステムを例示する図である。
【発明を実施するための形態】
【0009】
詳細な説明
以下の説明は、当業者が本発明を為しかつ使用することが可能となるように提示され、また、特定の用途およびその要件に関連して設けられる。開示される実施形態のさまざまな変更は、当業者に容易に明らかであり、本明細書に規定される一般的な原則は、本発明の要旨および範囲から逸脱することなく他の実施形態および用途に適用されてもよい。したがって、本明細書に開示される1つ以上の発明は、示される実施形態に限定されず、本明細書に開示される原則および特徴と一致した最も広い範囲が付与されるべきである。
【0010】
EDAフローの概略
回路設計を生成するために、EDAフローが使用可能である。一旦回路設計が完成されると、製作、パッケージング、および組立が行なわれて、集積回路チップを製造することができる。EDAフローは複数のステップを含むことができ、各ステップは、1つ以上のEDAソフトウェアツールの使用を含むことができる。一部のEDAステップおよびソフトウェアツールを以下に説明する。これらのEDAステップおよびソフトウェアツールの例は、例示目的に過ぎず、実施形態を開示される形態に限定することを意図するものではない。
【0011】
一部のEDAソフトウェアツールにより、回路設計者は、実施されたい機能性を表わすことができる。さらに、これらのツールにより、回路設計者は、もしもの場合のプラニングを行なって、機能性を改良する、コストを確認するなどを行なうことができる。論理設計および機能検証中には、たとえば、System VerilogなどのHDL(ハードウェア記述言語)コードが書込まれ、設計の機能精度を確認することができ、たとえば、設計が正確な出力を生成することが確実であることを確認することができる。
【0012】
試験用の合成および設計中には、HDLコードは、1つ以上のEDAソフトウェアツールを用いてネットリストに翻訳されることができる。ネットリストは、目標の技術のために最適化されることができ、試験は、完成されたチップを確認するために設計され、実施されることができる。ネットリスト検証中には、ネットリストをタイミング制約の順守およびHDLコードとの対応について確認することができる。
【0013】
設計プラニング中には、チップ用のフロアプラン全体を構築し、これをタイミングおよびトップレベル配線について分析することができる。物理的実施中には、回路要素は、レイアウトに位置付けられることができ、電気的に結合されることができる。
【0014】
分析および抽出中には、回路の機能性をトランジスタレベルで検証することができ、寄生要素を抽出することができる。物理的検証中には、設計の製造、電気的事項、リソグラフィ事項、および回路系についての正確さが確保されることを確認することができる。
【0015】
解像度向上中には、レイアウト上で幾何学的操作を行ない、設計の製造しやすさを改善することができる。マスクデータの作成中には、設計は、製造中に使用されるマスクを生成するように完成されることができる。
【0016】
ネットリストアブストラクション
回路アブストラクションは、回路設計の詳細のすべてを含むとは限らない回路設計の表現である。本明細書に記載されるいくつかの実施形態は、フロアプランニング動作の性能を実質的に向上させる回路アブストラクションを作成する。
【0017】
図1は、本明細書に記載されるいくつかの実施形態に係るフロアプランニング動作の性能を向上させるためにどのようにネットリストアブストラクションを使用することができるかを例示するフローチャートを示す。ネットリスト102は、回路設計の異なる回路素子がどのように互いに電気的に接続されるかを記述する。ネットリストは、1組のインスタンスおよび1組のネットを有するものとして考察することができる。各インスタンスは1本以上のピンを含むことができ、各ネットは、ネットリスト中の2本以上のピンを電気的に接続することができる。インスタンスは、いずれかのアブストラクションレベルで回路エンティティを表すことができる。たとえば、インスタンスは、電気部品(たとえばトランジスタ、レジスタ等)、ゲート(たとえば「AND」ゲート、「OR」ゲート等)、モジュール(たとえば加算器、メモリブロック等)、またはいずれかの他のアブストラクションレベルにおけるいずれかの他の回路エンティティであり得る。
【0018】
ネットリストアブストラクション106は、ネットリスト102に基づいて作成することができる(動作104)。具体的には、ネットリストアブストラクション106はネットリスト102に関連付けられた論理階層に基づいて作成することができる。次に、ネットリストアブストラクション106上で配置を行ない(動作108)、配置されたネットリストアブストラクション110を得ることができる。配置動作中、ネットリストアブストラクション106内の配置可能なオブジェクトは、回路設計フロアプランにおける位置が割り当てられる。なお、ネットリストアブストラクション106はネットリスト102よりもサイズを著しく小さくすることができる。したがって、フロアプランニング動作(たとえば配置)は、ネットリスト102上でよりもネットリストアブストラクション106上での方が著しく速く行なうことができる。
【0019】
次いで、配置されたネットリストアブストラクション110をシードとして使用することによって、ブロック形成および/またはマクロ配置を回路設計(たとえばネットリスト102)上で行なうことができる(動作112)。たとえば、配置されたネットリストアブストラクション110に基づいて回路素子をネットリスト102に配置することによって、ブロック形成および/またはマクロ配置のための初期解を迅速に生成することができる。次に、初期解をさらに最適化して、配置され形成された回路設計114を生成することができる。ネットリストアブストラクション106をこのように作成し使用することで、ネットリスト102上で行なわれるフロアプランニング動作の結果の全体的な性能および品質を実質的に向上させることができる。
【0020】
図2は、本明細書に記載されるいくつかの実施形態に係るネットリストアブストラクションを作成するためのプロセスを例示するフローチャートを表す。当該プロセスは、回路設計のためのネットリストを受取ることで開始することができ、回路設計における回路素子が論理階層に組織化される(動作202)。次に、当該プロセスは、論理階層における論理階層ノードの組を受取ることができる(動作204)。
【0021】
たとえばユーザは、たとえばグラフィカルユーザインターフェースを用いて回路ブロックを選択すること、論理階層ノード識別子のリストをファイルで提供することなどによって、論理階層ノードの組をネットリストアブストラクションツールに提供してもよい。代替的に、ネットリストアブストラクションツールは、たとえば面積しきい値(たとえばツールは、その面積が面積しきい値よりも大きい最も低い論理階層ノードを自動的に選択してもよい)、セル数しきい値(たとえばツールは、そのセル数がセル数しきい値よりも大きい最も低い論理階層ノードを自動的に選択してもよい)、マクロ数しきい値(たとえばツールは、そのマクロ数がマクロ数しきい値よりも大きい最も低い論理階層ノードを自動的に選択してもよい)等に基づいて、自動的に(つまりユーザ入力なしに)論理階層ノードの組を選択してもよい。
【0022】
プロセスは次いで、論理階層ノードの組における各論理階層ノードについて、論理階層ノードより低いネットリストの部分をスターネットリストで置換することによって、ネットリストアブストラクションを作成することができる。スターネットリストは、サテライトオブジェクトの組に電気的に接続される中心オブジェクトを含み、各サテライトオブジェクトは、論理階層ノードのポートに対応する(動作206)。
【0023】
図3は、本明細書に記載されるいくつかの実施形態に係る回路設計の論理階層を例示する。論理階層300は、論理階層ノード302〜314を含む。論理階層ノード302は、回路設計全体、または回路設計内の物理ブロック(たとえばメモリブロック、プロセッサブロック等)のいずれかに対応することができる最上位レベルノードであり得る。論理階層ノード304〜312は論理階層300における中間ノードに対応することができ、論理階層ノード314は論理階層300におけるリーフノードに対応することができる。論理階層300における中間レベルノードは、回路設計内の中間レベルエンティティ(たとえばマルチプレクサ、加算器、レジスタバンク等)に対応することができる。具体的には、中間レベルノードは、回路設計を記述するHDL(たとえばSystemVerilog)ファイルにおけるモジュールに対応することができる。リーフノード、たとえば論理階層ノード314は、回路設計の基本コンポーネント(たとえばインバータ)に対応することができる。
【0024】
論理階層ノード304〜312下の陰影を付けた領域は、それらの論理階層ノードの各々内にある回路設計ネットリストの部分に対応する。たとえば、陰影を付けた領域316は、論理階層ノード304より下方にある回路設計ネットリストの部分に対応する。陰影を付けた領域316内のノードは、論理階層ノード304についての回路系の一部であるエンティティに対応する。たとえば、論理階層ノード304が加算器モジュールに対応する場合、陰影を付けた領域316は加算器モジュールのためのネットリストに対応することができ、陰影を付けた領域316内にある論理階層ノード314は、加算器モジュールネットリスト中の回路素子(たとえばインバータ)に対応することができる。論理階層300における陰影を付けていない領域は、論理階層ノード304〜312内にないネットリストの部分に対応する。たとえば、陰影を付けていない領域318は、階層ノード304における第1の回路素子を階層ノード306における第2の回路素子に電気的に相互接続する回路系を含むことができる。
【0025】
図4Aは、本明細書に記載されるいくつかの実施形態に係るネットリストの図を例示する。
図4Aに示される楕円形は、論理階層ノード402〜406に対応するネットリストの部分を表す。
図4A中の各楕円形は、楕円形の境界上に1つ以上の黒い正方形を含む。これらの正方形の各々は、論理階層ノードのポートを表す。ポートは、論理階層ノード内にない回路素子から信号を受取るかまたは、論理階層ノード内にない回路素子に信号を供給するために使用することができる。ポートで受取ることができるかまたはポートによって供給されることができる信号の例は、クロック、データ、およびアドレス信号を含むが、これらに限定されない。なお、論理階層ノードのポートは、論理階層における論理階層ノードより下方にある回路素子の入力ピンまたは出力ピンに対応することができる。
【0026】
論理階層ノードのポートは、他の論理階層ノードのポートに、および/または回路設計の他の回路素子に、電気的に接続されることができる。たとえば、論理階層ノード402のポート408は、論理階層ノード404のポート418に電気的に接続されることができる。同様に、ネット410を用いて、論理階層ノード402、404および406のポート412、414および416をそれぞれ電気的に接続することができる。ポート420は、
図4Aに示される論理階層ノードにない1つ以上の回路素子に電気的に接続されてもよい。
【0027】
図4Bは、本明細書に記載されるいくつかの実施形態に係るネットリストからどのようにネットリストアブストラクションを作成することができるかを例示する。回路設計ネットリストに1組の論理階層ノードがあるとすると、階層ノードの組における各論理階層ノードについて以下の動作を行なうことによって、ネットリストアブストラクションを作成することができる。(1)論理階層ノードについてスターネットリストを作成する。各スターネットリストは、1つ以上のサテライトオブジェクトに電気的に接続される中心オブジェクトを含み、各サテライトオブジェクトは、論理階層ノードにおけるポートに対応する。(2)論理階層ノードより下方のネットリストの部分をスターネットリストで置換する。なお、スターネットリストは、スターネットリストが置換するネットリストの部分よりもサイズを実質的に小さくすることができる。
【0028】
図4Bに示されるネットリストアブストラクションは、
図4Aに示されるネットリストに対応する。スターネットリスト472、474および476は、論理階層ノード402、404および406にそれぞれ対応する。各スターネットリストは、1つ以上のサテライトオブジェクト(
図4Bでは陰影を付けていない正方形として示される)に電気的に接続される中心オブジェクト(
図4Bでは陰影を付けた正方形として示される)を含む。たとえば、中心オブジェクト452は、サテライトオブジェクト458、466および5つの他のサテライトオブジェクトに電気的に接続される。当初のネットリストは、論理階層ノード402は数千個または数百万個の回路素子を含んでいた場合がある。なお、
図4Bに示されるネットリストアブストラクションでは、論理階層ノード402における(数千個または数百万であり得る)回路素子が(8個のオブジェクトのみを含む)スターネットリスト472と置換されている。
【0029】
当初のネットリストにおいて論理階層ノードのポートと他のポートまたは回路素子との間に存在していた電気接続をネットリストアブストラクションにおいて維持することができる。たとえば、
図4Aに示される当初のネットリストにおいて、ポート408とポート418との間に電気接続が存在していた。この電気接続は、(ポート408に対応する)サテライトオブジェクト458が(ポート418に対応する)サテライトオブジェクト468に電気的に接続されるように、
図4Bに示されるネットリストアブストラクションにおいて維持される。
【0030】
いくつかの実施形態では、配置中に配置エンジンが中心オブジェクトとサテライトオブジェクトとを互いに近接して保持するように、中心オブジェクトとサテライトオブジェクトとの間の電気接続に十分高いウェイトを割り当てることができる。たとえば、サテライトオブジェクト458と468との間の電気接続のウェイトよりも大きいウェイトを、中心オブジェクト452とサテライトオブジェクト458との間の電気接続に割当てることができる(なお、サテライトオブジェクト458と468との間の電気接続のウェイトは、当初のネットリストにおいて存在していたウェイトと同じであり得る)。
【0031】
配置エンジンは、典型的に費用関数を用いて、回路素子の配置を最適化する。通常、費用関数におけるコンポーネントの1つは、電気接続長さの加重和(たとえばネットの配線長の加重和)である。したがって、中心オブジェクトとサテライトオブジェクトとの間の電気接続により大きなウェイトが割り当てられた場合、配置エンジンは、それらのオブジェクトを互いに接近して保持しようとすることになる。なぜなら、そうすることが費用関数を最小化するのに役立つことになるからである。
【0032】
本明細書に記載されるいくつかの実施形態では、スターネットリストにおけるサテライトオブジェクトを互いに電気的に相互接続するネットリストアブストラクションにネットを追加することができる。そのようなネットを追加することで、配置エンジンが配置中に中心オブジェクトとサテライトオブジェクトとを互いに近くに保持することを確実にすることができる。
図4Cは、本明細書に記載されるいくつかの実施形態に従って、スターネットリストにおけるサテライトオブジェクトの組を互いに電気的に相互接続するネットを例示する。
図4Cに示されるように、ネット470をスターネットリスト472に追加して、配置エンジンが配置中に中心オブジェクト452とサテライトオブジェクト(たとえばサテライトオブジェクト458および466)とを互いに近くに保持することを確実にすることができる。なお、ネット470(
図4Cでは点線で示される)はサテライトオブジェクトのすべてを互いに電気的に相互接続する。
【0033】
本明細書に記載されるいくつかの実施形態では、各スターネットリストにおける中心オブジェクトおよびサテライトオブジェクトの面積の和は、スターネットリストに対応する論理階層ノードの面積と実質的に等しい。配置エンジンがスターネットリストを配置する(つまり、スターネットリストにおいて中心オブジェクトおよびサテライトオブジェクトを配置する)と、スターネットリストによって包含される総面積は、スターネットリストが表す回路系の総面積に対応するはずである。そうでなければ、配置エンジンがネットリストアブストラクション上で配置を行なった時に、配置エンジンが有意味の出力を生成しない場合がある。
【0034】
本明細書に記載されるいくつかの実施形態では、中心オブジェクトの面積は、各スターネットリストにおける各サテライトオブジェクトの面積よりも大きい。このように中心オブジェクトおよびサテライトオブジェクトに面積値を割当てることで、グラフィカルユーザインターフェース上でスターネットリストを視覚化することをより容易にすることができる。
【0035】
本明細書に記載されるいくつかの実施形態では、中心オブジェクトおよびサテライトオブジェクトは、フロアプランニングツールにとって「通常の」配置可能なオブジェクトとして出現する。換言すると、フロアプランニングツールは、ネットリストアブストラクションを単にいずれかの他の「通常の」ネットリストのように扱う場合があり、ネットリストアブストラクションを取扱うためにフロアプランニングツールに対する変更が必要とされない場合がある。
【0036】
本明細書に記載されるネットリストアブストラクション装置およびプロセスは、フロアプランの最上位レベルにおける、またはフロアプランにおける物理ブロック内での配置およびブロック形成中に使用することができる。いくつかの実施形態では、本明細書に記載されるネットリストアブストラクション装置およびプロセスは再帰的に使用することができる。たとえば、ネットリストアブストラクション装置およびプロセスは、フロアプランの最上位レベルにおける配置およびブロック形成中に使用することができる。次に、結果として生じる最上位レベルフロアプランの各ブロック内において、本明細書に記載されるネットリストアブストラクション装置およびプロセスを使用することによって配置およびブロック形成を行なうことができる。このプロセスは次いで、各ブロック内の各サブブロックなどについて繰り返すことができる。いくつかの実施形態では、本明細書に記載されるネットリストアブストラクション装置およびプロセスを用いて、複数レベルにおいて同時にネットリストアブストラクションを作成することができる、つまり、最上位レベル、ブロックレベル、サブブロックレベル等において同時にネットリストアブストラクションを作成することができる。作成されると、複数レベルのネットリストアブストラクションを用いて、複数レベルにおける配置およびブロック形成を同時に行なうことができる。
【0037】
図5A〜
図5Cは、本明細書に記載されるいくつかの実施形態に係る配置およびブロック形成のためにネットリストアブストラクションをどのように使用することができるかを例示する。
図5Aは、論理階層ノード502〜506、マクロセル508〜510および複数のI/Oセル(たとえばI/Oセル580)を含む回路設計のネットリスト500を例示する。
図5Bは、ネットリスト500に対応する、配置されたネットリストアブストラクション530を例示する。配置されたネットリストアブストラクション530は、ネットリスト500に基づいてネットリストアブストラクションが作成され、ネットリストアブストラクション上で配置が行なわれた後で得られる。配置されたネットリストアブストラクション530の中心オブジェクト532、534および536は、ネットリスト500の論理階層ノード502、504および506にそれぞれ対応するスターネットリストの一部である。次いで、配置されたネットリストアブストラクション530をネットリスト500上でブロック形成を行なうためのシードとして使用することができる。フロアプラン560は、配置されたネットリストアブストラクション530をシードとして使用することによってネットリスト500上でブロック形成を行なった結果を例示するブロック562、564および566を含む。
【0038】
コンピュータシステム
図6は、本開示に記載される一部の実施形態に従ったコンピュータシステムを示す。コンピュータシステム602は、プロセッサ604、メモリ606、および記憶装置608を含むことができる。コンピュータシステム602は、表示装置614、キーボード610、およびポインティングデバイス612に結合されることができる。記憶装置608は、オペレーティングシステム616、アプリケーション618、およびデータ620を格納することができる。データ620は、アプリケーション618によって必要とされる入力および/またはアプリケーション618によって生成される出力を含むことができる。
【0039】
コンピュータシステム602は、本開示に暗示的または明示的に記載される1つ以上のプロセスを自動的に(またはユーザの介入により)行なってもよい。たとえば、コンピュータシステム602は、アプリケーション618をメモリ606にロードすることができ、アプリケーション618は、ネットリストアブストラクションを作成し、かつネットリストアブストラクションをシードとして使用する1つ以上のフロアプランニング動作を行なうことができ、それによって性能を実質的に向上させる。
【0040】
結論
上記の説明は、当業者が本実施形態を為しかつ使用することが可能となるように提示される。開示された実施形態のさまざまな改良が当業者に容易に明らかとなり、本明細書に規定された一般的な原則は、本開示の要旨および範囲から逸脱することなく他の実施形態および用途に適用可能である。したがって、本発明は、示された実施形態に限定されず、本明細書に開示された原則および特徴と一致した最も広い範囲が付与されるべきである。
【0041】
本開示に記載されたデータ構造およびコードは、コンピュータ読取可能記憶媒体および/またはハードウェアモジュールおよび/またはハードウェア装置に一部または完全に格納されることができる。コンピュータ読取可能記憶媒体としては、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(デジタル汎用ディスクまたはデジタルビデオディスク)などの磁気および光学記憶装置、または、コードおよび/もしくはデータを格納することの可能な、現在知られているもしくは後に開発される他の媒体が含まれるが、これらに限定されない。本開示に記載されるハードウェアモジュールまたは装置としては、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、専用もしくは共有プロセッサ、および/または、現在知られているもしくは後に開発される他のハードウェアモジュールもしくは装置が含まれるが、これらに限定されない。
【0042】
本開示に記載される方法およびプロセスは、コンピュータシステムがコードおよび/またはデータを読出し、実行すると、コンピュータシステムが関連の方法およびプロセスを実施するように、コンピュータ読取可能記憶媒体または装置に格納されたコードおよび/またはデータとして一部または完全に具現化されることができる。さらに、方法およびプロセスは、ハードウェアモジュールまたは装置が作動されると、関連の方法およびプロセスを実施するように、ハードウェアモジュールまたは装置において一部または完全に具現化されることもできる。なお、方法およびプロセスは、コード、データ、およびハードウェアモジュールまたは装置の組合せを用いて具現化されることができる。
【0043】
本発明の実施形態の上記の説明は、例示および説明の目的のためだけに提示される。これらは網羅的であることまたは本発明を開示された形態に限定することを意図するものではない。したがって、多くの改良および変形が当業者に明らかとなるであろう。さらに、上記の開示は本発明を限定することを意図するものではない。本発明の範囲は、添付の請求項によって規定される。