0

我正在研究 riscv-sodor,我想修改 Makefile 以生成 Verilog。我怎样才能完成这项任务?

问候,

4

1 回答 1

1

来自 Sodor 自述文件(https://github.com/ucb-bar/riscv-sodor):

如何自己生成 Verilog?

您可以通过修改 emulator/common/Makefile.include 中的 Makefile 来生成 Verilog 代码。在 CHISEL_ARGS 变量中,将“--backend c”更改为“--backend v”。这会将内核及其暂存器内存(对应于名为“Top”的 Chisel 模块)的 Top.v verilog 文件转储到 CHISEL_ARGS 中的“--targetDir”指定的位置。

拥有 Top.v 模块后,您将不得不编写自己的测试工具和粘合代码来与 Top.v 对话。这里的主要困难是您需要通过 HTIF 链接(“主机-目标接口”)将 riscv-fesvr 链接到 Sodor 核心。这允许 fesvr 将二进制文件加载到 Sodor 内核的暂存器内存中,使内核脱离复位状态,并在内核运行时与内核通信以处理任何系统调用、错误条件或测试成功/结束条件。

这基本上涉及将 emulator/*/emulator.cpp 移植到 Verilog。我建议编写一个与现有 C++ 代码(emulator/common/htif_emulator.cc 等)交互的 Verilog 测试工具。emulator/common/htif_main.cc 显示了一个示例存根,它使用 Synopsys 的 DirectC 在 Verilog 测试工具和现有 C++ 代码之间进行接口。

于 2016-11-30T18:03:23.773 回答