西部数字SweRV RISC-V核心

2020-11-06 07:14:47

通过对该项目的贡献,您同意您的贡献受Apache-2.0的约束。Tools目录下的文件可能在不同的许可证下可用。请查看个别文件以了解详细信息。

├──配置#配置目录│和└──快照#在其中创建生成的配置文件├──设计#设计根目录│和├──DBG#调试器│和├──Dec#解码、寄存器和异常│#├──dmi#dmi块│和├──exu#exu(alu/mul/div)│和├──ifu#Fetch&;分支预测│和├──包括│、├──lib│和└──lsu#加载/存储├──文档├──工具#脚本/Makefile└──测试平台#(非常)简单的测试平台和├──ASM#示例测试文件:└──十六进制#录制的演示十六进制文件。

必须安装RISCV工具链(基于GCC 7.3版或更高版本),以便可以用于准备RISCV二进制文件以运行。

这将使用64K DCCM的参数更新$PWD/Snapshot/Default/中的默认快照。要取消参数设置,可以使用-unset=PARAM选项swerv.config。

例如,如果您希望将构建快照命名为dccm64并在构建过程中引用它,则可以添加-SNAPSHOT=dccm64。

有四种预定义的目标配置:DEFAULT、DEFAULT_AHB、DEFAULT_PD、HIGH_PERF,可以通过swerv.config的-target=name选项进行选择。

$RV_ROOT/CONFIGS/SNAPSHOTS/DEFAULT├──COMMON_DEFINES。vh#`为测试台或设计├──定义定义。h##为C/程序集头├──PD_Defines.vh#`为物理设计定义perl_configs.pl#perl%为编写├──_├──_auto.h脚本配置散列。h#PIC内存映射基于配置大小└──Whisper.json#用于swerv-iss的json文件。

将RV_ROOT环境变量设置为SweRV目录结构的根目录。bash shell示例:Export RV_ROOT=/path/to/swerv csh或其派生项的示例:setenv RV_ROOT/Path/to/swerv

(如果默认已足够,则跳过)(命名快照以区别于默认快照。如果没有明确的名称,它将更新/覆盖默认快照),例如,如果mybuild是快照的名称:

构建一个FPGA速度优化模型:使用-fpga_Optimize=1选项切换.config,以构建一个从触发器模型中移除时钟门控逻辑的模型,从而使构建的FPGA能够以更高的速度运行。这现在是DEFAULT_PD以外的目标的默认选项。

构建功耗优化模型(ASIC流):使用-fpga_Optimize=0选项切换.config以构建一个模型,使时钟门控逻辑能够进入触发器模型,从而使ASIC流获得更好的功耗占用。这现在是目标DEFAULT_PD的默认选项。

此命令将使用AXI总线构建SweRV EH1的验证器模型,并执行一小段指令序列,将Hello world写入总线。

VerilatorTB:开始SIM。

Console.log包含CPU写入控制台地址0xd0580000的内容。Exec.log显示带有GPR更新的指令跟踪。Trace_port.csv包含跟踪端口的日志。当DEBUG=1时,将创建VCD文件sim.vcd,并可通过gtkwave或类似的波形查看器进行浏览。

Make-f$RV_ROOT/Tools/Makefile[<;模拟器&>][DEBUG=1][SNAPSHOT=<;SNAPSHOT&>;][TARGET=<;目标&>][test=<;test&>;][test_DIR=<;path_to_test_dir>;][conf_pars=<;swerv.config选项>;]其中:&。-Cadence xrun,vcs;-Synopsys VCS,#39;vlog&39;Mentor Questa,#39;Riviera;-aldec Riviera-PRO,如果未提供,则清除工作目录,构建Verilator可执行文件并运行测试。debug=1-允许为Verilator、VCS和Riviera生成VCD-PRO和SHM Waves for Irun选项。DEFAULT_AHB';,';DEFAULT_PD&39;,&39;high_perf&39;test-允许运行C(<;test>;.c)或程序集(<;test>;.s)测试,Hello_world默认运行TEST_DIR-替代测试源目录TESTBE/ASM<;SNAPSHOT&>-运行并构建自定义CPU配置的可执行模型,记得提供';用于在自定义配置上运行的参数。CONF_PARAMS-swerv.config的配置参数:ex:';conf_pars=-unset=dccm_enable';要在不使用DCCM的情况下生成。

Makefile默认使用$RV_ROOT/testbench/link.ld文件来构建测试可执行文件。用户可以在与测试源相同的目录中以<;test_name>;.ld的形式提供特定于测试的链接器文件,以构建测试可执行文件。

用户还可以在表单<;test_name>;.make file中创建特定于测试的Makefile,包含构建说明show以创建用于模拟的Program.hex文件。私有Makefile应该与测试源位于同一目录中。(在模拟开始时,Program.hex文件被加载到指令和数据总线存储器从设备,也可以选择加载到DCCM/ICCM)。

注意:运行新测试时,您可能需要从工作目录中删除Program.hex文件。

HELLO_WORLD-要运行的默认测试,将Hello World消息打印到屏幕和控制台。loghello_world_dccm-与上面相同,但从预加载的DCCM中获取字符串。cmark-coremark基准测试使用外部memoriescmark_dccm中的代码和数据运行-与上面相同,从DCCM(更快)cmark_iccm运行数据和堆栈-与上面相同,但代码预加载到ICCM-仅在带有ICCM的CPU上运行使用conf_params=-set=ICCM。

$RV_ROOT/testbench/hex目录包含测试的预编译十六进制文件,以便在未安装RISCV软件工具的情况下进行模拟。

Western Digital、Western Digital徽标、G-Technology、SanDisk、Tegile、UpThere、WD、SweRV Core、SweRV ISS和OmniXend是西部数据公司或其附属公司在美国和/或其他国家/地区的注册商标或商标。所有其他商标均为其各自所有者的财产。