ASIC HANDBOOK
第一章 - ASIC项目的流程
1.1 介绍
本章将对整个专用集成电路(Application-Specific Intergrated Circuit)ASIC的开发流程做一个概览。基于可行性,它把流程分解成一系列必须执行的项目phase来获取经过完整验证的可以直接生产的silicon。因为本章是作为一个概览,因此,读者可以参考本书后续的详细章节来处理本章中覆盖到的问题。
1.2 流程列表
在ASIC设计流程中,不同的公司或者设计团队,对于同一个步骤可能会在命名上有些许不同。下面列出的这些phase(可能会有些许差别)是大部分被今天的ASIC设计团队所采用的。这些名字或者称谓都是为了描述在这些phase中所要进行的主要活动。尽管如此,在各个phase中,也有许多和主要活动不相关的任务。这些混杂的任务依旧会被说明,因为这些任务在整个phase中都是必不可少的活动。
ASIC项目的主要phase包括以下内容:
- 顶层(Top-Level)设计
- 模块设计说明书(Specification)
- 模块实现(Implementation)
- 子系统仿真
- 系统仿真和综合(Synthesis)
- 布局(Layout)和后端(Backend)
- Silicon测试准备
- ASIC sign-off
- Silicon测试
图 1-1 描述了这些phase的关系:
下面的这些子章节将对这些phase进行更加详细的描述。接下来的说明都会在按照时间顺序来进行,尽管这些phase在某些元素上是有重叠的。最开始的预研,顶层设计以及文档,会对整个项目的成功率有关键影响。因此,允许充足的时间以及适当的资源在初始phase上非常重要,需要避免过快的进入实现阶段。
1.3 预研阶段
这个阶段的输出包括:
- 项目时标以及资源需求评估
- silicon面积评估
- 产品花费评估
- 初始的架构设计
- 风险分析
- 识别项目目标、可交付性以及里程碑
- 决定设计路由和工具
通常的任务包括:
- 初始的架构设计
- 初始计划和资源评估
- 风险和花费分析
预研级阶段是项目的初始阶段,它需要研发和市场部分亲密合作。预研工作必须找出一个商务机会,并且列出一些最初的产品架构来满足它。机会可能来源于一个新的市场空间或者降低花费或者增加新的系统特性。通常来说,ASIC项目会将大量功能整合到一颗芯片里面,降低开销和功耗,并且一般会增加性能以及提供一些附加的特性。这是嵌入式SOC的关键特征,它会将整个系统整合到一个芯片上,一般通过重用自身的和引用第三方的IP来实现(知识产权)。
1.4 顶层设计阶段
这个阶段的输出:
- 经过review和取得一致意见的功能需求文档
- 经过review和取得一致意见的顶层架构文档
- 经过review和取得一致意见的初始计划以及资源需求
通常的任务包括: - 编写功能需求说明书
- 对于架构的option进行一系列头脑风暴
- 对于架构的option进行分析-考虑技术的灵活性、资源需求以及开发周期等
- 产生顶层架构文档
- 标记关键模块-如果需要,提前开始
- 标记可能的第三方IP模块
- 选择项目组成员
- 标记新的制程和工具
- 对设计路由和流程达成一致
- 对风险进行头脑风暴
- 对silicon面积、输入输出、花费、功耗等进行评估
PM的任务: - 生成项目计划
- 获取资源:项目组、设备、工具等
- 组织训练课程
1.5 模块说明书阶段
这个阶段的输出:
- 所有指定的底层模块
- 经过评估的可实现的精确的项目计划
任务有: - 将架构分解到底层模块
- 模块功能和接口文档
- 对项目计划以及顶层架构文档进行review
- 风险分析-如果必要,可以修改架构和计划降低风险
PM任务:
- 开展项目building活动和推动技巧
- 管理风险分析
- 更新计划,对底层模块设计分配资源
- 开始考虑silicon评估和验证
- 定义一个快速的项目框架来对更新的地点和方式怎么被控制的进行说明
风险:
- 某些项目成员可能会在架构设计中觉得被孤立
- 项目组可能不明白项目目标
1.6 模块设计
本阶段的输出:
- 所有模块的设计、代码以及模块级测试(经过review)
- 各个模块进行初次的综合尝试
- 对pin-out达成一致
任务包括:
- 模块设计、代码编写、测试以及综合
- 芯片级测试平台搭建、代码编写以及测试
- silicon面积更加精确的评估
PM任务:
1.7 子系统仿真
本阶段的输出:
- 第一次运行成功的子系统仿真
- 子系统仿真文档review
- 完成子系统测试
任务:
- 编写以及review测试list文档
- 编写测试伪代码(比如CPU的寄存器访问、测试平台配置)
- 运行仿真
项目管理者任务:
- 近距离项目监控:经常安排快速的会议来探讨进程
风险:
- 项目成员间缺乏对于仿真issue的交流会增加不必要的时间花费
1.8 系统仿真以及综合
本阶段的输出:
- 第一次系统级仿真的成功运行