EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
附件是结合网上的资料总结的模块复用相关的笔记,以免以后忘记。希望也能对想了解相关的朋友有所帮助。
: }0 ^( m# O# A% c6 C% d0 t/ y! l4 l
) B/ v; O4 X1 F G& y, ]时间:2017年3月15日 9 P9 ]- c0 _$ H! A" q1 t* ~/ `
思路: # b: S9 H( a5 g8 l7 [
模块的建立:首先建立模块的原理图(为单独的一个设计),导出网表创建BRD文件,在BRD文件中创建MDD模块 1 [ w# U) H3 K
模块的使用:在新设计(或者已有的设计)中放置层次框图BLOCK(将路径指定为模块的DSN文件),随后Annotate,生成网表并在Module instances中放置模块mdd & N5 l/ F" G4 S0 {' H
) l9 ^. p% l4 B& L重要说明:
5 r$ b) u5 X3 q4 Z# u3 Y7 ~. m1、在模块建立过程中,在导出网表前需进行生产reuse module操作(必须要做),参考下图 ; m, c7 D8 w, m, y$ o0 @/ Q( d
file:///E:/Bak/YNote/kepo013@qq.com/b2a9271c70cc47a59a61198250096d5e/clipboard.png
# r5 J# m; c6 F* ]& g ' h! |, T2 @ z" H0 G. E$ D
9 w" N* r# i7 \' s% V$ h, b* H做完后器件会生成黄色的occurence属性,如下图 ! c& G* X+ n! p% K$ q+ d+ I+ ^
file:///E:/Bak/YNote/kepo013@qq.com/6d24f2f80967416a944ed0fa3e9ddd0f/clipboard.png
) ]1 M3 z& z. \& n$ l1 ~如果不进行此操作而直接导出网表到brd中并生成mdd,会引起之后使用模块时位号对不上的问题。 9 h+ N9 [( C6 }# ?$ |& f- l2 P( y
. h# z3 ~% }- I. ]7 u/ q3 P
2、生成的mdd的名字有要求,一定是要dsn name_root sch name,否则在放置模块时会提示找不到模块。
: e. }4 E( v$ T1 Z比如,下图中的设计对应的模块名应该是sdram_module.mdd
8 f7 p& h" x. [" P3 D" o& l8 Jfile:///E:/Bak/YNote/kepo013@qq.com/fb35f124a4834a33838b8c1fa055fbf7/clipboard.png 0 [: `4 S. u: z% n
3 K7 G7 h; y$ ], }
3、存放模块的路径需包含在allegro的modulepath中,而模块的DSN文件和BRD文件位置没有要求(dsn文件的路径会在使用模块时放置block中指定) 4 R% g/ M9 F4 L: c' }
q2 s( y6 Q$ y' z7 C
4、BLOCK(模块设计里)中不要使用全局的NET,最好通过PORT引出,在BLOCK外和全局NET相连。 ( j6 k2 s T/ N6 V4 \4 t
file:///E:/Bak/YNote/kepo013@qq.com/640928a93ab74a63a34741ba2c99b504/clipboard.png ( {0 ?) k( J# E* c
file:///E:/Bak/YNote/kepo013@qq.com/e10c7098560f40cb827a5407a768a3e9/clipboard.png 0 _+ J- j/ j& |, g9 a" o
# _% r2 n0 H. v% d
5、在使用模块的设计中,生产网标前的Annotate操作选项如下图,不需要勾选Generate Reuse module,和上面创建模块中的设置是相配对的。 - r/ Y. {9 Y4 C2 @$ H5 w
file:///E:/Bak/YNote/kepo013@qq.com/eb20a047ad1d45488d2365b572cf1625/clipboard.png
2 D; N# _1 x& ^) p6 e+ {, D6、关于为什么Block能够和mdd能够对应上的原因。不管是在创建模块的设计中还是在使用模块的设计中,在PCB Editor Reuse中进行Annotate后都会给器件添加一个occurence(黄色部分),是器件的在本设计中有效的实例属性(应该类似于C++中的类和对象),在一个旧的设计中添加模块block后,其block内的位号极大概率会和旧设计有冲突,在PCB Editor Reuse中进行Annotate后,会产生一个occurence位号,而Instance位号还和创建模块的设计是一样的,说明block和mdd之间的识别是通过instance属性来link的,这样模块不管是用在新设计、旧设计或者是使用多少个,都能识别并正确放置模块,因为instance属性没有变。(网上也有说是根据器件的Value和NET来识别的,不是很认同)
% \1 k5 S8 L$ V/ F5 J
% w# M6 v7 I% F1 N( i0 O7 E9 j% g; Y+ |
file:///E:/Bak/YNote/kepo013@qq.com/88fd6babf0d044ef8bb960766a51b832/clipboard.png
9 a# p$ T! m) T: a: ^* u从使用模块的BLOCK中进入查看
/ ?; I8 d! y: ~' r+ Q& v 1 ~! X; [: J' f6 i2 |: C
file:///E:/Bak/YNote/kepo013@qq.com/972862b0735b4d1eb4483e938680b8c1/clipboard.png
7 f2 B7 ]- n/ `; u) S# }, }/ d( a! J. r" o. w
! W, D" I: }' f1 k/ Y8 ]
# K7 j+ t- p7 v+ B
放置OK示意图(和其他设计的连接使用坐标定位)。
- a% a6 y) A3 H3 p3 vfile:///E:/Bak/YNote/kepo013@qq.com/97b98b6d94034e96a9b878c43389db01/clipboard.png
/ R- X2 y; V1 mfile:///E:/Bak/YNote/kepo013@qq.com/d28eaec3074b4dd5958c5613e6ed3deb/clipboard.png ' }" \9 G: `6 o" T! |. m$ n
; ]4 i/ N+ {" @! G5 } |