我在Verilog的硬件设计基于Berkeley的Vscale处理器开发。为了测试设计,我想编译一些C程序并生成hexfile。我最终想要从hexfiles生成ROM并执行Verilog模拟。哪个编译器最适合这个目的,riscv64-unknown-elf-gcc或riscv32-unknown-elf-gcc? Vscale处理器的架构是RV32IM。
答案 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还支持指定要导出的代码段和哪些内存位置。