デジタルエレクトロニクスにおいて、ファンアウトとは、ある単一の論理ゲートの出力によって駆動されるゲート入力の数のことである。
ほとんどの設計では、論理ゲートが接続されてより複雑な回路を形成します。論理ゲートの入力は、競合を引き起こすことなく同時に複数の出力から供給されることはできませんが、1つの出力が複数の入力に接続されることはよくあります。論理ゲートを実装するために使用される技術では、通常、追加のインターフェース回路なしで一定数のゲート入力を直接配線できます。出力の最大ファンアウトは、その負荷駆動能力を表します。これは、その出力を安全に接続できる同種のゲートの入力の最大数です。
ファンアウトの最大制限値は、通常、メーカーのデータシートに特定のロジックファミリまたはデバイスごとに記載されています。これらの制限値は、駆動されるデバイスが同じファミリに属していることを前提としています。
2つの異なるロジックファミリが相互接続されている場合、ファンインとファンアウトよりも複雑な解析が必要になります。ファンアウトは最終的に、出力の最大ソース電流とシンク電流、および接続されている入力の最大ソース電流とシンク電流によって決まります。駆動デバイスは、出力電圧仕様を維持しながら、接続されているすべての入力が必要とする、または提供する電流の合計(出力がロジックハイ電圧レベルかロー電圧レベルかによって異なります)を出力で供給またはシンクできる必要があります。通常、各ロジックファミリについて、メーカーは各ロジックレベルでの最大入力電流を持つ「標準」入力を定義し、出力のファンアウトは、最悪の場合に駆動できるこれらの標準入力の数として計算されます。 (したがって、同じファミリ内のデバイスであっても、駆動される特定のデバイスが、そのファミリの「標準」デバイスよりも、データシートに記載されているように、シンク電流やソース電流が少ない場合、出力がファンアウトで指定されたよりも多くの入力を実際に駆動できる可能性があります。)最終的に、デバイスが一連の入力を(保証された信頼性で)駆動するファンアウト能力を持っているかどうかは、駆動されるデバイスのデータシートに記載されているすべての入力ロー(最大)ソース電流を合計し、それらのデバイスのすべての入力ハイ(最大)シンク電流を合計し、それらの合計を、それぞれ駆動デバイスの保証された最大出力ローシンク電流および出力ハイソース電流仕様と比較することによって決定されます。両方の合計が駆動デバイスの制限内であれば、そのデバイスはそれらのデバイスのそれらの入力をグループとして駆動するDCファンアウト能力を持ち、そうでなければ、メーカーが提示するファンアウト数に関係なく、その能力はありません。しかし、信頼できるメーカーであれば、今回の分析でデバイスが入力信号を駆動できないことが判明した場合、ファンアウトの数値はそれに一致するはずです。
高速信号スイッチングが必要な場合、出力、入力、およびそれらの間の導体の交流インピーダンスによって出力の実効駆動能力が著しく低下する可能性があり、この直流解析だけでは不十分な場合があります。下記の「交流ファンアウト」を参照してください。
理想的な論理ゲートは、入力インピーダンスが無限大で出力インピーダンスがゼロであり、ゲート出力から任意の数のゲート入力を駆動できます。しかし、実際の製造技術では特性が完全ではないため、ゲート出力から後続のゲート入力に電流を流すことができなくなる限界に達します。無理に電流を流そうとすると、その配線の論理レベルに定義された電圧を下回り、エラーが発生します。
ファンアウトとは、入力が必要とする電流が出力が供給できる電流を超え、かつ正しい論理レベルを維持したまま出力に接続できる入力の数です。論理ゼロと論理ワンの状態では電流値が異なる場合があり、その場合はファンアウトが小さいペアを選択する必要があります。これは数式で次のように表すことができます。
どこは床関数です。
これらの数値だけを見ると、TTLロジックゲートはゲートの種類にもよりますが、おそらく2~10個に制限されます。一方、CMOSゲートのDCファンアウトは、実際の回路で発生する可能性よりもはるかに高いことが一般的です(例えば、NXP SemiconductorのHEF4000シリーズCMOSチップの仕様を25℃、15Vで使用すると 、ファンアウトは34,000になります)。
しかし、実際のゲートの入力には、電源レールに対する抵抗だけでなく容量も存在します。この容量は前のゲートの出力遷移を遅らせ、伝搬遅延を増加させます。その結果、設計者は固定のファンアウトではなく、ファンアウトと伝搬遅延(システム全体の最大速度に影響します)のトレードオフに直面することになります。この影響はTTLシステムではそれほど顕著ではないため、TTLが長年にわたりCMOSに対して速度面で優位性を維持してきた理由の一つとなっています。
多くの場合、単一の信号(極端な例としてクロック信号)がチップ上の 10 個をはるかに超えるものを駆動する必要があります。ゲートの出力を 1000 個の異なる入力に単純に配線するのではなく、回路設計者はツリー(極端な例としてクロックツリー)を使用する方がはるかに高速であることを発見しました。たとえば、そのゲートの出力が 10 個のバッファ(または同等に最小サイズのバッファの 10 倍の大きさのバッファ)を駆動し、それらのバッファがさらに 100 個のバッファ(または同等に最小サイズのバッファの 100 倍の大きさのバッファ)を駆動し、それらの最終バッファが目的の 1000 個の入力を駆動します。物理設計の段階で、一部の VLSI 設計ツールは、信号完全性設計のクロージャの一部としてバッファ挿入を実行します。
同様に、64ビットALUでZフラグを生成するために、64個の出力ビットすべてを単一の64入力NORゲートに単純に配線するのではなく、回路設計者はツリー構造を採用する方がはるかに高速であることを発見しました。たとえば、Zフラグを8入力NORゲートで生成し、それぞれの入力を8入力ORゲートで生成するといった方法です。
基数経済を彷彿とさせるように、このようなツリーの総遅延(ステージの総数に各ステージの遅延を掛けたもの)の推定値の一つは、ツリーの各ステージを約 2.7 でスケーリングしたときに最適値(最小遅延)が得られることを示しています。デジタル集積回路を設計する人は、チップ上の各ゲートのファンインとファンアウトが 2 ~ 10 の間になるように、必要に応じてツリーを挿入するのが一般的です。[ 1 ]
したがって、多くの実用的なケースでは、速度制限のため、DCファンアウトではなく、動的またはACファンアウトが主な制限要因となります。たとえば、マイクロコントローラのアドレス線とデータ線に3つのデバイスがあり、マイクロコントローラが最大クロック速度で35 pFのバス容量を駆動できるとします。各デバイスの入力容量が8 pFの場合、許容されるトレース容量は11 pFのみです。(プリント基板上の配線トレースは通常1インチあたり1~2 pFなので、この場合のトレースは最大5.5インチの長さになります。)このトレース長の条件を満たせない場合、マイクロコントローラを信頼性の高い動作のためにバス速度を遅くするか、より高い電流駆動能力を持つバッファチップを回路に挿入する必要があります。より高い電流駆動能力は、簡単に言うと、電流とは電荷の流れの速度であり、電流が増加するとコンデンサの充電速度が速くなり、コンデンサにかかる電圧はコンデンサの電荷を静電容量で割った値に等しくなります。つまり、電流が増加すると電圧の変化が速くなり、バス上での信号伝送速度が向上するのです。
残念ながら、最新のデバイスは高速化しているため、ほとんどのデータシートでは動的ファンアウトが明確に定義されていないことから、正確な動的ファンアウトを決定するにはIBISシミュレーションが必要になる場合があります。(詳細については外部リンクを参照してください。)