STA分析(五)

互联线的寄生参数

一般一个cell或者block的连接pin就叫做一个net。在物理实现的时候,一条net可能会穿过几层metal,因为每个metal层的电阻,电容值都不一样。所以,在分析

net的寄生参数(parasitics)时,一般把一个net分为多段,每段在一个metal层。这里的一段也叫做,interconnect trace。

电阻resistance,主要来源于不同metal层和过孔via之间的trace。

电容capacitance,也来源于trace,可以分为grounded capacitance, coupling capacitance。

电感inductance,来源于电流回路(current loop),因为设计中的电流回路一般很小而且短,所以一般很少考虑电感影响。

综述,整个interconnect parasitics 就是RC的分布,一般用RC tree来建模。在RC tree的节点用T-model或者Pi-model来建模。

T-model:将电阻R分为两部分,整体结构是R/2, C, R/2。

Pi-model:将电容C分为两部分,整体结构是C/2, R, C/2。

Wireload Models:在floorplanning或layout之前,通过线负载模型来估算RC,通过fanout的个数来估算interconnect的长度。

而且可以根据area的不同,选择不同的wireload model。如wld_light,  wld_conservative, wld_aggressive。

根据lib中resistance per unit of interconnect和cap per unit interconnect,fanout和length的关系,来预估RC的值。

set_wire_load_mode  "wlm_cons" -library "lib_stdcell"

set_wire_load_mode "top/enclosed/segmented"

这三种模式是来规定,hierarchy design中的wireload mode的覆盖关系。top便是顶层覆盖底下所有层。segmented便是每个block都按自己

规定的wireload mode来,不存在覆盖关系。enclosed表示,只有某个block完全包含一个net时,才使用这个block的wireload mode。

default_wire_load :"wld_light"

wire_load_selection (WireAreaSelGrp) {

wire_load_from_area (0,5000,wld_light);

wire_load_from_area (5000,10000,wld_cons);}

RC Tree Topology:在预估出RC的总值后,还必须有RC的分布情况,在pre_layout,有三种Tree来建模同一length。

best-case tree:RC的值都分布在某一节点上,这样路径上便没有其他RC,其他的节点寄生参数很好。

balanced tree:RC等效分布在每个节点路径在R/N, C/N。这样每个节点上的RC参数都一样。

worst-case tree:RC分布在公共路径上,这样每个节点上的RC都是最大的。

至此implement之前的RC参数预估便好了。在implement之后,可以利用工具提取出来其中的RC参数。这里有三种文件:

Detail Standard Parasitics Format  (DSPF文件)

Reduced Standard Parasitics Format  (RSPF文件)

Standard Parasitics  Extraction Format   (SPEF文件,还有一种类似的SBEF的文件,用二进制表示,便于工具读取。因为精简性的关系,这种文件应用较多,

且容易饱含coupling capacitance信息)

在Critical Net减少Parasitics的方法:1)减少电阻。使用更宽的metal,或将trace布线到upper metal层。这样都可以减少RC 。

2)增加trace之间的space,这样可以减少coupling capacitance。

3)for correlated nets,例如DDR的数据总线,net布线最好在同一metal。

时间: 2024-08-01 13:24:39

STA分析(五)的相关文章

传奇源码分析-客户端(游戏逻辑处理源分析五 服务器端响应)

器执行流程:(玩家走动) GameSrv服务器ProcessUserHuman线程处理玩家消息:遍历UserInfoList列表,依次调用每个UserInfo的Operate来处理命令队列中的所有操作; pUserInfo->Operate()调用m_pxPlayerObject->Operate()调用.判断玩家if (!m_fIsDead),如果已死,则发送_MSG_FAIL消息.我们在前面看到过,该消息是被优先处理的.否则则调用WalkTo,并发送_MSG_GOOD消息给客户端.Walk

baksmali和smali源码分析(五)

官方文档对于dex中的class数据结构表示如下: class_idx uint index into the type_ids list for this class. This must be a class type, and not an array or primitive type. access_flags uint access flags for the class (public, final, etc.). See "access_flags Definitions&quo

STA分析(七)

STA分析前的环境设置,包括:setup clocks,specifying IO characteristics 1)定义一个master clock:create_clock -name .. -period .. -waveform .. [get_ports .. ] 推荐clock的name与pin的名字相同,period的单位一般是ns,waveform的第一个参数表示上升沿的发生时间.默认是{0, period/2}. 关于clock_transition的定义,如果clock定义

STA分析(六)

在深亚微米技术(deep submicron)中,关于crosstalk和noise对design的signal integrate的影响越来越大.主要表现在glitch和对delay的影响. 1)metal layers越来越多:2)metal wire变得越来越薄而细:3)单位晶圆上的cells越来越多:4)供应电压越来越小,留给noise的margin越来越少. 2)时钟速率越来越快. 在分析crosstalk时,其中受影响的signal叫做victim.影响别的signal的叫做aggr

Nouveau源码分析(五):NVIDIA设备初始化之nouveau_drm_load (2)

Nouveau源码分析(五) 接着上一篇来,先把nouveau_drm_load再贴出一遍来吧: // /drivers/gpu/drm/nouveau/nouveau_drm.c 364 static int 365 nouveau_drm_load(struct drm_device *dev, unsigned long flags) 366 { 367 struct pci_dev *pdev = dev->pdev; 368 struct nouveau_drm *drm; 369 i

[Android] Volley源码分析(五)答疑

Volley源码分析系列出了有一段日子了,有不少看官私底下给我留言,同时抛出了一些问题.对于一些比较简单的问题我们跳过去,这两天接到网友是@smali提出的问题.不得不赞一下这位看官看源码时候的细腻程度,我引出这个问题供大家一块思考一下. Q:在写入文件头数据的时候为何不直接写入Int而是通过移位的方式来完成? 我们来看一下对应的源码: writeInt(os, CACHE_MAGIC); static void writeInt(OutputStream os, int n) throws I

Uboot启动流程分析(五)

1.前言 在前面的文章Uboot启动流程分析(五),链接如下: https://www.cnblogs.com/Cqlismy/p/12147411.html 已经对board_init_f() 函数作出了简单的分析,该函数对一些早期的外设进行了初始化,例如调试串口,并填充了gd_t结构体中的成员变量,最主要的是对整个DRAM的内存进行了分配,以便uboot的重定位,接下来,先回顾一下_main函数的大概流程,如下: _main | board_init_f_alloc_reserve-->re

Vue系列---理解Vue.nextTick使用及源码分析(五)

_ 阅读目录 一. 什么是Vue.nextTick()? 二. Vue.nextTick()方法的应用场景有哪些? 2.1 更改数据后,进行节点DOM操作. 2.2 在created生命周期中进行DOM操作. 三. Vue.nextTick的调用方式如下: 四:vm.$nextTick 与 setTimeout 的区别是什么? 五:理解 MutationObserver 六:nextTick源码分析 回到顶部 一. 什么是Vue.nextTick()? 官方文档解释为:在下次DOM更新循环结束之

Duilib源码分析(五)UI布局—Layout

接下来,继续分析duilib之UI布局Layout,目前提供的布局有:VerticalLayout.HorizontalLayout.TileLayout.TabLayout.ChildLayout分别为垂直布局.水平布局.平铺布局.TAB布局.子窗体布局: 一般项目中用得比较多的是垂直布局.水平布局,我们将分别分析各布局: VerticalLayout:垂直布局,继承于CContainerUI容器UI类:而CContainerUI也继承于CControlUI,故VerticalLayout实际