您好,欢迎访问三七文档
芯片前端设计1芯片后端设计2芯片设计流程半导体芯片行业三种运作模式:IDMFoundryFabless芯片设计流程概念和市场调查结构级说明、RTL编码转换时钟树到DC形式验证(扫描插入的网表与CT插入的网表)RTL仿真逻辑综合、优化和扫描插入全局布线后STA形式验证(RTL与门级)时序正确?否是布图前STA详细布线否时序正确?布图后STA是时序正确?布图规划、布局、CT插入和全局布线否是定案下单前端后端芯片设计流程-前端芯片设计流程-后端芯片前端设计1芯片后端设计2前端设计流程前端的基本设计流程,从输入需求到输出网表的过程。主要步骤为:1.RTL设计2.验证3.静态时序分析4.覆盖率5.FPGA测试6.ASIC综合时序分析和验证时出现的错误可能需要反复重做前面几步才能解决是一个迭代优化的过程。前端设计流程—工艺选择芯片工艺选择成本工艺特点工艺成熟度技术需求IP成熟度包括该工艺下的芯片制造成本和设计成本Foundry可提供的第三方IP,IP的功能、性能和使用情况性能、功耗、面积、温度、寿命、可实现的频率、可支持的金属层数等基于该工艺下的FoundryIP、单元库的集成、后端设计等芯片工艺的选择就是对这些因素的权衡前端设计流程--IPIP模拟IP:数字IP包括如AD、DA、PLL、PAD、flash等IP,这些都和芯片工艺相关,选定工艺后向相应的工艺厂商进行购买购买业界已经较成熟的IP的使用权,如EthernetMAC、AMBA、DMAC等开源IP核:自主设计IP:通过硬件描述语言(VHDL\Verilog)实现模块功能,形成RTL(寄存器传输级)代码。在设计中,带有MEM的模块需要内建自测试设计BIST前端设计流程--RTL设计文档Verilog编码芯片可测性设计DFT(DesignforTest)MEMregBISTMODULEbist_ensuccessfailBIST模式正常工作模式regregregregScan_outScan_inscanmodeBISTDFT前端设计流程--DFTRTL代码设计规则检查采用nLint工具,针对电路进行设计规则检查,包括代码编写风格、DFT、命名规则和电路综合相关规则等。前端设计流程—代码规则检查前端设计流程前端的基本设计流程,从输入需求到输出网表的过程。主要步骤为:1.RTL设计2.验证3.静态时序分析4.覆盖率5.FPGA测试6.ASIC综合时序分析和验证时出现的错误可能需要反复重做前面几步才能解决是一个迭代优化的过程。验证工作量占整个芯片开发周期的50%到70%验证工程师的数量应该超过设计工程师验证的重要性前端设计流程--验证模块级验证(blocklevel)子系统级验证(subsystemlevel)系统级验证(systemlevel)验证的层次前端设计流程--验证模拟(simulation)仿真(emulation)形式验证(formalverification)前端设计流程--验证验证的途径前端设计流程--验证形式验证前端设计流程--验证前端设计流程--验证白盒法黑盒法灰盒法功能验证的方法:前端设计流程--验证芯片验证流程(以LINUX-VCS环境下为例):建立工程、设置验证环境用汇编或C编写测试case编译测试case编译RTL和TB跑仿真观察结果和并给出测试报告通过gcc等工具,将.s或.rs文件编译成.pat文件(存储二进制文件)生成RTL可执行文件,用于仿真VCS工具撰写仿真脚本、配置工具路径、设置快捷命令等生成波形文件利用Debussy工具观察波形、日志文件比较等方法验证完整性测试代码覆盖率功能覆盖率cmView工具前端设计流程--验证LINUX环境:VCS+debussy、WINDOWS环境:modelsim启动VCS验证仿真报告debussy波形界面Modelsim前端设计流程--验证平台前端设计流程前端的基本设计流程,从输入需求到输出网表的过程。主要步骤为:1.RTL设计2.验证3.静态时序分析4.覆盖率5.FPGA测试6.ASIC综合时序分析和验证时出现的错误可能需要反复重做前面几步才能解决是一个迭代优化的过程。结构说明和RTL编码RTL仿真逻辑综合、优化、扫描插入形式验证(RTL和门级)布局前STA时序正确布局、CT插入和全局布线转换时钟树到DC形式验证(扫描插入的网表与CT插入的网表)布局后STA详细布线时序正确布线后STA时序正确结束是是是否否否前端设计流程—时序分析静态时序分析什么是静态时序分析?套用特定的时序模型(TimingModel),针对特定电路分析其是否违反设计者给定的时序限制(TimingConstraint)。“静态”:分析流程不需要通过输入激励的方式进行仿真。特点:速度快,覆盖率100%确定芯片最高工作频率通过时序分析可以控制工程的综合、映射、布局布线等环节,减少延迟,从而尽可能提高工作频率检查时序约束是否满足可以通过时序分析来查看目标模块是否满足约束,如不满足,可以定位到不满足约束的部分,并给出具体原因,进一步修改程序直至满足时序要求分析时钟质量时钟存在抖动、偏移、占空比失真等不可避免的缺陷。通过时序分析可以验证其对目标模块的影响前端设计流程—时序分析前端设计流程—时序分析我们选用的静态时序分析工具同样是目前使用最广泛的,来自Synopsys公司的PrimeTime。时序分析综合后STA建立时间不符合--重新设计保持时间不符合-此处修改或布局后修改(根据大小)采用的统计线载模型前端设计流程—时序分析三阶段时序分析的区别布局后STA:布局工具将关键单元彼此靠近放置用以最小化路径延迟修改保持时间违例(或根据违例程度选择布线后修改)三阶段时序分析的区别前端设计流程—时序分析布线后STA:加入寄生电容和RC连线延迟修正保持时间(插入缓冲器)最接近实际情况三阶段时序分析的区别前端设计流程—时序分析前端设计流程前端的基本设计流程,从输入需求到输出网表的过程。主要步骤为:1.RTL设计2.验证3.静态时序分析4.覆盖率5.FPGA测试6.ASIC综合时序分析和验证时出现的错误可能需要反复重做前面几步才能解决是一个迭代优化的过程。覆盖率作为一种判断验证充分性的手段已成为验证工作的主导。前端设计流程--覆盖率覆盖率的分类从目标上分,可将覆盖率大体分为两类:代码覆盖率:作用:检查代码是否冗余,设计要点是否遍历。被检测对象:RTL代码检测方法:工具自动生成功能覆盖率:作用:检查功能是否遍历。被检测对象:自定义容器检测方法:自定义收集条件前端设计流程--覆盖率代码覆盖率可分为:行覆盖率分支覆盖率路径覆盖率条件覆盖率翻转覆盖率状态机覆盖率功能覆盖率可分为:基于控制的功能覆盖率基于数据的功能覆盖率前端设计流程--覆盖率覆盖率的分类验证阶段可以分为单元验证(UT)阶段、集成验证(IT)阶段和系统验证(ST)阶段。单元验证阶段,关心的是模块功能和模块质量,此时出口条件为代码覆盖率。一般业内常用的出口条件是:行覆盖率达到100%,分支覆盖率达到100%,条件覆盖率达到95%,状态机覆盖率达到90%,对没有覆盖的需给出合理的说明。集成验证阶段,关心的系统的功能,以及模块与模块之间的接口,此时出口条件为功能覆盖率。一般业内常用的出口条件是:功能覆盖率达到90%,对没有覆盖率的需给出合理的说明。前端设计流程--覆盖率覆盖率与验证阶段功能覆盖率高、代码覆盖率低:验证计划不充分,需要增加功能覆盖点。代码覆盖率高、功能覆盖率低:设计没有实现指定的功能。NeedmoreFCPoints,includingCornercasesGoodcoverage:checkbugrateStartofprojectIsdesigncomplete?PerhapstryformaltoolsLowLowHighHighCodeCoverageFunctionalCoverage前端设计流程--覆盖率验证充分性探讨前端设计流程--覆盖率前端设计流程前端的基本设计流程,从输入需求到输出网表的过程。主要步骤为:1.RTL设计2.验证3.静态时序分析4.覆盖率5.FPGA验证6.ASIC综合时序分析和验证时出现的错误可能需要反复重做前面几步才能解决是一个迭代优化的过程。工具:synplify、xilinx的ISE/Vivado、altera的quartusISESynplifysynplify的综合效果(体现在时序、面积上)要比ISE和quartus好推荐采用synplify进行综合生成一个edf网表文件,然后在ISE或quartus中建立一个工程,将该edf文件作为一个底层文件添加到这个工程中,由ISE或quartus进行下一步的布局布线工作。前端设计流程—FPGA验证验证主要针对了模块、系统的功能测试,而FPGA下载测试则更接近芯片的实际应用环境进行功能和性能上的测试。测试平台:FPGA开发板、外围电路前端设计流程—FPGA验证前端设计流程前端的基本设计流程,从输入需求到输出网表的过程。主要步骤为:1.RTL设计2.验证3.静态时序分析4.覆盖率5.FPGA测试6.ASIC逻辑综合时序分析和验证时出现的错误可能需要反复重做前面几步才能解决是一个迭代优化的过程。逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表(netlist)。设定约束条件:如电路面积、时序要求等目标参数。逻辑综合是基于特定的综合库的,而不同的库中,门电路基本标准单元的在面积、时序参数上是不同的。所以,选用标准单元库不同,综合出来的电路在时序,面积上是有差异的。工具:Synopsys的DesignCompiler,综合产生ASIC版本,提交给后端。前端设计流程—ASIC逻辑综合FPGA综合与ASIC综合区别:标准单元库(standardcell)不同SRAM不同FPGA和ASIC时序逻辑和组合逻辑资源不同,综合后的资源占用、时序和面积会有差异芯片前端设计1芯片后端设计2后端设计流程后端的基本设计流程,从输入RTL代码到输出GDS文件的过程。主要步骤为:1.逻辑综合(可加入DFT设计)2.形式验证3.物理实现4.形式验证5.时序分析6.LVS&DRC验证时序分析和验证时出现的错误可能需要反复重做前面几步才能解决是一个迭代优化的过程。后端设计流程后端的基本设计流程,从输入RTL代码到输出GDS文件的过程。主要步骤为:1.逻辑综合(可加入DFT设计)2.形式验证3.物理实现4.形式验证5.时序分析6.LVS&DRC验证时序分析和验证时出现的错误可能需要反复重做前面几步才能解决是一个迭代优化的过程。什么是逻辑综合?将前端设计生成的RTL代码转换为门级网表(Gatelevelnetlist)文件。将代码的功能通过芯片工厂提供的标准单元库中的“标准单元”实现。标准单元库:针对特定工艺功能完整:基本门电路(与或非)、三态缓冲器、缓存器、触发器等灵活性:有多种驱动能力模块化:宏单元、IP硬核完整性:包含逻辑属性、时序属性、物理属性、功耗属性、电气属性后端设计流程—逻辑综合后端设计流程—逻辑综合综合集成所用的工具是Synopsys公司的DesignCompiler目前业界被最广泛使用的工具。全球60多个半导体厂商、380多个工艺库的支持。(不断增加中)占据91%的市场份额。(Dataquest统计数据)可通过加入DFTCompiler进行DFT设计。综合工具可测试性(testability)定义为:产品能及时准确地确定其状态(可工作、不可工作、性能下降),隔离其内部故障的设计特性。以提高可测试性为目的进行的设计被称为可测试性设计:后端设计流程--DFT“DesignforTest=DFT”-筛选不良品&评估流片、封装良率DFT设计主要有两种:SCAN测试全称SCANbasedTest,即基于扫描的测试方式。原理为将原有存储单元(寄存器),替换成加上测试功能的存储单元,并连接为扫描链。BIST测试BIST(Build-inSelfTest)内建自测试。在前端加入测试电路,生成测
本文标题:芯片设计技术-
链接地址:https://www.777doc.com/doc-5172926 .html