カスタム集積回路IC設計において電力を管理する方法であって、a.コンピュータ可読コードを含む前記カスタム集積回路の仕様を受け取り、かつ前記コンピュータ可読コードのプロファイルを生成してインストラクション利用度を決定し、b.前記コンピュータ可読コードに対して固有のカスタマイズがなされたプロセッサアーキテクチャであって、1つまたは複数の処理ブロックおよび1つまたは複数の電力ドメインを有するプロセッサアーキテクチャを自動的に生成し、c.各処理ブロックがいつ必要とされるかについて前記コードプロファイルに基づいて決定し、かつ各ブロックを前記電力ドメインのうちの1つに割り当て、d.前記電力ドメインの電力のゲーティングを、前記コードプロファイルに基づいて行ない、e.生成された前記アーキテクチャを、半導体製造のために前記カスタム集積回路のコンピュータ可読記述に合成する、方法。前記プロファイルから機能ブロック利用度の統計を生成する、請求項1に記載の方法。異なる処理ブロックの利用度を時間の関数として追跡する、請求項2に記載の方法。1つまたは複数の処理ブロックの電力を推測して遮断し、電力を遮断した処理ブロックを必要時に自動的にオンに切り換える、請求項1に記載のシステム。インストラクションデコーダを使用して、各電力ドメインに対して電力がいつ印加されるべきかを決定する、請求項1に記載の方法。前記コンピュータ可読コードの静的プロファイリングまたは動的プロファイリングを実行して処理ブロックの利用度を決定する、請求項1に記載の方法。前記コンピュータ可読コードを走らせる前記カスタム集積回路のためのファームウエアまたはソフトウエア開発キットSDKを自動的に生成する、請求項1に記載の方法。前記コンピュータ可読コードをアッセンブリコードにコンパイルする、請求項1に記載の方法。前記アッセンブリコードをリンクして前記選択されたアーキテクチャのためのファームウエアを生成する、請求項8に記載の方法。前記ファームウエアのサイクル‐ベースのシミュレーションを実行する、請求項8に記載の方法。前記ファームウエアの動的プロファイリングを実行する、請求項8に記載の方法。プロファイリングが行なわれたファームウエアに基づいて前記アーキテクチャを最適化する、請求項11に記載の方法。前記アッセンブリコードに基づいて前記アーキテクチャを最適化する、請求項8に記載の方法。前記選択されたアーキテクチャのためのレジスタトランスファレベルのコードを生成する、請求項1に記載の方法。前記RTLコードの合成を実行する、請求項11に記載の方法。カスタム集積回路IC設計において電力を自動的に管理するシステムであって、a.コンピュータ可読コードを含む前記カスタム集積回路の仕様を受け取り、かつ前記コンピュータ可読コードのプロファイルを生成してインストラクション利用度を決定するための手段と、b.前記コンピュータ可読コードに対して固有のカスタマイズがなされたプロセッサアーキテクチャであって、1つまたは複数の処理ブロックおよび1つまたは複数の電力ドメインを有するプロセッサアーキテクチャを自動的に生成するための手段と、c.各処理ブロックがいつ必要とされるかについて前記コードプロファイルに基づいて決定し、かつ各ブロックを前記電力ドメインのうちの1つに割り当てるための手段と、d.前記電力ドメインの電力のゲーティングを、前記コードプロファイルに基づいて行なうための手段と、e.生成された前記アーキテクチャを、半導体製造のために前記カスタム集積回路のコンピュータ可読記述に合成するための手段と、を備えるシステム。前記プロファイルから機能ブロック利用度の統計を生成する、請求項16に記載のシステム。異なる処理ブロックの利用度を時間の関数として追跡するための手段を備える、請求項17に記載のシステム。1つまたは複数の処理ブロックの電力を推測して遮断し、電力を遮断した処理ブロックを必要時に自動的にオンに切り換えるための手段を備えるする、請求項16に記載のシステム。各電力ドメインに対して電力がいつ印加されるべきかを決定するインストラクションデコーダを備える、請求項16に記載のシステム。チップによって消費される電力は、2つの主要成分、すなわち動的なスイッチング電力、および静的または漏れ電力に属する。これらの成分は、独立に管理することが可能である。従来の電力管理技術は、回路レベルの技術に頼っている。製造技術が、より小さい構造に向かっていることから、静的な電力の漏れが決定的なものとなりつつある。静的または漏れ電力は、ICの活動とは独立している。したがって、携帯電話等のバッテリ駆動電子機器にとっては、漏れ電力を低減することが重要である。1つの態様においては、カスタム集積回路IC設計における、電力を、コンピュータ可読コードを含むカスタム集積回路の仕様を受け取り、かつそのコンピュータ可読コードのプロファイルを生成してインストラクション利用度を決定し、そのコンピュータ可読コードに対して固有のカスタマイズがなされたプロセッサアーキテクチャであって、1つまたは複数の処理ブロックおよび1つまたは複数の電力ドメインを有するプロセッサアーキテクチャを自動的に生成し、各処理ブロックがいつ必要とされるかについてコードプロファイルに基づいて決定し、かつ各ブロックを電力ドメインのうちの1つに割り当て、電力ドメインの電力のゲーティングを、コードプロファイルに基づいて行ない、生成されたアーキテクチャを、半導体製造のためにカスタム集積回路のコンピュータ可読記述に合成する、ことによって管理するシステムおよび方法が開示される。上記の態様の実装には、次に示す内容のうちの1つまたは複数を含めることが可能である。システムは、プロファイルから機能ブロック利用度の統計を生成することができる。システムは、時間の関数として、異なる処理ブロックの利用度を追跡することができる。システムは、1つまたは複数の処理ブロックの電力を推測して遮断することが可能であり、必要時には、電力を遮断した処理ブロックを自動的にオンに切り換えることができる。各電力ドメインに電力がいつ印加されるべきかについては、インストラクションデコーダが決定することができる。アプリケーションコードを走らせるカスタムICのためのソフトウエアツールは、自動的に生成することが可能である。これらのツールには、コンパイラ、アッセンブラ、リンカ、サイクル‐ベースのシミュレータのうちの1つまたは複数が含まれる。ツールは、自動的にファームウエアを生成する。ツールは、ファームウエアのプロファイリングを行なうことが可能であり、ファームウエアのプロファイルを、フィードバックとしてアーキテクチャの最適化に提供する。コンパイラのインストラクションスケジューラは、この電力最適化スキームが与えられ、効率を最大化するべくインストラクションの順序を調整することが可能である。システムは、あらかじめ決定済みの物理的な制約に基づいてプロセッサアーキテクチャを反復的に最適化することが可能である。システムは、コンピュータ可読コードの静的プロファイリングまたは動的プロファイリングを実行することが可能である。システムは、コンピュータ可読コードを走らせるカスタム集積回路のためのソフトウエア開発キットSDKを自動的に生成することが可能である。コンピュータ可読コードは、アッセンブリコードに変換され、かつリンクされて、選択されたアーキテクチャのためのファームウエアを生成することが可能である。システムは、ファームウエアのサイクル精度のシミュレーションを実行することが可能である。アーキテクチャは、プロファイリングが行なわれたファームウエアおよび/またはアッセンブリコードに基づいて最適化が行われることが可能である。システムは、選択されたアーキテクチャのために、したがって、タイミング、面積、または電力に関して最適化された物理設計のために、レジスタトランスファレベルのコードを生成することが可能である。システムは、RTLコードを合成することが可能である。好ましい実施態様の利点には、次に示す内容のうちの1つまたは複数が含まれる。静的な電力は、アーキテクチャ上の見通しからコントロールされることが可能である。このことは、チップ設計者に、消費される電力のより良好な取り扱いを前もって知らせることになり、さらには電力関連のスケジュール遅延を回避させることにもなる。図1は、アプリケーションコードに応答して自動的に設計された特定用途向け集積回路ASICのために電力を自動的に管理するシステムの一例を示している。図1においては、このシステムに、入力としてアプリケーションコードまたはアルゴリズム10が提供される。アプリケーションコードは、コンパイラ20に与えられ、それがファームウエア30を生成する。ファームウエア30は、プロファイラ40によって分析される。プロファイラの出力は、機能ブロック利用度統計モジュール50に提供される。それの結果が電力ゲーティングジェネレータ60に提供され、電力ゲーティングジェネレータ60の出力は、SAMAシステム、アーキテクチャおよびマイクロアーキテクチャブロック70に提供される。SAMAブロック70は、高レベルの軽量アブストラクトモデルを生成するが、これは、アーキテクチャオプティマイザが、SAMAブロック70内に記述された新しいアーキテクチャを最適化し、かつ生成することを可能にする。SAMAブロック70は、ASICの機能的および物理的なモデルが統一された拡張モデルであるデータモデルDMに対して情報を提供する。DMは、ASICの、たとえば加算器、乗算器等といった物理プリミティブ情報を受け取る。ファームウエアのプロファイルは、アーキテクチャオプティマイザにフィードバックされ、とりわけ電力、サイズ、速度等のあらかじめ決定済みの物理的な制約に基づいてASIC設計の最適化が行なわれる。DMは、これらの制約に従ったRTLコードを生成し、アーキテクチャオプティマイザに提供されるタイミング、面積、電力フィードバック情報とともに物理設計に到達することが可能である。SAMAブロック70については、本願と同日に出願された出願人を共通とする係属中の出願の中でより詳細に述べられており、それによって参照される内容が、本願に援用される。図1のシステムは、電力ゲーティングを通じて静的な電力消費を最小化する。通常、供給電圧が高く、トランジスタの切り換えが高速なほど、より電力が高い。したがって、デバイスの異なる領域での電圧供給をコントロールすることによって、電力とパフォーマンスのトレードオフを行なうことが可能である。また、必要とされていない特定のロジックについて、システムが電力ゲート標準セル、または電力ゲーティングを通じて電力供給を切り離すことも可能である。図1のシステムは、アルゴリズムまたはコードプロファイルに基づいて、ほかの機能が使用されている間に、チップの種々のセクションが小さな時間窓にわたって使用されていない状態になる時期を決定する。たとえば、DSPチップでは、FIRフィルタにおいてMAC積和演算ユニットが使用されている間にALU算術ロジックユニットが使用されないことがあり得る。電力ゲーティングジェネレータ60は、1つの例において、コードの挙動を生かして、ALUロジックに対する電力グリッドを遮断することが可能である。図2は、多様なプロセッサブロック利用度のプロファイルの一例を示している。このプロファイルは、図1のシステムに対して電力管理を提供する上で使用される。この例では、コードプロファイルが、浮動小数点ユニットFPUが散発的に期間400、410、および420において使用されることを示している。またこのプロファイルは、加算器が、期間450の間にわたって使用され、その期間が期間400、410、および420よりはるかに長いことも示している。このブロック利用度統計に基づけば、加算器は非常に頻繁に使用されていることから、それが、分離される電力ドメインの候補になることはないが、FPUについては、長い休止期間にわたる間、CPUの電力のゲーティングを行って電力消費量を減少させ、エネルギを節約することが可能となるように、電力ゲーティング付きの新しい電力ドメインを作り出すことが可能である。図3は、図2のプロファイルを伴う特定のアプリケーションコードの一例またはアルゴリズムのためにカスタム生成されたアーキテクチャの一例を示している。このアーキテクチャにおいて、インストラクションフェッチIFユニット110は、インストラクションデコーダ120にインストラクションを提供する。インストラクションは、デコーダ130によってデコードされ、多様な汎用レジスタ140にアクセスする。オペランドフェッチユニット150は、これらのレジスタから、またはメモリからのデータをフェッチすることが可能である。加算器160は、加算および減算を行なうことが可能であり、浮動小数点ユニットFPU170は、浮動小数点演算を扱うことが可能である。実行ユニット180は、インストラクションを実行することができる。設計されているIC内において、デバイスのある部分は常時オンの電力供給を有することが許容され、別の部分は、プログラムに従って遮断することができるコントロール可能な電力供給を有することが許容される。1つの利点は、電源とグラウンドの間の差がほぼゼロになることから漏れ電力が効果的に低減されることである。アルゴリズムの特定の要求に対する情報を使用し、図1のシステムは、ICの特定部分への電力供給を完全にオフにする電力ゲーティングを提供する。また、電力をオンにするプロセスもまた、電力消費量を減少させている回路が電力投入されるときの突入電流の可能性を回避するべく慎重にシーケンシングが行なわれる。さらに、種々のボルテージアイランド内にドライバ‐負荷のペアが存在することがあり、スパイクおよびそのほかの過渡状態を最小化するべくそれらの関係がコントロールされる。電力ゲーティングがシームレスに作動することを可能にするために、アーキテクチャ上の電力特徴を使用して静的な電力がコントロールされる。過去においては、チップ内の電力節約の特徴は、チップの多様なセクションの電力消費量が減少される休止、スリープ、および停止モード等の基本モードに限定されていた。しかしながら、スマート‐フォン等の新しい応用においてますます増加するパフォーマンス要件にあっては、活動を伴うことなくチップを休止させることは稀である。したがって、チップのいくつかの部分が常時アクティブであることから、これらの伝統的な電力モードのアクティブ化が可能になることはあまり一般的でない。この例においては、図2のプロファイルに基づいて、FPUがそれ独自の電力ドメインVDD2に割り当てられることになり、ブロックの残りの部分が電力ドメインVDD1から電力供給されることをアーキテクチャオプティマイザが決定する。図1のシステムは、1つの実施態様において、インストラクションデコーダ120を通じて電力ゲーティングコントロールビットを自動的に生成する。インストラクションデコーダ120は、アルゴリズムまたはコードのプロファイルに基づいて、特定の電力ドメインの電力消費量をいつ増加させるか、またはいつ減少させるかについて決定する電力ゲーティングコントロールビットのストリームを生成する。図4は、プロセッサアーキテクチャの実装の一例を示している。この実施態様においては、パイプライン段200、220、および270が提供される。組み合わせロジック210をパイプライン段200と220の間に位置決めすることが可能であり、ロジック210から継続的に静的な電力が流出される。組み合わせロジック210の電力消費を最小化するためにできることはなにもない。しかしながら、FPU230、乗算器240、および加算器250については、それぞれを別々の電力バス上、またはドメインに置き、ゲーティングコントローラ260として作用するインストラクションデコーダによってゲーティングされるようにすることが可能である。図4のシステムにおいては、ハードウエアの各機能ユニットおよびスレッドが、別々の電力コントロールシステムを有することができる。このシステムは、インストラクションコードによってコントロールされ、したがって、動的にコントロールすることが可能である。またこの情報は、同一の電力コントロールメカニズムを伴う異なるセクションを、単一の電力ゲーティングメカニズムがそれらのロジックのための電力をオフにする方法で配置し、かつ配線することが可能となるように、プレイスアンドルートプロセスにも入力される。1つの実施態様においては、システムが、異なる機能ブロックの利用度を時間の関数として知的に追跡する。こうして推測されて、異なる機能ブロックの電力が遮断されることになる。それらの機能ブロックの使用が必要となるインストラクションを伴うプログラムフローが生じた場合には、ハードウエアが、それらの機能ブロックのための電力を自動的にオンに切り換える。したがって、プログラマが電力コントロールシステムの詳細な管理に関わることがなくなり、したがってそのことがシステムを使用することを容易にする。図1は、カスタムICを自動的に生成するシステムの一例を示している。図6のシステムは、選択された目標とするアプリケーションに対するプログラマブルハードウエアソリューションのために、インストラクションセット圧縮および可変幅エンコーディングを使用する最適インストラクションセットを伴うアーキテクチャを自動的に生成することをサポートする。目標とするアプリケーションの仕様は、一般に、C、MATLABマトラボ、SystemCシステムC、フォートラン、エイダ等の高水準言語またはそのほかのいずれかの言語によるコンピュータ可読コードとして表現されたアルゴリズムを通じてなされる。仕様は、目標とするアプリケーションの記述を含み、またそれには、望ましいコスト、面積、電力、速度、パフォーマンス、およびそのほかのハードウエアソリューションの属性といった1つまたは複数の制約も含まれる。図5は、アーキテクチャおよびマイクロ‐アーキテクチャレベルのインクリメンタルホヮット‐イフ分析のための物理設計PDモデルベースの面積、電力、および遅延コスト推定についてのデータフローを示している。図5を参照すると、i回の繰り返しの後に、次のSAMAi1が、502において、次の繰り返しへの入力として使用される。したがって、第i回のSAMAは、504において更新される。504におけるSAMAは、506においてCAシミュレータに、510においてアーキテクチャオプティマイザに、提供される。AO510は、コスト関数クエリAPI512を通じて通信する。SAMAは、SAMAリーダAPI514を通じて通信する。CAsimは、プロファイルデータリーダAPI516を通じてプロファイル情報を送る。SAMAリーダAPI514は、アーキテクチャ設計状態MAML‐HG518に、アーキテクチャおよび合成情報を伝達する。コスト関数クエリAPI512は、評価コンテキスト管理515に情報を提供し、続いてそれが、MAML‐HG518に情報を提供する。コンテキスト管理515は、評価コンテキスト物理設計モデル530の形成に使用することが可能である。コンテキスト管理515は、ベースラインからの提案された設計の修正の記録を保持している。コスト評価の初期段階の間には、多くの変更が確定されることなく提案される。確定されたコンテキストは、ベースライン設計の一部になるSAMAファイルの更新。MAML‐HG518は、多レベルのX階層マネージャ520に対して多レベルのハイパーグラフデータ構造を提供する。続いてマネージャ520が多様なビューを、とりわけブラック‐ボックスビュー522、カスタム多分解能階層的ビュー524、および完全に合成可能なネットリストビュー526を含む多様なビューを提供する。これらのビュー522乃至526は、ベースラインの物理設計モデル528の形成に使用することが可能である。モデル528乃至530は、とりわけ電力ホット‐スポット推定エンジン540、遅延およびタイミング推定エンジン542、および面積推定エンジン544によって使用されることが可能である。電力ホット‐スポット推定エンジン540は、MAML‐HG518から推定による作動係数AFsを受け取ることが可能である。エンジン540乃至544からのデータは、分析情報マネージャ550に提供され、それがコスト関数クエリAPI512を介してAO510にフィードバックを提供する。次に、1つのAPIの例について、より詳細に考察する。コスト関数推定CFEAPI。booleandefine_contextcontext_name{change_list}booleanset_active_contextcontext_nameresponse_typecompute_delay{path|whole_chip}response_typecompute_areacomponentbooleancommit_contextcontext_name‐outfileNamesama_i.txtresponse_typeは、以下の情報を含む。●相対的コスト遅延、面積、電力等、実際のクエリに依存する○定性改善、有意の影響なし、低下○定量定性的変化のヒューリスティックな測度●補足的な物理設計の最適化を伴う条件付きコストSPDO○補足的なPD最適化ID将来的な参照のための内部のブック‐キーピングID○WAが受け入れられた場合の新しい相対的コスト●信頼区間○0と1の間の値○1は、もっとも正確なデータ駆動ツールのフローを伴ってコストが計算されたことを意味する○0は、コストが大まかに推定されたことを意味し、詳細なコスト分析が実行された場合には大きく異なる可能性が非常に高い。補足的な最適化提案IDによってインデクスされるを提供する能力は、物理設計の最適化を向上させ、アーキテクチャの最適化がまだ処理中であり、最適化が完了していないときにはAOに影響を与える。標準的な工業フローにおいては、アーキテクチャの最適化が完了するまで物理設計の最適化が行なわれない。システムは、物理的な合成が可能であると考えられる最適化をAOが選択することを可能にするが、AOに、この最適化がどのように達成されるべきかについての詳細を理解することは求めない。その後、データモデルが、実際の実装のために物理的な合成を適切に構成する。このメカニズムは、AOが、単なる直ちに計算されたコスト関数ではなく、広範囲にわたって変化する最適化の結果を考慮することを可能にし、したがって、より良好な設計に収束することを可能にする。別のAPIの例は、次のようなパス作動プロファイルである。パスプロファイルPPAPIset_path_likelihoodpathactivity_factorパス作動係数は、そのパスが用いられる確率または尤度である。この情報は、サイクル精度のシミュレータから利用することが可能である第1ページの図解1参照。WICE‐DMは、この情報を、物理設計のモデリングから獲得されたパスのトポロジ情報と統合する。その結果として、それが、物理設計の各単位面積についての電力利用度の見積を生成する。続いてこれが、電力ホット‐スポット情報を提供し、その後それは、フィードバックとしてリソース制約の形式でインストラクションスケジューラに提供されることが可能である。このフィードバックの正味の効果は、a潜在的なタイミングおよびそのほかの信号品質の問題が回避されるようにインストラクションがスケジュールされること、およびb電力の散在、クロックゲーティングまたはそのほかの技術を用いて電力ホット‐スポットの近隣となる必要がある構成要素を組み込むことが可能となり、かつその種の即席処理の面積/タイミングのコストが直ちに利用可能となることである。図5の1つの実施態様においては、アーキテクチャレベルの情報が、通常は物理的な合成に利用可能でない情報を渡すべく、ネットリストファイル内にエンコーディングされる。たとえば、階層名には、その階層内のセルのグループ化がハード制約またはソフト制約であるか否かを示すプレフィクスおよびポストフィクスタグを含めることができる。この情報は、ツールチェーンキャパシティの向上に帰する物理的な分割を行う点でより積極的な決定を行なうために有用であり、この結果、より高速なターンアラウンド時間を実現できる。インスタンスの名前にもまた、アーキテクチャレベルのモデルが、これを実在のクリティカルパスのためのありえる経路として見るか否かを示す特定のプレフィクス/ポストフィクスを含めることができる。物理的な合成は、正しいものが発見されるまで正しくないものを徐々に除いていくのではなく、実在のクリティカルパスに対するルックアヘッドを行なうことが可能である。これは、望ましくない最適化ほかのコスト増加を導く過剰な最適化を除去し、ターンアラウンド時間を節約する。別の例として、特定のマクロブロックに、配置制約とりわけアレイの配置等を示す名前を付けることができ、それが、一度目で最適タイミングを達成することの補助となる。ネットリストファイルに側波帯情報をエンコーディングすることに加えて、図5のフローは、オリジナルのユーザ制約のみで生成するより、物理的な合成を導出する上でより生産的な物理的はもとよりタイミングの設計制約を生成することも可能である。いくつかの場合においては、その種の制約は、ネットリストのインスタンス名設定スキームを通じた暗黙的なものである。図6においては、ICカスタマがプロダクト仕様102を生成する。通常は、所望のプロダクトのすべての主要機能を取り込んだ初期プロダクト仕様が存在する。そのプロダクトから、アルゴリズムの専門家がそのプロダクトに必要とされるコンピュータ可読コードまたはアルゴリズムを識別する。それらのアルゴリズムのうちのいくつかは、サードパーティから、または標準開発委員会からのIPとして利用可能となることがある。それらのうちのいくつかは、製品開発の一部として開発されなければならない。この態様においては、さらにプロダクト仕様102が、とりわけCプログラム等のプログラムまたはMATLABマトラボモデル等の数学モデルとして表現することが可能なコンピュータ可読コードまたはアルゴリズム104で詳述される。プロダクト仕様102は、また、とりわけコスト、面積、電力、プロセスタイプ、ライブラリ、およびメモリタイプ等の要件106も含んでいる。コンピュータ可読コードまたはアルゴリズム104および要件106は、自動化されたICジェネレータ110に提供される。コードまたはアルゴリズム104およびチップ設計に課せられた制約だけに基づいて、ICジェネレータ110は、人間の掛かり合いを殆ど、またはまったく伴うことなく、GDSファイル112、ICを実行させるファームウエア114、ソフトウエア開発キットSDK116、および/またはテストスート118を含む出力を自動的に生成する。GDSファイル112およびファームウエア114は、カスタムチップ121の製造に使用される。このシステムは、チップ設計の問題を緩和し、それを単純なプロセスにする。このシステムは、プロダクト開発プロセスの焦点を、ハードウエア実装プロセスからプロダクト仕様およびアルゴリズム設計に戻すようにシフトさせる。特定のハードウエアを選択することに束縛される代わり、アルゴリズムが、そのアプリケーションのために特に最適化されたプロセッサ上において実装されることが常に可能となる。システムは、この最適化されたプロセッサを自動的に、すべての関連付けされたソフトウエアツールおよびファームウエアアプリケーションとともに生成する。この全体的なプロセスは、現在数年の問題として対処されていた事項を、数日の問題として対処することを可能とする。要約して言えば、このシステムは、プロダクト開発のデジタルチップ設計部分をブラックボックス化する。1つの実施態様においては、このシステムプロダクトが、次に示すものを入力として取ることが可能である。C/MATLABマトラボで定義されたコンピュータ可読コードまたはアルゴリズム、必要とされる周辺機器、面積目標、電力目標、マージン目標将来的なファームウエア更新のためにどの程度のオーバーヘッドを組み込むべきか、またどの程度複雑性が増加するか、プロセスの選択肢、標準セルライブラリの選択肢、テスト可能性スキャンシステムの出力は、関連付けされるファームウエアすべてを伴ったデジタルハードマクロとすることができる。このデジタルハードマクロのために最適化されたソフトウエア開発キットSDKもまた自動的に生成されて、ファームウエアに対する将来的なアップグレードがプロセッサの交換を強いることなく実装されるようにすることが可能である。このシステムは、選択された目標とするアプリケーションに対して完全かつ最適なハードウエアソリューションを自動的に生成する。共通の目標とするアプリケーションは埋め込みアプリケーション空間内にあるが、それらは、必ずしもそれに限定されない。次に、例として、自動化されたチップ設計システムをサポートするコンピュータについて考察する。コンピュータは、好ましくは、プロセッサ、ランダムアクセスメモリRAM、プログラムメモリ好ましくは、フラッシュROM等の書き込み可能な読み出し専用メモリROM、および入力/出力I/OコントローラをCPUバスによって結合された形で含んでいる。このコンピュータは、ハードディスクおよびCPUバスに結合されるハードドライブコントローラをオプションとして含むことができる。ハードディスクは、本発明等のアプリケーションプログラムおよびデータを記憶するために使用することができる。それに代えて、アプリケーションプログラムをRAMまたはROM内に記憶することができる。I/Oコントローラは、I/Oバスを経由してI/Oインターフェースに結合される。I/Oインターフェースは、シリアルリンク、ローカルエリアネットワーク、無線リンク、およびパラレルリンク等の通信リンクを介してアナログまたはデジタル形式でデータの受信および送信を行なう。オプションとして、表示器、キーボード、およびポインティングデバイスマウスがI/Oバスに接続されることもある。それに代えて、I/Oインターフェース、表示器、キーボード、およびポインティングデバイスのために別々の接続別々のバスが使用されることもある。プログラマブル処理システムは、あらかじめプログラムすること、または別のソースたとえば、フロッピー登録商標ディスク、CD‐ROM、または別のコンピュータからプログラムをダウンロードすることによってそれをプログラムすることおよび再プログラムすることができる。各コンピュータプログラムは、目に見える形として、コンピュータによってストレージ媒体またはデバイスが読み出されたときに、ここで説明している手順を実行するべくそのコンピュータの構成および動作のコントロールを行なうために、汎用または専用プログラマブルコンピュータによって読み出されることが可能なマシン可読ストレージ媒体またはデバイスたとえば、プログラムメモリまたは磁気ディスク内に記憶される。また本発明のシステムは、コンピュータプログラムを用いて構成されるコンピュータ可読ストレージ媒体内において具体化されると考えてもよく、それにおいてストレージ媒体は、ここで述べている機能を実行するべく特定の、あらかじめ定義済みの態様でコンピュータを動作させるように構成される。以上、ここでは、特許法に従うため、および当業者に、新しい原理の適用および必要とされる専用の構成要素の組み立ておよび使用に必要となる情報を提供するために、相当に詳細に本発明を説明してきた。しかしながら、本発明が明確に異なる装置およびデバイスによって実行可能であること、および装置の詳細および動作手順の両方に対する多様な修正が本発明自体の範囲からの逸脱なしに達成可能であることは理解されるものとする。