QUICK_START.md
SOC3.0 快速入门指南
🚀 5 分钟了解项目
项目是什么?
SOC3.0 是一个完整的 RISC-V 片上系统,包含:
- 🎯 RISC-V Ibex 处理器核心
- 🔌 10+ 个外设模块(SPI、UART、I2C、PWM 等)
- ⚡ 加速器(CNN、ISP)
- 🔗 标准总线系统(AHB/APB)
你能做什么?
- ✅ 学习 IC 设计:理解 SOC 架构,设计数字电路
- ✅ 学习 IC 验证:使用 UVM 进行功能验证
- ✅ 学习综合:将 RTL 转换为门级网表
- ✅ 学习嵌入式:为 SOC 编写驱动和测试程序
📍 项目结构速览
SOC3.0/
├── soc/ # 核心代码
│ ├── top/ # 顶层模块(从这里开始!)
│ ├── ip/ # IP 模块
│ │ ├── apb_subsystem/ # 外设子系统
│ │ ├── dma/ # DMA 控制器
│ │ ├── cnn_v0/ # CNN 加速器
│ │ └── isp/ # ISP 处理器
│ ├── ibex/ # RISC-V 处理器
│ └── sw/ # 软件和测试
│ ├── soc_test_c/ # C 语言测试用例
│ └── SOC_TESTPLAN.md # 测试计划(必读!)
├── dc/ # 综合相关
└── flow/ # 设计流程
🎯 四步开始学习
第零步:生成简历模板 ⭐ 最重要!
为什么要先做这一步?
- 帮助你明确学习方向(设计/验证/后端)
- 了解项目结束后简历上能写什么
- 在学习过程中有针对性地积累成果
如何生成:
- Web 版本:访问 /projects/soc3/resume-generator
- 命令行:python3 tools/generate_resume.py
完成标准:
- ✅ 已生成简历模板
- ✅ 明确了学习方向
- ✅ 保存了模板作为学习目标参考
第一步:理解架构(1 天)
📖 阅读文档:
- soc/sw/SOC_TESTPLAN.md - 了解系统架构
- soc/top/top.sv - 查看顶层连接
💡 关键概念:
- AHB:高性能总线,连接处理器和高速外设
- APB:外设总线,连接低速外设
- 地址映射:每个外设都有唯一的基地址
第二步:运行测试(1 天)
🔧 操作步骤:
1. 编译项目:make 或使用 EDA 工具
2. 运行测试:选择一个简单测试(如 sram_test)
3. 查看波形:使用 Verdi 或 DVE
📝 推荐测试顺序:
1. sram_test - 最简单
2. uart_test - 理解串口通信
3. pwm_test - 理解定时器
4. spi1_test - 理解 SPI 协议
第三步:深入模块(1 周+)
🎓 选择一个模块深入学习:
- UART(推荐入门):代码简单,容易理解
- SPI:理解串行通信协议
- DMA:理解数据传输机制
📚 学习方法:
1. 阅读模块的 RTL 代码
2. 运行相关测试用例
3. 观察波形,理解数据流
4. 尝试修改测试用例
💼 简历一句话描述
设计方向
参与 RISC-V SOC 系统设计,负责 SPI/QSPI 控制器和 DMA 模块的 RTL 实现,使用 Verilog/SystemVerilog 完成 5000+ 行代码,系统成功集成并通过功能验证。
验证方向
基于 UVM 搭建 RISC-V SOC 验证平台,编写 50+ 个测试用例,功能覆盖率从 60% 提升至 95%+,发现并修复设计缺陷 20+ 个。
综合方向
使用 Design Compiler 完成 SOC 逻辑综合,目标工艺 GF180MCU(180nm),编写 SDC 约束,优化时序和面积,满足设计约束。
🛠️ 必备工具
仿真工具(三选一)
- VCS(Synopsys)- 工业标准
- QuestaSim(Mentor)- 功能强大
- Verilator(开源)- 免费替代
波形查看
- Verdi(Synopsys)- 最常用
- DVE(Synopsys)- VCS 自带
综合工具(选学)
- Design Compiler(Synopsys)
其他
- Git - 版本控制
- TCL - 脚本语言
- Python - 自动化脚本
📚 学习资源速查
必读文档
- [ ]
soc/sw/SOC_TESTPLAN.md- 系统架构和测试计划 - [ ]
STUDENT_PROJECT_GUIDE.md- 完整学习指南 - [ ]
dc/README_GF180.md- 综合指南(如果学综合)
在线资源
- RISC-V 官网:https://riscv.org/
- ARM AMBA 规范:https://developer.arm.com/documentation
- EDA Playground:https://www.edaplayground.com/(在线仿真)
推荐书籍
- 《数字设计和计算机体系结构》(RISC-V 版)
- 《SystemVerilog for Verification》
- 《UVM 实战》
❓ 常见问题
Q: 我是零基础,能学吗?
A: 建议先学 Verilog 基础(1-2 周),然后从最简单的模块开始。
Q: 没有 EDA 工具怎么办?
A: 使用开源工具 Verilator,或申请教育版 License。
Q: 应该学设计还是验证?
A: 建议都了解,然后选择一个方向深入。验证更容易上手。
Q: 需要多长时间?
A: 入门 1-2 周,完整学习 3-6 个月。
✅ 学习检查清单
第一周
- [ ] 阅读架构文档
- [ ] 成功运行一个测试用例
- [ ] 能够查看并理解波形
- [ ] 理解地址映射关系
第一个月
- [ ] 深入理解一个模块(如 UART)
- [ ] 能够修改测试用例
- [ ] 理解总线协议(AHB/APB)
- [ ] 能够定位简单 bug
第三个月
- [ ] 完成一个模块的验证平台(验证方向)
- [ ] 或完成一个模块的设计优化(设计方向)
- [ ] 覆盖率/功能达到目标
- [ ] 完成项目报告
🎯 下一步
- 📖 阅读
STUDENT_PROJECT_GUIDE.md获取完整指南 - 🔧 搭建开发环境
- 🚀 开始第一个测试用例!
祝学习顺利! 💪