BLOCK PD需要提交的数据

众所周知,芯片设计是一个大型团体项目。每个人在里面扮演着不同角色,只有相互合作,才能正确及时地完成最后的signoff。(具体的分工可以参考以下文章)

而作为团队中人数比例最多的block PD工程师,是最能体现合作的重要性的一个角色。那今天给大家介绍一下,block PD工程师日常工作中需要完成的一项最基本的任务:如何正确地提交不同的数据? 

参照前面介绍角色分配的文章,大家可以想象一下,block owner要分别给这些人提交哪些数据呢?

TOP PD

首先,我们来想想要给top pd工程师应该提供什么文件呢?

LEF

这里的lef是指block abstract,可以理解为block的壳。对top pd工程师来说,每个切割下去的block里面的东西他是看不见的,相当于一个hard macro。因此他需要知道这个block的形状大小,还有具体io pin的位置。这些物理信息都存在block的lef abstract文件中,需要我们提取出来告诉top pd工程师。还有,需要额外注意的一点,需要包含block PG pin的信息,这样顶层工程师才能正确drop power via,并且检查power stripe是否对齐。

如何提取?

Innovus

innovus 5> write_lef_abstract block.lef -5.8 -stripePin -PGPinLayers {1,2,3,4,5,6}  -specifyTopLayer 6

ICC2

ICC2更加方便,只要提供block的ndm db就行。

icc2_shell > save_lib block.ndm

ETM

我们知道了block壳上具体的物理信息,还需要知道它们的delay信息。就像memory的lef和lib文件一样。所以,我们需要提取block的lib文件给top pd计算端口上的延时。我们把这个lib文件叫做ETM model。全称extraction timing model。具体信息可以参考以下链接

ETM可以在Place, CTS, Route以后分别提取,当然越往后的阶段,ETM的精确性越高。我们可以视项目进度而提取相应的ETM model。

如何提取?

Innovus 

innovus 5> do_extract_model ${view}.lib -view $view

PT

ICC2同样只需提供block的ndm db就行,ICC无法产生ETM,需要在PT中产生,通常产生ss cmax, rcmax几个重要的corner就行。

pt_shell> extract_model -library_cell -output model2 -format {lib}

clock tree 平均长度

block PD还要提供给top pd的一个非常重要的信息是block里面每条clock tree的平均latency。因为top pd在生长clock tree时,看不到block里面的clock tree长度。这样生长的clock tree是虚假的balance。因此,block PD工程师需要计算出每个clock的平均latency(更精准的说,应该是大部分clock tree的长度落在哪个范围),top pd会设上对应的insertion delay来做balance。

如何提取?

Innovus

innovus 5>report_ccopt_skew_groups –summary -skew_groups -delay_corners –late

ICC2

icc2_shell> report_clock_timing -type latency

TOP STA

Timing signoff是我们最关心的一项指标。那我们block pd需要提供什么信息给top的STA工程师呢?

Netlist

首先最基本一个文件是网表,是指完成block level pr的网表。

如何提取?

Innovus

innovus 5> saveNetlist route.v.gz

ICC2

icc2_shell> write_verilog -exclude {all_physical_cells pg_objects} route.v

DEF

其次,我们需要提供block的物理设计信息文件——def文件。它有很多用途,比如说用作RC寄生参数提取,timing signoff eco,功耗分析等等

如何提取?

Innovus

innovus 5> defOut block.def.gz -floorplan -netlist -routing –withShield

ICC2

icc2_shell> write_def -compress gzip  block.def

SPEF

最后,我们需要得到设计中金属连线的delay信息,因此需要提供block的RC寄生参数信息文件,也就是我们经常使用的spef文件。常用的RC extraction工具有QRC和Star RC,大家可以根据工具的user guide中的使用方法介绍来提取,很简单。

如何提取?

QRC

QRC需要准备block中用到的lef,def文件,QRC的tech 文件,以及layer mapping file

Star RC

Star RC可以直接指定block的milkyway或者ndm db,当然也支持了lef/def格式的提取,同样的需要准备Star RC的tech文件(.nxtgrd)以及layer mapping file

fill.gds

另外,为了让timing更加真实,我们在提取RC信息时,需要提供block加完dummy fill的gds文件,尤其是一些density较低的设计,如何提取在后文中的PV部分有简单介绍。

TOP PV

PV(Physical Verification)分为很多内容。最主要的两项是DRC和LVS。DRC signoff是与timing signoff齐头并行的工作。DRC的分析通常可分为两个阶段。一般在初期的FEOL drc checking(Front end of layer,只检查base layer)以及设计后期的full metal drc check。在这两个阶段,block owner需要提供什么文件信息呢?

GDS

这两个阶段我们都需要提供GDS文件,只是这两个阶段需要的GDS文件有所区别。

FEOL:初期的FEOL检查能尽早帮助设计者发现floorplan中base layer的violation。我们只需要merge design以后的gds文件。PR工具只能导出metal层的gds,所以我们还需要将standard cell 以及各种memory和IP的base layer层的gds全部merge起来。这个过程可以在Calibre里面完成。下面介绍一些简单过程,具体的需要设计者写脚本完成。

如何提取?

1. 产生metal gds

Innovus

innovus 5>streamOut block.gds.gz –mapFile layer_map.file

ICC2

icc2_shell> write_gds block.gds.gz –library mylib –layer_maplayer_map.file

2. Merge Design

Calibre

set L [layout create block.gds.gz -dt_expand -preservePaths  -preserveProperties ]

$L create layer XX.XX 加text

$L gdsout block.modified.gds.gz block

layout filemerge \

-in block.modified.gds.gz \

-in standard_cell.gds

-in memory.gds \

-in ip.gds \

-topcell block \

-out  block.merged.gds.gz

Full Metal Layer: 完整的drc signoff阶段。需要加好dummy metal fill的完整GDS文件。为了保证chip的平坦度要求,我们在最后layout时需要填充metal dummy来达到density的要求。这个通常foundry都会提供相应的加dummy的runset。这边就不介绍了。

TOP LVS

LVS是physical verification的另外一大内容。那么, block owner需要提供什么文件信息给top PV呢?

cdl

block owner需要将PR以后的verilog网表转成spice或者cdl格式的网表,通常在Calibre的v2lvs工具转换,需要将standard cell和IP的cdl文件都include进来。

如何提取?

v2lvs -v block.v -o block.cdl-s ram.cdl –s std.cdl -s0 VSS -s1 VDD


Power

full chip的功耗分析也是signoff的一大重要指标,主要是IR drop和EM的分析。block owner需要提供PR以后的网表.v(包含PG信息),RC寄生参数文件,def文件。这三个文件产生方式与上文一样,不在过多介绍了。

Front-End

前端设计包括DFT和综合都是和后端PD密切相关的,不管是前期的综合,还是后期的formal验证和仿真,都需要block PD提供数据。不过基本以网表为主,唯一可能需要的physical信息的文件是def文件,这里的def文件是指做完floorplan以后的def文件,主要用途是给综合人员做physical aware的synthesis。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容