Presentation is loading. Please wait.

Presentation is loading. Please wait.

IC典型流程 数字VLSI 流程 模拟IC 流程 Matlab Matlab 半定制?全定制 Modelsim Questasim

Similar presentations


Presentation on theme: "IC典型流程 数字VLSI 流程 模拟IC 流程 Matlab Matlab 半定制?全定制 Modelsim Questasim"— Presentation transcript:

0 自动布局布线软件 2016年 6月8日

1 IC典型流程 数字VLSI 流程 模拟IC 流程 Matlab Matlab 半定制?全定制 Modelsim Questasim
功能要求 系统建模 电路仿真 手工设计 版图 后仿真 满足 不满足 行为设计 Verilog / VHDL 行为仿真 时序仿真 版图自动 布局 布线 流片 封装 测试 综合 优化 网表 Matlab Matlab 半定制?全定制 Modelsim Questasim Maxplus II Spectre Virtuoso, Laker Design Compiler Astro (IC Compiler IC Compiler II) (Encounter Innovus) Calibre 参数提取

2 主要内容 自动布局布线基本概念 自动布局布线工具介绍 Astro工具使用 后仿真

3 自动布局布线基本概念 版图,GDS,(Graphic Data System),用来控制集成电路光掩膜绘制 。 自动布局+自动布线=画完版图

4

5 自动布局布线工具介绍 1.Synopsys的Astro 2002年以前叫Apollo(Avanti公司,后被Synopsys收购)
2007年以后软件升级为IC Compiler(ICC) 。 2014年左右新思科技(Synopsys)推出 IC Compiler II 新一代布局与绕线(place-and-route)解决方案, IC Compiler II是一种全功能的布局布线系统,其核心是一种全新的多线程基础架构,能够处理例化单元数量大于5亿的设计,并具备超高容量设计规划、独特的时脉建造技术和先进的整体分析收敛技术,可协助客户在进行晶片实体设计时,提升达10倍整体设计效能的生产力。同时,IC Compiler II也已成功协助多家晶片领导大厂完成投片(tapeout)。

6 自动布局布线工具介绍续 2. Cadence的SOC Encounter
SOC Encounter (Encounter Digital Implementation, EDI) 2015年Cadence发布Cadence Innovus设计实现系统,这是新一代的物理设计实现解决方案,使系统芯片(system-on-chip,SoC)开发人员能够在加速上市时间的同时交付最佳功耗、性能和面积(PPA)指标的的设计。Innovus设计实现系统由具备突破性优化技术所构成的大规模的并行架构所驱动,在先进的16/14/10纳米FinFET工艺制程和其他成熟的制程节点上通常能提升10%到20%的功耗、性能和面积指标,并实现最高达10倍的全流程提速和容量增益。

7 Astro基本介绍 Astro是由门级网表生成布局布线后版图的软件。使用标准单元库、IO库及宏单元库。最终的版图需要满足时序、面积等设计指标。

8 标准单元库 A Standard Cell is a predesigned layout of one specific basic logic gate Each cell usually has the same standard height A Standard Cell Library contains a varied collection of standard cells Libraries are usually supplied by an ASIC vendor or library group Layout View 2-Input NAND Gate

9 Astro自动布局布线流程 参考库 时序约束文件 门级网表 工艺文件 数据输入 布局规划 布线 布局 时钟树综合 流片 IO管脚排列文件
静态时序分析,后仿真 DRC、LVS 流片

10 数据输入 工艺库文件--是Foundry或IP提供商提供的各种库(标准单元库、IO库、SRAM库和IP库)和工艺文件 --网站下载
设计文件—网表文件(.sv文件)和时序约束文件(.sdc文件)--均由DC综合得到,时序约束文件一般还要进行根据具体要求手动修改 管脚排列文件(.tdf文件)--手动编写,保存成XXX.tdf到任意你能找到目录里。

11 IO管脚排列文件 IO顺序 插入一些特殊的IO单元: 电源IO 地IO Corner

12 芯片整体布局 通常情况下,一个芯片由Core Area和Pad Area组成

13 PAD Area的组成 1、Input/Output/InOut pads 如右图中Reset
2、Power pads and conner pads VDD VSS为Power pads ,对外连接供电的封装引脚,对芯片则起到供电的作用,Power pads 可以分为对core 供电的pads 和对IO pads 供电的pads 右图上右上角那个CornerUR为一个corner pads Conner pads 的作用是连接其两边的Pads(连接衬底以及衬底以上的各个层) 3、Pads fillers 连接两个两邻的pads(从衬底到各层金属的相连) 4、P/G rings 所有信号pads、电源/地pads、fillers、corners都是有电源地的引脚的,用金属线把这些引脚相连,形成pad area上的一个环,称为P/G rings,如果所有的pads都是无缝排列的,那么pads上的自身的金属已经相互连接成了P/G ring。

14 IO管脚排列文件--tdf 注意空格 insertPad 使用方法:
;1.1V digital core power/ground insertPad "VDD" "PVDD1RN" "VDD" "VDD" insertPad "VSS" "PVSS1RN" "VSS" "VSS" ;3.3V digital IO power/ground dbCreateCellInst (geGetEditCell) "" "PVDD2RN" "VDD_IO" "0" "No" '(0 0) "fsk_0323" dbCreateCellInst (geGetEditCell) "" "PVSS2RN" "VSS_IO" "0" "No" '(0 0) "fsk_0323" ;Corner cell dbCreateCellInst (geGetEditCell) "" "PCORNERRN" "CORNER1" "0" "No" '(0 0) "fsk_0323" dbCreateCellInst (geGetEditCell) "" "PCORNERRN" "CORNER2" "0" "No" '(0 0) "fsk_0323" dbCreateCellInst (geGetEditCell) "" "PCORNERRN" "CORNER3" "0" "No" '(0 0) "fsk_0323" dbCreateCellInst (geGetEditCell) "" "PCORNERRN" "CORNER4" "0" "No" '(0 0) "fsk_0323" tdfPurgePadConstr pad "CORNER1" "Bottom" pad "CORNER2" "Right" pad "CORNER3" "Top" pad "CORNER4" "Left" pad "VDD_IO" "left" 1 pad "VSS_IO" "left" 2 pad "data_in_block" "top" 1 pad "fsk_out_block" "top" 2 pad "VDD" "right" 1 pad "VSS" "right" 2 pad "clk_block" "bottom" 2 pad "en_block" "bottom" 1 注意空格 insertPad 使用方法: insertPad netName padCellName padName connectPin dbCreateCellInst 使用方法: dbCreateCellInst cellId childLibName chlidCellName chilidInstName rotationStr mirrorStr Points topCellName

15 IO管脚排列 四个conner位于芯片的四个角,起到连接四边IO pad 的作用。 Left Top Bottom Right bottom

16 工具启动 创建软件启动目录 mkdir astro 进入软件启动目录 cd astro
创建保存tdf文件的目录 mkdir data(并将tdf文件保存到该目录) source /opt/demo/synopsys.env astro_shell &

17 工具界面 命令输入 例如:help “insertPad” 查看insertPad 命令使用方法

18 创建设计库 Technology File: /home/smic/smic_40/SCC40NLL_HS_RVT_V0p1a/astro/tf/scc40nll_hs_7lm_1tm.tf

19 打开设计库

20 设计文件导入1/3 首先在设计窗口中选择Tools->Data Prep,切换至进行数据输入输出的一个窗口(称之为输入输出窗口)
任意名 逻辑综合后得到的网表的顶层模块名 首先在设计窗口中选择Tools->Data Prep,切换至进行数据输入输出的一个窗口(称之为输入输出窗口)

21 设计文件导入2/3 设置 电源线VDD 地线VSS

22 设计文件导入3/3 添加两个参考库 一个是标准单元 一个是IO
/home/smic/smic_40/SCC40NLL_HS_RVT_V0p1a/astro/SCC40NLL_HS_RVT_V0p1 /home/smic/smic_40/SP40NLLD2RN_3P3V_V0p2/apollo/SP40NLLD2RN_3P3V_V0p1_7MT_1TM/ 添加两个参考库 一个是标准单元 一个是IO

23 打开设计单元(Cell)

24 布局规划 确定芯片的尺寸 模块的位置 标准单元的排列形式 IO单元及宏单元的位置放置 电源和地线的分布

25 布局规划--流程 整体规划 电源/地线规划 加Pad Filler 加布局障碍 1.装载IO管脚排列文件
2.芯片面积、标准单元布局方式的选择 3.宏单元放置 1.将标准单元、IO单元和宏单元的电源、地端口与电源线、地线相连。 电源/地线规划 2.在核(Core)和IO单元之间加入电源/地环(ring)。 3.加Strap。 4.将芯片的Ring连接到电源/地IO的电源、地端口。 加Pad Filler 加布局障碍

26 整体规划—装载IO管脚排列文件

27 整体规划—标准单元布局 芯片面积受两方面因素决定: pad限制的设计 (Pad Limited Design), IO数量较多。
core限制的设计(Core Limited Design),标准单元和宏单元(SRAM和IP)的数量较多。 stagger

28 整体规划—标准单元布局 在设计窗口中选择 Design Setup->setup floorplan

29 整体规划—标准单元布局 核利用率(Core Utilization)是指所有标准单元和宏单元的面积与核面积的百分比,该值的大小决定了芯片的面积。 “Row/Core Ratio”选择1,表示采用无布线通道的方式。由于当前主流工艺下金属层次数目较多,通常不需要额外的布线通道。 “Core Aspect Ratio(H/W)”确定芯片的形状。值为1时表示芯片的形状为正方形,值大于1时表示芯片的高度大于芯片的长度。 选择“Horizontal Row”、“Double Back”、“Start First Row”和“Flip First Row”四个选项。表示Row为水平方向而且从第一行开始Row是翻转且背靠背的,目的是便于相邻两行的标准单元的电源线和地线进行共享以减小芯片面积。 “Core To Left”、“Core To Right”、“Core To Top”、“Core To Bottom”设置的是Core区域和IO单元区域在四个方向的间距。设置这个间距是用来进行电源环和地环的放置,间距的大小由电源环和地环的宽度决定。

30 整体规划—标准单元布局

31 IO摆放 IO之间的间距 取决于封装厂封 装水平

32 电源/地线规划 电源/地线网络分布在整个芯片,其作用: 一个完整的电源/地网络的设计还应考虑: 为每一个单元提供稳定的电压
直接关系到芯片的性能 一个完整的电源/地网络的设计还应考虑: 电压降(IR Drop) 电迁移(EM,Electromigration)

33 电源/地线规划 将标准单元和宏单元的电源、地端口与电源线、地线进行逻辑相连。
在设计窗口中选择Pre Route->Connect Ports to P/G

34 电源/地线规划 VDD 的net type是 Power VSS 的net type 是 Ground

35 电源/地 环规划 在核(Core)和IO单元之间加入电源/地环(ring)。
电源/地环上的电流是最大的,因此它的线宽也最大。(一般是1mA/um ) 在设计窗口中选择PreRoute->Rectangular

36 电源/地 环 与电源/地Pad 连接 再连接VSS

37 加Pad Filler 加Pad Filler是为了填充IO单元与IO单元之间的间隙,使IO连在一起。在设计窗口中选择PostPlace->Add Pad Fillers 在Filler栏填写Filler单元名称时要注意填写顺序,要求宽度大的填在前面。 40nm 库中的pad filler 有以下几种: PFILL20RN, PFILL10RN, PFILL5RN, PFILL2RN, PFILL1RN, PFILL01RN, PFILL001RN, Overlap Filler栏填写最后两个宽度最小的Filler单元,通过允许Filler单元交叠可以保证当版图格点精度为0.001um时,IO单元与IO单元之间也不会存在间隙。

38 创建电容查找表模型 根据工艺文件 (.tf)导出用于计算 线延时的电容查 找表TLU 2017/3/3 共111页

39 布局 布局(Placement)是确定每个标准单元位置的过程。一个合理的布局要求: 布局的好坏影响: 每个标准单元都放在有效的位置上
单元间没有重叠 布局的好坏影响: 芯片的面积 芯片的性能 布通率 整个后端设计的时间

40 布局选项设置(Set Placememt Optiom) 布局后的第一次优化(Post Place)
布局流程 装载时序约束文件(Load SDC) 时序设置(Timing Setup) 布局选项设置(Set Placememt Optiom) 预布局(Pre Place) 布局(In Place) 布局后的第一次优化(Post Place)

41 布局流程—装载时序约束文件 时序约束文件(top_pad.sdc是逻辑综合软件DC产生的)主要定义了: 芯片的工作时钟频率,时钟偏差+抖动
输入输出延时以及输出负载

42 布局流程—时序设置 在设计窗口中选择Timing-> Timing Setup,在弹出的窗口中进行用于静态时序分析的选项设置。 0.1

43 布局流程—布局选项设置 在设计窗口中选择InPlace->Placement Common Options,在弹出菜单的“Optimiaztion Mode”一栏中选择“Congestion”和“Timing”,表示选用时序和拥塞共同驱动的布局。其他选项可以缺省。

44 布局流程—预布局及时序分析 预布局阶段主要是对高扇出网线进行优化: 1.在设计窗口中选择InPlace->Auto Place,
2.在弹出窗口的“Stage”一栏选择“Pre-place”,并点击菜单中的“Detail Options”按钮, 3.在“Pre-Place optimization”一栏中选择“Cell Down Size”,其他选项缺省

45 布局流程—预布局及时序分析 Slack 为负表示不满足,需要再优化

46 布局流程—布局及时序分析

47 布局流程—布局后第一次优化 保证不能存在违反建立时间的路径,但可以存在违反维持时间(Hold time)的路径

48 时钟树综合 时钟树综合的主要目的是减小时钟偏差。 时钟偏差是指从时钟源点(Source)到各时钟汇点(Sink)的最大延时时间的差值。

49 时钟树综合 时钟树综合:在时钟网络中插入时钟缓冲器(buffer) 。 在布局之后布线之前,这时: 每个单元的位置确定 电源/地已预布线,
关键时序路径上的单元已被优化, 不存在建立时间上的时序违反,

50 时钟树综合—时钟选项 时钟树综合前,首先要设置时钟树选项。这些选项包括:
环境 (最好、最坏及典型)、 时钟偏差类型 (全局时钟偏差、局部时钟偏差及有用时钟偏差)、 优化程度、 时钟定义、 时钟缓冲器及倒相器定义、 时钟树结构和时钟树优化方式以及目标的设置。 在设计窗口中选择Clock->Clock Common Options,在窗口中进行相关选项的设置 。

51 时钟树综合—时钟选项

52 时钟树综合—时钟树综合

53 时钟树综合—时钟偏差分析 时钟树综合后,分析时钟偏差、最小插入延时是否符合设计要求。在设计窗口中选择Clock->Skew analysis。

54 时钟树综合—重新时序分析 时钟树综合之前,所有的静态时序分析都是基于一个理想的时钟网络(时钟偏差为0)来分析的。
时钟树综合后,需要考虑Clock Skew后再次进行静态时序分析,因此需要重新设置时序选项。 (tcl “set_propagated_clock [all_clock]”)

55 时钟树综合—重新时序分析

56 时钟综合后的布局优化及时序分析 做到这一步,setup slack 一定要为正,hold slack最好也为正,不过如果slack为-0.0X也可以,等布线完再优化。

57 布线 布线工具根据单元的连接关系及时序约束进行自动布线,使关键路径上的连线尽量短。布线包括: 布线主要分: 时钟布线 普通信号布线
全局布线(Global Route) 布线通道分配(Track Assignment) 详细布线(Detail Route) 布线修补(Search & Refine)

58 布线基本规则 Astro是基于网格(grid)的布线工具
Placement grid就是所谓的UnitTile,unitTile为一个row的最小单位,standard cell就是摆放在row上面,起摆放位置必须对其每个unitTile的边缘,因此每个standard cell都必须是同一高度。 Routing grid Pitch是金属宽度加上金属间最小间距。

59 全局布线(Global Route) 规划布线路径,确定其大体位置及走向,不做实际的连线 布线路径是没有实际宽度的线条
不同的颜色代表了不同的铝线层,并给出了孔的位置

60 布线通道分配(Track Assignment)
Track assignment 把每一连线分配到一定的track上,并且对连线进行实际布线,在这个阶段不做DRC检查 己有实际的金属线,jog是为了减少孔的个数。Jog是指小范围内改变布线的方向。

61 详细布线和布线修复 详细布线(Detail route) 布线修复(Search and repair)
详细布线使用全局布线和track分配过程中产生的路径进行布线和布孔。使用固定尺寸的sbox来修复违规,sbox是整个版图平均划分的小格子,小格子内部违规会被修复但小格子边界的DRC违规就修复不了,这就需要在接下来的步骤中完成修复。 布线修复(Search and repair) 修复在详细布线中没有完全消除的DRC违规,在此步骤中通过尺寸逐渐加大的sbox来寻找和修复DRC违规。

62 布线流程 1. 标准单元电源/地线连接 2. 装载天线效应约束文件 3.分布式布线设置 4.布线选项设置 5.布线高级选项设置
1. 标准单元电源/地线连接 2. 装载天线效应约束文件 3.分布式布线设置 4.布线选项设置 5.布线高级选项设置 6.时钟线布线 7.普通信号线布线及时序分析 8.布线后的各项性能分析

63 标准单元电源/地线连接

64 装载天线效应约束文件 天线效应--在集成电路制造过程中的金属等离子刻蚀阶段,接到器件栅极上的金属会收集电荷,如果电荷积累到一定程度,栅极的薄氧层会被击穿,器件因此失效 。 为了能让Astro在布线过程中避免出现天线效应,首先要装载由Foundry提供的天线效应约束文件(.clf)。命令为: load “天线效应约束文件名” 有两种方法可以修复天线效应违反,一种方法是铝线跳到顶层,另一种方法是在栅极附近增加二极管。

65 分布式布线设置 随着芯片规模的增加,连线数越来越多,因此布线是个非常费时的过程。如果存在多个CPU,为加快布线,可以采用分布式布线的方式。在设计窗口中选Route Setup->Distributed Routing Setup。在弹出的窗口中选择“Connect”选项。

66 布线选项设置 设置的原则是根据设计的需要,在设计的时序、DRC规则和CPU 的运行时间上作出平衡。
这些选项设置会影响以下操作:部分连线布线、全局布线、布线通道分配、详细布线、布线修复、区域布线、布线的优化等。 在设计窗口中选Route Setup->Route Common Options

67 布线高级选项设置 这部分选项设置主要是为了避免布线时出现的天线效应。
在设计窗口中选Route Setup->HPO Signal Route Options。

68 时钟线布线 在普通信号布线前,先对部分特殊的互连线进行布线,比如时钟信号线或关键时序路径连线,布完这些线后,先进行时序分析看是否满足要求然后再布其它连线。 在设计窗口中选择Route->Net Route Group,选择窗口中的“All clock nets”和“Trim antenna of user's wire”选项,其余选项缺省。

69 普通信号线布线及时序分析 在设计窗口中选Route->Auto Route,
弹出对话框中对“Search & Repair Loop”的次数进行设置,一般设为5,若布线修复的次数设的过多,会比较费时。

70 普通信号线布线及时序分析 布线完成后要求不能存在设计规则和天线效应的违反。查看如下日志文件即可判断是否存在设计规则和天线效应的违反。
DRC-SUMMARY: TOTAL VIOLATIONS = (0) //表示不存在设计规则违反 Total nets not meeting constraints = //表示不存在天线效应违反

71 布线完 的时序报告 Slack 都要为正

72 布局布线完版图—修改显示层次前

73 布局布线完版图 修改显示层次

74 布线后的各项性能分析 布线完成后需要进行各项性能分析,包括:
1.静态时序分析--要求时序上(建立时间、维持时间、最大跳变时间和最大负载电容)不能有任何违反。 2.串扰分析--深亚微米工艺下,连线间的耦合电容在不断增加,而设计的时序要求却不断提高,因此串扰问题将变得越来越严重。 3.功耗、压降和电迁移分析

75 版图验证 1.设计规则检查(DRC) Astro内嵌有设计规则检查工具,但这只是门级的设计规则检查,版图数据并不完整,因此检查结果并不准确。
2.版图与原理图的一致性验证(LVS) 将从版图中提取的电路网表和设计的网表进行比较,确保两者一致。同样这只是门级的LVS检查。在设计窗口中选Verify-> LVS。要求不能存在短路、开路的违反。

76 LVS报告

77 LVS错误查看 有错误,就 需要查看错 误类型

78 LVS错误查看

79 数据输出 --.SDF文件 输出用于反标的延时文件 (后仿真用)

80 数据输出--.sv网表文件 输出Verilog门级网表文件(供后仿真用)

81 数据输出--.gds文件 输出GDS文件(Calibre 做DRC)

82 后仿 与逻辑综合完时序仿真步骤一样: 1.将布局布线完导出的SDF文件添加到Testbench中 2.创建新的工程
3.添加布局布线完导出的网表文件fsk_layout.sv 4.添加标准单元的Verilog模型文件/home/smic/smic_40/SCC40NLL_HS_RVT_V0 p1a/verilog/SCC40NLL_HS_RVT_V0p1.v 5.添加输入输出IO的Verilog模型文件/home/smic/smic_40/SP40NLLD2RN_3P3V_V0p2/verilog/SP40NLLD2RNP_3P3V_V0p1.v 6.编译及仿真

83 后仿真波形 整体功能波形: 延迟信息:

84 THANK YOU!


Download ppt "IC典型流程 数字VLSI 流程 模拟IC 流程 Matlab Matlab 半定制?全定制 Modelsim Questasim"

Similar presentations


Ads by Google