状态机设计
1. CPU 控制状态机
1.1 状态定义
| 状态 | 编码 | 描述 |
| RESET | 2'b00 | 复位状态 |
| IDLE | 2'b01 | 空闲状态 |
| FETCH | 2'b10 | 取指状态 |
| EXCEPTION | 2'b11 | 异常处理状态 |
1.2 状态转换图
stateDiagram-v2
[*] --> RESET
RESET --> IDLE: 复位完成
IDLE --> FETCH: 取指使能
FETCH --> IDLE: 指令完成
FETCH --> EXCEPTION: 异常发生
EXCEPTION --> IDLE: 异常处理完成
IDLE --> IDLE: 等待中断
2. 缓存控制器状态机
2.1 状态定义
| 状态 | 描述 |
| IDLE | 空闲,等待访问请求 |
| TAG_CHECK | 检查 Tag 匹配 |
| HIT | 缓存命中 |
| MISS | 缓存未命中 |
| REFILL | 从下级存储填充 |
| WRITE_BACK | 写回脏数据 |
2.2 状态转换
stateDiagram-v2
[*] --> IDLE
IDLE --> TAG_CHECK: 访问请求
TAG_CHECK --> HIT: Tag 匹配
TAG_CHECK --> MISS: Tag 不匹配
HIT --> IDLE: 返回数据
MISS --> WRITE_BACK: 脏块需要写回
MISS --> REFILL: 直接填充
WRITE_BACK --> REFILL: 写回完成
REFILL --> IDLE: 填充完成
3. AXI 接口状态机
3.1 写通道状态
| 状态 | 描述 |
| AW_IDLE | 写地址通道空闲 |
| AW_VALID | 写地址有效 |
| W_IDLE | 写数据通道空闲 |
| W_DATA | 写数据传输 |
| B_IDLE | 写响应通道空闲 |
| B_VALID | 写响应有效 |
3.2 读通道状态
| 状态 | 描述 |
| AR_IDLE | 读地址通道空闲 |
| AR_VALID | 读地址有效 |
| R_IDLE | 读数据通道空闲 |
| R_DATA | 读数据传输 |
4. 中断控制器状态机
4.1 状态定义
| 状态 | 描述 |
| IDLE | 无中断请求 |
| PENDING | 中断请求挂起 |
| SERVE | 正在服务中断 |
| PREEMPT | 高优先级中断抢占 |
4.2 优先级管理
- 支持 16 级外部中断优先级
- 可配置优先级阈值
- 支持嵌套中断