IC数字后端知识角

spef分析

2023-02-05  本文已影响0人  飞奔的大虎

1.什么是SPEF

SPEF是Standard Parasitic Extraction Format的缩写,用于描述芯片在PR之后实际电路中的 R L C 的值。由于芯片的 current loops非常窄也比较短,所以一般不考虑芯片的电感,所以通常SPEF中包含的寄生参数为RC值。SPEF被后端StarRC工具抽取并用于之后的STA。

2.SPEF的模型

SPEF支持一下三种net模型

distribute net model       

reduced net model

lumpped capacitance model

例如,对于下图的连接线

三种模型分别抽象为

distribute net model每一段net都有自己独立的RC值

reduced net model  Load pin是一个简化的RC值,driven 拼端将RC模型简化为一个pie model

lumpped capacitance model  将所有net的cap简化为一个单一的cap值

3 SPEF文件的内容

SPEF文件的总体格式如下。下面分别介绍这几部分的含义。

header_definition

[ name_map ]

[ power_definition ]

[ external_definition ]

[ define_definition ]

internal_definition

3.1 header_definition

一个典型的head definition如下所示,内容 基本上看一下就明白这里不过多介绍

*SPEF "IEEE 1481-1998"

*DESIGN "ddrphy"

*DATE "Thu Oct 21 00:49:32 2004"

*VENDOR "SGP Design Automation"

*PROGRAM "Galaxy-RCXT"

*VERSION "V2000.06 "

*DESIGN_FLOW "PIN_CAP NONE" "NAME_SCOPE

LOCAL"

*DIVIDER /

*DELIMITER :

*BUS_DELIMITER [ ]

*T_UNIT 1.00000 NS

*C_UNIT 1.00000 FF

*R_UNIT 1.00000 OHM

*L_UNIT 1.00000 HENRY

// A comment starts with the two characters “//”.

// TCAD_GRD_FILE /cad/13lv/galaxy-rcxt/

t013s6ml_fsg.nxtgrd

// TCAD_TIME_STAMP Tue May 14 22:19:36 2002

3.2 name  map

如下所示为name map的示例。name map可以大大减小SPEF的大小

*NAME_MAP

*1 memclk

*2 memclk_2x

*3 reset_

*4 refresh

*5 resync

*6 int_d_out[63]

*7 int_d_out[62]

*8 int_d_out[61]

*9 int_d_out[60]

*10 int_d_out[59]

*11 int_d_out[58]

*12 int_d_out[57]

. . .

*364 mcdll_write_data/write19/d_out_2x_reg_19

*366 mcdll_write_data/write20/d_out_2x_reg_20

*368 mcdll_write_data/write21/d_out_2x_reg_21

. . .

*5423 mcdll_read_data/read21/capture_data[53]

. . .

*5426 mcdll_read_data/read21/capture_pos_0[21]

. . .

*11172 Tie_VSSQ_assign_buf_318_N_1

. . .

*14954 test_se_15_S0

*14955 wr_sdly_course_enc[0]_L0

*14956 wr_sdly_course_enc[0]_L0_1

*14957 wr_sdly_course_enc[0]_S0

3.3 power definition

该部分定义了power的相关内容

*POWER_NETS VDDQ

*GROUND_NETS VSSQ

3.4 external definition

定义了设计中的逻辑和物理的关系。例如,对于port的逻辑定义格式如下

*PORTS

port_name direction { conn_attribute }

port_name direction { conn_attribute }

. . .

其中port name是一个正整数,direction为I/O/B分别代表输入、输出和输入输出。连接属性为可选参数,有如下几种

• *C number number : 表示port

• *L par_value : 表示port的cap

• *S par_value par_value : 定义port waveform的形状(不太懂)

• *D cell_type :定义驱动port的cell的类型

port的物理定义格式如下

*PHYSICAL_PORTS

pport_name direction { conn_attribute }

pport_name direction { conn_attribute }

. . .

3.5 define definition

该部分描述了当前SPEF中例化的instance的reference name,这些instance的SPEF信息由另外的SPEF文件给出。其定义的格式如下。DEFINE 定义的是相关instance的hierarchy内容。例如下面的例子表示关于core/u1ddrphy和core/u2ddrphy的两个instance的SPEF对于design名为 ddrphy

*DEFINE core/u1ddrphy core/u2ddrphy “ddrphy”

*PDEFINE定义instance的物理信息。

*DEFINE instance_name { instance_name } entity_name

*PDEFINE physical_instance entity_name

3.6  internal definition

该部分定义了design内部net的RC信息。根据SPEF支持的RC网络模型,SPEF 包含两种基本的格式D_NET表示 distributed net模型;R_NET表示 reduced net模型。两种模型的内容类似下面以distributed net模型为例进行讲解。例如,对于下面的例子。

*D_NET *5426 0.899466

*CONN

*I *14212:D I *C 21.7150 79.2300

*I *14214:Q O *C 21.4950 76.6000 *D DFFQX1

*CAP

1 *5426:10278 *5290:8775 0.217446

2 *5426:10278 *16:3754 0.0105401

3 *5426:10278 *5266:9481 0.0278254

4 *5426:10278 *5116:9922 0.113918

5 *5426:10278 0.529736

*RES

1 *5426:10278 *14212:D 0.340000

2 *5426:10278 *5426:10142 0.916273

3 *5426:10142 *14214:Q 0.340000

*END

其中,5426是net的名字,可以从前面的name map找到对应的net;0.899466表示net的所以的cap值。

CONN表示driver和load的连接关系,其中

I 表示internal pin

*14212:D 表示名为14212的instance的D pin

O 表示输出 C表示对应的坐标 D表示driver pin

CAP部分描述了对应net node的cap值,单位见header definition

其中第一行描述了两个net之间的耦合电容

其中第5行省略了第二个net表示是对地电容

RES部分定义了net之间的电阻,单位见header definition,含义和CAP部分类似。这里不再啰嗦了。

*RES

1 *5426:10278 *14212:D 0.340000

2 *5426:10278 *5426:10142 0.916273

3 *5426:10142 *14214:Q 0.340000

所以对于上面这样一个D_NET的描述信息可以得到如下的RC网络

以上就是SPEF内容的介绍,虽然在实际的工作过程中,我们很少会直接去人工分析SPEF进行相关的计算。但是对于工程人员还是要知其然的。

原文链接:https://blog.csdn.net/zyn1347806/article/details/111804012

上一篇下一篇

猜你喜欢

热点阅读