"カスタム集積回路を自動的に合成する方法であって、a.コンピュータ可読コードおよび前記カスタム集積回路に対する1つまたは複数の制約を含む前記カスタム集積回路の仕様を受け取り、b.前記コンピュータ可読コードに対して固有のカスタマイズがなされたチップ仕様の物理合成のための新しい制約を生成し、かつ渡すべく、データモデル内においてアーキテクチャレベルの知識をエンコーディングし、c.詳細な物理合成が実行された後のフロー内においてより遅くに観察されるコストと一貫したルックアヘッドコスト関数をアーキテクチャ最適化の間に受け取り、前記ルックアヘッドコスト関数は、前記データモデルを通じた以前の反復から生成されて、かつその後に続く反復に供給され、d.1つの最適化ポイントにおいて利用可能な情報を、前記データモデルを使用する前記設計フロー内の異なる場所で呼び出される別の最適化ポイントのための制約に自動的に翻訳し、e.半導体デバイス製造のために、前記チップ仕様のコンピュータ可読記述を前記カスタム集積回路内に合成する、方法。フロー内OE最適化エンジン間側波帯通信チャンネルを作成する、請求項1に記載の方法。階層内のセルのグループ化がハード制約またはソフト制約であるか否かを示すプレフィクスおよびポストフィクスタグを適用する請求項1に記載の方法。前記アーキテクチャレベルの知識からのクリティカルパスを示すべく、特定のプレフィクス/ポストフィクスを用いて名前をストアする、請求項1に記載の方法。マクロブロック名、階層名、プラグマ、コメント、ダミーモジュール、およびラッパーモジュールのうちの1つを用いて最適タイミングのための配置の制約を示す請求項1に記載の方法。最適化候補のサーチの間にコスト関数の評価の一部として真のクリティカルパスを検出するべくルックアヘッドを実行する請求項1に記載の方法。前記制約は、レジスタトランスファ言語RTLの制約、フロアプランの制約、物理的な制約、タイミングの制約、電力の制約、システムレベルの制約のうちの1つを含む、請求項1に記載の方法。ネットリストのネーミングプロトコルを通じて前記データモデルに制約情報を提供する、請求項1に記載の方法。前記コンピュータ可読コードの静的プロファイリングまたは動的プロファイリングを行なう、請求項1に記載の方法。前記コンピュータ可読コードの静的プロファイリングまたは動的プロファイリングが、コストモデリングをはじめ物理設計最適化のためのリソース制約に変換される、請求項1に記載の方法。前記コンピュータ可読コードを走らせる前記カスタム集積回路のためのファームウエアまたはソフトウエア開発キットSDKを自動的に生成する、請求項1に記載の方法。前記コンピュータ可読コードに基づいてアーキテクチャを選択する、請求項1に記載の方法。前記コンピュータ可読コードの静的および動的プロファイリングに基づいて前記アーキテクチャを最適化する、請求項1に記載の方法。前記コンピュータ可読コードをアッセンブリコードにコンパイルする、請求項1に記載の方法。前記アッセンブリコードをリンクして前記選択されたアーキテクチャのためのファームウエアを生成する、請求項12に記載の方法。前記ファームウエアのサイクル精度のシミュレーションを実行する、請求項12に記載の方法。前記ファームウエアの動的プロファイリングを実行する、請求項12に記載の方法。プロファイリングが行なわれたファームウエアに基づいて前記アーキテクチャを最適化する、請求項15に記載の方法。前記アッセンブリコードに基づいて前記アーキテクチャを最適化する、請求項12に記載の方法。前記選択されたアーキテクチャのためのレジスタトランスファレベルRTLコードを生成し、前記RTLコードを合成する、請求項1に記載の方法。カスタム集積回路を自動的に合成するシステムおよび方法が開示されており、当該自動的な合成は、コンピュータ可読コードおよびカスタム集積回路に対する1つまたは複数の制約を含むカスタム集積回路の仕様を受け取り、コンピュータ可読コードに対して固有のカスタマイズがなされたチップ仕様の物理合成のための新しい制約を生成し、かつ渡すべく、データモデル内においてアーキテクチャレベルの知識をエンコーディングし、詳細な物理合成が実行された後のフロー内においてより遅くに観察されるコストと一貫したルックアヘッドコスト関数をアーキテクチャ最適化の間に受け取り、前記ルックアヘッドコスト関数は、データモデルを通じた以前の反復から生成されて、かつその後に続く反復に供給され、1つの最適化ポイントにおいて利用可能な情報を、データモデルを使用する設計フロー内の異なる場所で呼び出される別の最適化ポイントのための制約に自動的に翻訳し、半導体デバイス製造のために、チップ仕様のコンピュータ可読記述をカスタム集積回路内に合成する、ことによって行なわれる。上記の態様の実装には、次に示す内容のうちの1つまたは複数を含めることができる。システムは、階層内のセルのグループ化がハード制約またはソフト制約であるか否かを示すプレフィクスおよびポストフィクスタグを適用することが可能である。アーキテクチャレベルの知識からのクリティカルパスを示すべく、特定のプレフィクス/ポストフィクスを用いて名前をストアすることが可能である。システムは、マクロブロック名、階層名、プラグマ、コメント、ダミーモジュール、およびラッパーモジュールのうちの1つを用いて最適タイミングのための配置の制約を示すことが可能である。システムは、以前の繰り返しの中で取り込んだか、またはユーザによって供給された情報を使用してクリティカルパスを検出するべく、ルックアヘッドを実行することが可能である。制約は、レジスタトランスファ言語RTLの制約、フロアプランの制約、物理的な制約、タイミングの制約、電力の制約、システムレベルの制約のうちの1つであるとすることが可能である。制約情報は、とりわけネットリストのネーミングプロトコルを通じてデータモデルに提供することが可能である。システムの好ましい実施態様の利点には、次に示す内容のうちの1つまたは複数を含めることができる。システムは、端から端までのフローにわたって多様なツールをリンクする新しい通信媒体およびプロトコルを可能にする。その種の媒体は、ツール間ではあるがフロー内となる通信がより容易に生じることを可能にする。システムはまた、アーキテクチャ最適化において使用される物理設計のコスト関数推定と物理合成フローのテープアウトバージョンの間におけるより近い忠実度を可能にする。総合的に言えば、このシステムは、より詳細な設計段階に向かう設計プロセスの進捗に従ってチップ設計における全体的な変更の頻度およびサイズを細らせることを試みる。このフレームワークは、より高い品質の設計の収束につながるフローレベルの最適化の挙動の変換を可能にする。フレームワークは、標準EDAテクノロジのリエンジニアリングを必要とすることなくそれを行ない、したがって標準EDAツールベースの設計環境内における実装が可能である。システムは、もっとも詳細なレベルの設計活動であるところの物理合成を自動化する。初期の設計段階においては、実在のクリティカルパスが、解決可能なクリティカルパスによってマスクされる。システムは、いずれのクリティカルパスについて最適化を行なうかを自動的に決定し、かつ実在のクリティカルパスを自動的に明らかにする。システムは、非階層的設計方法および階層的方法を使用して単一のランの中で完全な回路を分析する。この包括的アプローチは、設計者およびツールが同時に同一の回路の側面に、伝統的に可能であったより多くの焦点を当てることから設計の収束をもたらす。このシステムは、チップ設計の問題を緩和し、それを単純なプロセスにする。これらの実施態様は、プロダクト開発プロセスの焦点を、ハードウエア実装プロセスからプロダクト仕様およびコンピュータ可読コードまたはアルゴリズム設計に戻すようにシフトさせる。特定のハードウエアを選択することに束縛される代わりに、コンピュータ可読コードまたはアルゴリズムが、それの適用のために特に最適化されたプロセッサ上において実装されることが可能となる。好ましい実施態様は、最適化されたプロセッサを自動的に、すべての関連付けされたソフトウエアツールおよびファームウエアアプリケーションとともに生成する。このプロセスは、これまで数年の問題として対処されていた事項を、数日の問題として対処することを可能とする。このシステムは、ハードウエアチップソリューションが設計される方法におけるパラダイムを完全にシフトするものである。このシステムは、チップ設計の知識をまったく伴うことなく、アルゴリズム設計者自身が直接ハードウエアチップを作ることが可能となるように、リスクを取り除き、チップ設計を自動的なプロセスにする。システムへの一次的な入力は、CまたはMatlabマトラボ等のより高レベルの言語で記述されたコンピュータ可読コードまたはアルゴリズム仕様となる。このシステムを使用する多くの利益のうちのいくつかには、次のようなものを含めることができる。1スケジュール:チップ設計サイクルが数年単位ではなく数週単位に落ち着くことになる場合には、このシステムを使用している会社が、自社の製品をすばやく市場に持ち込むことによって急速に変化する市場に浸透することが可能になる。2コスト:一般にチップの実装に必要とされる多数の技術者が不要となる。このことは、このシステムを使用している会社に夥しいコストの節約をもたらす。3最適性:このシステムプロダクトを使用して設計されたチップは、優れたパフォーマンス、面積、および電力消費を有している。このシステムは、デジタルチップ構成要素に向けた、それを有するシステムの設計で使用される方法におけるパラダイムを完全にシフトするものである。このシステムは、C/MATLABマトラボで記述されたアルゴリズムからデジタルハードウエアを生成する完全に自動化されたソフトウエアプロダクトである。このシステムは、CまたはMATLABマトラボ等の高水準言語を採用してハードウエアチップを実現するプロセスへの独特のアプローチを使用する。要約して言えば、これは、チップ設計を完全に自動化されたソフトウエアプロセスにする。ここで図2を参照するが、統合されたデータモデルIDM270を伴う例示的なフレームワークが本発明の1つの態様に従って使用されている。図2においては、アーキテクチャ/マイクロアーキテクチャ設計最適化エンジン200がアーキテクチャ最適化AOアダプタ230と通信する。それに加えて、インストラクションスケジューラ210がインストラクションスケジューラアダプタ240と通信することができる。同様に、物理設計最適化エンジン220が物理設計アダプタ250と通信する。アダプタ230、240、および250は、側波帯通信チャンネル260を通じて通信し、それはまた統合されたデータモデル270と通信する。側波帯通信チャンネル260は、多様な最適化フローがコンテキスト情報を通信媒体に渡すことを可能にし、そこでその種の情報は、持続的ではあるが受動的にフロー全体を通じて維持される。EDAツールベースのSoC設計フローコンテキストにおいては、チャンネル260が、既存の標準フォーマット設計の付帯事項を侵さず、且つ軽微な拡張を利用して実装される。たとえば、統合されたデータモデル270によってネットリストファイル内に次に示すアーティファクトを埋め込むことが可能である:すなわちaダミー階層、bオブジェクト名のプレフィクスおよびポストフィクスタグ、およびダミーセルである。別の例においては、統合されたデータモデル270が、電気的に接続されていないオブジェクトに仮想パスエレメントとしてパスを埋め込むことを含めて、静的タイミングレポート内に異なるアーティファクトを挿入することができる。最適化エンジン200、210、および220は、アダプタ230、240、および250を通じてチャンネル260と通信する。アダプタは、一般に前処理または後処理スクリプトであり、ネットリストまたは特定の標準設計の付帯事項、たとえば側波帯通信プロトコル、を使用してSTAパス-ファイル等を修正することが可能である。これらのスクリプトは、そのほかの任意のツールフロースクリプトと同様に記述され、かつ使用され、したがってこれらのアダプタの作成および/または使用のためのテクノロジ依存はまったく存在しない。統合されたデータモデル270は、また、この側波帯チャンネル260と通信する組み込みアダプタも有している。このフレームワークは、より高い品質の設計の収束につながるフローレベルの最適化の挙動の変換を可能にする。フレームワークは、標準EDAテクノロジのリエンジニアリングを必要とすることなくその変換を行ない、したがって標準EDAツールベースの設計環境内における実装が可能である。次に図3を参照すると、コスト関数モデリングのためのシステムが示されている。IDMフレームワークの1つの側面は、それが拡張性の高いコスト関数モデリング機能を有することである。完全に入念に練られたネットリスト300が、多様な動的インストラクショントレース310とともにベースラインとしてIDMに提供される。その後AO320がこのIDMを最適化ループの間におけるホヮット-イフ分析のために使用することができる。ターンアラウンド時間を伝統的な物理合成ベースのQoR分析より低く維持するために、IDM270は、インテリジェント階層管理を使用して動的に抽象化された物理合成340の設計モデルを作成する。コスト関数モデルが、ホヮット-イフコンテキストに対してのみ敏感のままとどまることを確保するために、システムは、TrueCostトゥルーコスト分析エンジン350を含む。伝統的な物理合成ベースのQoRは、ホヮット-イフコンテキストに対してのみ敏感な応答をもたらさないことがある。コスト関数モデリングは、内部カスタムグラフ-ベースのデータ構造表現に読み込まれた、ベースラインが詳細に述べられたネットリスト300を伴って開始する。動的インストラクショントレース310が使用されて、潜在的フロアプランニング制約が自動的に識別される。AO320がコスト関数評価クエリを開始するとき、AO320から獲得された変更リストが調べられて抽象的な物理合成340に使用するための適切な物理設計階層が決定される。このステップは、コストを測定するために使用することが可能なモデルを生成する。コスト計算エンジン360は、抽象的な物理設計モデル上において実行される標準の階層フローベースの物理的設計の静的タイミング分析および電力推定フローに類似するものである。静的タイミング分析に加えてブロック360は、多様な標準ビルディングブロックについての事前に特性が示された分析も維持する。小さく抑制された変更については、閉じた形式の表現を使用して推定によるコスト関数値を分析的に決定することが可能である。これらの結果は、要求されている努力レベルに応じてさらに精緻化することができる。TrueCostトゥルーコスト分析エンジン350は、STA結果を分析して、クエリ応答についてモデルが適切であったか否かを決定する。クリティカルパスが動的インストラクショントレースのプロファイリング310からの統計的推論と一貫しない場合には、その種のパスを修正する試みがなされるバッファ挿入、輻輳緩和等の標準QoR改善ステップをその種のパス上において検討する。図6Aは、360によって使用されることになる物理設計モデルの一例を示している。コスト計算エンジン360が、抽象的な物理合成340を使用して設計のレイアウトを生成した。この場合においては、メモリマクロの形状が異なるネットワーク構成要素1、2、およびポートを接続しているに影響を及ぼし、結果として長い相互接続がもたらされる。このため、メモリマクロの形状が最大のクリティカルパスになっている。360はこのパスを分析し、たとえば図6Bに示されているようにメモリのハードマクロの縦横比を調整するか、またはサイズの再設定を試みる。精緻化されたモデルは、はるかに現実的なコスト関数評価を提供し、AOエンジン320がより迅速に収束することを可能にする。概して言えば、ブロック350は、規則ベースの反復的な自動化されたプロセスを使用して多くのその種のモデル精緻化ステップを実行する。これらの規則自体は、一般に、標準EDAフロー内における実装が簡単である。たとえば、規則のうちの1つを最初にパスの遅延分布プロファイルを決定することとすることが可能であり、これは典型的なSTAレポートから比較的簡単に獲得される。次に適用する規則の選択肢は、その分布プロファイルが、クリティカルパスがより大きなパターンの一部であること、または特異的なアウトライヤであることを示唆しているか否かに依存する。特異的なアウトライヤのクリティカルパスが存在するときに考慮するべき規則の例は、支配的な遅延構成要素がネットワイヤまたはゲートであるか否かの決定とすることができる。これもまた、一般にSTAパスファイルから極めて簡単に獲得される。最終的には、現在のネットリストにおいてはそれ以上の修正が不可能なクリティカルパスが現われ始める。このモデル上の遅延数は、ホヮット-イフエクササイズの真のコストをより正しく表わす。次に、IDMフレームワークを使用するフローの収束について説明する。設計フローにおいて、より後の段階の最適化が局所化された修正のみに制限される場合には、フローの全体的な収束が保証される。ここで、物理的設計分析がレイアウトのある領域内において電力ホット-スポットを発見する状況を考える。このホット-スポットは、この領域内のすべての回路が頻繁にアクティブ化されるという事実によって引き起こされたものである。伝統的な設計フローにおいては、物理設計最適化エンジンが、その領域内の回路をより大きな空間に拡散する試みを行なうことになり、その結果として、全体的な面積の増加を回避するために、その回路の大部分のレイアウトがシャッフルされる。これは、多くのパス上の遅延に例外なく影響を及ぼし、結果として、閉じられる必要がある非常に異なるセットのクリティカルパスをもたらすことになる。IDMフレームワークは、ここで別のオプションを可能にする。このフレームワークは、このホット-スポットをリソース制約としてインストラクションスケジューラに伝え、それが、ホット-スポットが回避されるような異なるスケジューリングメカニズムを発見できることがある。この代替オプションの主要な利点は、あまり優雅でない方法すなわち、全体的な変更でこれの修正を必要とする物理設計最適化を導く機会を回避することである。このコンセプトは、別の特許出願2010年7月13日に出願された米国特許出願第12/835,640号のアーキテクチュアラルレベルパワー-アウェアオプティマイゼーションアンドリスクミティゲーションArchitecturallevelpower-awareoptimizationandriskmitigation、整理番号:ALGOTOCHIP-007の中でより詳細に説明されている。第2の例として、物理設計がロジックセルに加えて多くのマクロを有している状況を考える。マクロ配置が標準ロジックを配置する必要がある空間を過剰に区画化しないことが好ましく、それを外すと配置最適化エンジンが良好な品質の結果をもたらし得ないことがある。伝統的な物理設計フローにおいては、接続されているネットのジオメトリおよびトポロジに基づいてマクロがグループ化される傾向にある。しかしながらネットは、パスのセグメントでしかない。物理合成フローが完全に完了し、静的タイミング分析が走るまで、マクロ配置のパスレベルの遅延の影響はわからない。フィードバックが物理合成の終了時に到来することから、いくつかのそのほかの最適化との混同がさらに生じる。したがって、マクロ配置に対するフィードバックを分離することは無視できないタスクであり、多くはマニュアルで行なわれている。IDMフレームワークは、ここでも再び異なるオプションを可能にする。重要なクリティカルパスは、アーキテクチャ最適化段階において明らかになり、この情報が側波帯チャンネル内に取り込まれて、IDMフレームワークは、その種のパスの構成要素に対して相対的なグループ制約を設定することが可能である。これは、物理合成におけるマクロ配置ステップが、STAを待機することを必要とせずに、それのパスの近隣が何であるかを迅速に調べることを可能にする。また良好なマクロ配置は、実在のクリティカルパスに正しく焦点を当てている物理合成を導き、単一の反復で達成されるQoRを向上させる。第1の例は、逆方向作用を示すすなわち、インストラクションスケジューラ等の上流の最適化をどのように制限するかについてのフィードバックをAOが提供する間における物理設計のコスト関数計算。第2の例は、順方向作用を示すすなわち、AOがあらかじめ計算済みの情報を物理合成等の下流の最適化に渡す。これらの新しい形式の作用は、IDMフレームワークによって可能になったものであり、これは設計フローにおける収束の挙動を左右する鍵である。図4はデータモデルの一例を示している。アーキテクチャオプティマイザ40図1は、ASICの抽象的統一表現であるところのシステム、アーキテクチャ、およびマイクロアーキテクチャSAMA表現と呼ばれているアプリケーションコードに対してカスタマイズされた中間ハードウエア表現を生成する。データモデルDM280は、設計の多様なビューを用いてSAMAを表現することが可能である。SAMAは、ソフトウエアコンピレーションとハードウエア合成の間における遷移レイヤとして作用する。その種の遷移レイヤには、コンパイラツールフロー内において利用可能な最適化を利用し、かつ低レベルシンセサイザへの自由度の提供、アプリケーション固有の実装のためのオプションの探索も行なうことが意図されている。DM280は、アプリケーションの多様なビューの生成に使用することが可能である。たとえば、アーキテクチャオプティマイザビュー282が、オプティマイザによる制約に対する最適な設計の当て嵌めが可能となるように、タイミング、面積、電力効率等のアーキテクチャ上の構成要素情報を提供する。空間/サイズ要件等の物理的な制約に取り組む物理設計ビュー284を生成することが可能である。ソフトウエアツールビュー286は、DM280をてこ入れして、使用するソフトウエアのためのISAおよびアーキテクチャ上の制約を提供することが可能である。そのほかのビューも同様にDM280から生成することが可能である。DM280は、図3のツールによって生成される情報のリポジトリであり、その種の情報は、ICのレイアウトの最終的な生成に必要とされる。DM280は、異なるツールによってクエリを行なうことが可能な異なるビューを生成することが可能である。これらのビューは、物理設計の間に使用することが可能である。DM280は、物理設計のために使用される情報を取り込むが、この情報は合成のためには使用されない。このプロセスは、コンピュータ可読コードに対して固有のカスタマイズがなされたチップ仕様の物理合成のための情報を渡すべく、データモデル内において初期アーキテクチャレベルの知識をエンコードする。次にプロセスは、それぞれの繰り返しの中でチップ仕様の物理合成およびチップ仕様のデータモデルの更新を行なう反復を、制約が満たされるまで実行する。以前の繰り返しから生成された情報が、データモデルを通じて次の繰り返しに供給されるクリティカルパスのルックアヘッド情報とともにフィードバックループとして提供される。たとえば、システムは、階層内のセルのグループ化がハード制約またはソフト制約であるか否かを示すプレフィクスおよびポストフィクスタグを適用することが可能である。システムは、マクロブロック名、階層名、プラグマ、コメント、ダミーモジュール、およびラッパーモジュールのうちの1つを用いて最適タイミングのための配置の制約を示すことが可能である。アーキテクチャレベルの知識からのクリティカルパスを示すべく、特定のプレフィクス/ポストフィクスを用いて名前をストアすることが可能である。したがって、1つの例においては、以前の通過の間にサブモジュールAをサブモジュールBおよびCの近くに配置する必要があった場合に、この関係をABCと記述することが可能であり、同様にBをBACと記述することが可能である。すべての制約が満たされる最終的な繰り返しにおいては、プロセスが、半導体製造のために、チップ仕様のコンピュータ可読記述をカスタム集積回路内に合成する。ホヮット-イフインクリメンタルコスト推定データモデルWICE-DMを使用することができる。WICE-DMアーキテクチャは、フロント-エンド、バック-エンド、コンテキスト管理およびAPIセクションからなる。フロント-エンドは、設計技法における詳細に記述されたアーキテクチャ設計状態を表わす。この詳細に記述された設計は、相互に参照される多アスペクト多レベルMAMLハイパーグラフ構成で保存されるが、これは、非常に効率のよいカスタマイズ可能な設計抽象化モデルDAMの生成を可能にする。バック-エンドは、物理設計を意識したホヮット-イフインクリメンタルコスト推定エンジンを表わす。コンテキスト管理セクションは、フロント-エンドがバック-エンドにおける分析を駆動するべく生成しなければならない適切なDAMを決定する。例示的なMAMLハイパーグラフ構成を図5Aから5Dに示す。ハイパーグラフは、ノードの単一ペアに対立するものとしてのハイパーエッジすなわち、複数のヘッドおよび複数のテールとしてモデリングされることになる相互接続を提供する、よく知られたグラフ構造である。ハイパーグラフ内の多レベルの階層は、配置の間におけるネットリスト分割をはじめ、設計検証において使用することが可能である。この回路図は、4つの頂点白の矩形およびディスクとして描画されるがツリーとして描画される3つのハイパーエッジによって接続されるハイパーグラフの線画であるとして解釈することが可能である。たとえば、回路図は、複数の頂点構成要素を表わす白の矩形およびディスクとして描画されるがツリーとして描画されるハイパーエッジによって接続されるハイパーグラフの線画であるとして解釈することが可能である。ハイパーグラフは、オーバーラップする階層をサポートする複数の階層アスペクトをサポートすることが可能である。このことは、アスペクト間の効率的な切り換えが可能なハイパーグラフを可能にする。1つの実施態様においては、アーキテクチャレベルの知識が、通常は物理合成に利用可能でない情報を渡すべく、ネットリストファイル内にエンコードされる。たとえば、階層名が、その階層内のセルのグループ化がハード制約またはソフト制約であるか否かを示すプレフィクスおよびポストフィクスタグを含むことができる。この情報は、物理的な分割においてより積極的な決定を行なうために有用である。この物理的分割は、より迅速なターンアラウンド時間を結果としてもたらすツールチェーンキャパシティの向上に帰するものである。インスタンスの名前もまた、アーキテクチャレベルのモデルが、実在のクリティカルパスのにありがちな経路として見るか否かを示す特定のプレフィクス/ポストフィクスを含むことができる。物理合成は、正しいものが発見されるまで正しくないものを徐々に除いていくのではなく、実在のクリティカルパスに対するルックアヘッドを行なうことが可能である。これは、望ましくない最適化ほかのコスト増加を導く過剰な最適化を除去し、ターンアラウンド時間を節約する。別の例として、特定のマクロブロックに、配置制約とりわけアレイの配置等を示す名前を付けることができ、それが、一度目で最適タイミングを達成することの補助となる。ネットリストファイルへの側波帯情報のエンコーディングに加えて、フローが、オリジナルのユーザ制約のみで可能となるより、より生産的な物理的はもとよりタイミングの設計制約を物理合成のガイドにおいて生成することも可能である。いくつかの場合においては、その種の制約が、ネットリストのネーミングスキームを通じて暗黙的に含意される。合成の間においては、プリ-プロセッサによって情報が前処理され、これは、ネットリストファイル内にエンコードされたアーキテクチャの知識を使用することができる。たとえば、アーキテクチャの知識が、いくつかの特定のブロックが互いに近くに配置されるべきであることを指定しているとき、プリ-プロセッサは、その物理的な関係を制約として強制するべくネットリストファイルをセットアップする。前処理されたネットリストは、その後、既存の物理合成ツールに渡され、その結果、標準的な物理合成ツールが使用される場合であっても、そのツールが、アーキテクチャレベルの知識を伴ってより最適に走ることが可能になる。この特定の実施態様は、データモデルが既製のツールを伴って働くことを可能にする。それに代えて、アーキテクチャレベルの知識を組み込むべく根底から組み立てられるカスタム物理合成ツールを生成することも可能であり、その種のツールにおいては、ネットリストファイル内へのアーキテクチャの知識のエンコードに必要な前処理操作が縮小される。1つの実施態様における、クリティカルパスのルックアヘッドを伴う物理合成プロセスの例示的な擬似コードは次のとおりである。スタート→ゲートレベルネットリスト1.設計分割2.粗配置3.分割のサイジングおよび成形4.トップレベルのI/Oパッド配置5.ロジック配置6.HFNバッファリング7.ブロックI/O割り当てフィードスルーを含む→ブロックフロアプラン準備完了8.バッファリングの最適化9.推定によるSTA←目標を満たさなければならず、満たされなければ設計が収束しないことが非常にありがちとなる10.ブロックレベルの予算作成→ブロックSDC準備完了11.{ブロック}1.スタート→ブロックI/Oが固定されたブロックフロアプラン2.詳細な配置最適化を実行する3.詳細なクロックツリー合成および最適化を実行する4.詳細なルーティング最適化を実行する5.ブロックレベルSTA←現在のタイミング問題を確定するには局所的な目標を満たさなければならない12.トップレベルアッセンブリ1.スタート→トップレベルネットリストの詳細な配置最適化2.トップレベルネットリストの詳細なクロック最適化3.トップレベルネットリストの詳細なルート最適化13.詳細な寄生抽出14.フルチップSTA←テープアウトに移行するには目標を満たさなければならない15.チップ仕上げタスク-メタルフィル等終了→GDSIIレイアウトゲートレベルネットリストは、プロセスへの入力である。プロセスは、2つのループを有している。ループ1においては、ステップ1から9までが、通常、ステップ9の目標に到達するために多数回にわたって反復される。ループ2においてもステップ11.1から11.5までが、各ブロックについて多数回にわたって反復され、ステップ10における予算が収束しないことが明らかになると、ループ1のやり直しが必要になることがある。ステップ14は、ステップ9の推定によるSTAが追加の現実と一貫していなかったことに起因して不合格となる可能性がある。1つの実施態様においては、マイクロアーキテクチャ最適化ループのための高速インクリメンタル物理遅延推定モデルを次のとおりに生成することが可能である。最初にプロセスが、あらかじめ決定済みの分割スキームを識別し、かつRTLを粗いゲートレベルネットリストにADMから変換する。主要な構成要素はブラック-ボックス化されており、インターフェースが、より少ないネットに要約される。プロセスは、単純なあらかじめ決定済みの、高速タイミング計算にとって容易なルート形状を決定する。タイミンググラフは、特に、敏感度分析のために設計される。タイマは、エルモア遅延推定を使用し、主要ブロックブラック-ボックスとしてモデリングされる間の最良の平均的および最悪ケースのフライト時間を提供する。このモデルは、インクリメンタルクエリを可能にし、かつSTAツールより数桁高速である。この速度は、テープアウトの結果の品質QoRの測定ではなく、インクリメンタルコストフィードバックの提供に使用される。1つの例示的な設計においては、アルゴリズムが、500MのMAC演算/サイクルを必要とする。このプロセスを用いて、180nmのTSMCプロセスノード上において約250MHzの推定によるクロック速度を伴う初期アーキテクチャが生成される。初期ハードウエアは、要求されたスループットを達成するべく2つのMACユニットのために設計される。しかしながら、ゲートレベル合成の後、達成可能なクロック周波数が200MHzまで下げられ、DM280内において情報が更新される。バック-エンドフロー前述のステップ14の後、達成可能なクロック周波数がさらに165MHz未満まで下げられ、その情報を用いてDM280が更新される。プログラムの部品および複数の処理ユニットが広いサイズ範囲にわたることから、異なる最適化アプローチを必要とする適正な数の組み合わせが可能である。アーキテクチャオプティマイザは、最初にプログラム内の潜在的な並列ユニットを識別し、続いて、それらに対する依存度分析を実行して、互いに独立であって、しかも同時に実行することが可能なセグメントを見つけ出す。システムは、アーキテクチャ決定に立ち返り、このとき、ハードウエアが、3つのMACユニット用に再設計される。新しい設計がバック-エンドフローまで反復的にループし、設計目標が満たされているか否かが再び調べられる。このシステムは、チップ設計の問題を緩和し、それを単純なプロセスにする。これらの実施態様は、プロダクト開発プロセスの焦点を、ハードウエア実装プロセスからプロダクト仕様およびコンピュータ可読コードまたはアルゴリズム設計に戻すようにシフトさせる。特定のハードウエアを選択することに束縛される代わり、コンピュータ可読コードまたはアルゴリズムが、その適用のために特に最適化されたプロセッサ上において実装されることが常に可能となる。好ましい実施態様は、最適化されたプロセッサを自動的に、すべての関連付けされたソフトウエアツールおよびファームウエアアプリケーションとともに生成する。このプロセスは、従来の数年を要する問題として対処されていた事項を、数日の問題として対処することを可能とする。このシステムは、ハードウエアチップソリューションが設計される方法におけるパラダイムを完全にシフトさせるものである。多くの利点のうち、システムの好ましい実施態様を使用する利点を3つ次に挙げる。1スケジュール:チップ設計サイクルが数年単位ではなく数週単位に落ち着くことになる場合には、ユーザが、製品をすばやく市場に持ち込むことによって急速に変化する市場に浸透することが可能になる。2コスト:一般にチップの実装に使用する必要がある多数の技術者が不必要なものとなる。このことは、システムを使用している会社に夥しいコストの節約をもたらす。3最適性:このシステムプロダクトを使用して設計されたチップは、優れたパフォーマンス、面積、および電力消費を有している。次に、例として、自動化されたチップ設計システムをサポートするコンピュータについて考察する。コンピュータは、好ましくは、プロセッサ、ランダムアクセスメモリRAM、プログラムメモリ好ましくは、フラッシュROM等の書き込み可能な読み出し専用メモリROM、および入力/出力I/OコントローラをCPUバスによって結合された形で含んでいる。このコンピュータは、ハードディスクおよびCPUバスに結合されるハードドライブコントローラをオプションとして含むことができる。ハードディスクは、本発明等のアプリケーションプログラムおよびデータをストアするために使用することができる。それに代えて、アプリケーションプログラムをRAMまたはROM内にストアすることができる。I/Oコントローラは、I/Oバスを経由してI/Oインターフェースに結合される。I/Oインターフェースは、シリアルリンク、ローカルエリアネットワーク、無線リンク、およびパラレルリンク等の通信リンクを介してアナログまたはデジタル形式でデータの受信および送信を行なう。オプションとして、表示器、キーボード、およびポインティングデバイスマウスがI/Oバスに接続されることもある。それに代えて、I/Oインターフェース、表示器、キーボード、およびポインティングデバイスのために別々の接続別々のバスが使用されることもある。プログラマブル処理システムは、あらかじめプログラムすること、または別のソースたとえば、フロッピー登録商標ディスク、CD-ROM、または別のコンピュータからプログラムをダウンロードすることによってそれをプログラムすることおよび再プログラムすることができる。各コンピュータプログラムは、目に見える形として、コンピュータによってストレージ媒体またはデバイスが読み出されたときに、ここで説明しているプロシージャを実行するべくそのコンピュータの構成および動作のコントロールを行なうために、汎用または専用プログラマブルコンピュータによって読み出されることが可能なマシン可読ストレージ媒体またはデバイスたとえば、プログラムメモリまたは磁気ディスク内にストアされる。また本発明のシステムは、コンピュータプログラムを用いて構成されるコンピュータ可読ストレージ媒体内において具体化されると考えてもよく、それにおいてストレージ媒体は、ここで述べている機能を実行するべく特定の、あらかじめ定義済みの態様でコンピュータを動作させるように構成される。以上、ここでは、特許法に従うため、および当業者に、新しい原理の適用および必要とされる専用の構成要素の組み立ておよび使用に必要となる情報を提供するために、相当に詳細に本発明を説明してきた。しかしながら、本発明が明確に異なる装置およびデバイスによって実行可能であること、および装置の詳細および動作手順の両方に対する多様な修正が本発明自体の範囲からの逸脱なしに達成可能であることは理解されるものとする。"