前面几个 issue 解决的是“系统能工作”。这一步解决的是“系统能验收、能讲、能答辩”。
需要把:
mem_wait
- BRAM / SDRAM benchmark
- ISE 资源 / timing
- 板级日志
- 文档说明
统一收口成课程“进阶要求”的证据链。
本 issue 要解决什么
- 增加
mem_wait counter
- 让 benchmark 输出
cycle / instret / mem_wait
- 准备 BRAM vs SDRAM 对比
- 汇总 ISE 资源 / timing
- 收口 README / PROBES / DEV_FLOW / MEMORY_MAP / 项目说明
本 issue 不解决什么
- 不再引入新大功能
- 不做完整报告排版
- 不在这一步再开新主线
明确要求
- 至少两组 benchmark:
- 至少三组 ISE 数据:
- base MiniSoC
- +SDRAM data-only
- +bootloader v1
简单实现思路
SoC 层补 mem_wait,firmware 层扩 benchmark 输出,上板层提供 ISE / 实验室日志,最后由你统一整理成文档和表格。这里不要再引入新特性,而是把前面各阶段已经做出的能力转成一套可比较、可讲解、可答辩的证据链。
建议查阅 / 关键词
- 文件:
scripts/compare_cpu_perf.sh
firmware/tests/perf_mix.c
docs/项目任务说明 v2.md
- 关键词:
mem_wait
cycle
instret
BRAM vs SDRAM
Map / PAR / Timing
PPA
测试与验收
这一阶段的重点是“指标闭环”而不是新增功能。计数器级需要明确 mem_wait 的定义,并用最小样例证明它确实会随 SDRAM 访问产生变化,而不是一个常数寄存器。benchmark 级至少要固定同一算法、同一输入规模,在 BRAM 小数组与 SDRAM 大数组两种放置方式下给出 cycle / instret / mem_wait;具体算法可以自定,但必须可复现。回归级需要重新跑 bash scripts/test_local.sh 和双核 regression。文档级需要补齐 benchmark 表、ISE 对比表,以及三条关键解释:为什么当前不从 SDRAM 执行、为什么不做完整 libc、为什么 bootloader v1 先写 BRAM。
依赖:前面所有
前面几个 issue 解决的是“系统能工作”。这一步解决的是“系统能验收、能讲、能答辩”。
需要把:
mem_wait统一收口成课程“进阶要求”的证据链。
本 issue 要解决什么
mem_waitcountercycle / instret / mem_wait本 issue 不解决什么
明确要求
简单实现思路
SoC 层补
mem_wait,firmware 层扩 benchmark 输出,上板层提供 ISE / 实验室日志,最后由你统一整理成文档和表格。这里不要再引入新特性,而是把前面各阶段已经做出的能力转成一套可比较、可讲解、可答辩的证据链。建议查阅 / 关键词
scripts/compare_cpu_perf.shfirmware/tests/perf_mix.cdocs/项目任务说明 v2.mdmem_waitcycleinstretBRAM vs SDRAMMap / PAR / TimingPPA测试与验收
这一阶段的重点是“指标闭环”而不是新增功能。计数器级需要明确
mem_wait的定义,并用最小样例证明它确实会随 SDRAM 访问产生变化,而不是一个常数寄存器。benchmark 级至少要固定同一算法、同一输入规模,在 BRAM 小数组与 SDRAM 大数组两种放置方式下给出cycle / instret / mem_wait;具体算法可以自定,但必须可复现。回归级需要重新跑bash scripts/test_local.sh和双核 regression。文档级需要补齐 benchmark 表、ISE 对比表,以及三条关键解释:为什么当前不从 SDRAM 执行、为什么不做完整 libc、为什么 bootloader v1 先写 BRAM。依赖:前面所有