質問

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

PS:行動モデルのテストに使用された広範なCコードを既に持っています。私は、ハードウェアプログラミングの世界では初めてです。どんなポインタでも大歓迎です。

役に立ちましたか?

解決

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

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

FYI。今日の業界で頻繁に使用されているものを学びたい場合は、SystemVerilogを学ぶことをお勧めします。最近のSystemVerilogは、基本的には組み込みの高レベルのソフトウェア言語機能を備えたverilogです。 <!> quot; VMM <!> quot;とともに、<!> quot;検証方法<!> quot; (つまり、ライブラリの束)、ハードウェア検証の分野で大流行しているようです。

他のヒント

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

<!> quot;最先端の<!> quot;テストベンチの方法論の1つ、つまり VMM または OVM 。また、開始方法のドキュメントも提供します。

あなたは、単一システムでRTLとSystemCコードを組み合わせたMentorまたはCadenceのシミュレーターのようなツールを手に入れるべきだと思います。確かに無料ではありませんが、それらは実際に存在するためのソリューションです。

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

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

検証にはSystemCとSystem Verilog / VMMの両方を使用しましたが、答えは依存します。最初のASICを公開しようとしていた予算が限られた新興企業で働いていたとき、SystemCは低予算のシミュレータで動作し、SystemVerilogでは動作しなかったため、当然の選択でした。 SystemCでは、PLIまたはDPIを使用する必要はありません。 SystemCモデルを実際にテストベンチのコンポーネントとしてインスタンス化しますが、これは興味深いものです。

ただし、SystemCは非常に直感的な構文を持たないC ++ライブラリです。 SystemCライブラリの学習を試みる前に、適切なC ++の背景知識が必要です。 <!> quot; Ground Up <!> quot;のSystemCを除き、入手可能なこの本の大部分は残念です。デビッド・ブラック。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top