应用SiliconSmart进行AOCV特性描述
📑 目录
- 1. 
- 2. 
- 3. 
- 4. 
- 5. 
- 6. 
- 7. 
- 8. 
- 9. 
应用SiliconSmart进行AOCV特性描述
作者: 陈志强, 张婉 (中芯国际 SMIC)
会议: SNUG China 2016
源文件: SNUG_CN_Mills_How_to_build_a_million_gate_paper_3.pdf
Page 1
应用SiliconSmart进行AOCV特性描述
Advanced On-Chip Variation (AOCV) Characterization With SiliconSmart
陈志强, 张婉 中芯国际 ralph_chen@smics.com wendy_zhang@smics.com
摘要
AOCV 高级片上变异(Advanced On Chip Variation)使用智能技术进行与上下文相关的减免(derating),而不是使用称为OCV 片上变异的单一全局减免值。SiliconSmart 2015.06支持AOCV数据生成。本文探索了一些生成AOCV数据的方法学,并对它们进行了比较。
Page 2
目录
1.0 简介 2.0 使用SiliconSmart建立AOCV模型的简单介绍 3.0 使用SiliconSmart生成AOCV模型的流程 3.1 配置参数 3.2 AOCV模型提取流程 4.0 结果分析 5.0 结论 6.0 参考文献
Page 3
图表
图1 非快速模式的仿真电路 图2 快速模式的仿真电路 图3 SiliconSmart的目录结构 图4 非快速模式的参数设置范例 图5 快速模式的参数设置范例 图6 SiliconSmart的流程 图7 SiliconSmart运行脚本 图8 运行环境 图9 运行时间对比 图10 快速模式和非快速模式生成的AOCV数据差距分布图
Page 4
1.0 简介
随着晶体管尺寸的逐渐收缩,由于制造原因引起的片上偏差对静态时序分析 STA的影响越来越严峻。40nm及以下先进工艺节点中,同一芯片上和不同芯片间的偏差在增加,同时由工艺、电压和温度导致的偏差也在逐渐加大。目前,被集成电路设计者所熟悉并广泛应用的OCV 片上变异已经不能满足这些先进工艺的需求。因为OCV对整个芯片上的所有路径上的各级单元都采用一个固定的超前或滞后减免参数,势必使得设计时序更加悲观,从而降低设计性能,增加设计的周期。
为解决这些问题,PrimeTime在OCV的基础上提出了一种"高级片上偏差"(Advanced On-Chip Variation, 英文简称AOCV 高级片上变异)。AOCV中的减免参数(derate)的值是跟标准单元在逻辑路径中的深度(depth)和连线的位置(location)相关的。
AOCV将片上偏差分成两大类:随机偏差和系统偏差。 - 随机偏差主要分析与标准单元在逻辑路径中的深度相关的差异。 - 系统偏差主要分析路径上的标准单元所在的位置相关的差异。
通常情况下,随机偏差在这两种偏差中占主导地位,因此跟深度相关的片上偏差分量成为AOCV模型的典型模型。
2.0 使用SiliconSmart建立AOCV模型的简单介绍
SiliconSmart是Synopsys公司提供的,用于标准单元库、输入输出单元及存储单元库的特征参数提取,并生成各种格式时序模型的重要工具。SiliconSmart也支持产生AOCV模型。
在AOCV提取时,对于每个标准单元,SiliconSmart会选择两条arc进行仿真:一条是输出信号上升时的,另一条是输出信号下降时的。最后生成的AOCV模型中,每个标准单元都有四个一维表格:输出信号上升时的超前偏差表、输出信号上升时的滞后偏差表、输出信号下降时的超前偏差表、输出信号下降时的滞后偏差表。格式如下:
object_type: lib_cell
delay_type: cell
rf_type: rise
derate_type: early
object_spec: */cell_name
depth: 1 2 3 4 5
distance: 0
table:D1 D2 D3 D4 D5
AOCV是一种基于统计思想的模型,SiliconSmart工具提供了两种方法对标准单元进行AOCV分析: 1. 基于蒙特卡罗仿真 Monte Carlo Simulation的方法。在仿真阶段SiliconSmart会调用仿真工具进行蒙特卡罗仿真,并计算出标准差,从而得到减免参数的值。 2. 基于敏感性的方法。SiliconSmart在仿真阶段扫描各个工艺参数,寻找影响延迟的变量。通过分析这些影响延迟的变量,得到减免参数的值。
Page 5
3.0 使用SiliconSmart生成AOCV模型的流程
由于我们目前对AOCV模型还处于评估阶段,因此本文主要研究基于蒙特卡罗仿真的方法。
3.1 配置参数
我们先来了解一下SiliconSmart工具中关于AOCV模型提取的一些重要参数:
- aocv_num_stages —— 逻辑电路的最大深度。
- aocv_fanout_load —— 扇出负载。
- aocv_sample_size —— 采样数目,即蒙特卡罗仿真的迭代次数。考虑到偏差数据的精确性,建议将该参数设置为500-1000。
在基于蒙特卡罗仿真的方法中,SiliconSmart提供了两种不同的仿真模式:非快速模式和快速模式,可以通过设置参数aocv_fast_char来选择。当aocv_fast_char=0时,采用非快速模式,而当aocv_fast_char=1时,采用快速模式。
图1是非快速模式的仿真电路,整个路径的深度就是参数aocv_num_stages的设置值,AOCV表格中的偏差值就是通过仿真数据计算得到的。
而图2是快速模式的仿真电路,引入一个等效负载将整个电路进行了简化,仿真电路的深度只有一级。AOCV偏差值是通过仿真加分析得到的。显而易见的,由于采用全电路进行蒙特卡罗仿真,尤其当参数逻辑电路的最大深度和AOCV采样数目的值增加时,非快速模式要花费更多的仿真时间。
3.2 AOCV模型提取流程
Page 6
图3是SiliconSmart的工作目录结构,可以利用它的内部命令create生成该目录结构。文件Configure.tcl中可以对一些重要的全局参数进行设置,并保存于文件夹Config中。以下跟AOCV相关的参数也要在Configure.tcl中定义。
图4和图5分别是非快速模式和快速模式的参数设置范例,也是本文中用于测试评估的参数设置。
Page 7
图6描述了如何使用SiliconSmart进行AOCV特性描述的流程:
Configure.tcl文件 → 后仿网表 → 单元库的时序模型 → 导入时序模型,生成instance → 配置标准单元,生成仿真任务 → 调用仿真工具进行仿真 → 生成AOCV表格
图7是与之相对应的命令。
Page 8
4.0 结果分析
用于评估测试的是一套28nm工艺的标准单元库,包含700多个标准单元,其中约有60个时序单元。我们分别进行了快速模式和非快速模式的两种AOCV模型抽取方法。
运行环境如图8所示。
图9是两种模式下的整套单元库AOCV模型提取的平均运行时间,非快速模式下的运行时间是快速模式下运行时间的110多倍。
我们又分析了两种模式下生成的AOCV表格数据,以非快速模式下生成的偏差值作为参考值,做了比较。
Page 9
图10中显示了两种模式下生成的AOCV表格数据的差距比分布图。针对我们的测试单元库,SiliconSmart一共生成了65200个偏差数据。其中差距比小于0.1%的占了13%,差距比小于1%的占了94%。
5.0 结论
SiliconSmart基于蒙特卡罗仿真的AOCV模型提取方法中,采用快速模式生成的偏差值与非快速模式生成的值的差距很小,大多分布在1%以内,最大差距也只有3.15%,而用快速模式却为我们节省了很多的运行时间。
6.0 参考文献
1. SiliconSmart ACE User Guide, Version K-2015.06-SP2, December 2015 2. Advanced Node Random Device Variability Modeling and Margining in Characterization and STA, Tamer Ragheb, Ning Jin, Steven Chan, and Richard Trihy
图片索引
本文共 8 张图片,存放于 SNUG_CN_Mills_How_to_build_a_million_gate_paper_3_images/ 目录。