ポストシリコン検証の計測。 検証におけるイノベーション

ソースノード: 994044

シリコン後の検証を計測することは新しいアイデアではありませんが、ここには工夫があります。 (プレシリコン) エミュレーションを使用して、シリコン内で計測するためのデバッグ観察構造を選択します。 Paul Cunningham (GM、Cadence の Verification)、Raúl Camposano (シリコン カタリスト、起業家、元 Synopsys CTO) と私は、研究アイデアに関するシリーズを続けています。 いつものように、フィードバックは大歓迎です。

ポストシリコン検証の計測

イノベーション

今月のおすすめは ポストシリコン検証のためのハードウェア アサーションを評価するためのエミュレーション インフラストラクチャ。 この論文は、2017 IEEE Transactions on VLSI で発表されました。 著者はカナダ、オンタリオ州ハミルトンのマクマスター大学出身です。

著者らはシリコン後の論理エラーと電気的エラーを区別し、この論文ではフロップのビットフリップを通じて検出可能な電気的エラーに焦点を当てています。 彼らのアプローチは、プレシリコン分析で最適な一連のアサーションを決定することです。 これらは、シリコン後のデバッグをサポートするためにシリコンに実装されます。 論文で示唆されているように、プレシリコン解析は安全解析におけるフォールトに似ており、電気的エラーに対応するフロップにフォールトを注入します。 アサーション合成を使用してアサーションの候補リストを生成します。 彼らのイノベーションの核心は、複数の障害を検出する際にそれぞれのアサーションがどれだけ効果的であるかによって、これらのアサーションを評価する方法を提供することです。

入力の生成はランダムであり、注入された障害 (一時的なものとして扱われる) を順番に分析します。 これにより、障害ごとにユーザーが指定した検出サイクル数が許可されます。 後続のフェーズでは、XNUMX つの異なるカバレッジ手法を使用して有効性を測定します。 フリップフロップのカバレッジでは、いずれかのフロップで挿入されたエラーをキャッチした場合にアサーションをカウントします。 ビット フリップ カバレッジでは、個別のフロップで検出されたエラーの数をアサーションにスコア付けします。 これらのメトリクスは、面積推定値とともに、どの優先アサーションを選択するために (交互に) 使用されます。

ポールの見解

この論文は私たちの論文とうまく組み合わされています 迅速なエラー検出に関する 2020 年 XNUMX 月のブログ (QED)。 QED はポストシリコンの機能バグ検出を加速します。このブログではポストシリコンの電気バグ検出に焦点を当てています。 この論文は読みやすいですが、最初に参考文献 [23] を読むと役立ちます。

感電バグは捕まえるのが難しく、それでも再現して根本的な物理的原因を見つけるのは困難です。 著者らは、組み込みロジックを通じて、そのようなバグによってフロップが誤った値に反転するときを検出する方法を提案しています (これらの反転を見つけること以上に深く掘り下げているわけではありません)。

この論文とその関連参考文献 [23] の核心は、この検出ロジックを作成および合成するための複数ステップの方法です。 それは、設計のプロパティを時間的アサーションとしてマイニングすることから始まります。 ゴールドマインツール。 彼らは、ビット反転を検出する能力の推定値と、シリコンに実装する面積/配線コストの推定値に基づいてアサーションをランク付けします。 ランキングは、候補アサーションを使用して多くのプレシリコン シミュレーションを実行し、ビット フリップ エラーを挿入し、アサーションによって検出されたフリップをカウントすることに依存します。 元の論文では論理シミュレーションを使用していましたが、ここではデザインをアルテラ FPGA ボードにマッピングすることでこれらのシミュレーションを高速化しています。

私は、アサーション マイニング、アサーション合成、アサーション選択のための洗練されたランキング関数など、ポストシリコン ビット フリップ検出のための一貫した方法にいくつかのイノベーションをまとめている点が気に入っています。 ただし、論文の結果セクションでは、フリップフロップの n% でビット フリップを検出するには、設計面積がおよそ n% 増加する必要があることを示しています。 これは、特に電気的なバグの発見に役立つだけであるため、商業用途には困難であるように思われます。 フリップフロップを駆動するロジック コーンを複製し、この複製されたロジックの出力を元のロジックと比較することで、同様の結果が得られる可能性があります。 これは、デザイン内のフロップの 100% でフリップを検出するためにデザイン全体をクローン作成する限界 (つまり、100% のエリア オーバーヘッド) で、彼らの方法と同様のエリア オーバーヘッドを生成するように見えます。

ラウルの見解

この文書にはかなりの詳細が記載されています。 著者らは、3 つの ISCAS 順序回路 (約 12K ゲート、2000 FF) について実験を実行しました。 準備実験では、GoldMine によって生成されたすべてのアサーションを使用して、フリップフロップごとに 256 個のエラーを挿入します。 FPGA の容量が限られているため、著者らは 45 つの回路に対して実行を 45 の「セッション」に分割しました。 結果は、20 セッションであっても、シミュレーション全体で 500 ~ 8 倍の解析加速を示しています (シミュレーションが遅すぎるため、エラー挿入は最大 105 回のみ (55 時間))。 達成可能な最大フリップフロップ カバレッジは、89 つの回路で 99%、3%、XNUMX% です。 マイニングされたアサーションの数によってカバレッジが制御されます。

選択したアサーション (5 ~ 50% のエリア オーバーヘッドに相当) と 1 ~ 256 回の注入で実行すると、ビット カバレッジは 2.2% ~ 34% になります。 ほとんどの場合、アサーション マイナーは 228 時間実行されました。 私を混乱させたのは、実行時間と挿入されたエラーのデータです。 シミュレーションでは、増加は妥当 (直線的) に見えます。 しかし、エミュレーションでは、エラー挿入が 0.045 回から 5.4 回増加すると、2 時間から 8 時間に大幅に増加します。 この点についてもう少し説明が欲しいです。

これは方法論に関する論文です。 ほぼすべての手順を商用ツールで置き換えることができるのが気に入っています。 大型の FPGA ボードを (エミュレータとして) 使用することと合わせて、方法論が拡張されます。 もちろん、方法論を商業化するのは非常に困難ですが、既存のテクノロジーの素晴らしい応用です。

私の見解

シリコン後のデバッグのための安全性解析手法を探求する方法は興味深いものです。 斬新なアイデアですが、商業用途としてはやや非実用的な結果につながります。

この投稿を共有する: 出典: https://semiwiki.com/artificial-intelligence/301350-instrumenting-post-silicon-validation/

タイムスタンプ:

より多くの セミウィキ