物理设计(ICC)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12
布图规划 Floorplan 阶段在core area 内要确定macro 的位置,可以通过飞线显示macro的pins与 io或其它macro的pins的连接关系,来帮助 确定macro的位置 Floorplan要进行预布线,即布电源地网络 。概述里面已经讲到从 floorplanplacementclock tree synthesisrouting的流程。有两个地方做 了布线的工作即floorplan阶段的电源地网络 的布线、routing阶段的信号的详细布线。
2
时钟树综合
DRC、LVS
流片
IC Compiler是synopsys公司继Astro之后推出的另一款P &R工具(芯片设计的物理实施通常被简称为布局布线, place and route),本课件中出现的一些图中的Astro 工 具可以当作IC Compiler来理解。 如下页图1所示,输入IC Compiler 的有:门级网表、库 文件、时序约束。 输出IC Compiler 的是layout(常用格式是GDSII)。
物理设计
物理设计是把电路信息转换 成foundry厂可用于掩膜的 版图信息的过程,它包括数 据准备、布局、时钟树综合 、布线及DRC、LVS等步骤 如右图所示
参考单元库
时序约束文件
门级网表 数据准备
工艺文件
布局规划
布线
布局
静态时序分析,后仿真
常用的布局布线工具有 Synopsys公司的IC Compiler、 Astro和 Candance公司的SOCEnconter。
3
4 图1
5 图2
6
库的建立
做物理设计首先要建立reference library Reference library 包括以下几部分:stand cell library、pad library、macro cell(或IP library)。 Stand cell 包括inverters、buffers、ands、ors、nands、 muxes、flip-flops等
11
布图规划
3、Pads fillers Pads fillers 为图中Filler所示,其作用为连接两个 两邻的pads(从衬底到各层金属的相连) P/G rings 所有信号pads、电源地pads、fillers、corners都 是有电源地的引脚的,用金属线把这些引脚相连 ,形成pad area上的一个环,称为P/G rings,如果 所有的pads都是无缝排列的,那么pads上的自身 的金属已经相互连接成了P/G ring。
22
利用理想的时钟网络显然过于乐观,为了进一步接近实际的时 钟,skew , latency ,transition 的影响应当被模拟进来
23
24
布局
实际的时钟树网络无法保证时钟源点到该时钟域内所有寄存 器的clk端的延时是绝对相等的,时钟源点到不同寄存器的 clk端的延时之差称之为skew(偏斜),我们用 set_clock_uncertainty这个命令去模拟skew的影响。如 set_clock_uncertainty 0.3,单位是ns(取决.tf工艺文件里面 所设单位) 时钟域内寄存器的clk端可以称之为汇点(sink),时钟源点 (source)到汇点的延时称为latency,我们 可以用 set_clock_latency 命令去模拟源点到汇点的延时,如: set_clock_latency 1 实际的时钟信号跳变时间是不可能为零的,所以我们可以用 set_clock_transition去模拟这个跳变时间 如 set_clock_transition 0.1
9
布图规划
通常情况下,一个芯片由core area 和pad area组成
10
布图规划
Pad area 由以下几个部分组成: 1、Input/Output/InOut pads 如右图中Reset 2、Power pads and conner pads 右图上右上角那个CornerUR为一个corner pads Conner pads 的作用是连接其两边的Pads(连接衬 底以及衬底以上的各个层) VDD VSS 为Power pads ,其对外连接供电的封装 引脚,对芯片则起到供电的作用,Power pads 可 以分为对core 供电的pads 和对IO pads 供电的 pads ,所有的Pad都是由晶体管以及各层金属构成 的,Pad 也是一个cell。
13
布图规划 Floorplan 请参看PNR/scripts/run_icc_record.tcl中 ####Floorplan阶段脚本 Shell 下键入icc_shell -64bit |tee log.1027 启动ICC 把run_icc_record.tcl中####Floorplan以上 部分复制粘贴入icc_shell中即可完成参考库 的调用、设计库的创建的工作。 由于floorplan阶段手工活较多,故在此叙述 也较详细,并辅以视频。
18
布局
ICC 会计算每个单元的延时和每条线的延时 单元的延时信息由foundry提供的单元库文件提供 为了计算线延时,ICC必需知道每条线的寄生电阻和寄生 电容
19
布局
在布局阶段,实际的金属线是不存在的,故需要有 一种估计的方法估计线延时。 在由RTL代码到门级网表的综合过程中,也需要用 到STA,综合阶段对延时的估计基于WLM(Wire Load Model)。根据fanout估计R和C,这显然和最 终的版图的实际结果有很大出入。
25
布局
Core area 内标准单元并不是可以随意摆放的,所有 的标准单元被设计成等高不等宽的,这样所有的标准 单元可以被放入同样的placement row里面,如图所 示
26
Timing driven placement
Placement 是时序驱动的,关键路径上单元会被放得近一些,placement 是时序驱动的同时,也是拥塞驱动(congestion driven)的,标准单元的信 号连接最终需要布线的,如果一个区域内布线要求大于布线资源的话,就 导致了拥塞,显然标准单元过密集得摆放在一起就容易导致拥塞,timing 和congestion 就变成了一对折衷的因素了。
15
布图规划
再摆放macro的位置,本实验中为两个sram,摆放 的过程中利用到了飞线。 接下来分别创建电源地网络,包括以下: Core ring :core 的四周,用以给core供电 Strap:实验中可以看到是core 内部的几条竖直的 VDD VSS电源线。其作用是把core ring 连接至 core 内 Macro ring :macro的周围,用以给macro供电 Rail :用以给标准单元供电,在本实验中,你可以 通过放大core area处,观察到众多相对于strap要 细很多的水平且平行的rail。
Pad cell 包括信号pad、电源地pad
Macro 即设计中用到的一些宏模块
7 下页以图讲解stand cell、pad cell、macro
四个c来自百度文库nner位于芯片的四个角, 起到连接四边IO pad 的作用。
8
布图规划 floorplan(布图规划)的主要内容包含了对芯片 大小(die size)的规划、芯片设计输入输出(IO )单元的规划、宏模块的规划、电源网络的设计 等 floorplan在整个流程中具有十分重要的地位 ,因 为floorplan一旦确定,则整个芯片的面积就定下 来了,同时它也与整个设计的timing和布通率( 布线能否布通)有着密切的关系。基本上流程中 的反复主要是发生在这一步中。如果这一步做得 比较好,则后面once pass的几率就比较高,反之 如果回溯到这一步,则花费的时间开销就会很大 。 floorplan是物理设计中手工程度很大的工作
14
布图规划 先从脚本中把derive_pg_connection – power_net VDD –power_pin VDD – ground_net VSS –ground_pin VSS和 derive_pg_connection –power_net VDD – ground_net VSS –tie 粘入icc_shell,这两 句告诉工具电源地的连接信息。 再定义pad 的摆放read_io_constraints ../inputs/io.tdf,io.tdf文件中定义了pad的摆 放。 再按视频中方式initialize floorplan
27
布局 在macro周围我们会打上placement blockage,工具不会在placement blockage 区域内摆放标准单元,macro处pin处需要 较多的布线资源,如果macro周围较近区域 被放置了标准单元,就可能导致拥塞的产 生。故需要在macro周围打上blockage,在 实验视频中可以看到这一步。
28
时钟树综合(CTS)
在大规模集成电路中,大部分时序元件的数据传输是由时 钟同步控制的时钟频率决定了数据处理和传输的速度,时 钟频率是电路性能的最主要的标志。在集成电路进入深亚 微米阶段,决定时钟频率的主要因素有两个,一是组合逻 辑部分的最长电路延时,二是同步元件内的时钟偏斜 (clock skew),随着晶体管尺寸的减小,组合逻辑电路的开 关速度不断提高,时钟偏斜成为影响电路性能的制约因素 。时钟树综合的主要目的是减小时钟偏斜。 以一个时钟域为例,一个时钟源点(source )最终要扇出到 很多寄存器的时钟端(sink),从时钟源扇出很大,负载很 大,时钟源是无法驱动后面如此之多的负载的。这样就需 要一个时钟树结构,通过一级一级的buffer去驱动最终的 叶子结点(寄存器)。
29
在未进行时钟树综合之前,时钟树未生成,时钟结构逻辑上如上图所示, 一个时钟源端最终扇出到很多寄存器的时钟端。
30
上图是时钟树综合好之后的结果,上图中有三级buffer构成了一个时钟树。
31
时钟树综合(CTS)
在sdc文件中用create_clock命令创建时钟,同时定义了时钟源点如: Create_clock [get_pins U_TOP_PAD/Pad_inout_PF5_CAM_PCLK/C] –name CPCK -period 10 –waveform {0 5} 这条命令在U_TOP_PAD/Pad_inout_PF5_CAM_PCLK/C这个pin处创建了时钟, 这个pin就是名为CPCK的时钟的时钟源点
16
实验中的电源地网络
17
布局 在floorplan结束后,芯片的大小,电源网络 ,macro的位置已经确定了,接下来的工作 是标准单元的布局工作。 布局工作是时序驱动(timing driven)的,即 布局出来的结果要满足时序的要求。 ICC时序分析采用静态时序分析(STA), STA必须要获得单元延时(cell delay)和线延 时(net delay)
32
时钟树综合(CTS)
由于时钟树的重要性,工具采用不同于一般布线规则的 时钟树自己的布线规则
33
时钟树综合(CTS)
首先定义non default routing rule
20
布局
布局过程中,每个单元是有自己的物理位置的,我们就不再采 用WLM去估计延时了,我们采用虚拟布线(virtual routing)技术 去估计延时。
21
布局
综合阶段的时钟信号和高扇出信号被定义成理想 的和don’t_touch(综合工具不对其进行插buffer的 操作)的 布局阶段对高扇出(如reset、set、enable等)要进 行高扇出综合(HFS)。 ICC 布局阶段的一个命令place_opt内嵌了自动高 扇出综合(Automatic High Fanout Synthesis) 时钟树的处理是在place之后,CTS(Clock Tree Synthesis)阶段进行时钟树综合的 在布局阶段我们需要模拟时钟树的影响
相关文档
最新文档