2016-11-30 11 views

答えて

1

は:

は、どのように私はVerilogの自分自身を生成することができますか?

エミュレータ/共通/ Makefile.includeのMakefileを変更することでVerilogコードを生成できます。 CHISEL_ARGS変数で、 "--backend c"を "--backend v"に変更します。これにより、CHISEL_ARGSの " - targetDir"で指定された場所に、コアとそのスクラッチパッドメモリ(Topという名前のChiselモジュールに対応)のTop.v Verilogファイルがダンプされます。

Top.vモジュールを取得したら、独自のtestharnessとglueコードを記述してTop.vと対話する必要があります。ここでの主な難点は、HTIFリンク( "host-target interface")を介してriscv-fesvrをSodorコアにリンクする必要があることです。これにより、fesvrはSodorコアのスクラッチパッドメモリにバイナリをロードし、コアをリセットから外し、実行中にsyscall、エラー状態、または成功/終了条件をテストすることができます。

これには、基本的に、エミュレータ/ */emulator.cppをVerilogに移植する作業が含まれます。私は、既存のC++コード(エミュレータ/共通/ htif_emulator.ccなど)とインタフェースするVerilogのテストハリスを書くことをお勧めします。エミュレータ/ common/htif_main.ccは、SynopsysのDirectCを使用してVerilogテストハーネスと既存のC++コードとの間のインタフェースを行うスタブの例を示しています。

関連する問題