問題タブ [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.

0 投票する
1 に答える
951 参照

riscv - これらの指示を分解する方法

riscv-spec-v2.0 を使用して小さな逆アセンブラーを作成していますが、次の手順とそれらを正しく逆アセンブルする方法についていくつか質問があります。

1. FENCE 命令には、imm に「pred」および「succ」ビット フィールドがあります。

2. AMO 命令には、funct7 に「aq」および「rl」ビットがあります。

3. float 命令には、funct3 に「rm」ビット フィールドがあります。

これらのビット フィールドはすべて、アセンブラでマッピングされていないようです。たとえば、50 ページには「FENCE」とだけ書かれていますが、中間体をどうするかについては書かれていません。または、33 ページに .aq または .rl を最後に配置する例がありますが、両方が存在する場合の対処方法はありません。

4. SCALL、SBREAK は ECALL、EBREAK と同じですが、ERET もあります。SCALL と SBREAK を削除して、ECALL、EBREAK、ERET だけを使用してください。そうしないと、これらのオペコードを逆アセンブルするのが難しいからです。

0 投票する
1 に答える
634 参照

riscv - Chisel で Queue() 関数は何をしますか?

ロケットチップのソースコードを読んでいたら、rocc.scalaファイル内に使用rocket/src/main/scala/例がありました。コードの最初の部分で、何をしているのかわからない関数がありますか?AccumulatorExampleroccQueue()

ありがとう

0 投票する
3 に答える
2306 参照

riscv - 非 Zynq FPGA 上のロケット チップ

ロケット チップを Zynq 以外の FPGA (altera Stratix V)、つまり riscv-fesvr の実行に使用される ARM コアを含まないボードに移植したいと考えています。ポートを起動するにはどうすればよいですか? また、そのようなボードでロケットチップを実行しようとした人はいますか? そのためにいくつかのリソースを指摘できますか?

0 投票する
1 に答える
4033 参照

cpu-registers - RISC-V 呼び出し規約の ABI レジスタ名

RISC-V ABI レジスタ名について混乱しています。たとえば、85 ページの「RISC-V 命令セット マニュアル、ボリューム I: ユーザーレベル ISA、バージョン 2.0」の表 18.2 では、スタック ポインターspが registerであると指定されていますx14。ただし、指示は

riscv64-unknown-elf-as によって 0x00000113 にコンパイルされます (-m32違いはありません)。バイナリで:

だからここspにあるようx2です。次に、少しググって、RISC-V Linux User's Manualを見つけました。このドキュメントでは、 であると述べていspますx30

それで、それは何ですか?異なる ABI はありますか? コマンド ライン オプションを使用して ABI を に設定できますriscv64-unknown-elf-*か? どこかに包括的な表はありますか?

0 投票する
1 に答える
220 参照

simulation - VCS から Questasim Simulator への RISCV テスト ハーネスの移行に関する問題

RISCV ロケット コアをシミュレートしようとしましたが、うまくいきませんでした。Synopsys VCS シミュレータを持っていないため、rocketTestHarness.vファイルをそのまま使用することはできません。vc_handleRocketTestHarness.v には、や などの DirectC インターフェイス ハンドルを使用する extern 関数を含む vcs_main.cc ファイルが含まれていますvc_getScalar vc_putScalar vc_put4stVector vc_4stVectorRef。これらは、Questasim (私が使用しているもの) のような非 VCS シミュレーターでは機能しません。rocketTestHarness.vファイルを VCS シミュレーターから Questasim シミュレーターに移行するために使用できる方法はありますか? または、Questasim を使用してロケット コアをシミュレートできる他の方法はありますか。

私はこれを見ましたが、それがどのように機能するのかわかりません。を使用せずにロケットチップをシミュレーriscv_fesrvrトして、自然環境で動作するようにシミュレートすることはできませんか? vcs_main.ccこれらの関数を DPI 呼び出しロジックに変換できる場合は、DPI 呼び出しを使用します。

誰かがこれについて何らかの支援を提供できれば、本当に感謝しています。

前もって感謝します!!

0 投票する
1 に答える
2037 参照

riscv - RISC-V RV32I ソフト フロート lib は、__muldf3 で MUL および MULHU 命令を呼び出します。

現在のriscv-toolsを使用して、 PicoRV32コアのファームウェア イメージをビルドしています。ファームウェアには浮動小数点が必要なので、-msoft-float. これは、私が使用しているコンパイラ/リンカー オプションです。

この構成では、__muldf3 は (リンカーの-Map出力によると)によって提供されます。

しかし、このコードは RV32I ISA と互換性がありません: それはMULandMULHU命令を使用しています!

プレーンな RV32I ISA のソフトフロートを取得するにはどうすればよいですか? 自分のバージョンの libgcc.a をコンパイルする必要がありますか? これを行う方法に関する指示はどこかにありますか?