跳转至

状态机设计

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 级外部中断优先级
  • 可配置优先级阈值
  • 支持嵌套中断