問題タブ [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 - これらの指示を分解する方法
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 だけを使用してください。そうしないと、これらのオペコードを逆アセンブルするのが難しいからです。
riscv - Chisel で Queue() 関数は何をしますか?
ロケットチップのソースコードを読んでいたら、rocc.scala
ファイル内に使用rocket/src/main/scala/
例がありました。コードの最初の部分で、何をしているのかわからない関数がありますか?AccumulatorExample
rocc
Queue()
ありがとう
riscv - 非 Zynq FPGA 上のロケット チップ
ロケット チップを Zynq 以外の FPGA (altera Stratix V)、つまり riscv-fesvr の実行に使用される ARM コアを含まないボードに移植したいと考えています。ポートを起動するにはどうすればよいですか? また、そのようなボードでロケットチップを実行しようとした人はいますか? そのためにいくつかのリソースを指摘できますか?
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-*
か? どこかに包括的な表はありますか?
simulation - VCS から Questasim Simulator への RISCV テスト ハーネスの移行に関する問題
RISCV ロケット コアをシミュレートしようとしましたが、うまくいきませんでした。Synopsys VCS シミュレータを持っていないため、rocketTestHarness.v
ファイルをそのまま使用することはできません。vc_handle
RocketTestHarness.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 呼び出しを使用します。
誰かがこれについて何らかの支援を提供できれば、本当に感謝しています。
前もって感謝します!!
riscv - RISC-V RV32I ソフト フロート lib は、__muldf3 で MUL および MULHU 命令を呼び出します。
現在のriscv-toolsを使用して、 PicoRV32コアのファームウェア イメージをビルドしています。ファームウェアには浮動小数点が必要なので、-msoft-float
. これは、私が使用しているコンパイラ/リンカー オプションです。
この構成では、__muldf3 は (リンカーの-Map
出力によると)によって提供されます。
しかし、このコードは RV32I ISA と互換性がありません: それはMUL
andMULHU
命令を使用しています!
プレーンな RV32I ISA のソフトフロートを取得するにはどうすればよいですか? 自分のバージョンの libgcc.a をコンパイルする必要がありますか? これを行う方法に関する指示はどこかにありますか?