跳转至

RTL 模块设计模板

使用此模板创建新的 RTL 模块设计文档


1. 模块概述

1.1 功能描述

[用 2-3 句话描述模块的主要功能和在系统中的作用]

示例:

CPU 核心模块是 SoC 的处理单元,负责执行指令、处理数据和控制外设访问。它通过 AXI 总线与内存和外设通信。

1.2 模块位置

[描述模块在系统架构中的位置,可引用框图]

graph TB
    subgraph SoC
        CPU[CPU 核心]
        AXI[AXI 互联]
        MEM[内存]
        PERI[外设]
    end
    CPU --> AXI
    AXI --> MEM
    AXI --> PERI

1.3 设计目标

目标 指标 说明
频率 ≥500MHz 在 28nm 工艺下
面积 <10K gates 综合后估算
功耗 <10mW 典型工作场景

2. 接口定义

2.1 时钟与复位

信号名 方向 类型 描述
clk input 时钟 主时钟,上升沿有效
rst_n input 复位 异步复位,低电平有效

2.2 AXI 主接口(示例)

信号名 方向 位宽 描述
AWADDR output 32 写地址
AWVALID output 1 写地址有效
AWREADY input 1 写地址就绪
WDATA output 32 写数据
WVALID output 1 写数据有效
WREADY input 1 写数据就绪
BRESP input 2 写响应
BVALID input 1 写响应有效
BREADY output 1 写响应就绪
ARADDR output 32 读地址
ARVALID output 1 读地址有效
ARREADY input 1 读地址就绪
RDATA input 32 读数据
RRESP input 2 读响应
RVALID input 1 读数据有效
RREADY output 1 读数据就绪

2.3 控制接口

信号名 方向 位宽 描述
enable input 1 模块使能
start input 1 操作启动
done output 1 操作完成
busy output 1 忙标志

3. 功能描述

3.1 工作流程

flowchart TD
    A[空闲 IDLE] -->|start=1| B[初始化 INIT]
    B --> C[执行操作 EXEC]
    C -->|完成 | D[写结果 WRITE]
    D --> E[完成 DONE]
    E --> A

3.2 操作模式

模式 描述 配置位
单次模式 执行一次操作 MODE=0
连续模式 持续执行操作 MODE=1
测试模式 内部测试 MODE=2

3.3 数据通路

[描述数据在模块内部的流动路径]

输入 FIFO → 处理单元 → 输出 FIFO → AXI 总线

4. 寄存器映射

偏移 名称 位宽 读写 复位值 描述
0x00 CTRL 32 R/W 0x00000000 控制寄存器
0x04 STATUS 32 R 0x00000000 状态寄存器
0x08 DATA_IN 32 W - 输入数据
0x0C DATA_OUT 32 R - 输出数据

详细寄存器定义见:寄存器映射


5. 状态机设计

5.1 状态定义

状态 编码 描述
IDLE 2'b00 空闲,等待启动
INIT 2'b01 初始化配置
EXEC 2'b10 执行操作
DONE 2'b11 操作完成

5.2 状态转移图

stateDiagram-v2
    [*] --> IDLE
    IDLE --> INIT: start=1
    INIT --> EXEC: init_done
    EXEC --> DONE: op_complete
    DONE --> IDLE: ack=1
    EXEC --> IDLE: reset

5.3 状态转移条件

当前状态 下一状态 条件
IDLE INIT start == 1
INIT EXEC init_done == 1
EXEC DONE op_complete == 1
DONE IDLE ack == 1

6. 时序要求

6.1 时钟约束

create_clock -period 2.0 -name clk [get_ports clk]
create_clock -period 2.0 -name clk_axi [get_ports axi_clk]

6.2 输入延迟

set_input_delay -clock clk 0.5 [get_ports {start enable*}]

6.3 输出延迟

set_output_delay -clock clk 0.5 [get_ports {done busy*}]

6.4 关键路径

[描述模块内的关键时序路径和优化策略]


7. 实现文件

7.1 文件列表

文件 描述 行数
[module_name].v 顶层模块 -
[module_name]_ctrl.v 控制逻辑 -
[module_name]_datapath.v 数据通路 -
[module_name]_fifo.v FIFO 模块 -

7.2 模块实例化模板

[module_name] u_[module_name] (
    // 时钟与复位
    .clk           (clk),
    .rst_n         (rst_n),

    // AXI 接口
    .axi_awaddr    (axi_awaddr),
    .axi_awvalid   (axi_awvalid),
    .axi_awready   (axi_awready),

    // 控制接口
    .enable        (enable),
    .start         (start),
    .done          (done),
    .busy          (busy)
);

8. 验证计划

8.1 验证环境

  • Testbench 框架
  • 参考模型
  • 覆盖率收集
  • 断言检查

8.2 测试用例

ID 测试名称 描述 优先级 状态
TC_001 复位测试 验证复位行为 📝 待实现
TC_002 基本功能 验证基本操作 📝 待实现
TC_003 边界测试 验证边界条件 📝 待实现
TC_004 异常处理 验证错误处理 📝 待实现

8.3 覆盖率目标

类型 目标 当前
代码覆盖率 95% -
功能覆盖率 100% -

9. 综合与实现

9.1 综合结果

指标 目标 实际 状态
频率 500MHz - ⏳ 待综合
面积 10K gates - ⏳ 待综合
功耗 10mW - ⏳ 待综合

9.2 综合约束

[综合约束文件路径和关键约束]


10. 修订历史

版本 日期 作者 变更描述
0.1 YYYY-MM-DD [作者] 初始版本
1.0 YYYY-MM-DD [作者] 正式发布

11. 参考文档


模板版本:1.0 | 最后更新:2026-05-03