backend flow
在PD之后,netlist中会多出很多DCAP元件(去耦电容,减少IR-Drop)或者filter cell(保证芯片均匀度要求)
还有一些antenna cell也就是一些diode用来泻流,防止天线效应(生产中裸露的metal,收集电荷,击穿栅极)
版图一般由两层组成:base layer和metal layer。
base layer由p-substrate和n-well组成。
封装前的芯片叫做die,长满die的晶圆叫做wafer
GDS相对于RTL的要求:
RTL+SDC经过synthsis和physical design得到GDS
synthesis = transition + optimization + mapping
其中transition将RTL转变为GTECH格式,
后在sdc的约束下进行optimizaiton和mapping到target lib,主要约束包括(timing,power,area)
在logic synthesis过程中,主要进行setup time的约束,hold time在CTS之后加buffer来修复。
常用的工具有synopsys的design compiler(DC)和cadence的RTL Compiler(RC)。
在进行ECO的过程中,需要对RTL和netlist进行formal check
其中netlist包括pre_netlist(经过transiiton),dft_netlist(插入dft),pg_netlist(插入power switch)
常用的工具有:synopsys的formality(fm)和cadence的conformal(lec)
从Netlist到GDS的物理实现:
物理实现需要的三种文件:
logic library(以db格式存储),physical library(以milkyway格式保存),tech file
Signoff STA,最终的时序,要求使用最精确的RC寄生参数和STA算法。
RC参数可以用synopsys的StarRC工具提取,cadence的QRC工具提取。
STA工具可以用synopsys的PrimeTime,cadence的ETS工具
physical verification
DRC:Design Rule Check,(Antenna Rule File)
LVS:Layout vs Schematic;
Power Signoff:IR Drop
Static IR drop
Dynamic IR drop
常用的工具有:cadence的EPS和synopsys的PrimeRail
数字后端流程
1. 数据准备。
对于 CDN 的 Silicon Ensemble而言后端设计所需的数据主要有是Foundry厂提供的标准单元、宏单元和I/O Pad的库文件,它包括物理库、时序库及网表库,分别以.lef、.tlf和.v的形式给出。前端的芯片设计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产生的.gcf约束文件以及定义电源Pad的DEF(Design Exchange Format)文件。(对synopsys 的Astro 而言,经过综合后生成的门级网表,时序约束文件 SDC 是一样的,Pad的定义文件--tdf , .tf 文件 --technology file, Foundry厂提供的标准单元、宏单元和I/O Pad的库文件就与FRAM, CELL view, LM view 形式给出(Milkway 参考库 and DB, LIB file)
2. 布局规划。
主要是标准单元、I/O Pad和宏单元的布局。I/O Pad预先给出了位置,而宏单元则根据时序要求进行摆放,标准单元则是给出了一定的区域由工具自动摆放。布局规划后,芯片的大小,Core的面积,Row的形式、电源及地线的Ring和Strip都确定下来了。如果必要在自动放置标准单元和宏单元之后,你可以先做一次PNA(power network analysis)--IR drop and EM .
3. Placement -自动放置标准单元。
布局规划后,宏单元、I/O Pad的位置和放置标准单元的区域都已确定,这些信息SE(Silicon Ensemble)会通过DEF文件传递给PC(Physical Compiler),PC根据由综合给出的.DB文件获得网表和时序约束信息进行自动放置标准单元,同时进行时序检查和单元放置优化。如果你用的是PC +Astro那你可用write_milkway, read_milkway 传递数据。
4.时钟树生成(CTS Clock tree synthesis) 。
芯片中的时钟网络要驱动电路中所有的时序单元,所以时钟源端门单元带载很多,其负载延时很大并且不平衡,需要插入缓冲器减小负载和平衡延时。时钟网络及其上的缓冲器构成了时钟树。一般要反复几次才可以做出一个比较理想的时钟树。---Clock skew.
5. STA 静态时序分析和后仿真。
时钟树插入后,每个单元的位置都确定下来了,工具可以提出Global Route形式的连线寄生参数,此时对延时参数的提取就比较准确了。SE把.V和.SDF文件传递给PrimeTime做静态时序分析。确认没有时序违规后,将这来两个文件传递给前端人员做后仿真。对Astro 而言,在detail routing 之后,
用starRC XT 参数提取,生成的E.V和.SDF文件传递给PrimeTime做静态时序分析,那将会更准确。
6. ECO(Engineering Change Order)。
针对静态时序分析和后仿真中出现的问题,对电路和单元布局进行小范围的改动.
7. Filler的插入(pad fliier, cell filler)。
Filler指的是标准单元库和I/O Pad库中定义的与逻辑无关的填充物,用来填充标准单元和标准单元之间,I/O Pad和I/O Pad之间的间隙,它主要是把扩散层连接起来,满足DRC规则和设计需要。
8. 布线(Routing)。
Global route-- Track assign --Detail routing--Routing optimization 布线是指在满足工艺规则和布线层数限制、线宽、线间距限制和各线网可靠绝缘的电性能约束的条件下,根据电路的连接关系将各单元和I/O Pad用互连线连接起来,这些是在时序驱动(Timing driven ) 的条件下进行的,保证关键时序路径上的连线长度能够最小。--Timing report clear
9. Dummy Metal的增加。
Foundry厂都有对金属密度的规定,使其金属密度不要低于一定的值,以防在芯片制造过程中的刻蚀阶段对连线的金属层过度刻蚀从而降低电路的性能。加入Dummy Metal是为了增加金属的密度。
10. DRC和LVS。
DRC是对芯片版图中的各层物理图形进行设计规则检查(spacing ,width),它也包括天线效应的检查,以确保芯片正常流片。LVS主要是将版图和电路网表进行比较,来保证流片出来的版图电路和实际需要的电路一致。DRC和LVS的检查--EDA工具 Synopsy hercules/ mentor calibre/ CDN Dracula进行的.Astro also include LVS/DRC check commands.
11. Tape out。
在所有检查和验证都正确无误的情况下把最后的版图GDSⅡ文件传递给Foundry厂进行掩膜制造。