問題タブ [riscv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
riscv - ロケットプロセッサーのトップモジュールはどこ?
make (ロケットの作成とプロジェクトの作成) を行いましたが、ターゲット ボードがまだないため、make プロジェクトでエラーが発生しました。そのため、viva do のプロジェクト ファイルが完全に生成されていません。ファイルを手動で追加する必要があります。
ロケットプロセッサ(標準構成)のトップモジュールはどこにありますか?
scala - ロケット チップのチゼルでスタック メモリの実装が正しく機能しない
私はロケット コアの rocc インターフェースを変更しようとしており、現在、rocc インターフェースを変更して、custom0 命令を使用してデータをロードおよび保存できるスクラッチパッドとして機能させています。チゼルで作成し、スクラッチパッド内でインスタンス化したスタック メモリにデータをプッシュ アンド ポップしようとすると、問題が発生します。関数フィールドの値が異なる同じcustom0命令を使用して、スタックにプッシュおよびポップします。
チゼルのコードは、スクラッチパッドと私のスタックの両方について以下に示すとおりです
フロント エンド サーバーで実行している C コードは次のとおりです。
ご覧のとおり、1 から 6 までの一連の数字をプッシュしようとしていますが、zed ボードでこのコードを実行すると、これが出力されます。
理想的には、6,5,4,3,2,1 をポップする必要があります
c - RISC-V アセンブリ - スタック レイアウト - 関数呼び出し
現在、RISC-V プロセッサの実装に取り組んでいます。部分的に手作りのアセンブリ コードを実行する必要があります。(最後に、動的コード インジェクションがあります。) この目的のために、RISC-V アセンブリ内の関数呼び出しの基本を理解する必要があります。
このトピックは非常に役に立ちました:関数呼び出しスタックに関する混乱
しかし、私はまだ関数呼び出しのスタック レイアウトに苦労しています。次の C コードを検討してください。
このプログラムは、一連の加算による基本的な乗算を実装します。派生アセンブリ コード ( riscv64-unknown-elf-gcc -nostartfiles mul.c -o mul && riscv64-unknown-elf-objdump -D mul
) は次のようになります。
説明が必要な重要な手順は次のとおりです: ( some_func(int,int,int)
)
および: ( main()
)
私の理解から:スタックポインタは、リターンアドレスとパラメータのためのスペースを作るために移動されます。(main
ここでは特殊なケースかもしれません。) 渡された引数がスタックにある場合、どのように扱われますか? それらはどのように取得されますか?一般に、方法論は私には明らかですが、このセグメントを機能させるためには、どのように手作業でコーディングすればよいでしょうか。
関連トピックに関しては、スタックは次のようになります。
しかし、それだけです。これがどのように配置され、これら 2 つのリスト (関数呼び出し) がどのように関連しているか、誰か指摘できますか?
verilog - Rics-v verilog のシミュレーション
ベンチマークをコンパイルし、.hex ファイルを生成しました。Verilog ファイルに .hex ファイルを含める場所。
verilog ファイル用に持っているものはすべて、rocket-chip フォルダー内の Top.DefaultVLSIConfig.v と memdessertMemDessert.DeafultVLSIConfig.v です。
OS に vcs シミュレーターがありません。verilog ファイルと hex ファイルを使用して、別のプラットフォームでシミュレーションを実行できますか?
ハイダー
riscv - FPU が無効になっていると riscv ロケット チップでコードを実行できない
私は AC コードを書き、それを riscv64-unknown-elf-gcc でコンパイルし、プロキシ カーネルとフロント エンド サーバー (./fesvr-zynq pk ) を使用して zedboard でインスタンス化されたロケット チップで実行しました。
fpu が configs.scala から有効になっている場合、同じバイナリが zedboard で機能しますが、fpu が無効になっている場合、バイナリは実行されません。
gcc - Spike を使用した RISC-V 32b シミュレーション
32ビットモードでスパイク/ピークを使用した人はいますか?
最初の build.sh インストールでは 32b バージョンの pk が提供されなかったので、riscv32-unknown- を使用しました。
elf-gcc を使用して、次のように 32b RISC-V ターゲット プロセッサの pk をクロスコンパイルします。
何かご意見は?