如何从C代码生成十六进制文件以测试32位RISC-V硬件设计?

时间:2016-04-15 13:13:15

标签: hardware riscv

我在Verilog的硬件设计基于Berkeley的Vscale处理器开发。为了测试设计,我想编译一些C程序并生成hexfile。我最终想要从hexfiles生成ROM并执行Verilog模拟。哪个编译器最适合这个目的,riscv64-unknown-elf-gcc或riscv32-unknown-elf-gcc? Vscale处理器的架构是RV32IM。

2 个答案:

答案 0 :(得分:2)

您可以使用elf2hex命令从elf文件创建.hex文件(使用gcc -o创建),  即:$viewContentLoaded 如果您打算使用32位架构,我将使用riscv32-unknown-elf-gcc进行编译。

答案 1 :(得分:1)

我目前使用objcopy来测试我的核心设计。当前版本的gcc包含一个patch,它使objcopy能够输出verilog内存文件。

riscv32-unknown-elf-objcopy -O verilog input.elf output.vh

我可以轻松地将这些文件加载​​到modelsim的模拟中。

但是要回答你的问题,这将生成英特尔格式的hex文件。

riscv32-unknown-elf-objcopy -O ihex input.elf output.hex

Objcopy还支持指定要导出的代码段和哪些内存位置。