EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
附件是结合网上的资料总结的模块复用相关的笔记,以免以后忘记。希望也能对想了解相关的朋友有所帮助。- F7 `) o7 S2 [2 b3 E/ {8 P
. x2 O" u' X# u2 p& @
时间:2017年3月15日 " y! t( k7 V; J9 L! a$ {" }
思路:
& `9 l) J6 U4 \+ p" z模块的建立:首先建立模块的原理图(为单独的一个设计),导出网表创建BRD文件,在BRD文件中创建MDD模块
, C+ Z) B7 o# e( G模块的使用:在新设计(或者已有的设计)中放置层次框图BLOCK(将路径指定为模块的DSN文件),随后Annotate,生成网表并在Module instances中放置模块mdd : g9 }4 ]8 {3 l8 }5 }+ m- i) m8 r
6 J7 }1 j/ T4 S2 o; R$ S* z) |重要说明: 8 F9 f5 [6 D# B# M
1、在模块建立过程中,在导出网表前需进行生产reuse module操作(必须要做),参考下图 ; [) S6 {) L( w n
file:///E:/Bak/YNote/kepo013@qq.com/b2a9271c70cc47a59a61198250096d5e/clipboard.png
2 V `1 R0 z, _4 m! M
2 c5 d$ H. D, ]1 G9 m+ C4 [# z U
6 U$ ^; x2 S7 g! m( u' C1 x做完后器件会生成黄色的occurence属性,如下图
0 O* n, P* ~9 W8 r0 I: `9 ^file:///E:/Bak/YNote/kepo013@qq.com/6d24f2f80967416a944ed0fa3e9ddd0f/clipboard.png S$ N: c; e8 Y( C8 j9 {
如果不进行此操作而直接导出网表到brd中并生成mdd,会引起之后使用模块时位号对不上的问题。 0 U$ ~9 E) j' i" z& M
9 |$ E! I2 H2 q
2、生成的mdd的名字有要求,一定是要dsn name_root sch name,否则在放置模块时会提示找不到模块。 8 d, i+ J, z& E
比如,下图中的设计对应的模块名应该是sdram_module.mdd
1 a3 Y* ^9 W/ p0 p: }; l8 Kfile:///E:/Bak/YNote/kepo013@qq.com/fb35f124a4834a33838b8c1fa055fbf7/clipboard.png
8 U/ e# _. E. Z: F; C
' @# z. |6 w* r9 G3、存放模块的路径需包含在allegro的modulepath中,而模块的DSN文件和BRD文件位置没有要求(dsn文件的路径会在使用模块时放置block中指定) # {' T; @+ I+ q2 r+ y0 n4 S2 T
4 k: R, m- S3 B7 C3 }% @: N" ]1 Q
4、BLOCK(模块设计里)中不要使用全局的NET,最好通过PORT引出,在BLOCK外和全局NET相连。 u' a4 W. _9 g8 y6 l& i
file:///E:/Bak/YNote/kepo013@qq.com/640928a93ab74a63a34741ba2c99b504/clipboard.png
9 s" S; u6 t- @/ u7 tfile:///E:/Bak/YNote/kepo013@qq.com/e10c7098560f40cb827a5407a768a3e9/clipboard.png
8 p5 |' _6 ?# }0 r1 O# W
# x4 a; Z0 O- h: B ]% p5、在使用模块的设计中,生产网标前的Annotate操作选项如下图,不需要勾选Generate Reuse module,和上面创建模块中的设置是相配对的。
( ^( x2 b* F1 Z4 T- {! N3 Efile:///E:/Bak/YNote/kepo013@qq.com/eb20a047ad1d45488d2365b572cf1625/clipboard.png
) G: I; Q& h# R7 j5 p! x6、关于为什么Block能够和mdd能够对应上的原因。不管是在创建模块的设计中还是在使用模块的设计中,在PCB Editor Reuse中进行Annotate后都会给器件添加一个occurence(黄色部分),是器件的在本设计中有效的实例属性(应该类似于C++中的类和对象),在一个旧的设计中添加模块block后,其block内的位号极大概率会和旧设计有冲突,在PCB Editor Reuse中进行Annotate后,会产生一个occurence位号,而Instance位号还和创建模块的设计是一样的,说明block和mdd之间的识别是通过instance属性来link的,这样模块不管是用在新设计、旧设计或者是使用多少个,都能识别并正确放置模块,因为instance属性没有变。(网上也有说是根据器件的Value和NET来识别的,不是很认同)
3 F) L" A! h6 r3 U8 i9 l, j7 V% c) S: [& ^8 A' n$ f( k
. M4 Z0 x# Y5 ^( z8 [+ S& d+ q
file:///E:/Bak/YNote/kepo013@qq.com/88fd6babf0d044ef8bb960766a51b832/clipboard.png , s: O) I6 {/ K. _# }
从使用模块的BLOCK中进入查看
- i! W& _9 ?6 D7 g" G6 h
" v5 t. Z( j9 U2 P1 D5 i# ~( c0 a. l& Hfile:///E:/Bak/YNote/kepo013@qq.com/972862b0735b4d1eb4483e938680b8c1/clipboard.png
" E: `5 Q' w6 ?( Y$ M, ^3 M: M9 M( @- x+ K- v5 F
; s4 s+ d+ \% ]' h3 _* n: m& r
$ p0 a0 b! [- x5 V
1 Z* V" c5 z4 q5 y放置OK示意图(和其他设计的连接使用坐标定位)。
! p- U; T, f5 D/ Ofile:///E:/Bak/YNote/kepo013@qq.com/97b98b6d94034e96a9b878c43389db01/clipboard.png ; X. k% ?1 m3 B) A0 O
file:///E:/Bak/YNote/kepo013@qq.com/d28eaec3074b4dd5958c5613e6ed3deb/clipboard.png 7 z. H% R. \" ~* n: C9 Q; x
/ j I9 c8 p; u9 E1 N/ Q" X4 T. T |