SOC3.0 技能清单与学习路径
📊 技能掌握度自测表
使用此表格跟踪你的学习进度,每完成一个技能点,在对应位置打勾 ✅
🔹 一、基础知识(必学)
1.1 硬件描述语言
| 技能点 |
入门 |
熟练 |
精通 |
学习资源 |
| Verilog 语法 |
[ ] |
[ ] |
[ ] |
《Verilog 数字系统设计教程》 |
| SystemVerilog 语法 |
[ ] |
[ ] |
[ ] |
《SystemVerilog for Verification》 |
| 组合逻辑设计 |
[ ] |
[ ] |
[ ] |
数字电路基础 |
| 时序逻辑设计 |
[ ] |
[ ] |
[ ] |
数字电路基础 |
| 状态机设计 |
[ ] |
[ ] |
[ ] |
项目代码示例 |
| 时钟域交叉(CDC) |
[ ] |
[ ] |
[ ] |
高级主题 |
掌握标准:
- 入门:能够阅读和理解代码
- 熟练:能够独立编写模块
- 精通:能够优化和调试复杂设计
1.2 RISC-V 架构
| 技能点 |
入门 |
熟练 |
精通 |
学习资源 |
| RISC-V 指令集 |
[ ] |
[ ] |
[ ] |
RISC-V 官方文档 |
| 处理器流水线 |
[ ] |
[ ] |
[ ] |
《计算机组成与设计》 |
| 中断和异常 |
[ ] |
[ ] |
[ ] |
Ibex 文档 |
| JTAG 调试接口 |
[ ] |
[ ] |
[ ] |
项目代码 |
掌握标准:
- 入门:理解基本指令和流水线概念
- 熟练:能够编写汇编程序
- 精通:能够优化处理器性能
1.3 总线协议
| 技能点 |
入门 |
熟练 |
精通 |
学习资源 |
| AMBA AHB 协议 |
[ ] |
[ ] |
[ ] |
ARM AMBA 规范 |
| AMBA APB 协议 |
[ ] |
[ ] |
[ ] |
ARM AMBA 规范 |
| AHB2APB 桥接 |
[ ] |
[ ] |
[ ] |
项目代码 |
| 总线仲裁 |
[ ] |
[ ] |
[ ] |
高级主题 |
| 地址映射 |
[ ] |
[ ] |
[ ] |
项目文档 |
掌握标准:
- 入门:理解协议基本信号和时序
- 熟练:能够设计总线接口
- 精通:能够优化总线性能
🔹 二、IC 设计技能(设计方向)
2.1 IP 模块设计
| 模块 |
理解原理 |
阅读代码 |
修改优化 |
独立设计 |
难度 |
| UART |
[ ] |
[ ] |
[ ] |
[ ] |
⭐ |
| PWM |
[ ] |
[ ] |
[ ] |
[ ] |
⭐ |
| SPI/QSPI |
[ ] |
[ ] |
[ ] |
[ ] |
⭐⭐ |
| I2C |
[ ] |
[ ] |
[ ] |
[ ] |
⭐⭐ |
| DMA |
[ ] |
[ ] |
[ ] |
[ ] |
⭐⭐⭐ |
| Pinmux |
[ ] |
[ ] |
[ ] |
[ ] |
⭐⭐ |
| CNN 加速器 |
[ ] |
[ ] |
[ ] |
[ ] |
⭐⭐⭐⭐ |
| ISP |
[ ] |
[ ] |
[ ] |
[ ] |
⭐⭐⭐⭐ |
学习建议:按难度从低到高学习
2.2 系统集成
| 技能点 |
入门 |
熟练 |
精通 |
| 顶层模块设计 |
[ ] |
[ ] |
[ ] |
| 时钟域管理 |
[ ] |
[ ] |
[ ] |
| 复位策略 |
[ ] |
[ ] |
[ ] |
| 地址解码 |
[ ] |
[ ] |
[ ] |
| 系统级调试 |
[ ] |
[ ] |
[ ] |
2.3 设计优化
| 技能点 |
入门 |
熟练 |
精通 |
| 面积优化 |
[ ] |
[ ] |
[ ] |
| 时序优化 |
[ ] |
[ ] |
[ ] |
| 功耗优化 |
[ ] |
[ ] |
[ ] |
| 代码风格 |
[ ] |
[ ] |
[ ] |
🔹 三、IC 验证技能(验证方向)
3.1 UVM 方法学
| 技能点 |
入门 |
熟练 |
精通 |
学习资源 |
| UVM 基础概念 |
[ ] |
[ ] |
[ ] |
《UVM 实战》 |
| Testbench 搭建 |
[ ] |
[ ] |
[ ] |
项目示例 |
| Driver/Sequencer |
[ ] |
[ ] |
[ ] |
UVM 文档 |
| Monitor/Scoreboard |
[ ] |
[ ] |
[ ] |
UVM 文档 |
| Agent 封装 |
[ ] |
[ ] |
[ ] |
项目示例 |
| 环境配置 |
[ ] |
[ ] |
[ ] |
项目示例 |
掌握标准:
- 入门:理解 UVM 基本概念
- 熟练:能够搭建简单验证平台
- 精通:能够设计复杂验证环境
3.2 验证技术
| 技能点 |
入门 |
熟练 |
精通 |
| 测试用例设计 |
[ ] |
[ ] |
[ ] |
| 约束随机验证 |
[ ] |
[ ] |
[ ] |
| 断言(SVA) |
[ ] |
[ ] |
[ ] |
| 覆盖率分析 |
[ ] |
[ ] |
[ ] |
| 回归测试 |
[ ] |
[ ] |
[ ] |
| 错误注入 |
[ ] |
[ ] |
[ ] |
3.3 模块验证实践
| 模块 |
理解测试用例 |
运行测试 |
修改测试 |
编写 UVM |
覆盖率 |
| SRAM |
[ ] |
[ ] |
[ ] |
[ ] |
[ ] |
| UART |
[ ] |
[ ] |
[ ] |
[ ] |
[ ] |
| SPI |
[ ] |
[ ] |
[ ] |
[ ] |
[ ] |
| I2C |
[ ] |
[ ] |
[ ] |
[ ] |
[ ] |
| PWM |
[ ] |
[ ] |
[ ] |
[ ] |
[ ] |
| DMA |
[ ] |
[ ] |
[ ] |
[ ] |
[ ] |
目标:每个模块覆盖率 ≥ 90%
🔹 四、综合与实现(选学)
4.1 逻辑综合
| 技能点 |
入门 |
熟练 |
精通 |
学习资源 |
| Design Compiler 使用 |
[ ] |
[ ] |
[ ] |
DC 用户手册 |
| SDC 约束编写 |
[ ] |
[ ] |
[ ] |
SDC 规范 |
| 时序分析 |
[ ] |
[ ] |
[ ] |
时序分析基础 |
| 面积优化 |
[ ] |
[ ] |
[ ] |
综合优化技巧 |
| 功耗分析 |
[ ] |
[ ] |
[ ] |
功耗分析工具 |
4.2 工艺库
| 技能点 |
入门 |
熟练 |
精通 |
| 标准单元库理解 |
[ ] |
[ ] |
[ ] |
| PDK 使用 |
[ ] |
[ ] |
[ ] |
| 时序角概念 |
[ ] |
[ ] |
[ ] |
| 库文件转换 |
[ ] |
[ ] |
[ ] |
🔹 五、软件开发(选学)
5.1 嵌入式开发
| 技能点 |
入门 |
熟练 |
精通 |
| RISC-V 汇编 |
[ ] |
[ ] |
[ ] |
| 裸机 C 编程 |
[ ] |
[ ] |
[ ] |
| 外设驱动开发 |
[ ] |
[ ] |
[ ] |
| 中断服务程序 |
[ ] |
[ ] |
[ ] |
| 链接脚本 |
[ ] |
[ ] |
[ ] |
🔹 六、工具使用
6.1 EDA 工具
| 工具 |
基本使用 |
熟练使用 |
高级技巧 |
| VCS/QuestaSim |
[ ] |
[ ] |
[ ] |
| Verdi/DVE |
[ ] |
[ ] |
[ ] |
| Design Compiler |
[ ] |
[ ] |
[ ] |
| SpyGlass |
[ ] |
[ ] |
[ ] |
| Verilator |
[ ] |
[ ] |
[ ] |
6.2 脚本语言
| 语言 |
基本语法 |
项目应用 |
自动化脚本 |
| TCL |
[ ] |
[ ] |
[ ] |
| Python |
[ ] |
[ ] |
[ ] |
| Shell |
[ ] |
[ ] |
[ ] |
| Makefile |
[ ] |
[ ] |
[ ] |
📈 学习进度跟踪
总体进度
- [ ] 阶段一:基础准备(1-2 周)
- [ ] 阶段二:理解架构(2-3 周)
- [ ] 阶段三:模块级实践(4-6 周)
- [ ] 阶段四:系统级实践(3-4 周)
- [ ] 阶段五:综合与实现(2-3 周,选学)
里程碑
- [ ] 里程碑 1:成功运行第一个测试用例
- [ ] 里程碑 2:深入理解一个模块
- [ ] 里程碑 3:完成模块级验证/设计
- [ ] 里程碑 4:完成系统级验证/设计
- [ ] 里程碑 5:完成项目报告
🎯 技能目标设定
初级目标(适合初学者)
- ✅ 理解 SOC 系统架构
- ✅ 能够阅读 RTL 代码
- ✅ 能够运行仿真和查看波形
- ✅ 理解基本总线协议
中级目标(适合有一定基础)
- ✅ 能够独立分析模块功能
- ✅ 能够编写测试用例
- ✅ 能够搭建简单验证平台
- ✅ 能够定位并修复 bug
高级目标(适合深入学习)
- ✅ 能够设计新的 IP 模块
- ✅ 能够完成系统级验证
- ✅ 能够进行逻辑综合和优化
- ✅ 能够撰写技术文档
📝 学习笔记模板
建议为每个技能点记录:
- 学习日期:_年_月____日
- 学习内容:简要描述
- 关键概念:列出 3-5 个关键点
- 实践任务:完成的任务
- 遇到的问题:遇到的问题和解决方案
- 下一步计划:后续学习计划
💡 学习建议
- 循序渐进:从简单模块开始,逐步深入
- 理论结合实践:每学一个概念,立即实践
- 记录笔记:好记性不如烂笔头
- 主动思考:多问为什么,深入理解原理
- 项目驱动:以完成项目为目标,倒推学习内容
定期更新此清单,跟踪你的学习进度! 📊