如何合成火箭系统?
How to synthesize a Rocket system?
我正在尝试熟悉 RISC-V ISA 和 Rocket Chip。我在 vsim
目录中使用 make verilog
命令设置了 CONFIG=DefaultSmallConfig
并生成了 Verilog 代码。我有几个关于输出以及如何使用 Design Compiler (DC) 综合系统的问题。
如何去掉调试相关的端口和线?我只需要综合核心及其外设,不需要综合调试相关modules/wires.
是顶层模块ExampleRocketSystem
吗?我必须在DC中设置current_design
并且需要知道顶层模块是什么
除了 freechips.rocketchip.system.DefaultSmallConfig.v
输出文件,我还需要什么才能 运行 完整的 DC 合成?
假设我使用输出 Verilog 文件而不使用其他文件进行 DC 合成,我会得到很多未解析的引用和寄存器,这些引用和寄存器由于是常量而被删除。我在这里错过了什么?
1) 一般情况下很难删除调试端口,我不确定如何彻底删除。还值得注意的是,如果您不包括用于启动的外围设备,您将希望保留调试端口以帮助您加载测试程序。
2) 是 ExampleRocketSystem
是顶层模块
3) 您还需要实现设计中使用的存储器。默认情况下,你应该在 generated-src 中有一个 *.behav_srams.v
文件,它有一个简单的 rams verilog 行为模型,你可以包含它应该变成 DC 中的一堆触发器。如果您可以访问 SRAM,您可能会用那些替换这些触发器。
4) 你不应该得到未解析的引用,但是由于寄存器是常量而删除寄存器是合理的。
我正在尝试熟悉 RISC-V ISA 和 Rocket Chip。我在 vsim
目录中使用 make verilog
命令设置了 CONFIG=DefaultSmallConfig
并生成了 Verilog 代码。我有几个关于输出以及如何使用 Design Compiler (DC) 综合系统的问题。
如何去掉调试相关的端口和线?我只需要综合核心及其外设,不需要综合调试相关modules/wires.
是顶层模块
ExampleRocketSystem
吗?我必须在DC中设置current_design
并且需要知道顶层模块是什么除了
freechips.rocketchip.system.DefaultSmallConfig.v
输出文件,我还需要什么才能 运行 完整的 DC 合成?假设我使用输出 Verilog 文件而不使用其他文件进行 DC 合成,我会得到很多未解析的引用和寄存器,这些引用和寄存器由于是常量而被删除。我在这里错过了什么?
1) 一般情况下很难删除调试端口,我不确定如何彻底删除。还值得注意的是,如果您不包括用于启动的外围设备,您将希望保留调试端口以帮助您加载测试程序。
2) 是 ExampleRocketSystem
是顶层模块
3) 您还需要实现设计中使用的存储器。默认情况下,你应该在 generated-src 中有一个 *.behav_srams.v
文件,它有一个简单的 rams verilog 行为模型,你可以包含它应该变成 DC 中的一堆触发器。如果您可以访问 SRAM,您可能会用那些替换这些触发器。
4) 你不应该得到未解析的引用,但是由于寄存器是常量而删除寄存器是合理的。