私は現在 MUX を実装しています。これをテストするために、入力としてデータを適切に生成し、その出力を監視するためのジェネレーターとモニターを作成しました。
MUX は Avalon Streaming インターフェイスを入力および出力として使用するため、バック プレッシャもサポートされます。
私の質問はです。テスト ベンチは立ち下がりエッジで実行され、DUT と入力データは立ち上がりエッジで生成されます。入力クロックと入力データの両方がデルタ サイクル 0 で生成されます。ただし、DUT から返され、ジェネレータを制御するバック プレッシャ レディ信号はデルタ 3 に設定されています。発生器からの時間データ (デルタ 0) は有効で、DUT の準備は有効です (デルタ 3 の背圧信号)。
ここで、DUT 入力クロックを 1 ピコ秒でスキューすると、問題が修正されます。しかし、それは間違ったアプローチのように感じます。ここでの正しい設計原則は何ですか。?
クロックを 1 ps ずらすか、少なくとも 4 デルタ移動して、すべての信号が raise_edge の前に設定されていることを確認します。
また
生成したデータを移動して、DUT の出力準備完了信号に合わせますか?
また
テストベンチからテストベンチへの決定だけですか?
また、テスト ベンチのクロックはデルタ 0 で生成し、他のすべてのクロックはその後に生成する必要があると考えていました。
Riviera-proでシミュレーションしています