问题标签 [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 回答
1324 浏览

riscv - Initializing stack pointer

I'm currently trying to use the GCC toolchain for RISC-V but i'm running into a few problems.

It looks like the stack pointer doesn't get initialized properly. I know i should initialize it myself, but i can't figure out where. I'm using the default linker script altered with the correct memory addresses and in this script a constant _gp gets set. This constant is used in the default startup code to initialize the gp register.

Unfortunately this doesn't set the sp register. How can i set up the stack pointer without using my own start up code?

0 投票
1 回答
270 浏览

riscv - 设置工具链时缺少配置

我正在尝试设置 RISC-V 工具链。我正在遵循 RISC V 网站中指定的说明。步骤是

步骤 1:git 子模块更新 --init --recursive 步骤 2:导出 RISCV=/path/to/install/riscv/toolchain 步骤 3:./build.sh

运行脚本时遇到错误 build.common 错误是 “build.common: line 30: ../configure: No such file or directory”

有人可以尝试解决这个问题吗?

0 投票
1 回答
951 浏览

riscv - 如何反汇编这些指令

我正在使用 riscv-spec-v2.0 编写一个小反汇编程序,并对以下说明以及如何正确反汇编它们有一些疑问:

1. FENCE指令在imm中有“pred”和“succ”位域

2. AMO指令在funct7中有“aq”和“rl”位

3.浮点指令在funct3中有一个“rm”位域

所有这些位域似乎都缺少汇编器中的映射。例如,第 50 页只写了“FENCE”,但没有说如何处理中间体。或者第 33 页有一个将 .aq 或 .rl 放在末尾的示例,但如果两者都存在,则不应该做什么。

4. SCALL、SBREAK 与 ECALL、EBREAK 相同,但也有 ERET:所以为什么不放弃 SCALL 和 SBREAK 而只使用 ECALL、EBREAK 和 ERET,否则很难反汇编这些操作码。

0 投票
1 回答
263 浏览

scala - 将 uncore 包添加到 Chisel 项目

rocc.scalaRocket repo中有一个描述接口的文件rocc,我想构建它的verilog代码并查看代码。我的问题是我不知道如何将其他包导入到我的项目中,例如“uncore. ”或“Util. ”并运行SBT.

现在用于构建我刚刚使用的新项目build.sbtchisel-dependent.sbt文件位于 chisel-tutorial/problems 文件夹中

谢谢

0 投票
1 回答
634 浏览

riscv - Chisel 中的 Queue() 函数有什么作用?

我正在阅读火箭芯片的源代码,在rocc.scala文件中rocket/src/main/scala/有一个AccumulatorExample使用rocc. 在代码的第一部分,有一个函数Queue()我不知道它在做什么?

谢谢

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 寄存器名称感到困惑。例如,“RISC-V 指令集手册,卷 I:用户级 ISA,2.0 版”第 85 页中的表 18.2 指定堆栈指针sp为 register x14。然而,指令

由 riscv64-unknown-elf-as 编译为 0x00000113 (-m32没有区别)。二进制:

所以这里sp似乎是x2。然后我搜索了一下,找到了RISC-V Linux User's Manual。该文件指出spx30

那是什么?是否有不同的 ABI?我可以使用命令行选项将 ABI 设置为riscv64-unknown-elf-*吗?某处有综合表吗?

0 投票
1 回答
220 浏览

simulation - RISCV 测试工具从 VCS 迁移到 Questasim Simulator 的问题

我一直在尝试模拟 RISCV 火箭核心,但不幸的是,我没有 Synopsys VCS 模拟器,因此rocketTestHarness.v无法按原样使用该文件。RocketTestHarness.v 包含一个 vcs_main.cc 文件,该文件具有使用 DirectC 接口句柄(如vc_handle和)的外部函数vc_getScalar vc_putScalar vc_put4stVector vc_4stVectorRef。这些不适用于像 Questasim(我一直在使用的那个)这样的非 VCS 模拟器。有什么方法可以用来将rocketTestHarness.v文件从 VCS 模拟器迁移到 Questasim 模拟器。或者有没有其他方法可以使用 Questasim 模拟火箭核心。

我看着这个,但我不确定这一切是如何工作的。不使用和模拟就不可能模拟火箭芯片riscv_fesrvr,因为它可以在自然环境中工作。vcs_main.cc如果这些函数可以转换为 DPI 调用逻辑,我愿意使用 DPI 调用。

如果有人可以为此提供一些帮助,我将不胜感激。

提前致谢!!

0 投票
1 回答
335 浏览

cpu-architecture - MemReq 和 MemResp 如何在 RoccIO 中准确工作 - RISCV

我试图弄清楚当我使用 RoCCIO 时如何在 RISCV 中读取和写入内存。但我无法清楚地了解发生了什么。尤其是我如何处理内存或者我应该如何使用内存tag。是否有任何资源可以找到如何在 Rocket 核心和我的加速器之间传输数据?

他们在uncore/src/main/scala/consts.scala路径中提到了不同类型的内存cmd。但还有什么?

例如,我想将数组的起始地址和计划提取的元素数量传递到加速器中,然后开始提取它们。我应该使用什么信号?

谢谢

0 投票
1 回答
2037 浏览

riscv - RISC-V RV32I 软浮点库在 __muldf3 中调用 MUL 和 MULHU 指令

我正在使用当前的 riscv-toolsPicoRV32内核构建固件映像。固件需要浮点,所以我使用-msoft-float. 这是我正在使用的编译器/链接器选项:

在此配置中,__muldf3 由(根据链接器-Map输出)提供:

但此代码与 RV32I ISA 不兼容:它使用MULandMULHU指令!

如何获得普通 RV32I ISA 的软浮动?我需要编译我自己的 libgcc.a 版本吗?是否有关于如何执行此操作的说明?