LEARNING_PATH.md
SOC3.0 分阶段学习路径与实践任务
📋 使用说明
本文档提供了 SOC3.0 项目的完整学习路径,分为 5 个阶段,每个阶段包含:
- 学习目标:本阶段要掌握的知识
- 实践任务:需要完成的具体任务
- 验收标准:如何判断任务完成
- AI 审核清单:AI 审核时会检查的内容
建议:
- 每个阶段完成后,使用 AI 审核工具检查完成情况
- 完成所有阶段后,进入最终项目阶段,选择自己的研究方向
🎯 阶段一:基础准备(1-2 周)
学习目标
- [ ] 明确学习方向和目标(通过生成简历)
- [ ] 理解 SOC 系统架构
- [ ] 熟悉项目结构和代码组织
- [ ] 掌握基本的 Verilog/SystemVerilog 语法
- [ ] 能够运行仿真和查看波形
- [ ] 理解基本的总线协议概念
实践任务
任务 0:生成简历模板 ⭐ 第一步
- [ ] 访问简历生成器页面
- [ ] 选择学习方向(IC 设计/IC 验证/数字后端)
- [ ] 填写基本信息(姓名、项目时间等)
- [ ] 生成个性化简历模板
- [ ] 保存简历模板,作为学习目标参考
为什么这是第一步?
- ✅ 帮助你明确学习方向(设计/验证/后端)
- ✅ 了解项目结束后简历上能写什么
- ✅ 在学习过程中有针对性地积累成果
- ✅ 提前规划项目时间和里程碑
验收标准:
- 已生成简历模板
- 明确了学习方向
- 理解了项目结束后能获得的技能和经验
AI 审核检查点:
- [ ] 提交生成的简历模板
- [ ] 说明选择的学习方向
- [ ] 说明为什么选择这个方向
任务 1.1:环境搭建
- [ ] 安装 EDA 工具(VCS/QuestaSim/Verilator)
- [ ] 安装波形查看工具(Verdi/DVE)
- [ ] 配置开发环境
- [ ] 验证工具安装成功
验收标准:
- 能够编译项目
- 能够运行一个简单的测试用例
- 能够查看波形
AI 审核检查点:
- [ ] 提供工具安装截图或日志
- [ ] 提供成功运行的测试用例输出
- [ ] 提供波形截图
任务 1.2:阅读架构文档
- [ ] 阅读
soc/sw/SOC_TESTPLAN.md - [ ] 阅读
QUICK_START.md - [ ] 理解系统架构图
- [ ] 理解地址映射关系
验收标准:
- 能够画出系统架构图
- 能够说出每个模块的功能
- 能够找到任意外设的基地址
AI 审核检查点:
- [ ] 提交系统架构图(手绘或电子版)
- [ ] 回答以下问题:
- SOC3.0 包含哪些主要模块?
- AHB 和 APB 总线的区别是什么?
- SRAM 的基地址是多少?
任务 1.3:运行第一个测试
- [ ] 选择最简单的测试用例(推荐
sram_test) - [ ] 编译并运行测试
- [ ] 查看波形,理解信号变化
- [ ] 记录观察结果
验收标准:
- 测试用例成功运行
- 能够解释波形中的关键信号
- 理解测试的基本流程
AI 审核检查点:
- [ ] 提供测试运行成功的日志
- [ ] 提供波形截图,并标注关键信号
- [ ] 简要说明测试的目的和结果
任务 1.4:代码阅读练习
- [ ] 阅读
soc/top/top.sv顶层模块 - [ ] 理解模块之间的连接关系
- [ ] 选择一个简单模块(如 UART)阅读代码
- [ ] 理解模块的接口和功能
验收标准:
- 能够解释顶层模块的作用
- 能够说明模块之间的连接方式
- 能够理解一个简单模块的工作原理
AI 审核检查点:
- [ ] 提交代码阅读笔记
- [ ] 回答以下问题:
- 顶层模块连接了哪些子模块?
- UART 模块有哪些主要接口?
- 模块是如何通过总线连接的?
阶段一总结
完成检查清单:
- [ ] 所有任务已完成
- [ ] 通过 AI 审核
- [ ] 提交阶段一总结报告
总结报告应包含:
- 学习内容总结
- 遇到的问题和解决方案
- 下一步学习计划
🎯 阶段二:理解架构(2-3 周)
学习目标
- [ ] 深入理解 AMBA AHB/APB 总线协议
- [ ] 理解 RISC-V 处理器架构
- [ ] 掌握系统集成方法
- [ ] 能够分析模块接口和协议
实践任务
任务 2.1:总线协议学习
- [ ] 学习 AMBA AHB 协议规范
- [ ] 学习 AMBA APB 协议规范
- [ ] 分析 AHB2APB 桥接器代码
- [ ] 理解总线信号和时序
验收标准:
- 能够解释 AHB 和 APB 的区别
- 能够说明总线传输的基本流程
- 能够分析总线时序图
AI 审核检查点:
- [ ] 提交总线协议学习笔记
- [ ] 回答以下问题:
- AHB 总线有哪些主要信号?
- APB 总线有哪些主要信号?
- AHB2APB 桥接器的作用是什么?
任务 2.2:RISC-V 处理器学习
- [ ] 学习 RISC-V 指令集基础
- [ ] 理解 Ibex 处理器架构
- [ ] 分析处理器与总线的接口
- [ ] 理解中断和异常处理
验收标准:
- 能够解释 RISC-V 的基本指令
- 能够说明处理器的流水线结构
- 能够理解处理器如何访问外设
AI 审核检查点:
- [ ] 提交 RISC-V 学习笔记
- [ ] 回答以下问题:
- RISC-V 有哪些基本指令类型?
- Ibex 处理器如何访问内存和外设?
- 中断是如何处理的?
任务 2.3:系统集成分析
- [ ] 分析地址映射关系
- [ ] 理解时钟域管理
- [ ] 理解复位策略
- [ ] 分析系统级连接
验收标准:
- 能够画出完整的地址映射图
- 能够说明时钟域的处理方法
- 能够理解系统复位流程
AI 审核检查点:
- [ ] 提交地址映射表
- [ ] 提交系统集成分析报告
- [ ] 回答以下问题:
- 每个外设的基地址是多少?
- 系统有哪些时钟域?
- 复位是如何管理的?
任务 2.4:模块接口分析
- [ ] 选择一个外设模块(如 SPI)
- [ ] 分析模块的接口信号
- [ ] 理解模块的寄存器定义
- [ ] 分析模块的工作流程
验收标准:
- 能够说明模块的所有接口信号
- 能够解释模块的寄存器映射
- 能够画出模块的状态机或工作流程
AI 审核检查点:
- [ ] 提交模块接口分析文档
- [ ] 提交模块工作流程图
- [ ] 回答以下问题:
- 模块有哪些接口信号?
- 模块的寄存器是如何定义的?
- 模块是如何工作的?
阶段二总结
完成检查清单:
- [ ] 所有任务已完成
- [ ] 通过 AI 审核
- [ ] 提交阶段二总结报告
🎯 阶段三:模块级实践(4-6 周)
学习目标
根据选择的方向,深入学习:
- 设计方向:能够设计或优化 IP 模块
- 验证方向:能够搭建验证平台并编写测试用例
- 后端方向:能够完成模块的综合和优化
实践任务(设计方向)
任务 3.1:模块设计/优化
- [ ] 选择一个模块进行深入学习(推荐:UART、SPI、PWM)
- [ ] 分析现有设计
- [ ] 提出优化方案或新功能
- [ ] 实现设计改进
验收标准:
- 完成设计改进
- 代码通过语法检查
- 功能验证通过
AI 审核检查点:
- [ ] 提交设计文档
- [ ] 提交改进后的代码
- [ ] 提交功能验证结果
- [ ] 说明改进点和效果
任务 3.2:接口设计
- [ ] 设计模块的接口
- [ ] 遵循总线协议规范
- [ ] 编写接口文档
- [ ] 验证接口正确性
验收标准:
- 接口设计符合协议规范
- 接口文档完整清晰
- 接口验证通过
AI 审核检查点:
- [ ] 提交接口设计文档
- [ ] 提交接口验证结果
- [ ] 说明接口设计考虑
实践任务(验证方向)
任务 3.1:UVM 验证平台搭建
- [ ] 选择一个模块(推荐:UART、SPI)
- [ ] 搭建 UVM 验证平台
- [ ] 实现 Driver、Monitor、Scoreboard
- [ ] 编写基础测试用例
验收标准:
- 验证平台能够编译运行
- 基础测试用例通过
- 代码结构清晰
AI 审核检查点:
- [ ] 提交验证平台代码
- [ ] 提交测试用例代码
- [ ] 提交运行结果
- [ ] 说明验证平台架构
任务 3.2:测试用例开发
- [ ] 编写功能测试用例(10+ 个)
- [ ] 编写边界条件测试
- [ ] 编写错误注入测试
- [ ] 实现覆盖率收集
验收标准:
- 测试用例覆盖主要功能
- 覆盖率 ≥ 80%
- 所有测试用例通过
AI 审核检查点:
- [ ] 提交测试用例列表
- [ ] 提交覆盖率报告
- [ ] 提交测试运行结果
- [ ] 说明测试策略
任务 3.3:协议检查
- [ ] 编写 SystemVerilog Assertion(SVA)
- [ ] 实现协议检查器
- [ ] 验证协议正确性
- [ ] 发现并报告协议违规
验收标准:
- SVA 断言覆盖主要协议点
- 能够检测协议违规
- 协议检查器工作正常
AI 审核检查点:
- [ ] 提交 SVA 断言代码
- [ ] 提交协议检查器代码
- [ ] 提交检查结果
- [ ] 说明协议检查策略
实践任务(后端方向)
任务 3.1:逻辑综合
- [ ] 选择一个模块进行综合
- [ ] 编写 SDC 约束文件
- [ ] 运行 Design Compiler
- [ ] 分析综合结果
验收标准:
- 综合成功完成
- 时序满足约束
- 面积在合理范围
AI 审核检查点:
- [ ] 提交 SDC 约束文件
- [ ] 提交综合报告
- [ ] 提交时序分析结果
- [ ] 说明综合策略
任务 3.2:时序优化
- [ ] 分析时序报告
- [ ] 识别关键路径
- [ ] 优化时序违规
- [ ] 验证优化效果
验收标准:
- 所有路径满足时序约束
- 优化方法合理
- 优化效果明显
AI 审核检查点:
- [ ] 提交时序分析报告
- [ ] 提交优化方案
- [ ] 提交优化前后对比
- [ ] 说明优化方法
阶段三总结
完成检查清单:
- [ ] 所有任务已完成
- [ ] 通过 AI 审核
- [ ] 提交阶段三总结报告
- [ ] 提交阶段三作品(代码、文档、报告)
🎯 阶段四:系统级实践(3-4 周)
学习目标
- [ ] 理解系统级集成
- [ ] 能够进行系统级验证/设计
- [ ] 能够分析和解决系统级问题
- [ ] 提升覆盖率或优化系统性能
实践任务
任务 4.1:系统级测试
- [ ] 编写系统级测试用例
- [ ] 测试多模块协同工作
- [ ] 测试系统级场景
- [ ] 分析系统性能
验收标准:
- 系统级测试用例通过
- 能够验证系统功能
- 性能分析完整
AI 审核检查点:
- [ ] 提交系统级测试用例
- [ ] 提交测试结果
- [ ] 提交性能分析报告
- [ ] 说明测试场景
任务 4.2:覆盖率提升(验证方向)
- [ ] 分析覆盖率报告
- [ ] 识别覆盖漏洞
- [ ] 编写定向测试用例
- [ ] 提升覆盖率至 95%+
验收标准:
- 功能覆盖率 ≥ 95%
- 代码覆盖率 ≥ 98%
- 覆盖漏洞已解决
AI 审核检查点:
- [ ] 提交覆盖率分析报告
- [ ] 提交覆盖率提升前后的对比
- [ ] 提交新增测试用例
- [ ] 说明覆盖率提升策略
任务 4.2:系统优化(设计方向)
- [ ] 分析系统性能瓶颈
- [ ] 提出优化方案
- [ ] 实现优化
- [ ] 验证优化效果
验收标准:
- 优化方案合理
- 优化效果明显
- 系统功能正常
AI 审核检查点:
- [ ] 提交性能分析报告
- [ ] 提交优化方案
- [ ] 提交优化前后对比
- [ ] 说明优化方法
任务 4.3:问题定位与解决
- [ ] 发现系统级问题
- [ ] 分析问题原因
- [ ] 提出解决方案
- [ ] 验证解决方案
验收标准:
- 问题定位准确
- 解决方案有效
- 问题已解决
AI 审核检查点:
- [ ] 提交问题分析报告
- [ ] 提交解决方案
- [ ] 提交验证结果
- [ ] 说明问题解决过程
阶段四总结
完成检查清单:
- [ ] 所有任务已完成
- [ ] 通过 AI 审核
- [ ] 提交阶段四总结报告
- [ ] 系统级目标已达成
🎯 阶段五:最终项目(4-6 周)
学习目标
- [ ] 选择自己的研究方向
- [ ] 完成独立的项目或研究
- [ ] 形成个人作品集
- [ ] 准备技术分享和简历
研究方向选择
方向 1:新模块设计
适合:设计方向学生
可选主题:
- Timer 定时器模块设计
- Watchdog 看门狗模块设计
- ADC 接口模块设计
- 自定义加速器设计
要求:
- 完成 RTL 设计
- 完成功能验证
- 完成综合(可选)
- 编写完整文档
方向 2:验证平台开发
适合:验证方向学生
可选主题:
- 为未验证模块搭建验证平台
- 开发可复用的验证 IP(VIP)
- 实现高级验证技术(如 Formal Verification)
- 自动化验证流程开发
要求:
- 完成验证平台
- 覆盖率 ≥ 95%
- 编写完整文档
- 平台可复用
方向 3:系统优化
适合:所有方向学生
可选主题:
- 系统性能优化
- 功耗优化
- 面积优化
- 系统级验证优化
要求:
- 完成优化方案
- 量化优化效果
- 编写完整文档
- 验证优化效果
方向 4:算法加速器
适合:对算法感兴趣的学生
可选主题:
- 图像处理算法加速器
- 信号处理算法加速器
- 加密算法加速器
- 自定义算法加速器
要求:
- 完成算法分析
- 完成硬件设计
- 完成功能验证
- 性能评估
方向 5:工具开发
适合:对工具开发感兴趣的学生
可选主题:
- 自动化测试脚本
- 覆盖率分析工具
- 性能分析工具
- 设计辅助工具
要求:
- 完成工具开发
- 工具功能完整
- 编写使用文档
- 工具可复用
最终项目要求
项目文档
- [ ] 项目提案(Project Proposal)
- [ ] 设计/验证方案文档
- [ ] 实现文档
- [ ] 测试/验证报告
- [ ] 项目总结报告
代码/作品
- [ ] 完整的代码实现
- [ ] 测试用例或验证平台
- [ ] 运行结果和报告
- [ ] 代码注释和文档
技术分享
- [ ] 准备技术分享 PPT
- [ ] 能够讲解项目
- [ ] 能够回答技术问题
阶段五总结
完成检查清单:
- [ ] 最终项目已完成
- [ ] 通过 AI 审核
- [ ] 提交最终项目报告
- [ ] 准备技术分享
- [ ] 更新简历
📊 整体进度跟踪
阶段完成情况
- [ ] 阶段一:基础准备
- [ ] 阶段二:理解架构
- [ ] 阶段三:模块级实践
- [ ] 阶段四:系统级实践
- [ ] 阶段五:最终项目
作品集清单
- [ ] 阶段一总结报告
- [ ] 阶段二总结报告
- [ ] 阶段三作品(代码+文档)
- [ ] 阶段四作品(代码+文档)
- [ ] 最终项目(完整作品集)
🎓 学习建议
- 循序渐进:按阶段完成,不要跳跃
- 理论结合实践:每学一个概念,立即实践
- 记录笔记:好记性不如烂笔头
- 主动思考:多问为什么,深入理解原理
- 定期总结:每个阶段结束后总结学习成果
- 寻求帮助:遇到问题及时寻求帮助
祝学习顺利!通过完整的 5 个阶段,你将拥有完整的 IC 设计/验证项目经验! 🚀