完整教程:第二部分:架构与详细设计阶段
第二部分:架构与详细设计阶段
1. 阶段概述与目标
本阶段的目标是将系统需求转化为可执行、可验证、可追溯的详细技术规格。这是一个从"做什么"到"怎么做"的关键转换阶段,需要硬件、软件、验证、文档团队深度协同,确保所有设计决策都有据可依,且能够完全满足上一阶段建立的架构需求。本阶段产出的质量直接决定了实现阶段的效率和最终产品的可靠性。
2. 核心流程框架与协同设计流
本阶段通过严格的并行设计和评审机制,确保硬件、软件、验证、文档四个维度的设计始终保持同步和一致。下图展示了本阶段的完整设计流,突出了各团队间的交互和依赖关系。
3. 详细设计活动、标准与产出物
3.1 硬件详细设计流程
3.1.1 活动:芯片微架构设计
- 输入:《系统需求规格说明书》(SRS)、《系统架构设计文档》(SAD)、IP-XACT寄存器描述。
- 执行步骤:
- 模块粒度划分:基于SAD,将系统分解为可独立设计的子模块,定义每个模块的精确功能边界。
- 接口详细定义:为每个模块定义:
- 输入/输出信号列表(命名、位宽、方向)
- 时序要求(建立/保持时间、时钟域)
- 协议要求(握手、流控)
- 微架构决策:对关键路径和复杂功能,评估并选择实现方案(如:选择流水线深度、算法实现方式、存储器架构)。
- 性能预算分配:为每个模块分配时序、面积、功耗预算。
- 遵循标准:ISO 26262-5(硬件设计)、公司《硬件微架构设计规范》。
- 输出物:《芯片微架构设计文档》
- 内容大纲:
- 文档控制信息
- 设计概述(设计目标、关键特性)
- 顶层模块划分与互连
- 模块详细规格(每个模块一节):
- 4.X.1 功能描述
- 4.X.2 接口信号定义(信号列表、时序图)
- 4.X.3 内部架构框图
- 4.X.4 关键算法/状态机描述
- 4.X.5 性能预算(时序、面积、功耗)
- 4.X.6 与系统需求的追溯性(需求ID列表)
- 全局时钟、复位、电源架构
- 跨时钟域设计策略
- 可测性设计(DFT)策略
- 内容大纲:
3.1.2 活动:RTL详细设计与编码
- 输入:《芯片微架构设计文档》、更新后的IP-XACT寄存器描述。
- 执行步骤:
- RTL模块设计:基于微架构文档,开始编写RTL代码。
- 设计规则检查:遵循公司《RTL编码规范》,包括:
- 可综合代码风格
- 同步设计原则
- 低功耗设计技巧(时钟门控、电源门控)
- 形式验证:对关键控制逻辑(如状态机、仲裁器)进行模块级形式验证,采用工具如JasperGold或VC Formal。
- 静态检查:运行Lint检查(如SpyGlass)和时钟域交叉(CDC)检查。
- 遵循标准:公司《RTL编码规范》、MISRA RTL指导原则、ISO 26262-5硬件设计要求。
- 输出物:《RTL设计文档》、RTL源代码、形式验证报告、Lint/CDC检查报告。
3.2 软件详细设计流程
3.2.1 活动:SDK详细架构设计
- 输入:SRS、SAD、《软件需求规格》(来自需求阶段分解)。
- 执行步骤:
- 驱动层详细设计:设计硬件抽象层(HAL)和底层驱动(LLD)。
- 定义驱动API函数原型
- 设计中断服务例程框架
- 定义DMA传输接口
- 中间件层设计:设计操作系统抽象层(OSAL)、协议栈接口、库函数。
- API设计:设计面向应用开发者的API,确保:
- 一致性(命名规范、参数顺序)
- 易用性(合理的默认值、清晰的错误码)
- 可扩展性(版本兼容性考虑)
- 驱动层详细设计:设计硬件抽象层(HAL)和底层驱动(LLD)。
- 遵循标准:ASPICE SWE.1(软件需求分析)、MISRA C:2012预备设计。
- 输出物:《SDK详细设计文档》
- 内容大纲:
- SDK架构概述(层次图、数据流图)
- 驱动层详细设计:
- 2.1 寄存器访问层设计
- 2.2 中断管理框架
- 2.3 DMA控制器驱动设计
- 2.4 电源管理驱动设计
- 中间件层详细设计:
- 3.1 操作系统抽象层接口
- 3.2 文件系统接口(如适用)
- 3.3 网络协议栈接口(如适用)
- API详细定义:
- 4.1 API分类(初始化、控制、数据、状态)
- 4.2 每个API的函数原型、参数说明、返回值、错误码
- 4.3 使用示例伪代码
- 内存管理策略(堆、栈、缓存调整)
- 与硬件需求的追溯矩阵
- 内容大纲:
3.2.2 活动:模块接口与单元测试设计
- 输入:《SDK详细设计文档》。
- 执行步骤:
- 模块接口设计:为每个软件模块设计详细接口,包括:
- 数据结构定义
- 函数调用序列
- 错误处理机制
- 单元测试设计:基于接口设计,制定单元测试计划:
- 正常功能测试用例
- 边界条件测试用例
- 错误注入测试用例
- MISRA合规规划:制定代码编写规则,确保符合MISRA C规范。
- 模块接口设计:为每个软件模块设计详细接口,包括:
- 输出物:《模块接口规范》、《单元测试计划》、《MISRA C合规检查清单》。
3.3 验证详细设计流程
3.3.1 活动:验证环境架构设计
- 输入:SRS、《芯片微架构设计文档》、《验证计划》(来自需求阶段)。
- 执行步骤:
- 验证方法学选择:确定使用UVM、OVM或公司内部方法学。
- 验证环境架构:设计分层验证环境:
- 测试层(test):测试场景
- 场景层(sequence):激励序列
- 环境层(env):验证组件集成
- 代理层(agent):驱动器、监视器、记分板
- 接口层(interface):与DUT的物理连接
- 验证IP集成:规划需要集成的第三方或内部验证IP。
- 遵循标准:UVM方法学指南、ISO 26262-8(支持过程-验证)。
- 输出物:《验证环境架构设计文档》。
3.3.2 活动:覆盖模型与测试用例设计
- 执行步骤:
- 覆盖模型定义:基于需求,定义:
- 功能覆盖点:针对每个需求设计覆盖点
- 代码覆盖目标:行覆盖、条件覆盖、有限状态机覆盖
- 断言覆盖:关键属性验证
- 测试用例设计:设计详细的测试用例:
- 正常功能测试:验证基本功能
- 边界测试:验证参数边界
- 错误测试:验证错误处理
- 性能测试:验证时序和吞吐量
- 随机测试:使用约束随机验证
- 回归测试策略:设计自动化回归测试框架。
- 覆盖模型定义:基于需求,定义:
- 输出物:《详细验证计划》、《测试用例规格》、《覆盖模型定义》。
3.4 用户手册详细设计流程
3.4.1 活动:用户手册详细大纲设计
- 输入:SRS、SAD、SDK详细设计文档。
- 执行步骤:
- 受众分析:识别主要读者(硬件工程师、嵌入式软件工程师、系统集成工程师)。
- 内容结构设计:设计详细的章节目录,确保覆盖:
- 产品概述
- 硬件架构详解
- 软件架构与API参考
- 应用示例
- 调试指南
- 附录(寄存器映射、电气特性)
- 写作风格确定:根据IEC/IEEE 82079标准,确定:
- 术语一致性
- 语气(指导性而非描述性)
- 示例代码风格
- 输出物:《用户手册详细大纲与写作规范》。
4. 阶段关键交付物清单(Gate 2评审对象)
所有交付物必须使用公司标准模板,在配置管理工具中创建基线,并通过电子签核流程。
- 《芯片微架构设计文档》- 含模块详细规格和需求追溯
- 《硬件设计规范》- 含RTL编码规则、DFT策略、时钟复位规范
- 《更新后的IP-XACT寄存器描述文件》- 包含所有寄存器详细定义
- 《SDK详细设计文档》- 含驱动层、中间件、API详细设计
- 《软件API规范》- 面向用户的完整API定义
- 《验证详细计划》- 含测试用例、覆盖模型、环境架构
- 《用户手册详细大纲与写作规范》
- 《设计评审检查表》- 各团队完成的自检清单
- 《阶段评审报告》- 记录Gate 2评审结果与所有行动项
5. 出口标准(Gate 2通过准则)
- 完整性:上述9项交付物全部结束,符合模板要求,并已签署基线化。
- 一致性:硬件微架构、SDK设计、验证计划、文档大纲之间保持严格一致,所有接口定义无歧义。
- 可追溯性:
- 每个硬件模块设计都能追溯到对应的系统需求
- 每个软件API都能追溯到对应的硬件效果需求
- 每个测试用例都能追溯到对应的验证需求
- 可验证性:
- 所有设计都包含明确的验证计划
- 覆盖模型能够完整覆盖需求
- RTL设计已通过初步的静态检查
- 合规性:
- 硬件设计符合安全标准要求(如ISO 26262)
- 软件设计已规划MISRA C合规路径
- 文档设计符合IEC/IEEE 82079标准
- 协同就绪:
- 硬件-软件接口已正式对齐并记录
- 验证环境已准备好接收首版RTL
- 文档编写已获得足够的技术输入
- 风险可控:所有识别的工艺风险都有相应的缓解计划。
- 行动项闭环:评审会议产生的所有行动项均有明确负责人与搞定日期。
只有满足以上全部标准,Gate 2才被视为通过。任何例外都必须获得变更控制委员会的正式豁免批准。此阶段的产出构成了建立阶段的"施工蓝图",任何后续变更必须依据正式的工程变更请求(ECR)流程。

浙公网安备 33010602011771号