Altifigence Academy

17 / 20 · 概念

スコアボードと不変条件

最終行列に加えて、項、タグ、エッジ、出力転送を検査します。

2つの参照モデルを分ける

独立したi/j/kループを使う直接の数学的参照モデルで、広い和を計算します。別のタイミングモデルでAを右、Bを下へ動かします。RTLの添字ヘルパを正解モデルにコピーすると、同じバグを再現する危険があります。固定した手計算例から始め、再現可能な乱数入力へ広げます。

結果スコアボードのキーはjobと全体出力座標です。受信した各値を比較し、そのキーを受信済みにします。繰り返すキーは重複、予期しないキーはアドレス誤り、未受信の期待キーは欠落です。ゼロ結果も引き渡しが必要です。範囲外のパディング座標に格納してはいけません。

アレイ内部の不変条件を検査する

各PEは正確に[0,1,...,K−1]を消費しなければなりません。対応する有効オペランドのjobとkタグは同じでなければなりません。Countは0からKの間です。停止エッジはオペランド、valid、タグ、アキュムレータ、countを保持します。クリア後はcountとアキュムレータが0で、有効トークンがありません。ブロックされた結果はvalidをアサートしたままデータとjobを保持します。

層失敗の例疑われる不具合
算術19でなく23添字、符号、幅
項[0,1,1]トークン重複
タイミング最終PEがE2で完了早すぎる完了
停止停止中にcountが変化一部だけの状態保持
出力同じキーを2回受信ハンドシェイク制御

2×2例では、最終PEはE2後に18、E3後に50です。E2で全体doneを上げるバグは、数値とタイミング両方の検査に失敗するはずです。逆に、同じ値の積の重複と欠落は最終和を保つ場合があり、項の追跡がその偶然を検出します。

乱数シード、行列、寸法、幅、停止位置を保存します。最初に不一致となるPE、項、物理エッジを記録します。意図したタグ誤りは黙って消えず、見える形で失敗する必要があります。

E_t後の状態を一貫して観測します。Node参照実行、RTLコンパイル、RTLシミュレーション、合成、タイミング収束、DDSプロジェクト実行、基板テストは異なる事実を示します。付属のNodeプログラムは算術とスケジュールのモデルを検証します。将来のRTLテストで例を再利用しても、独自のツール版、コマンド、ログを残す必要があります。

自分で考えてみましょう

最終和だけの検査では、1項の重複と1項の欠落を見逃す入力を作ってください。

解説を見る

A行[1,1]とB列[5,5]の正しい和は10です。[0,0]を消費しても10ですが、k0が重複しk1が欠落しています。値と厳密な項一覧[0,1]の両方を要求するとバグを検出できます。

選択はこのブラウザに適用されます。フッターからいつでも変更できます。