【问题标题】:How to simulate the RISCV Rocket chip如何模拟RISCV Rocket芯片
【发布时间】:2015-06-15 19:28:55
【问题描述】:

根据 riscv-gcc 编译器我们生成了二进制文件。该二进制文件数据通过该信号馈送到火箭芯片。 io_host_in_valid,输入 [15:0] io_host_in_bits

这里 io_host_in_bits 是 16 位的,所以我们在 little-Endian 模式下为每条指令数据驱动 2 次。 我们没有收到 Rocket core (HTIF) 的任何回应。 如何仿真 Rocket 内核以及是否可以在 Xilinx Vivado 2014 中进行仿真以及调试设计。 谁能帮我解决这个问题

问候, 桑托什·库马尔。

【问题讨论】:

    标签: riscv rocket


    【解决方案1】:

    有关 Rocket Chip 基础架构的更多信息,我建议您查看第一个 RISC-V Bootcamp 中的幻灯片和视频。

    Rocket Chip 可以通过两种不同的方式进行模拟/调试:C 模拟器和 Verilog。有关使用这些模式的信息,请咨询火箭芯片README

    【讨论】:

    • 我们正在尝试以verilog方式模拟设计。我们正在向 HTIF 发送有效指令,但我们没有得到核心的任何响应。
    • 你用的是前端服务器吗?你在使用火箭芯片回购的线束吗?
    • 我们正在使用火箭芯片线束,我们正在通过 HTIF 将数据驱动到 Rocketcore。我们正在尝试在 questa 模拟中模拟设计。可以这样做吗?你能帮忙提供一些意见吗
    • 简短的回答是 HTIF 是一种加载处理器内存(包括发送程序二进制文件)的方式,不一定是向它提供指令的方式。您将希望使用前端服务器 (FESVR) 或至少研究其代码以了解使用 HTIF。我将邮件列表中的回复作为另一个答案发布。
    • 在 vcs_main.cc 文件中,我们有 vcs 模拟器例程。 vcs 模拟器将使用 DirectC,因此我们必须将这些例程更改为 modelsim 模拟器兼容。这里我们有 vcs 例程 vc_getScalar vc_putScalar vc_put4stVector vc_4stVectorRef 如何用普通的 C++ 逻辑替换这些例程。
    【解决方案2】:

    Yunsup 在 riscv-hw 邮件列表上的回复:

    我会查看http://riscv.org/tutorial-hpca2015/riscv-rocket-chip-generator-tutorial-hpca2015.pdf,了解接口和 FPGA 设置的概述。

    这是我们用来测试火箭芯片的测试台的链接:https://github.com/ucb-bar/rocket-chip/blob/master/vsrc/rocketTestHarness.v。我会看一下 htif_tick 函数,它的实现可以在 https://github.com/ucb-bar/rocket-chip/blob/master/csrc/vcs_main.cc 找到,它调用 htif_emulator_t (https://github.com/ucb-bar/rocket-chip/blob/master/csrc/htif_emulator.h) 上的一个方法,该方法继承自 htif_pthread_t (https://github.com/riscv/riscv-fesvr/blob/master/fesvr/htif_pthread.cc)。你也应该看看https://github.com/riscv/riscv-fesvr/blob/master/fesvr/htif.cc

    主机接口 (HostIO) 不直接接受指令,它是前端服务器 (https://github.com/riscv/riscv-fesvr/tree/master/fesvr) 访问目标内存和内核控制和状态寄存器 (CSR) 的端口。

    【讨论】:

    • 感谢您的宝贵回复。在这里,我正在研究 Questa 模拟器!所以我必须使用 DPI 或 PLI 调用?
    • 无论您使用什么模拟器,都需要制作安全带。线束应通过 HTIF 连接到处理器并从 FESVR 获取程序。 Rocket Chip 存储库包括一个 C++ 工具以及用于 VCS 的 Verilog 工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多