2016-11-30 84 views

回答

1

从Sodor README(https://github.com/ucb-bar/riscv-sodor):

我如何生成的Verilog自己?

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

一旦你有了Top.v模块,你将不得不编写你自己的testharness和glue代码来与Top.v交谈。这里的主要困难是您需要通过HTIF链接(“主机 - 目标接口”)将riscv-fesvr链接到Sodor内核。这允许fesvr将二进制文件加载到Sodor内核的暂存器内存中,使内核脱离重置,并在运行时处理任何系统调用,错误条件或测试成功/结束条件时与内核通信。

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