chipyard环境下仿真risc-v教程(1):运行chipyard中的默认案例

官网教程:链接

chipyard太难了,我暂时不继续写这个教程了,先弄懂简单的risc工程再来看chipyard…

步骤

(1)按照官网教程安装好chipyard

chipyard中已经包含了所需的toolchain和verilator,不用自己再去下载一遍,chipyard网上教程还是蛮多的,官网也有教程,这里暂时不放了。

(2)进入verilator目录

cd chipyard/sims/verilator

(3)编译chipyard中的default example

make

一段时间后,会生成一个叫simulator-chipyard-RocketConfig的文件,接下来可以利用这个文件来运行我们想测试的example。

一定要make!不然后面的步骤无法继续。(output是后续生成的,可以先不管。)
在这里插入图片描述

(4)测试单个例子

./simulator-chipyard-RocketConfig命令后面接上名字是xxx的(risc生成的)二进制文件,就可以运行了。

./simulator-chipyard-RocketConfig xxx

比如,官网给出了下面这个例子:

./simulator-chipyard-RocketConfig $RISCV/riscv64-unknown-elf/share/riscv-tests/isa/rv64ui-p-simple

为了简便,chipyard官方说也可以用make run-binary BINARY=xxx 代替 ./simulator-chipyard-RocketConfig xxx

make run-binary BINARY=$RISCV/riscv64-unknown-elf/share/riscv-tests/isa/rv64ui-p-simple

在这里插入图片描述

(5)将一组测试案例进行测试

chipyard提供了如下两个命令,可以对同时测试案例库中的一组案例。
下面的命令还是在chipyard/sims/verilator目录下执行的。

make run-asm-tests
make run-bmark-tests

运行完成后,在output文件夹下会生成相应结果。
在这里插入图片描述

(5)查看verilator中make还有哪些用法

chipyard/sims/verilator$ make help

输出为:

design specifier variables:
 ---------------------------
   SUB_PROJECT            = use the specific subproject default variables [chipyard]
   SBT_PROJECT            = the SBT project that you should find the classes/packages in [chipyard]
   MODEL                  = the top level module of the project in Chisel (normally the harness) [TestHarness]
   VLOG_MODEL             = the top level module of the project in Firrtl/Verilog (normally the harness) [TestHarness]
   MODEL_PACKAGE          = the scala package to find the MODEL in [chipyard]
   CONFIG                 = the configuration class to give the parameters for the project [RocketConfig]
   CONFIG_PACKAGE         = the scala package to find the CONFIG class [chipyard]
   GENERATOR_PACKAGE      = the scala package to find the Generator class in [chipyard]
   TB                     = testbench wrapper over the TestHarness needed to simulate in a verilog simulator [TestDriver]
   TOP                    = top level module of the project (normally the module instantiated by the harness) [ChipTop]

 compilation variables:
 ----------------------
   EXTRA_GENERATOR_REQS   = additional make requirements needed for the main generator
   EXTRA_SIM_CXXFLAGS     = additional CXXFLAGS for building simulators
   EXTRA_SIM_LDFLAGS      = additional LDFLAGS for building simulators
   EXTRA_SIM_SOURCES      = additional simulation sources needed for simulator
   EXTRA_SIM_REQS         = additional make requirements to build the simulator
   ENABLE_SBT_THIN_CLIENT = if set, use sbt's experimental thin client
   VERILATOR_PROFILE      = 'none' if no verilator profiling (default)
                            'all' if full verilator runtime profiling
                            'threads' if runtime thread profiling only
   VERILATOR_THREADS      = how many threads the simulator will use (default 1)
   VERILATOR_FST_MODE     = enable FST waveform instead of VCD. use with debug build

 simulation variables:
 ---------------------
   BINARY                 = riscv elf binary that the simulator will run when using the run-binary* targets
   VERBOSE_FLAGS          = flags used when doing verbose simulation [+verbose]
   EXTRA_SIM_FLAGS        = additional runtime simulation flags (passed within +permissive)
   NUMACTL                = set to '1' to wrap simulator in the appropriate numactl command

 some useful general commands:
 -----------------------------
   help                   = display this help
   default                = compiles non-debug simulator [./simulator-chipyard-RocketConfig]
   debug                  = compiles debug simulator [./simulator-chipyard-RocketConfig-debug]
   clean                  = remove all debug/non-debug simulators and intermediate files
   clean-sim              = removes non-debug simulator and simulator-generated files
   clean-sim-debug        = removes debug simulator and simulator-generated files
   run-binary             = run [./simulator-chipyard-RocketConfig] and log instructions to file
   run-binary-fast        = run [./simulator-chipyard-RocketConfig] and don't log instructions
   run-binary-debug       = run [./simulator-chipyard-RocketConfig-debug] and log instructions and waveform to files
   verilog                = generate intermediate verilog files from chisel elaboration and firrtl passes
   firrtl                 = generate intermediate firrtl files from chisel elaboration
   run-tests              = run all assembly and benchmark tests
   launch-sbt             = start sbt terminal
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《计算机组成与设计:RISC-V版本,硬件与软件的互动》是一本关于计算机体系结构的教材。它涵盖了计算机硬件和软件之间的相互作用。 首先,这本教材深入介绍了计算机组成的基本概念和原理。它讲解了计算机硬件的各个组成部分,如央处理器、存储器、输入输出设备等,并详细解释了它们之间的工作原理和互动方式。读者可以通过这些内容全面了解计算机硬件的工作方式。 此外,该教材还重点介绍了RISC-V指令集架构。RISC-V是一种现代的、开放的指令集架构,具有简洁、规范和可定制的特点。本书详细描述了RISC-V指令集的设计和实现,并解释了它与计算机硬件的紧密关系。读者可以通过学习RISC-V指令集,了解指令的执行过程,理解计算机在硬件层面上如何处理指令和数据。 在硬件和软件的交互方面,这本教材强调了它们之间的密切联系。它介绍了硬件和软件之间的界面和通信方式,如总线、断和输入输出等。通过学习这些内容,读者将了解到计算机硬件和软件是如何相互配合工作的。它还讨论了如何进行硬件和软件的调试和优化,以提高计算机的性能和可靠性。 总的来说,《计算机组成与设计:RISC-V版本,硬件与软件的互动》这本书从计算机硬件和软件的角度全面介绍了计算机的组成和互动方式。通过学习这本教材,读者可以深入了解计算机系统的工作原理,并掌握如何设计和优化计算机系统的能力。 ### 回答2: 《计算机组织与设计:RISC-V版》是一本关于计算机硬件和软件互联的重要教材。这本书的主要内容包括计算机组织与结构、指令级并行、存储系统、互连技术、输入输出系统等。该书以RISC-V指令集架构为基础,详细介绍了计算机的硬件结构和设计原理,并与软件编程环境相结合。这种硬件软件相互补充的设计使得计算机能够高效、稳定地运行。 该书的特点之一是使用清晰的语言和具体的实例解释计算机硬件和软件之间的关系。通过逐步引入不同的主题和概念,读者可以深入了解计算机硬件组成的基本原理,并了解它们与软件编程之间的互动关系。此外,书提供了大量的实践案例和练习题,使读者能够巩固所学的知识,并自主进行实践和思考。 在讲解硬件设计方面,该书详细讨论了计算机的基本组成部分,如处理器、存储器、输入输出设备以及互连技术等。它深入探讨了各个组件的工作原理和设计方法,包括流水线、缓存、并发控制等。此外,该书还介绍了指令级并行的相关技术,如流水线、超标量、动态调度等,使读者能够了解如何通过优化硬件设计来提高计算机的性能。 在软件编程方面,该书介绍了RISC-V指令集的特点和使用方法。它详细讲解了指令的结构和功能,以及如何使用汇编语言进行编程。此外,该书还介绍了操作系统、编译器和调试工具等软件开发环境的基本原理和使用方法,使读者能够理解软件和硬件之间的交互关系,以及如何进行有效的软件开发。 总之,《计算机组织与设计:RISC-V版》通过深入浅出的讲解和大量实例的引导,将计算机硬件和软件的复杂性简化为易于理解和学习的内容。它为读者提供了全面而深入的知识,使他们能够了解计算机系统的工作原理、优化硬件设计和进行高效软件编程。这本书是学习计算机组成与设计的重要参考资料,对于想要深入了解计算机硬件和软件的读者来说是一本不可或缺的教材。 ### 回答3: 《计算机组织与设计RISC-V版:硬件软件接口》介绍了计算机硬件和软件的互动关系。它涵盖了计算机系统硬件和软件之间的接口,以及它们是如何相互作用的。 该书首先介绍了计算机体系结构的基本知识,包括指令集架构、计算机组成和设计原则等。接着,它深入探讨了RISC-V架构,该架构是一种现代的指令集架构,被广泛用于教育和学术研究。 书还详细讨论了硬件和软件之间的接口,包括指令集、寄存器、内存和输入输出等。通过深入的解释和实例演示,读者可以了解硬件和软件之间的通信和协作方式。 此外,该书还介绍了一些高级主题,如流水线和并行处理。这些主题涉及到优化计算机性能的技术和策略,使读者能够更好地理解复杂的计算机系统结构。 《计算机组织与设计RISC-V版:硬件软件接口》适用于计算机科学、计算机工程和相关专业的学生。它是一本全面介绍计算机系统结构和设计原理的权威教材,旨在帮助读者深入理解计算机硬件和软件之间的互动关系。读者可以通过阅读本书,获得一种全面的计算机系统知识,为日后的学习和工作打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值