IC后端概述(上)

本节开始简单介绍后端流程。后面会以实际例程说明后端的基本操作。
简单来说后端就是将rtl变为gds版图,再交由晶圆厂(tsmc台积电和smic中芯国际)生产制造。大多数ic设计公司都是fabless公司,做到gds这一步就ok。
gds:geometry data standard。它是描述电路版图的一种格式:包括晶体管大小,数量,物理位置和尺寸信息,连接线的物理尺寸和位置信息等等。晶体管+连接线组成庞大的电路逻辑。一般gds可通过calibre,virtuoso,laker等查看。
gds交由晶圆厂后,在一片wafer上切割成多个小块,每块为一个die,就是芯片的最小核心。
真实的芯片结构如下图所示。最底层是晶体管结构,晶体管接口和连接线的接触部分叫contact。contact上面是metal金属层,金属层就是连接线,密密麻麻的晶体管很多,因此连线分了好几层才能走通,一层的连接线要穿到其它层就需要打过孔(via),就像搭积木一样实现整个电路。每层连线之间都插有isolator隔离。
至于电路的具体制作过程如下所示。特殊频谱的光可以蚀刻电路,通过掩膜(mask),照射在wafer上,wafer涂有光刻胶,被照射的地方被腐蚀,剩下的部分形成电路。
流片成本很高,绝大部分是mask(掩膜)的费用,die面积xmask数就是主要的流片成本。
从rtl到gds版图,要遵守以下要求,符合要求的gds才能拿去流片
后端第一步是将rtl+sdc约束转换为网表,该步骤通过综合实现。通常工具会先将rtl转换为gtech格式,然后再将gtech转换为工艺库中的标准单元。整体来看是分两步走。转换为门级网表的过程中,综合工具会对rtl进行修改和优化,这些修改记录保存在svf文件。svf文件在后面的fm形式验证中会被使用。转换后的netlist要满足设置的约束(包括时序,面积,功耗)。此外逻辑综合要满足sdc约束下的setup timing,不需要理会hold timing。常用的工具有synopsys的design compiler和cadence的rtl compiler。逻辑综合涉及时序问题,延迟计算使用线负载模型(rc寄生参数)因为综合还没有涉及到布局布线,因此timing通常是不准的。下图给出了delay延迟的计算。
线延迟的计算通过长度衡量,长度越长rc值越大,扇出能力越弱。综合工具吐出netlist网表后,需要进行fm形式验证,比对rtl和网表在功能上是否等价,常用的工具有synopsys的formality(fm)和cadence的conforml(lec)
如果fm通过了,那么下一步进行物理实现:从netlist到gds。通常需要经过以下步骤:
综合之后网表和约束已经有了,下一步进行icc布局布线。design setup & in步骤中读入相关的网表、sdc和所需的工艺库文件。floorplan步骤设置尺寸大小,摆放port位置,设置物理约束。placement步骤中由工具自动摆放stdcel,进行时序、功耗、面积优化。clock tree synthesis构建时钟树,这之前时钟都是假设为理想的,从clock port到reg/ck的延时都为0。对于时序分析而言,时钟树长出来之前所有的timing问题其实都不准的,hold无需关注,setup需留有余量,因为布局布线的影响,时序会再次变化。routing步骤中将所有net用物理连接线实现。chip finish步骤中为提高良率和解决物理规则违规对芯片做一些特殊处理。write design out将所需的文件导出。
上图中给出icc执行所需的两类文件:
1、一类是dc综合时的文件,包括library的db文件、sdc约束文件、综合后的网表文件;
2、一类是物理数据文件,包括library中db文件对应的milkyway文件,技术文件(abc_6m.tf),rc模型文件(tlu+)用于提取寄生参数计算线延迟。
这里我们首先说下物理库,icc中所有物理库都以milkway的格式存在包括stdcell、memory等物理库,也包括设计本身。以stdcell为例,一般包含三类:cel、fram和lm。其中cel和fram是view信息,cel包括所有的物理信息,fram只包含pin的位置和形状以及routing blocage。pnr过程中,icc只会把fram view读进memory,cel view数据量太大,cel view只在最后写gds时用。routing blockage是绕线阻碍物,就是给某些金属加上blockage属性,让工具走线时不通过该区域,避免route时把连线伸进去,造成短路;
上图左侧为inv的cel view,右侧为inv的fram view。从图中可看出fram中信息量确实很少。
一个fram view中包含pin的方向、位于哪一层、形状。左下角是cell的参考点,坐标为(0,0)自动布局时会被使用。还有中间的blockage区域(避免走线)。通常一个cell放在row中的一个site上,cell的高度和row的高度是相同的,这些都在tf文件中有定义。vdd位于顶层,gnd位于最下面,这些和row的线对齐。
tf技术文件包括以下信息:
1、layer/via的数量和名字
2、每层layer的物理和电参数
3、每层layer的设计规则(最小线宽,线间距)
4、每个cell的单位和精度
5、每层的layer的显示颜色和模式
技术文件内容如上图所示,里面定义了很多物理参数。
至于tlu+文件用于对线负载模型建模,icc的rc估算比dc精确的多,已经可以表达真实的线延迟。后端工具基于此可计算wire的寄生参数:包括电阻、电容、耦合电容。
在icc处理的第一步中就是创建milkway_lib,它会创建名为oc8051_mwlib文件夹。并将技术文件和mw文件导入其中。
接下来读入网表文件和约束文件,同时保存cel view数据
此时原有文件夹下会新建cel文件,并将mw数据保存为init_design库文件。在design setup & in阶段,读入所有文件后,此时并没有floorplan操作,所有cell堆积在左下角。
floorplan步骤:先摆放大的mcro cell,然后摆放stdcell,这期间需要固定io位置。对于最底层晶体管的供电而言,m1或m2与row平行的会放置metal,依次与cell的vdd和vss相连,在m6或m7放置供电网,高层次的layer通过via与底层次的layer相连,从而搭建整体的电源系统。这里需要说明一点,如果m1是横向的,那么m2必须是纵向的,以此减少线干扰,相隔两层的metal必须正交,不能平行(与硬件pcb多层板布线很相似)。
floorplan本质是包含三方面:ppa(功耗性能面积),这三方面需要折中处理。这之后就到了placement阶段,工具会自动将每个cell放入site中。
在route之前,icc做place_opt进行优化时用virtual route估计连接线的长度和形状,以此根据tlu+模型估计rc参数。事实上,在后面的cts阶段,由于没有route,所以也通过同样的方法估计rcplacement阶段,需要满足sdc约束下的setup timing,所以完成place后,要分析timing。

vivo快应用聚力为民,携手多方创新疫情服务
英特尔Alder Lake-S处理器相关信息公布
2017 年搭载苹果操作系统设备出货量将首次超越微软操作系统
1500元以内王者对决,小米5c与360手机N5谁更值得买?
iphone8什么时候上市?iphone8将带领我们走入无线快充时代
IC后端概述(上)
苹果13系列的屏幕尺寸分别是多少
一个简单且低成本的驱蚊电路设计
测厚仪的使用方法及注意事项
iPhoneXR电池续航成目前iPhone阵容最强
高通2020年芯片出货量下降,凸显中国市场的重要地位
AR金融技术的应用前景
恒温恒湿试验箱怎样进行加湿除湿
我国人工智能经济将迎来黄金发展期
连接入门知识——适用于物联网空间的解决方案
宁德时代是独角兽吗?宁德时代中报业绩受热捧 工业富联股价一蹶不振
意法半导体KST测距传感器应用案例
线性电源与开关电源区别究竟在哪?
浅谈开关柜绝缘状态检测与故障诊断
沙龙客户通过AR(增强现实)技术可挑选适合自己的发色?