跳转至

错误速查检查单

仿真前检查单

  • 工程目录路径中没有中文
  • 工程中没有 Syntax Error Files
  • PLL 使用情况适用
    • 硬件已经接入了使用 locked 的 reset 信号
    • 仿真前 2000ns 未执行任何有效操作
  • 工程所在盘拥有足够硬盘空间和操作权限进行仿真
  • 开始仿真

仿真时检查单

  • 外设信号的 X 已经消除,对应外设接入时适用
    • Base RAM 相关
    • Ext RAM 相关
    • UART 相关
    • Flash 相关
    • X 出现时适用
      • 检查对应控制是否使用寄存器
      • 若使用寄存器,确保信号拥有正确的复位逻辑
      • 若使用组合逻辑
        • 排除可能的 Multiple Driven Net
        • 排除可能的 Latch
      • 检查信号值来源,确认 X 的传播情况
  • 外设信号已置于非使能状态,未接入对应外设时适用
    • Base RAM 相关
    • Ext RAM 相关
    • UART 相关
    • Flash 相关
  • 仿真时没有出现:Iteration limit xxx is reached.,出现时适用

    • 进行综合
    • 检查 xxx.runs/synth_1/runme.log
    • 寻找如下图所示的信号列表

    • 在其中插入寄存器断开组合逻辑回路

    • 重新仿真,重新进行该项检查
  • 各项仿真结果符合预期,外设工作出现异常时适用

    • 找到最早发生问题的仿真时刻
    • 地址错误
      • 检查 Wishbone 总线地址
      • 检查控制器地址
      • 溯源排查问题
    • 数据错误
      • 向前使用搜索工具检查对应地址的写入情况
      • 溯源排查问题
    • 波形错误
      • SRAM 写入有 Thold
      • SRAM 操作有 Tsetup
      • 访问时间大于 SRAM 延迟 10ns
      • 在 Wishbone Master 收到 ACK 之后拉低 CYC 和 STB 至少一个周期
      • Wishbone strb 信号与编写逻辑匹配
  • 开始综合

综合后检查单

  • 综合成功,未成功时适用
    • 按照提示信息检查对应的 log 文件,确认错误位置
    • 修正错误
    • 重新仿真,综合
  • 检查 Messages,点击垃圾桶清空过时信息
  • 检查 Warning,确认没有 latch 相关警告
    • 没有 always_comb did not result in combinatorial logic
    • 没有 inferred latch
  • 检查 Warning,确认没有 Multiple Driven Net 相关警告
  • 检查 xxx.runs/synth_1/runme.log,确认没有 Timing Loop
  • 检查 Warning 中的 unconnected port 警告,确认连线情况正常
  • 检查 driven by constant 警告,确认逻辑正常
  • 检查 Warning 中的 Elaborate Design 的电路图,确认逻辑被正常优化
  • 开始实现

实现后检查单

  • 检查 Critical Warning,确认没有 Multiple Driven Net 相关警告
  • 观察右上角的提示信息,没有 Timing Failed 字样
    • 检查 Implemented Design,确认关键路径进行优化
    • 调低时钟频率
  • 生成 bitstream
  • 上板实验

Git Push 前检查单

  • 确认 当前工作目录 正确
  • commit 后,使用 git status 确认文件情况
  • 必要时,使用 git diff 比对更改情况
  • 必要时,检查 thinpad_top.xpr 文件,确认内部没有绝对目录项
  • git push
  • 等待 CI 通过,未通过时适用
    • 检查 CI 输出,查看错误位置
    • 必要时,检查 artifact 中的对应 log,检查错误
    • 参考综合和实现检查单处理对应问题
    • 重新综合,实现,进行 CI
  • 提交 OJ 进行测试

答疑前检查单

  • 我已经尝试进行检索,并没有相关问题的处理方案,或者处理方案明显不合理
  • 我检查了 faq,并在在线文档上进行了简单检索,没有找到相关问题的说明
  • 我检查了近期的微信群聊天记录,没有发现相关问题的讨论
  • 我完成了上面所有必要的检查单
  • 非语法问题适用,我进行了仿真,能够提供正确 / 错误的波形图
  • 仿真正确,实验失败时适用
    • 我检查了 latch 相关错误
    • 我检查了 Multiple Driven Net 相关错误
    • 我检查了关键外设信号的 rst 情况
    • 我检查了我认为关键的信号,确认没有异常的 X 信号出现
    • 我确认了 unconnected port 警告和 Elaborate Design,我的代码没有被错误优化
    • 我进行了上板实验,能够提供正确 / 错误的操作序列
  • 到微信群 / 网络学堂答疑区进行提问和答疑

最后更新: 2023年11月5日
作者:Jiajie Chen (0.88%), cuibst (99.12%)