1.

instGroup

Instance group。中文名例化单元组。Instance group可以用来group一些instances, 在做placement时,如果你希望一些instance可以尽量摆放在一起,可以创建一个instance group,并且把这些instance都添加到这个group中。如下图所示:

instance group本身并不会改变netlist. 但是我们可以通过runRcNetlistRestruct来改变netlist的层次结构本身,使它成为一个module。

使用方法:

createInstGroup

addInstToInstGroup

createInstGroup group1 -fence {300 300 600 600}

addInstToInstGroup group1 instA

2.

constraint

并不是timing里面的sdc文件,而是Floorplan中的module约束作用。

主要分为四种:按照约束由强到弱,可以分为是Fence,Region,Guide,SoftGuide

Fence(限制约束):强约束,“不可进不可出”的约束,属于该模块的单元只能放置在该区域内,且不允许放置其他单元

Region(区域约束):“可进不可出”的约束,属于该模块的单元只能放置在指定区域内,该区域内还可以放置其他单元

Guide(向导约束):为模块指定向导范围,“可进可出”的约束,属于该模块的单元可以放置在该向导范围内,也可以放置在该向导范围之外,不属于该模块的单元也可以放置在该向导范围内。

SoftGuide(软向导约束):上面三种约束大家一定很熟悉吧,其实Encounter还隐藏了一种约束。softGuide. 它和Guide约束较相似,区别只是在于没有具体的location. 在softGuide中的std cell. place时会尽量摆近一点

使用方法:

createFence, createRegion, createGuide, createSoftGuide

3.G cell

G cell,全称global routing cells。 同样的它也是我们定义的一种grid, G cell grid对routing过程中起着相当重要的作用。

我们知道绕线过程可分为global route(全局绕线)和detail route(详细绕线)。globalroute以gcell cell作为绕线参考网格,工具在绕线时会试图寻找gcell中的最短path, gcell还有很大的一个用处是产生congestion map(拥堵图表)。

我们可以在DEF或者floorplan文件中看到GCell Grid的定义.

[GCELLGRID

{X start DO numColumns+1 STEP space}...

{Y startDO numRows+1 STEP space ;} ...]

 X Y 分别代表水平和垂直方向

start 代表第一根grid的位置

DO numColumns+1,DO numRows+1 代表grid横竖的数量

STEP space 代表grid之间的间距

产生的grid效果如下图所示:

那么gcell是如何对guide global routing的呢?通常一个gcell中会占有10几个track(根据design的不同有所变化),global routing的目标是使得每个gcell的容量占有率在85%左右。

当gell中的track需求量高于容量时,该处地方的route就会产生congestion(拥塞)的问题。通过global route的report我们可以清楚地看见每层layer上的congestion描述:

也可以产生 congestion map,在GUI上更形象地看到设计中出现拥塞的地方。颜色的定义方式如下图所示:

产生congestiong map以后,在图形界面上可以看到:

3.

busGuide

constraint,它可以guide bus net的走线。如图所示:粉红色部分形成bus guide后,在这个bus guide中,Inst A和Inst B的bus net必须按照粉红色的走线方式走线。

Bus Guide可以有效地降低design中routing resource. 如下图所示,没有bus guide时,两个hard macro之间的bus net走线非常乱,极大地浪费了走线空间;相反,当两者之间添加bus guide以后,相关的bus net都在对应的channel里走线,合理地利用了空间。

使用方法

 

createBusGuide

BusGuide与net group相关联。因此,创建Bus Guide前,我们首先需要创建对应的net group

<CMD> createNetGroup test-spacing 2

<CMD> addNetToNetGroup test –net {mc[0] mc[1] mc[2] mc[3]}

<CMD> createBusGuide -netGroup test -layer {1:4} -rect {464 1240 528 1260}

这里需要指出的是,所画的Bus Guide必须要把两端的instance bus pin给完全覆盖住,这样,bus guide才会有效果

4.

Net Group

这也是一种net或者pin的约束,经常与bus guide或者pin guide关联使用,它可以将几条net,或者bus net加到一个group中,然后与bus guide或者pin guide关联。这样,做pin assign或者 bus routing时,net group中的net具有较高的权重,会尽可能地走在一起。

使用方法

createNetGroup  

addNetToNetGroup  

createNetGroup bundle1

addNetToNetGroup bundle1 -net cpua[2:10]

创建net group bundle1,将bus net cpua[2:10]加到net group bundle1中

6.Bump

这是用于FlipChip技术的一种object,可以理解为“焊球”。用于倒置过来扣在封装板上的焊球。如下图所示

Bump通过RDL routing(Redistributed layer,通常是铝层)连接着IO pad cell。

通常bump是呈正六边形的,但这不是必须的,我们也可以定义rectangle的形状。我们在LEF中定义bump属性,记住的是它的class是coverbump

MACRO BUMPCELL

CLASS COVERBUMP ;

ORIGIN 0 0 ;

SIZE60.0 BY 60.0 ;

SYMMETRY X Y ;

PIN PAD

DIRECTION INPUT ;

USE SIGNAL ;

PORT

LAYER M9 ;

POLYGON 17.25 0.0 42.75 0.0 60.0 17.25 60.0 42.75 42.75 60.0 17.25 60.0 0.0 42.75 0.017.25 ;

END

END PAD

OBS

LAYER via89 ;

POLYGON 17.25 0.0 42.75 0.0 60.0 17.2560.0 42.75 42.75 60.0 17.25 60.0 0.0 42.75 0.0 17.25;

END

END BUMPCELL

使用方法

create_bump_array

create_bump_array -lib_cell BUMP -delta {140 140} \

-bbox {{410 450} {1175 3278}} -name left

create_bump_array -lib_cell BUMP -delta {140 140} \

-bbox {{2620 450} {3325 3278}} -name right

create_bump_array -lib_cell BUMP -delta {140 140} \

-bbox {{1100 450} {2650 1125}} -name bottom

create_bump_array -lib_cell BUMP -delta {140 140} \

-bbox {{1100 2555} {2650 3250}} -name top

create_bump_array -bbox {{1100 1150} {2650 2550}} \

-pattern staggered_1 -lib_cell {BUMP} -delta {140 140} -name pg_bump

instGroup/constraint/Gcell/busguide/netgroup/Bump的更多相关文章

  1. 异常:java.lang.LinkageError: loader constraint violation: when resolving interface method

    异常:java.lang.LinkageError: loader constraint violation: when resolving interface method "javax. ...

  2. Constraint6:更新外键约束(Foreign Key Constraint)的引用列

    在SQL Server中,表之间存在引用关系,引用关系通过创建外键约束(Foreign Key Constraint)实现.如果一个Table中的column被其他Table引用,那么该表是参考表,或 ...

  3. Constraint2:constraint

    一,Constraint 是表定义的一部分,用于实现数据完整性. Data Integrity 由三种类型的constraint实现: Entity Integrity:数据是唯一的.约束: prim ...

  4. MySQL主从复制中断,报“Error on master: message (format)='Cannot delete or update a parent row: a foreign key constraint fails' error code=1217” 错误

    前几天,发现从库挂了,具体报错信息如下: 分析思路 1. 因为我采用的是选择性复制,只针对以下几个库进行复制: card,upay,deal,monitor,collect.所以,不太可能出现对于sa ...

  5. SQL SERVER 2005删除维护作业报错:The DELETE statement conflicted with the REFERENCE constraint "FK_subplan_job_id"

    案例环境: 数据库版本: Microsoft SQL Server 2005 (Microsoft SQL Server 2005 - 9.00.5000.00 (X64) ) 案例介绍: 对一个数据 ...

  6. ORA-02292: integrity constraint (xxxx) violated - child record found

    在更新表的主键字段或DELETE数据时,如果遇到ORA-02292: integrity constraint (xxxx) violated - child record found 这个是因为主外 ...

  7. Oracle约束(Constraint)详解

    概述 约束是数据库用来确保数据满足业务规则的手段,不过在真正的企业开发中,除了主键约束这类具有强需求的约束,像外键约束,检查约束更多时候仅仅出现在数据库设计阶段,真实环境却很少应用,更多是放到程序逻辑 ...

  8. ZK textbox Constraint验证

    test.zul: <?page title="" contentType="text/html;charset=UTF-8"?> <zk x ...

  9. 修复Magento SQLSTATE[23000]: Integrity constraint

    magneto在意外情况下报错Magento SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry,出现这个问题最 ...

随机推荐

  1. BZOJ3473&&BZOJ3277串

    BZOJ3473&&BZOJ3277串 题面 自己找去 HINT 对于所有串建立一个广义后缀自动机,对于每一个节点开一个set表示这个节点接受的子串在哪些串里出现过,然后在parent ...

  2. C#接口与抽象类学习笔记

    本笔记摘抄自:https://www.cnblogs.com/solan/archive/2012/08/01/CSharp06.html,记录一下学习过程以备后续查用. 摘要: 抽象类:是一种特殊的 ...

  3. vue常用插件之图片预览

    v-viewer(1.4.2) 非常实用的图片预览插件,支持旋转.缩放.翻转等操作 一.npm安装 npm i v-viewer -S 二.全局引入(main.js中) import 'viewerj ...

  4. SKlearn | 学习总结

    1 简介 scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包.它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法 ...

  5. 熵权法(the Entropy Weight Method)以及MATLAB实现

    按照信息论基本原理的解释,信息是系统有序程度的一个度量,熵是系统无序程度的一个度量:如果指标的信息熵越小,该指标提供的信息量越小,在综合评价中所起作用理当越小,权重就应该越低.因此,可利用信息熵这个工 ...

  6. webservice后台起调试

    https://blog.csdn.net/smile00_0/article/details/72763114

  7. Virtual DOM(八)

    Virtual DOM 这个概念相信大部分人都不会陌生,它产生的前提是浏览器中的 DOM 是很“昂贵"的,为了更直观的感受,我们可以简单的把一个简单的 div 元素的属性都打印出来,如图所示 ...

  8. 148.CSRF攻击原理分析、防御、装饰器、中间件、IFrame以及js实现csrf攻击

    CSRF攻击概述: CSRF(Cross Site Request Forgery 跨站域请求伪造)是一种网站攻击的方式,它在2007年曾被列为互联网20大安全隐患之一.其他的安全隐患,比如SQL脚本 ...

  9. C++-POJ2975-Nim

    题目把Nim游戏为什么可以取异或和讲解得十分清楚,建议多读几次,理解一下 再一个,可以把每次异或视为一次取数,因此(k[i]^sg)<k[i]即为一种可行操作 /* Nim is a 2-pla ...

  10. BUUCTF [SUCTF 2019]EasySQL

    首先打开网址 发现有三种显示方法 还有一个没有输出 可以堆叠注入 1;show databases; 1;show tables; 可以看到有一个Flag表 测试发现from flag都被过滤不能直接 ...