FPGA設計におけるメタステービリティの低減

Jason Howie
|  投稿日 2017/02/21 火曜日  |  更新日 2020/11/11 水曜日

ここでは、デジタル回路、そしてFPGA設計におけるメタスタビリティの概念について見ていきます。そして、その「出現」を、その影響を軽減する実証済みの設計原則に従うことで大幅に減少させる方法についても説明します。

メタスタビリティ!これが何らかの未来的な保持容器や力場の完全性に関連していると思われるかもしれませんね。「ワープドライブのフラックストライアングレーターとクリオニックエンベロープのメタスタビリティが臨界レベルに達しています、キャプテン!」

しかし、日々デジタル電子機器と向き合っている皆さんにとって、この用語は軽蔑と尊敬の入り混じった反応を引き出すかもしれません。

ここでは、デジタル回路、そしてFPGA設計におけるメタスタビリティの概念について見ていき、その「出現」を、その影響を軽減する実証済みの設計原則に従うことで大幅に減少させる方法について説明します。

メタスタビリティの説明

メタステービリティは、デジタル回路内のレジスタ(または古い言い方をするとクロックされたフリップフロップ)の出力に関するもので、出力端子が「メタステーブル状態」に入る可能性があります。FPGAデバイスは通常、D型フリップフロップを使用します。このような状態に入る方法を見る前に、レジスタの動作に関連するいくつかの基本的なキータイミング要素を思い出すことが良いでしょう:

「セットアップ時間」 - これは、次のクロックエッジが到着する前に、レジスタへの入力が安定していなければならない最小時間です。データシートでは通常、Tsuとして表示されます。

「ホールド時間」 - これは、クロックエッジの到着後、レジスタへの入力が同じ安定した状態で続く必要がある最小時間です。データシートでは通常、Thとして表示されます。

「クロックから出力までの遅延時間」 - これは、クロックエッジが到着した後、レジスタの出力が変化するまでの時間量です。これは、レジスタの「安定時間」または「伝播遅延」とも呼ばれます。例えば、Tco、またはTphlとTplhとしてデータシートに表示されることがあります。

信号が異なる非同期クロックドメイン間で移動する場合 – 全体の設計内の異なる、または関連しないクロックで動作しているデジタルサブサーキット – メタステービリティに遭遇する可能性があります。これは、設計の非クロック領域から同期システムへのデータ転送にも当てはまります – 例えば、外部(外側)の信号がFPGAに供給される場合です。

次の画像は、非同期信号が同期システムに入る2つの例を示しています。上の例では、異なるクロックドメイン間で信号が移動します。下の例では、非クロックシステムからの信号がクロック(同期)システムに供給されます。

Asynchronous System and Synchronous System Graphic

問題は、あるクロックドメインからのデータ信号が別のクロックドメインのレジスタロジックに到着したときに発生します。ソースドメインからの入力データ信号は、ターゲットドメインのクロックと比較していつでも遷移する可能性があります – 2つのドメイン間には同期性がなく、2つのロジックサブサーキットの遷移速度に関する知識がありません。データ信号が目的地のレジスタに必要なセットアップまたはホールド時間を侵害する点で遷移すると、そのレジスタの出力が「メタステーブル状態」に入る可能性があります – 出力信号が論理Lowでも論理Highでもなく、2つの間の不安定な領域にある状態です。

出力がメタステーブル状態を維持し続ける時間は、レジスタの指定された「クロックから出力遅延時間」(安定化時間)を超えることがあります。ほとんどの場合、レジスタはこの出力の不安定性を迅速に解決し、2つの定義された(そして安定した)状態のいずれかに戻ります。しかし、設計にとっての問題は、少数のケースで、安定した状態に落ち着く時間が十分に速くない場合や、出力信号が誤った論理レベルに解決する場合です。

次の画像は、入力データ信号の遷移に応じたレジスタの出力を示しています。

Output of a register

3つの入力を考慮してください:

入力A:入力はレジスタのセットアップ時間とホールド時間を観察し、デバイスのクロックから出力遅延時間後に出力が利用可能になります。

入力B:入力はレジスタのセットアップ時間中に遷移し、出力はクロックから出力遅延時間を超えて正しい安定レベルに落ち着くまでメタステーブル状態になります。

入力C:入力はレジスタのホールド時間中に遷移し、出力はメタステーブル状態になります。出力はクロックから出力遅延時間を超えて安定状態に落ち着くだけでなく、間違った論理レベルにも落ち着きます!

レジスタの出力が回路内の複数の後続レジスタに並列に供給される場合、これらの宛先レジスタがデータを異なる論理レベルでキャプチャする可能性があります。これは、ソースレジスタからのメタステーブル出力が、各宛先レジスタが次のデータをキャプチャするためにクロックされる前に安定状態に落ち着いているかどうかによります。ソースと宛先のレジスタ間のパス遅延に、メタステーブル出力が安定するまでの時間を加えると、問題はさらに複雑になります。

要約すると、メタステービリティは、設計者にとって統計的または確率に基づく敵です。使用されるデバイスと設計内の回路のレイアウトによって、メタステーブル出力状態が発生するかもしれませんし、発生しないかもしれません。もし発生した場合、それは設計の失敗を引き起こす可能性がありますが、幸運にもデバイスの安定時間、クロック速度、およびルーティングされたパスがその出現を無害にするかもしれません。しかし、設計者としての問題は、本当にその「チャンス」を取る余裕があるかどうかです。設計している製品が医療機器や商用ジェット機の一部である場合、設計の失敗は壊滅的なものになる可能性があります。

メタステービリティを完全に根絶することはできません - 世界中のどのデバイスも、潜在的なメタステービリティ効果から完全に自由であると主張することはできません - しかし、それをほとんど「レーダー上の小さな点」となる程度まで減少させることは可能です。

メタステービリティによる故障に関して、設計の信頼性の尺度として、故障間隔平均時間 - MTBF(Mean Time Between Failures)と呼ばれるものについて話します。メタステービリティを放置した場合 - つまり、その影響を軽減するための設計上の対策が講じられていない場合 - MTBFは数秒ということもあり得ます。メタステービリティと戦うために実証済みのデジタル設計方法論を適用し、設計に使用されるデジタルデバイスの慎重な選択を行うことで、MTBFを大幅に増加させることができます。故障間隔が千年。百万年。数学的に計算し、外挿すると十億年もあり得ます。これらのMTBFの値では、そのような設計は「非常に信頼性が高い」または実質的に「故障安全」(あるいは「故障なし」と言うべきか)として承認されるかもしれません - でも、その絵を想像してみてください。

以下のセクションでは、設計者として、MTBFを延長する方法と、デバイス技術がどのように役割を果たすかについて見ていきます。

非同期信号の同期化

メタステービリティ問題に対する最も一般的で広く受け入れられている解決策は、非同期信号を対象の同期回路のクロックに同期させるためのフロントエンド回路の追加です。最も単純な形では、この回路は1つ以上のD型フリップフロップで構成され、それらが連鎖しており、対象システムのクロックを使用してクロックされます。これは「同期化レジスタチェーン」と呼ばれるか、単に「同期器」と呼ばれます。

各レジスタによって課される追加の遅延により、入力信号はメタステーブル状態から回復する時間が与えられます。チェーン内のレジスタが多いほど、遅延が増え、その結果、メタステーブル出力が解決する時間が増えます。全体の遅延はしばしば「メタステービリティ安定化時間」として知られています。通常、同期回路は2つのレジスタで構成されますが、医療や軍事などの重要なアプリケーションでは、3つが珍しくありません。

次の画像は、非同期信号を同期システムのフロントエンドに同期させるために2段階の同期器を追加する例を示しています。

adding a 2-stage synchronizer to the front-end of a synchronous system

異なるクロックドメイン間やFIFOロジック間のハンドシェイキングロジックは、フロントエンドの同期に加えて、正しいデータ値の受信を保証するためにも使用されます。これは、任意の時点で独立して遷移する可能性がある複数の非同期信号のバス接続されたグループを扱う場合に特に重要です。

最も弱いリンク...

デジタル設計では、複数の異なるクロックドメインが存在し、それらの間で多数の信号がやり取りされることがあります。さらに、外部からの非同期信号(特にFPGAで実装された設計で外部の周辺コンポーネントや通信インターフェースを利用する場合)も多種多様に存在することがあります。そのような場合、全体的なシステム内で異なる非同期信号転送を処理するための多くの同期レジスタチェーンが見つかることは珍しくありません。

MTBFの観点から、各同期チェーンは独自の「値」を持ちます。設計の全体的な故障率は、内部の同期チェーンの個々の故障率の合計であり、故障率は1/MTBFであるため、MTBFが他のチェーンと比較して低下した同期チェーンは、設計の全体的なMTBFに悪影響を及ぼすことが容易にわかります。実際に、設計のMTBFは、最悪の同期チェーンのMTBFに基づいて決まります - これは、5つのチェーンがMTBFが100万年で、6番目のチェーンがMTBFが50年だった場合には、災害になり得ます!!

これに対処するための解決策は、設計内の最も性能が悪い同期チェーンに別のレジスタステージを追加することで、メタステービリティの安定化時間を増加させ、そのチェーンのMTBFを大幅に(場合によっては指数関数的に!)向上させることです - そして結果として全体的な設計も改善されます。

デバイステクノロジー - 高速化対小型化

要約すると、メタステービリティ(この状態に安定性はありませんが!)は、レジスタのセットアップ時間および/またはホールド時間の違反で非同期信号が遷移するときに発生します。セットアップ時間+ホールド時間の全体の長さは、メタステービリティが発生する「ウィンドウ」を本質的に定義します - いわば「メタステービリティウィンドウ」です。

理にかなっていますが、レジスタのセットアップ時間とホールド時間が速ければ速いほど、メタステービリティのウィンドウは小さくなります。実際、より高速なロジックファミリーはこれらの速い時間を示し、したがってメタステーブルイベントの確率を減少させます。メタステーブルイベントが発生した場合(メタステービリティを完全に根絶することはできないことを覚えておいてください)、レジスタは迅速に回復するのに十分な速さです。例えば、74Fファミリーのレジスタは、デバイス速度のスペクトラムの両端にある74LSファミリーから使用されたデバイスよりも、より良いMTBFをもたらすでしょう。

FPGAでは、プロセスジオメトリの減少(180nmから始まり、90nm、65nm、40nm、それ以上へと進む)が、トランジスタのスイッチング速度を速めることに役立ちます。これは通常、メタステービリティによるMTBFの改善を意味します。しかし、サイズの縮小の利点は潜在的なペナルティなしではありません。ジオメトリの縮小は自然に供給電圧の減少をもたらします。メタステーブル状態では、レジスタからの出力は通常、供給電圧の半分です。供給電圧が小さくなるにつれて、満タンと半分の間の電圧差が狭まり、回路のゲインが減少し、レジスタがメタステーブル状態から回復するのにより長い時間がかかるようになります。

FPGAベンダーは通常、これらの絶えず減少するプロセスジオメトリを使用する物理デバイスがメタステービリティに対して堅牢であることを保証するために、厳格なメタステービリティ分析を実施します。

役立つリンク

以下のリンクを使用して、メタスタビリティの現象と、その効果がデジタル電子設計で実質的に無視できるようになる方法について、より詳細に見ていく外部文書にアクセスしてください。これらの文書の多くは、フリップフロップのMTBF(平均故障間隔)を計算するために使用される方程式を見ており、全体の設計のMTBFについても検討し、さらにこの主題に関する情報を参照しています。

デジタルロジックのメタスタビリティ (www.interfacebus.com)

FPGA-FAQ 0017: メタスタビリティについて教えてください (Philip Freidin)

電子機器におけるメタスタビリティ (Wikipedia)

メタスタビリティとは何か? (www.asic-world.com)

設計におけるメタスタビリティ (The VLSI Homepage)

ホワイトペーパー: FPGAにおけるメタスタビリティの理解 (Altera)

アプリケーションノート: Virtex-II Pro FPGAにおけるメタスタブル回復 (Peter Alfke, Xilinx)

アプリケーションノート: メタスタビリティとECLinPSファミリー (Applications Engineering, ON Semiconductor)

5-Vロジック回路におけるメタスタブル応答 (Texas Instruments)

筆者について

筆者について

Jason Howieは、Altiumのテクニカル ライティング担当責任者です。テクニカル ライティングに関する豊富な経験の持ち主であり、朝早くからキーボードを叩いている音がよく聞こえてきます。2000年5月にAltiumへ入社する前、Jasonは英国オックスフォードシャーにある欧州トーラス共同研究施設 (Joint European Torus) でMachine Instrumentation & Protection Systems部門の一員として4年以上過ごしました。

関連リソース

関連する技術文書

ホームに戻る
Thank you, you are now subscribed to updates.