跳转至

Bug 报告模板

使用此模板记录和追踪验证过程中发现的 Bug


1. 基本信息

字段
Bug ID BUG-XXX
标题 [简洁描述 Bug]
创建日期 YYYY-MM-DD
最后更新 YYYY-MM-DD
创建人 [姓名]
负责人 [姓名]

1.1 状态

状态
当前状态 🟡 分析中 / 🟢 打开 / 🔵 修复中 / ✅ 已修复 / ✅ 已验证 / ❌ 已关闭 / ❌ 已拒绝
优先级 🔴 高 / 🟡 中 / 🟢 低
严重程度 🔴 严重 / 🟡 一般 / 🟢 轻微

1.2 分类

分类 选项
发现阶段 模块验证 / 子系统验证 / 系统验证 / 硅后验证
Bug 类型 功能错误 / 时序违例 / 复位问题 / 中断问题 / 寄存器问题 / 其他
所属模块 [模块名称]
相关测试 [测试用例 ID]

2. 问题描述

2.1 现象描述

[详细描述 Bug 的现象,包括: - 观察到的错误行为 - 与预期行为的差异 - 错误发生的频率(必现/偶发)]

示例:

在连续突发传输测试中,当突发长度超过 16 拍时,AXI 总线在第 17 拍出现数据错误,WRONG 信号被拉高。此问题必现。

2.2 影响范围

  • 功能正确性 - 影响核心功能
  • 性能 - 影响系统性能
  • 功耗 - 影响功耗指标
  • 面积 - 影响综合面积
  • 时序 - 影响时序收敛
  • 其他 - [具体描述]

影响说明: [详细描述 Bug 对项目的影响]


3. 复现步骤

3.1 测试环境

项目 配置
仿真工具 VCS 2023.03
仿真时间 2026-05-01 14:30
测试用例 TC_FUNC_005
种子值 12345
分支/版本 main @ abc1234

3.2 复现步骤

  1. 步骤 1: [详细描述第一步操作]

    // 代码示例
    reg_write(BASE + 0x00, 0x12345678);
    

  2. 步骤 2: [详细描述第二步操作]

    // 启动操作
    reg_set_bit(BASE + 0x04, 0);
    

  3. 步骤 3: [详细描述第三步操作]

    等待 done 信号拉高
    

  4. 步骤 4: [观察结果]

    预期:data_out = 0x87654321
    实际:data_out = 0x87654300  // 低 8 位错误
    

3.3 波形截图

[插入关键波形截图,标注问题点]


4. 根因分析

4.1 分析过程

[描述如何定位到根因的]

示例:

通过波形分析发现,在数据输出的最后 8 位时,状态机提前进入了 DONE 状态,导致数据截断。

4.2 根本原因

[清晰的根因描述]

示例:

状态机 FSM 在计数到 15 时(16 拍完成),比较逻辑错误地使用了 >= 而不是 >,导致在第 16 拍时就提前结束。

4.3 影响分析

  • 直接影响: [描述]
  • 潜在影响: [描述]
  • 关联模块: [是否有其他模块受此问题影响]

5. 修复方案

5.1 修复描述

[描述具体的修复方案]

示例:

修改状态机比较逻辑,将 count >= 15 改为 count > 15

5.2 修改文件

文件 修改内容 行数
rtl/modules/xxx.v 修改比较逻辑 125
rtl/modules/yyy.v [如有其他修改] -

5.3 代码变更

// 修改前
always @(posedge clk) begin
    if (count >= 15) begin
        state <= DONE;
    end
end

// 修改后
always @(posedge clk) begin
    if (count > 15) begin
        state <= DONE;
    end
end

5.4 回归测试

  • 修复后原测试通过
  • 相关测试回归通过
  • 全量回归测试通过

6. 验证结果

6.1 验证状态

测试类型 状态 日期
修复验证 ✅ 通过 YYYY-MM-DD
回归测试 ✅ 通过 YYYY-MM-DD
全量回归 ✅ 通过 YYYY-MM-DD

6.2 验证数据

指标 修复前 修复后
通过率 0% 100%
覆盖率 - -

6.3 验证人

角色 姓名 日期
验证人 [姓名] YYYY-MM-DD
审核人 [姓名] YYYY-MM-DD

7. 预防措施

7.1 流程改进

  • 更新设计规范
  • 更新验证计划
  • 添加新的检查项
  • 更新代码审查清单

7.2 技术措施

  • 添加新的断言
  • 增加覆盖率检查点
  • 完善测试用例

7.3 经验总结

[从此 Bug 中学到的经验和教训]


8. 时间线

日期 事件 负责人
YYYY-MM-DD Bug 发现并报告 [姓名]
YYYY-MM-DD 开始分析 [姓名]
YYYY-MM-DD 根因确定 [姓名]
YYYY-MM-DD 修复方案确定 [姓名]
YYYY-MM-DD 代码修复完成 [姓名]
YYYY-MM-DD 验证通过 [姓名]
YYYY-MM-DD Bug 关闭 [姓名]

9. 相关文档

文档 链接
相关 Bug BUG-XXX
测试用例 TC-XXX
模块文档 模块名

10. 审批关闭

角色 姓名 日期 意见
验证负责人 [姓名] YYYY-MM-DD 同意关闭
设计负责人 [姓名] YYYY-MM-DD 确认修复
项目经理 [姓名] YYYY-MM-DD 批准关闭

模板版本:1.0 | 最后更新:2026-05-03