EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
附件是结合网上的资料总结的模块复用相关的笔记,以免以后忘记。希望也能对想了解相关的朋友有所帮助。
& T' K* w: }# ]# J n* |# N" V2 m8 C; H1 {4 o( X
时间:2017年3月15日 1 M2 j+ K7 G1 @* b
思路: & ~' @( k1 S/ ]/ g* O
模块的建立:首先建立模块的原理图(为单独的一个设计),导出网表创建BRD文件,在BRD文件中创建MDD模块
9 g; H) Y# A/ m5 b2 C# j模块的使用:在新设计(或者已有的设计)中放置层次框图BLOCK(将路径指定为模块的DSN文件),随后Annotate,生成网表并在Module instances中放置模块mdd
$ I7 p- u; ^0 H5 q3 C- G6 X" V/ M0 ^8 b3 X q; k, h( `* l8 o
重要说明: 1 a. X$ A- c/ }* c) r+ K% v
1、在模块建立过程中,在导出网表前需进行生产reuse module操作(必须要做),参考下图
2 v# ?9 f# f% P2 a: z% M9 m9 _3 sfile:///E:/Bak/YNote/kepo013@qq.com/b2a9271c70cc47a59a61198250096d5e/clipboard.png
8 q8 t* I+ G( T1 N% Z
: s4 d1 ?1 A& Z4 E# p
5 k/ z: O" @8 _8 i# U6 ~4 A; _: g5 Q做完后器件会生成黄色的occurence属性,如下图
% {: l3 `6 _" d8 q0 T# zfile:///E:/Bak/YNote/kepo013@qq.com/6d24f2f80967416a944ed0fa3e9ddd0f/clipboard.png
1 y1 O- K- U7 u# t6 K+ H# g- x4 I如果不进行此操作而直接导出网表到brd中并生成mdd,会引起之后使用模块时位号对不上的问题。 # a/ h, [, z+ ~
! W' u8 B& o6 F' _
2、生成的mdd的名字有要求,一定是要dsn name_root sch name,否则在放置模块时会提示找不到模块。 6 Y5 } g, ~8 J8 h2 g
比如,下图中的设计对应的模块名应该是sdram_module.mdd
. k V* }* E. o ?3 X J# Y3 M7 I" N- Yfile:///E:/Bak/YNote/kepo013@qq.com/fb35f124a4834a33838b8c1fa055fbf7/clipboard.png 7 {1 g# e1 ]# I9 g
) M# V9 b( h7 D' [ D q: m/ O+ O5 M3、存放模块的路径需包含在allegro的modulepath中,而模块的DSN文件和BRD文件位置没有要求(dsn文件的路径会在使用模块时放置block中指定)
) V% r# e! J2 B/ m& O1 F7 F# S0 R& B$ S# t2 U# T- \: z. t& ^! Y
4、BLOCK(模块设计里)中不要使用全局的NET,最好通过PORT引出,在BLOCK外和全局NET相连。
) Z, B1 {4 `; p8 g; efile:///E:/Bak/YNote/kepo013@qq.com/640928a93ab74a63a34741ba2c99b504/clipboard.png - }& d e s2 j0 b
file:///E:/Bak/YNote/kepo013@qq.com/e10c7098560f40cb827a5407a768a3e9/clipboard.png
$ _- L% {+ ?% I/ X$ h' U# N
# G, F! ?8 V% S9 ~5、在使用模块的设计中,生产网标前的Annotate操作选项如下图,不需要勾选Generate Reuse module,和上面创建模块中的设置是相配对的。
) _7 d. }4 U, T, P- ~file:///E:/Bak/YNote/kepo013@qq.com/eb20a047ad1d45488d2365b572cf1625/clipboard.png
5 Q7 R) l3 t2 A2 [# L- Q! }6、关于为什么Block能够和mdd能够对应上的原因。不管是在创建模块的设计中还是在使用模块的设计中,在PCB Editor Reuse中进行Annotate后都会给器件添加一个occurence(黄色部分),是器件的在本设计中有效的实例属性(应该类似于C++中的类和对象),在一个旧的设计中添加模块block后,其block内的位号极大概率会和旧设计有冲突,在PCB Editor Reuse中进行Annotate后,会产生一个occurence位号,而Instance位号还和创建模块的设计是一样的,说明block和mdd之间的识别是通过instance属性来link的,这样模块不管是用在新设计、旧设计或者是使用多少个,都能识别并正确放置模块,因为instance属性没有变。(网上也有说是根据器件的Value和NET来识别的,不是很认同)
1 _* ~* h+ V1 @7 \, D" p' K3 }) U4 F/ n9 a0 t) d% X( M
; s9 P F* `' Y, |8 ufile:///E:/Bak/YNote/kepo013@qq.com/88fd6babf0d044ef8bb960766a51b832/clipboard.png
( @8 x- U2 z1 |$ n, j从使用模块的BLOCK中进入查看 . R+ P5 @, ?& F% \8 K5 Y# M6 J
6 H; H4 j8 j+ U& L; }# a5 E0 d
file:///E:/Bak/YNote/kepo013@qq.com/972862b0735b4d1eb4483e938680b8c1/clipboard.png
4 d* e, R: I4 V5 e6 i0 T! l" {0 P1 i) ^, @' h
$ h3 h9 D; P! B3 } `+ s* W3 ^4 K: p6 O1 S
放置OK示意图(和其他设计的连接使用坐标定位)。 % `% f1 [' a0 ] T! w
file:///E:/Bak/YNote/kepo013@qq.com/97b98b6d94034e96a9b878c43389db01/clipboard.png
- }1 s: s* q; [) w, s4 rfile:///E:/Bak/YNote/kepo013@qq.com/d28eaec3074b4dd5958c5613e6ed3deb/clipboard.png ) I' }* w6 x" [$ S
) X% N# h! J# B5 ^2 n) ?! K
|