高级ASIC芯片综合_第1页
高级ASIC芯片综合_第2页
高级ASIC芯片综合_第3页
高级ASIC芯片综合_第4页
高级ASIC芯片综合_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、高级ASIC芯片综合翻译者:阿信使用 Synopsys 公司的 Design Compiler Physical Compiler 和 PrimeTime第二版目录写在前面刖言刖言事实证明,相对于集成电路IC设计规模半导体产业是相对?。作为一个团 体,80年代中期,每个芯片集成了大约1000个晶体管,我们称之为大规模集成 电路(LSI),仅仅在大约两年后,每个芯片的品体管集成数量就达到了 1万10 万个,我们所用的术语也迅速的变成了甚大规模集成电路(VLSI)。Preface 前言这本书的第二版描述了一些使用Synopsys公司的一套工具在ASIC芯片设计中 的高级概念和技术,包括ASIC芯片

2、综合,物理综合,形式验证和静态时序分析 等。另外,对ASIC的整个设计流程和沈亚微米(Very-Deep-Sub-Micron)设计 技术作了详细的介绍。这本书的重点是在Synopsys工具的实时使用上,用工具去解决在深亚微米尺寸 领域的各种问题。将展示给读者解决在亚微米ASIC设计复杂问题的有效设计方 法。重点就在HDL的编码风格,综合和优化,动态仿真,形式验证,可测性设 计DFT扫描链的插入,版图设计的连接,物理综合和静态时序分析。在每一步, 确定设计流程中每一段的问题,问题的解决方法并围绕此问题展开详细的论述。 另外,关于版图设计的关键问题,比如时钟的综合和最后的集成也作了较长篇幅 的讨

3、论。最后,这本书深入的讨论了基本的Synopsys技术库和编码风格,综合 优化技术。这本书的读者对象是刚刚工作的ASIC设计工程师和学习过ASIC大规模集成 电路设计与可测性设计课程的高年级学生。这本书并不是想取代Synopsys的参 考手册,而是为任何参与ASIC设计的人员而写。同时,这本书对那些没有版图 能力或者自己有技术库但是需要其他公司来做后端集成和最终制造器件的计者 (和公设司)都是很有用。因为到深亚微米技术会遇到各种各样的问题,本书提 供了可选择的;这本书同时也介绍了设计人员对不同EDA工具商提供的各种工具时所面临常见 问题的解决方法。这本书中的所有Design Compiler命

4、令都更新为Tcl版本的命令。为了尽量反映 最新版(2000.11SP1)的Synopsys的这套工具,这些命令都作了及时的更新。各章概要第一章简要介绍了用Synopsys工具设计ASIC流程时各种不同平台。这个设 计流程在此作了精简的描述,从概念到流片。这一章对那些想学习ASIC设计的 整个流程但还没有钻研过芯片设计到集成的整个流程的设计者是非常有用的。第二章论述了第一章中描述的ASIC设计流程中的实践方面的问题。初学者 可以把这一章作为指导手册。有使用Synopsys工具经验的设计者可以把这一章 作为有益的参考。没有使用Synopsys工具作综合经验的读者可以先跳过本章, 在读完后续章节后再

5、读这一章。综合的基本概念在第三章有详细的解释。这些综合术语的概念贯穿到后面的所有章节。读者将会发现这些信息非常有用,可以对这些工具及工具的使用环境 有一个基本的理解。第四章对Synopsys技术库做了基本的讲述。设计这常常对技术库的技术细 节不够了解,同时这些库包含了各种具有不同驱动能力的库单元。然而,一个拥 有丰富单元的库往往决定了综合的最终质量。因此,这一章就从设计者的角度来 讲述Synopsys技术库。集中讲述延迟的计算方法和其他技术,这些技术主要用 来改变技术库的行为,提高综合的质量。合适的功能划分和好的编码风格是获得好的输出结果的必然要求。第5章讲 述了各种技术来指导读者该怎样做合适

6、的功能划分来达到预期的优化目标。另 外,这一章也讲述了 HDL的编码风格,并举出多个附有点评的例子来引导读者 编写出逻辑速度更快面积更小的设计。Design Compiler综合和优化所使用的命令在第6章作了描述。这一章包含 了对Synopsys工具的初学者和有经验的人员都非常有用的信息。这一章注重实 际应用。这一章列举了数个例子来指导读者对这些命令的使用。第7章讨论了为满足时许和面积要求的优化技术。在老版本的DC和新版 本的DC都有讲述,重点是新版本。重点讲述了 Design Compiler中采用的新的 优化技术“TNS”。同时对各种逻辑优化技术也作了详细介绍。另外,对不同编 译策略的优点

7、和缺点也给出了详细的讨论。可测性(DFT Design For Test)设计技术越来越成为ASIC设计工程师考虑 的一大要素。第8章对当今设计界所使用的各种DFT技术作精简的描述,随后 对使用Synopsys的Test Compiler工具作器件的扫描插入给出了详细介绍。介绍 了 Design Compiler做扫描链插入的命令。介绍一些指导方针来处理DFT设计的 中的各种问题。第9章介绍了 Design Compiler与后端版图的连接特性,描述了前端和后端 工具的接口。同时,这一章介绍了设计中版图优化的一些策略。这包括in-place 和location优化技术。更进步,列出一节专门讨论

8、时钟树的插入和时钟树的转移 的相关问题。这一章对那些不打算自己做版图而希望学习布局布线过程和整个芯 片集成技术的设计者或公司都是极其有用的。物理综合技术的引入,迅速的改变了传统的综合方法。第10章详细描述了 物理综合技术。这一章描述了各种得到优化结果的物理综合方法。为了理解物理 综合的流程,建议读者先去读一些好传统设计流程相关的章节(尤其是第9章), 然后再来读这一章。将这一章讲述的流程和传统的流程做一个比较学习。为了使 用这个新的工具,本章列出了一些脚本的例子来说明使用方法。第11章的标题是SDF(标准延时文件)文件的产生:为了做动态时许仿真, 这一章描述了用Design Compiler或

9、PrimeTime产生SDF文的过程。有一节讲 述SDF文件的语法格式,接下来详细讨论在版图前和版图后的SDF文件的产生 过程。另外,为了更好的帮助设计人员获得成功的仿真,这章还给出了一些新的 思想和建议。这一章对那些做动态仿真和形式验证来验证设计功能的设计者非常 有用。第12章给读者介绍了用PrimeTime做静态时序分析的基本知识。这包括其 中一节讲述了使用PrimeTime的Tcl语言。同时描述了用PrimeTime完成静态时 序分析的一些命令,这些命令对设计人员找出设计中可能存在的违反时序的错误 也是很有帮助的。设计出可靠工作的芯片的关键一步就是对特定的设计能够成功的做完静态 时序分析

10、。这种能力使得静态时序分析成了整个设计流程中最重要的一步而且成 为很多设计者公认的判断ASIC销售商的标准。第13章主要讲述了用PrimeTime 做静态时序分析的一些基本的高级的论题。这一章很有效的说明了在整个设计流 程中版图前和版图后PrimeTime的使用。另外,列举了许多例子来说明在各种假 定情况下的报告和建议设置分析。这一章对那些想从传统的动态仿真分析法向静 态分析法设计转移的设计者非常有用。对那些想用PrimeTime对设计做更深入的 分析的读者也很有帮助。这本书中用到的一些约定所用Synopsys的命令都是用Ariel字体打印的。这包括所有例子中的综合 脚本和时序分析脚本。命令行

11、的提示符使用Courier New字体打印的。例如:dc_shell 和 pt_shell一些命令中使用的选择值都用三角括号括起来了。总之,这些值在 命令使用之前必须被具体的取值替换掉。例如:set_false_path -from -to 反斜杠”表示本行写不完下一行继续,而竖杠“ |”字符表示“或”的关系。例如:compile -map_effort low | medium | high -incremental-mapping无论那里,关键字都是斜体的(italicized需要强调的主要论题或观点都 用下划线或粗体字表示。致谢没翻译关于作者Himanshu Bhatnagar是位于美国

12、加利佛尼亚州新口海滩Conextant Systems公司 ASIC设计小组的领导者。该公司是世界上最大的专注于电子通信半导体产品的 供应商。作者利用最新的高性能的Synopsys公司和其他公司的EDA工具来研究 下一代的ASIC设计流程和设计方法学。加入Conexant公司之前,作者在新加坡的特许微电子公司和位于法国格勒诺布 尔市的公司总部工作。他在英国威尔士 Swansea大学完成了他的电子与计算机科 学学士学位,在美国的Clemson大学完成了大规模集成电路设计的硕士学位。1ASIC设计方法学随着深亚微米半导体器件尺寸的缩小,传统的设计方法变得越来越困难。除此 之外,在同一个晶元中集成了

13、越来越多的晶体管,这使得设计功能的验证非常困 难,甚至不能确认设计的功能正确与否。另外,在关键的产品上市时间的压力下 设计周期没有变化,或者被持续的缩短了。为了解决这些问题,发展了新的设计 方法和设计工具,使ASIC设计方法容易使用。这一章的主要作用就是带领读者认识在亚微米领域芯片设计的不同阶段。同时 对改进设计流程的一些技术也作了介绍。从这本书的上一版开始,Synopsys公司又介绍了另外一个叫做物理综合 (Physical Compiler)的工具。在这个工具中,综合和布局的处理更加紧密。因 此,相对传统的设计流程有了很大的改变。这一章向读者强调了这些新技术的重 要性,解释了为什么这些新技

14、术在整个设计流程中达到设计最优化的必须性和这 些新技术怎样缩短整个设计周期。因为这个工具对IC设计界来说还是陌生的, 到现在为止,还没有100%的融入到设计界,所以对传统的设计流程和新的设计 流程都作了讨论。这一章主要在ASIC设计流程的基础上讲述整个综合过程,从RTL级代码到 最后的流片。讨论了传统设计流程和物理综合流程。1.1传统的设计流程下面讲述传统的ASIC设计流程包含的步骤。流程图1-1说明了整个设计流程, 下面加以讲述。以后的章节将更加详细的讲述和综合有关的话题。结构和电气规范。RTL级的HDL编码。为包含存储元件的设计做可测性DFT和存储自测试BIST的插入。为了确保设计功能正确

15、,做全面的动态仿真。设计环境的设定。这包括技术库的使用和其他和环境有关的属性设置。使用Design Compiler对设计进行扫描链插入(可选择JTAG),设计约束 和综合。使用Design Compiler自带的静态时序分析工具对设计做模块级的静态时 序分析。使用Formality工具对设计进行形式验证,比较RTL和综合后的网表。使用PrimeTime工具对整个设计进行版图前的静态时序分析。使用版图实现工具对提取的时序约束进行反标。在时序驱动下进行初步的单元布局,时钟树的插入和全局布线。把时钟树转化为DesignCompiler内部的原始设计网表。13.用DesignCompiler对设计进

16、行局部优化。使用Formality工具对设计在综合后的网表和插入时钟树的网表进行形式 验证。(RTL Vs Gates)Pre-layout ST AFloorplanning, Placement, CT Insertion & Global RoutingOptimization & Scan InsertionArchitechtural Specs & RTL codingFormal Verification (Scan Inserted Netlist Vs CT Inserted Netlist)Formal VerificationRTL SimulationPost-layo

17、ut STA图1-1传统ASIC设计流程在做过全局布线后(图中第11步)的版图中提取估计延时信息。把从全局布线后的设计中提取的估计时间数据反标给PrimeTime。在PrimeTime中使用从全局布线后提取的估计延时信息对设计进行静态时 序分析。对设计进行局部的布线。对局部布线后的设计进行延时信息的提取。把上一步提取的延时信息反标到PrimeTime中。使用PrimeTime对版图后的设计进行静态时序分析。使用版图后的延时信息对版图后的设计进行门级的功能仿真。(如果有要 求)电气规则(LVS)和设计规则(DRC)检查通过后的流片。图1-1,说明了上面讨论的典型ASIC设计流程。STA和CT是英

18、文的首字母 缩写,分别表示静态时序分析和时钟树,DC表示DesignCompiler。规范和RTL编码芯片的设计概念来自于市场的需求想法。然后把这些想法转化为设计的体 系结构规范和电气规范。体系结构规范定义设计的功能,把芯片划分成几个容 易实现的模块;而电气规范则定义各个模块之间的时序关系。芯片设计的下一个阶段就是怎样实现这些规范。在过去是在单元库找出有 用的器件,然后手工画电路图的方式来实现的。这种方式既耗时又无法实现设 计的重复利用。为了解决这个问题,开发出了硬件描述语言(HDL)。顾名思 义,设计的功能是用HDL编码来表达的。当今主要有两种硬件描述语言, Verilog和HDL。两者都可

19、以表达相同的功能,各有它们的优缺点。用硬件描述语言可以对设计进行三个等级的抽象描述;行为级, RTL (Register Transfer Level)级和结构级。行为级代码是更高级别的抽象,主要 用于把体系结构规范翻译成代码进行功能仿真。行为级代码刚开始是为了完成 对设计实现的正确性和可行性分析。相反,RTL级代码用来描述和推断设计的 元件结构及内部连接关系。这种类别的代码是用于描述设计的功能并能综合生 成网表。这个网表由目标库中的元件和它们各自的连接关系组成;非常类似于 手工画的电路图。一个设计用RTL级的语言格式编码,用Verilog或VHDL,或两者的混 合。如果有必要,也可以分割成几

20、个小一些的模块来形成层次化的结构,使用 一个顶层模块来连接所以低一级的模块。Synopsys公司最近推出了行为级综合器Behavior Compiler,能够对行为 级的代码进行综合。这是以后讨论的主要话题和这本书不相关,这本书只讲述 RTL级相关的综合问题。动态仿真第二步是通过对RTL级代码的动态仿真来检查设计的功能。所以当前可 以用的仿真器都具有仿真行为级和RTL级代码的功能。另外,这些工具也可 以用于仿真映射后的门级设计。图1-2说明了使用test bench来准备仿真一个分模块的设计。这个test bench通常是用行为级硬件描述语言描述而设计通常是描述为RTL级的代码。通常,仿真器是

21、和描述语言紧密相关的(要么支持Verilog要么支持VHDL),虽然市场上有几个可以支持两种语言的仿真器。图1-2层次化设计例子Test bench的主要功能是给设计提供必要的输入激励。所完成的测试情况 和 test bench的质量决定了设计测试的覆盖率,明白这一点是很重要的。这就 是为什么一个全面的测试程序对设计是至关重要的。在对RTL级代码进行仿 真时,元件(或逻辑门)的延时是不考虑的。因此,为了减少在RTL级仿真 和后面的综合后的门级仿真的差别,在编RTL级源代码时,通常时序模块中 加入延时信息。约束,综合和扫描链插入在很长一段时间里,硬件描述语言是用来做设计的逻辑验证的。设计者 把硬

22、件描述语言手工翻译成电路,并画出各个元件之间的连线来产生门级的网 表。随着功能强大的综合工具的出现,这种手工作业的方式逐渐的被淘汰。综 合工具取代了手工综合,能够更快的完成从RTL级的描述到门级网表的转化 任务。这个处理过程就是所谓的综合。Synopsys公司的综合工具Design Compiler(以后简称DC)是事实上的标准综合工具且到现在为止也是在ASIC设计行业里最流行的综合工具。一个设计的综合是需要反复多次的过程,首先需要定义每个模块的时序约 束。这些时序约束定义了相应模块的每个信号相对于时钟输入的关系。除了时 序约束之外,还需要一个定义综合环境的文件。这个环境文件指定了 DC在综

23、合过程中所用到的工艺库和其他的相关信息。DC读入设计的RTL级代码并利用时序约束文件把代码综合到结构级,然 后产生对应的门级网表。这个概念可以从图1-3来理解。图1-3 DC的输入和输出对一个设计的较小的模块,通常使用DC内部自带的静态时序分析工具来 静态时序分析并生成报告DC会尽量优化设计,使之能满足指定的时序约束。 如果时序要求没有满足,则需要进一步的优化。现在大多数的设计中都会包含可测性设计(DFT)逻辑,用于芯片生产出来后的功能测试。DFT由自测(BIST)存储逻辑,扫描逻辑和边界扫描逻辑 (JTAG)等逻辑电路组成。这些逻辑电路和自测(BIST)存储逻辑是由控制逻辑的可综合代码组成

24、的,它们在综合之前就要加入到设计中。市场上有不少用于产生BIST控制器 和编辑逻辑的工具。不幸的是,Synopsys公司没有提供具有此类功能的工具。扫描链的插入也许可以使用DC的准备测试编译特性来完成。这个处理过 程把设计的RTL级代码在链接成扫描链之前直接映射成扫描寄存器。利用这 个特性的一个优点是它能够使DC在综合时计算扫描寄存器的时间。这个技术 是非常重要的,因为相对于那些没有插入扫描链同样的设计,它们具有不同的 延迟时间。JTAG或边界扫描主要用于测试电路板的连接情况,而不用把芯片从板子 上拔掉。JTAG控制器和边界逻辑也可以直接由DC来产生。形式验证形式验证的在ASIC设计行业还是相

25、当的概念。形式验证利用数学方法 来确定设计的功能,不需要工艺库的支持,例如时序和物理效应。形式验证把 设计和参考设计相比较来确认设计的功能。很多EDA供应商已经开发出了形 式验证工具。然而,就在最近,Synopsys公司的形式验证工具Formality也推 上了市场。形式验证和动态仿真的主要区别是前者通过比较两个设计在结构和功能 上的等价性来验证设计。动态仿真只能够验证被激活路径的功能,因此就可能 在没有测试到的地方出现问题。另外,和动态仿真所花的时间相比,形式验证 的所用时间非常的少。在设计流程中,形式验证的目的就是比较设计的功能是否相等。比较可以 是RTL级代码和RTL级代码,门级网表和R

26、TL级代码,或门级网表和门级 网表。RTL级代码和RTL级代码的验证是用于确保新的RTL级代码和原来的 RTL级代码的功能一致。这经常会发生在设计这为增加功能而反复修改设计 时。当源代码增加了新的功能特性时,就会原来的代码的正确功能带来潜在的 风险。为了消除这风险,就可以在新的代码和原来代码之间做形式验证。RTL级代码和门级网表之间的形式验证是用于确保用DC综合后的设计依 然是正确的。虽然RTL级代码的动态仿真后是 功能正确的,当是对设计的形 式验证确保了在对设计插入扫描链综合后的功能和RTL级代码功能是一致的, 即综合后的网表具有相同的功能。在综合后的情况下,如果我们用动态仿真的 方法来验证

27、门级网表的正确性,那么将会耗费很长的时间(根据设计的大小, 可能花几天或几周的时间)来验证设计。相比而言,形势验证方法仅仅需要几 个小时来做相似的验证。最后一部验证是在门级网表和门级网表之间。这也是整个验证过程中非 常重要的一步,这一步主要用来验证在修改后的版图和原来版图之间的功能一 致性。版图后的一个很明显的改变就是时钟树网表(一层的或者有层次的)的 插入。这就意味着原来传给版图工具的网表被修改了。形式验证就是就被用于 验证修改后的网表和原来网表的逻辑等价性。用Prime Time做静态时序分析前面曾提到过用DC对设计做模块级的静态时序分析。虽然芯片级的静态 时序分析也可以使用上述方法,但最

28、好还是用 PrimeTime。PrimeTime是 Synopsys公司的专门做静态时序分析的工具,能够在芯片级完成快速的静态时 序分析。它提供了 Tcl (工具语言)接口,这样能够为设计的分析和消除错误 提供非常强大的操作环境。静态时序分析在某种程度上是整个ASIC设计流程中最重要的一步。静态 时序分析可以让使用者对所有的关键路径进行分析,然后把分析很有条理的报 告给设计者。另外,这个分析报告还包含其它一个有利于消除错误的信息,例 如每条连线的扇出和负载电容。静态时序分析在门级网表生成版图前和版图后都要做。在版图前,即在门 级网表这一级,PrimeTime使用工艺库中指定的线负载模型来估计连

29、线延时。 在此过程中,以前用 于DC做时序分析的时许约束文件也同样适用于 PrimeTime,这些时序约束文件指定了主要输入输出信号好时钟信号的关系。 如果时序约束对所有的关键路径都是可以接受的,那么就可以用PrimeTime 或者是DC导出一个约束文件,把这个约束文件反标给前面的布局布线工具。 这个约束文件是SDF格式,它指定了设计中各个逻辑模块之间的时许关系, 布局布线工具就利用这些时序信息来完成时间驱动的单元布局。在版图级的静态时序分析,提取出的延时信息更贴近实际,这些延时信息 返回给PrimeTime做较真实的延时计算。这些延时由连线电容和内部RC (电 阻和电容)组成。和综合类似,静

30、态时序分析也是一个需要不断反复的过程。它和芯片的布 局布线紧密相连。通常为了满足时序要求,这个过程序要反复多次。布局,布线和验证顾名思义,规划(layout)工具完成设计的布局和布线。这一步可以有很 多方法来完成。然而,这一节仅仅讨论和综合相关的问题。预布局和布局的质量比实际的布线要重要的多。理想的标准单元的布局不 仅可以提高布线的速度,而且可以提高设计的时序,减少时序冲突。就像前面 解释过的一样,约束文件用于时序驱动的布局。时序驱动的布局方法迫使布局 布线工具按照单元之间的时序违反的危险程度来决定单元的放置位置。把标准单元布局好之后,就利用布局布线工具在设计中插入时钟树。时钟 树的插入是可选

31、择的,主要依赖设计者的喜好。设计这可以使用更传统的时钟 布线方法,例如,使用鱼骨结构的时钟树,这样可以减少总的延时和时钟抖动。 随着工艺尺寸的缩减,鱼骨结构的时钟树已经很难达到设计要求,因为随着工 艺尺寸的缩减,内部连线之间的电阻就会增加,因此增加了RC延迟。因此这一节的内容(和整本书的内容)主要放在了时钟树的综合方法上。在这一阶段,为了完成时钟树的插入,还有一步是必须做的。前面也提到 过,布局布线工具在完成单元布局以后把时钟树插入设计中。因此,原来由 DC(或其它用于布局布线)产生的网表文件是没有时钟树信息(本质上是整个时 钟树网络,包括缓冲和连线)的。因此,时钟树必须插入原来的网表并做形式 验证。一些布局布线工具直接为DC提供完成时钟树插入的接口。第9章对此 介绍了一些传统和非传统的方法来完成这几个步骤。为了简单起见,我们假设 原来的网表文件中都已经完成了时钟树的插入。总体而言,布局布线工具完成布线工具分成两个阶段-全局布线和局部 布线。在布局之后,对设计进行一次全局布线来判断布局的质量并提供近似于 版图(在局部

温馨提示

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

评论

0/150

提交评论