7.4 版图单元(Cell)库的建立
版图单元(Cell)库一般分为裸芯片Cell库、无源元器件Cell库、SiP封装Cell库等类型。本节主要介绍裸芯片Cell库和SiP封装Cell库的建立,至于电阻、电感、电容等无源元器件,多属于标准元器件,它们的Cell库与Symbol库一样,可从其他库中导入或者手工创建。
7.4.1 裸芯片Cell库的建立
1.创建裸芯片的Padstack
在建立任何Cell库之前,都要先要建立Padstack。
在Xpedition Library Manager的工具栏中单击
图标,启动Padstack Editor。启动后,单击Pads选项卡,单击
图标创建新的Pad并设置其大小,在Properties功能区Units下拉列表中选择单位um,选择右侧列表中的Square(图7-15中方框处),并设置Square尺寸为62,软件会自动将其命名为Square 62。如果需要手动命名(如更改名称为Square 62um),则需要去掉前面的勾选项,进行手工命名。如果设计师直接更改其名称,勾选项则会自动取消勾选。创建新的Pad如图7-15所示。
在Pads选项卡中,可以创建多种形状的Pad,还可以创建各种类型的热焊盘(Thermal Pad)。
如果设计中需要创建特殊的异形Pad,则需要切换到Custom Pads &Drill Symbols选项卡中,用户可在此选项卡中绘制任意形状的异形Pad,如图7-16所示。
Pad创建完成后,切换到Padstacks选项卡,单击
图标创建新的Padstack,将其命名为Die_Pad1,如图7-17所示。Type类型选择Pin-Die,通过鼠标在需要指定Pad的后面空白处单击,在Available pads选项框中选择Square 62um,并单击向左的箭头
,指定Pad Square 62um给Padstacks Die_Pad1,保存并退出Padstacks Editor。

图7-15 创建新的Pad

图7-16 创建异形Pad

图7-17 指定Pad Square 62um给Padstacks Die_Pad1
2.创建裸芯片的Cell
回到Xpedition Library Manager主界面,在Cell上单击鼠标右键,选择New Partition创建新的分区,在弹出的窗口中输入分区名SiP_CELL,单击OK按钮后,可看到SiP_CELL文件夹出现在Cell列表中。在Sip_CELL文件夹上单击鼠标右键,选择New Cell,在弹出的窗口中输入Die_Cell1,然后单击OK按钮,弹出Create Package Cell窗口。创建裸芯片Cell及其属性窗口如图7-18所示。

图7-18 创建裸芯片Cell及其属性窗口
上图中的具体参数介绍如下。
① Total number of pins:输入芯片的引脚数,本例中输入62,这里输入的数目与对应的Symbol中定义的引脚数目通常要一致,否则映射Part时会报错。
② Layers while editing cell:编辑Cell时所需要的层数,通常输入2即可。
③ Package group:芯片类型,在下拉列表中选择IC-Bare Die,即裸芯片。
④ Mount type:安装类型,在下拉列表中选择Surface,即表面安装。
⑤ Cell Properties:Cell属性设置。单击Cell Properties按钮,在弹出的窗口中输入芯片的单位和高度等信息。在Units下拉列表中选择um,即设置单位为微米,然后输入芯片高度为200。注意芯片高度要按实际芯片的厚度来输入,通常是晶圆减薄后的厚度。这对后面的Bond Wire起始点的高度以及Bond Wire的形状有一定的影响,从而影响设计和生产的一致性,即考虑DFM(Design For Manufacture,面向制造的设计)的因素。
设置完成后,返回Create Package Cell窗口,单击Next按钮,进入Cell Editor,系统自动弹出Place Pins窗口,选择所有的Pin并删除(注意,这里一定要删除所有的Pin,否则会与后面通过Die Wizard导入的Pin产生冲突),如图7-19所示,之后单击Close按钮。

图7-19 进入Cell Editor删除所有的Pin
在Cell Editor界面,单击Die Wizard图标
,选择导入芯片的引脚定义文件,文件内容通常包括裸芯片引脚的X坐标,Y坐标和引脚号等信息,这些信息在前面已经在Excel表格中编辑好了(详见图7-11的内容)。
在Excel表格中,选中Cell属性区虚线框内的内容(如图7-11左侧所示),首先将此内容复制粘贴至文本文件并保存为Die_Cell1.txt格式(保存成文本格式是为了在Die Wizard导入时更方便)。然后在Die Wizard中选择Die_Cell1.txt文件,如本例中的E:\Projects\SiP\Die_Cell1.txt。
图7-20所示为通过Die Wizard导入芯片引脚定义文件。注意,在Die Wizard窗口中,Unit下拉列表的值要与导入文件的单位保持一致,如um;Format下拉列表也要设置与导入文件内容一致的格式,如图7-20中的X、Y、Pin Name。根据文件的格式选择Separator(分隔符),如本例中的Tab。在Pad stacks选区选择User defined,并在Pad stack name下拉列表中选择前面创建的Die_Pad1。单击新建按钮
和导入按钮
,完成Die_Cell1数据的导入。
导入完成后,单击OK按钮,可以看到IC裸芯片的引脚已经放置在Cell Editor窗口工作区,并按照文件中的坐标进行了排列,如图7-21所示。根据设计需要,设计师可以手工添加Placement Outline(放置外框)、Assembly Outline(装配外框)等。
如果不添加任何外框,在保存时系统也会自动添加Placement Outline,添加的原则是用最小的矩形包围所有的引脚。选择File→Save菜单命令保存配置后,退出Cell Editor。
Die_Cell1创建完成效果如图7-22所示。可以看出在Xpedition Library Manager主界面的SiP_CELL分区下方已经有了Die_Cell1,与其关联的Padstacks为Die_Pad1,目前还没有Part与之相关联,需要后续进行Part映射,图7-22中右侧为Die_Cell1的预览图,可以看出外框已经自动添加。

图7-20 通过Die Wizard导入芯片引脚定义文件

图7-21 通过Die Wizard导入的芯片引脚分布

图7-22 Die_Cell1创建完成效果
7.4.2 SiP封装Cell库的建立
1.创建BGA Padstack
下面以BGA封装为例介绍。在建立SiP封装Cell库之前,同样,也要先建立Padstack,在Xpedition Library Manager界面启动Padstack Editor。Padstack Editor窗口如图7-23所示。

图7-23 Padstack Editor窗口
先设置Pad的大小,在Pad选项卡中,选择单位为um,在右边列表中形状选择Round,设置尺寸为500,软件会自动为该Pad命名Round 500,以同样的方法创建直径为450 um的圆形Pad Round 450。
切换到Padstacks选项卡,新建Padstack并命名为BGA_pad_500um,在Type下拉列表中选择Pin-SMD。Pin-SMD需要多层定义:
① 按住<Ctrl>键分别选中Top mount、Bottom mount,在右侧Available pads栏中选中Round 500,单击向左的箭头,将Round 500指定到金属层。
② 按住<Ctrl>键选择Top mount soldermask、Bottom mount soldermask、Top mount solderpaste、Bottom mount solderpaste,在右侧Available pads栏选中Round 450,单击向左的箭头,将Round 450指定给相应Pad,保存后退出Padstack Editor。
在实际设计中,根据工艺的不同,Padstacks每一层定义的尺寸并不一定完全相同。在封装或SiP基板的BGA Padstacks中,Soldermask(阻焊层)通常会比Pad小,而在PCB设计的BGA Padstacks中,Soldermask通常会比Pad大,放大、缩小的尺寸比例一般控制在10%左右。对于Solderpaste(焊膏层),其大小和钢网的厚度控制了实际锡膏的量,需要根据实际的工艺进行设置,既要焊接牢固又要避免因为锡膏量太大而导致粘连短路。
而对于Plane Clearance层,如果不进行定义,则在版图设计时根据设计约束规则统一设置。如果定义了其大小,那么在生成负片敷铜Negative Plane时,根据其大小进行Padstacks和铜皮的避让,对正片敷铜(Positive Plane)则没有影响。
对于Plane Thermal层,如果不进行定义,则在版图设计的时候根据Plane Class and Parameter中定义的规则进行统一设置。如果定义了其大小,并且在勾选了Use thermal definition from padstack选项的情况下,会优先选择在Padstacks中定义的Plane Thermal,这对于某些特殊的Padstack,在需要定义与其他Padstacks不同的热焊盘时非常有用。
2.手工创建BGA Cell
在Xpedition Library Manager主界面,单击按钮
,进入Cell Editor窗口。可看到Cell列表中已经有上面创建的Die_Cell1,单击新建按钮
,创建新的Cell。
在弹出的Create Package Cell窗口中的Cell Name栏输入BGA_Cell,在Total number of pins栏输入BGA的引脚数(总排数×总列数)。在Layer while editing cell栏输入2,代表编辑此Cell时需要的层为两层。在Package group栏选择芯片类型,在下拉列表中选择IC-BGA。在Mount type栏选择安装类型,系统自动选择Surface,即表面安装。
单击Cell Properties按钮,在新弹出的窗口中输入芯片的单位和高度等信息。在Units中选择mm,输入芯片高度为0,因为此BGA Cell是作为SiP封装引脚引出功能的单元,位于基板的底部,其本身并无厚度,所以将其高度设置为0。如图7-24所示。
所有参数设置完成后,单击Next按钮,进入Cell Editor窗口。
在自动弹出的Place Pins窗口中,指定Padstack Name为前面创建的BGA_Pad_500um。这里有一个小技巧,在按住<Shift>键的前提下,选择第一个引脚,然后选择最后一个引脚,即可选中所有引脚。保持<Shift>键按下,在下拉列表中选择BGA_Pad_500um,可以看到所有的引脚都被指定为BGA_Pad_500um,如图7-25所示。

图7-24 创建SiP封装Cell及其属性窗口
接下来设置引脚参数。有多种引脚放置方法供选择,这里选择Pattern Place,在Pattern type下拉列表中选择BGA选项,其他参数设置如图7-25所示。

图7-25 指定Padstack Name并设置参数
在图7-25中的Pin #列,默认的引脚号为数字排列的1、2、3、4、5……,需要重新命名。选中1~30引脚,单击Renumber Pins按钮,在弹出的Auto Generate Numbers对话框中设置Prefix为A,Starting number为1,Increment也为1,单击OK按钮,可以看到引脚号已经更改为A1、A2、A3、…、A30。用同样的方法,选中31~60引脚,命名为B1~B30;选中61~90引脚,命名为C1~C30,以此类推。
有3点需要设计师特别注意:① BGA引脚的前缀中是不包含有些字母的,如I、O、Q、S、X等,所以在排列时应略过这些字母。② 由于BGA的引脚Pin是从基板底面引出的,所以在创建Cell时,引脚的Side需要设置为Opposite,这样当BGA Cell被放置到基板顶面时,其引脚Pin位于基板的底面。③ 如果引脚的Side设置为Mount,则需要对引脚号排列顺序做镜像反转,如A1~A31变为A31~A1,在布局时,BGA Cell需要放置在基板底面,这样,从顶视图看依然为A1~A31。重新命名BGA引脚并设置Side为Opposi te如图7-26所示。

图7-26 重新命名BGA引脚并设置Side为Opposite
放置后的引脚为30×30的全矩阵,需要手工删除中间的空腔,选中需要删除的引脚然后按<Delete>键即可,如图7-27所示。

图7-27 删除空腔中的引脚
最后添加Placement Outline,并调整字符的大小和位置。选择File→Save菜单命令保存,会弹出如图7-28所示的对话框,表明只有504个引脚被放置,是否以此作为新的引脚数,单击“是”按钮即可。

图7-28 保存时提示引脚数更新
3.使用Die Wizard创建BGA Cell
设计师可以利用Die Wizard功能进行BGA Cell库的创建。
在Place pins窗口删除所有预先定义的Pin后,关掉Place pins窗口,如果不删除预先定义的Pin,就会与后面通过Die Wizard导入的引脚发生冲突,实际引脚数=预先定义引脚数+导入引脚数,与Cell属性Total number of pins中定义的数量不一致。
在Excel中编辑好BGA的引脚坐标和引脚号。在Excel中比较容易实现引脚号排列,基本格式如图7-29左侧所示。在Excel中编辑好文件后将其内容复制并粘贴到Note Pad中,保存为BGA_CELL.txt,如图7-29右侧所示,方便后续通过Die Wizard功能导入。

图7-29 BGA引脚坐标及引脚号定义
接下来,用Die Wizard导入BGA_CELL.txt文件。
在Die Wizard中,操作同上面的方法一样,需要注意的是在Pad Stacks name中只能选择Die_Pad1(因为目前Die Wizard只能识别Die Pin类型的引脚)。
导入完成后,在Cell Editor中再替换成BGA Pad。进入Cell Editor中,在Place Pins窗口中选中所有的Pin。选中的方法如下:先选中第一行,然后按住<Shift>键,再选中最后一行,在保持按住<Shift>键的前提下,在最后一行的Padstack Name上单击,并在弹出的下拉列表中选择前面创建的BGA_Pad_500um,完成替换,然后保存退出即可。