私はriscv-sodorに取り組んでいます。Verilogを生成するようにMakefileを修正したいと思います。この作業を行うにはどうすればよいですか?ソドー島README(https://github.com/ucb-bar/riscv-sodor)からriscv-sodor用のVerilogを生成する
よろしく、
私はriscv-sodorに取り組んでいます。Verilogを生成するようにMakefileを修正したいと思います。この作業を行うにはどうすればよいですか?ソドー島README(https://github.com/ucb-bar/riscv-sodor)からriscv-sodor用のVerilogを生成する
よろしく、
は:
は、どのように私は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++コードとの間のインタフェースを行うスタブの例を示しています。