跳至正文

Cadence复用电路原理图及其PCB布局

标签:
Cadence复用电路原理图及其PCB布局


前言

有些电路原理图是固定的,PCB布局也大体固定。这时候就会想,如果能把原理图和PCB布局联合起来就好了,画好原理图后,画PCB时那部分电路的布局也能直接拖出来,这样能极大的提高效率。其实,Cadence提供了将原理图和PCB布局结合起来做成一个module(模块)的功能。module可以称为复用模块、模块 或者 复用电路。

下面将详细介绍如何做成module,以及如何使用module。

注意,将复用模块与PCB中的复制元器件布局区分开,复用模块和原理图是绑定的且可通过库来调用,而复制元器件布局是将画好的部分布局复制一份,和原理图无关。


一. 绘制Module的原理图

1.1 画好要复用的电路的原理图

注意输入输出要用port引出,此port就对应层次化电路图的端子。

1.2 给元器件增加reuse属性

Tool -> Annotate…,打开Annotate窗口。

在Annotate窗口的PCB Editor标签页中,勾选Generate Reuse module(生成复用模块),点击确定。

弹出以下两个窗口,点击确定。


按Ctrl + S保存设计,然后选择任意器件,右击 -> Edit Property,查看其属性。如下图,可以发现,当前属性增加了两项:REUSE_ANNOTATE REUSE_ID。这两个属性就是原理图与PCB间器件一一对应的纽带。

1.3 导出网表

Tools -> Create Netlist…,打开创建网表窗口,导出网表。


二. 绘制Module的PCB

2.1 新建*.brd,导入网表,绘制好布局

如下图所示,不需要布线100%。

2.2 创建PCB module

Tools -> Create Module…

然后,框选要生成Module的PCB部分,再单击选择原点,弹出保存*.mdd文件的对话框,如下图所示。

mdd文件名 = dsn文件名_原理图页名

注意:1.文件名不区分大小写;2.mdd文件必须按此规则命名,否则在调用时Allegro会提示找不到对应mdd。

这里的dsn文件名为getmdd,加上下划线_,再加上原理图页名12Vto24V。当然你这里随便取个名字,然后在资源管理器中对*.mdd重命名也可以,效果一样。

保存mdd文件,在资源管理器中可以看到*.mdd文件前的图标与brd文件相同,其实mdd文件可以用Allegro进行编辑,就像操作brd一样。当然,你如果直接把brd文件后缀改为mdd是不行的,Allegro打不开。

所以。在2.1那一步直接新建*.mdd文件就可以了,然后导入网表进行布局布线,就无需从brd文件中create module了。

推荐直接建立mdd文件,如下图,而不是建立brd文件后Create Module。

2.4 设置modulepath

Allegro要调用mdd文件,会去modulepath指定的路径中搜索,所以要先设置modulepath,然后将生成的mdd文件放入modulepath指定路径。

Setup -> User Preferences…,打开用户首选项设置,搜索module即可找到modulepath。


三. 使用Module

新建一个原理图工程,在此工程中试验复用module,步骤如下。

3.1 放置层次化BLOCK

Place -> Hierarchical Block…,放置层次化块,设置如下。

点击OK后,用鼠标绘制出方框,我这里绘制了一个,又复制了一个。可以双击进入BLOCK内部查看电路。

特别注意:这里的BLOCK是引用而不是复制,也就是说,BLOCK绘制好后,如果BLOCK指向的dsn文件发生更改,BLOCK会跟着变化,如果dsn文件改名了或者被删除了,BLOCK就会找不到dsn导致错误。所以,上图的两个BLOCK,你双击任意一个进入修改电路,保存,双击另一个BLOCK进去查看,电路也被修改了,这就说明了这里的BLOCK是引用,两个BLOCK只是名字不同(BLK1,BLK2),指向的电路是同一个。

可进行任意设计,像正常画原理图一样。

3.2 Annotate位号重排与指定mark

原理图画完后,Tool -> Annotate…,打开Annotate窗口。如下图设置,点击OK。会执行位号重排,同时指定好BLOCK对应的module。

3.3 导出网表

Tools -> Create Netlist…。同1.3节一样。

3.4 新建brd,试试复用效果

导入网表后,Place -> Manually…,打开Placement窗口,如下图所示。可以看到Components by refdes中,BLOCK内的元器件呈黄色,BLOCK外的呈粉红色。再看Module instances,可以看到两个BLOCK对应的mdd。

放置两个Module instances(模块实例),效果如下图所示。

可以看到,元器件位号会跟随原理图自动变化,原本的布局布线包括丝印等与mdd保持一致。mdd有个外框框住,表示这是一个group,find中选中groups,可以整体移动,选中symbles可以移动单个器件,很灵活。


四. Module原理说明

为什么module中的器件原理图和PCB能对应上?一是mdd文件的名字,是dsn名_原理图页名,这让软件可以找到那个原理图;二是复用的原理图执行了pcb editor reuse,添加了REUSE_ID这个属性,软件能根据这个属性准备对应每个器件,所以原理图中的位号变了,mdd布局还是不会乱,可以知道mdd并不像brd一样依赖位号确定元器件,而是利用REUSE_ID。


五. 更新Module原理图与PCB

1)复用的原理图内部修改后,只要port 口没有变,则使用它的原理图中的BLOCK不用手动同步,因为BLOCK是引用,同步是自动的,实时的。而如果port口变化了,则需要右击BLOCK -> Synchronize Up

2)做好的模块文件用在 pcb 中后,若需要修改这部分文件,可以打开对应的mdd文件,然后在原 pcb 中使用 update symbol 功能,选相应的 moddle进行更新。当然,你也可以直接修改复用PCB模块的单个器件,不过这时你如果update modules,布局又会回到mdd的布局了。


如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了。

如果对文章内容有疑问,请务必清楚描述问题,留言评论或私信告知我,我看到会回复。


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
目录