Synopsys は、Intel Graphics の Dr. Theo Drane による興味深い講演を SolvNet サイトに投稿しました。 トピックは、データパスの等価性チェックです。 シノプシス VC の正式な DPV の推奨事項のように聞こえるかもしれませんが、いずれにしても視聴する必要があります。 これは、日常的なユーザー ガイドの種類の売り込みを超えて、より魅力的な領域へと導く、正式な使用法と考慮事項に関する心を拡大する議論です。
知的理解とサンプルテスト
あらゆる形態のテスト駆動シミュレーションは優れており、設計仕様や実装の正確性を検証する上でかけがえのないものです。 始めるのも簡単です。 テスト プログラムを作成し、シミュレーションを開始するだけです。 しかし、その単純さの裏側は、その必要がないということです。 完全に 開始するために何をテストしているのかを理解してください。 私たちは、仕様を注意深く読み、すべてのコーナー ケースを理解していると確信していますが、理解を圧倒するほど複雑な複雑さは必要ありません。
フォーマルは、機能を深いレベルで理解することをお勧めします (少なくとも価値のある結果を提供したい場合)。 上記の例では、単純な質問 (z がすべて 1 になることはありますか) では、シミュレーターで 188 億サイクルの例を示すことができません。 これは極端なコーナー ケースであるため、当然のことです。 正式なテストでは、XNUMX 秒で特定の非常に自明でない例が提供され、これがそのような唯一のケースであることをわずかに短い時間で証明できます。
OK フォーマルでは、動的テストではできなかったことを実行できましたが、さらに重要なことは、シミュレーターでは決して伝えられなかった可能性があることを学んだことです。 その状態が発生する可能性のあるケースは XNUMX つしかないということです。 フォーマルは、限られた一連のテスト ケースにわたる確率論的な要約としてではなく、知的レベルで設計をよりよく理解するのに役立ちました。
仕様の問題
Theo の次の例は、バグ自動販売機に基づいています (ボタンを押すとバグが発生するため、このように呼ばれています)。 これは非常に単純な C から RTL への等価性チェックの問題のように見えます。左側が C モデル、右側が RTL モデルです。 Theo が正式な初期の頃に驚いたことの XNUMX つは、gcc が合理的に動作するにもかかわらず、C モデルの右シフト動作が C 標準で完全に定義されていないことでした。 ただし、DPV は RTL との比較で不一致について文句を言うでしょう。 未定義の動作に依存するのは危険です。
C と RTL の仕様比較には、特にビット幅に関して、他の危険が伴います。 中間信号のキャリー ビットの切り捨てまたは損失 (上記の #3) が良い例です。 これらは仕様の問題ですか? おそらく、仕様と実装の選択の間の灰色の領域です。
同等性チェックを超えて
DPV の主な目的は、C または RTL リファレンスと RTL 実装の間の同等性をチェックすることのようです。 しかし、その必要性は比較的まれであり、そのような技術を適用できる他の便利な方法があります。 最初は実装の世界で古典的でした – 変更を加え、バグを修正しました – その結果、新しいバグを導入しましたか? クロック ゲーティングを追加した後の SEQ チェックに少し似ています。 ブロック出力の到達可能性分析は、場合によっては別の有用なアプリケーションになる場合があります。
テオはさらに創造的になり、研修生に反例を使用して設計をよりよく理解するように依頼し、 数独を解く or 整数を因数分解する. 彼は、DPV がそのような問題にアプローチするための奇妙な方法であることを認めますが、彼の意図は、DPV が等価性チェックのためだけであるという幻想を壊すことであると指摘します。 興味深いアイデアであり、そのような課題を考え抜くことは確かに脳を伸ばします. (私は、彼が数独の問題について言及した直後に、すぐに数独の問題について考え始めたことを告白します。)
包む
Theo は、制約、リグレッション、レガシー RTL モデルとの比較など、プロダクションでの使用において重要な方法論についての議論で締めくくります。 また、チェックしているものが実際にトップレベルの自然言語仕様と一致するかどうかを知るという課題もあります。
非常にエネルギッシュなトーク、一見の価値あり ここ SolvNet で!
この投稿を共有する:
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 情報源: https://semiwiki.com/eda/325878-intel-keynote-on-formal-a-mind-stretcher/
- :は
- a
- 私たちについて
- 上記の.
- 越えて
- 実際に
- 後
- すべて
- 分析
- および
- 別の
- 申し込み
- 適用された
- アプローチ
- です
- AREA
- 周りに
- AS
- At
- ベース
- BE
- なぜなら
- より良いです
- の間に
- 越えて
- 10億
- ビット
- ブロック
- ボックス
- ブレーク
- バグ
- バグ
- (Comma Separated Values) ボタンをクリックして、各々のジョブ実行の詳細(開始/停止時間、変数値など)のCSVファイルをダウンロードします。
- by
- 呼ばれます
- 缶
- 慎重に
- キャリー
- 場合
- 例
- 確かに
- 課題
- 変化する
- チェック
- 点検
- 選択肢
- クラシック
- 時計
- 比較
- 完全に
- 複雑さ
- 条件
- 検討事項
- 制約
- 納得させる
- コーナー
- 可能性
- カウンター
- クリエイティブ
- サイクル
- 危険な
- 日
- 深いです
- 定義済みの
- 配信する
- 実証します
- 設計
- DID
- 議論
- そうではありません
- ドント
- ダイナミック
- 早い
- 励ます
- 特に
- さらに
- EVER
- 例
- 例
- 優れた
- 極端な
- 失敗
- 魅惑的な
- 名
- 固定の
- フリップ
- フォーマル
- フォーム
- 機能性
- GCC
- 取得する
- 与えられた
- 良い
- グラフィック
- グレー
- 灰色の領域
- 起こる
- 持ってる
- 助けました
- しかしながら
- HTTPS
- i
- アイデア
- 直ちに
- 実装
- 重要
- in
- インテル
- 知的
- 意図
- 興味深い
- 中級
- 紹介する
- 問題
- IT
- ITS
- 基調
- 種類
- 知っている
- 言語
- 学んだ
- Legacy
- レベル
- ような
- 少し
- LOOKS
- 損失
- 機械
- 製
- make
- 最大幅
- 言及した
- 方法論
- かもしれない
- モデル
- 他には?
- ナチュラル
- 自然言語
- 必要
- 新作
- 次の
- of
- on
- ONE
- その他
- ピッチ
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- ポイント
- 可能
- ポスト
- 掲示
- かなり
- 主要な
- 問題
- 問題
- 生産
- 演奏曲目
- 受験する
- は、大阪で
- 目的
- 質問
- 読む
- 相対的に
- 結果
- 秒
- セッションに
- すべき
- シグナル
- 簡単な拡張で
- 単純
- シミュレータ
- から
- ウェブサイト
- So
- 一部
- 何か
- すぐに
- 音
- 特定の
- 仕様
- 標準
- start
- 開始
- 簡単な
- そのような
- 概要
- 驚き
- 驚くべき
- 取る
- Talk
- テクノロジー
- test
- テスト
- それ
- ボーマン
- もの
- 考え
- 介して
- 時間
- 〜へ
- トップレベル
- トピック
- 切り捨て
- わかる
- 理解する
- 使用法
- つかいます
- 貴重な
- VC
- 検証する
- 対
- 、
- よく見る
- 見ている
- 仕方..
- 方法
- WELL
- この試験は
- かどうか
- which
- 意志
- 世界
- 価値
- でしょう
- 書きます
- ゼファーネット