跳转至

问题汇总

提醒

请大家在提问前,仔细阅读报错信息。向助教提问时,提供尽可能多的操作步骤、报错信息以及自己的分析等。我们将不再回答仅问出问题而不加思考的疑问。

另外,我们建议大家阅读提问的智慧,以便于更高效地交流讨论。

仿真框架为什么报错?

请确保下面的内容:

  • vsrc 目录下添加了 your_vsrc 目录,并将 CPU 以及其包含的所有子模块(ALU、寄存器堆)等放入该目录下。注意:PDU 以及上板框架的 TOP 不包含在内。
  • 如果你使用了 Verilog 头文件,则需要在 vsrc 目录下添加 your_include 目录,并放在这里。
  • 运行 cmake 时位于 build 目录下,执行 sim 时位于项目根目录下。
  • 正确连接了 commitdebug 系列的信号。
  • 确保自己没有随意修改 configs.vh 文件中的内容。
  • 如果是 Hit Bad Trap,请确保使用的测试程序最后将 a0 寄存器置为 0。
  • 确保所有的设计文件里均没有 `timescale 语句。
include 相关的问题
  • 解决方案 1:直接删除上板框架中的 config.v 文件,将其中的宏定义内容移动到需要使用宏定义的各个文件中(例如 CPU.v、Decode.v 等),最后删除 CPU 以及其包含的各个模块中所有的 include 语句。此时使用仿真框架只需要将 CPU 以及其子模块导入到 your_vsrc 目录下即可。

  • 解决方案 2:按照下面的步骤进行:

    1. 在所有使用了 config.v 的文件中,将 include 语句改为 `include "config.v"(不再使用相对路径或绝对路径);
    2. config.v 文件放入仿真框架的 your_include 目录下,将 CPU 以及其子模块放入仿真框架的 your_vsrc 目录下;
    3. 在 Vivado 的项目中,将 config.v 设置成 Verilog 头文件。方法为:在 Vivado 的 Sources 窗口中右键 config.v 文件,选择 Set File Type,在弹出的窗口中选择 Verilog Header 即可。
      Image title
      将 config.v 设置成 Verilog 头文件
    4. 此时,仿真框架和上板框架均可正常识别到 config.v 文件。

评论