NanoTime在定制设计模块中的应用


周云明 林 崴 季秉武 赵坦夫 李家荣 zhouyunming@hisilicon.com

海思半导体有限公司

摘要

当要求设计工作在高速,低功耗,面积最小时,往往会采用定制设计来实现。通过fast-spice动态仿真来对保证定制电路的时序和信号完整性的全覆盖在现实中无法实现。NanoTime提供了一整套的解决方案,包括晶体管级的静态时序分析(TX-STA),信号完整性分析SI,时序模型的提取(ETM),确保了定制设计模块的质量和并与已有的设计流程做到无缝连接。基于一个采用大规模定制设计的40nm工艺的项目为实例,本文论述采用NanoTime进行带OCV的晶体管级的时序分析(TX-STA),信号完整性分析SI,Noise分析,保证定制设计模块的设计质量,降低项目开发的风险;提取带余量的时序模型(ETM),给顶层工具PrimeTime和ICC使用,做到设计的时序保证和流程的无缝连接。

ABSTRACT

When high-speed, low-power, minimum size design is required, the custom design methodology will be adapted. The dynamic fast-spice simulation is hard to full-cover the timing check and signal integration of full-custom design. NanoTime provides a complete solution for custom design: transistor-level static timing analysis (TX-STA), signal integration (SI) analysis, extract timing model (ETM), which guarantees the quality of the full-custom design and provides seamless design flow integration. Based an innovative 40nm project with a lot of full-custom design, this paper presents the NanoTime’s application of TX-STA with OCV, signal integration analysis of full-custom design block, timing model extraction with margin for the usage of high-level tools (PrimeTime, ICC), which reaches a seamless flow integration.

1. 对定制电路设计静态时序分析的必要性

当要求设计工作在高速,低功耗,面积小时,往往会采用定制来实现。我们可以采用大量的电路前仿真来保证设计的质量,不过用fast-spice动态仿真来对保证定制电路的功能、时序和信号完整性的全覆盖是无法实现的。静态时序分析技术的许多基本概念与动态仿真不同。首先,静态工具没有仿真周期之说,因此不存在按时间表发生的事件,静态工具通过路径计算延迟的总和,并比较相对于预定义时钟的延迟,它仅关注时序间的相对关系而不是评估逻辑功能。逻辑功能我们可以通过抽象级的verilog model和晶体管级的形式验证(通过工具Formality ESP、ESP-CV)等多种方式来保证。其次,静态时序工具可识别的时序故障数要比动态仿真多得多,包括:建立/保持和恢复/移除检查(包括反向建立/保持);最小和最大跳变;时钟脉冲宽度和时钟畸变;门级时钟的瞬时脉冲检测;总线竞争与总线悬浮错误;不受约束的逻辑通道。第三,静态时序工具还能计算经过导通晶体管、传输门和双向锁存的延迟,并能自动对关键路径、约束性冲突、异步时钟域和某些瓶颈逻辑进行识别与分类。第四,静态时序工具能自动识别出用户需要解决的最关键的问题。
随着设计的复杂度的增加,对于保证芯片的设计质量,往往采用工艺角 (Process Corner) ,PVT (process, voltage, temperature),信号完整性SI和On-Chip-Variation (OCV)来保证。综合考虑之后,能够保证在90nm,65nm,40nm的工艺下设计的准确性及效能。由于各种偏差的存在,不同晶圆之间,同一晶圆不同芯片之间,同一芯片不同区域之间情况都是不相同的。造成不同的因素有很多种,这些因素造成的不同主要体现在:①IR Drop造成局部不同的供电的差异;②晶体管阈值电压的差异;③晶体管沟道长度的差异;④局部热点形成的温度系数的差异;⑤互连线不同引起的电阻电容的差异。OCV可以描述PVT在单个芯片所造成的影响。更多的时候, 用来考虑长距离走线对时钟路径的影响。在时序分析时引入de-rate参数模拟OCV效应,其通过改变时延迟的早晚来影响设计,进一步识别设计者需要解决的最关键的问题。

2. NanoTime的介绍

NanoTime是半导体设计软件的全球领导厂商Synopsys, Inc.推出的新一代晶体管级静态时序分析解决方案。该解决方案可进行并发时序和信号完整(SI) 分析,从而解决新出现的定制电路设计挑战。此外,NanoTime 的性能和能力也得到显著的提高,以 HSPICE精确度对晶体管电路进行快速地分析。该解决方案与 PrimeTime 静态时序分析解决方案的无缝整合,使对芯片级设计(含门级和晶体管级的组块)的分析成为可能。NanoTime 是 Synopsys 全面的电路仿真和分析产品组合中的最新产品,该产品组合包括针对电路仿真的 NanoSim、HSIM和XA ,HSPICE等工具,以及针对符号仿真 (symbolic simulation) 的 ESP-CV。NanoTime提供了一整套的解决方案,为晶体管级的静态时序分析(TX-STA),信号完整性分析SI,采用PBSA来实现OCV的实现,时序模型的提取(ETM),确保了定制设计模块的质量和与已有的设计流程做无缝连接。
NanoTime 不仅识别我们的定制设计结构,还提供 HSPICE 相关性。与现有的解决方案相比,NanoTime 为定制用户提供更高的预测性和生产力。该解决方案的并发时序和 SI 功能使用户能精确、快速且及早地确定定时问题,并避免昂贵的芯片重设计和制造。凭借识别复杂的定制设计结构的高级能力以及内置的针对动态电路评估的 NanoSim 技术,它帮助确保硅精确分析。NanoTime 的性能和能力可满足对具有100多万个晶体管的复杂电路进行快速分析的要求。交互式静态时序分析、创建 ETM (extracted timing model)、与 PrimeTime 芯片级分析工具的无缝整合等简单易用的功能进一步提高了用户的生产力。Synopsys 全面的电路仿真和分析产品系列曾应用于要求最苛刻的微处理器、数字信号处理器 (DSP) 和记忆体设计。设计用户正寻求能在他们定制设计流程中提高生产力和预测性的解决方案,随着 NanoTime 的推出,提供全面的晶体管级分析解决方案,满足了设计用户的需求。

2.1 NanoTime 应用场景介绍

anoTime 是Synopsys公司新一代的晶体管级静态时序分析工具。它集对晶体管级全定制模块电路完整的静态时序验证(包括SI分析)和产生该模块电路.lib文件等强大功能于一身。通过自动生成合乎Liberty语法规范格式的timing library文件, IP设计用户可以根据应用实际情况自由的设置输入端口信号transition和输出端口负载。根据设置值在lib文件中查表即可获取该模块内部准确的时序信息以完成IP集成后的时序检查。
NanoTime定位于全定制数字逻辑电路的静态时序分析和timing library生成,因此其拥有强大的逻辑电路拓扑识别能力,可自动识别诸如:inverter、mux、xor、nand、nor、clockgate、turnoff、cross_coupled、latch、precharge、feedback、weak_pullup等大多数常见的电路结构,对于部分复杂的电路如latch、ram、flip-flop,可以借助某些命令加以识别,例如 mark_latch、mark_flip_flop、mark_register_file 等。在识别这些逻辑电路并设置了时序约束和工作条件后,NanoTime会提取所有的数据和时钟路径的延迟信息(trace path)并会根据客户设置的时序约束(constrain)对内部的时序电路如,latch、DFF等进行setup/hold,recovery/remove等检查。

图1 NanoTime的基本功能

复杂模拟电路拓扑结构的工具自动识别和静态时序分析仍是业界难题。纯粹的复杂模拟电路内部的时序信息暂时还无法通过NanoTime的提取出现在生成的*.lib/*.db文件中,但是对于一个mixed-signal SOC项目中模拟和混合信号IP集成流程所必须的*.lib文件需求来说,这种限制并非一个不能解决的问题。在本文下面的章节中将结合我们的项目实例介绍如果通过合理划分模拟和混合信号IP中的数模接口电路、选择合理的时钟参考点等方式来进行整个IP的晶体管级STA分析(Timing Validation)以及产生对应的timing library(ETM)。

2.2 NanoTime 的基本流程

一个完整的电路模块时序分析和模型提取流程如图2所示,它包含一系列的阶段:模块电路网表生成和读取阶段,电路时钟传播和拓扑识别阶段,时序约束阶段,时序路径提取和仿真阶段,时序报告分析阶段和.lib文件生成阶段。NanoTime提供一个基于Tcl的操作界面进行命令输入、脚本编写和结果查看。其命令和操作方式与PrimeTime一致。

图2 NanoTime 时序分析和Timing model提取流程

需要说明的是以上的各个阶段必须以一定的顺序进行,只有前一阶段成功的完成(在NanoTime中通常以命令执行后返回值为1表示),下一阶段才能够开始,但在一个特定的阶段内部,tcl 语句的前后顺序并无特殊要求。在图2中以椭圆形框图表示NanoTime分析流程中的各个阶段,以菱形框图表示一个完整分析流程中必须要通过的关键命令,而矩形框中则提供了一些当上述关键命令不能通过时的debug思路。
NanoTime 支持两种分析流程,Flatten Analysis flow 和 Hierarchical Analysis flow,前者会将输入的网表是一个整体,会对网表中所有时序路径上的器件进行仿真,因而相对耗时较多,比较适合用于较小的底层模块的时序分析和lib生成。当采用Hierarchical Analysis flow,这样能带来以下好处:
1. 可以大大减少整个流程中debug工作量:底层电路由于规模较小,其时序收敛和lib文件生成流程中错误相对容易找到根因并解决,在NanoTime中调用底层电路模块的.lib/.db进行顶层电路的时序分析和顶层电路.lib文件生成的整个流程会通畅很多。
2. 可以大大减少拓扑分析、寄生参数反标、时序仿真等步骤所耗费的时间:例如,在我们的时间中有一个模块用了4次,如果采用Flatten分析流程会对这个模块都做分析,4个模块之间还要进行分析。同时进行寄生参数反标的寄生参数网表(spf/dspf/spef)也会很大,导致寄生参数的提取和反标时间非常长。选择Hierarchical Analysis flow来加快时序收敛,减少项目开发周期。底层模块生成.lib后,给顶层的模块使用。这样会节约很多的时间。
3. NanoTime的Hierarchical Analysis flow 可以跟PrimeTime无缝链接,如图3所示。Top-down(PrimeTime SDC Constraints to NanoTime)和Bottom-up (NanoTime Export Model to PrimeTime) 相结合的流程实现了定制IP在SOC芯片中的精确集成。

图3 NanoTime与PrimeTime的无缝链接流程

3. NanoTime在定制设计中的使用

本文下面的章节结合一个采用大规模定制设计的40nm工艺的项目为实例,论述采用NanoTime进行带OCV的晶体管级的时序分析(TX-STA),信号完整性分析SI,Noise分析,可以保证模块的设计质量,大大降低项目开发的风险;提取精确时序模型(ETM),给顶层工具使用,做到流程的无缝连接。

3.1 项目数据的准备

通过定制电路前端和后端的设计,我们得到了定制设计模块的spice netlist和gds文件,通过Hercules LVS产生Milkway database,再用StarRC,我们可以提取各个工艺条件下的寄生参数 SPF netlist 。有了工艺文件的spice model, 定制设计的spice网表和定制设计的寄生参数 SPF网表,我们就可以用NanoTime分析我们的设计,发现设计的缺陷,做保证设计质量的迭代工作。

3.2 部分功能的使用介绍

3.2.1 时序的signoff标准

基于40nm工艺的项目,定制模块大小约为1mm*1mm,模块应用的芯片面积大约为10mm*10mm。我们对我们模块的时序收敛的约束定为如下的标准:
● OCV
■ Segment A: no OCV
■ Segment B: +/- 5%
■ Segment C: +/- 5%
■ Segment D: +/- 3%
● Clock uncertainty
■ Setup:100ps
■ Hold: 50ps
● With crosstalk
● 3 parasitic corner: cworst, cbest, typical
● 4 corners: LT,TT,WC,WCL
相关于OCV的设置,是采用NanoTime中的pbsa来时实现的。

图4 Path based slack adjustment

在NanoTime tcl脚本中的设置如下:

如下是一条典型需要优化和重设计的关键路径结果:


在优化时,我们采用layout和电路综合考虑的优化方式。

3.2.2 noise的分析

在NanoTime中可以对每个管子输入做noise分析,分析采用 all neighbor signals attack比较悲观,当可以看出noise比较大的地方,做出设计和layout上的优化,避免设计的noise问题。
下面是我们在使用中的一些脚本设置:

下面是一个corner下的noise的报告的一部分:

3.2.3 带margin的ETM模型提取

为了设计的健壮性,我们在提取定制电路模型的时候,采用带余量(margin)的ETM方式。对于我们的设计,我们采用时钟uncertainty带到lib中去以留足一定余量。基于另外的考虑,用户也可将uncertainty和OCV综合考虑加入模型中,这样会给顶层的时序收敛有所帮助。40nm及以下的项目,为了更加精准地分析timing,用户也可以采用NanoTime提取CCS noise model 给其他的工具使用。基于以下条件,我们产生了模块的.lib,和我们使用的PrimeTime和ICC到达了无缝集成,确保了设计的质量。

4. 结论与建议

在我们使用NanoTime进行时序分析两三年以来,我们越来越认识到NanoTime是一款优秀的晶体管级静态时序分析工具。NanoTime提供了强大的信号完整性(SI)的分析能力,使得90nm及以下工艺的用户可以比较容易的评估耦合噪声对时序带来的影响,而且,NanoSim具有良好的OCV处理能力,能够让我们在投入最少的人力来解决电路存在的实际问题。对与采用定制流程的用户来说,NanoTime可以提供比较接近HSPICE的分析精度,同时具备高度智能的拓扑结构识别能力、并提供灵活的配置以及强大的动态电路分析能力,同时也能保证对最差时序路径全覆盖分析。最后,从分析的精度来说,无论在前期的实验中,还是从我们的流片结果来看,NanoTime的时序分析结果无疑都是值得信赖的。
NanoTime 提供的晶体管级STA分析与Timing Model提取流程,帮助我们在项目中顺利高效的完成了复杂定制电路的时序分析和整个定制电路的Timing Model的提取工作,找到了一条定制电路和APR流程的良好结合的开发流程,节约了开发周期。NanoTime结合Primetime更是可以实现我们整个SOC芯片精确的时序分析工作,极大的提升了我们的开发效率。

5. 致谢

定制电路的时序验证和模型提取对于我们是个全新的流程,能够在项目交付中成功应用离不开海思各部门领导和同事的辛勤汗水,要特别感谢雷霆、刘杰、武潇等在资源和技术上的支持。另外,更要感谢Synopsys孟凡生和王谦的宝贵建议,以及多次的现场支持,给予了我们极大的帮助。同时也感谢王谦对于本篇文章的指导。

6. 参考文献

【1】Lin Wei, Yao Gang, Ji Bingwu, Zhao Tanfu, Transistor Level STA and SI Analysis with NanoTime on Custom Digital Blocks, SNUG 2009.
【2】刘杰, 王国玺,夏君,孙永升,刘泰源,基于NanoTime的模拟IP时序验证和模型提取, SNUG 2010.
【3】NanoTime User Guide,Version D-2010.06, June 2010.
【4】PrimeTime User Guide,Version B-2008.06, June 2008