Cadence Allegro 16.2规则设置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Spacing规则(约束)

Rex

dlutarm@

2009-07-02 Allegro 16.0以后版本的约束规则设置较之前有很大改变,对于用惯了15.x的人

来说,很多不习惯新的约束管理器。和在对待女人的态度上,恰相反。80后说90后脑残,15.7说16.2脑残,Xp说Vista脑残。Vista确实很脑残。新事物取代旧事物是自然界发展的客观规律。

说明:

1本文只介绍了Spacing约束的设置,因为Physical规则通常来说都设置的非常简单。掌握了Spacing规则Physical规则对你来说一定是小Case。另外,Physical 规则的设置也写的话,一定显得都是在重复Spacing的设置;

2文中所有的规则(约束),如不特殊说明默认情况下均指Spacing规则(约束);3对于Electrical的约束,是另一种约束,本文不作讨论。

约束的设置方式:

1直接的:Net中写数值,

2 间接的:创建Constraint Set,然后Assign给Net;

这两种都很常用,后者管理方便。在Physical和Spacing设置中用后者比较好,但是在Electrical中,我看到很多很多的人会混合使用。

使用第二种约束设置方式的约束设置步骤:

1约束的对象

2约束的内容

3给对象分配内容

这3个步骤默默的引导着所有间接约束的设置。基本约束

预备

先理解:

Net class

2

Net class-class

Region

Region-class

Region-class-class

Bus

……

现在不理解,想跳过去。没关系,你早晚都要理解的。

最简单和稍微复杂一点的约束:

最简单的就是default的约束,稍微复杂一点的就是修改了一点默认的约束。

再复杂一些的约束:

你可能会想让不断变化的CLK(我们不考虑是不是差分)和其他的线离的远一些。

在Constraint Set中Create规则并设置规则的内容:

Creat & Set之后

3

给Net分配规则:

更高级的约束:

What Can U Think?

有了一根线的约束,贪婪的本性会使你你很快上升到两根线(通常是Diff)和更多线的约束。两根线(Diff)的约束是不敢称更高级约束的,顶多算一种特殊的约束。这里我们讨论更多线的约束。你会想到一组BUS。

接下来,你会Create一组Bus,并且很自然你会在Referenced Spacing CSet里给这组Bus加上约束。那么,我问你,这个Spacing究竟是什么呢?是BUS内部的Space吗?还是BUS和其他线的Space?恐怕你自己也说不清楚。你可能会说是所有的线的Space,包括内部和外部。你似乎觉得自己是对的。那么我再问你:如果BUS_A的Space为Spac_XMIL,BUS_B的Space为Spac_YMIL(X!=Y),BUS_A和BUS_B之间的Space会是多少呢?X?Y?应该都不是。(X+Y)/2?亏你想的出来。

其实你一开始就错了,问题不是这么Easy(当然也不复杂),否则怎么敢叫更高级的约束?

Create Net Class:

很多人不明白Net中Bus和Class的区别。

相同:都是一组线,

不同:一种是按照功能划分,一种按照规则划分。

有人会说Bus和Class也可以是一根线,我懒得理朝左右而不是前方,钻牛角尖的人。

这两种化划分是不是有点多此一举?NO,功能相同就规则相同吗?

Net Class是按照功能划分,所以这里我们需要先创建Net Class。

4

Net Class-Class

在左侧的Folder区域你可能早就注意到这个神秘的东西了。他将带给我们什么样的惊喜呢?毫无疑问它将成为化解我们之前疑问的有力工具。如何使用呢?Net Class-Class:

BUS和其他线间距:

5

BUS内部线间距:

BUS与BUS之间

6

Region 约束

没错,如你所想,这个约束就是15.X 的Area 约束。这是个很有意思,并且非常有用的约束。

创建Region :

7

Assign to Region:

Assign What to Region?

Region!

Assign Region to Region?

First Region is具体(即能看得到的)的Region,Second Region is抽象的Region~ 这是个很有意思的地方。Allegro里面有Assign different pair,Assign Refdes,这里却是Assign()to Region。这个命令放在Logic中是很合理的,但是Cadence 公司干脆一不做二不休把这个命令去掉,需要在绘制区域的时候,在control panel 中Assign。这时候Assign你就不用说括号中的内容了,因为Assign的肯定是你正在画的东西。Assign Area to Region也有点不妥当吧?

(本文所有操作除了这个绘制约束Region(即具体的Region)在AllegroPCB完成外,其他操作均在约束管理器中完成。)

shape->Rectangular矩形,Control Panel 的option的active class 选Constraint Region, subclass选择all.

assgin to region刚刚在规则管理中建立的区域规则。

8

相关文档
最新文档