EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
附件是结合网上的资料总结的模块复用相关的笔记,以免以后忘记。希望也能对想了解相关的朋友有所帮助。* m$ i) T* ~" U$ d
6 G6 \, P& N! M2 P: K' R时间:2017年3月15日
" t: u( k% {% U) V" Q思路:
- k3 d: L) {, S模块的建立:首先建立模块的原理图(为单独的一个设计),导出网表创建BRD文件,在BRD文件中创建MDD模块 ( [ Y) |6 U6 u v! _6 P
模块的使用:在新设计(或者已有的设计)中放置层次框图BLOCK(将路径指定为模块的DSN文件),随后Annotate,生成网表并在Module instances中放置模块mdd ! T' G; k. \9 ]3 ?( b
: Z- k3 e8 L5 m) [8 u# ^/ @重要说明:
+ g6 C* h: I A1、在模块建立过程中,在导出网表前需进行生产reuse module操作(必须要做),参考下图 + ?/ y0 G; `' A8 n: z. W
file:///E:/Bak/YNote/kepo013@qq.com/b2a9271c70cc47a59a61198250096d5e/clipboard.png: J3 O; R1 u1 n4 W4 R+ D
, o0 `( P4 e. I5 V" w# \
+ X$ t9 P0 C! u1 n( A
做完后器件会生成黄色的occurence属性,如下图 ' U s" ?# y' a& J7 w B& r2 d( z
file:///E:/Bak/YNote/kepo013@qq.com/6d24f2f80967416a944ed0fa3e9ddd0f/clipboard.png
, Q& u* `" j8 ~# ?2 C+ f如果不进行此操作而直接导出网表到brd中并生成mdd,会引起之后使用模块时位号对不上的问题。 " ^- z6 R5 A. E0 k. h8 K
& Z7 V. B9 s" a9 c2、生成的mdd的名字有要求,一定是要dsn name_root sch name,否则在放置模块时会提示找不到模块。
8 J0 t$ Y. e9 ^. N比如,下图中的设计对应的模块名应该是sdram_module.mdd ' V1 q" O; y" W" l6 C! g+ t- T- C
file:///E:/Bak/YNote/kepo013@qq.com/fb35f124a4834a33838b8c1fa055fbf7/clipboard.png ) ~9 _$ Z1 X4 z
7 ?2 v3 g# e) ]) d6 G5 O4 P
3、存放模块的路径需包含在allegro的modulepath中,而模块的DSN文件和BRD文件位置没有要求(dsn文件的路径会在使用模块时放置block中指定) / a% N( X% X {' B
7 w2 w+ F, E; {9 d
4、BLOCK(模块设计里)中不要使用全局的NET,最好通过PORT引出,在BLOCK外和全局NET相连。 A8 Z* o6 k, [ r
file:///E:/Bak/YNote/kepo013@qq.com/640928a93ab74a63a34741ba2c99b504/clipboard.png
) a7 Q( [9 @: P& Cfile:///E:/Bak/YNote/kepo013@qq.com/e10c7098560f40cb827a5407a768a3e9/clipboard.png
0 D% r7 t" W4 _7 M' | _/ Y& r) T1 w( p
5、在使用模块的设计中,生产网标前的Annotate操作选项如下图,不需要勾选Generate Reuse module,和上面创建模块中的设置是相配对的。
2 C2 p, W f; u& ^( Hfile:///E:/Bak/YNote/kepo013@qq.com/eb20a047ad1d45488d2365b572cf1625/clipboard.png 4 R0 k8 s4 n/ x) F8 e6 H/ X6 Y
6、关于为什么Block能够和mdd能够对应上的原因。不管是在创建模块的设计中还是在使用模块的设计中,在PCB Editor Reuse中进行Annotate后都会给器件添加一个occurence(黄色部分),是器件的在本设计中有效的实例属性(应该类似于C++中的类和对象),在一个旧的设计中添加模块block后,其block内的位号极大概率会和旧设计有冲突,在PCB Editor Reuse中进行Annotate后,会产生一个occurence位号,而Instance位号还和创建模块的设计是一样的,说明block和mdd之间的识别是通过instance属性来link的,这样模块不管是用在新设计、旧设计或者是使用多少个,都能识别并正确放置模块,因为instance属性没有变。(网上也有说是根据器件的Value和NET来识别的,不是很认同)
# E" C8 ?4 }: p/ A
) U2 U4 j( o2 O2 b: H8 e7 `
! u/ Z p: |+ D- u$ }" \
) ?& o* D! Y3 r0 r& b6 }, Dfile:///E:/Bak/YNote/kepo013@qq.com/88fd6babf0d044ef8bb960766a51b832/clipboard.png
' b- X& ~8 b% O3 h3 {从使用模块的BLOCK中进入查看
2 x0 R8 d% I/ R! |$ [ R- r$ a- O . O5 E1 I2 u& w$ s7 V
file:///E:/Bak/YNote/kepo013@qq.com/972862b0735b4d1eb4483e938680b8c1/clipboard.png
) d) V9 S! B) ~4 t& m; o
0 x* D A( z) j9 c5 R" O1 v4 K4 x1 |; ~9 R5 o1 j; F1 X8 f
7 I w; K8 u) z# k
0 P3 e$ v8 H: y, b放置OK示意图(和其他设计的连接使用坐标定位)。 2 C- U* t( I1 B6 J4 i q
file:///E:/Bak/YNote/kepo013@qq.com/97b98b6d94034e96a9b878c43389db01/clipboard.png
5 I6 w# b7 w. P) v- P: ^+ e0 S1 Ofile:///E:/Bak/YNote/kepo013@qq.com/d28eaec3074b4dd5958c5613e6ed3deb/clipboard.png 8 Z& H9 S# l8 w/ D! W
9 u8 x/ x, l& Z9 Y2 u7 r |