第二步:然后选择库,没加库之前,FM会自动加载与工艺无关的库,所以我们要自己把自己的目标库加上去,reference->read DB libarary->DB,选择typical.db 第三步:设置top名 reference->set top design 我们选择mux为top名 同样的方法对网表进行设置(第二个菜单栏implementation)
然后转到第四栏,点击run matching
最后转到第五栏,verify,如果网表无错,会显示验证通过。
3 静态时序分析
静态时序分析主要针对大型ASIC设计,
4 自动布局布线
1)数据准备
第一:需要综合后的网表以及时序约束文件mux.sv,mux.sdc
第二:需要自动布局布线的物理库(lef文件,这里用到tsmc18_6lm_cic.lef, tsmc18_6lm_antenna_cic.lef)
为了能够了解lef文档的作用,这里对lef做简单的介绍,lef一般分为两种:
一种是技术物理库,主要包含工艺信息,设计规则信息,金属通孔信息等。下例是对金属一层的定义,TYPE指明METAL1是可布线层,WIDTH定义的是METAL1的默认布线宽度,SPACING用于设定METAL1布线间距。DIRECTION HORIZONTAL指明METAL1是用于水平走线,当然这并不意味着它不能垂直走线,在一些布线资源较少的区域,还是可以选择垂直布线的。具体介绍,可以参考相关技术文档。 LAYER METAL1
TYPE ROUTING ; WIDTH 0.230 ; MAXWIDTH 9.9 ; AREA 0.202 ; SPACING 0.230 ;
SPACING 0.6 RANGE 10.0 100000.0 ; PITCH 0.560 ;
DIRECTION HORIZONTAL ;
EDGECAPACITANCE 9.1090e-05 ; END METAL1
另外一种就是单元物理库,定义了单元库中各单元的信息,文件又有两部分一种是SITE语句对布局(placement)最小单位的定义,另一部分是采用MACRO语句对单元属性及几何形状的描述,下例是对一个与门为例来看看lef是如何描述它的。MACRO是单元定义的关键字,每一个MACRO代表一个单元。CLASS core说明该单元是用于芯片的核心区,SIZE确定了单元的面积大小,比如5.04是代表该单元的高度,后面我们做单元供电route的时候,可以看到它们的宽度就是这个数值。再后面就是定义引脚A,B,Y,VDD,VSS等。 MACRO AND2X1 CLASS CORE ;
FOREIGN AND2X1 0.000 0.000 ; ORIGIN 0.000 0.000 ; LEQ AND2XL ;
SIZE 2.640 BY 5.040 ; SYMMETRY x y ; SITE tsm3site ; PIN Y
DIRECTION OUTPUT ; PORT
LAYER METAL1 ;
RECT 2.355 2.380 2.500 2.660 ; END END Y PIN B
DIRECTION INPUT ;
PORT
LAYER METAL1 ;
RECT 0.800 2.315 1.215 2.895 ; END END B PIN A
DIRECTION INPUT ; PORT
LAYER METAL1 ;
RECT 0.150 1.820 0.565 2.315 ; END END A PIN VSS
DIRECTION INOUT ; USE ground ;
SHAPE ABUTMENT ; PORT
LAYER METAL1 ;
RECT 1.790 -0.400 2.640 0.400 ; RECT 1.450 -0.400 1.790 0.575 ; RECT 0.000 -0.400 1.450 0.400 ; END END VSS PIN VDD
DIRECTION INOUT ; USE power ;
SHAPE ABUTMENT ; PORT
LAYER METAL1 ;
RECT 1.755 4.640 2.640 5.440 END END VDD OBS
LAYER METAL1 ;
RECT 1.835 1.935 1.885 2.355 ; END
END AND2X1
第三:时序库文件,typical.lib,也就是时序文件,定义了门的各种时序信息,某种意义来讲,这个和综合使用的db库是等价的。 2)布局布线过程:
第一步:打开encounter 把数据输入,另外在advanced栏的Power相应位置填上VDD,和VSS。如下图,设置完以后,记得把设置的配置文件做一个save以便于下次使用
第二步:打开以后,我们可以看到芯片区域,左边粉红色的就是标准单元,中间那个就是我们要设计的区域,64%是指cell面积的占有率,一般来说控制在70%左右,布线的时候不会引起拥塞。
另外我们需要对芯片进行稍微的更改,Floorplan->specify floorplan.,将core to IO那些项都