EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
附件是结合网上的资料总结的模块复用相关的笔记,以免以后忘记。希望也能对想了解相关的朋友有所帮助。4 W, ]9 m, V# V. ^" O0 M$ I
/ T! `' W/ |0 S9 P! j; ^ j2 L& o时间:2017年3月15日 * @& }* s+ g5 e: u1 f1 u# @
思路:
# G$ ]: {8 n$ Z$ c模块的建立:首先建立模块的原理图(为单独的一个设计),导出网表创建BRD文件,在BRD文件中创建MDD模块 ) c7 @0 ^# m" v, w# t% E
模块的使用:在新设计(或者已有的设计)中放置层次框图BLOCK(将路径指定为模块的DSN文件),随后Annotate,生成网表并在Module instances中放置模块mdd
# Q6 V0 h) G9 b) I- }5 W- i; [" N* _2 a9 r# P: V8 e* |: a
重要说明: 1 }! u( H' [; _4 W* }& V
1、在模块建立过程中,在导出网表前需进行生产reuse module操作(必须要做),参考下图
7 C8 d& {! g( X. V( z/ U4 U( Efile:///E:/Bak/YNote/kepo013@qq.com/b2a9271c70cc47a59a61198250096d5e/clipboard.png
" V# o$ k' W" u6 g ( J1 Y* ~& U/ D8 r A4 p
3 V: Y" M4 A3 L- N8 a做完后器件会生成黄色的occurence属性,如下图
! ~/ @8 }$ \1 `1 Y' j& a5 s, L. Wfile:///E:/Bak/YNote/kepo013@qq.com/6d24f2f80967416a944ed0fa3e9ddd0f/clipboard.png
8 M; P# a% Z& O: C& A: [( H0 b/ q1 R如果不进行此操作而直接导出网表到brd中并生成mdd,会引起之后使用模块时位号对不上的问题。
4 Y1 c6 d5 a. M( w. Q, Y
' j- s4 g% G$ R0 Z- U% i. I6 \! n2、生成的mdd的名字有要求,一定是要dsn name_root sch name,否则在放置模块时会提示找不到模块。 4 w2 V/ x/ g& p/ m( B n; V# T/ `
比如,下图中的设计对应的模块名应该是sdram_module.mdd % G, x1 Z0 P7 m0 A9 I' u; }' p: b! v
file:///E:/Bak/YNote/kepo013@qq.com/fb35f124a4834a33838b8c1fa055fbf7/clipboard.png
4 y+ n) \/ H) {1 D7 W5 U
) F' u T+ n% T; L( J3、存放模块的路径需包含在allegro的modulepath中,而模块的DSN文件和BRD文件位置没有要求(dsn文件的路径会在使用模块时放置block中指定) # m h3 W% e+ M8 F& H
, u, j& `6 j+ o2 W4 `7 G8 s5 a
4、BLOCK(模块设计里)中不要使用全局的NET,最好通过PORT引出,在BLOCK外和全局NET相连。 $ B! I4 {$ O5 z1 O
file:///E:/Bak/YNote/kepo013@qq.com/640928a93ab74a63a34741ba2c99b504/clipboard.png
2 g4 q8 z: Y% K2 B+ s5 Jfile:///E:/Bak/YNote/kepo013@qq.com/e10c7098560f40cb827a5407a768a3e9/clipboard.png
( f) ]2 | c4 |# i" d
1 }! v( w3 M2 [* s$ D5、在使用模块的设计中,生产网标前的Annotate操作选项如下图,不需要勾选Generate Reuse module,和上面创建模块中的设置是相配对的。
0 J# ?0 O' a# H0 O4 Gfile:///E:/Bak/YNote/kepo013@qq.com/eb20a047ad1d45488d2365b572cf1625/clipboard.png
2 a$ r9 i: m) }6、关于为什么Block能够和mdd能够对应上的原因。不管是在创建模块的设计中还是在使用模块的设计中,在PCB Editor Reuse中进行Annotate后都会给器件添加一个occurence(黄色部分),是器件的在本设计中有效的实例属性(应该类似于C++中的类和对象),在一个旧的设计中添加模块block后,其block内的位号极大概率会和旧设计有冲突,在PCB Editor Reuse中进行Annotate后,会产生一个occurence位号,而Instance位号还和创建模块的设计是一样的,说明block和mdd之间的识别是通过instance属性来link的,这样模块不管是用在新设计、旧设计或者是使用多少个,都能识别并正确放置模块,因为instance属性没有变。(网上也有说是根据器件的Value和NET来识别的,不是很认同) / N* R9 Q+ Z( m& |3 e. O$ C1 |
. ]' T, e2 f6 H1 ]+ |8 J) C7 _# q' I
/ G6 Z0 N/ Z' P
! b. u7 N+ J% A. p0 E3 X+ X
file:///E:/Bak/YNote/kepo013@qq.com/88fd6babf0d044ef8bb960766a51b832/clipboard.png : F; X$ \; q+ l7 x- w; V& ]
从使用模块的BLOCK中进入查看
4 F3 Q' C# N. t; ~
5 |! v8 U5 _. X N! h* { kfile:///E:/Bak/YNote/kepo013@qq.com/972862b0735b4d1eb4483e938680b8c1/clipboard.png
/ _! y1 s0 r5 T7 A
) t: J2 `! N: `7 C1 v
6 E/ x6 A" ~: q9 U8 c: m$ E9 H$ [# w/ Z% }7 g! Z1 I) t
放置OK示意图(和其他设计的连接使用坐标定位)。 ) u! | ?# t5 ~( e
file:///E:/Bak/YNote/kepo013@qq.com/97b98b6d94034e96a9b878c43389db01/clipboard.png 9 R P9 k/ P+ K6 p
file:///E:/Bak/YNote/kepo013@qq.com/d28eaec3074b4dd5958c5613e6ed3deb/clipboard.png
' R, \4 p6 S( L O! ]6 N+ P5 `, C V, |
|