找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 850|回复: 20
打印 上一主题 下一主题

cadence模块复用思路和注意事项

[复制链接]

15

主题

118

帖子

1552

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1552
跳转到指定楼层
1#
发表于 2017-3-15 19:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
附件是结合网上的资料总结的模块复用相关的笔记,以免以后忘记。希望也能对想了解相关的朋友有所帮助。
% r9 Q7 l/ ?; a) q( p" i! o- b% p. Y. C
/ K! T- C7 o2 W2 o" o; X
时间:2017年3月15日  
7 h+ Y) i6 C+ g
思路:

5 _. A+ p' B; x3 z0 ]6 ~5 c
模块的建立:首先建立模块的原理图(为单独的一个设计),导出网表创建BRD文件,在BRD文件中创建MDD模块

5 }8 c$ c7 T( ~
模块的使用:在新设计(或者已有的设计)中放置层次框图BLOCK(将路径指定为模块的DSN文件),随后Annotate,生成网表并在Module instances中放置模块mdd

3 C- E  t9 T: [( B( h2 [4 s* {5 [
3 [: I4 \. \! {( e" Q' Z
重要说明:

" o7 J  i# O) ^; _5 }
1、在模块建立过程中,在导出网表前需进行生产reuse module操作(必须要做),参考下图

, s3 V. t; ~/ ~
file:///E:/Bak/YNote/kepo013@qq.com/b2a9271c70cc47a59a61198250096d5e/clipboard.png* i- S+ M% O; _: V. c2 }. K

, h& W* d5 p. w+ e2 |
& v, F1 L; k' `; n% G
做完后器件会生成黄色的occurence属性,如下图

) n$ I* d6 j1 Y4 p  D1 K7 N9 @
file:///E:/Bak/YNote/kepo013@qq.com/6d24f2f80967416a944ed0fa3e9ddd0f/clipboard.png
+ p4 u9 G! \/ Z  N& ~
如果不进行此操作而直接导出网表到brd中并生成mdd,会引起之后使用模块时位号对不上的问题。

. e* d0 G! {( n! `% ~* j( v- O# O3 `' p$ O6 Q) A0 O1 M) K# O
2、生成的mdd的名字有要求,一定是要dsn name_root sch name,否则在放置模块时会提示找不到模块。

1 J5 ]9 D( S3 {" c& z, K6 u
比如,下图中的设计对应的模块名应该是sdram_module.mdd

2 Y$ [4 I+ M2 V# [- {
file:///E:/Bak/YNote/kepo013@qq.com/fb35f124a4834a33838b8c1fa055fbf7/clipboard.png
3 N& [% ~, Y$ ]
) G0 D- i: h) A( l
3、存放模块的路径需包含在allegro的modulepath中,而模块的DSN文件和BRD文件位置没有要求(dsn文件的路径会在使用模块时放置block中指定)
$ [$ I8 [. g. e

$ E8 c' _# x% O& z7 o% k6 I
4、BLOCK(模块设计里)中不要使用全局的NET,最好通过PORT引出,在BLOCK外和全局NET相连。
+ Q: G- _7 o2 a, [/ Y4 Y
file:///E:/Bak/YNote/kepo013@qq.com/640928a93ab74a63a34741ba2c99b504/clipboard.png

. y+ _7 c9 y. s  n
file:///E:/Bak/YNote/kepo013@qq.com/e10c7098560f40cb827a5407a768a3e9/clipboard.png

  Y' F' s, z# w. `7 X4 M" j# S4 O7 a# S
5、在使用模块的设计中,生产网标前的Annotate操作选项如下图,不需要勾选Generate Reuse module,和上面创建模块中的设置是相配对的。

( Q8 M$ y: u( w% Q3 A- G) k4 l9 t
file:///E:/Bak/YNote/kepo013@qq.com/eb20a047ad1d45488d2365b572cf1625/clipboard.png
- l3 T  ?& ]# X2 T8 }$ x% u& W
6、关于为什么Block能够和mdd能够对应上的原因。不管是在创建模块的设计中还是在使用模块的设计中,在PCB Editor Reuse中进行Annotate后都会给器件添加一个occurence(黄色部分),是器件的在本设计中有效的实例属性(应该类似于C++中的类和对象),在一个旧的设计中添加模块block后,其block内的位号极大概率会和旧设计有冲突,
在PCB Editor Reuse中进行Annotate后,会产生一个occurence位号,而Instance位号还和创建模块的设计是一样的,说明block和mdd之间的识别是通过instance属性来link的,这样模块不管是用在新设计、旧设计或者是使用多少个,都能识别并正确放置模块,因为instance属性没有变。(网上也有说是根据器件的Value和NET来识别的,不是很认同)

7 X; S' g( A4 E) {; x* X

) N  I0 q+ {+ w& P
" F9 c& M1 D5 a% z( {
从创建模块的设计中进入查看
9 k% [3 B) m4 n
file:///E:/Bak/YNote/kepo013@qq.com/88fd6babf0d044ef8bb960766a51b832/clipboard.png
0 W$ |  v- n$ R
从使用模块的BLOCK中进入查看

8 J; B( s( {: u0 t  n$ X& o0 e
5 O2 _9 O9 p# \8 R( m0 m; S
file:///E:/Bak/YNote/kepo013@qq.com/972862b0735b4d1eb4483e938680b8c1/clipboard.png
% d+ `3 `, N. ^* o7 |) e; J

6 o& c5 B* f/ A, U' s

9 ?, b3 Y$ s+ K0 A( S/ w

! A' C" [8 A! ~5 m$ X9 Y: r8 j+ ^3 N7 Q

* `, w- r: o+ H! q+ D, n7 W) Q

4 S2 H, h! {2 j1 a% B! }. Z2 P
放置OK示意图(和其他设计的连接使用坐标定位)。

* t  F( k& a0 ^
file:///E:/Bak/YNote/kepo013@qq.com/97b98b6d94034e96a9b878c43389db01/clipboard.png

/ \# Y# H$ E# }( x
file:///E:/Bak/YNote/kepo013@qq.com/d28eaec3074b4dd5958c5613e6ed3deb/clipboard.png
& m  y) c/ B; k  u

3 d) @; |* P6 E& `& h" f' R2 J

cadence模块复用思路和注意事项-by kepo.pdf

117.63 KB, 下载次数: 79, 下载积分: 威望 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

47

主题

1565

帖子

6095

积分

版务助理

Rank: 6Rank: 6

积分
6095
推荐
发表于 2017-3-17 11:55 | 只看该作者
本帖最后由 superlish 于 2017-3-17 11:56 编辑
# t' t5 r% C6 x% p; x
kepo013 发表于 2017-3-16 21:42
/ b$ [1 A! @5 z/ G; u8 U你说的并没有问题,但是比如你直接copy了一个电源模块(里面有电源IC位号U1),新模块的电源IC会丢失位号 ...

% ]" L8 P/ Z3 x: N. I1、楼主的做法比较严谨,所有都一一对应,封装也一样,[size=14.2857151031494px]原理图也是调用的模块,应该是成熟方案了,大公司所为,
+ r4 x. v% D- b2、sub drawing  可以导很多东西,甚至整个板导进来都行
* o' i' E7 l2 P3、ALLEGRO有个属性,就是原来没属性的线碰到某个网络后会自动赋予给网络(有时候没有是因为没到某个点,例如焊盘中心,偏一点都会报错没连接,个人觉得这是ALLEGRO比较严谨的地方,不像某些软件碰上就行)# U* i6 W/ v7 `# H1 H/ L# l
4、基于第三点,所以COPY后不需要像楼主所说的用到logic edit手动改位号,手动改是不严谨的做法,应该要和原理图一一对应。这时候可以用SWAP器件,就是模块COPY后替换带*的器件,然后刷新一下即可,比较灵活0 Y& R* O" O; @
5、同样基于第三点,导DXF也是可行的。把DXF需要的导进去到  class   ETCH  就是线或铜皮了,在拉个网络接上就可以了。DXF并不是仅仅导到LINE层去照着描,看你怎么用(sub drawing 需要设置叠层对应,而DXF不需要,在你导的时候设置导到那个走线层去即可
2 K9 g% V3 V6 J8 J6 z) Q; ]6、条条道路通罗马,如果是某个公司的产品直接调用[size=14.2857151031494px]Module[size=14.2857151031494px] 是很快,而实际应用中有时候重做比复用[size=14.2857151031494px]Module [size=14.2857151031494px] 还来的快,一般的公司应该不会有人专门弄这个的,在一些器件选型上,假如你的[size=14.2857151031494px]Module[size=14.2857151031494px] 用的是0402,而实际老板要求你要用0603呢?即使原理图一样,LAYOUT也是不一样了的,实际中需要灵活应用
% N$ j* U. F9 M; I[size=14.2857151031494px]7、个人觉得,”复用并不应该仅仅理解为完全一样”,应该用一种思维方式去看待复用,而不仅仅是一种行为方式。
8 j6 z1 u3 f* i4 y1 {* m) S$ z' _[size=14.2857151031494px]例如小到一些电源模块,芯片一样,输入一样,只是输出不一样,只要把一个模块做好后,另外的复用COPY一下,修改不同点即可。大到一个DSP小系统芯片,如果有现成的差不多的BRD参考板,虽然有些网络命名不一样,原理图有些功能模块不一样,器件有些封装不一样,但是我们可以评估一下有用的东西,把DDR,外界网络[size=14.2857151031494px]FANOUT,芯片[size=14.2857151031494px]电源的电容等COPY过来,剩下的有用就留,没用就删,在看情况优化处理一下,做好主芯片部分,往往一个新板就可以当做一个改版来做了。
* t: o% y8 |/ O& b/ q5 d0 \

15

主题

118

帖子

1552

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1552
推荐
 楼主| 发表于 2017-3-16 21:31 | 只看该作者
蓝色的天口 发表于 2017-3-16 11:09
. J8 F$ Q5 [: V' [( i楼主能说明下,什么情况下我们会用到这种复用吗?  几个问题:1.你所说的复用是指,两个项目在有使用到相同 ...
/ b* X6 w  u0 r! K  h
: V) k1 Q8 \5 l% x: h
当你想更方便、系统地管理模块时。因为这种复用的方式是将原理图和layout对应起来了,用习惯后会发现真的非常方便且不易出错,而且这种模块不是说创建好后就无法修改了,你在新设计中如果做了更好的优化,可以创建为另一个新的模块,多了一个后续的选择。$ r) |9 I4 x" d# G: r5 w
其他的模块复用形式都是pcb层次的,没有和原理图形成对应,没有对错,看个人喜好而已。7 y; v* W4 @# V( W* Q% K2 W% k
模块复用都是适用于多个相同的设计,我上面的描述中是通过创建一个单独的设计来生产模块的,在实际中是可以从已有的设计进行创建新模块,然后将该模块引入到新设计中是可以实现器件、线路和网络的对应的。- }8 N1 n/ R3 Q2 S4 l1 c4 U
实际情况更多的是在不断地引用模块中改进模块的设计,同样可以将改进后的设计创建为新的模块,供后续选择使用。
/ v. E: A# d) c0 M

15

主题

118

帖子

1552

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1552
推荐
 楼主| 发表于 2017-3-16 21:42 | 只看该作者
superlish 发表于 2017-3-16 15:43
2 R  d- ~& F/ O. ?仅仅是走线 1、同一个BRD直接COPY 就可以吧,
# N2 D! @  @) ?& X/ R2、不同BRD间的用Sub-Drawing导入啊(导的时候注意线所在层 ...

. c' b: K  s4 N- ~) N你说的并没有问题,但是比如你直接copy了一个电源模块(里面有电源IC位号U1),新模块的电源IC会丢失位号(包括其他器件),即使你打开logic edit手工添加位号、网络,然而原理设计又没有该内容。
4 `$ ?6 t5 j8 N/ l' ~还有像不同设计的sub-drawing功能,我一般只能用来取非网络、非器件类的部分(比如汉字/logo等),导入走线的话我不知道是不是只要坐标移动到正确点就可以还是说也要再次指定网络,好久没用sub drawing 导入过线路了。& P3 u# t. ?1 ]8 g9 g5 R: M
dxf没用过 。。。' n7 r* H" }4 `

点评

1、楼主的做法比较严谨,所有都一一对应,封装也一样,原理图也是调用的模块,应该是成熟方案了,大公司所为, 2、sub drawing 可以导很多东西,甚至整个板导进来都行 3、ALLEGRO有个属性,就是原来没属性的线碰  详情 回复 发表于 2017-3-17 11:55

31

主题

404

帖子

2233

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2233
2#
发表于 2017-3-16 10:12 | 只看该作者
楼主好棒

2

主题

68

帖子

140

积分

二级会员(20)

Rank: 2Rank: 2

积分
140
3#
发表于 2017-3-16 10:28 | 只看该作者

24

主题

669

帖子

3034

积分

五级会员(50)

Rank: 5

积分
3034
4#
发表于 2017-3-16 11:09 | 只看该作者
楼主能说明下,什么情况下我们会用到这种复用吗?  几个问题:1.你所说的复用是指,两个项目在有使用到相同原理图模块的时候,当其中有个项目共用模块的pcb走好线后,在复用到另外一个项目中吗?包括:网络和线路都是对应的?请指教。谢谢!

点评

当你想更方便、系统地管理模块时。因为这种复用的方式是将原理图和layout对应起来了,用习惯后会发现真的非常方便且不易出错,而且这种模块不是说创建好后就无法修改了,你在新设计中如果做了更好的优化,可以创建  详情 回复 发表于 2017-3-16 21:31

44

主题

673

帖子

-6985

积分

未知游客(0)

积分
-6985
5#
发表于 2017-3-16 14:49 | 只看该作者
谢谢楼主分享,不知复制相同的走线是如何复制的?

点评

在创建模块时的框选中实现的,并没有做具体的复制操作。 它实现的是一个对应关系,模块的原理图和模块的layout对应,你在别的设计中引用该模块,自然也就将layout对应上了。  详情 回复 发表于 2017-3-16 21:34
仅仅是走线 1、同一个BRD直接COPY 就可以吧,2、不同BRD间的用Sub-Drawing导入啊(导的时候注意线所在层要设置一致,要不识别不了) 3、也可以用导DXF的形式,把线导到你需要的走线层去  详情 回复 发表于 2017-3-16 15:43

47

主题

1565

帖子

6095

积分

版务助理

Rank: 6Rank: 6

积分
6095
6#
发表于 2017-3-16 15:43 | 只看该作者
dahe2005 发表于 2017-3-16 14:49
0 ?2 g/ f- A- A0 y0 ?谢谢楼主分享,不知复制相同的走线是如何复制的?
仅仅是走线 1、同一个BRD直接COPY 就可以吧,+ j1 j( Y) w5 n5 Y2 O7 u. R0 I# n
2、不同BRD间的用Sub-Drawing导入啊(导的时候注意线所在层要设置一致,要不识别不了)
3 y7 |) U0 h2 }, R% h& N! ~+ S+ o9 u3、也可以用导DXF的形式,把线导到你需要的走线层去2 h% c. d2 m" n) A! @' }3 W

0 z6 u4 {, b* L- D3 Q! v. H

点评

你说的并没有问题,但是比如你直接copy了一个电源模块(里面有电源IC位号U1),新模块的电源IC会丢失位号(包括其他器件),即使你打开logic edit手工添加位号、网络,然而原理设计又没有该内容。 还有像不同设计的  详情 回复 发表于 2017-3-16 21:42

0

主题

20

帖子

-8929

积分

未知游客(0)

积分
-8929
7#
发表于 2017-3-16 19:47 | 只看该作者
谢谢分享!非常好

13

主题

251

帖子

1430

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1430
8#
发表于 2017-3-16 19:56 | 只看该作者
很好的文章,MARK

15

主题

118

帖子

1552

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1552
10#
 楼主| 发表于 2017-3-16 21:34 | 只看该作者
dahe2005 发表于 2017-3-16 14:49; p# x& X7 B$ T" k
谢谢楼主分享,不知复制相同的走线是如何复制的?
" f' l9 s, _, c% Y6 u: G
在创建模块时的框选中实现的,并没有做具体的复制操作。# A" l- a. G, p3 _: k2 X
它实现的是一个对应关系,模块的原理图和模块的layout对应,你在别的设计中引用该模块,自然也就将layout对应上了。3 x7 E; ?! J7 q+ \

6

主题

154

帖子

3263

积分

五级会员(50)

Rank: 5

积分
3263
12#
发表于 2017-3-17 11:13 | 只看该作者
学习一下,之前用过,8通道采样,每通道上百个器件,只能用复用的方法搞。但是一定要小心,不然位号什么的容易乱。
态度决定一切,
行动创造未来。

47

主题

1565

帖子

6095

积分

版务助理

Rank: 6Rank: 6

积分
6095
14#
发表于 2017-3-17 12:03 | 只看该作者
现在新版本的复用已经越来越好用了,不想以前那样了

0

主题

11

帖子

19

积分

二级会员(20)

Rank: 2Rank: 2

积分
19
15#
发表于 2017-3-27 21:49 | 只看该作者
楼主强大
! k3 N. E: j% W5 D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-8 22:59 , Processed in 0.074561 second(s), 37 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表