

集積回路設計、半導体設計、チップ設計、あるいはIC設計は、電子工学の一分野であり、集積回路(IC)の設計に必要な特定の論理回路設計技術と回路設計技術を網羅しています。ICは、フォトリソグラフィーによってモノリシック半導体基板上に電気ネットワークに組み込まれた小型電子部品で構成されています。
IC 設計は、デジタルIC 設計とアナログIC 設計に大別できます。デジタル IC 設計は、マイクロプロセッサ、FPGA、メモリ ( RAM、ROM、フラッシュ)、デジタルASICなどのコンポーネントを作成します。デジタル設計は、論理的な正確性、回路密度の最大化、クロックとタイミング信号が効率的にルーティングされるように回路を配置することに重点を置いています。アナログ IC 設計は、パワー IC 設計とRF IC 設計にも特化しています。アナログ IC 設計は、オペアンプ、リニア レギュレータ、位相同期回路、発振器、アクティブ フィルタの設計に使用されます。アナログ設計では、ゲイン、マッチング、消費電力、抵抗など、半導体デバイスの物理的性質がより重視されます。アナログ信号の増幅とフィルタリングの忠実度は通常非常に重要であり、その結果、アナログ IC はデジタル設計よりも面積の大きいアクティブ デバイスを使用し、通常、回路密度が低くなります。[ 1 ]
現代の IC は非常に複雑です。2015 年現在、平均的なデスクトップ コンピュータ チップには 10 億個を超えるトランジスタが搭載されています。何を製造できるか、何を製造できないかに関するルールも極めて複雑です。2015 年の一般的な IC プロセスには 500 を超えるルールがあります。さらに、製造プロセス自体が完全に予測できるわけではないため、設計者はその統計的な性質を考慮する必要があります。現代の IC 設計の複雑さと、設計を迅速に作成しなければならないという市場のプレッシャーから、IC 設計プロセスでは電子設計自動化(EDA) ツールと呼ばれるツールが広範に使用されるようになりました。一部のプロセッサの設計は完全にテストするのが困難なほど複雑になっており、大規模なクラウド プロバイダーで問題を引き起こしています。[ 2 ]つまり、 EDA ソフトウェアを使用した IC の設計は、IC が実行する命令の設計、テスト、検証で構成されます。
集積回路の設計には、トランジスタ、抵抗器、コンデンサなどの電子部品の作成と、これらの部品を半導体(通常はシリコン)上に相互接続することが含まれます。基板のシリコンは導電性があり、多くの場合個々の部品のアクティブ領域を形成するため、基板内に形成された個々の部品を分離する方法が必要です。一般的な2つの方法は、 pn接合分離と誘電体分離です。トランジスタと相互接続抵抗の消費電力、相互接続、コンタクト、ビアの電流密度に注意を払う必要があります。これは、ICに含まれるデバイスがディスクリート部品に比べて非常に小さいため、このような懸念はそれほど問題にならないためです。金属相互接続のエレクトロマイグレーションと小さな部品へのESD損傷も懸念されます。最後に、特定の回路サブブロックの物理的なレイアウトは、必要な動作速度を実現するため、ICのノイズの多い部分を静かな部分から分離するため、IC全体の発熱の影響をバランスさせるため、またはIC外部の回路への接続を配置しやすくするために、通常は非常に重要です。

一般的な IC 設計サイクルには、いくつかのステップが含まれます。
集束イオンビームはチップ開発中にチップ内に新しい接続を確立するために使用されることがある。[ 3 ] [ 4 ]
大まかに言えば、デジタル IC 設計は 3 つの部分に分けられます。
2番目のステップであるRTL設計は、チップが正しく動作することを保証するものであることに注意してください。3番目のステップである物理設計は、(正しく行われれば)機能には全く影響しませんが、チップの動作速度とコストを決定します。
標準セルは通常、単一の論理ゲート、ダイオード、またはフリップフロップなどの単純な論理部品、あるいは複数入力の論理ゲートを表します。[ 5 ]標準セルを使用すると、チップの設計を論理レベルと物理レベルに分割できます。ファブレス企業は通常、チップの論理設計のみに取り組み、チップが製造されるファウンドリの設計ルールに従いながら、セルの接続方法とチップの機能を決定します。一方、チップの物理設計、つまりセル自体は、通常ファウンドリによって行われ、トランジスタデバイスの物理的性質と、それらが論理ゲートを形成するためにどのように接続されるかで構成されます。標準セルを使用すると、チップをより迅速に設計および変更して市場の需要に対応できますが、チップ内のトランジスタ密度が低下し、ダイサイズが大きくなるという犠牲を払います。[ 5 ]
ファウンドリは、設計目的のため、またファウンドリの施設を使用して設計を製造できるようにするために、ファウンドリから標準セルのライブラリが提供される場合があります。プロセス設計キット(PDK) には、標準セル ライブラリとセルの仕様、ファウンドリで指定された設計ルールに対してファブレス企業の設計を検証するツール、およびファウンドリのセルを使用してシミュレーションを行うツールが含まれます。PDK は秘密保持契約に基づいて提供される場合があります。マクロ/マクロセル/マクロ ブロック、[ 6 ]マクロセル アレイおよびIP ブロックは、標準セルよりも機能が充実しており、同様に使用されます。ソフト マクロとハード マクロがあります。標準セルは通常、標準セルの行の後に配置されます。
集積回路(IC)開発プロセスは、製品要件の定義から始まり、アーキテクチャ定義、実装、立ち上げ、そして最終的に製造へと進みます。以下では、集積回路開発プロセスの様々なフェーズについて説明します。ここでは各フェーズを分かりやすく説明していますが、実際には反復的なプロセスがあり、これらのステップは複数回実行される場合があります。
アーキテクチャを定義する前に、製品の高レベルな目標を定義する必要があります。要件定義は通常、市場機会、顧客ニーズ、実現可能性など、様々な要素を検討するクロスファンクショナルチームによって行われます。このフェーズでは、製品要件ドキュメントが作成されます。
アーキテクチャは、製品の基本構造、目標、原則を定義します。製品の高レベルな概念と本質的な価値提案を定義します。アーキテクチャチームは多くの変数を考慮し、多くのグループと連携します。アーキテクチャを作成する人々は、通常、アーキテクチャが作成される分野のシステムに関する豊富な経験を有しています。アーキテクチャフェーズの成果物は、アーキテクチャ仕様です。
マイクロアーキテクチャは、ハードウェアに一歩近づく段階です。アーキテクチャを実装し、その実装を実現するための具体的なメカニズムと構造を定義します。マイクロアーキテクチャフェーズの成果物は、アーキテクチャの実装に使用される手法を記述したマイクロアーキテクチャ仕様です。
実装フェーズでは、マイクロアーキテクチャ仕様を出発点として設計自体が作成されます。これには、低レベルの定義とパーティショニング、コードの記述、回路図の入力、検証が含まれます。このフェーズは、設計がテープアウトに至ることで終了します。
設計が作成され、テープアウトされ、製造された後、実際のハードウェア(「ファーストシリコン」)がラボに持ち込まれ、ブリングアップ(立ち上げ)工程が行われます。ブリングアップとは、ラボで設計に電源を投入し、テストを行い、特性を評価するプロセスです。デバイスの電源投入を確認するといった非常に単純なテストから、様々な方法で部品にストレスを与えるといったより複雑なテストまで、数多くのテストが実行されます。ブリングアップ工程の結果は、特性評価データ(部品が仕様通りにどの程度動作しているか)とエラッタ(予期しない動作)の文書化です。
製品化とは、設計をエンジニアリング段階から量産段階へと移行させる作業です。立ち上げ段階では、設計が製品の仕様を満たしていたとしても、量産段階においては製品エンジニアが多くの課題に直面します。ICは、許容できる歩留まりで生産量まで立ち上げなければなりません。製品化段階の目標は、許容できるコストで量産量を達成することです。
設計が成熟し、量産段階に達したら、それを維持する必要があります。生産量への重大な影響を回避するため、プロセスを継続的に監視し、問題があれば迅速に対処する必要があります。維持の目標は、製品が寿命を迎えるまで、生産量を維持し、継続的にコストを削減することです。
初期のチップ設計プロセスは、システムレベル設計とマイクロアーキテクチャの計画から始まります。IC設計企業では、経営陣、そして多くの場合は分析部門が、設計チームに業界セグメントに適合する新しいチップの設計を開始するための提案書を作成します。上級設計者はこの段階で会合を開き、チップの機能的な動作方法を決定します。この段階でICの機能と設計が決定されます。IC設計者は、プロジェクト全体の機能要件、検証テストベンチ、テスト手法を策定し、その後、予備設計をシステムレベル仕様に変換します。この仕様は、C++やMATLABなどの言語やエミュレーションツールを用いたシンプルなモデルでシミュレーション可能です。純粋な新規設計の場合、システム設計段階では命令セットと動作が計画され、ほとんどのチップでは既存の命令セットが新しい機能に合わせて変更されます。この段階での設計は、多くの場合、「MP3形式でエンコードする」や「IEEE浮動小数点演算を実装する」といった記述です。設計プロセスの後の段階では、これらの一見無害に見える記述は、数百ページに及ぶテキストドキュメントへと発展していきます。
システム設計の合意後、RTL 設計者は、Verilog、SystemVerilog、VHDLなどのハードウェア記述言語で機能モデルを実装します。加算器、シフタ、ステートマシンなどのデジタル設計コンポーネントや、パイプライン、スーパースカラ実行、分岐予測などのコンピュータ アーキテクチャの概念を使用して、 RTL 設計者は機能記述を、チップ上で連携して動作するコンポーネントのハードウェア モデルに分解します。システム設計で記述された単純なステートメントは、簡単に数千行のRTLコードに変わる可能性があるため、ユーザーが想定する可能性のあるすべてのケースで RTL が正しく動作することを検証するのは非常に困難です。
機能バグの数を減らすために、別のハードウェア検証グループが RTL を受け取り、テストベンチとシステムを設計して、 RTL が実際に多くの異なる条件下で同じステップを実行していることを確認します。これは機能検証の領域に分類されます。 広範な論理シミュレーション、形式手法、ハードウェア エミュレーション、lintのようなコード チェック、コード カバレッジなど、多くの手法が使用され、完璧なものはありませんが、いずれも有用です。 エミュレータによって行われるような検証は、FPGA または専用のプロセッサで実行できます。[ 7 ] [ 8 ]そして、エミュレーションがシミュレーションに取って代わりました。 シミュレーションは当初、チップ内の論理ゲートをシミュレートすることによって行われましたが、後に、チップ内の RTL が代わりにシミュレートされるようになりました。[ 9 ]シミュレーションは、アナログ チップ設計を作成するときに今でも使用されます。[ 10 ]プロトタイピング プラットフォームは、FPGA を使用して開発中のチップ設計のプロトタイプでソフトウェアを実行するために使用されますが、反復や変更に時間がかかり、完成した設計に表示されるハードウェア信号を視覚化するために使用することはできません。[ 11 ]
ここでの小さなエラーが、チップ全体を使えなくしたり、さらに悪い結果をもたらしたりする可能性があります。有名なPentium FDIVのバグは、非常に稀なケースではありますが、除算の結果が最大で61ppmも間違ってしまうというものでした。チップが生産されてから数ヶ月経つまで、誰もこのバグに気づきませんでした。しかし、Intelはバグを修正するまで、販売されたすべてのチップを無償で交換することを申し出ざるを得ませんでした。その費用は4億7500万ドルにも上りました。[ 12 ]

RTLは、チップが想定される動作の実際の機能に関する動作モデルに過ぎません。材料、物理、電気工学といった分野におけるチップの実際の動作とは関連性がありません。そのため、IC設計プロセスの次のステップである物理設計段階では、RTLを、チップに搭載されるコンデンサ、抵抗、論理ゲート、トランジスタといったすべての電子デバイスの実際の幾何学的表現にマッピングします。
物理設計の主なステップを以下に示します。実際には、単純な進行ではなく、すべての目標を同時に達成するためには、かなりの反復作業が必要となります。これはそれ自体が困難な問題であり、「設計の終結」と呼ばれます。
マイクロプロセッサとソフトウェアベースの設計ツールが登場する以前は、アナログICは手計算とプロセスキット部品を用いて設計されていました。これらのICは、オペアンプなどの低複雑度の回路で、通常はトランジスタが10個以下で接続数も少ないものでした。製造可能なICを実現するには、試行錯誤を繰り返すプロセスとデバイスサイズの「オーバーエンジニアリング」がしばしば必要でした。実績のある設計を再利用することで、既存の知識に基づいて徐々に複雑なICを開発することが可能になりました。1970年代に安価なコンピュータ処理が利用可能になると、手計算では実現できないほど高い精度で回路設計をシミュレーションするためのコンピュータプログラムが開発されました。IC専用に設計された最初の回路シミュレータは、1973年にリリースされたSPICE(Simulation Program with Integrated Circuits Emphasis)でした。その後継製品は、現在でもアナログ設計市場を席巻しています。これらのコンピュータ化された回路シミュレーションツールは、手計算では実現できないほど複雑なIC設計を可能にし、アナログASICの設計を現実的なものにしました。
アナログ設計では多くの機能的制約を考慮する必要があるため、自動配線や合成など高度に自動化されたデジタル設計とは対照的に、手動設計が今日でも広く普及しています。[ 14 ]その結果、アナログ回路の最新の設計フローは、トップダウンとボトムアップという2つの異なる設計スタイルによって特徴付けられます。[ 15 ]トップダウン設計スタイルでは、従来のデジタルフローに似た最適化ベースのツールを使用します。ボトムアップ手順では、以前に考案され手順記述でキャプチャされたソリューションの結果とともに「専門家の知識」を再利用し、専門家の決定を模倣します。[ 15 ]例として、 PCellsなどのセルジェネレータがあります。
アナログ IC 設計で最も重要な課題は、半導体チップ上に構築される個々のデバイスのばらつきです。設計者がそれぞれテストされ、値に応じて分類されたデバイスを選択できるボードレベルの回路設計とは異なり、IC 上のデバイスの値は設計者が制御できないほど大きく変わる可能性があります。たとえば、一部の IC 抵抗器は ± 20% 変化する可能性があり、統合BJTの β は20 ~ 100 まで変化する可能性があります。最新の CMOS プロセスでは、垂直 PNP トランジスタの β は 1 を下回ることもあります。設計上の課題に加えて、デバイス特性は処理される半導体ウェハごとに異なることがよくあります。デバイス特性は、ドーピング勾配のために個々の IC ごとに大幅に異なる場合もあります。このばらつきの根本的な原因は、多くの半導体デバイスがプロセス中の制御できないランダムな変動に非常に敏感であることです。拡散時間のわずかな変化、ドーピング レベルの不均一などによって、デバイス特性に大きな影響が及ぶ可能性があります。
デバイスのばらつきの影響を軽減するために使用されるいくつかの設計手法は次のとおりです。[ 16 ]
電子設計自動化ツールを販売している3大企業は、シノプシス、ケイデンス、メンターグラフィックス(現シーメンスEDA)である。[ 17 ]