2017-03-13 8 views
0

検証用テストベンチ/インタフェースで信号を宣言する際に質問があります。私は教科書で言われているように、私はテストベンチやインターフェースの中でそれぞれの信号を宣言していると思いますが、それをやっていなくても間違いなく正しい結果を得ることができます。すべての信号を「ロジック」として宣言し、DUTの正しい入出力ポートに供給することができます。確認テストベンチのポートには必要な指示がありますか?

検証テストベンチに入出力の宣言が必要な場合は混乱しますか?検証テストベンチは必ずしも合成可能ではありませんが、そうではありませんか?私の本のいくつかの例でさえ、入出力ポートを備えたテストベンチを書いていませんでした。時には私は明らかに "module test();"モジュール内のすべての信号は「ロジック」として宣言されます。

誰かがこれについて詳細な説明をすることができますか?私はテストベンチでシグナルの方向を宣言する必要がありますか?

+0

'logic'はverilogのデータ型ですが、ポートの方向を示すものではありません。ポートの方向を指定するには、論理入力または論理出力を使用できます。 –

答えて

3

テストベンチのトップレベルモジュールにはポートがないため、指定する方法はありません。下位レベルのモジュールには、モジュールの境界を越えて上位モジュールまで信号を渡し、ポート宣言に方向が必要な場合はポートが必要です。シミュレータは、モジュール記述がテストベンチまたは設計に使用されているかどうか、および指定された方向を無視するかどうかは気にしません。合成ツールには正しい信号方向が必要です。

SystemVerilogのinterfaceは、ポートとして使用される可能性のある信号の集合であるため、少し複雑です。 interface内で使用されるmodport構成は、ポートおよびその方向として使用される信号を指定する。モジュールポートと同様に、modportはポート構文の一部として指示を必要とします。

+0

私はmodportsが指示を必要と知っている。しかし、modportは必ずしもインターフェースの一部ではありません。私は、信号方向を宣言することなくインターフェイスを頻繁に見ていることがよくありますが、問題を起こさずにインターフェイスをテストベンチに渡すことができます。テストベンチは、その方向性を無視したものを捕まえるようです。例えば、test(インタフェースif);内部のインターフェースは必ずしも方向を持っているとは限らず、私はまだ信号値を取得しています。私はいつも、テストベンチのためだけにインタフェースの信号の方向を指定する必要がありますか? – user3431800

+0

テストベンチの操作に 'modport 'は必要ないということは間違いありません。それをあなたが使用することができる安全の単なる層と考えてください。 –

関連する問題