目录
第一章 SOC设计绪论
1.1 微电子技术概论
集成电路发展路程:SSI-->MSI-->LSI-->VLSI-->ULSI-->GSI。
微电子技术的发展得益于集成电路产业内部的细致分工,集成电路产业链主要包括设计、制造、封装和测试。
1.2 SOC概述
SOC(System On Chip)即系统级芯片,又称片上系统,其将系统的主要功能综合到一块芯片中,本质上是在做一种复杂的IC设计。现在的SOC芯片上可整体实现CPU、DSP、数字电路、模拟电路、存储器、片上可编程逻辑阵列等多种电路,综合实现图像处理、语音处理、通信协议、通信机能、数据处理等功能。
SOC的优势有:可以实现更为复杂的系统、具有较低的设计成本、具有更高的可靠性、缩短产品设计时间、减少产品反复的次数、可以满足更小尺寸的设计要求、可达到低功耗的设计要求。
1.3 SOC设计的发展趋势以及面临的挑战
1.3.1 SOC设计技术的发展与挑战
-
- 集成密度(复杂性):是指芯片单位面积上所含的元件数;
- 时序收敛,一般指前后端设计时序能够达到设计需求;
- 信号完整性,即一个信号在电路中产生正确的、相应的能力;
- 低功耗设计,主要由静态功耗和动态功耗组成,集成电路主要以静态CMOS为主,此时动态功耗是整个电路功耗的主要组成部分;
- 可制造性设计及成品率,过去的成品率完全取决于代工厂的制造工艺水平,而现在更多的将依赖于设计本身的特征;
1.3.2 SOC设计方法的发展与挑战
具体表现在:
-
- IP复用将不仅仅在硬件领域,在软件设计领域同样需要;
- 今后的设计将在一个应用平台上完成,该平台将包括一个或多个处理器和逻辑单元,即基于平台的设计;
- 可编程、可配置、可扩展的处理器核的使用,会使得原有的设计流程和设计者思维发生变化;
- 系统级验证时,利用高级语言搭建验证平台和编写验证向量,需要相应的工具支持;
- 软硬件协同综合,使得在同样的约束条件下,系统达到最优的设计性能。
1.3.3 未来的SOC
软件的作用所占比重将会越来越大,功耗问题将遇到更大的限制和挑战,可配置、可重构的复杂SOC必将成为未来的主流。
第二章 SOC设计流程
2.1 软硬件协同设计
这是指软硬件的设计同步进行,设计流程如下图所示。
系统需求说明 --> 高级算法建模与仿真 --> 软硬件划分过程 --> 软硬件同步设计 --> 硬件系统测试;
硬件 | 软件 | ||
优点 | 缺点 | 优点 | 缺点 |
|
|
|
|
2.2 基于标准单元的SOC芯片设计流程
SOC设计是从整个系统的角度出发,把处理机制、模型算法、芯片架构、各层次电路直至器件的设计紧密结合起来。SOC芯片设计步骤,主要包括模块定义、代码编写、功能及性能验证、综合优化、物理设计等环节。
2.3 基于FPGA的SOC设计流程
FPGA即现场可编程逻辑阵列,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
2.3.1 FPGA的结构
- 典型FPGA内部结构
- 可编程逻辑块(CLB);
- 可编程输入/输出单元(IOB);
- 数字时钟管理模块(DCM);
- 嵌入式块RAM(BRAM);
- 内嵌专用IP单元;
- SOC FPGA结构
在单芯片上集成处理器和FPGA的可编程能力,一直是FPGA技术发展的方向:既有高性能的处理能力,又有灵活的可编程配置能力。
2.3.2 基于FPGA的设计流程
- 典型的FPGA设计流程
- 电路功能设计;
- 设计输入;
- 功能仿真;
- 综合;
- 综合后仿真;
- 实现与布局布线,实现是将逻辑网表配置到具体FPGA上,布局布线是其中重要环节;
- 时序仿真与验证;
- 板级仿真与验证;
- 芯片编程与调试;
- 面向SOC的FPGA设计流程
本质上是软硬件的协同设计,同时又是以软件为中心的设计技术。
3.面向高层次综合的FPGA设计流程
高层次综合特指将行为级或更高层次的描述转化为RTL级别的描述。最后,需要将软硬件联合到一起进行仿真和测试。
第三章 SOC设计与EDA工具
3.1 电子系统级设计与工具
SOC的设计趋势正从RTL向电子系统级(ESL,Electronic System level)转移。ESL可以帮助设计者从更高层次进行电路设计,分为三步,首先是功能设计,此时需要建立并且验证所开发产品的功能模型;其次是基于应用的架构设计,此时需要描述整个系统平台,将功能模型映射到平台上并进行验证;最后是基于平台的架构设计,需要对平台进行低层次的描述,建立合理的硬件结构。
3.2 验证的分类及相关工具
SOC设计中验证包含以下几个方面:验证原始描述的正确性;验证设计的逻辑功能是否符合设计规范的要求;验证设计结果的时序是否符合原始设计规范的性能指标;验证结果是否包含违反物理设计规则的错误。
3.2.1 验证方法的分类
动态验证 | 静态验证 | |
定义 | 也叫仿真,是指从电路的描述提取模型,然后将 外部激励信号或数据施加于此模型,通过观察该 模型在外部的激励信号作用下的实时响应来判断 该电路系统是否都实现了预期的功能。 | 是指采用分析电路的某些特性是否满足设计要求的方法,来验证电路的正确与否。 |
优点 | 主要是模拟电路的功能行为; | 针对模拟电路所有的工作环境,检查电路是否满足正常的性能指标; |
缺点 |
| 只限于数字逻辑电路,准确性抵御动态仿真,还会提供错误信息; |
3.2.2 动态验证及相关工具
动态验证仿真流程
动态验证的工具很多,电路级仿真工具有:SPICE、TimeMill、NanoSim;逻辑仿真工具 有:基于事件的仿真器、基于周期的仿真器(VCS、ModelSim)
3.2.3 静态验证及相关工具
静态验证不需要输入激励信息,只需输入电路模型和相关参数及命令,验证工具会自动对该电路模型进行分析,并显示出分析的结果。由于静态验证是由工具自动完成的,不需要人工过多的干预,所以通常对设计的电路首先进行静态验证,以纠正一些比较明显的错误,然后再动态仿真,确定其具体的行为是否正确。
静态时序分析工具:PT(PrimeTime)。
3.3 逻辑综合及综合工具
从硬件的行为描述转换到电路结构,这种自动产生电路结构的过程称为综合。
3.3.1 EDA工具的综合流程
就现有的额EDA工具而言,逻辑综合就是将RTL级的描述转换为网表思维过程。
3.3.2 优化策略
- 器件复用:把不同的电路中某些相同的器件进行复用,以减少芯片的面积,但可能会降低时序;
- 时序重排:把触发器间延时比较大的组合逻辑的一部分调整到前/后一级,以平衡时序关系,降低关键路径,提高系统性能;
- 状态机重新编译;
3.3.3 常用的逻辑综合工具
Synopsys 的RTL综合工具Design Compiler,可以快速生成面积有效的ASIC设计。
3.4 可测性设计与工具
3.4.1 测试和验证的区别
相同 | 不同 | |
测试 | 都是对于电路进行向量输入,并观察输出; | 目的是检查芯片制造过程中的缺陷,对器件的质量负责; 测试向量是基于故障模型的; |
验证 | 目的是用来检查电路的功能是否正确,对设计负责; 测试向量基于事件或始终驱动; |
3.4.2 常用的可测性设计
可测性涉及两个最基本的概念,即可控制性和可观察性。可控制性表示通过电路初始化输入端控制电路内部节点逻辑状态的难易程度;可观察性表示通过控制输入变量,将电路内部节点的故障传播到输出端以便对其进行观察的难易程度。
DFT类型 | 定义 |
内部扫描测试设计 | 主要任务就是要增加内部状态的可控制性和可观察性,对于集成电路而言,其做法是将内部时序存储逻辑单元连接成移位寄存器形式,从而可将输入信号通过移位输入内部存储逻辑单元以满足可控制性要求。同样,以移位方式将内部状态输出以满足可观察性要求。 |
自动测试向量生成 (ATPG,Automation Test Pattern Generation) | ATPG采用故障模型,通过分析芯片的结构生成测试向量,进行结构测试,筛选出不合格的芯片。 |
存储器内建自测试 (Memory Built-in-self-test) | 内建自测试是电路自己生成测试向量,而不是要求外部施加测试向量,依靠自身来决定所得到的测试结构是否正确,它必须附加额外的电路,包括向量生成器、BIST控制器和响应分析器。 |
便捷扫描测试 (Boundary Scan) | 原理是在核心逻辑电路的输入和输出端口都增加一个寄存器,通过将这些I/O上的寄存器连接起来,可以将数据串行输入被测单元,并且从相应端口串行读出。 |
3.5 布局布线与工具
SOC的布局布线是指对构成集成电路的元器件(标准单元)及子模块的位置和相互连接进行合理规划,使最后得到的芯片具有较短的连线长度和较小的布局布线面积。
EDA工具的布局布线流程为:布局规划-->布局、器件放置-->时钟树综合-->布线。
3.6 物理验证及参数提取与相关的工具
3.6.1 物理验证的分类
- 设计规则检查(DRC,Design Rule Check);
- 电器规则检查(ERC,Electronic Rule Check);
- 版图电路同一性比较(LVS,Layout Versus Schematic);
3.6.2 参数提取
参数提取是指布局布线,再经过版图设计之后,根据工艺特点与参数,提取出包含描述各种线上电阻、电容及寄生电阻的网表文件。提取出的网表文件可以作为LVS检查中的版图信息文件,也可以用来进行后仿真。
参数提取的分类如下表所示:
1-D提取 | 一维提取在CMOS工艺进入深亚微米之前一直是主流的提取方式,主要提取连线在垂直方向上的寄生RC参数; |
2-D提取 | 二维提取不仅提取垂直方向上的面电容,而且会提取水平方向上的连线间的寄生电容; |
3-D提取 | 基本原理是使用泊松方程及拉普拉斯方程等空间基本方对根据版图建立的三维空间里的版图连线长度、驱动能力。 |