📘 SoC 软硬件协同设计 · 实战目录

🎯 30章 从入门到项目
01 SoC设计导论
  • 什么是SoC
  • 软硬件协同设计
  • 设计流程概览
  • ARM+FPGA架构
02 硬件描述语言基础 (Verilog)
  • 模块化设计
  • 组合与时序逻辑
  • always/assign
  • Testbench
03 RISC-V处理器核心入门
  • 指令集架构简介
  • 五级流水线
  • 取指/译码/执行
  • 访存/写回
04 AHB/AXI总线协议实战
  • AMBA总线家族
  • AHB-Lite时序
  • AXI4-Stream
  • 总线互联与映射
05 嵌入式软件开发环境搭建
  • GCC交叉编译
  • Makefile
  • OpenOCD调试
  • QEMU仿真
06 裸机编程与启动代码
  • 启动流程
  • 链接脚本(.lds)
  • 中断向量表
  • GPIO/UART驱动
07 FreeRTOS在SoC上的移植
  • 内核架构
  • 任务调度
  • RISC-V移植
  • 中断嵌套/临界区
08 硬件加速器设计 (矩阵乘法器)
  • 算法分析
  • 流水线设计
  • AXI-Stream封装
  • 性能评估
09 AHB-to-AXI桥接器设计
  • 协议转换
  • 状态机设计
  • 地址对齐/数据宽度
  • 验证策略
10 DMA控制器设计与驱动
  • DMA工作原理
  • 描述符链
  • 硬件寄存器/状态机
  • Linux DMA引擎
11 SPI Flash控制器设计
  • SPI协议时序
  • Flash命令集
  • 硬件状态机
  • XIP支持
12 I2C传感器接口设计
  • I2C总线协议
  • 多主从仲裁
  • SCL/SDA控制
  • Linux I2C子系统
13 Ethernet MAC控制器设计
  • OSI/MAC层
  • MII/RMII
  • 描述符环
  • 中断/NAPI
14 USB Device控制器设计
  • USB协议栈
  • 端点管理
  • 描述符/DMA
  • Linux Gadget
15 DDR3/4内存控制器设计
  • DDR协议基础
  • 初始化序列
  • Bank管理/刷新
  • 时序参数
16 时钟与复位管理单元
  • 时钟树设计
  • PLL配置
  • 异步复位同步释放
  • 门控时钟/低功耗
17 电源管理单元 (PMU)
  • 电源域划分
  • DVFS
  • 唤醒源设计
  • Linux PM框架
18 安全子系统 (TEE)
  • TrustZone架构
  • 安全启动链
  • OTP存储
  • AES/SHA集成
19 硬件调试与追踪
  • JTAG/SWD
  • ETM/ITM追踪
  • CoreSight
  • 性能计数器
20 形式化验证入门
  • 断言(SVA)
  • 属性检查
  • 模型检验
  • 覆盖率驱动
21 UVM验证方法学
  • uvm_agent/env
  • sequence机制
  • 寄存器模型
  • scoreboard
22 软硬件协同仿真
  • SystemC/TLM-2.0
  • 虚拟平台
  • ISS集成
  • 性能分析
23 高层次综合 (HLS)
  • C/C++转RTL
  • 流水线与数组
  • 接口综合
  • 对比手写RTL
24 FPGA原型验证
  • FPGA选型/资源
  • 分区多FPGA
  • 时钟/复位处理
  • 调试探针
25 SoC后端设计基础
  • 逻辑综合(DC)
  • 布局布线(ICC2)
  • 静态时序分析
  • 物理验证(DRC/LVS)
26 低功耗设计技术
  • 多阈值电压库
  • 时钟门控
  • 电源门控
  • 动态电压缩放
27 Linux内核移植与设备树
  • 内核启动流程
  • 设备树(DTB)
  • 平台驱动模型
  • 中断控制器
28 Yocto构建系统
  • BitBake/Recipe
  • 镜像定制
  • SDK生成
  • 包管理(RPM/IPK)
29 SoC测试与可测试性设计 (DFT)
  • 扫描链插入
  • 边界扫描(JTAG)
  • BIST
  • ATPG
30 项目实战:AI边缘计算SoC
  • 需求分析
  • 架构定义
  • 软硬件划分
  • 集成验证/调优