EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
附件是结合网上的资料总结的模块复用相关的笔记,以免以后忘记。希望也能对想了解相关的朋友有所帮助。3 i# `5 |% d( R2 _$ f# m
3 U: p2 V* o3 c
时间:2017年3月15日
1 s8 B3 k! S5 u7 Q) p5 |" j! Z思路: 5 `3 ?" J& \0 N# ^
模块的建立:首先建立模块的原理图(为单独的一个设计),导出网表创建BRD文件,在BRD文件中创建MDD模块 g" J, w) x$ X7 {/ L
模块的使用:在新设计(或者已有的设计)中放置层次框图BLOCK(将路径指定为模块的DSN文件),随后Annotate,生成网表并在Module instances中放置模块mdd 2 Z9 E/ e6 r# v; Y
3 y, q D, F" ~) m+ s1 {5 j) m& `重要说明: $ \1 F% I7 @# W' h l- B
1、在模块建立过程中,在导出网表前需进行生产reuse module操作(必须要做),参考下图
( w& i' }+ i, a+ H0 O) tfile:///E:/Bak/YNote/kepo013@qq.com/b2a9271c70cc47a59a61198250096d5e/clipboard.png
9 r/ d6 N3 n8 B% e( I& n
, ~" L5 E$ T' w7 N; E8 i' h+ d( s6 s" X' `
做完后器件会生成黄色的occurence属性,如下图 ; A- v: N+ X+ j& t
file:///E:/Bak/YNote/kepo013@qq.com/6d24f2f80967416a944ed0fa3e9ddd0f/clipboard.png
$ @$ ]1 [ C9 c& H6 X5 D如果不进行此操作而直接导出网表到brd中并生成mdd,会引起之后使用模块时位号对不上的问题。
4 T- J! i. G& Z l( ]; m8 a# Y8 V3 z0 k; p. ^4 r6 e% W! x, z" A
2、生成的mdd的名字有要求,一定是要dsn name_root sch name,否则在放置模块时会提示找不到模块。
* [8 {) H% M* o# z比如,下图中的设计对应的模块名应该是sdram_module.mdd 9 B2 U. s8 z1 i3 X0 _
file:///E:/Bak/YNote/kepo013@qq.com/fb35f124a4834a33838b8c1fa055fbf7/clipboard.png
$ z3 Z& f4 T* ?& d
$ V" d" R6 b1 p( j6 `/ e3、存放模块的路径需包含在allegro的modulepath中,而模块的DSN文件和BRD文件位置没有要求(dsn文件的路径会在使用模块时放置block中指定) ; ^6 k' M, z' z' _1 i' P
' Y- q! F; _. F- j0 ~
4、BLOCK(模块设计里)中不要使用全局的NET,最好通过PORT引出,在BLOCK外和全局NET相连。 % `5 _8 V. j" P+ Z' V% h- ^& B% s
file:///E:/Bak/YNote/kepo013@qq.com/640928a93ab74a63a34741ba2c99b504/clipboard.png
{+ R/ e6 N- O6 X2 X* k2 _file:///E:/Bak/YNote/kepo013@qq.com/e10c7098560f40cb827a5407a768a3e9/clipboard.png 1 l: p( }! E, \2 h8 \2 |% `
6 j* L% d; E" P. v+ V% z5、在使用模块的设计中,生产网标前的Annotate操作选项如下图,不需要勾选Generate Reuse module,和上面创建模块中的设置是相配对的。 ! B- R5 p" W$ x1 O. z3 s
file:///E:/Bak/YNote/kepo013@qq.com/eb20a047ad1d45488d2365b572cf1625/clipboard.png 7 l4 U6 d! q7 a4 z& \
6、关于为什么Block能够和mdd能够对应上的原因。不管是在创建模块的设计中还是在使用模块的设计中,在PCB Editor Reuse中进行Annotate后都会给器件添加一个occurence(黄色部分),是器件的在本设计中有效的实例属性(应该类似于C++中的类和对象),在一个旧的设计中添加模块block后,其block内的位号极大概率会和旧设计有冲突,在PCB Editor Reuse中进行Annotate后,会产生一个occurence位号,而Instance位号还和创建模块的设计是一样的,说明block和mdd之间的识别是通过instance属性来link的,这样模块不管是用在新设计、旧设计或者是使用多少个,都能识别并正确放置模块,因为instance属性没有变。(网上也有说是根据器件的Value和NET来识别的,不是很认同) / T, d! X( M8 K
& d( t/ j' ~3 j4 c1 W' f+ e/ S5 A
* w; _5 Y+ b: T; a& W( d+ Z! z6 y6 R' X8 R1 W( d; _& b( Y1 \
file:///E:/Bak/YNote/kepo013@qq.com/88fd6babf0d044ef8bb960766a51b832/clipboard.png : t, M$ {* H# P( }5 k: h
从使用模块的BLOCK中进入查看
. g& p8 S6 N. s 4 S/ p8 r* _) x, {% l7 u, F7 K
file:///E:/Bak/YNote/kepo013@qq.com/972862b0735b4d1eb4483e938680b8c1/clipboard.png
3 W$ j/ F) X7 E3 `! u' }) B( B% Q
9 d- b6 {* L0 k8 c* Y1 u1 _
1 a4 ^" D( G; s; }$ e1 Q3 {' b# P
1 F1 V( z- D# T: O放置OK示意图(和其他设计的连接使用坐标定位)。
2 H2 o6 w, R* |* ]& Ifile:///E:/Bak/YNote/kepo013@qq.com/97b98b6d94034e96a9b878c43389db01/clipboard.png 3 r) o& Z" a8 X4 A
file:///E:/Bak/YNote/kepo013@qq.com/d28eaec3074b4dd5958c5613e6ed3deb/clipboard.png " C1 N! F) C& s0 B4 Y
8 Y7 j! } R! X/ p; J5 e T |