1

Verilog ベースの RTL コードを検証するタスクが割り当てられています。現在、verilog を使用して RTL テストベンチをコーディングするのは非常に難しいようです (私にとっては)。そこで、次のいずれかを試してみたいと思います。- RTL への PLI インターフェイスを提供してみて、それによってテスト用の 'C 関数を呼び出す - 'C 関数とのインターフェイスにシステム 'C を使用する

PS: ビヘイビア モデルのテストに使用された広範な 'C コードが既にあります。ハードウェア プログラミングの世界は初めてです。任意のポインタをいただければ幸いです。

4

4 に答える 4

5

ビヘイビアーモデルのテストに使用された広範なCコードが既にある場合は、Verilogからそのcコードを呼び出すことができるPLI(またはDPI)インターフェイスを追加するだけです。

SystemCは基本的にC++であり、HWのモデル化を可能にする多くのクラスがあります。HWをテストできるCモデルがすでに利用可能であるため、試行しているタスクについてSystemCを学習することでどのようなメリットが得られるかわかりません。SystemCを学ぶことは、あなたがやろうとしていることに対しておそらくやり過ぎです。

ご参考までに。今日の業界で頻繁に使用されていることを学びたい場合は、SystemVerilogを学ぶことをお勧めします。最近のSystemVerilogは、基本的に、一連の高レベルのソフトウェア言語機能が組み込まれたVerilogです。「VMM」とともに、「検証方法論」(つまり、多数のライブラリ)は、ハードウェア検証の分野で大流行しているようです。

于 2009-03-17T08:38:11.987 に答える
4

この質問は、DUV (検証中のデバイス) またはお持ちの C コードを知らずに答えるのは簡単ではありません。デザインをシミュレートしてチェックする手段が必要です。ここでは、トランザクション レベル (C データ構造) からピン レベルへの変換が必要になる可能性があります。SystemVerilog インターフェイスまたは SystemC がアプローチの可能性があります。DPI/PLI インターフェイスはまだ使用していません。

「最先端」のテストベンチを使用するには、VMMまたはOVMというテストベンチ手法の 1 つを使用することを検討する必要があります。また、開始方法のドキュメントも提供します。

于 2009-03-17T09:27:45.207 に答える
0

検証にはSystemCとSystemVerilog/ VMMの両方を使用しましたが、答えは状況によって異なります。私が最初のASICをドアから出そうとして予算が限られていたスタートアップと一緒にいたとき、SystemCは低予算のシミュレーターで実行され、SystemVerilogは実行されなかったため、当然の選択でした。SystemCでは、PLIまたはDPIを使用する必要はありません。実際に、SystemCモデルをテストベンチのコンポーネントとしてインスタンス化します。これは興味深いことです。

ただし、SystemCはC ++ライブラリであり、非常に直感的な構文はありません。SystemCライブラリを学習する前に、適切なC++のバックグラウンドを持っている必要があります。このために入手できる本は、DavidBlackによる「SystemCfromthe Ground Up」を除いて、ほとんどがひどいものです。

とはいえ、私が見てきたことから、SystemCは当然、検証言語ではなく高レベルのモデリング言語であり、実際のシミュレーターを購入する予算のある人は、もはやSystemCを検証に使用していません。一般的なキャリア開発の観点から、SystemVerilogが利用できる場合はそれを使用します。さらに、いつでもDPIを使用してCモデルに接続し、出力チェックを行うことができます。出力チェックでは、SV / VMMで記述されたジェネレーター、モニター、スコアボードを引き続き使用します。

于 2009-10-24T04:30:11.010 に答える
0

RTL と SystemC コードを 1 つのシステムで組み合わせた Mentor や Cadence のシミュレーターのようなツールを入手する必要があるようです。確かに無料ではありませんが、実際に存在するソリューションです。

必要な構造的に正しいソリューションは、C または SystemC が RTL を呼び出すことであり、その逆ではありません。これを行うことは、RTL シミュレーターを C プログラムまたは SystemC プログラムに統合することを意味します。それは確かに実行可能ですが、かなり大きな仕事です。

また、SystemVerilog を使用することは非常に理にかなっていると思います。

于 2009-08-14T08:03:05.710 に答える