第1章IC系统设计概述_第1页
第1章IC系统设计概述_第2页
第1章IC系统设计概述_第3页
第1章IC系统设计概述_第4页
第1章IC系统设计概述_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章IC系统设计概述第一章第一章IC系统设计概述系统设计概述1.1 IC系统组成概述系统组成概述1.2 IC系统设计概述系统设计概述1.3 IC系统验证分析概述系统验证分析概述1.4 IC系统设计的现状系统设计的现状第一章IC系统设计概述IC设计有两个发展趋势: 宏观上, 它在向系统级演化, 这就是所谓的片上系统(System On a ChipSOC); 微观上, 它已经进入了纳米尺度设计的范畴(某些高端设计已开始采用90纳米及65纳米工艺进行设计)。 这两种发展趋势大大加剧了设计复杂性, 增加了设计风险, 并对Foundry、 EDA工具开发商、 设计者提出了更高的要求。 片上系统的一大

2、优势是可以大大降低产品的造价。 因此, 片上系统在通信、 多媒体等领域的应用越来越普遍。 通常来说, 片上系统包括至少一个嵌入式处理器, 使用片上总线连接嵌入式处理器与其他模块。 第一章IC系统设计概述开发片上系统必须采用基于IP的开发模式, 以应对系统日益复杂的功能需求。 片上系统设计中要解决如下难点: 如何进行设计复用。如何验证别人设计的IP。如何顺利地将不同的IP集成在一起, 使它们能协调工作。如何进行系统验证。如何进行软、 硬件协同设计和验证。 第一章IC系统设计概述深亚微米设计中, 比较棘手的问题包括: 连线延时的估计。 由于连线延时与单元延时相当, 会导致设计难以收敛的问题。 串扰

3、的分析与处理。 在深亚微米设计中, 相邻连线会出现耦合现象, 称为串扰。 串扰会导致延时不规律地变化、 性能恶化甚至功能出现错误。 电源线上的欧姆电压降的处理(包括静态电压降与动态电压降)。 电源/地线上的电阻产生的欧姆电压降会引起时序恶化及功能错误。 第一章IC系统设计概述据统计, 在第一次流片失败的设计中(0.18 m以下), 有20%是由于IR drop引起的。 在深亚微米设计中, 功耗已成为一个严重的问题。 在纳米尺度设计中, 漏电流引起的功耗开始占据主要地位。 本章将对上述IC系统设计问题进行讨论。第一章IC系统设计概述1.1IC系统组成概述系统组成概述IC系统是什么? 对这个问题,

4、 算法设计工程师、 架构设计工程师、 电路设计工程师、 版图设计工程师会给出不同的答案。 算法设计工程师说, IC系统是完成特定功能的硬件。架构设计工程师说, IC包括控制、 运算、 存储部分。 电路设计工程师说, 这是加法器、 乘法器、 与非门、 运算放大器、 开关电容等的搭配。 第一章IC系统设计概述版图设计工程师说, 它是多边形组成的集合。 这些答案都对。 如果把它们组合起来, 就是一个较为完备的答案。 图1.1给出了一个常见IC系统组成的示例。 在这个系统中, 包括如下内容: 数字部分(可能包括微处理器、 控制电路、 数据通路等); 模拟部分(可能包括PLL、 A/D、 RF等); 连

5、线; I/O PAD; 存储器。 第一章IC系统设计概述图 1.1常见IC系统组成示例第一章IC系统设计概述下面对各个部分进行简要说明。 1. 数字部分数字部分数字部分是构成IC系统的主要部分, 也是本书讨论的重点。 绝大多数数字设计采用同步设计方法, 即采用时钟来统一协调系统各部分的运行。 同步设计是数字设计的主流, 因此本书只讨论同步设计, 不涉及异步设计。 同步数字设计可以看作是由组合逻辑和时序单元(寄存器和锁存器)组成的, 如图1.2所示, 数据在时序单元-组合逻辑-时序单元这种结构间一级级地传递下去。第一章IC系统设计概述图 1.2同步设计的组成第一章IC系统设计概述与模拟电路不同,

6、 不同IC系统, 其中的数字部分千差万别, 难以进行归类。 通常可以将数字部分大致分为数据通路部分与控制部分。 数据通路是指乘法器、 加法器、 有限响应冲激滤波器(FIR)等规则的运算结构, 控制部分则是控制管理数据流通的逻辑。 2. 模拟部分模拟部分真实的世界是一个模拟的世界。 因此, 在一个IC系统中, 要与外部模拟世界交互, 模拟电路必不可少。第一章IC系统设计概述一般说来, 在IC系统中模拟电路包括如下部分: 模/数转换器(ADC): 将模拟信号转换为数字信号; 数/模转换器(DAC): 将数字信号转换为模拟信号;可编程增益放大器(PGA): 通过数字部分来控制模拟增益; 锁相环(PL

7、L): 用于产生高频的时钟和进行时钟恢复(即从数据中恢复出时钟); 其他。 第一章IC系统设计概述图1.3给出了一个IC系统的模拟部分。 这是一个收发器(transceiver)的示例。 它主要由A/D转换器、 D/A转换器、 时钟恢复电路、 时钟生成电路(晶振、 锁相环等)等构成。 第一章IC系统设计概述图 1.3IC系统中模拟部分示意图 第一章IC系统设计概述该收发器从接收的数据中恢复时钟。 接收到的模拟信号由A/D转换器变为数字信号。 要发送的数据由D/A转换器转变成模拟信号, 然后发送出去。 在许多通信芯片、 视频处理芯片、 音频处理芯片中, 模拟电路部分直接决定了芯片的性能、 造价等

8、。 说明说明:I/O及RAM的设计也属于模拟电路设计的内容。 这里为清楚起见, 将I/O和RAM单独进行说明。 第一章IC系统设计概述3. I/O 部分部分I/O 是IC系统与外部环境的接口。 I/O可以非常简单, 也可以非常复杂。 Foundry提供的综合库中, 通常包括三类PAD单元: 输入PAD、 输出PAD和双向PAD。 在设计中, 可以将这些PAD看作是标准单元, 直接例化就可以了。 I/O也可以非常复杂。 例如, USB、 1394(fireware)、 PCIE等都可以看作是复杂的I/O。 这些复杂的I/O可以作为IP集成到整个芯片系统中。 I/O PAD直接与外部世界相联系,

9、因此必须考虑到外部的寄生参数影响、 静电保护(ESD)、 封装要求、 电压转换、 过电压保护、 信号完整性等。 第一章IC系统设计概述 设计I/O PAD比设计标准单元要复杂许多, 特别对于有高性能与低功耗要求的场合更是如此。 在板级的世界, 有许多的I/O标准, 例如LVDS(Low Voltage Differential Signal, 低电压差分信号)、 TTL等。 在高速板级设计中, 为了减小噪声、 反射等的影响, 通常要将信号以差分的形式进行传送, 这就需要能够传送差分信号的PAD。 图1.4给出了一个带差分引脚的I/O PAD的示意图。 第一章IC系统设计概述图 1.4带差分引脚

10、的I/O PAD示意图 第一章IC系统设计概述I/O PAD上的功耗可能占到整个IC系统功耗的10%。 所以, 如果芯片用于功耗要求苛刻的场合, 例如用于手机等便携式设备, 那么I/O的设计必须关注功耗。 此外, I/O PAD的性能对整个芯片的速度影响也很大。为了分析I/O的速度、 功耗等性能指标, 需要借助EDA工具(如HSPICE)进行大量仿真。 第一章IC系统设计概述 在I/O设计中, 一个重要的内容是ESD保护。 外部世界(例如人的手指)携带的静电会产生很大的瞬时电流, 这个瞬时电流通过PAD送到芯片内部, 可能会导致芯片失效。 ESD保护电路如图1.5所示。 第一章IC系统设计概述

11、图 1.5ESD保护电路示例第一章IC系统设计概述为了降低板子上噪声的影响, 在输入PAD上, 一般包含施密特触发器(Schmitt Trigger)单元。 施密特触发器的功能如图1.6所示。 可以看到, 由于干扰等影响, 输入信号上有振荡; 输入信号经过施密特触发器之后, 这些干扰就被消除了。 第一章IC系统设计概述图 1.6施密特触发器的功能第一章IC系统设计概述4. 存储器存储器随着SOC这种架构的流行, 嵌入式存储器在芯片中的应用越来越多。 如图1.7所示, 到2005年, 存储器差不多占据了整个芯片70%的面积。 随着时间的推移, 这一比例还会继续增长。 第一章IC系统设计概述图 1

12、.7存储器占整个芯片面积的比例第一章IC系统设计概述存储器对于整个芯片设计至关重要。 这是因为: 在许多高速IC设计中, 存储器的带宽已成为性能的瓶颈; 存储器可能占据芯片70%以上的面积; 存储器消耗了芯片的大部分功耗。 嵌入式存储器的基本结构如图1.8所示。 它主要包括三部分: 位单元阵列; 行/列译码器; 敏感放大器(sense amplifier)。 第一章IC系统设计概述图 1.8嵌入式存储器的基本结构 第一章IC系统设计概述位单元阵列由许许多多的位单元组成。 这种规则的位单元阵列可以有效地节省面积。 位单元的实现在IC设计基础(任艳颖等编著, 西安电子科技大学出版社出版)一书中进行

13、了说明, 这里不再详述。 说明:说明:在大部分设计中, 我们无需自己设计存储器。 只需根据需要(深度、 速度、 面积、 功耗等)使用memory compiler, 将别人提供的存储器单元拼起来即可。 在使用存储器时, 要注意接口时序是否满足要求。 时序分析可以通过仿真和静态时序分析来进行。 更为准确的时序检查需要借助晶体管级的仿真/静态时序工具来完成。 第一章IC系统设计概述5. 连线连线连线包括芯片的信号连线、 电源线、 时钟线。 在一个芯片系统中, 连线是最容易被人忽略的部分。 实际上, 它很重要, 特别是在深亚微米的设计领域更是如此。 可以说, 如何处理连线, 将是困扰EDA设计者与I

14、C设计师的一个长久问题。 连线为什么会如此棘手呢? 根本原因在于, 在深亚微米设计中, 不能将连线简单地看作是理想的连接。 电路理论告诉我们, 金属连线具有电容、 电阻和电感效应。 第一章IC系统设计概述这些寄生效应会影响信号的完整性。 具体来讲: 连线的电容寄生效应会引起信号线的耦合, 如图1.9所示, 从而引起串扰(cross talk)。 串扰会影响时序, 引起建立时间/保持时间违例(setup/hold violation), 也可能会影响功能, 导致芯片无法正常工作。 第一章IC系统设计概述图 1.9芯片内部连线间的电容耦合第一章IC系统设计概述连线的电阻寄生效应会导致显著的电压降,

15、 从而影响信号电平。 在一个IC系统中, 是通过电源网络来供电的。 一个数字系统要能正常工作, 必须为它的逻辑单元提供稳定的直流电压, 并且这个电压的起伏要尽可能地小。 随着芯片规模的增加, 芯片内部的电流越来越大, 要满足电压稳定也越来越困难。 加宽导线可以降低电阻, 从而减小压降, 并且会增加允许通过的峰值电流, 但也会占用过多的面积。 第一章IC系统设计概述如果连线过长或电路速度极高, 则导线的电感效应开始变得显著。 电感效应很难处理, 幸好在目前的大多数设计中电感效应都很小, 可以忽略不计。 除了信号完整性问题, 连线还会导致设计时序难以收敛。 在进行逻辑综合时, 无法得到具体的连线信

16、息, 因此常采用连线负载模型(wirelad model)来估计连线延时。 这种模型是一种统计平均得到的结果, 与实际延时有明显的误差。 众所周知, 在亚微米设计中, 连线延时在整个路径延时中占的比例很小。 即使连线负载模型不准确, 对整个路径延时的影响也很小。 第一章IC系统设计概述而在0.13 m以下的工艺中, 连线延时已经与门的延时相当。 这样, 如果连线上的延时估计不准确, 则对于整个路径的影响将非常大。 这会导致综合的网表能满足时序要求, 但在布线后却无法满足, 这就是时序收敛问题。 在90 nm的工艺设计中, 互连线延时甚至占到总延时的75%。 为了解决这个问题, 人们提出了“物理

17、综合”的概念。 这些将在后面的章节进行详述。 需要说明的是, 信号完整性问题与时序收敛问题是互相联系的。 通常, 串扰会使时序更为恶化, 更难以收敛。 第一章IC系统设计概述1.2IC系统设计概述系统设计概述IC设计实际上是在性能、 面积、 功耗之间进行平衡。 随着IC系统向SOC演化, IC设计的内容也越来越丰富。 在几年前, 我们还可以将IC系统设计流程看作是简单的写代码、 综合、 布局布线, 但对于今天的IC系统设计, 其设计内容已经被大大拓展了。 第一章IC系统设计概述 现代IC系统设计包括算法设计、 软/硬件划分、 存储器分配、 RTL设计、 仿真、 验证、 综合、 静态时序分析、

18、等价性验证、 Floorplan、 时钟树生成、 布局布线、 可测性设计、 低功耗设计、 信号完整性分析等内容。 为清楚起见, 我们将IC设计分为三个部分: 系统设计、 电路/逻辑设计、 物理设计, 如图 1.10 所示。 嵌入式软件设计属于软件设计范畴, 这里不作为IC设计内容。第一章IC系统设计概述图 1.10IC设计的步骤第一章IC系统设计概述系统设计主要包括算法设计和架构设计, 具体内容如下:给出浮点数算法; 进行软、 硬件划分; 给出IC设计中数据的定点表示; 给出定点算法; 结构的并行性、 流水线设计; 存储器分配。 电路/逻辑设计是将系统设计的算法、 架构付诸实现的过程。 它分为

19、数字设计与模拟设计两种。第一章IC系统设计概述对于数字设计, 多采用Verilog/VHDL语言在寄存器传输级完成设计, 由综合工具生成网表; 对于模拟设计, 一般采用电路图与SPICE语言来完成设计。 物理设计是IC设计的最后一步。 物理设计得到的GDSII文件被送到工厂进行生产。 对于模拟电路和有特殊要求的数字电路, 采用定制方法完成物理设计; 对于一般的数字设计, 采用自动布局布线方法完成物理设计。 需要说明的是, 对于深亚微米的SOC设计, 上述开发流程不再是按“自始至终”的单一顺序进行, 而是互相迭代。 第一章IC系统设计概述1.2.1系统级设计系统级设计IC系统的架构正向“系统级芯

20、片”发展。 以往, 系统级设计主要是指板级设计。 随着硅工艺从0.18 m向0.13 m以及90 nm工艺转变, 单个芯片上可以集成大量的处理器、 外围器件和大于 1 MB的SRAM, 在单个芯片上能够实现原来多个硅芯片才能实现的功能。 在现在的IC设计中, 系统级设计占的比重也越来越大。 第一章IC系统设计概述 系统级设计主要包括规范的制定、 算法设计与架构设计几个方面。 创建系统设计规范是IC系统设计的第一步。 规范的定义必须严格准确。 有些对安全等级要求高的场合, 需要用形式化语言来描述规范。 如果可能, 在制定规范前要多看一些同类产品的数据单(datasheet)。 本书着重于规范制定

21、之后的设计, 对这方面的内容不再详述。 算法(或行为模型)可以看作一个IC系统的可执行规范。 对于通信、 视频这类包含大量数字信号处理的系统, 算法设计尤其重要。 算法工程师通常用C语言或者ATLAB来研究算法。 第一章IC系统设计概述MATLAB编程比较方便, 但对于大型设计, 往往更需要C语言较快的运行速度。现在, 越来越多的设计者开始采用SystemC进行架构设计。 SystemC是一种具有C+语法特征的硬件描述语言。 SystemC的真正优势在于: 它有很强的系统描述能力。 它可以在很高的抽象层次上方便地描述大型系统(虽然VHDL也具有系统级的描述能力, 但相当有限)。用SystemC

22、可以很方便地建立系统的可执行规范, 从而加快开发进度。 第一章IC系统设计概述可以用一种语言来描述软、 硬件, 有利于设计者比较各种软、 硬件划分方案, 并在设计早期进行协同验证。 设计者可以将SystemC模型逐个替换为Verilog/VHDL的RTL实现。 新的RTL模块可以与其他SystemC模型一起编译仿真。 说明说明:虽然SystemC的语法类似于C+, 但其优势并不在于仿真速度。 实际上,如果在SystemC 设计对象中将系统中所有的时钟跳变都描述出来, 则仿真速度并不比 erilog 或VHDL模型快多少。 第一章IC系统设计概述架构设计是系统设计的重要一步。 通过性能估算及仿真

23、, 设计者可以确定设计中所采用的数据通路结构。 例如, 设计中需要用多大的乘法器, 采用何种滤波器的结构, 采用并行方式还是串行方式更合理, 是否需要流水线(pipeline), 数据宽度选择多少。 这些都属于架构设计的范畴。 架构设计与算法设计紧密相联。 架构设计需要确定各模块如何划分、 模块如何相连、 存储器如何分配等问题。 在架构设计时, 要仔细地设计模块之间的接口, 把芯片实现的功能和时序局部化。 第一章IC系统设计概述 这样, 每个模块都可以在隔离的状态下独立地进行设计和验证。 在设计架构时, 需要考虑哪些模块由IP完成, 哪些由自己来实现。 在一个片上系统的设计中, 要用到许多IP

24、。 IP有软核、 固核和硬核之分。 硬核是经流片验证过的版图。 它的可重复使用性最低, 设计者不能进行任何改动, 使用起来相当于库单元。 软核是可综合的RTL模型, 可重复使用, 灵活性高。 固核是带有布局规划信息的网表。 硬核的优点在于已经通过了物理设计, 可以不加修改地直接使用, 时序是收敛的; 缺点是可能会使芯片难以布局布线。 第一章IC系统设计概述软核避免了硬核的上述弊端, 但存在开发周期长的缺点。 固核的易用性与灵活性介于硬核和软核之间。 在实际的IC系统开发过程中, 具体采用何种方式, 还需要设计者权衡考虑。 说明说明:为了推动IP的标准化, 在1996年成立了国际虚拟插座接口联盟

25、(VSIA)组织。 该组织已推出了一些进行IP设计标准化的文档。 例如, 它选择一些典型的、 可公开的虚拟元件(VC), 定义了推荐的提供内容, 如测试、 逻辑综合、 物理设计、 通信协议、 总线接口等。 第一章IC系统设计概述算法架构完成后, 需要转换为逻辑/电路实现。 在许多IC系统设计中, 这种转换要依靠手工来完成。 利用现在的系统级设计工具(如Synopsys公司的SystemC compiler), 可以将SystemC描述的系统模型翻译成RTL级Verilog/VHDL代码, 也可以将其直接翻译成门级网表。 系统设计对设计者提出了非常高的要求。 设计者往往要具备嵌入式处理器、 数字

26、信号处理器、 存储器、 系统总线等各方面的知识, 能够平衡系统存储器带宽和DSP的处理功能两方面的要求, 并且能够与软件开发者协同工作。 第一章IC系统设计概述在系统设计领域已出现了一些EDA工具, 如Synopsys公司的CoCD*2Centric System Studio、 Cadence公司的SPW(Signal Processing Workstation), 但此类工具还远未达到人们的期望, 因此未得到推广, 仅在一些特定的领域(如GSM)有一些应用。 说明说明:在芯片的验证中, 测试平台(testbench)的开发一直是个难题。 使用高级验证语言构造testbench要容易许多。

27、 在第2章, 我们将对系统级设计进行更详尽的介绍。 第一章IC系统设计概述1.2.2电路电路/逻辑设计逻辑设计电路/逻辑设计分为两方面: 数字电路设计和模拟电路设计。 下面首先介绍数字电路设计。 数字电路设计一般从RTL(寄存器传输级)开始。 设计者根据上一阶段得到的各模块的规范, 用Verilog/VHDL语言完成RTL代码。 RTL代码完成后, 可以借助nLint等语法检查工具改进代码质量。 第一章IC系统设计概述接下来进行RTL仿真, 以保证设计功能正确。 我们将在1.3.1节对仿真进行说明。 RTL仿真无误后, 用逻辑综合工具将RTL代码转成门级网表, 再将门级网表交由后端进行布局布线

28、。 图1.11给出了这一流程的示意。 虚线以上为逻辑设计, 虚线以下是物理设计。 第一章IC系统设计概述图 1.11采用逻辑综合的步骤第一章IC系统设计概述在一些深亚微米设计中, 物理设计与逻辑综合已开始融合, 这就是“物理综合”的设计方法。 物理综合与逻辑综合的差异在于: 在物理综合流程中, 可以在芯片规划(Floorplan)之后, 采用物理综合工具(如physical compiler)对网表自动进行反复的综合和布局。 由于这时工具能够得到每个单元上较为准确的连线信息, 因此可以消除设计不收敛的问题, 提高了芯片的性能。 图1.12给出了物理综合的步骤。 第一章IC系统设计概述图 1.1

29、2采用物理综合的步骤第一章IC系统设计概述在第4章对逻辑综合和物理综合进行了介绍。 在数字电路设计阶段, 设计者根据设计规范, 需要完成如下工作: 写RTL代码。将RTL代码综合为门级网表。 如果需要, 加入JTAG/扫描链/clock gating等内容。 进行时序检查、 等价性检查、 测试覆盖率估计、 功耗分析等。 第一章IC系统设计概述逻辑设计要求设计者对设计要求、 基本电路结构、 综合库、 RTL语言、 逻辑仿真等非常熟悉, 并了解可测性设计、 低功耗设计、 可复用设计等技术。 我们将在第3章介绍RTL设计技术, 在第6章介绍可测性设计技术, 在第9章介绍低功耗设计技术。模拟电路的设计

30、一般从晶体管级开始, 采用手工设计生成最终网表。 图1.13给出了模拟电路的设计流程。 第一章IC系统设计概述图 1.13模拟部分的设计流程第一章IC系统设计概述实际的IC系统往往是数/模混合系统。 数字IC与模拟IC单独设计、 各自验证的流程导致芯片开发效率降低。 目前已出现了数/模混合IC的设计方法。 图1.14给出了数/模混合仿真的流程。 第一章IC系统设计概述图 1.14数/模混合仿真的流程第一章IC系统设计概述在现阶段, 数/模混合设计工具还存在许多不足, 远未能达到设计者的要求。 第一章IC系统设计概述1.2.3物理设计物理设计芯片级的版图设计包括两部分内容: 全定制电路的版图设计

31、和自动布局布线的版图设计。 其中, 全定制方法适用于模拟电路和那些对性能面积要求较高的数字部分(例如CPU中的关键数据通路), 而绝大多数数字设计采用自动布局布线的方法来生成版图。 这两部分版图完成后, 要在芯片级别整合在一起。 图1.15给出了自动布局布线(APR)的流程。 第一章IC系统设计概述图 1.15自动布局布线的版图设计流程第一章IC系统设计概述1. 顶层规划顶层规划在实际的大型芯片设计中, 往往很早就确定了芯片中各个块的位置。 也就是说, 芯片的顶层规划常常在进行电路/逻辑设计的时候就开始了。 图1.16给出了芯片顶层规划的步骤。 第一章IC系统设计概述图 1.16芯片顶层规划的

32、步骤第一章IC系统设计概述在进行芯片顶层规划的时候, 要考虑如下因素: 如何使芯片的面积尽可能地小; 各个宏(macros)/块(block)如何与PAD连接; 电源方案; 引脚(PIN)方案; 分析顶层的布线信息, 通过合理地放置块, 合理地定义区域及分组, 使得连线的复杂性不会过高。 2. 布局布线布局布线 完成芯片顶层规划之后, 接下来进行布局布线。 通常, 这一阶段可分为四个步骤:第一章IC系统设计概述(1) 布局。(2) 扫描链的优化。 PR工具重新对扫描链中的单元排序, 以便降低布线的复杂性。 (3) 时钟树的综合及布线。 由于时钟是设计中最为重要的信号线, 因此在布线时要首先布时

33、钟线。 在通常的PR工具中, 通常将时钟树的生成、 时钟的布线作为一个单独的步骤, 称为时钟树综合。 (4) 布线。图1.17给出了布局布线的步骤。 第一章IC系统设计概述图 1.17布局布线第一章IC系统设计概述1.3IC系统验证分析概述系统验证分析概述究竟要设计什么样的电路? 如何保证制造出的电路和原来的设计一致? 生产出的产品功耗与速度是否与预期一致? 这些都是设计者必须要面对的问题。 现在的IC系统异常复杂, 设计时容易出错, 同时应用往往对它的可靠性要求极高。 为了验证IC系统是否正确, 人们提出了种种验证方法, 期望借助EDA工具的帮助, 尽可能地找出错误。 第一章IC系统设计概述

34、实际上, 验证属于设计的范畴, 但为清楚起见, 这里用单独一节来进行介绍。 验证贯穿了IC系统设计的每个阶段(从算法架构设计直至物理设计)。在系统设计阶段, 采用仿真方法进行性能分析和协议分析。在电路/逻辑设计阶段, 采用软硬件协同验证: 用仿真和FPGA验证功能; 用静态时序分析工具验证时序; 用形式验证检查综合过程及ECO是否正确。第一章IC系统设计概述在物理设计阶段, 采用物理验证(LVS、 DRC等): 用静态时序工具验证最终时序; 用形式验证检查布局布线过程及ECO是否正确。在验证中, 错误发现得越早, 对开发进度的影响越小, 这时验证就越有价值。 因此, 要尽量在设计的早期阶段(算

35、法架构设计、 RTL设计时)进行充分的验证。 常用的验证大致分为如下几类: 仿真、 静态时序分析、 形式验证、 物理验证(DRC/LVS)、 信号完整性检查、 FPGA验证等, 下面分别进行介绍。 第一章IC系统设计概述1.3.1仿真仿真仿真是功能验证的主要手段, 其基本原理如图1.18所示。 第一章IC系统设计概述图 1.18仿真基本原理第一章IC系统设计概述除了功能检查, 用仿真方法还可以检查系统的时序。 与静态时序方法相比, 仿真的方法更为直观, 能较为真实地模拟出电压发生变化、 串扰及毛刺、 电容耦合等各种情形下电路的运行情况, 其缺点是运行时间较长, 且时序检查不完整。 仿真贯穿了I

36、C系统设计的整个阶段。 第一章IC系统设计概述1. 系统设计阶段的仿真系统设计阶段的仿真在系统级设计阶段, 通过行为仿真, 可以达到下述目的: 分析算法是否正确; 验证性能是否满足要求; 验证系统划分是否合理。 系统级设计可大致分为浮点数算法设计、 定点数算法设计、 架构设计等几个步骤。 在每一步都可以进行系统仿真, 如图1.19所示。 第一章IC系统设计概述图 1.19系统级验证第一章IC系统设计概述系统级的仿真可以采用数据流仿真方法(不包括时间信息)和基于周期的仿真方法。 在系统中, 通常用SystemC/C/MATLAB来描述系统模型。 系统模型可以作为后续阶段验证的参考。 例如, 在R

37、TL设计中, 可以利用系统模型的输出结果作为参考基准, 检查RTL设计得到的结果是否正确。 第一章IC系统设计概述2. 逻辑逻辑/电路设计阶段的仿真电路设计阶段的仿真逻辑设计阶段的仿真分RTL仿真与门级仿真两种。 RTL仿真是验证系统功能是否正确的重要手段。 在RTL仿真中, 如何合理构造testbench、 如何进行“corner case”的验证, 是困扰设计者的难题, 也是目前验证的热点。 一个测试平台应包括如下几个部分: 待测试设计(Design under Verification)、 Stimulus(用于生成激励向量)、 Monitors(用于监控接口上的活动)、 响应比较电路(

38、用于检查设计的输出是否与预期的一致)。 第一章IC系统设计概述门级仿真速度较慢, 通常只是作为一种辅助手段来检查时序是否满足要求, 所以通常只需运行很少的几种激励即可。 在逻辑设计阶段, 目前有许多成熟的仿真工具, 如NC Simulator及VCS, 它们属于事件驱动(event driven)的仿真工具, 既支持RTL仿真也支持门级仿真。 仿真方法存在测试覆盖率低的缺点。 一些仿真工具开发商利用形式验证中“断言(assertion)”的概念, 提出了 “基于断言的仿真(assertion based simulation)”方法。 此外, 也有人尝试采用符号仿真(symbol simula

39、tion)的方法。 不过目前这种方法应用很少。 第一章IC系统设计概述对于模拟电路, 通常采用Hspice进行仿真。 对于特定应用的电路, 有一些特定的仿真工具, 例如在分析射频(RF)电路时, Cadence的Spectre比较实用。 在数/模混合设计中, 往往需要协同验证数字电路和模拟电路。 这时候, 需要用到混合仿真软件。 目前, 混合仿真软件是将逻辑仿真器与电路仿真器结合起来协同工作。 模拟部分通常用verilogA来建模。 图1.20所示为Synopsys的混合仿真环境。 其中, 数字部分采用数字仿真器VCS, 模拟部分采用模拟仿真器Nanosim; 数字部分用Verilog描述,

40、模拟部分用SPICE及VerilogA 描述。 第一章IC系统设计概述图 1.20Synopsys的混合仿真环境第一章IC系统设计概述1.3.2静态时序分析静态时序分析静态时序分析是检查IC系统时序是否满足要求的主要手段。 静态时序分析工具根据网表中各节点的负载, 利用综合库中各单元的延时查找表, 计算出单元延时及连线延时, 从而可以判断在该设计中寄存器之间最长路径上的延时有多少, 是否满足最大时钟约束。 如果不满足, 则静态时序分析工具会给出setup违例。 第一章IC系统设计概述 静态时序工具还会分析hold违例。 Hold违例跟时钟树有关。 在深亚微米设计中, 串扰(crosstalk)

41、、 IR drop等都会影响芯片的时序乃至功能。 这些属于信号完整性的范畴。本书1.3.6节对信号完整性问题进行了详述。 OCV(On Chip Variation,片上偏差)效应也越来越显著。 在现在的静态时序工具中, 支持对这些现象的分析。 静态时序分析可分为两类: 逻辑级分析和电路级分析。 前者针对用标准单元构成的网表, 后者主要针对模拟电路和混合电路。 第一章IC系统设计概述图 1.21逻辑级静态时序分析第一章IC系统设计概述在进行逻辑级静态时序分析时, 需要输入如下内容: 网表、 综合库、 时序约束(时钟、 输入延时、 输出延时等)。如果是对布局布线之后的网表进行静态时序分析, 还需

42、要输入寄生参数文件(该文件包含了由版图提取的网表中各节点的寄生电容和寄生电阻等信息)。 第一章IC系统设计概述 图1.21给出了逻辑级静态时序分析的步骤。 通常来说, 在网表综合完成后, 需进行静态时序分析, 在布局布线完成后, 再进行一次静态时序分析。 当然, 在布局布线尚未最终完成时, 也可以进行静态时序分析。 逻辑级的静态时序分析将在第7章进行详述。 电路级的静态时序分析工具(如PathMill)可以分析一个芯片的I/O是否满足时序要求。 第一章IC系统设计概述1.3.3功耗分析功耗分析一个芯片的功耗过大, 会导致如下问题: 使芯片性能变差。 使温度升高, 降低芯片可靠性。 限制便携式产

43、品的使用时间及电池寿命。 因此, 对于高性能设计或便携式应用, 必须采用低功耗芯片, 如奔腾芯片、 数字信号处理器、 手机芯片等。 第一章IC系统设计概述为了降低芯片的功耗, 必须采用低功耗设计技术。 低功耗设计可以从系统级、 逻辑电路级、 物理级着手。 在系统级, 进行软、 硬件划分时, 要考虑哪种划分方案会得到更少的功耗; 要选择功耗最小的算法; 可以考虑采用并行运算、 流水线等手段, 降低功耗; 可以采用多电压设计方案来降低功耗; 可以设置省电模式, 以便在系统不工作时降低功耗。 第一章IC系统设计概述在RTL设计级, 可以考虑采用时钟门控、 操作数隔离(operation isolat

44、ion)等技术来降低功耗。 在逻辑综合时, 可以考虑采用插缓冲、 相位分配(phase assignment)等技术来降低功耗。 在进行布局布线时, 也要考虑到功耗的影响。 可以将翻转率高的节点用寄生电容较小的金属层来布线, 以减少整体功耗。 此外, 还可以考虑采用新的材料、 新的封装技术来降低功耗, 以消除功耗的影响。 第一章IC系统设计概述芯片速度的提高, 工艺水平的进步, 便携式应用的增加, 封装技术发展的相对迟缓, 这些因素使低功耗设计在IC设计中越来越重要。 低功耗设计技术可能会导致速度变慢、 芯片面积增加、 设计周期延长, 但这总比需要依靠风扇、 封装甚至液氮来降温要好。 在进行低

45、功耗设计前, 首先要进行功耗分析, 了解设计中哪一部分消耗功耗最大, 何种功耗所占比例最大, 接下来才能有的放矢, 研究降低功耗的设计方法。 第一章IC系统设计概述在实际应用中, 通常在门级和晶体管级进行功耗分析。 有些工具也支持RTL级的功耗分析, 以帮助设计者尽早了解设计中功耗的情况。 而系统级的低功耗分析工具还很不成熟。 利用功耗分析工具可以得到峰值功耗与平均功耗。 影响温度的是平均功耗。 下面列出Synopsys与功耗分析有关的工具。power compiler: 对动态功耗和泄漏功耗进行优化; primepower: 对峰值功耗和平均功耗进行分析; JupiterXT: 生成电源网格

46、; 电源网络分析; AstroRail: 电压降及电子迁移分析。 第一章IC系统设计概述1.3.4形式验证形式验证用仿真的方法验证系统功能有两个缺点: 一是很难对一些隐蔽错误进行定位, 二是要耗费大量的仿真时间。 随着系统规模的增大, 这些缺陷越来越令人无法容忍。 形式验证是最有希望解决此问题的途径。 形式验证大致分为模型检查(Model Checking)、 定理证明(Theory Prover)和等价性检查三类。 第一章IC系统设计概述模型检查用时态逻辑来描述规范(Specification), 通过有效的搜索方法来检查给定的系统是否规范。 模型检查是目前研究的热点, 但其验证的电路规模受

47、限制这一问题还没有得到很好的解决。 定理证明把系统与规范都表示成数学逻辑公式, 从公理出发寻求描述。 定理证明验证的电路模型不受限制, 但需要使用者的人工干预及较多的背景知识。 等价性检查的验证用于验证RTL设计与门级网表、 门级网表与门级网表是否一致。 在进行扫描链重排、 时钟树综合等过程中, 都可以用等价性检查保证网表的一致性。 等价性检查已融入IC标准设计流程中, 如图1.22所示。 第一章IC系统设计概述图 1.22IC设计中的等价性检查第一章IC系统设计概述等价性检查在检查ECO时非常有用。 例如, 设计者在修改门级网表时, 由于手误, 错将一个或门写成或非门, 等价性工具通过比较R

48、TL设计与门级网表, 可以很容易发现这种错误。 与前两种形式方法相比, 等价性检查功能最弱, 自动化程度最高。 目前商用化的形式验证工具都属于这一类, 例如Cadence公司的verplex与Synopsys公司的formality等。 第一章IC系统设计概述1.3.5物理验证(物理验证(DRC/LVS)在物理阶段, 要完成的检查包括: 串扰分析、 电源网格分析、 DRC、 LVS、 ANT, 如图1.23所示。 第一章IC系统设计概述图 1.23物理设计阶段的验证第一章IC系统设计概述串扰分析与电源网格分析属于信号完整性的内容, 我们将在下节进行介绍。 这里对DRC、 LVS进行概述。 DR

49、C检查所设计的版图是否符合工厂给出的版图设计规则。 版图级的验证工作(LVS)检查版图级的实现是否与门级网表一致。 通过LVS可以发现版图工具的错误或者是手工对版图进行修改导致的错误。 第一章IC系统设计概述1.3.6信号完整性分析信号完整性分析以前信号完整性问题仅出现在高速电路板设计中, 现在也开始出现在IC系统中。 随着器件的特征尺寸越来越小, 器件的供电电压、 噪声容限均开始下降, 而耦合电容增加。 这些导致了在IC系统中会出现信号完整性问题, 例如图1.24所示。 第一章IC系统设计概述图 1.24最新工艺对信号完整性的影响第一章IC系统设计概述影响信号完整性的因素主要有串扰(cros

50、s talk)和电源上的电压降(IR drop)。 其中串扰主要是由连线的耦合电容引起的, 电源欧姆电压降主要是由连线的电阻效应引起的。 串扰会影响芯片的时序和功能。 图1.25给出了串扰的示例。 第一章IC系统设计概述图 1.25串扰对时序和功能的影响第一章IC系统设计概述在图1.25中, A节点与B节点之间有耦合电容CW。 当A节点电压由低电平变到高电平时, 或者从高电平变到低电平时, 这种变化会通过耦合电容影响到B节点。 这时候, 称A为Aggressor(入侵者), 称B为Victim(受害者)。 串扰会导致Victim的延时增加或降低, 从而引起建立时间违例或保持时间违例。 Aggr

51、essor上的跳变还会引起Victim上电压的跳变, 导致功能出错。 串扰的分析与纠正必须借助串扰分析工具、 寄生参数提取工具与物理设计工具, 如图1.26所示。 分析串扰时, 必须要有噪声库(noise library)。 第一章IC系统设计概述图 1.26串扰分析与纠正第一章IC系统设计概述图 1.27IR drop效应示例第一章IC系统设计概述众所周知, 电流流经一个有电阻的导线时会导致欧姆电压降。 电源网格(VDD与GND)上的电压降会降低芯片内单元的供电电压, 会影响芯片时序甚至导致功能出错。 图1.27所示为IR drop效应示例。 第一章IC系统设计概述分析IR drop时, 可

52、以将电源网格看作是由电阻(导线)、 电流源(逻辑)构成的网格。 由于在芯片中各单元的峰值电流是随时间变化的, 因此IR drop是一种动态现象。 影响IR drop的主要因素是一些切换事件, 如时钟上的切换事件, 总线驱动器上的切换事件等。 目前已有一些电源网格分析工具, 例如CadencePower和RailMill。 这些工具可以对芯片中的电流进行动态分析, 并能够对电源网格进行模拟。 第一章IC系统设计概述1.3.7基于基于FPGA的验证的验证FPGA已成为设计者验证设计的得力助手。 与仿真相比, 用FPGA检查设计的效率要高出许多。 在实际芯片开发中, 经常将FPGA原型机验证与RTL仿真结合起来。 今天FPGA的性能已能达到500 MHz, 而大多数ASIC的性能都小于这个数字。 也就是说, 大多数产品都可以用FPGA进行验证。 特别是对于100200 MHz这个范围内的IC, 用FPGA验证非常合适。 第一章IC系统设计概述在验证时, 可以将待测信号引到FPGA的引脚, 采用示波器实时观测信号波形。 此外, 现在的FPGA实现工具一般都提供了通过计算机观察FPGA内部信号的功能, 其原理是: 通过J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论