如何合成火箭系统?

How to synthesize a Rocket system?

我正在尝试熟悉 RISC-V ISA 和 Rocket Chip。我在 vsim 目录中使用 make verilog 命令设置了 CONFIG=DefaultSmallConfig 并生成了 Verilog 代码。我有几个关于输出以及如何使用 Design Compiler (DC) 综合系统的问题。

  1. 如何去掉调试相关的端口和线?我只需要综合核心及其外设,不需要综合调试相关modules/wires.

  2. 是顶层模块ExampleRocketSystem吗?我必须在DC中设置current_design并且需要知道顶层模块是什么

  3. 除了 freechips.rocketchip.system.DefaultSmallConfig.v 输出文件,我还需要什么才能 运行 完整的 DC 合成?

  4. 假设我使用输出 Verilog 文件而不使用其他文件进行 DC 合成,我会得到很多未解析的引用和寄存器,这些引用和寄存器由于是常量而被删除。我在这里错过了什么?

1) 一般情况下很难删除调试端口,我不确定如何彻底删除。还值得注意的是,如果您不包括用于启动的外围设备,您将希望保留调试端口以帮助您加载测试程序。

2) 是 ExampleRocketSystem 是顶层模块

3) 您还需要实现设计中使用的存储器。默认情况下,你应该在 generated-src 中有一个 *.behav_srams.v 文件,它有一个简单的 rams verilog 行为模型,你可以包含它应该变成 DC 中的一堆触发器。如果您可以访问 SRAM,您可能会用那些替换这些触发器。

4) 你不应该得到未解析的引用,但是由于寄存器是常量而删除寄存器是合理的。